Continual learning of neural network model for action recognition

The continual learning of DNN models for action recognition, using multi-modality verification and local data refinement, addresses accuracy and adaptability challenges, enhancing model performance in real-world scenarios.

WO2026137302A1PCT designated stage Publication Date: 2026-07-02INTEL CORP +6

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
INTEL CORP
Filing Date
2024-12-26
Publication Date
2026-07-02

AI Technical Summary

Technical Problem

Current action recognition models suffer from robustness issues and errors in classifying actions, particularly in real-world environments, necessitating improvements in accuracy and adaptability.

Method used

A continual learning approach for DNN models, utilizing a multi-modality model for label verification and in-situ data collection to refine action recognition models through semi-supervised learning, enhancing accuracy and adaptability.

Benefits of technology

Improves the accuracy of action recognition models by continuously training them with locally collected data, ensuring robustness and adaptability to dynamic environments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024142602_02072026_PF_FP_ABST
    Figure CN2024142602_02072026_PF_FP_ABST
Patent Text Reader

Abstract

A device (e.g., a robot) may be powered by artificial intelligence (AI) models to aid one or more users in a local area. The device may use a first AI model to recognize actions performed in the local area. The first AI model may generate a label of the action. The label may be provided to a second AI model that will generate one or more attribute rules for the action based on the label. A third AI model may be used to evaluate the accuracy of the label. Based on a determination that the evaluated accuracy meets a threshold, a training dataset may be formed using the data or new data collected in the local area, e.g., by the device. The first AI model may be further trained using the training dataset. The device may use the first AI model for providing assistance after it is further trained.
Need to check novelty before this filing date? Find Prior Art

Description

CONTINUAL LEARNING OF NEURAL NETWORK MODEL FOR ACTION RECOGNITIONTechnical Field

[0001] This disclosure relates generally to neural network (also referred to as “deep neural network” or “DNN” ) , and more specifically, continual learning of DNN models, including DNN models used for action recognition.Background

[0002] DNNs are used extensively for a variety of artificial intelligence (AI) applications ranging from computer vision to speech recognition and natural language processing due to their ability to achieve high accuracy. DNNs can perform computer vision tasks to identify and understand objects and people in images and videos. AI-powered computer vision can facilitate automation of tasks that replicate human capabilities. For instance, AI-powered computer vision can give robots the ability to see, understand, and interact with their environment.Brief Description of the Drawings

[0003] Embodiments will be readily understood by the following detailed description in conjunction with the accompanying drawings. To facilitate this description, like reference numerals designate like structural elements. Embodiments are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings.

[0004] FIG. 1 is a block diagram of an AI system, in accordance with various embodiments.

[0005] FIG. 2 is a block diagram of a continual learning module, in accordance with various embodiments.

[0006] FIG. 3 illustrates a continual learning process, in accordance with various embodiments.

[0007] FIG. 4 illustrates a local area with an AI-power assistant, in accordance with various embodiments.

[0008] FIG. 5A illustrates an example transformer model, in accordance with various embodiments.

[0009] FIG. 5B illustrates an embedding operation in an embedding layer, in accordance with various embodiments.

[0010] FIG. 5C illustrates an embedding operation in another embedding layer, in accordance with various embodiments.

[0011] FIG. 6 illustrates a first inference phase of a transformer model, in accordance with various embodiments.

[0012] FIG. 7 illustrates subsequent inference phases of the transformer model, in accordance with various embodiments.

[0013] FIG. 8 is a flowchart of a method for DNN continual learning, in accordance with various embodiments.

[0014] FIG. 9 is a block diagram of an example computing device, in accordance with various embodiments.Detailed DescriptionOverview

[0015] The last decade has witnessed a rapid rise in AI based data processing, particularly based on DNNs. DNNs are widely used in the domains of computer vision, language processing, speech recognition, image, and video processing mainly due to their ability to achieve beyond human-level accuracy. A DNN typically includes a sequence of layers. A DNN layer may include one or more deep learning operations (also referred to as “neural network operations” ) , such as convolution, matrix multiplication, layer normalization, batch normalization, SoftMax operation, pooling, elementwise operation, linear operation, nonlinear operation, and so on.

[0016] Input or output data of deep learning operations may be arranged in data structures called tensors. A tensor is a data structure having multiple elements across one or more dimensions. Examples of tensors include vector (which is one-dimensional (1D) tensor) , matrix (which is two-dimensional (2D) tensor) , three-dimensional (3D) tensors, four-dimensional (4D) tensors, and even higher dimensional tensors. A dimension of a tensor may correspond to an axis, e.g., an axis in a coordinate system. A dimension may be measured by the number of data points along the axis. The dimensions of a tensor may define the shape of the tensor. A DNN layer may receive one or more input tensors and compute an output tensor from the one or more input tensors.

[0017] Action recognition is a computer vision task that involves recognizing actions in videos or images. The goal is usually to classify and categorize actions being performed in the video or image into a predefined set of action classes. Action recognition can be important for service robots. Service robots can assist humans by performing useful tasks, such as cleaning, delivering, and so on. These robots can be used in various environments, including healthcare, hospitality, retail, home, manufacturing, and so on. In an example, action recognition can enable a service robot to understand daily activities of people in a domestic environment for assisting people with such activities. Action recognition can be powered by AI. For instance, DNNs may be trained for performing action recognition tasks. Such DNN models ( “AI models” ) can receive images or videos as inputs and output labels indicating classes of actions captured by the images or videos. However, currently available action recognition models often suffer from AI robustness issues and can make errors in classifying actions.

[0018] Embodiments of the present disclosure may improve on at least some of the challenges and issues described above by providing continual learning of DNN models for action recognition. Continual learning of a DNN model for action recognition ( “action recognition model” ) may be learning during the deployment stage of the DNN model. For instance, an already-trained action recognition model is further trained after or when it is deployed to perform an action recognition task. The continual learning may be semi-supervised continual learning facilitated by one or more other DNN models. The usage of the other DNN model (s) can make the continual learning automatic, dynamic, and private.

[0019] In various embodiments of the present disclosure, a device (e.g., a robot) may be powered by AI models to perform tasks in a local area. The device may perform the tasks to assist humans. Examples of the tasks may include serving, cleaning, delivering, and so on. The local area may be a real-world environment, which may be related to healthcare, hospitality, retail, home, manufacturing, and so on. The device may use a first AI model to recognize actions performed in the local area. The first AI model may generate a label of the action from data collected in the local area. The data may include one or more images or videos. The label may be provided to a second AI model that will generate one or more attribute rules for the action based on the label. In an example, the second AI model may be a large language model (LLM) , an output of which may be textual data indicating the one or more attribute rules. The data collected in the local area and the one or more attribute rules may be provided to a third AI model for evaluating the accuracy of the label. The third AI model may detect whether the data collected in the local area captures one or more objects indicated by the one or more attribute rules. The third AI model may be very accurate in object detection so that it can accurately verify the label of the action. In some embodiments, an accuracy of the third AI model may be above a threshold accuracy. In some embodiments, an accuracy of the third AI model for object detection may be higher than an accuracy of the first AI model for action recognition. The third AI model may be a large multimodal model (LMM) which can process multiple types of data (e.g., text and image or text and video) . In embodiments where the output of the third AI model indicates that the label is accurate, a training dataset may be formed. The training dataset may include a training sample generated using the data collected in the local area or new data collected in the local area (e.g., a video of the same action taken from different viewpoints and distance) . The new data may be collected by the device after the evaluation of the label’s accuracy. The new data and the data may capture the same action. A label that is determined accurate by the third AI model may be used as a ground-truth label. The first AI model may be further trained using the training dataset. The device may continue using the first AI model to perform tasks in the local area.

[0020] The accuracy of the first AI model for action recognition may be improved after the further training process. The further training process may also be referred to as a fine-tuning process. The further training (or fine tuning) of the first AI model may be conducted continually to improve the accuracy of action recognition. The continual learning of the first AI model can be automatic and dynamic as collection of data to be used to generate training samples can be automatically done using the device and evaluation of label accuracy can be automatically done using the second AI model and third AI model. Furthermore, the training samples and labels of the training samples may be generated locally (e.g., within the local area) so that the continual training can be private.

[0021] For purposes of explanation, specific numbers, materials and configurations are set forth in order to provide a thorough understanding of the illustrative implementations. However, it will be apparent to one skilled in the art that the present disclosure may be practiced without the specific details or / and that the present disclosure may be practiced with only some of the described aspects. In other instances, well known features are omitted or simplified in order not to obscure the illustrative implementations.

[0022] Further, references are made to the accompanying drawings that form a part hereof, and in which is shown, by way of illustration, embodiments that may be practiced. It is to be understood that other embodiments may be utilized, and structural or logical changes may be made without departing from the scope of the present disclosure. Therefore, the following detailed description is not to be taken in a limiting sense.

[0023] Various operations may be described as multiple discrete actions or operations in turn, in a manner that is most helpful in understanding the claimed subject matter. However, the order of description should not be construed as to imply that these operations are necessarily order dependent. In particular, these operations may not be performed in the order of presentation. Operations described may be performed in a different order from the described embodiment. Various additional operations may be performed or described operations may be omitted in additional embodiments.

[0024] For the purposes of the present disclosure, the phrase “A or B” or the phrase "A and / or B" means (A) , (B) , or (A and B) . For the purposes of the present disclosure, the phrase “A, B, or C” or the phrase "A, B, and / or C" means (A) , (B) , (C) , (A and B) , (A and C) , (B and C) , or (A, B, and C) . The term "between, " when used with reference to measurement ranges, is inclusive of the ends of the measurement ranges.

[0025] The description uses the phrases "in an embodiment" or "in embodiments, " which may each refer to one or more of the same or different embodiments. The terms "comprising, " "including, " "having, " and the like, as used with respect to embodiments of the present disclosure, are synonymous. The disclosure may use perspective-based descriptions such as "above, " "below, " "top, " "bottom, " and "side" to explain various features of the drawings, but these terms are simply for ease of discussion, and do not imply a desired or required orientation. The accompanying drawings are not necessarily drawn to scale. Unless otherwise specified, the use of the ordinal adjectives “first, ” “second, ” and “third, ” etc., to describe a common object, merely indicates that different instances of like objects are being referred to and are not intended to imply that the objects so described must be in a given sequence, either temporally, spatially, in ranking or in any other manner.

[0026] In the following detailed description, various aspects of the illustrative implementations will be described using terms commonly employed by those skilled in the art to convey the substance of their work to others skilled in the art.

[0027] The terms “substantially, ” “close, ” “approximately, ” “near, ” and “about, ” generally refer to being within + / -20%of a target value as described herein or as known in the art. Similarly, terms indicating orientation of various elements, e.g., “coplanar, ” “perpendicular, ” “orthogonal, ” “parallel, ” or any other angle between the elements, generally refer to being within + / -5-20%of a target value as described herein or as known in the art.

[0028] In addition, the terms “comprise, ” “comprising, ” “include, ” “including, ” “have, ” “having” or any other variation thereof, are intended to cover a non-exclusive inclusion. For example, a method, process, device, or DNN accelerator that comprises a list of elements is not necessarily limited to only those elements but may include other elements not expressly listed or inherent to such method, process, device, or DNN accelerators. Also, the term “or” refers to an inclusive “or” and not to an exclusive “or. ”

[0029] The systems, methods and devices of this disclosure each have several innovative aspects, no single one of which is solely responsible for all desirable attributes disclosed herein. Details of one or more implementations of the subject matter described in this specification are set forth in the description below and the accompanying drawings.

[0030] FIG. 1 is a block diagram of an AI system 100, in accordance with various embodiments. The AI system 100 can perform AI tasks. For instance, the AI system 100 can provide AI-power assistance in a local area. The AI system 100 includes an interface module 110, an action recognition model 120, an AI-powered agent 130, an agent controller 140, a continual learning module 150, and a datastore 160. In other embodiments, alternative configurations, different or additional components may be included in the AI system 100. For instance, the AI system 100 may include more than one action recognition model. Further, functionality attributed to a component of the AI system 100 may be accomplished by a different component included in the AI system 100 or a different module or system. For instance, functionality attributed to the AI-powered agent 130 may be accomplished by the agent controller 140 or vice versa.

[0031] The interface module 110 facilitates communications of the AI system 100 with other modules or systems. In some embodiments, the interface module 110 may receive one or more DNNs from one or more other systems or devices. In an example, the interface module 110 may receive the action recognition model 120 or information of the action recognition model 120 (e.g., internal parameters of the action recognition model 120, a graph of the action recognition model 120, etc. ) from a system that has trained the action recognition model 120. In other embodiments, the interface module 110 may receive data or information to be used to further train the action recognition model 120. For instance, the interface module 110 may receive one or more DNNs to be used by the continual learning module 150 for continually training the action recognition model 120. The interface module 110 may also receive data that can be used by the agent controller 140 to control the AI-powered agent 130.

[0032] In some embodiments, the interface module 110 may receive data from one or more users. For instance, the interface module 110 may provide a user interface (e.g., a graphical user interface) that allows a user to provide input. The user interface may include one or more interactive elements, such as icons, buttons, scroll bars, menus, input fields, checkboxes, and so on. The interface module 110 may provide user inputs to other components of the AI system 100. For instance, the interface module 110 may provide a user input to the agent controller 140 for controlling the AI-powered agent 130. In some embodiments, the interface module 110 may be implemented with a privacy policy to protect data associated with users from being shared with external systems or devices.

[0033] In some embodiments, certain data received, used, or generated by other components of the AI system 100 may be refrained from being sent to the interface module 110 or to an external system or device. For instance, certain data collected by the AI-powered agent 130 may be protected from being shared with an external system or device. In some embodiments, the interface module 110 may provide options to users so that users can choose whether to share data with an external system or device. The interface module 110 may prevent data from being shared with an external system or device after receiving a user’s instruction of not sharing.

[0034] The action recognition model 120 is a DNN that has been trained for action recognition. In some embodiments, the action recognition model 120 may receive one or more images or one or more video as an input. The input may be captured by and received from the AI-powered agent 130. In some embodiments, the input may be captured in the local area where the AI-powered agent 130 operates. The input may be processed in the layers of the action recognition model 120. In some embodiments, the action recognition model 120 may include one or more layers that can detect one or more objects in the input. In some embodiments, the action recognition model 120 may include one or more convolutional layers. In some embodiments, the action recognition model 120 may be a transformer-based DNN. In some embodiments, the action recognition model 120 may be a vision transformer. The action recognition model 120 may have a transformer-based architecture that effectively combines one or more pretrained vision transformers for learning local spatiotemporal representation. The action recognition model 120 may include one or more multi-head relation aggregator blocks to capture complex dynamics in videos. The action recognition model 120 may be trained or finetuned with a video recognition dataset. Examples of the action recognition model 120 may include UniFormer, UniFormer V2, and so on. In some embodiments, the action recognition model 120 may be a transformer-based model, such as an LMM. In other embodiments, the action recognition model 120 may be a convolution-based DNN, such as a convolutional neural network (CNN) .

[0035] The action recognition model 120 may generate an output from the input. The output of the action recognition model 120 may indicate a recognition of an action shown in the one or more images or one or more video. For instance, the output of the action recognition model 120 may be a label indicating a class of the recognized action, which may be eating food, drinking, texting, cleaning room, reading book, writing, moving, and so on. The action recognition model 120 may provide the output to the AI-powered agent 130 for the AI-powered agent 130 to perform a service. The action recognition model 120 may be executed by one or more processing units in the AI-powered agent 130 or the agent controller 140. Data associated with the action recognition model 120 (e.g., internal parameters, inputs, outputs, etc. ) may be stored in one or more memories in the AI-powered agent 130 or the agent controller 140.

[0036] In some embodiments, the action recognition model 120 may have been trained before it is deployed by the AI-powered agent 130 or agent controller 140. For instance, the interface module 110 may receive information of the action recognition model 120 from a computing device that trained the action recognition model 120. The computing device may be remote from the local area. In some embodiments, the computing device may function as a server of the AI-powered agent 130 or agent controller 140. The action recognition model 120 may be further trained by the continual learning module 150, as described below. Internal parameters of the action recognition model 120 may be updated during the further training process (es) . The accuracy of the action recognition model 120 may be improved after the further training process (es) .

[0037] The AI-powered agent 130 perform tasks within the local area. The AI-powered agent 130 is a device that is powered by AI models, including the action recognition model 120. In some embodiments, the AI-powered agent 130 may be a robot, such as a service robot. The AI-powered agent 130 may include one or more components that enable the AI-powered agent 130 to provide users with assistance, such as delivering items, cleaning surfaces, serving food or drink, providing medical care, and so on. The AI-powered agent 130 may also include one or more components that facilitate the AI-powered agent 130 to navigate within the local area. For instance, the AI-powered agent 130 may include one or more wheels, motors, positioning systems, or other types of navigation components.

[0038] In some embodiments, the AI-powered agent 130 may include or be otherwise associated with a compiler that compiles the action recognition model 120. The compiler may compile information of the action recognition model 120 to generate executable instructions that can be executed, e.g., by one or more hardware devices (e.g., processing units) , to carry out neural network operations in the action recognition model 120. In some embodiments, the compiler may obtain (e.g., receive or generate) a graph representing the action recognition model 120. The graph may include nodes and edges. A node may represent a specific neural network operation in the action recognition model 120. An edge may connect two nodes and represent a connection between the two corresponding neural network operations. In an example, an edge may encode a tensor that flows from one of the neural network operations to the other neural network operation. The tensor may be an output tensor of the first neural network operation and an input tensor of the second neural network operation. The edge may encode one or more attributes of the tensor, such as size, shape, storage format, and so on. The compiler may use the graph to generate an executable version of the action recognition model 120. For instance, the compiler may generate computer program instructions for executing the action recognition model 120. In some embodiments, the compiler may generate configuration parameters that may be used to configure components of the hardware device (s) for executing the action recognition model 120. The configuration parameters may be stored in one or more configuration registers associated with the components of the hardware device (s) .

[0039] In some embodiments, the AI-powered agent 130 may include one or more processing units that can execute the action recognition model 120. In other embodiments, the action recognition model 120 may be executed by another device with one or more processing units, and the AI-powered agent 130 may receive outputs of the action recognition model 120 from the other device. In some embodiments, the action recognition model 120 may be at least partially executed by a neural processing unit (NPU) . In some embodiments, the NPU can execute the action recognition model 120 by carrying out neural network operations in the action recognition model 120. The process of carrying out a neural network operation is also referred to as a process of executing the neural network operation or performing the neural network operation.

[0040] The NPU may be a DNN accelerator. In some embodiments, the NPU includes a memory, one or more data processing units, and a direct memory access engine that may transfer data between the memory and the one or more data processing units. A data processing unit may include processing elements, which may be arranged in an array. A processing element may include one or more multiplier and one or more adders. The processing elements can include components (e.g., multiplier, adder, etc. ) for performing computations, such as multiply-accumulate operations, matrix multiplication, and so on. The data processing unit may also include acceleration logic, which may acceleration neural network operations based on data sparsity. The acceleration logic may cause the data processing unit to skip computations based on sparsity in the input of a neural network operation. In some embodiments, the NPU may operate in accordance with instructions (e.g., configuration parameters) provided by the compiler.

[0041] The input of the action recognition model 120 may be written into the memory of the NPU, then transferred to one or more data processing units by the direct memory access engine. The NPU may run an inference process of the action recognition model 120 for action recognition. During the inference process, the one or more data processing units may execute neural network operations in the DNN with the input. In some embodiments, the action recognition model 120 may be executed by one or more central processing units, graphics processing units, or other types of processing units in addition to or alternative to the NPU.

[0042] The AI-powered agent 130 may obtain the output of the action recognition model 120. The AI-powered agent 130 may perform tasks based on outputs of the action  recognition model 120. For instance, the AI-powered agent 130 may assist one or more users in the local area based on an output of the action recognition model 120. The AI-powered agent 130 may determine a navigation route, determine what action (s) to take, or when to take an action based on an output of the action recognition model 120. An output of the action recognition model 120 may be a class of a historical action that represents a recognition of the historical action by the action recognition model 120. The historical action may be an action that has been taken in the local area. The historical action may be taken by the AI-powered agent 130, another object in the local area, an animal, or a human. One or more components of the AI-powered agent 130 may operate based on a classification of an action determined by the action recognition model 120.

[0043] In some embodiments, the AI-powered agent 130 may perform in-situ collection of training data for continually training the action recognition model 120. For instance, the AI-powered agent 130 may capture one or more images or videos in the local area. The one or more images or videos may be used as a training sample. The action recognition model 120 may provide the one or more images or videos to the continual learning module 150.

[0044] Even though FIG. 1 does not show any action recognition models other than the action recognition model 120, the AI system 100 may include or be otherwise associated with one or more other action recognition models that the AI-powered agent 130 may use in addition or alternative to the action recognition model 120. Certain aspects of the AI-powered agent 130 are described below in conjunction with FIG. 4.

[0045] The agent controller 140 controls operations of the AI-powered agent 130 in the local area. The agent controller 140 may determine navigation route of the AI-powered agent 130 in the local area. The agent controller 140 may also determine actions to be taken by the AI-powered agent 130, e.g., based on outputs of the action recognition model 120. In some embodiments, the agent controller 140 may include components that deploy the action recognition model 120, such as the compiler or processing unit (s) described above. The agent controller 140 may also include one or more memories for storing data used, received, or generated by the AI-powered agent 130. The agent controller 140 may also facilitate maintenance, calibration, or charging of the AI-powered agent 130. In some embodiments, the agent controller 140 may function as a console of the AI-powered agent 130.

[0046] In some embodiments, the agent controller 140 controls operations of the AI-powered agent 130 to collect data that can be used to continually train the AI-powered agent 130. The agent controller 140 may determine a location or time at which the AI-powered agent 130 will collect data within the local area. The agent controller 140 may also configure one or more sensors associated with the AI-powered agent 130 for capturing the data. A sensor may be mounted on the AI-powered agent 130. In an example of a camera, the agent controller 140 may determine one or more settings (e.g., ISO sensitivity, shutter speed, aperture, white balance, etc. ) of the camera using which the camera will capture one or more images or videos.

[0047] The continual learning module 150 facilitates continual learning of the action recognition model 120. The action recognition model 120 may be pretrained, e.g., before it is provided to the AI system 100 or used by the AI-powered agent 130 or agent controller 140. The continual learning module 150 may further train the action recognition model 120. The continual learning module 150 may train the action recognition model 120 in a continual manner. For instance, the continual learning module 150 may frequently train the action recognition model 120 as the action recognition model 120 is being used by the AI-powered agent 130 or agent controller 140.

[0048] The continual learning module 150 may generate a training dataset for each training process. The training dataset may include one or more training samples and one or more labels for each training sample. Data in the training samples may be collected by the AI-powered agent 130. Labels for training samples may be generated by the action recognition model 120 and further verified by another DNN model, which may be able to detect objects with a high accuracy. The other DNN model may be a multi-modality DNN. The continual learning module 150 may instruct the AI-powered agent 130 (directly or through the agent controller 140) to collect new data in the local area. The new data may be used to form a training sample, a label for which may be generated by the action recognition model 120 or verified by the multi-modality DNN.

[0049] In some embodiments, the continual learning module 150 may determine a schedule for continually training the action recognition model 120. For instance, the continual learning module 150 may determine a time or frequency for training the action recognition model 120. The continual learning of the action recognition model 120 may not cause interruption of the deployment of the action recognition model 120 by the AI-powered agent 130 or agent controller 140. In some embodiments, continual learning module 150 150 may find a time that the action recognition model 120 is not being deployed by the AI-powered agent 130 or agent controller 140 and schedule a training process to that time. In other times, the continual learning module 150 may make a duplication of the current version of the action recognition model 120 and use the duplication for the training process. After the training process, the continual learning module 150 may replace the current version of the action recognition model 120 with the updated duplication.

[0050] The training dataset generator 240 may perform a plurality of training processes at various timestamps throughout the period of time that the AI-powered agent 130 is used in the local area. In some embodiments, the training dataset generator 240 may continually train the action recognition model 120 as long as the AI-powered agent 130 would still need the action recognition model 120 to operate. In other embodiments, the continual learning module 150 may stop training the action recognition model 120 after the accuracy of the action recognition model 120 reaches a threshold. The threshold may be the accuracy of the multi-modality DNN. Certain aspects of the continual learning module 150 are provide below in conjunction with FIG. 2.

[0051] The datastore 160 stores data received, generated, used, or otherwise associated with the AI system 100. For example, the datastore 160 stores data received by the interface module 110. The datastore 160 may also store data generated by the action recognition model 120, AI-powered agent 130, agent controller 140, or continual learning module 150. For instance, the datastore 160 may store inputs or outputs of the action recognition model 120, training datasets for continually training the action recognition model 120, operation record of the AI-powered agent 130, and so on. The datastore 160 may also store information of the action recognition model 120, such as a graph representing the action recognition model 120, hyperparameters of the action recognition model 120, internal parameters of the action recognition model 120, and so on.

[0052] The datastore 160 may include one or more memories. In some embodiments, the datastore 160 may have a plurality of memories that are attributed to or located in different components of the AI system 100. In the embodiment of FIG. 1, the datastore 160 is a component of the AI system 100. In other embodiments, the datastore 160 may be external to the AI system 100 and communicate with the AI system 100 through a network.

[0053] FIG. 2 is a block diagram of a continual learning module 200, in accordance with various embodiments. The continual learning module 200 may be an example of the continual learning module 150 in FIG. 1. As shown in FIG. 2, the continual learning module 200 includes a sample selector 210, an attribute rule model 220, a multi-modality model 230, a training dataset generator 240, a training module 250, and a validating module 260. In other embodiments, alternative configurations, different or additional components may be included in the continual learning module 200. Further, functionality attributed to a component of the continual learning module 200 may be accomplished by a different component included in the continual learning module 200 or a different module or system (such as the AI system 100 or a component thereof) .

[0054] The sample selector 210 may filter samples to find samples with accurate labels. A sample may include one or more images or videos capturing an action and a label indicating the action. The one or more images or videos may be vision data. The action may be performed by one or more objects (e.g., person, animal, device, etc. ) in a local area. The local area may be a confined space where an agent deploying the action recognition model operates. The agent may be the AI-powered agent 130. The one or more images or videos may be captured by the AI-powered agent 130. The label may be generated by the action recognition model 120. The sample selector 210 may receive a plurality of samples and determine whether the label in each sample is accurate. The samples may be generated during the normal operation of the AI-powered agent 130, e.g., operation for aiding users.

[0055] The sample selector 210 may use transformer-based models to determine whether the label in a sample is accurate. For instance, the sample selector 210 may deploy the attribute rule model 220 to determine one or more attribute rules based on the label. The sample selector 210 may input the label into the attribute rule model 220 and receive an output of the attribute rule model 220 that indicates the attribute rule (s) . An attribute rule may be a rule on an attribute of the action represented by the label. Taking an action of eating food for example, the attribute rules may indicate that a hand is holding an eating utensil, a mouth is chewing, and so on. In some embodiments, the attribute rule model 220 may be an LLM. The LLM may have language features. For instance, it can generate textual data (e.g., textual tokens indicating the attribute rule (s) ) from a prompt (e.g., the label) . In some embodiments, the attribute rule model 220 may be pretrained by an external device or system, such as a computing device that functions as a server.

[0056] The sample selector 210 may then deploy the multi-modality model 230. The multi-modality model 230 can process various types of data at the same time. For instance, the multi-modality model 230 may have both vision and language features. The vision feature may be used to process vision data (e.g., images or videos) , and the language feature may be used to process textual data. The multi-modality model 230 may have a higher accuracy or confidence than the action recognition model 120. The sample selector 210 may provide the textual output of the attribute rule model 220 and the vision data in each sample into the multi-modality model 230. The textual data and vision data may constitute a single input of the multi-modality model 230. The multi-modality model 230 may process the textual data using its language feature and process the vision data using its vision feature.

[0057] The multi-modality model 230 may generate an output indicating whether the vision data matches the textual data. For instance, the multi-modality model 230 may generate an output indicating whether the image (s) or video (s) show each object indicated by the attribute rule (s) . In some embodiments, the multi-modality model 230 may have been trained to detect objects. In some embodiments, the multi-modality model 230 may search for one or more objects indicated by the attributed rule (s) in the image (s) or video (s) . In the example in which the action is eating food, the multi-modality model 230 may search for eating utensil, food, and hand in the image (s) or video (s) . In the example in which the action is writing, the multi-modality model 230 may search for hand, paper, and pen in the image (s) or video (s) . The multi-modality model 230 may provide a bounding box around a detected object in the image or video.

[0058] In embodiments where the output of the multi-modality model 230 indicates that the vision data matches the textual data (meaning objects detected from the image (s) or video (s) satisfies the attribute rule (s) ) , the sample selector 210 may determine that the sample is accurate. In embodiments where the output of the multi-modality model 230 indicates that the vision data does not match the textual data (meaning objects detected from the image (s) or video (s) does not satisfy the attribute rule (s) ) , the sample selector 210 may determine that the sample is inaccurate. In some embodiments, the sample selector 210 may determine an accuracy score for the sample based on the output of the multi-modality model 230. The accuracy score may indicate a rating of the accuracy or confidence of the action recognition model 120 for the label of the sample. In embodiments where the accuracy score meets a threshold (e.g., the accuracy score is equal to or greater than a threshold score) , the sample selector 210 may determine that the label of the sample is accurate.

[0059] The sample selector 210 may use the attribute rule model 220 and multi-modality model 230 to check the accuracy of a plurality of samples and identify the accurate samples. After the sample selector 210 finds an accurate sample, the sample selector 210 may send a notification to the training dataset generator 240 for generating data to further train the action recognition model 120. In some embodiments, the sample selector 210 may select accurate samples and send out notifications in real time. For instance, after the sample selector 210 receives a sample, there may be minimal or even no delay in determining whether the sample is accurate. After it is determined that the sample is accurate, there may be minimal or even no delay in sending out the notification.

[0060] The training dataset generator 240 generates training data to be used by the training dataset generator 240 to continually train the action recognition model 120. In some embodiments, after receiving a notification from the sample selector 210 that an accurate sample has been found, the training dataset generator 240 may use the sample as a training sample for continually training the 120. Additionally or alternatively, the training dataset generator 240 may instruct the AI-powered agent 130 to collect new data. The new data collection may be in-situ data collection so that the AI-powered agent 130 may collect the new data at the same location (or at a nearby location) where the AI-powered agent 130 captured the vision data in the corresponding sample. In some embodiments, the new data may be collected shortly after the collection of the data in the sample so that both the new data and the data in the sample capture the same action. It may be assumed that an action would continue within a short time window.

[0061] In the example in which the AI-powered agent 130 captures vision data showing that a person is eating, it is very likely that the person will continue to eat within a short time window, such as several seconds or minutes. The AI-powered agent 130 may move around the observed person to record more data for the observed action, which can add more data to the sample, such as data with different viewpoints, lighting conditions, distances, and so on.In some embodiments, the training dataset generator 240 may check whether the same action is indeed being performed (e.g., whether the person is still eating) , the training dataset generator 240 may do (or instruct the sample selector 210 to do) another accuracy check. For the accuracy check, the training dataset generator 240 may instruct the AI-powered agent 130 to move to a good or even better viewpoint.

[0062] The training dataset generator 240 may add the new data as a new training sample in a training dataset. The label of the sample, the accuracy of which has been verified by the multi-modality model 230, may be used as a ground-truth label of the training sample. Alternatively, the new vision data may be input into the action recognition model 120 to generate a new label, and the new label may be verified by the multi-modality model 230 before it is included in the training dataset.

[0063] In some embodiments, the training dataset generator 240 may augment a training sample by modifying an image or video of the training sample. For instance, the training dataset generator 240 may change the background of the image or video to a background that matches the current environment of the local area. The training dataset generator 240 may replace the original image or video in the training sample with the modified image or video.

[0064] The training module 250 continually trains the action recognition model 120 using training samples obtained by the training dataset generator 240. In some embodiments, the training module 250 may determine one or more hyperparameters for training the action recognition model 120. Hyperparameters are variables specifying the training process. Hyperparameters are different from parameters inside the action recognition model 120. Hyperparameters may include variables which determine how the action recognition model 120 is trained, such as batch size, number of epochs, training frequency, training time, and so on.

[0065] A batch size defines the number of training samples to work through before updating the parameters of the action recognition model 120. The batch size is the same as or smaller than the number of samples in the training dataset. The training dataset can be divided into one or more batches. The number of epochs defines how many times the entire training dataset is passed forward and backwards through the entire network. The number of epochs defines the number of times that the deep learning algorithm works through the entire training dataset. One epoch means that each training sample in the training dataset has had an opportunity to update the parameters inside the action recognition model 120. An epoch may include one or more batches. The number of epochs may be 1, 5, 10, 50, 100, 500, 1000, or even larger.

[0066] The training module 250 may input one or more training samples into the action recognition model 120. The action recognition model 120 processes a training sample during a forward pass and generates an output. The training module 250 may compute a loss from the output of the action recognition model 120. The training module 250 may modify internal parameters (e.g., weights, etc. ) of the action recognition model 120 to minimize the loss during a backward pass. The training module 250 may train the action recognition model 120 for a predetermined number of epochs. After the training module 250 finishes the predetermined number of epochs, the training module 250 may stop updating the parameters in the action recognition model 120.

[0067] In some embodiments, the training module 250 may train the action recognition model 120 every time the training module 250 obtains a new training sample. In other embodiments, the training module 250 may train the action recognition model 120 periodically or at predetermined times. The training module 250 may also verify the accuracy of the action recognition model 120. The training module 250 may stop or pause continual training after a determination that the accuracy of the action recognition model 120 reaches a threshold.

[0068] The validating module 260 may verify accuracy of the action recognition model 120 after the action recognition model 120 is trained by the training module 250. In some embodiments, the validating module 260 inputs a validation dataset into the action recognition model 120 and uses the outputs of the action recognition model 120 to determine the model accuracy. In some embodiments, a validation dataset may be formed of some or all the samples in the training dataset. Additionally or alternatively, the validation dataset includes additional samples, other than those in the training sets.

[0069] In some embodiments, the validating module 260 may determine an accuracy score of the action recognition model 120. The validating module 260 may determine the accuracy score using a metric that measures how often the predictions of the action recognition model 120 are correct. For instance, the validating module 260 may calculate the accuracy score by diving the number of correct predictions of the action recognition model 120 by the total number of predictions of the action recognition model 120. A prediction may be an action class determined by the action recognition model 120 from a validation sample (e.g., a video) .

[0070] The validating module 260 may compare the accuracy score with a threshold accuracy. In an example where the validating module 260 determines that the accuracy score of the DNN is less than the threshold, the validating module 260 instructs the training module 250 to retrain the action recognition model 120. In one embodiment, the validating module 260 may instruct the training module 250 to iteratively retrain the action recognition model 120 until the occurrence of a stopping condition, such as the accuracy measurement indication that the action recognition model 120 may be sufficiently accurate, or a number of training rounds having taken place.

[0071] In some embodiments, the validating module 260 may also verify an accuracy of the attribute rule model 220 or multi-modality model 230, e.g., by using the method (s) described above. In some embodiments, the validating module 260 may determine whether an accuracy of the multi-modality model 230 is above a threshold accuracy. Additionally or alternatively, the validating module 260 may determine whether an accuracy of the multi-modality model 230 is higher than an accuracy of the action recognition model 120.

[0072] FIG. 3 illustrates a continual learning process, in accordance with various embodiments. The continual learning process is for training an action recognition model 310. The action recognition model 310 may be an example of the action recognition model 120 in FIG. 1. In the embodiments of FIG. 3, the action recognition model 310 receives vision data 301 as input and outputs an action label 302. The vision data 301 may include one or more images or videos collected by a device (e.g., a robot, not shown in FIG. 3) operating in a local area using the action recognition model 310. The action label 302 may indicate an action recognized by the action recognition model 310 from the vision data 301.

[0073] The action label 302 is provided to an attribute rule model 320, which may be an example of the attribute rule model 220 in FIG. 2. The attribute rule model 320 outputs a rule set 303, which may include one or more attribute rules. An attribute rule may be a rule specifying an attribute of an object associated with the action recognized by the action recognition model 310. The vision data 301 and rule set 303 are input into a multimodal model 330, which may be an example of the multi-modality model 230 in FIG. 2. The multimodal model 330 may detect one or more objects that are shown in the vision data 301 and meet the rule set 303. The output of the multimodal model 330 may include a bounding box enclosing every detected object. The output of the multimodal model 330 may be input into the sample selector 340. The sample selector 340 may be an example of the sample selector 210 in FIG. 2. In some embodiments (e.g., embodiments where the multimodal model 330 detects all or most of the objects indicated by the rule set 303) , the sample selector 340 may determine that the action label 302 is accurate.

[0074] In response to determining that the action label 302 is accurate, the sample selector 340 may form a training sample with the vision data 301. The action label 302 may be used as a ground-truth label of the training sample. The vision data 301 and action label 302 may be stored in a training datastore 350. Additionally or alternatively, the sample selector 340 may instruct the device to capture new vision data 304. The new vision data 304 may be captured shortly after the vision data 301, such as seconds or minutes later. The new vision data 304 may show the action shown in the vision data 301. The sample selector 340 may deploy the action recognition model 310 to generate a label from the new vision data 304. The sample selector 340 may also deploy the multimodal model 330 to verify the accuracy of the label. The new vision data 304 and new label may be stored in the training datastore 350 for being used as a new training sample.

[0075] A trainer 360 may train the action recognition model 310 with the training data stored in the training datastore 350. The trainer 360 may be an example of the training module 250 in FIG. 2. In some embodiments, the trainer 360 continually trains the action recognition model 310, e.g., through a plurality of training iterators. During each training iteration, the continual learning process shown in FIG. 3 may be performed.

[0076] The continual learning process shown in FIG. 3 is an example of an embodied semi-supervised continual learning method for action recognition. In this approach, a high accuracy confidence estimation can be conducted by using the attribute rule model 320 and multimodal model 330 to accurately identify high confidence samples an action category recognized by the action recognition model 310. The device may leverage its moving capability to take more image or video samples of this action. In some embodiments, the device may approach a user to get explicit feedback. In an example, the device may seek user feedback at a frequency desired or set by a user, such as three or four times a day. After new data samples are collected, the action recognition model 310 may be finetuned using the new data to achieve higher accuracy. Therefore, this approach, which combines selection of high-accuracy samples and in-situ data collection, can effectively improve the accuracy of the action recognition model 310.

[0077] FIG. 4 illustrates a local area 400 with an AI-power assistant 410, in accordance with various embodiments. The local area 400 may be room. In other embodiments, the local area 400 may be other types of space. The AI-power assistant 410 may be an example of the AI-powered agent 130 in FIG. 1. For the purpose of illustration, the AI-power assistant 410 is a service robot that can deliver and serve items to a user 430 and user 440 in the local area 400. The AI-power assistant 410 has a sensor 420, which may be a camera, that can capture vision data. The vision data may be images or videos. The AI-power assistant 410 may perform service based on actions recognized by an action recognition model, e.g., the action recognition model 120 in FIG. 1.

[0078] In an example scenario, the sensor 420 may capture a video of the user 430 drinking wine from a cup, as shown in FIG. 4. The AI-power assistant 410 may input the video into the action recognition model, and the action recognition model 120 may recognize the action of the user 430 and output an action label describing the action of the user 430. Based on the recognized action of the user 430, the AI-power assistant 410 may bring a wine bottle to the user 430 to refill the cup of the user 430. The AI-power assistant 410 may also send the video and the action label to a continual learning module, e.g., the continual learning module 150 in FIG. 1. The continual learning module 150 may verify the accuracy of the action label, e.g., by using the attribute rule model 220 and multi-modality model 230 in FIG. 2.

[0079] After receiving a verification that the action label is accurate, the continual learning module 150 may use the video as a training sample and use the action label as a ground-truth label of the training sample to further train the action recognition model 120. Additionally or alternatively, the continual learning module 150 may instruct the AI-power assistant 410 to capture another video of the user 430 using the sensor 420. In some embodiments, the continual learning module 150 may instruct the AI-power assistant 410 to capture the other video from a different viewpoint with a different setting of the sensor 420. The time difference between the two videos may be below a threshold duration of time, e.g., 10 seconds, 30 seconds, one minutes, and so on. The action recognition model 120 may generate an action label of the second video. The continual learning module 150 may verify the accuracy of the action label of the second video. After the accuracy is verified, the continual learning module 150 may use the second video as a training sample and use the action label of the second video as a ground-truth label to further train the action recognition model 120.

[0080] The AI-power assistant 410 may provide service in the local area 400 for days, weeks, months, or even years. The action recognition model 120 may be continually trained throughout the time the AI-power assistant 410 operates in the local area 400. In some embodiments, the more the action recognition model 120 is trained, the more accurate action labels generated by the action recognition model 120.

[0081] FIG. 5A illustrates an example transformer model 500, in accordance with various embodiments. The transformer model 500 may be at least part of a DNN, such as an LLM or LMM. The transformer model 500 may be an example of at least part of the action recognition model 120 in FIG. 1, the attribute rule model 220 in FIG. 2, the multi-modality model 230 in FIG. 2, the action recognition model 310 in FIG. 3, the attribute rule model 320 in FIG. 3, or the multimodal model 330 in FIG. 3. The transformer model 500 may transform input sequences into output sequences. In some embodiments, the transformer model 500 is a neural network that can learn context and meaning by tracking relationships in sequential data, such as sequential words in a sentence, sequential audio signals, sequential images, and so on.

[0082] As shown in FIG. 5A, the transformer model 500 includes an encoder block 510, a decoder block 520, and a head block 530. In other embodiment, different or additional components may be included in the transformer model 500. Further, functionality attributed to a component of the transformer model 500 may be accomplished by a different component included in the transformer model 500 or a different model or module.

[0083] The encoder block 510 receives input sequences and generates matrix representations of the input sequences. In the embodiments of FIG. 5A, the encoder block 510 receives inputs 501 and generates encoder outputs 502. In some embodiments, the inputs 501 may include one or more input tokens, such as words, phrases, sentences, images, audio signals, other types of input tokens, or some combination thereof. In an example, the inputs 501 may include a prompt received from a user of the transformer model 500. The prompt may include a question or request made by the user. A word in the prompt may be an input token. The encoder outputs 502 may include one or more vectors that are contextualized representations of the input 501. Each vector in the encoder outputs 502 may represent a token in the input 501 with contextual understanding.

[0084] The encoder block 510 includes an embedding layer 513, a positional encoding layer 515, and a plurality of layers 540 (individually referred to as “layer 540” ) . In other embodiments, the encoder block 510 may have different, fewer, or more components. Also, the arrangement of the components in the encoder block 510 may be different from the arrangement shown in FIG. 5A. For the purpose of illustration, the encoder block 510 has N layers in FIG. 5A, where N is an integer. Each layer 540 may include one or more neural network operations. The layers 540 may transform a sequence of embeddings into a representation that encapsulates the learned information from the input 501. Different layers 540 may have different internal parameters, e.g., different weights, bias, or other types of internal parameters. In some embodiments, the layers 540 have identical components. The components in a layer 540 may be layers and may also be referred to as sub-layers of the layer 540. As shown in FIG. 5A, a layer 540 includes four sub-layers: a multi-head attention (MHA) layer 541, an add &norm layer 542, a feed forward layer 543, and another add &norm layer 544.

[0085] The decoder block 520 iteratively generates outputs 503 using encoded representations generated by the encoder block 510. The decoder block 520 includes an embedding layer 523, a positional encoding layer 525, and a plurality of layers 550 (individually referred to as “layer 550” ) . For the purpose of illustration, the decoder block 520 has N layers in FIG. 5A, where N is an integer. In the embodiments of FIG. 5A, the number of layers 550 in the decoder block 520 is the same as the number of layers 540 in the encoder block 510. In other embodiments, the number of layers 550 in the decoder block 520 may be different from the number of layers 540 in the encoder block 510. Each layer 550 may include one or more neural network operations. Different layers 550 may have different internal parameters. In some embodiments, the layers 550 may have identical components. The components in a layer 550 may be layers and may also be referred to as sub-layers of the layer 550. As shown in FIG. 5A, a layer 550 includes six sub-layers: an MHA layer 551, an add &norm layer 552, an encoder-decoder attention layer 553, another add &norm layer 554, a feed forward layer 555, and another add &norm layer 556.

[0086] In some embodiments, a sequence of inference phases is performed in the decoder block 520 using encoder outputs, e.g., the encoder outputs 502. A matrix may be predicted through each inference phase. The outputs 503 may include a plurality of matrices. Each matrix may be further processed in the head block 530 to predict a token. The plurality of matrices may be used to predict a sequence of tokens. For the first inference phase, the decoder block 520 may receive one or more start tokens as input tokens and compute a first matrix from the input tokens and the output of the encoder block 510. The first matrix may be used by the head block 530 to predict a first token. The predicted token may be used as a new input token, in addition to the start token (s) , in the second inference phase. Similarly, a second token may be predicted through the second inference phase and may be used in the third inference phase. This iteration may continue till all the inference phases are complete.

[0087] The head block 530 receives the output of the decoder block 520 and processes it in a linear layer 533 and a SoftMax layer 535. A linear operation may be performed on the output of the decoder block 520 in the linear layer 533. The linear operation may include a multiplication of the output of the decoder block 520 with a weight matrix. The output of the linear layer 533 may be a vector. In some embodiments, the head block 530 may function as a classifier. The number of data elements in the vector computed in the linear layer 533 may depend on the number of classes involved. In an example where there are M classes, where M is an integer, the vector computed in the linear layer 533 may have M data elements representing the prediction for the M classes, respectively.

[0088] The output of the linear layer 533 may be input into the SoftMax layer 535. A SoftMax function may be applied on the output of the linear layer 533 to compute probability scores. A probability score may have a value in the range from 0 to 5. In some embodiments, a probability value is computed for each data element in the vector computed in the linear layer 533. The highest one of the probability scores may be the key. The corresponding index of the key may point to the token that the transformer model 500 predicts as the next in the sequence. The final output of the transformer model 500 may be the sequence of predicted tokens. In some embodiments, the head block 530 may be a language modeling head.

[0089] An embedding layer (e.g., the embedding layer 513 or the embedding layer 523) converts an input of the embedding layer (e.g., the inputs 501 or the outputs 503) into one or more embeddings. An embedding may be a vector, which is also referred to as an embedding vector or a vector embedding. The vector embedding may include a sequence of data elements. In some embodiments, the embedding layer 513 may generate a plurality of embeddings, each of which may be converted from a different input token in the inputs 501. The embeddings may capture the semantic meaning of the tokens in the input 501. The embeddings may be numerical representations that capture the relationships or meanings of words, phrases, or other data types. In an example where the input 501 is a prompt including a sequence of words, the embedding layer 513 may generate an embedding from each word in the input 501. The embedding layer 523 in the decoder block 520 may generate a plurality of embeddings from tokens received by the decoder block 520 in a similar manner as the embedding layer 513.

[0090] A positional encoding layer (e.g., the positional encoding layer 515 or the positional encoding layer 525) performs positional encoding on embeddings generated in the corresponding embedding layer. In some embodiments, the positional encoding layer may apply one or more positional encoding vectors (e.g., a positional encoding vector 504 or positional encoding vector 505) on vector embeddings from the corresponding embedding layer to generate new vector embeddings that represents the embeddings with positional context. The positional encoding vector may encode information about the position of the embedding in a sequence of embeddings. In some embodiments, the positional encoding layer performs an addition operation on a positional encoding vector and a vector embedding. The addition operation may be elementwise addition. The positional encoding layer may output an embedding matrix that includes the vector embeddings computed in the positional encoding layer.

[0091] An MHA layer (e.g., the MHA layer 541, the MHA layer 551, or the MHA layer 553) may implement a multi-head attention mechanism, which may be a multi-head self-attention mechanism or a multi-head cross-attention mechanism. In some embodiments, the MHA layer 541 or the MHA layer 551 may implement a self-attention mechanism. For self-attention, the queries, keys, and values may come from the same place. For instance, for the MHA layer 541, the queries, keys, and values may all come from the positional encoding layer 515. For the MHA layer 551, the queries, keys, and values may all come from the positional encoding layer 525. The self-attention mechanism may enable the transformer model 500 to relate each token with other tokens. The MHA layer may compute attention scores from embeddings generated in the corresponding positional encoding layer. In some embodiments, the MHA layer may receive one or more queries, one or more keys, and one or more values. In some embodiments, the MHA layer has a number of heads that receive different linearly projected versions of the queries, keys, and values and produce outputs in parallel that are then used to generate the final result.

[0092] In some embodiments, the queries, keys, and values input into the MHA layer 541 may be computed from vector embeddings generated by the positional encoding layer 515. The queries, keys, and values input into the MHA layer 551 may be computed from vector embeddings generated by the positional encoding layer 525. A query, key, or value may be a vector the represents a token in a sequence. In some embodiments, a query matrix may be computed by multiply an embedding matrix  (e.g., an embedding matrix computed in a positional encoding layer) with a weight matrix where d is the dimension of a vector embedding, N is the number of vector embeddings in the embedding matrix, and h is the number of attention heads. Each row in the query matrix may be a query. A key matrix may be computed by multiple an embedding matrix  (e.g., an embedding matrix computed in a positional encoding layer) with a weight matrix Each row in the key matrix may be a key. A value matrix may be computed by multiple an embedding matrix  (e.g., an embedding matrix computed in a positional encoding layer) with a weight matrix Each row in the value matrix may be a value.

[0093] In some embodiments, the MHA layer 551 may implement masked multi-head self-attention. The MHA layer 551 may prevent positions from attending to subsequent positions. For instance, each token in the sequence may not be influenced by future tokens. This masking can ensure that the predictions of a particular position can depend on known outputs at positions before it and not depend on unknown outputs at positions after it.

[0094] In some embodiments, the MHA layer 553 may implement a cross-attention mechanism, such as encoder-decoder cross-attention. The MHA layer 553 may use outputs from the previous layer (i.e., the add &norm layer 552) as queries and use outputs from the encoder block 510 as keys and values. The cross-attention can align the encoder’s input with the decoder’s, empowering the decoder block 520 to identify and emphasize the most relevant parts of the encoder’s input.

[0095] An add &norm layer in the transformer model 500, such as the add &norm layer 542, 544, 552, 554, and 556, has an addition operation followed by a layer normalization operation. The addition operation may be an addition of the output of the preceding layer and the input of the preceding layer. The preceding layer is a layer that is arranged right before the add &norm layer. For example, the preceding layer of the add &norm layer 542 is the MHA layer 541. As another example, the preceding layer of the add &norm layer 554 is the encoder-decoder attention layer 553.

[0096] Then the layer normalization operation is applied on the result of the addition operation, which may be denoted as LayerNorm (x+sublayer (x) ) , where LayerNorm denotes layer normalization, x is the input of the preceding layer, and sublayer (x) denotes the output of the preceding layer. In some embodiments, the layer normalization operation may include a sequence of computations. In an example, the layer normalization operation may include a mean computation, which may be denoted as where Axyz denotes a data element in the input tensor, x may be the positional index of the data element in one of the spatial dimensions, y may be the positional index of the data element in the other one of the spatial dimensions, z may be the positional index of the data element in the channel dimension, and μxy denotes the output of the mean computation, which may be a 2D matrix. The mean computation may be channel-wise reduction operation. The layer normalization operation may convert μxy to a 3D tensor μxyz, e.g., by replicating every data element over z output points.

[0097] The layer normalization operation may also include an elementwise subtraction, which may be denoted as Dxyz=Axyz-μxyz. The layer normalization operation may further include a variance computation denoted as and a division computation denoted as Mxy may be a 2D tensor. The layer normalization operation may also convert Mxy to a 3D tensor Mxyz, e.g., by replicating every data element over z output points. Further, the layer normalization operation may have an element multiplication denoted as The layer normalization operation may further compute  and LNxyz=A″xyz×γz. LNxyz may be the output of the layer normalization operation.

[0098] A feed forward layer (e.g., the feed forward layer 543 and the feed forward layer 555) may be a position-wise fully-connected feed forward network. In an example, the feed forward layer may include two linear layers with an activation function in between. An example of the activation function is Rectified Linear Unit (ReLU) .

[0099] FIG. 5B illustrates an embedding operation in an embedding layer 580, in accordance with various embodiments. The embedding layer 580 may be an example of the embedding layer 513 or the embedding layer 523 in FIG. 5A, e.g., in embodiments where the transformer model 500 is at least part of an LLM. As shown in FIG. 5B, the embedding layer 580 receives an input sequence 581. The input sequence 581 is a textual sequence that includes three words 582, 583, and 584. Each word may be a token. The embedding layer 580 generates a vector embedding 585 from the word 582. The embedding layer 580 also generates a vector embedding 586 from the word 583. The embedding layer 580 further generates a vector embedding 587 from the word 584. In the embodiments of FIG. 5B, the vector embeddings 585, 586, and 587 have the same dimension, i.e., they each have five data elements. In other embodiments, the vector embedding 585, 586, or 587 may have a different dimension. Also, the input sequence 581 may include a different number of words or characters.

[0100] In some embodiments where the embedding layer 580 is in an encoder (e.g., the encoder block 510) , the input sequence 581 may be an input received by the encoder, such as a prompt made by a user. The input sequence 581 may remain the same during inference of the encoder. In some embodiments where the embedding layer 580 is in a decoder (e.g., the decoder block 520) , the input sequence 581 may change and the dimension of the input sequence 581 may be dynamic during inference of the decoder. In an example, the decoder inference may include a sequence of phases. Each inference phase may be conducted for predicting a token. For the first inference phase, the input sequence 581 may include one or more start tokens. For each subsequent inference phase (e.g., the second inference phase, the third inference phase, etc. ) , the input sequence 581 may include tokens predicted in the previous inference phases. The dimension of the input sequence may be increased by one after each inference phase.

[0101] FIG. 5C illustrates an embedding operation in another embedding layer 590, in accordance with various embodiments. The embedding layer 590 may be an example of the embedding layer 513 or the embedding layer 523 in FIG. 5A, e.g., in embodiments where the transformer model 500 is at least part of an LMM. The embedding layer 590 may be a multi-modal embedding layer. As shown in FIG. 5C, the embedding layer 590 receives an input sequence 591 and an input image 598. The input sequence 591 and input image 598 may constitute an input datum.

[0102] The input sequence 591 is a textual sequence that includes three words 592, 593, and 594. Each word may be a token. The embedding layer 590 generates a vector embedding 595 from the word 592. The embedding layer 590 also generates a vector embedding 596 from the word 593. The embedding layer 590 further generates a vector embedding 597 from the word 594. In the embodiments of FIG. 5C, the vector embeddings 595, 596, and 597 have the same dimension, i.e., they each have five data elements. In other embodiments, the vector embedding 595, 596, or 597 may have a different dimension.

[0103] The embedding layer 590 generates another vector embedding 599 from the image 598. The embedding 599 may be a representation of the 598. In some embodiments, the embedding layer 590 may partition the image 598 into a plurality of portions and may encode each portion with an element in the 599. Even though the embedding 599 in FIG. 5C has four data elements, the embedding 599 may have a different number of data elements in other embodiments. Also, even though not shown in FIG. 5C, the input datum may include one or more other types of data, such as video, audio, and so on.

[0104] In some embodiments where the embedding layer 590 is in an encoder (e.g., the encoder block 510) , the input datum may be an input received by the encoder, such as a prompt made by a user. The input datum may remain the same during inference of the encoder. In some embodiments where the embedding layer 590 is in a decoder (e.g., the decoder block 520) , the input datum may change and the dimension of the input sequence 591 may be dynamic during inference of the decoder. In an example, the decoder inference may include a sequence of phases. Each inference phase may be conducted for predicting a token. For the first inference phase, the input sequence 591 may include one or more start tokens. For each subsequent inference phase (e.g., the second inference phase, the third inference phase, etc. ) , the input sequence 591 may include tokens predicted in the previous inference phases. The input datum may have more data after each inference phase.

[0105] FIG. 6 illustrates a first inference phase of a transformer model 600, in accordance with various embodiments. The transformer model 600 includes an encoder 610, a decoder 620, and a head 630. An example of the transformer model 600 may be the transformer model 500 in FIG. 5A. In the embodiments of FIG. 6, the encoder 610 receives an input tensor 601. The input tensor 601 may be a feature map extracted from one or more images, text documents, audio files, videos, other types of data, or some combination thereof. The encoder 610 generates an output tensor 602 from the input tensor 601. The shape of the output tensor 602 may be denoted as [batch size, SLencoder, dmodel] , where SLencoder may be the dimension along the X axis (i.e., the width of the output tensor 602) , and dmodel may be the dimension along the Y axis (i.e., the height of the output tensor 602) . The encoder 610 may include a plurality of layers arranged in a sequence, such as the layers inside the encoder block 510 in FIG. 5A. The output tensor 602 is provided to the decoder 620.

[0106] The decoder 620 receives the output tensor 602 and an input sequence 603. The input sequence 603 may be a sequence of tokens. A token may be a numerical representation of an input signal, such as word, image, audio signal, video signal, etc. The dimension of the input sequence 603, which may be denoted as SLinput, may be the total number of tokens in the input sequence 603. For the purpose of illustration and simplicity, SLinput is 4. In other embodiments, the input sequence 603 may have a different shape. For instance, the input sequence 603 may be a 2D tensor. The dimension of the 2D tensor along the X axis may be SLinput, while the dimension of the 2D tensor along the Y axis may be a batch size indicating the number of batches in the input sequence 603.

[0107] The decoder 620 computes an output tensor 604, a self-attention key tensor 605, a self-attention value tensor 606, a cross-attention key tensor 607, and a cross-attention value tensor 608. In some embodiments, the shape of the output tensor 604 may be denoted as [batch size, SLinput, dmodel] . The shape of the self-attention key tensor 605 or the shape of the self-attention value tensor 606 may be denoted as N×[batch size, h, SLinput, dhead] , where N is the number of identical layers in the decoder (e.g., the number of layers 550 in the decoder block 520) , h is the total number of heads in a MHA layer, and dhead is the dimension of a query vector, key vector, or value vector. In some embodiments, dmodel=h×dhea. The shape of the cross-attention key tensor 607 or the shape of the cross-attention value tensor 608 may be denoted as N×[batch size, h, SLencoder, dhead] .

[0108] The output tensor 604 may be provided to the head 630 and the head 630 outputs a predicted token 609. The shape of the token 609 may be denoted as [batch size, 1] . For the purpose of illustration and simplicity, batch size is 1 in FIG. 6. In other embodiments, batch size may be a larger number. The predicted token 609 may be stored in a buffer. In some embodiments, the predicted token 609 may be used to update the input sequence 603. For instance, the predicted token 609 may be added to the right of the input sequence 603. The updated input sequence may be used as the input sequence in the second inference phase. In the second inference phase, the decoder 620 may receive the updated input sequence and the output tensor 602 for predicting another token. The output tensor 602 may remain the same during inference of the decoder 620. Certain aspects of subsequent inference phases are described below in conjunction with FIG. 7.

[0109] In some embodiments, the self-attention key tensor 605 and the self-attention value tensor 606 may be provided to a self-attention layer in the decoder 620, an example of such a self-attention layer is the MHA layer 151. The self-attention key tensor 605 may be stored in a self-attention key cache. The self-attention key cache may have the same shape as the self-attention key tensor 605. The self-attention value tensor 606 may be stored in a self-attention value cache. The self-attention value cache may have the same shape as the self-attention value tensor 606.

[0110] In some embodiments, the decoder 620 computes the self-attention key tensor 605 and the self-attention value tensor 606 from the input sequence 603. The input sequence 603 may be dynamic during inference of the decoder 620. For instance, a new token may be added to the input sequence 603 after each inference phase, as described above. As the input sequence 603 changes, the self-attention key tensor 605 and the self-attention value tensor 606 would also change. For instance, the dimension of the self-attention key tensor 605 or the self-attention value tensor 606 along the X axis may increase as SLinputincreases. The self-attention key cache and the self-attention value cache may change during all the inference phases of the decoder 620 to accommodate the changes in the self-attention key tensor 605 and the self-attention value tensor 606.

[0111] In some embodiments, the cross-attention key tensor 607 and the cross-attention value tensor 606 may be provided to a cross-attention layer in the decoder 620, an example of such a cross-attention layer is the MHA layer 153. The cross-attention key tensor 607 may be stored in a cross-attention key cache. The cross-attention key cache may have the same shape as the cross-attention key tensor 607. The cross-attention value tensor 608 may be stored in a cross-attention value cache. The cross-attention value cache may have the same shape as the cross-attention value tensor 608. In some embodiments, the decoder 620 computes the cross-attention key tensor 607 and the cross-attention value tensor 606 from the output tensor 602 generated in the encoder 610. As the output tensor 602 does not change during inference of the decoder 620, the cross-attention key tensor 607 and the cross-attention value tensor 606 may remain the same during all the inference phases of the decoder 620. The cross-attention key cache and the cross-attention value cache may remain the same during all the inference phases of the decoder 620.

[0112] FIG. 7 illustrates subsequent inference phases of the transformer model, in accordance with various embodiments. In the second inference phase, the decoder 620 may reuse the self-attention key tensor 605, self-attention value tensor 606, cross-attention key tensor 607, and cross-attention value tensor 608. The decoder 620 also receives the predicted token 609. The decoder 620 may compute self-attention key vectors from the predicted token 609 and concatenate the self-attention key vectors with the self-attention key tensor 605 to generate a new self-attention key tensor 615. For instance, a self-attention key vector for each head may be added to the right of a self-attention key matrix in the self-attention key tensor 605, and the self-attention key vector and the self-attention key matrix may correspond to the same head. The elements highlighted with a dot pattern in the self-attention key tensor 615 are the self-attention key vectors generated from the predicted token 609.

[0113] Similarly, the decoder 620 may compute self-attention value vectors from the predicted token 609 and concatenate the self-attention value vectors with the self-attention value tensor 606 to generate a new self-attention value tensor 616. For instance, a self-attention value vector for each head may be added to the right of a self-attention value matrix in the self-attention value tensor 606, and the self-attention value vector and the self-attention value matrix may correspond to the same head. The elements highlighted with a dot pattern in the self-attention value tensor 616 are the self-attention value vectors generated from the predicted token 609.

[0114] The decoder 620 also generates an output tensor 614. The decoder 620 may generate the output tensor 614 using the new self-attention key tensor 615 and new self-attention value tensor 616. The output tensor 614 is used by the head 630 to generate another predicted token 619. The predicted token 619 is the output of the transformer model 600 in the second inference phase.

[0115] One or more other subsequent inference phases may be conducted. In each subsequent inference phase, the decoder 620 receives a token predicted in the previous inference phase, a self-attention key tensor generated in the previous inference phase, a self-attention value tensor generated in the previous inference phase, the cross-attention key tensor 607, and the cross-attention value tensor 608. The decoder 620 may, in the subsequent inference phase, generate a larger self-attention key tensor and a larger self-attention value tensor, in addition to an output tensor which can be used by the head 630 to predict a new token.

[0116] In embodiments where the total number of inference phases is N, the input sequence 603 is updated to an input sequence 613 after N-1 inference phases. In the last inference phase (i.e., the Nth inference phase) , the decoder 620 may receive the predicted token generated in the (N-1) th inference phase, the self-attention key tensor generated in the (N-1) th inference phase, the self-attention value tensor generated in the (N-1)th inference phase, the cross-attention key tensor 607, and the cross-attention value tensor 608. The decoder 620 may generate a self-attention key tensor 625 and a self-attention value tensor 626 using the predicted token generated in the (N-1) th inference phase, the self-attention key tensor generated in the (N-1) th inference phase, and the self-attention value tensor generated in the (N-1) th inference phase. The dimensions of the self-attention key tensor 625 or self-attention value tensor 626 along the X axis is SLinput+N. The decoder 620 also generates an output tensor 624, which is used by the head 630 to generate the last predicted token 629. The N tokens predicted by the transformer model in the N inference phases may constitute an output tensor 639, which may be the final output of the transformer model.

[0117] FIG. 8 is a flowchart of a method for DNN continual learning, in accordance with various embodiments. The method 800 may be performed by the AI system 100 in FIG. 1. Although the method 800 is described with reference to the flowchart illustrated in FIG. 8, many other methods for DNN continual learning may alternatively be used. For example, the order of execution of the steps in FIG. 8 may be changed. As another example, some of the steps may be changed, eliminated, or combined.

[0118] The AI system 100 determines 810, by a first neural network model using data collected in a local area, a label of an action performed in the local area. In some embodiments, the label indicates a recognition of the action by the first neural network model. In some embodiments, the label may specify a class of the action that is determined by the first neural network model from the data. In some embodiments, the data comprises a video. In some embodiments, the data is collected by a robot operating in the local area. In some embodiments, the robot uses the first neural network model to aid one or more users. In some embodiments, the data comprises an image or a video. In some embodiments, the data is collected by a robot operating in the local area. An operation of the device is performed based on an output of the first neural network model.

[0119] The AI system 100 generates 820, by a second neural network model, one or more attribute rules for the action from the label determined by the first neural network model. In some embodiments, the second neural network model is an LLM. The LLM generates textual data indicates the one or more attribute rules from the label determined by the first neural network model.

[0120] The AI system 100 evaluates 830, by a third neural network model, an accuracy of the label based on the data and the one or more attribute rules. In some embodiments, the AI system 100 controls an operation of the robot in the local area, and the new data is collected by the robot during the operation. In some embodiments, the third neural network model is an LMM. In some embodiments, an accuracy of the third neural network model is higher than an accuracy of the first neural network model.

[0121] The AI system 100 generates 840 a training dataset based on the evaluated accuracy of the label. In some embodiments, the AI system 100 receives new data collected by the device in the local area based on a determination that the evaluated accuracy of the label meets a threshold. The AI system 100 generates a training sample in the training dataset with the new data. In some embodiments, the AI system 100 generates a training sample in the training dataset with the data based on a determination that the evaluated accuracy of the label meets a threshold.

[0122] The AI system 100 trains 850 the first neural network model with the training dataset. In some embodiments, the first neural network model has been trained by using a first device before the first neural network model generates the label. The AI system 100 further trains the first neural network model with the training dataset by using a second device. In some embodiments, the first device is remote from the local area while the second device is at least partially located in the local area. In some embodiments, an output of the first neural network model, after it is trained, is used by a robot operating in the local area for performing a task.

[0123] FIG. 9 is a block diagram of an example computing device 900, in accordance with various embodiments. In some embodiments, the computing device 900 can be used as at least part of the AI system 100. A number of components are illustrated in FIG. 9 as included in the computing device 900, but any one or more of these components may be omitted or duplicated, as suitable for the application. In some embodiments, some or all of the components included in the computing device 900 may be attached to one or more motherboards. In some embodiments, some or all of these components are fabricated onto a single system on a chip (SoC) die. Additionally, in various embodiments, the computing device 900 may not include one or more of the components illustrated in FIG. 9, but the computing device 900 may include interface circuitry for coupling to the one or more components. For example, the computing device 900 may not include a display device 906, but may include display device interface circuitry (e.g., a connector and driver circuitry) to which a display device 906 may be coupled. In another set of examples, the computing device 900 may not include an audio input device 918 or an audio output device 908 but may include audio input or output device interface circuitry (e.g., connectors and supporting circuitry) to which an audio input device 918 or audio output device 908 may be coupled.

[0124] The computing device 900 may include a processing device 902 (e.g., one or more processing devices) . The processing device 902 processes electronic data from registers and / or memory to transform that electronic data into other electronic data that may be stored in registers and / or memory. The computing device 900 may include a memory 904, which may itself include one or more memory devices such as volatile memory (e.g., DRAM) , nonvolatile memory (e.g., read-only memory (ROM) ) , high bandwidth memory (HBM) , flash memory, solid state memory, and / or a hard drive. In some embodiments, the memory 904 may include memory that shares a die with the processing device 902. In some embodiments, the memory 904 includes one or more non-transitory computer-readable media storing instructions executable to perform operations for uncertainty quantification for generative models (e.g., the method 800 described in conjunction with FIG. 8) or some operations performed by one or more components of the AI system 100. The instructions stored in the one or more non-transitory computer-readable media may be executed by the processing device 902.

[0125] In some embodiments, the computing device 900 may include a communication chip 912 (e.g., one or more communication chips) . For example, the communication chip 912 may be configured for managing wireless communications for the transfer of data to and from the computing device 900. The term "wireless" and its derivatives may be used to describe circuits, devices, systems, methods, techniques, communications channels, etc., that may communicate data through the use of modulated electromagnetic radiation through a nonsolid medium. The term does not imply that the associated devices do not contain any wires, although in some embodiments they might not.

[0126] The communication chip 912 may implement any of a number of wireless standards or protocols, including but not limited to Institute for Electrical and Electronic Engineers (IEEE) standards including Wi-Fi (IEEE 802.10 family) , IEEE 802.16 standards (e.g., IEEE 802.16-2005 Amendment) , Long-Term Evolution (LTE) project along with any amendments, updates, and / or revisions (e.g., advanced LTE project, ultramobile broadband (UMB) project (also referred to as "3GPP2" ) , etc. ) . IEEE 802.16 compatible Broadband Wireless Access (BWA) networks are generally referred to as WiMAX networks, an acronym that stands for worldwide interoperability for microwave access, which is a certification mark for products that pass conformity and interoperability tests for the IEEE 802.16 standards. The communication chip 912 may operate in accordance with a Global System for Mobile Communication (GSM) , General Packet Radio Service (GPRS) , Universal Mobile Telecommunications System (UMTS) , High Speed Packet Access (HSPA) , Evolved HSPA (E-HSPA) , or LTE network. The communication chip 912 may operate in accordance with Enhanced Data for GSM Evolution (EDGE) , GSM EDGE Radio Access Network (GERAN) , Universal Terrestrial Radio Access Network (UTRAN) , or Evolved UTRAN (E-UTRAN) . The communication chip 912 may operate in accordance with Code-division Multiple Access (CDMA) , Time Division Multiple Access (TDMA) , Digital Enhanced Cordless Telecommunications (DECT) , Evolution-Data Optimized (EV-DO) , and derivatives thereof, as well as any other wireless protocols that are designated as 3G, 4G, 5G, and beyond. The communication chip 912 may operate in accordance with other wireless protocols in other embodiments. The computing device 900 may include an antenna 922 to facilitate wireless communications and / or to receive other wireless communications (such as AM or FM radio transmissions) .

[0127] In some embodiments, the communication chip 912 may manage wired communications, such as electrical, optical, or any other suitable communication protocols (e.g., the Ethernet) . As noted above, the communication chip 912 may include multiple communication chips. For instance, a first communication chip 912 may be dedicated to shorter-range wireless communications such as Wi-Fi or Bluetooth, and a second communication chip 912 may be dedicated to longer-range wireless communications such as global positioning system (GPS) , EDGE, GPRS, CDMA, WiMAX, LTE, EV-DO, or others. In some embodiments, a first communication chip 912 may be dedicated to wireless communications, and a second communication chip 912 may be dedicated to wired communications.

[0128] The computing device 900 may include battery / power circuitry 914. The battery / power circuitry 914 may include one or more energy storage devices (e.g., batteries or capacitors) and / or circuitry for coupling components of the computing device 900 to an energy source separate from the computing device 900 (e.g., AC line power) .

[0129] The computing device 900 may include a display device 906 (or corresponding interface circuitry, as discussed above) . The display device 906 may include any visual indicators, such as a heads-up display, a computer monitor, a projector, a touchscreen display, a liquid crystal display (LCD) , a light-emitting diode display, or a flat panel display, for example.

[0130] The computing device 900 may include an audio output device 908 (or corresponding interface circuitry, as discussed above) . The audio output device 908 may include any device that generates an audible indicator, such as speakers, headsets, or earbuds, for example.

[0131] The computing device 900 may include an audio input device 918 (or corresponding interface circuitry, as discussed above) . The audio input device 918 may include any device that generates a signal representative of a sound, such as microphones, microphone arrays, or digital instruments (e.g., instruments having a musical instrument digital interface (MIDI) output) .

[0132] The computing device 900 may include a GPS device 916 (or corresponding interface circuitry, as discussed above) . The GPS device 916 may be in communication with a satellite-based system and may receive a location of the computing device 900, as known in the art.

[0133] The computing device 900 may include another output device 910 (or corresponding interface circuitry, as discussed above) . Examples of the other output device 910 may include an audio codec, a video codec, a printer, a wired or wireless transmitter for providing information to other devices, or an additional storage device.

[0134] The computing device 900 may include another input device 920 (or corresponding interface circuitry, as discussed above) . Examples of the other input device 920 may include an accelerometer, a gyroscope, a compass, an image capture device, a keyboard, a cursor control device such as a mouse, a stylus, a touchpad, a bar code reader, a Quick Response (QR) code reader, any sensor, or a radio frequency identification (RFID) reader.

[0135] The computing device 900 may have any desired form factor, such as a handheld or mobile computer system (e.g., a cell phone, a smart phone, a mobile internet device, a music player, a tablet computer, a laptop computer, a netbook computer, an ultrabook computer, a personal digital assistant (PDA) , an ultramobile personal computer, etc. ) , a desktop computer system, a server or other networked computing component, a printer, a scanner, a monitor, a set-top box, an entertainment control unit, a vehicle control unit, a digital camera, a digital video recorder, or a wearable computer system. In some embodiments, the computing device 900 may be any other electronic device that processes data.

[0136] The following paragraphs provide various examples of the embodiments disclosed herein.

[0137] Example 1 provides a method including determining, by a first neural network model using data collected in a local area, a label of an action performed in the local area; generating, by a second neural network model, one or more attribute rules for the action from the label determined by the first neural network model; evaluating, by a third neural network model, an accuracy of the label based on the data and the one or more attribute rules; generating a training dataset based on the evaluated accuracy of the label; and training the first neural network model with the training dataset.

[0138] Example 2 provides the method of example 1, in which the data is collected by a device operating in the local area, and an operation of the device is performed based on an output of the first neural network model.

[0139] Example 3 provides the method of example 2, in which generating the training dataset includes receiving new data collected by the device in the local area based on a determination that the evaluated accuracy of the label meets a threshold; and generating a training sample in the training dataset with the new data.

[0140] Example 4 provides the method of any one of examples 1-3, in which generating the training dataset includes generating a training sample in the training dataset with the data based on a determination that the evaluated accuracy of the label meets a threshold.

[0141] Example 5 provides the method of any one of claims 1-4, in which the second neural network model is a large language model, in which the large language model generates textual data indicating the one or more attribute rules from the label determined by the first neural network model.

[0142] Example 6 provides the method of any one of examples 1-5, in which the data includes an image or a video.

[0143] Example 7 provides the method of any one of examples 1-6, in which the third neural network model is a large multi-modal model.

[0144] Example 8 provides the method of any one of examples 1-7, in which an accuracy of the third neural network model is higher than an accuracy of the first neural network model.

[0145] Example 9 provides the method of any one of examples 1-8, in which the first neural network model has been trained by using a first device before the first neural network model generates the label, in which training the first neural network model includes further training the first neural network model by using a second device.

[0146] Example 10 provides the method of example 9, in which the first device is remote from the local area while the second device is at least partially located in the local area.

[0147] Example 11 provides one or more non-transitory computer-readable media storing instructions executable to perform operations, the operations including determining, by a first neural network model using data collected in a local area, a label of an action performed in the local area; generating, by a second neural network model, one or more attribute rules for the action from the label determined by the first neural network model; evaluating, by a third neural network model, an accuracy of the label based on the data and the one or more attribute rules; generating a training dataset based on the evaluated accuracy of the label; and training the first neural network model with the training dataset.

[0148] Example 12 provides the one or more non-transitory computer-readable media of example 11, in which the data is collected by a device operating in the local area, and an operation of the device is performed based on an output of the first neural network model.

[0149] Example 13 provides the one or more non-transitory computer-readable media of example 12, in which generating the training dataset includes receiving new data collected by the device in the local area based on a determination that the evaluated accuracy of the label meets a threshold; and generating a training sample in the training dataset with the new data.

[0150] Example 14 provides the one or more non-transitory computer-readable media of any one of examples 11-13, in which generating the training dataset includes generating a training sample in the training dataset with the data based on a determination that the evaluated accuracy of the label meets a threshold.

[0151] Example 15 provides the one or more non-transitory computer-readable media of any one of examples 11-14, in which the second neural network model is a large language model, in which the large language model generates textual data indicating the one or more attribute rules from the label determined by the first neural network model.

[0152] Example 16 provides the one or more non-transitory computer-readable media of any one of examples 11-15, in which the data includes an image or a video.

[0153] Example 17 provides the one or more non-transitory computer-readable media of any one of examples 11-16, in which the third neural network model is a large multi-modal model.

[0154] Example 18 provides the one or more non-transitory computer-readable media of any one of examples 11-17, in which an accuracy of the third neural network model is higher than an accuracy of the first neural network model.

[0155] Example 19 provides the one or more non-transitory computer-readable media of any one of examples 11-18, in which the first neural network model has been trained by using a first device before the first neural network model generates the label, in which training the first neural network model includes further training the first neural network model by using a second device.

[0156] Example 20 provides the one or more non-transitory computer-readable media of example 19, in which the first device is remote from the local area while the second device is at least partially located in the local area.

[0157] Example 21 provides an apparatus including a computer processor for executing computer program instructions; and a non-transitory computer-readable memory storing computer program instructions executable by the computer processor to perform operations including determining, by a first neural network model using data collected in a local area, a label of an action performed in the local area, generating, by a second neural network model, one or more attribute rules for the action from the label determined by the first neural network model, evaluating, by a third neural network model, an accuracy of the label based on the data and the one or more attribute rules, generating a training dataset based on the evaluated accuracy of the label, and training the first neural network model with the training dataset.

[0158] Example 22 provides the apparatus of example 21, in which the data is collected by a device operating in the local area, and an operation of the device is performed based on an output of the first neural network model.

[0159] Example 23 provides the apparatus of example 22, in which generating the training dataset includes receiving new data collected by the device in the local area based on a determination that the evaluated accuracy of the label meets a threshold; and generating a training sample in the training dataset with the new data.

[0160] Example 24 provides the apparatus of any one of examples 21-23, in which the second neural network model is a large language model, in which the large language model generates textual data indicating the one or more attribute rules from the label determined by the first neural network model.

[0161] Example 25 provides the apparatus of any one of examples 21-24, in which an accuracy of the third neural network model is higher than an accuracy of the first neural network model.

[0162] The above description of illustrated implementations of the disclosure, including what is described in the Abstract, is not intended to be exhaustive or to limit the disclosure to the precise forms disclosed. While specific implementations of, and examples for, the disclosure are described herein for illustrative purposes, various equivalent modifications are possible within the scope of the disclosure, as those skilled in the relevant art will recognize. These modifications may be made to the disclosure in light of the above detailed description.

Claims

1.A method comprising:determining, by a first neural network model using data collected in a local area, a label of an action performed in the local area;generating, by a second neural network model, one or more attribute rules for the action from the label determined by the first neural network model;evaluating, by a third neural network model, an accuracy of the label based on the data and the one or more attribute rules;generating a training dataset based on the evaluated accuracy of the label; andtraining the first neural network model with the training dataset.2.The method of claim 1, wherein the data is collected by a device operating in the local area, and an operation of the device is performed based on an output of the first neural network model.3.The method of claim 2, wherein generating the training dataset comprises:receiving new data collected by the device in the local area based on a determination that the evaluated accuracy of the label meets a threshold; andgenerating a training sample in the training dataset with the new data.4.The method of any one of claims 1-3, wherein generating the training dataset comprises:generating a training sample in the training dataset with the data based on a determination that the evaluated accuracy of the label meets a threshold.5.The method of any one of claims 1-4, wherein the second neural network model is a large language model, wherein the large language model generates textual data indicating the one or more attribute rules from the label determined by the first neural network model.6.The method of any one of claims 1-5, wherein the data comprises an image or a video.7.The method of any one of claims 1-6, wherein the third neural network model is a large multi-modal model.8.The method of any one of claims 1-7, wherein an accuracy of the third neural network model is higher than an accuracy of the first neural network model.9.The method of any one of claims 1-8, wherein the first neural network model has been trained by using a first device before the first neural network model generates the label, wherein training the first neural network model comprises further training the first neural network model by using a second device.10.The method of claim 9, wherein the first device is remote from the local area while the second device is at least partially located in the local area.11.One or more non-transitory computer-readable media storing instructions executable to perform operations, the operations comprising:determining, by a first neural network model using data collected in a local area, a label of an action performed in the local area;generating, by a second neural network model, one or more attribute rules for the action from the label determined by the first neural network model;evaluating, by a third neural network model, an accuracy of the label based on the data and the one or more attribute rules;generating a training dataset based on the evaluated accuracy of the label; andtraining the first neural network model with the training dataset.12.The one or more non-transitory computer-readable media of claim 11, wherein the data is collected by a device operating in the local area, and an operation of the device is performed based on an output of the first neural network model.13.The one or more non-transitory computer-readable media of claim 12, wherein generating the training dataset comprises:receiving new data collected by the device in the local area based on a determination that the evaluated accuracy of the label meets a threshold; andgenerating a training sample in the training dataset with the new data.14.The one or more non-transitory computer-readable media of any one of claims 11-13, wherein generating the training dataset comprises:generating a training sample in the training dataset with the data based on a determination that the evaluated accuracy of the label meets a threshold.15.The one or more non-transitory computer-readable media of any one of claims 11-14, wherein the second neural network model is a large language model, wherein the large language model generates textual data indicating the one or more attribute rules from the label determined by the first neural network model.16.The one or more non-transitory computer-readable media of any one of claims 11-15, wherein the data comprises an image or a video.17.The one or more non-transitory computer-readable media of any one of claims 11-16, wherein the third neural network model is a large multi-modal model.18.The one or more non-transitory computer-readable media of any one of claims 11-17, wherein an accuracy of the third neural network model is higher than an accuracy of the first neural network model.19.The one or more non-transitory computer-readable media of any one of claims 11-18, wherein the first neural network model has been trained by using a first device before the first neural network model generates the label, wherein training the first neural network model comprises further training the first neural network model by using a second device.20.The one or more non-transitory computer-readable media of claim 19, wherein the first device is remote from the local area while the second device is at least partially located in the local area.21.An apparatus comprising:a computer processor for executing computer program instructions; anda non-transitory computer-readable memory storing computer program instructions executable by the computer processor to perform operations comprising:determining, by a first neural network model using data collected in a local area, a label of an action performed in the local area,generating, by a second neural network model, one or more attribute rules for the action from the label determined by the first neural network model,evaluating, by a third neural network model, an accuracy of the label based on the data and the one or more attribute rules,generating a training dataset based on the evaluated accuracy of the label, andtraining the first neural network model with the training dataset.22.The apparatus of claim 21, wherein the data is collected by a device operating in the local area, and an operation of the device is performed based on an output of the first neural network model.23.The apparatus of claim 22, wherein generating the training dataset comprises:receiving new data collected by the device in the local area based on a determination that the evaluated accuracy of the label meets a threshold; andgenerating a training sample in the training dataset with the new data.24.The apparatus of any one of claims 21-23, wherein the second neural network model is a large language model, wherein the large language model generates textual data indicating the one or more attribute rules from the label determined by the first neural network model.25.The apparatus of any one of claims 21-24, wherein an accuracy of the third neural network model is higher than an accuracy of the first neural network model.