Recognizing user intent and related entities using neural networks in dialogue environments.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- NVIDIA CORP
- Filing Date
- 2022-04-05
- Publication Date
- 2026-08-06
Smart Images

Figure 0007901463000001 
Figure 0007901463000002 
Figure 0007901463000003
Abstract
Description
Background Art
[0003]
[0001] The dialogue environment may include a conversational artificial intelligence system that receives user input such as voice input and infers an intention to provide a response to the input. These systems are generally trained with large datasets, and each intention is trained for a specific entity, so generally a model that is not flexible and difficult to handle is created. For example, the system deploys various different models specially trained for each task, and when a slight change is introduced, the model is then retrained with newly annotated data. As a result, the system may lack flexibility when adding new information or may be slow to update, which may limit the usability of the system.
Summary of the Invention
Means for Solving the Problems
[0002] Various embodiments according to the present disclosure will be described while referring to the drawings.
Brief Description of the Drawings
[0003] [Figure 1] It is a diagram showing an example dialogue environment according to at least one embodiment. [Figure 2] It is a diagram showing an example pipeline for intention and entity recognition according to at least one embodiment. <000This is an example flowchart of a process for intent and entity recognition, based on at least one embodiment. [Figure 6B] This is an example flowchart of a process for intent and entity recognition, based on at least one embodiment. [Figure 6C] This is an example flowchart of the process for configuring a dialogue environment, based on at least one embodiment. [Figure 7] This figure shows an exemplary data center system according to at least one embodiment. [Figure 8] This figure shows a computer system according to at least one embodiment. [Figure 9] This figure shows a computer system according to at least one embodiment. [Figure 10] This figure shows at least a portion of a graphics processor according to one or more embodiments, or according to at least one embodiment. [Figure 11] This figure shows at least a portion of a graphics processor according to one or more embodiments, or according to at least one embodiment. [Modes for carrying out the invention]
[0004] The various embodiments provide systems and methods for zero-shot techniques to interactive environments. In at least one embodiment, the zero-shot technique may be used to recognize user intent based on user input, such as auditory input. Various embodiments may include one or more trained neural network models that receive input, such as auditory user queries, and determine labels for relevant inputs corresponding to the intent of the queries. The labels may be determined at least in part on the probability that the label corresponding to the intent exceeds a threshold. In at least one embodiment, a default set of labels may be provided, and the user input is then evaluated against the default labels to determine which label is most likely to be associated with the input. Various embodiments may further utilize one or more techniques, such as the zero-shot technique, to determine entities related to the intent of the input. For example, entities may be determined at least in part by defining questions or phrases to describe the entities in a natural way. In various embodiments, an extractive question answer model may be used to answer questions or phrases to determine the values of slots related to answers to inputs.
[0005] Various embodiments of this disclosure can enable one or more conversational artificial intelligence (AI) systems to recognize user commands (e.g., intentions and entities) during natural language conversational dialogue, while providing operators with the flexibility to add new commands without extensive new training examples. Thus, embodiments can enable users who want to add voice or text natural language commands to an application to do so without having to manually prepare thousands of examples, which often involves training one or more neural network models for a specific use case. Furthermore, embodiments of this disclosure can be used to reduce or eliminate retraining steps. In at least one embodiment, the system and method can also enable adding new commands to the system in near real-time or at runtime.
[0006] As shown in Figure 1, the conversational environment 100 may be presented within a display area 102 containing one or more content elements. In at least one embodiment, the conversational environment 100 may be associated with a conversational AI system that enables a user to interact with different content elements based at least partially on one or more inputs, such as voice input, text input, or area selection. The display area 102 may form part of an electronic device such as a smartphone, personal computer, smart TV, virtual reality system, or conversational kiosk. In this example, a display element 104 containing an object 106 corresponding to an automobile is shown. The object 106 is shown in a rear view with the bumper visible. As described below, various embodiments enable a user to provide input commands, such as voice commands, to modify one or more aspects of the object 106 and / or perform one or more supported actions within the conversational environment 100.
[0007] The illustrated system further includes selectable content elements, which may include an input content element 108, a save content element 110, an exit content element 112, and a property content element 114. It should be noted that these selectable content elements are provided as examples only, and other embodiments may include more or fewer content elements. Furthermore, different types of content elements may be utilized, along with different types of interaction properties, such as voice commands and manual input. Additionally, the interaction environment may receive one or more scripts containing a set of actions used to initiate different commands associated with the selectable content elements. In operation, the user may interact with one or more of the content elements to perform one or more tasks or actions related to the environment, such as changing the properties of object 106. For example, the user may select input content element 108 by clicking on it (e.g., using a mouse or finger-controlled cursor), providing a verbal command, etc. The user's command may then be received, and one or more systems may determine the user's intent, determine entities related to that intent, and then perform one or more actions, at least in part, based on the user input.
[0008] The system and method may aim to generate conversational AI using a zero-shot technique. An embodiment includes a user-defined set of intentions associated with labels. Each of these intentions may have a corresponding question or subsequent action, which may be used to select values to fill in the slots. For example, a user's intention might be about changing the color of a car, the corresponding question might be "what color," and the values to fill in the slot (e.g., answer the question) could be any number of colors. During operation, a first trained network determines the probability that the input corresponds to a label, and the highest probability is selected to determine the intention of the input. A second trained network then determines the subsequent question for that intention to determine what values to populate in the intention's slot. A command may then be executed. The system enables the development of conversational AI with reduced training data and also provides a more natural way of encoding information, as intentions and questions can be provided in a natural way.
[0009] As shown in Figure 2, the architecture 200 may include one or more processing units, one or more of which may be locally hosted or part of one or more distributed systems. In this example, input 202 is provided to local client 204. As described above, local client 204 may be one or more electronic devices configured to receive user input, such as voice input, and may be communicatively coupled to additional parts of architecture 200 via on-system memory or via one or more network connections to one or more remote servers. The input may be voice input, such as user utterances, which may, among other options, be in the form of one or more phrases, such as a question (e.g., a query) or a command. In this example, local client 204 may provide access to the conversational environment 206. For example, local client 204 may have access via the network to one or more computing units of a distributed computing environment that may provide access to the conversational environment 206. In various embodiments, the interactive environment 206 may be stored within a local client 204 and / or accessible via one or more software programs executed by the local client 204. For example, the local client 204 may include a kiosk positioned to assist an individual in navigating an area or answering questions or queries, and the kiosk may include software instructions configured to provide the user with access to the capabilities of the interactive environment 206.
[0010] In operation, the user provides input 202 to local client 204, which may further include one or more voice clients to enable processing of the input. For example, a voice client may perform one or more preprocessing steps and evaluation of the speech via automatic speech recognition, text-to-speech processing, natural language understanding, etc. Furthermore, one or more of these functions may be offloaded to a remote voice entity 208, which should be recognized as being able to be hosted, or being part of a distributed computing environment accessible via one or more networks, or being able to be at least partially stored in or running on local client 204. Local client 204 may send the input to voice entity 208 for processing, for example, as an audio stream. Voice entity 208 may then use one or more processing modules to determine queries, commands, questions, etc., from the audio stream.
[0011] In various embodiments, the speech entity 204 may further include one or more trained neural network models that enable recognition of intents or audio streams or other inputs associated with the input 202. For example, the speech entity 204 may evaluate one or more portions of an audio stream to determine the intent of the audio stream, and the determination of intent may be at least in part based on an evaluation of whether the query corresponds to one or more intent labels. Various words or phrases from the audio stream may be evaluated, and then the probabilities of the words or phrases corresponding to labels may be determined, and the label with the highest probability and / or the label that exceeds a threshold and has the highest probability may be selected. In at least one embodiment, one or more additional trained neural networks, such as extractive question answering models, may determine subsequent questions related to the query at least in part based on intent. The subsequent questions may relate to queries that respond to the query, and it may be determined whether the subsequent questions are logically following the query, contradicting the query, or neural. For example, if a subsequent query asks "What color?", the input related to the scene in Figure 1 might be "Change color to blue". The system may then evaluate several possible colors that could correspond to the value of the relevant entity, in this case, color. The color "blue" may then be selected from the available possible colors and then used to fill in the slot, thereby providing the system with the action to take next, in this case the action is to render the object in blue.
[0012] In at least one embodiment, a command to update or modify a scene is sent to the interaction environment 206, which may be sent from a voice entity 208 or directly from a local client 204. The interaction environment 206 may then act on the modification by performing an action, and in various embodiments, may provide confirmation of the action, such as providing an auditory response indicating that the action has been completed. Further interaction may then repeat the process of identifying and populating various intentions, slots, entities, and values, and then performing actions.
[0013] As shown in Figure 3A, the intent classification system 300 may form at least a portion of the speech entity 208. It should be noted that the intent classification system 300 may include more or fewer components and that the present embodiment is presented for illustrative purposes only. In this example, the intent classification system 300 includes a classifier 302, which may be part of a trained neural network. In various embodiments, the classifier 302 uses one or more zero-shot techniques (e.g., zero-shot learning) to predict a class associated with a user input, at least partially based on training data. As is understood, the classes used to train the system may differ from the classes (e.g., intents) utilized during the system's operation. In various embodiments, the intent classifier 302 receives as input one or more words or word sequences, which may have undergone one or more preprocessing steps, and then determines the probability that the word or word sequence belongs to one or more intent classifications (e.g., labels). The highest probability score may then be selected to classify the word or word sequence. Furthermore, one or more thresholds may be established for classification, in which case it should be recognized that the highest probability within the group but not exceeding the threshold will still not be classified under the highest probability label.
[0014] In various embodiments, labels may be defined or predefined by one or more users or operators of the system and may be stored in the label data store 304. Labels may be provided to the system by entities that operate the system or present the system to a user, and the labels are at least partially selected based on the presented interactive environment. As just one example, the interactive environment in Figure 1 is associated with a car, and therefore the labels may be associated with changing colors, changing camera angles, etc. However, these labels may be specifically selected for this particular interactive environment because labels associated with actions such as "inserting bushes" or "adding walls" would not make sense or be relevant to the interactive environment. Thus, the system and methods may be used to establish specific labels for specific actions, at least partially based on the interactive environment. As will be explained, classifying specific actions within the labeling problem increases the flexibility of the system, and rather than using specific training examples for specific environments, the trained system can handle a variety of different labels provided by the user by a zero-shot approach.
[0015] As described above, user-provided input may be processed through one or more processing systems 306, which may include or be associated with one or more audio or text processing systems, such as a natural language understanding (NLU) system 106, to enable humans to interact naturally with the device. The NLU system may be used to interpret the context and intent of the input and to generate a response. For example, the input may be preprocessed, and preprocessing may include tokenization, lemmatization, stemming, and other processes. Furthermore, the NLU system may include one or more deep learning models, such as a BERT model, to enable functions such as entity recognition, intent recognition, and sentiment analysis. Various embodiments may also further include automatic speech recognition (ASR), text-to-speech processing, and the like. One such example of these systems may be associated with one or more multimodal conversational AI services, such as NVIDIA Corporation's Jarvis.
[0016] As shown in Figure 3B, the selection system 350 may form at least a portion of the speech entity 208. It should be noted that the selection system 350 may include more or fewer components and that the present embodiment is presented for illustrative purposes only. In this example, the selection system 350 includes an extractive question answer model 352, which may be a trained neural network used to extract one or more parts of an input sequence and answer a natural language question related to that sequence. As described above, in the case of an input such as "paint the car blue," the intent is determined to be "related to the color of the car," and the question becomes "what color?". In this example, the extractive question answer model 352 can then be used to answer the question "what color," in which case the answer would be "blue." In various embodiments, the extractive question answer model may be a trained neural network system such as NVIDIA Corporation's Megatron.
[0017] In various embodiments, a user or operator may input a value data store 354 that includes various different possible values for input into related slots that may be further related to different intentions and / or questions related to those intentions. By way of example only, the intention may be related to a color change, the related slot may be color, the question for that slot may be "which color?", and the slot values may include various possible colors such as white, red, black, blue, green, etc. Thus, the provider may enable a pre-defined or default configuration that may be rendered in response to user input. In at least one embodiment, the slot populator 356 determines from the value data store 354 which value to input into a slot associated with a question that leads to the execution of one or more actions. Returning to the previous example, if the user says "change the color to black", the system interprets that the intention is related to a color change, the slot related to color, and the question "which color", then selects from the slot values and identifies black as a possible value and inputs "black" into the related slot. Thereafter, the value communicator 358 may continue to transmit information to the interactive environment to enable the execution of actions related to the input.
[0018] In at least one embodiment, as shown in FIG. 4, a command definition 400 may be provided as input to the interactive environment. The command definition 400 is shown as a slot and intention table in the illustrated embodiment, but it should be recognized that various other types of data input and configurations may be provided in embodiments of the present disclosure. In this example, intentions 402 are shown in the first column and related intention labels 404 are shown in the second column. As previously explained, an intention may be related to one or more actions corresponding to input provided by a user. By way of example, an intention may be related to an action having a related label such as "related to opening the door" such as opening a door. In at least one embodiment, a user may provide the command definition 400 and, in various embodiments, may update the definition substantially in real-time or at runtime, thereby improving the flexibility of the system.
[0019] As shown, the intent label 404 may be associated with the relevant slot 406, and one or more values from the slot value 408 may be input into the slot 406. In at least one embodiment, the slot value 408 is determined at least in part based on their ability to answer questions regarding the slot question 410. That is, when determining the intent, the extraction-based question answering model may then formulate a question, and the answer to the question is determined at least in part based on the input. Thereafter, a value may be selected from the slot value 408 and input into the slot 406. Accordingly, in order to continue executing the user's query, a relevant response 412 may be provided to the user along with a command to the dialogue environment.
[0020] Figure 5 shows a process flow 500 for extracting an intent from a query, determining a question to answer, inputting a value into a slot, and executing an action. In at least one embodiment, various software modules may be utilized to execute different steps of the illustrated flow, and one or more components may be hosted locally on a local client, or may be accessible via one or more networks in a remote server or as part of a distributed computing environment. In this example, the input 502 starts the flow, and the input 502 corresponds to the user's utterance "Paint the car blue." This utterance may respond to a user interacting with an environment that shows an image or rendering of a car, such as the environment shown in FIG. 1. The input may be received, for example, by one or more local clients via a microphone and may be further processed on the local client or using one or more remote systems.
[0021] Various embodiments extract an intent 504 from an input 502. In this embodiment, the intent may be determined by evaluating one or more parts of an utterance, such as a word or phrase, through one or more trained machine learning systems. For example, the utterance may be evaluated, one or more keywords or phrases may be extracted, and one or more keywords or phrases may be used to determine the intent. The intent may be associated with default or preloaded intents, such as those provided by the system provider, and the intent may correspond to one or more capabilities of the system. The intent 504 may be determined by classifying the utterance based at least in part on the probability that the intent is associated with one or more labels. In this embodiment, the intent is determined using specific phrases such as “paint,” “blue,” and “color,” providing a high probability that the input 502 is associated with the label corresponding to “change color.” Thus, as will be further described, subsequent actions may be taken according to the determined label.
[0022] The determined intent may be processed by an extractive question answering model 506. For example, model 506 may process the question in natural language in response to the intent. In this example, the question is “What color?” and the answer “Blue” may be extracted from the initial input, as shown in slot value step 508. The answer may then be compared to one or more values from a value data store 354, etc. If there is a match, the value may be used for slot filling 510. For example, the “slot” may correspond to a value in one or more actions 512, in this example a value in a command to perform rendering a car in blue. Subsequent input may be further processed to determine the intent, the relevant question, and the slot. In at least one embodiment, additional tools may be provided, such as a help function to request additional information if the intent is not decidable.
[0023] Figure 6A shows an example process 600 for determining a user intent and performing an action within the conversational environment. It should be understood that, unless otherwise noted, additional, fewer, or alternative steps may exist within the scope of various embodiments, performing in a similar or alternative order, or at least partially in parallel, with respect to the above process and other processes presented herein. In this example, input is received in the conversational environment (602). The input may be voice input, such as utterances provided by the user. It should be noted that the input may include audio recordings, audio segments extracted from video, text input, etc. An intent may be determined from the input (604). In at least one embodiment, the intent is evaluated using a zero-shot method to determine a probability regarding the intent. The probability may be evaluated against a list of default intent labels provided by a provider associated with the conversational environment.
[0024] In various embodiments, entities related to intent are determined (606). The entities may correspond to slots in a table that can be populated to determine a response to an input. In at least one embodiment, entities are determined at least in part based on an extractive question answering model, where a question is proposed in response to user input and a response is determined to fill a slot. The entities have a list of possible related values, which are selected at least in part based on the input (608). The selected values may be used to populate the entities (610), and as a result, a task may be performed in response to the input (612).
[0025] Figure 6B shows an example process 620 for determining a user intent and associated values and performing an action. In this example, a user query is received (622). As previously mentioned, the user query may be an auditory input, among other options. A first trained neural network may be used to determine the intent of the user query (624). In at least one embodiment, the trained neural network employs a zero-shot technique in which one or more features of the query are evaluated to determine the probability that the intent is associated with one or more predefined intent labels. In at least one embodiment, a second trained neural network may determine an entity associated with the label (626) and determine a value for that entity (628). The second trained neural network may employ an extractive question-answering model to determine the appropriate entity, for example, by formulating a question related to the input and then determining whether a value is supported from a list of default values. A command may be sent to populate the entity using the value and, as a result, perform one or more actions related to the user query (630).
[0026] Figure 6C shows an example process 650 for configuring an interactive environment. In this example, a command definition for the interactive environment is received (652). The command definition may include a set of intents and associated labels for the intents. Furthermore, in the embodiment, each label may include a corresponding slot into which one or more values from a list of corresponding values are inserted. The interactive environment may be configured at least in part based on the command definition (654). In at least one embodiment, the interactive environment is configured using information related to the command definition without training one or more machine learning systems. That is, an existing trained model that has not been specifically trained using the command definition may be utilized. One or more updates to the command definition may be provided (656). The updates may include additional intents or labels, additional values, etc. The interactive environment may be updated using one or more updates (658). In at least one embodiment, further updates are made without updating or modifying one or more machine learning systems related to the interactive environment.
[0027] Data center Figure 7 shows an exemplary data center 700 in which at least one embodiment may be used. In at least one embodiment, the data center 700 includes a data center infrastructure layer 710, a framework layer 720, a software layer 730, and an application layer 740.
[0028] As shown in Figure 7, in at least one embodiment, the data center infrastructure layer 710 may include a resource orchestrator 712, grouped computing resources 714, and node computing resources ("node CRs") 716(1) to 716(N), where "N" represents any positive integer. In at least one embodiment, the node CRs 716(1) to 716(N) may include, but are not limited to, any number of central processing units ("CPUs") or other processors (including accelerators, field-programmable gate arrays (FPGAs), graphics processors, etc.), memory devices (e.g., dynamic read-only memory), storage devices (e.g., semiconductor drives or disk drives), network input / output ("NW I / O") devices, network switches, virtual machines ("VMs"), power modules, and cooling modules. In at least one embodiment, one or more of the nodes CR716(1) to 716(N) may be servers having one or more of the computing resources described above.
[0029] In at least one embodiment, the grouped computing resources 714 may include separate groups of node CRs housed in one or more racks (not shown), or a number of racks housed in a data center in various graphical locations (also not shown). Separate groups of node CRs within the grouped computing resources 714 may include grouped compute resources, network resources, memory resources, or storage resources that are configured or allocated to support one or more workloads. In at least one embodiment, several node CRs, including CPUs or processors, may be grouped in one or more racks to provide compute resources to support one or more workloads. In at least one embodiment, one or more racks may also include any number of power modules, cooling modules, and network switches in any combination.
[0030] In at least one embodiment, the resource orchestrator 712 may constitute or otherwise control one or more nodes CR716(1) to 716(N) and / or grouped computing resources 714. In at least one embodiment, the resource orchestrator 712 may include a software design infrastructure ("SDI") management entity for the data center 700. In at least one embodiment, the resource orchestrator may include hardware, software, or any combination thereof.
[0031] In at least one embodiment shown in Figure 7, the framework layer 720 includes a job scheduler 722, a configuration manager 724, a resource manager 726, and a distribution file system 728. In at least one embodiment, the framework layer 720 may include a framework for supporting software 732 of the software layer 730 and / or one or more applications 742 of the application layer 740. In at least one embodiment, the software 732 or application 742 may each include web-based service software or applications, such as those provided by Amazon Web Services, Google Cloud, and Microsoft Azure. In at least one embodiment, the framework layer 720 may be, but is not limited to, a type of free, open-source software web application framework, such as Apache Spark® ("Spark"), which can use the distribution file system 728 for large-scale data processing (e.g., "big data"). In at least one embodiment, the job scheduler 722 may include a Spark driver to facilitate scheduling of workloads supported by various layers of the data center 700. In at least one embodiment, the configuration manager 724 may be capable of configuring different layers, such as the software layer 730 and the framework layer 720, which includes Spark and a distribution file system 728 to support large-scale data processing. In at least one embodiment, the resource manager 726 may be capable of managing clustered or grouped computing resources that are mapped or allocated to support the distribution file system 728 and the job scheduler 722. In at least one embodiment, the clustered or grouped computing resources may include grouped computing resources 714 located in the data center infrastructure layer 710.In at least one embodiment, the resource manager 726 may work in conjunction with the resource orchestrator 712 to manage these mapped or allocated computing resources.
[0032] In at least one embodiment, the software 732 included in the software layer 730 may include software used by at least a portion of the nodes CR716(1) to 716(N), the grouped computing resources 714, and / or the distribution file system 728 of the framework layer 720. One or more types of software may include, but are not limited to, internet web page search software, email virus scanning software, database software, and streaming video content software.
[0033] In at least one embodiment, application 742 included in application layer 740 may include one or more types of applications used by at least a portion of nodes CR716(1) to 716(N), grouped computing resources 714, and / or distribution file system 728 of framework layer 720. One or more types of applications may include, but are not limited to, any number of genomics applications, recognition compute, and machine learning applications including training or inference software, machine learning framework software (e.g., PyTorch, TensorFlow, Caffe, etc.), or other machine learning applications used in conjunction with one or more embodiments.
[0034] In at least one embodiment, any of the configuration manager 724, resource manager 726, and resource orchestrator 712 may implement any number and type of self-correcting measures based on any amount and type of data obtained in any technically feasible manner. In at least one embodiment, the self-correcting measures may enable the data center operator of data center 700 to avoid determining potentially faulty configurations and to eliminate underutilized and / or underperforming portions of the data center.
[0035] In at least one embodiment, the data center 700 may include tools, services, software, or other resources for training one or more machine learning models or for predicting or inferring information using one or more machine learning models according to one or more embodiments described herein. For example, in at least one embodiment, a machine learning model may be trained by computing weight parameters according to a neural network architecture using the software and computing resources described above with respect to the data center 700. In at least one embodiment, a trained machine learning model corresponding to one or more neural networks may be used to infer or predict information using the resources described above with respect to the data center 700 by using weight parameters computed by one or more techniques described herein.
[0036] In at least one embodiment, the data center may use a CPU, application-specific integrated circuit (ASIC), GPU, FPGA, or other hardware to perform training and / or inference using the resources described above. Furthermore, one or more of the software and / or hardware resources described above may be configured as a service to enable users to perform training or inference on information such as image recognition, speech recognition, or other artificial intelligence services.
[0037] These components can be used to execute commands within an interactive environment.
[0038] Computer system Figure 8 is a block diagram showing an exemplary computer system, which may be a system having interconnected devices and components, a system-on-a-chip (SoC), or any combination thereof, formed with a processor which may include an execution unit for executing instructions, according to at least one embodiment. In at least one embodiment, the computer system 800 may include, without limitation, components such as a processor 802 for using an execution unit which includes logic for executing algorithms for processing data in accordance with the disclosure, such as in the embodiments described herein. In at least one embodiment, the computer system 800 may include a processor such as the PENTIUM® processor family, Xeon™, Itanium®, XScale™ and / or StrongARM™, Intel® Core®, or Intel® Nervana® microprocessors, available from Intel Corporation in Santa Clara, California, but other systems may be used (including PCs with other microprocessors, engineering workstations, set-top boxes, etc.). In at least one embodiment, the computer system 800 may run a version of the WINDOWS® operating system available from Microsoft Corporation in Redmond, Washington, but other operating systems (e.g., UNIX® and Linux®), embedded software, and / or graphical user interfaces may be used.
[0039] The embodiments may be used in other devices, such as portable devices and embedded applications. Some examples of portable devices include cellular phones, Internet Protocol devices, digital cameras, personal digital assistants ("PDAs"), and portable PCs. In at least one embodiment, the embedded application may include a microcontroller, a digital signal processor ("DSP"), a system-on-a-chip, a network computer ("NetPC"), an edge computing device, a set-top box, a network hub, a wide area network ("WAN") switch, or any other system capable of executing one or more instructions according to at least one embodiment.
[0040] In at least one embodiment, the computer system 800 may include, without limitation, a processor 802 which may include, without limitation, one or more execution units 808 for training and / or inference of machine learning models using the techniques described herein. In at least one embodiment, the computer system 800 is a single-processor desktop or server system, but in another embodiment, the computer system 800 may be a multi-processor system. In at least one embodiment, the processor 802 may include, without limitation, a complex instruction set computer ("CISC") microprocessor, a reduced instruction set computing ("RISC") microprocessor, a very long instruction word ("VLIW") microprocessor, a processor implementing a combination of instruction sets, or any other processor device, such as a digital signal processor. In at least one embodiment, the processor 802 may be coupled to a processor bus 810 which may transmit data signals between the processor 802 and other components in the computer system 800.
[0041] In at least one embodiment, the processor 802 may include, without limitation, a level 1 ("L1") internal cache memory ("cache") 804. In at least one embodiment, the processor 802 may have a single internal cache or multiple levels of internal caches. In at least one embodiment, the cache memory may be external to the processor 802. Other embodiments may include a combination of both internal and external caches, depending on the specific implementation and requirements. In at least one embodiment, the register file 806 may store different types of data in various registers, including, without limitation, integer registers, floating-point registers, state registers, and instruction pointer registers.
[0042] In at least one embodiment, the processor 802 also includes an execution unit 808 which includes, without limitation, logic for performing integer and floating-point arithmetic. In at least one embodiment, the processor 802 may also include a microcode ("u-code") read-only memory ("ROM") for storing microcode for certain macro instructions. In at least one embodiment, the execution unit 808 may include logic for handling a packed instruction set 809. In at least one embodiment, by including the packed instruction set 809, along with the associated circuitry for executing the instructions, in the instruction set of the general-purpose processor, arithmetic used by many multimedia applications can be performed using the packed data of the general-purpose processor 802. In one or more embodiments, many multimedia applications can be accelerated and run more efficiently by performing arithmetic on packed data using the full width of the processor's data bus, thereby eliminating the need to transfer smaller units of data across the processor's data bus to perform one or more arithmetic operations on a single data element at a time.
[0043] In at least one embodiment, the execution unit 808 may also be used in a microcontroller, embedded processor, graphics device, DSP, and other types of logic circuits. In at least one embodiment, the computer system 800 may include, without limitation, memory 820. In at least one embodiment, memory 820 may be implemented as a dynamic random access memory ("DRAM") device, a static random access memory ("SRAM") device, a flash memory device, or other memory device. In at least one embodiment, memory 820 may store instructions 819 and / or data 821, which may be represented by data signals executed by the processor 802.
[0044] In at least one embodiment, a system logic chip may be coupled to a processor bus 810 and memory 820. In at least one embodiment, the system logic chip may include, without limitation, a memory controller hub ("MCH") 816, and the processor 802 may communicate with the MCH 816 via the processor bus 810. In at least one embodiment, the MCH 816 may provide a high-bandwidth memory path 818 to memory 820 for storing instructions and data, and for storing graphics commands, data, and textures. In at least one embodiment, the MCH 816 may lead data signals between the processor 802, memory 820, and other components of the computer system 800, and may bridge data signals between the processor bus 810, memory 820, and system I / O interface 822. In at least one embodiment, the system logic chip may provide a graphics port for coupling to a graphics controller. In at least one embodiment, the MCH816 may be coupled to memory 820 via a high-bandwidth memory path 818, and the graphics / video card 812 may be coupled to the MCH816 via an Accelerated Graphics Port ("AGP") interconnect 814.
[0045] In at least one embodiment, the computer system 800 may use a system I / O 822, which is a proprietary hub interface bus, to connect the MCH 816 to the I / O controller hub ("ICH") 830. In at least one embodiment, the ICH 830 may provide direct connectivity to several I / O devices via a local I / O bus. In at least one embodiment, the local I / O bus may include, without limitation, a high-speed I / O bus for connecting peripherals to memory 820, a chipset, and a processor 802. Examples may include, without limitation, an audio controller 829, a firmware hub ("Flash BIOS") 828, a wireless transceiver 826, data storage 824, a legacy I / O controller 823 including a user input and keyboard interface 825, a serial expansion port 827 such as a Universal Serial Bus ("USB"), and a network controller 834. The data storage 824 may include a hard disk drive, a floppy disk drive, a CD-ROM device, a flash memory device, or other mass storage device.
[0046] In at least one embodiment, Figure 8 shows a system including interconnected hardware devices or “chips,” while in other embodiments, Figure 8 may show an exemplary system-on-a-chip (“SoC”). In at least one embodiment, devices may be interconnected by proprietary interconnects, standard interconnects (e.g., PCIe), or any combination thereof. In at least one embodiment, one or more components of the computer system 800 may be interconnected using a compute express link (CXL) interconnect.
[0047] These components can be used to execute commands within an interactive environment.
[0048] Figure 9 is a block diagram showing an electronic device 900 for utilizing a processor 910, according to at least one embodiment. In at least one embodiment, the electronic device 900 may be, for example, a notebook, a tower server, a rack server, a blade server, a laptop, a desktop, a tablet, a mobile device, a telephone, an embedded computer, or any other suitable electronic device, without limitation.
[0049] In at least one embodiment, the system 900 may include, without limitation, a processor 910 communicatively coupled to any number or type of preferred components, peripherals, modules, or devices. In at least one embodiment, the processor 910 is coupled using a bus or interface such as an I°C bus, a System Management Bus ("SMBus"), a Low Pin Count (LPC) bus, a Serial Peripheral Interface ("SPI"), a High Definition Audio ("HDA") bus, a Serial Advance Technology Attachment ("SATA") bus, a Universal Serial Bus ("USB") (versions 1, 2, or 3), or a Universal Asynchronous Receiver / Transmitter ("UART") bus. In at least one embodiment, Figure 9 shows a system including interconnected hardware devices or “chips,” while in other embodiments, Figure 9 may show an exemplary system-on-a-chip (“SoC”). In at least one embodiment, the devices shown in Figure 9 may be interconnected by proprietary interconnects, standard interconnects (e.g., PCIe), or any combination thereof. In at least one embodiment, one or more components of Figure 9 may be interconnected using a Compute Express Link (CXL) interconnect.
[0050] In at least one embodiment, Figure 9 shows a display 924, a touch screen 925, a touch pad 930, a Near Field Communications unit ("NFC") 945, a sensor hub 940, a thermal sensor 946, an Express Chipset ("EC") 935, a Trusted Platform Module ("TPM") 938, a BIOS / firmware / flash memory ("BIOS, FW flash") 922, a DSP 960, a drive such as a Solid State Disk ("SSD") or Hard Disk Drive ("HDD") 920, a Wireless Local Area Network Unit ("WLAN") 950, a Bluetooth unit 952, a Wireless Wide Area Network Unit ("WWAN") 956, and a Global Positioning System (GPS). The system may include a System) unit 955, a camera such as a USB 3.0 camera ("USB 3.0 Camera") 954, and / or a Low Power Double Data Rate ("LPDDR") memory unit ("LPDDR3") 915, for example, implemented in accordance with the LPDDR3 standard. Each of these components may be implemented in any preferred manner.
[0051] In at least one embodiment, other components may be communicatively coupled to the processor 910 via the components described above. In at least one embodiment, the accelerometer 941, ambient light sensor ("ALS") 942, compass 943, and gyroscope 944 may be communicatively coupled to the sensor hub 940. In at least one embodiment, the thermal sensor 939, fan 937, keyboard 946, and touchpad 930 may be communicatively coupled to the EC 935. In at least one embodiment, the speaker 963, headphones 964, and microphone ("mic") 965 may be communicatively coupled to an audio unit (audio codec and class D amplifier) 962, which may be communicatively coupled to the DSP 960. In at least one embodiment, the audio unit 964 may include, for example, an audio coder / decoder ("codec") and a class D amplifier, without limitation. In at least one embodiment, the SIM card ("SIM") 957 may be communicatively coupled to the WWAN unit 956. In at least one embodiment, components such as the WLAN unit 950 and the Bluetooth unit 952, as well as the WWAN 956, may be implemented in a Next Generation Form Factor ("NGFF").
[0052] These components can be used to execute commands within an interactive environment.
[0053] Figure 10 is a block diagram of a processing system according to at least one embodiment. In at least one embodiment, system 1000 includes one or more processors 1002 and one or more graphics processors 1008, and may be a single-processor desktop system, a multi-processor workstation system, or a server system or data center having a large number of processors 1002 or processor cores 1007 managed collectively or separately. In at least one embodiment, system 1000 is a processing platform embedded in a system-on-a-chip (SoC) integrated circuit for use in a mobile device, portable device, or embedded device.
[0054] In at least one embodiment, system 1000 may include, or be incorporated into, a server-based gaming platform, a cloud computing host platform, a virtualization computing platform, a game console including a game and media console, a portable game console, a handheld game console, or an online game console. In at least one embodiment, system 1000 is a mobile phone, a smartphone, a tablet computing device, or a mobile internet device. In at least one embodiment, processing system 1000 may also include, or be coupled to, or integrated into, wearable devices such as a smartwatch wearable device, a smart eyewear device, an augmented reality device, an edge device, an Internet of Things ("IoT") device, or a virtual reality device. In at least one embodiment, processing system 1000 is a television or set-top box device having one or more processors 1002 and a graphical interface generated by one or more graphics processors 1008.
[0055] In at least one embodiment, each of the one or more processors 1002 includes one or more processor cores 1007 for processing instructions that, when executed, perform actions for the system and user software. In at least one embodiment, each of the one or more processor cores 1007 is configured to process a particular instruction set 1009. In at least one embodiment, the instruction set 1009 may facilitate computing via composite instruction set computing (CISC), reduced instruction set computing (RISC), or very long instruction words (VLIW). In at least one embodiment, each of the processor cores 1007 may process a different instruction set 1009, which may include instructions that facilitate emulation of other instruction sets. In at least one embodiment, the processor cores 1007 may also include other processing devices, such as a digital signal processor (DSP).
[0056] In at least one embodiment, the processor 1002 includes a cache memory 1004. In at least one embodiment, the processor 1002 may have a single internal cache or multiple levels of internal caches. In at least one embodiment, the cache memory is shared among various components of the processor 1002. In at least one embodiment, the processor 1002 also uses an external cache (e.g., a Level 3 (L3) cache or a Last Level Cache (LLC)) (not shown), which may be shared among processor cores 1007 using known cache coherence techniques. In at least one embodiment, the processor 1002 further includes a register file 1006, which may contain different types of registers for storing different types of data (e.g., integer registers, floating-point registers, state registers, and instruction pointer registers). In at least one embodiment, the register file 1006 may contain general-purpose registers or other registers.
[0057] In at least one embodiment, one or more processors 1002 are coupled to one or more interface buses 1010 to transmit communication signals, such as addresses, data, or control signals, between the processors 1002 and other components in the system 1000. In at least one embodiment, the interface bus 1010 may be a processor bus, such as a version of a Direct Media Interface (DMI) bus. In at least one embodiment, the interface 1010 is not limited to a DMI bus and may include one or more peripheral component interconnect buses (e.g., PCI, PCI Express), a memory bus, or other types of interface buses. In at least one embodiment, the processor 1002 includes an integrated memory controller 1016 and a platform controller hub 1030. In at least one embodiment, the memory controller 1016 facilitates communication between memory devices and other components of the system 1000, while the platform controller hub (PCH) 1030 provides connectivity to I / O devices via a local I / O bus.
[0058] In at least one embodiment, the memory device 1020 may be a dynamic random-access memory (DRAM) device, a static random-access memory (SRAM) device, a flash memory device, a phase-change memory device, or any other memory device having performance suitable for acting as process memory. In at least one embodiment, the memory device 1020 may operate as system memory for system 1000 and store data 1022 and instructions 1021 for use by one or more processors 1002 when executing applications or processes. In at least one embodiment, the memory controller 1016 may also be coupled to an optional external graphics processor 1012, which may communicate with one or more graphics processors 1008 within processor 1002 to perform graphics and media operations. In at least one embodiment, a display device 1011 may be connected to processor 1002. In at least one embodiment, the display device 1011 may include one or more internal display devices, such as a mobile electronic device or laptop device, or external display devices that are attached via a display interface (e.g., a DisplayPort). In at least one embodiment, the display device 1011 may include a head-mounted display (HMD), such as a stereoscopic display device for use in a virtual reality (VR) application or an augmented reality (AR) application.
[0059] In at least one embodiment, the platform controller hub 1030 allows peripheral devices to connect to the memory device 1020 and the processor 1002 via a high-speed I / O bus. In at least one embodiment, the I / O peripheral devices include, but are not limited to, an audio controller 1046, a network controller 1034, a firmware interface 1028, a wireless transceiver 1026, a touch sensor 1025, and a data storage device 1024 (e.g., a hard disk drive, flash memory, etc.). In at least one embodiment, the data storage device 1024 may be connected via a storage interface (e.g., SATA) or via a peripheral bus such as a peripheral component interconnect bus (e.g., PCI, PCI Express). In at least one embodiment, the touch sensor 1025 may include a touch screen sensor, a pressure sensor, or a fingerprint sensor. In at least one embodiment, the wireless transceiver 1026 may be a WiFi transceiver, a Bluetooth transceiver, or a mobile network transceiver such as a 3G, 4G, or Long Term Evolution (LTE) transceiver. In at least one embodiment, the firmware interface 1028 may enable communication with system firmware, which may be, for example, a Unified Extensible Firmware Interface (UEFI). In at least one embodiment, the network controller 1034 may enable network connectivity to a wired network. In at least one embodiment, a high-performance network controller (not shown) may couple with the interface bus 1010. In at least one embodiment, the audio controller 1046 is a multi-channel high-definition audio controller. In at least one embodiment, the system 1000 may include an optional legacy I / O controller 1040 for coupling legacy (e.g., Personal System 2 (PS / 2)) devices to the system.In at least one embodiment, the platform controller hub 1030 can also connect to one or more connected input devices of the Universal Serial Bus (USB) controller 1042, such as a keyboard and mouse combination 1043, a camera 1044, or other USB input devices.
[0060] In at least one embodiment, instances of the memory controller 1016 and the platform controller hub 1030 may be integrated with a separate external graphics processor, such as an external graphics processor 1012. In at least one embodiment, the platform controller hub 1030 and / or the memory controller 1016 may be external to one or more processors 1002. For example, in at least one embodiment, the system 1000 may include an external memory controller 1016 and a platform controller hub 1030, which may be configured as a memory controller hub and peripheral controller hub within a system chipset that communicate with the processor 1002.
[0061] These components can be used to execute commands within an interactive environment.
[0062] Figure 11 is a block diagram of a processor 1100 having one or more processor cores 1102A-1102N, an integrated memory controller 1114, and an integrated graphics processor 1108, according to at least one embodiment. In at least one embodiment, the processor 1100 may include no more than a number of additional cores, including additional cores 1102N represented by dashed rectangles. In at least one embodiment, each of the processor cores 1102A-1102N includes one or more internal cache units 1104A-1104N. In at least one embodiment, each processor core also has access to one or more shared cache units 1106.
[0063] In at least one embodiment, the internal cache units 1104A-1104N and the shared cache unit 1106 represent a cache memory hierarchy within the processor 1100. In at least one embodiment, the cache memory units 1104A-1104N may include at least one level of instruction and data cache within each processor core, as well as one or more levels of shared intermediate level caches such as Level 2 (L2), Level 3 (L3), Level 4 (L4), or other levels of cache, where the highest level cache prior to external memory is classified as LLC. In at least one embodiment, cache coherence logic maintains coherence among the various cache units 1106 and 1104A-1104N.
[0064] In at least one embodiment, the processor 1100 may also include one or more bus controller units 1116 and a system agent core 1110. In at least one embodiment, one or more bus controller units 1116 manage a set of peripheral buses, such as one or more PCI or PCI Express buses. In at least one embodiment, the system agent core 1110 provides management functions for various processor components. In at least one embodiment, the system agent core 1110 includes one or more integrated memory controllers 1114 for managing access to various external memory devices (not shown).
[0065] In at least one embodiment, one or more of the processor cores 1102A to 1102N include support for simultaneous multithreading. In at least one embodiment, the system agent core 1110 includes components for coordinating and operating the cores 1102A to 1102N during multithreaded processing. In at least one embodiment, the system agent core 1110 may further include a power control unit (PCU) which includes logic and components for coordinating the power states of one or more of the processor cores 1102A to 1102N and the graphics processor 1108.
[0066] In at least one embodiment, the processor 1100 further includes a graphics processor 1108 for performing graphics processing operations. In at least one embodiment, the graphics processor 1108 is coupled to a system agent core 1110 which includes a shared cache unit 1106 and one or more integrated memory controllers 1114. In at least one embodiment, the system agent core 1110 also includes a display controller 1111 for directing the graphics processor's output to one or more coupled displays. In at least one embodiment, the display controller 1111 may also be a separate module coupled to the graphics processor 1108 via at least one interconnection, or it may be integrated within the graphics processor 1108.
[0067] In at least one embodiment, a ring-based interconnect unit 1112 is used to connect the internal components of the processor 1100. In at least one embodiment, alternative interconnect units such as point-to-point interconnects, switch interconnects, or other techniques may be used. In at least one embodiment, the graphics processor 1108 is connected to the ring interconnect 1112 via an I / O link 1113.
[0068] In at least one embodiment, the I / O link 1113 represents at least one of a variety of I / O interconnects, including on-package I / O interconnects that facilitate communication between various processor components and a high-performance embedded memory module 1118, such as an eDRAM module. In at least one embodiment, each of the processor cores 1102A to 1102N and the graphics processor 1108 use the embedded memory module 1118 as a shared last-level cache.
[0069] In at least one embodiment, the processor cores 1102A to 1102N are homogeneous cores that execute a common instruction set architecture. In at least one embodiment, the processor cores 1102A to 1102N are heterogeneous in terms of instruction set architecture (ISA), where one or more of the processor cores 1102A to 1102N execute a common instruction set, while the other cores of one or more of the processor cores 1102A to 1102N execute a subset of the common instruction set or a different instruction set. In at least one embodiment, the processor cores 1102A to 1102N are heterogeneous in terms of microarchitecture, where one or more cores with relatively high power consumption are coupled with one or more cores with lower power consumption. In at least one embodiment, the processor 1100 can be implemented on one or more chips or as a SoC integrated circuit.
[0070] These components can be used to execute commands within an interactive environment.
[0071] Other variations are within the scope of this disclosure. Thus, while the disclosed techniques can be modified and configured in various ways, certain exemplary embodiments are shown in the drawings and described in detail above. However, there is no intention to limit this disclosure to any particular one or more disclosed forms; on the contrary, it is intended to cover all modifications, alternative configurations, and equivalents that fall within the spirit and scope of the disclosure as defined in the claims.
[0072] In the context describing the disclosed embodiments (particularly in the context of the following claims), the terms “a,” “an,” and “the,” and similar demonstrative pronouns, should be interpreted as encompassing both singular and plural, and not as definitions of terms, unless otherwise stated herein or clearly refuted by the context. The terms “comprising,” “having,” “including,” and “containing” should be interpreted as open-ended terms (meaning “including, but not limited to”), unless otherwise stated herein. The term “connected,” when unqualified and referring to a physical connection, should be interpreted as being partially or completely housed, fitted, or joined to one another, even if there is something intervening. The detailing of ranges of values herein is merely intended to serve as a concise way of individually referring to each separate value that falls within a range, unless otherwise stated herein and unless each separate value is incorporated into the specification as if it were individually detailed herein. The terms “set” (for example, “set of items”) or “subset” should be interpreted as a non-empty set comprising one or more members, unless otherwise stated or denied by the context. Furthermore, unless otherwise stated or denied by the context, the term “subset” of a corresponding set does not necessarily refer to a strict subset of the corresponding set, and the subset and the corresponding set may be equivalent.
[0073] Combinations such as “at least one of A, B, and C” or “at least one of A, B, and C” are generally understood in contexts where they indicate that an item, term, etc., is either A, B, or C, or a non-empty subset of any of the sets A, B, and C, unless otherwise specifically stated or explicitly denied by the context. For example, in a descriptive example of a set having three members, the combinations “at least one of A, B, and C” and “at least one of A, B, and C” refer to any of the following sets: {A}, {B}, {C}, {A, B}, {A, C}, {B, C}, {A, B, C}. Thus, such combinations do not collectively imply that a particular embodiment requires the presence of at least one A, at least one B, and at least one C. Furthermore, unless otherwise stated or negated by the context, the term “plural” indicates a state of being multiple (for example, “a plurality of items” indicates multiple items). Plural means at least two items, but may be more if explicitly stated or indicated by the context. Furthermore, unless otherwise stated or made clear from the context, the phrase “based on” means “at least partially based on” and does not mean “based solely on.”
[0074] The operation of the processes described herein may be performed in any preferred order unless otherwise stated herein or expressly rejected by the context. In at least one embodiment, a process such as the process described herein (or its variations and / or combinations thereof) is executed under the control of one or more computer systems consisting of executable instructions and is implemented as code (e.g., executable instructions, one or more computer programs, or one or more applications) that is executed collectively on one or more processors, by hardware, or by a combination thereof. In at least one embodiment, the code is stored on a computer-readable storage medium in the form of a computer program comprising, for example, multiple instructions executable by one or more processors. In at least one embodiment, the computer-readable storage medium is a non-temporary computer-readable storage medium that excludes temporary signals (e.g., transient electrical or electromagnetic transmissions that propagate) but includes non-temporary data storage circuits (e.g., buffers, caches, and queues) within a transceiver for temporary signals. In at least one embodiment, code (e.g., executable code or source code) is stored in a set of one or more non-temporary computer-readable storage media which, when executed by one or more processors of the computer system (i.e., as a result of execution), causes the computer system to perform the operations described herein (or has other memory for storing executable instructions). In at least one embodiment, the set of non-temporary computer-readable storage media comprises a plurality of non-temporary computer-readable storage media which one or more of the individual non-temporary storage media of the plurality of non-temporary computer-readable storage media do not contain all of the code, but the plurality of non-temporary computer-readable storage media collectively contain all of the code.In at least one embodiment, executable instructions are executed such that different instructions are executed by different processors, for example, a non-temporary computer-readable storage medium stores the instructions, the main central processing unit ("CPU") executes some instructions, and the graphics processing unit ("GPU") and / or data processing unit ("DPU") execute other instructions. In at least one embodiment, different components of a computer system have separate processors, and different processors execute different subsets of instructions.
[0075] Accordingly, in at least one embodiment, a computer system is configured to implement one or more services that perform the operations of the processes described herein individually or collectively, and such a computer system consists of applicable hardware and / or software that enables the performance of the operations. Furthermore, a computer system implementing at least one embodiment of the present disclosure is a single device, and in another embodiment, a distributed computer system comprising multiple devices operating in different ways, thereby enabling the distributed computer system to perform the operations described herein in such a way that a single device does not perform all of the operations.
[0076] Any examples or illustrative language provided herein (e.g., "etc.") is intended solely to further illustrate the embodiments of this disclosure and, unless otherwise asserted, does not limit the scope of this disclosure. Nothing in this specification should be construed as indicating any unclaimed element as essential to the practice of this disclosure.
[0077] All references cited herein, including publications, patent applications, and patents, are incorporated herein by reference to the same extent as if each reference were included herein in whole, as if it were clearly indicated individually that it is incorporated by reference.
[0078] In the specification and claims, the terms “joined” and “connected” may be used together with their derivatives. It should be understood that these terms may not be intended to be synonymous with each other. Rather, in certain examples, “connected” or “joined” may be used to indicate that two or more elements are in direct or indirect physical or electrical contact with each other. Also, “joined” may mean that two or more elements are not in direct contact with each other but are interlocked or interacting with each other.
[0079] Unless otherwise specifically stated, throughout this specification, terms such as “process,” “compute,” “calculate,” or “determine” refer to the actions and / or processes of a computer or computing system, or similar electronic computing device, that manipulate and / or convert data represented as electronic or other physical quantities in the registers and / or memory of a computing system into other data similarly represented as physical quantities in the memory, registers, or other such information storage devices, transmitting devices, or display devices of a computing system.
[0080] Similarly, the term “processor” may refer to any device or part of a device that processes electronic data from registers and / or memory and converts that electronic data into other electronic data that can be stored in registers and / or memory. In non-limiting terms, “processor” may be any general-purpose processor such as a CPU, GPU, or DPU. In non-limiting terms, “processor” may be any microcontroller, or a dedicated processing unit such as a DSP, image signal processor ("ISP"), arithmetic logic unit ("ALU"), vision processing unit ("VPU"), tree traversal unit ("TTU"), ray tracing core, tensor tracing core, tensor processing unit ("TPU"), or embedded control unit ("ECU"). As an unrestricted example, “processor” may also include hardware accelerators such as PVA (programmable vision accelerator) and DLA (deep learning accelerator). As an unrestricted example, “processor” may also include one or more virtual instances of CPUs, GPUs, etc., hosted on an underlying hardware component that runs one or more virtual machines. A “computing platform” may comprise one or more processors. As used herein, “software” processes may include software and / or hardware entities that perform work over time, such as tasks, threads, and intelligent agents. Each process may also refer to multiple processes for executing instructions sequentially or in parallel, continuously or intermittently.The terms “system” and “method” are interchangeable herein only if one or more methods can be embodied by a system, and a method may be considered a system.
[0081] This specification may refer to obtaining, acquiring, receiving, or inputting analog or digital data into a subsystem, computer system, or computer-implemented machine. Obtaining, acquiring, receiving, or inputting analog or digital data can be achieved in various ways, such as receiving data as a parameter to a function call or an application programming interface call. In some implementations, the process of obtaining, acquiring, receiving, or inputting analog or digital data can be achieved by transferring data via a serial or parallel interface. In other implementations, the process of obtaining, acquiring, receiving, or inputting analog or digital data can be achieved by transferring data from a providing entity to a receiving entity via a computer network. It may also refer to providing, outputting, transmitting, sending, or presenting analog or digital data. In various examples, the process of providing, outputting, transmitting, sending, or presenting analog or digital data can be achieved by transferring data as an input or output parameter to a function call, an application programming interface, or a parameter to an inter-process communication mechanism.
[0082] The above discussion describes exemplary implementations of the techniques described, but other architectures may be used to implement the described functions, and these other architectures are intended to be within the scope of this disclosure. Furthermore, while specific role allocations are defined for the purposes of discussion, various functions and roles may be allocated and divided in different ways depending on the context.
[0083] Furthermore, while the subject matter has been described in language specific to its structural features and / or methodological behavior, it should be understood that the subject matter claimed in the attached claims is not necessarily limited to the specific features or behaviors described. Rather, the specific features and behaviors are disclosed as exemplary forms that implement the claims.
Claims
1. Receive voice input, One or more features are extracted from the aforementioned voice input, For each intent label in the default list of intent labels, determine the probability of it corresponding to one or more of the extracted features. Select the intention label with the highest probability among the probabilities determined above. Determine the entities associated with the aforementioned intent label, From the list of default entity values, select the selection value corresponding to the determined entity. Perform the task in response to the voice input, based at least in part on the aforementioned selection. A processor comprising one or more processing units.
2. The processor according to claim 1, wherein one or more processing units further execute a trained implication neural network, and one or more processing units use the trained implication neural network to select the intent label of the voice input.
3. The processor according to claim 2, wherein one or more processing units further run a trained extractive question-answering neural network model, and one or more processing units use the trained extractive question-answering neural network model to select the selection value.
4. The processor according to claim 1, wherein one or more processing units further provide voice prompts in response to the execution of the task.
5. The processor according to claim 4, wherein the voice prompt includes a first portion corresponding to a default prompt section and a second portion corresponding to the selected value.
6. The aforementioned one or more processing units further If one or more additional intent labels are received for the aforementioned default intent label list, Add the one or more additional intent labels to the list of default intent labels. The processor according to claim 2.
7. The processor according to claim 6, wherein the trained implication neural network is not retrained in response to the addition of the one or more additional intent labels to the list of default intent labels.
8. The aforementioned one or more processing units further Upon receiving the second voice input, If it is determined that the intent label associated with the second voice input does not correspond to the list of default intent labels, Provide a response that includes a request for additional information. The processor according to claim 1.
9. A method that is executed by a processor, Steps include receiving user queries to execute a task, The steps include determining an intent label associated with the user query from a list of default intent labels by evaluating one or more parts of the user query against a list of default intent labels using a first trained neural network, The steps include determining entity queries for the task, at least partially based on the determined intent labels, using a second trained neural network; The steps include using the second trained neural network to determine a value to respond to the entity query, at least in part, based on the user query, The steps include sending an instruction to perform the task based at least partially on the aforementioned value, and Methods that include...
10. The method according to claim 9, wherein the user query is an auditory input.
11. The step of determining the aforementioned intent label is, The steps include determining the probability that each intent label in the default list of intent labels corresponds to the user query, The step of selecting the intent label having the highest probability among the determined probabilities. The method according to claim 9, including the method described in claim 9.
12. The method according to claim 9, wherein the second trained neural network is an extractive question answering model.
13. After performing the task described above, the step of providing an auditory confirmation that includes at least partially the value described above. The method according to claim 9, further comprising:
14. A method performed by a computer, Steps to receive the input query, A step of extracting one or more features from the input query, The steps include determining an intent related to one or more of the extracted features from a default intent list, The steps include mapping the aforementioned intention to related actions, The steps include determining the entities related to the relevant action, based at least in part on the aforementioned intent, The steps include determining a value to respond to the entity based at least partially on the input query, The steps of performing the relevant action based at least partially on the aforementioned value and Includes, A method in which the aforementioned intent is determined at least in part on one or more machine learning systems that use a zero-shot technique.
15. The method according to claim 14, wherein the entity includes a value selected from a list of default entity values.
16. The method according to claim 14, wherein the input query is auditory input.
17. The method according to claim 14, wherein each intent in the default intent list corresponds to its respective intent label.
Citation Information
Patent Citations
Voice interaction method and device
CN113555018A
Device and method for control and storage medium storing program for executing operation processing therefor
JP2000099306A
Device and method for inputting command by voice
JP2000356999A
Information processing system, information processing method, information processing device and output device
JP2021081875A
Techniques for building a knowledge graph in limited knowledge domains
WO2020037217A1