Computer-implemented method, and computer program and system (execution of multi-task model tuning in edge location)
By encoding user datasets and comparing vectors to a cloud-based database at edge locations, the method addresses data security and processing power inefficiencies, improving model accuracy and learning speed while maintaining privacy.
Patent Information
- Application Number
- JP2025008431
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-01-23
- Filing Date
- 2025-01-21
- Publication Date
- 2025-08-04
AI Technical Summary
Conventional systems face inefficiencies due to the choice between data security and processing power, as they struggle to handle intensive data processing and storage constraints at edge locations, leading to increased risk of data loss and operational bottlenecks.
A method for multi-task model tuning at edge locations involves receiving user datasets, encoding them, and comparing the generated vectors to a vector database to identify closest matches, allowing for efficient transfer learning without disclosing original data, thus maintaining privacy and security.
This approach enhances model accuracy and learning speed while ensuring data privacy and security by performing multi-task model tuning at edge locations, reducing the need for centralized data transmission.
Smart Images

Figure 2025113996000001_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to multi-task model tuning, and more specifically, the present invention relates to the execution of multi-task model tuning at edge locations.
[0002] Computing capabilities continue to evolve, the use of IoT devices is becoming more widespread, and the amount of data generated continues to increase. For example, the popularity of computer systems has increased with the development of the Internet and wireless network standards such as Bluetooth (registered trademark) and Wi-Fi (registered trademark). In addition, the emergence of smart enterprise endpoints has led to the generation of large amounts of data at remote locations. Data generation is further increasing with the growth of 5G networks and the increasing number of connected mobile devices.
Summary of the Invention
Problems to be Solved by the Invention
[0003] As data generation increases, the overhead associated with processing larger amounts of data also increases. The processing overhead further increases when dealing with unstructured data and when different types of information are involved. For example, video and audio data may be combined in a pool of unstructured data, which may result in longer processing times. Although attempts have been made to suppress this increase in processing overhead through the development of artificial intelligence (AI), the development of AI has increased the complexity of machine learning models. The increasingly complex machine learning models lead to more intensive workloads and an increase in the distortion associated with applying the model to the received data. As a result, the operation of conventional implementations is negatively affected.
[0004] Cloud computing has been implemented in an effort to improve the ability to perform compute-intensive operations and process increasing amounts of data. For example, cloud location can be adjusted to provide a dynamic level of computing throughput that adjusts to meet the needs of the client. This is effective in preventing processing bottlenecks, while it involves sending all the data to be analyzed to a centralized location such as a data center or a public cloud location. Sending data to a centralized location exposes it to unwanted attacks and unintended handling mistakes, thereby significantly increasing the risk of data loss. However, client locations are often unable to handle the intensive processing and data storage constraints associated with developing or further maintaining functional AI models that can analyze large amounts of data. Therefore, conventional systems are forced to choose between data security and processing power, and they suffer from inefficiencies based on their operation and performance.
Means for Solving the Problems
[0005] A computer-implemented method (CIM) according to one approach comprises receiving a user dataset having text entries and sampling a plurality of the text entries in the received user dataset. The text entries sampled from the user dataset are applied to an encoding model corresponding to a given large language model architecture. The vectors generated by the encoding model are combined. The combined vectors are further sent to a vector database. In response, one or more public datasets are received from the vector database, and the one or more public datasets are the closest matches to the combined vectors.
[0006] A computer program product (CPP) according to another approach comprises a set of one or more computer-readable storage media. The CPP also comprises program instructions collectively stored on the set of one or more storage media. Moreover, the program instructions are for causing a set of processors to execute the aforementioned CIM.
[0007] A computer system (CS) according to yet another approach comprises a set of processors and a set of one or more computer-readable storage media. The CS further comprises program instructions collectively stored on the set of one or more storage media. The program instructions are for causing the set of processors to execute the aforementioned CIM.
[0008] A CIM according to another approach is for creating a vector database. The CIM comprises: receiving a public dataset including text entries. For each of the received public datasets, a plurality of the text entries in the given public dataset are sampled. The sampled text entries from a given public dataset are applied to an encoding model corresponding to a predetermined large language model architecture. Vectors generated by the encoding model are further used to create the vector database.
[0009] A CPP according to yet another approach is for creating a vector database. The CPP comprises a set of one or more computer-readable storage media and program instructions. The program instructions are collectively stored on the set of one or more storage media and are for causing a set of processors to execute the above CIM.
[0010] Other aspects and implementations of the present invention will become apparent from the following detailed description, which illustrates the principles of the invention by way of example, when read in conjunction with the drawings.
Brief Description of the Drawings
[0011]
Figure 1
[0012]
Figure 2A
[0013]
Figure 2B
[0014]
Figure 3A
[0015]
Figure 3B
[0016]
Figure 4
Mode for Carrying Out the Invention
[0017] The following description is made for the purpose of showing the general principles of the present invention and is not intended to limit the concept of the present invention claimed in this specification. Furthermore, the specific features described in this specification can be used in combination with other described features in each of various possible combinations and permutations.
[0018] Unless otherwise specifically defined in this specification, all terms shall be given their broadest possible interpretation, including the meanings implied from this specification, the meanings understood by those skilled in the art, and / or the meanings defined in dictionaries, treatises, etc.
[0019] As used in this specification and the appended claims, it should also be noted that the singular forms "a", "an", and "the" include plural referents unless otherwise specified. The terms "comprises" and / or "comprising", as used herein, specify the presence of the stated features, integers, steps, operations, elements, and / or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.
[0020] The following description discloses some preferred approaches of a system, method, and computer program product for selecting a source dataset to be used while performing multitask model tuning on a model, and the selected source dataset provides context during the "source training step" of the model that enables related transfer learning to be performed. The source-trained model may be further applied to a new dataset (e.g., a dataset including text entries) at the edge location during a "target training step" of creating a final model trained in view of the context collected from the source dataset selected during the source training step, as will be described in more detail below, for example.
[0021] Thereby, the following description discloses several preferred techniques for improving the efficiency with which multitask model tuning (or "multitask fine-tuning") can be performed. The various techniques herein can be implemented in a wide range of multitask model tuning types, including, for example, multitask prompt tuning, multitask prefix tuning, etc., or any other type of multitask model tuning that would be apparent to one of ordinary skill in the art after reading this specification. It should be understood that the various techniques can be described with reference to the type of multitask model tuning while providing context and simply assisting the reader. For example, many techniques are described in the context of multitask prompt tuning (MPT). This is done by way of example only and should not be considered limiting.
[0022] In one common technique, CIM comprises receiving a user dataset having text entries and sampling a plurality of text entries in the received user dataset. The text entries sampled from the user dataset are applied to an encoding model corresponding to a given large language model architecture. The vectors generated by the encoding model are combined. The combined vectors are further transmitted to a vector database. In response thereto, one or more public datasets are received from the vector database, and the one or more public datasets are the closest matches to the combined vectors.
[0023] Therefore, the various techniques herein can be used to select a source data set to be used while performing multi-task model tuning on the model such that relevant (e.g., valuable) transfer learning is performed. As mentioned above, the selected source data set provides context during the "source training step" of the model. Thereby, searching a repository of encoded data sets for an entry that is the closest match to a new data set (e.g., environment) enables relevant transfer learning to be performed while initially training the underlying model. Thereby, the knowledge transferred and learned or "injected" into the underlying model shifts the starting point at which the model begins training. This significantly reduces the amount of additional training associated with deploying an optimized (e.g., sufficiently accurate) model, as will be understood by one skilled in the art after reading this specification.
[0024] In some implementations, the vectors generated by the encoding model are combined by calculating the average of the vectors. Additionally, the vectors may be combined at the edge nodes, while the vector database is stored at a cloud location. Thereby, the edge nodes may be connected to the cloud location via a network.
[0025] This enables each of the generated vectors to be represented in the resulting (e.g., simplified) combination. Additionally, a large repository of public data sets may be maintained at a cloud location, providing a more robust collection of sample data sets. Thereby, the public data set returned as the closest match to the combined vectors incorporates the full spectrum of information contained in the original vectors generated by the encoding model. This, in turn, improves the efficiency with which transfer learning is performed.
[0026] In some implementations, all public data sets in the vector database may be received at the edge node from the vector database, along with an indication of how similar each respective public data set is to the combined vector. Accordingly, any desired number of available public data sets may be used to perform source training on the model, achieving a desired amount of transfer learning. The indication of how similar each public data set is to the combined vector may also be used to select a data set having a desired level of similarity to the new data set. Moreover, in some approaches, the level of similarity between the combined set of public data sets and vectors may be represented by the cosine distance between the data sets and vectors.
[0027] In some implementations, the vector database may be formed by receiving public data sets and sampling a plurality of text entries in each of the received public data sets. The text entries sampled from each of the respective public data sets are further applied to an encoding model corresponding to a predetermined large language model architecture. Each of the encoding models is configured to break the sampled text entries into tokens and map each of the tokens to a vector. Thereby, the vectors generated by the encoding model are used to form the vector database.
[0028] This process ensures that the privacy and security of the original data are maintained even when transmitted to a shared location such as a public cloud. Thereby, the vectorized information may be transmitted from the edge node to the central node without disclosing any details of the underlying text entries (e.g., data) used to form the vectors. Consequently, the central node may use the received vector information to search a vector database and thereby determine one or more of the data sets that are the closest match to the combined vectors.
[0029] In some implementations, one or more received public data sets are used to train a task-sharing prompt. Moreover, a task-sharing prompt trained with a user data set is used to train a task-specific prompt. In some approaches, the task-sharing prompt and the task-specific prompt are trained at the edge node while the vector database is stored at a cloud location. Thereby, the techniques herein are capable of performing prompt tuning.
[0030] Prompt tuning is intended to refer to the process of adapting a base pre-trained model to each desired task through conditioning on learned prompt vectors. For example, prompt tuning may be used to efficiently adapt a large language model to multiple downstream tasks. Thereby, the techniques herein may initially learn a single transferable prompt by distilling knowledge from multiple task-specific source prompts. Further, multiplicative low-rank updates to this shared prompt may be learned to efficiently adapt it to each downstream target task, as would be understood by one of ordinary skill in the art after reading this specification. As a result, the techniques herein can utilize rich cross-task knowledge using prompt vectors in a multi-task learning setting, as will be further described in more detail below, for example.
[0031] In another general approach, the CPP comprises a set of one or more computer-readable storage media. The CPP also comprises program instructions collectively stored on the set of one or more storage media. Moreover, the program instructions are for causing a set of processors to execute any combination of the methodologies described above. Thus, it follows that the CPP is capable of achieving the improvements described above by executing a combination of the methodologies described above.
[0032] In another general approach, the CS comprises a set of processors and a set of one or more computer-readable storage media. The CS further comprises program instructions collectively stored on the set of one or more storage media. The program instructions are for causing a set of processors to execute any combination of the methodologies described above. Thus, it follows that the CS is capable of achieving the improvements described above by executing a combination of the methodologies described above.
[0033] In yet another general approach, CIM is for creating a vector database. CIM comprises receiving a public dataset that includes text entries. For each received public dataset, multiple text entries in a given public dataset are sampled. The sampled text entries from a given public dataset are applied to an encoding model corresponding to a given large language model architecture. Vectors generated by the encoding model are further used to create a vector database.
[0034] In some implementations, a search request having combined vectors from edge nodes is received at a cloud location having a vector database. Thereby, the vector database may be used to determine one or more of the public datasets included therein that are the closest match to the combined vectors in the search request. Moreover, one or more of the public datasets determined as the closest match to the combined vectors in the search request may be returned to the edge nodes.
[0035] As mentioned above, the combined vectors received from the edge nodes do not disclose any confidential details that may be presented in the raw data from which the vectors were formed. This ensures that the privacy and security of the original data are maintained even when transmitted to a shared location, such as a public cloud, etc. Consequently, thereby, the cloud location may use the received vector information to search the vector database and thereby determine one or more of the datasets that are the closest match to the combined vectors.
[0036] In another common approach, CPP is for creating a vector database. CPP comprises a set of one or more computer-readable storage media and program instructions. The program instructions are collectively stored in the set of one or more storage media and are for causing a set of processors to execute any combination of the foregoing methodologies. Thus, CPP would be capable of achieving the improvements described above by executing a combination of the foregoing methodologies.
[0037] A particular application of the approach could be to perform MPT on a model at an edge server such that the model can more efficiently evaluate new data using CIM as described above. Initially, a user dataset may be received (e.g., generated) at the edge server. The user dataset is applied to an encoding model, which generates an encoded vector user dataset. The encoded vector user dataset may, in some approaches, be an average vector representing the user dataset. The encoded vector user dataset is further transmitted via a network to a cloud server. The cloud server uses the encoded vectors to search a vector database, thereby identifying the "N" datasets in the vector database that are the closest matches to the user dataset. In other words, the encoded vector user dataset is compared against various entries in the vector database, each of which is encoded according to a different large language model. Thereby, the "N" entries identified as the closest matches to the encoded vector user dataset may be identified and returned to return from the cloud location to the edge location. Thereby, these "N" closest datasets may be used to perform (e.g., a part of) the source training step of the MPT process, thereby providing transfer learning that improves the efficiency by which an accurate model can be generated for a new user dataset, as described in more detail below, for example.
[0038] Various aspects of the present disclosure are illustrated by block diagrams of machine logic included in the description, flowcharts, block diagrams of computer systems, and / or computer program product (CPP) methodologies. With respect to any flowchart, depending on the technology involved, operations may be performed in an order different from that shown in a given flowchart. For example, again depending on the technology involved here, two operations shown in consecutive flowchart blocks may be performed in reverse order, as a single integrated step, simultaneously, or at least partially overlapping in time.
[0039] The computer program product approach (the "CPP approach" or "CPP") is a term used in this disclosure to describe any set of one or more storage media (also referred to as "media") collectively included in a set of one or more storage devices that collectively contain machine-readable code corresponding to instructions and / or data for performing computer operations specified in a given media CPP claim. A "storage device" is any tangible device that can hold and store instructions for use by a computer processor. A computer-readable storage medium may be, but is not limited to, an electronic storage medium, a magnetic storage medium, an optical storage medium, an electromagnetic storage medium, a semiconductor storage medium, a mechanical storage medium, or any suitable combination of the foregoing. Some known types of storage devices that include these media are floppy disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), compact disk read-only memory (CD-ROM), digital versatile disk (DVD), memory stick, floppy disk, mechanically encoded devices (such as punch cards or pits / lands formed on the major surface of a disk), or any suitable combination of the foregoing. A computer-readable storage medium is not to be construed as storage in the form of a transient signal itself, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide, optical pulses passing through an optical fiber cable, electrical signals communicated through a wire, and / or other transmission media when the term is used in this disclosure. As would be understood by one of ordinary skill in the art, data typically moves at some irregular points during the normal operation of a storage device, such as during access, defragmentation, or garbage collection, but the data is not transient while it is stored, and thus the above does not cause the storage device to be considered transient.
[0040] Computing environment 100 includes an example of an environment for at least some executions of computer code that involves executing the method of the present invention, such as improved model training code in block 150, to select a source data set to be used while performing MPT on a model. The selected source data set provides context during the "source training step" of the model that enables related transfer learning to be performed. The source-trained model may be further applied to a new data set (e.g., a data set including text entries) at the edge location during the "target training step" of creating a final model trained in view of the context collected from the source data set selected during the source training step.
[0041] In addition to block 150, computing environment 100 includes, for example, computer 101, wide area network (WAN) 102, end user device (EUD) 103, remote server 104, public cloud 105, and private cloud 106. In this approach, computer 101 includes a set of processors 110 (including processing circuit 120 and cache 121), communication fabric 111, volatile memory 112, persistent storage 113 (including operating system 122 and block 150 as identified above), a set of peripheral devices 114 (including a set of user interface (UI) devices 123, storage 124, and a set of Internet of Things (IoT) sensors 125), and network module 115. Remote server 104 includes remote database 130. Public cloud 105 includes gateway 140, cloud orchestration module 141, a set of host physical machines 142, a set of virtual machines 143, and a set of containers 144.
[0042] Computer 101 can take the form of a desktop computer, laptop computer, tablet computer, smartphone, smartwatch or other wearable computer, mainframe computer, quantum computer, or any other form of computer or mobile device known currently or developed in the future that is capable of executing programs, accessing a network, or querying a database such as remote database 130. As is well understood in the technical field of computer technology and depending on the technology, the execution of computer-implemented methods can be distributed among multiple computers and / or across multiple locations. On the other hand, in this presentation regarding computing environment 100, for the sake of keeping the presentation as concise as possible, the detailed discussion focuses on a single computer, specifically computer 101. Although not shown in the cloud of FIG. 1, computer 101 may be located in the cloud. On the other hand, computer 101 does not need to exist within the cloud except for any range that can be assertively shown.
[0043] Processor set 110 includes one or more computer processors of any type known currently or developed in the future. Processing circuit 120 may be distributed across multiple packages, e.g., multiple coordinated integrated circuit chips. Processing circuit 120 may implement multiple processor threads and / or multiple processor cores. Cache 121 is a memory located within the processor chip package and is typically used for data or code that should be available for fast access by threads or cores executing on processor set 110. Cache memory is typically organized into multiple levels depending on its relative proximity to the processing circuit. Alternatively, some or all of the cache for the processor set may be located "off-chip". In some computing environments, processor set 110 may be designed to operate using qubits and perform quantum computing.
[0044] Computer-readable program instructions typically cause a series of operational steps to be executed by a processor set 110 of computer 101, thereby loading onto computer 101 to implement a computer-implemented method, whereby the instructions so executed instantiate the method specified in the flowchart and / or description of the computer-implemented method (collectively referred to as "the method of the present invention") included in this written document. These computer-readable program instructions are stored in various types of computer-readable storage media, such as cache 121 and other storage media discussed below. The program instructions and associated data are accessed by processor set 110 to control and direct the execution of the method of the present invention. In computing environment 100, at least some of the instructions for executing the method of the present invention may be stored in block 150 within persistent storage 113.
[0045] Communication fabric 111 is a signal conduction path that enables various components of computer 101 to communicate with each other. Typically, this fabric is made up of switches and conductive paths, such as buses, bridges, physical input / output ports, and switches and conductive paths that make up the like. Other types of signal communication paths, such as optical fiber communication paths and / or wireless communication paths, may be used.
[0046] Volatile memory 112 is any type of volatile memory known currently or developed in the future. Examples include dynamic type random access memory (RAM) or static type RAM. Typically, volatile memory 112 is characterized by random access, although this is not required unless affirmatively indicated. In computer 101, volatile memory 112 is located within a single package and exists inside computer 101, but alternatively or in addition, volatile memory may be distributed across multiple packages and / or located external to computer 101.
[0047] The persistent storage 113 is any form of non-volatile storage for a computer, known currently or developed in the future. The non-volatility of this storage means that the stored data is maintained regardless of whether power is directly supplied to the computer 101 and / or to the persistent storage 113. The persistent storage 113 may be read-only memory (ROM), but typically at least a portion of the persistent storage enables writing of data, deletion of data, and rewriting of data. Some well-known forms of persistent storage include magnetic disks and solid-state storage devices. The operating system 122 may take several forms, such as various known proprietary operating systems or an open-source Portable Operating System Interface (POSIX)-type operating system that employs a kernel. The code included in block 150 typically includes at least some of the computer code involved in the execution of the method of the present invention.
[0048] The peripheral device set 114 includes a set of peripheral devices of the computer 101. The data communication connections between the peripheral devices of the computer 101 and other components may be implemented in various ways such as a Bluetooth (registered trademark) connection, a Near-Field Communication (NFC) connection, a connection by a cable (such as a Universal Serial Bus (USB) type cable), an insertion type connection (for example, a Secure Digital (SD) card), a connection via a local area communication network, and even a connection via a wide area network such as the Internet. In various methods, the UI device set 123 may include components such as a display screen, a speaker, a microphone, wearable devices (such as goggles and smartwatches), a keyboard, a mouse, a printer, a touchpad, a game controller, and a haptic device. The storage 124 is an external storage such as an external hard drive or an insertable storage such as an SD card. The storage 124 may be persistent and / or volatile. In some methods, the storage 124 may take the form of a quantum computing storage device for storing data in the form of qubits. In a method where the computer 101 is required to have a large amount of storage (for example, the computer 101 locally stores and manages a large-scale database), this storage may be provided by a peripheral storage device designed to store a very large amount of data such as a storage area network (SAN) shared by a plurality of geographically dispersed computers. The IoT sensor set 125 is composed of sensors that can be used in Internet of Things applications. For example, one sensor may be a thermometer and another sensor may be a motion detector.
[0049] The network module 115 is a collection of computer software, hardware, and firmware that enables the computer 101 to communicate with other computers via the WAN 102. The network module 115 may include hardware such as a modem or a Wi-Fi (registered trademark) transceiver, software for packetizing and / or depacketizing data for communication over a communication network, and / or web browser software for communicating data over the Internet. In some approaches, the network control function and the network transfer function of the network module 115 are executed on the same physical hardware device. In other approaches (e.g., approaches that utilize software-defined networking (SDN)), the control function and the transfer function of the network module 11(5) are executed on physically separate devices such that the control function manages several different network hardware devices. The computer-readable program instructions for executing the method of the present invention can typically be downloaded to the computer 101 from an external computer or an external storage device through a network adapter card or a network interface included in the network module 115.
[0050] The WAN 102 is any wide area network (e.g., the Internet) capable of communicating computer data over non-local distances by any technology for communicating computer data that is currently known or developed in the future. In some approaches, the WAN 102 may be replaced and / or supplemented by a local area network (LAN) designed to communicate data between devices located in a local area, such as a Wi-Fi (registered trademark) network. The WAN and / or LAN typically includes computer hardware such as copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers, and edge servers.
[0051] The end-user device (EUD) 103 is any computer system used and controlled by an end user (e.g., a customer of an enterprise operating the computer 101), and can take any of the forms discussed above in relation to the computer 101. The EUD 103 typically receives beneficial and useful data from the operation of the computer 101. For example, in the hypothetical case where the computer 101 is designed to provide recommendations to an end user, this recommendation will typically be communicated from the network module 115 of the computer 101, via the WAN 102, to the EUD 103. In this way, the EUD 103 can display or otherwise present the recommendation to the end user. In some approaches, the EUD 103 can be a client device such as a thin client, a thick client, a mainframe computer, a desktop computer, etc.
[0052] The remote server 104 is any computer system that provides at least some data and / or functions to the computer 101. The remote server 104 may be controlled and used by the same entity that operates the computer 101. The remote server 104 represents a machine that collects and stores data that is beneficial and useful for use by other computers such as the computer 101. For example, in the hypothetical case where the computer 101 is designed and programmed to provide recommendations based on historical data, this historical data may be provided from the remote database 130 of the remote server 104 to the computer 101.
[0053] The public cloud 105 is any computer system available for use by multiple entities that provides on-demand availability of computer system resources and / or other computer capabilities, particularly data storage (cloud storage) and computing power, without direct active management by the user. Cloud computing typically exploits resource sharing to achieve coherence and economies of scale. The direct active management of the computing resources of the public cloud 105 is performed by the computer hardware and / or software of the cloud orchestration module 141. The computing resources provided by the public cloud 105 are typically implemented by virtual computing environments that run on various computers that make up the host physical machine set 142, which is the universe of physical computers in and available to the public cloud 105. The virtual computing environment (VCE) typically takes the form of virtual machines from the virtual machine set 143 and / or containers from the container set 144. It is understood that these VCEs may be stored as images and transferred either as images or after instantiation of the VCE, within and between various physical machine hosts. The cloud orchestration module 141 manages the transfer and storage of images, deploys new instantiations of the VCE, and manages the active instantiation of the VCE deployment. The gateway 140 is a collection of computer software, hardware, and firmware that enables the public cloud 105 to communicate via the WAN 102.
[0054] Here, some further explanations of a virtualized computing environment (VCE) are provided. A VCE can be stored as an "image". A new active instance of a VCE can be instantiated from the image. Two well-known types of VCEs are virtual machines and containers. A container is a VCE that uses operating system-level virtualization. This refers to a feature of the operating system where the kernel enables the existence of multiple isolated user-space instances called containers. These isolated user-space instances typically behave as actual computers from the starting point of the programs running in them. A computer program running on a normal operating system can utilize all the resources of that computer, such as connected devices, files and folders, network shares, CPU power, and quantifiable hardware capabilities. However, a program running inside a container can only use the contents of the container and the devices assigned to the container, and this feature is known as containerization.
[0055] The private cloud 106 is similar to the public cloud 105, except that computing resources are only available for use by a single enterprise. While the private cloud 106 is shown as communicating with the WAN 102, in other approaches, the private cloud may be completely disconnected from the Internet and only accessible via a local / private network. A hybrid cloud is a composite of multiple different types of clouds (e.g., private, community, or public cloud types), often implemented by different vendors. Each of the multiple clouds remains a separate discrete entity, but the larger hybrid cloud architecture is coupled by standardized or proprietary technologies that enable orchestration, management, and / or data / application portability between the constituent clouds. In this approach, both the public cloud 105 and the private cloud 106 are part of a larger hybrid cloud.
[0056] Cloud computing services and / or microservices (not shown separately in FIG. 1): Private and public clouds 106 are programmed and configured to deliver cloud computing services and / or microservices (unless otherwise indicated, the term "microservice" shall be construed to include larger "services" regardless of size). Cloud services are typically infrastructure, platform, or software hosted by a third-party provider and made available to users over the Internet. Cloud services facilitate the flow of user data from a front-end client (e.g., a user-side server, tablet, desktop, laptop) over the Internet to the provider's system and vice versa. In some approaches, cloud services may be configured and orchestrated according to the "as a service" technology paradigm where something is presented to internal or external customers in the form of a cloud computing service. An as-a-service offering typically provides endpoints to which various customers interface. These endpoints are typically based on a set of APIs. One category of as-a-service offerings is Platform as a Service (PaaS), where the service provider provisions, instantiates, runs, and manages a modular bundle of code that customers can use to instantiate a computing platform and one or more applications, typically without the complexity of building and maintaining the infrastructure associated with these. Another category is Software as a Service (SaaS), where software is centrally hosted and assigned on a subscription basis. SaaS is also known as on-demand software, web-based software, or web-hosted software.The four technical sub - fields involved in cloud services are deployment, integration, on - demand, and virtual private network.
[0057] In some aspects, systems according to various techniques may include a processor and logic integrated with and / or executable by the processor, and the logic is configured to perform one or more of the process steps recited herein. The processor may be a discrete processor or a processing circuit, such as any configuration as described herein, including many components such as processing hardware, memory, I / O interfaces, etc. "Integrated with" means that the processor has the logic embedded as hardware logic such as an application - specific integrated circuit (ASIC), FPGA, etc. "Executable by the processor" means that the logic is hardware logic; software logic such as firmware, a part of an operating system, a part of an application program, etc.; or any combination of hardware and software logic that is accessible by the processor and configured to cause the processor to perform some functions when executed by the processor. As is known in the art, software logic may be stored on local and / or remote memory of any memory type. Any processor known in the art may be used, such as a software processor module and / or a hardware processor, e.g., ASIC, FPGA, central processing unit (CPU), integrated circuit (IC), graphics processing unit (GPU), etc.
[0058] Of course, this logic may be implemented in various ways as a method on any device and / or system or as a computer program product.
[0059] As mentioned above, the increased data generation is amplifying the overhead associated with the execution of data processing. AI has been developed in an attempt to suppress this increase in processing overhead, but the development of AI has also increased the complexity of machine learning models. The increasingly complex machine learning models lead to more intensive workloads and an increase in the distortion associated with applying the model to the received data. As a result, the operation of conventional implementations is negatively affected.
[0060] Cloud computing has been implemented in an effort to improve the ability to execute computationally intensive operations and process increasing amounts of data. For example, cloud location can be adjusted to provide a dynamic level of computing throughput that adjusts to meet the needs of the client. This is effective in preventing processing bottlenecks, while it involves sending all the data to be analyzed to a centralized location such as a data center or a public cloud location. Sending data to a centralized location exposes it to unwanted attacks and unintended handling mistakes, thereby significantly increasing the risk of data loss.
[0061] In an attempt to suppress this dependency on a network where all processing is performed at a central location, edge computing has been implemented to extend computing to the endpoints in the system. For example, the application of computing operations and other types are moved to edge locations where data is generated for the benefit of data privacy and security. For example, data may not be permitted to cross the borders of a particular country in order to improve the security and privacy of the data. In another example, a company may prefer to store data generated at an edge location (e.g., "on prem") so that it is not shared over the network.
[0062] This data management scheme enhances data integrity by improving security and retention, while significantly restricting the utility of the data. For example, client location often cannot handle the intensive processing and data storage constraints associated with developing or even maintaining functional AI models capable of analyzing large amounts of data. Therefore, clients cannot use data generated at the edge location to train any type of AI model without sharing that data, sacrificing data privacy and security. As a result, entities handling confidential information, such as personal data, financial data, intellectual property, etc., have been excluded from developing AI models trained using actual usage data.
[0063] Consequently, conventional systems are forced to choose between data security and processing power and are plagued by inefficiencies based on their operation and performance. In stark contrast to the aforementioned drawbacks suffered by conventional systems, the approach herein desirably enables the selection of the source data set to be used while performing MPT on the model, and the selected source data set provides context during the "source training step" of the model that enables related transfer learning to occur. The source-trained model may be further applied to a new data set (e.g., a data set containing customer data) at the edge location during the "target training step" that creates the final model trained in view of the context gathered from the source data set selected during the source training step. Moreover, by keeping the new data set and related target training step at the edge location, security and privacy are overall improved by preventing any disclosure of the new data set.
[0064] In a preferred approach, a vector database is used to store the encoded dataset vectors in cloud location. For each stored dataset, samples are selected (e.g., statistically selected) and encoded as vectors before being combined and, for example, averaged into a vector. Additionally, the combined vectors may be stored in the vector database. Similarly, newly generated user datasets may be encoded as vectors at the edge location and combined (e.g., averaged into a vector). The combination of vectors generated from the user dataset may be further compared against the entries in the vector database in cloud location without disclosing the original user dataset. Thereby, similarity search may be used to determine the dataset in the vector database that is most relevant to the user dataset. The determined dataset may be further transferred to the edge location and used to initialize the MPT. This preferably improves model accuracy and learning speed while simultaneously maintaining the privacy and security of the user dataset, as will be further described in detail, for example, below.
[0065] Referring now to FIG. 2A, a system 200 having a distributed architecture is shown according to one approach. As an option, the system 200 may be implemented in conjunction with features from any of the other approaches enumerated herein, such as those described with reference to other figures, such as FIG. 1. However, such a system 200 and others presented herein may be used in various applications and / or permutations, which may or may not be specifically described in the exemplary approaches or implementations enumerated herein. Further, the system 200 presented herein may be used in any desired environment. Therefore, FIG. 2A, and the other figures, may be considered to include any possible permutation.
[0066] As shown, system 200 includes a central server 202 connected to a user device 204 and an edge node 206 that are each accessible to a user 205 and an administrator 207, respectively. The central server 202, the user device 204, and the edge node 206 are each connected to a network 210, whereby they may be positioned in different geographical locations. The network 210 may be of any type, depending, for example, on the desired approach. For example, in some approaches, the network 210 is a WAN, such as the Internet or the like. However, an exemplary list of other network types that the network 210 may implement includes, but is not limited to, LAN, PSTN, SAN, an internal telephone network, and the like. As a result, any desired information, data, commands, instructions, responses, requests, etc. may be transmitted between the user device 204, the edge node 206, and / or the central server 202, regardless of the amount of separation that exists between them, for example, even if they are positioned in different geographical locations. According to some approaches, the central server 202 is a remote cloud server connected to the user device 204 and / or the edge node 206 (e.g., accessible thereby).
[0067] However, it should be noted that two or more of the user device 204, the edge node 206, and the central server 202 may be connected differently depending on the approach. By way of an example that is in no way intended to limit the present invention, two servers (e.g., nodes) may be positioned relatively close to each other and connected by a wired connection, such as a cable, an optical fiber link, a wire, or any other type of connection that would be apparent to one of ordinary skill in the art after reading this specification.
[0068] The terms "user" and "administrator" are not intended to be limited to either. For example, while users and administrators may be described as individuals in various implementations herein, a user and / or administrator may be an application, an organization, a preconfigured process, etc. The use of "data", "dataset", and "information" herein is not intended to be limited to either, and may include any desired type of detail, for example, depending on the type of operating system implemented on user device 204, edge node 206, and / or central server 202. In some approaches, a dataset of text entries (e.g., alphanumeric strings) generated at edge node 206 may be retained at edge node 206 to ensure data security and retention. For example, a dataset having confidential information (e.g., personal data, financial data, intellectual property, etc.) may be intentionally retained at the edge server where the dataset was formed. However, other information that is not considered confidential may be transmitted from user device 204 and / or edge node 206 to central server 202 for processing using one or more machine learning models.
[0069] Continuing to refer to FIG. 2A, the central server 202 includes a cache 211, an AI module 213, and a large (e.g., robust) processor 212 coupled to a data storage array 214 having a relatively high memory capacity. The AI module 213 may include any desired number and / or type of AI-based models, such as machine learning models, deep learning models, neural networks, and the like. In a preferred approach, the AI module 213 and / or the processor 212 are capable of implementing prompt tuning, and more specifically, the MPT aspect. For the purposes of this specification, "prompt tuning" refers to the process of adapting a base pre-trained model to each desired task through conditioning on learned prompt vectors. For example, prompt tuning may be used to efficiently adapt a large language model to a plurality of downstream tasks. It should also be noted that "MPT" refers to a process that initially involves learning a single transferable prompt by distilling knowledge from a plurality of task-specific source prompts. Further, multiplicative low-rank updates to this shared prompt are learned to efficiently adapt it to each downstream target task, as would be understood by one of ordinary skill in the art, for example, after reading this specification. As a result, the techniques herein are capable of leveraging rich cross-task knowledge using prompt vectors in a multi-task learning setting, as will be described in more detail below (e.g., see method 300 of FIG. 3A).
[0070] According to some techniques, the AI module 213 and / or the data storage array 214 may each include a vector database that includes a plurality of data sets each applied to a plurality of encoding models. Each encoding model may correspond to a different large language model supported by the system. In other words, each encoding model may apply a different language space that interprets a given data set in a way that is unique to each large language model. The large language models supported by the system may include, but are by no means limited to, the T5 Transformer model, the Bidirectional Encoder Representations from Transformers (BERT) language model, the ELECTRA language model, etc., or any other large language model (e.g., language space) that would be apparent to one of ordinary skill in the art after reading this specification.
[0071] Each entry in the vector database may be compared against vector information received from other locations. For example, the average vector received from the edge node 206 may be compared against the entries in the vector database to identify the "N" entries that are the closest match to the received average vector. In some techniques, the entries in the vector database may be arranged such that the distance between entries is inversely proportional to how similar the entries are. Thereby, the received average vector may be plotted in the vector database, and the "N" closest entries may be selected as the data sets that are the closest match to the data set that generated the average vector, as described in more detail below, for example.
[0072] Continuing to refer to FIG. 2A, user device 204 includes a processor 216 coupled to a memory 218. Processor 216 receives input from user 205 and interfaces with the user 205. For example, user 205 may input information using one or more of a display screen 224, keys of a computer keyboard 226, a computer mouse 228, a microphone 230, and a camera 232. Thereby, processor 216 may be configured to receive input (e.g., text, sound, image, motion data, etc.) from any of these components when input by user 205. These inputs typically correspond to information presented on display screen 224 while an entry is received. Moreover, inputs received from keyboard 226 and computer mouse 228 may affect information shown on display screen 224, data stored in memory 218, information collected from microphone 230 and / or camera 232, the status of the operating system implemented by processor 216, etc. Electronic device 204 also includes a speaker 234 that can be used to play (e.g., project) an audio signal for user 205 to listen to.
[0073] Some data (e.g., non-confidential data) may be received from user 205 for evaluation using memory and / or the AI module 213 in central server 202. The data may be received as a result of user 205 using one or more applications, software programs, temporary communication connections, etc. executed on user device 204. For example, user 205 may upload data for evaluation using the memory in data storage array 214 and the processor 212 and / or AI module 213 of central server 202. As a result, the data is evaluated and processed.
[0074] Referring now to edge node 206, some of the components included therein may be the same as or similar to those included in user device 204, and some of them are given corresponding numbers. For example, controller 217 is coupled to memory 218, display screen 224, keys of computer keyboard 226, and computer mouse 228. Additionally, controller 217 is coupled to AI module 238.
[0075] As described above with respect to AI module 213, AI module 238 may include any desired number and / or type of AI-based models. Thus, AI module 238 may implement similar, the same, or different characteristics as AI module 213 in central server 202. In some approaches, AI module 238 is configured to execute MPT and form a model using a proprietary (e.g., selected) source dataset that provides context during the "source training step" of the model. By selecting a source dataset that provides context, it becomes possible to perform related transfer learning as the model is source-trained.
[0076] Referring temporarily to FIG. 2B, a representative diagram 250 of executing MPT by learning a shared prompt that tunes a model that can be used for multiple tasks is shown according to one approach that is never intended to be limiting. The process of learning the shared prompt space is particularly difficult because it involves learning commonalities across different source tasks while minimizing interference. Thus, the soft prompt for each source task (which can be represented as a prompt matrix) may be decomposed into the multiplication of a shared matrix and a low-rank task-specific matrix. The inventors have discovered that this decomposition is more effective than simply sharing the prompt matrix across all tasks. Moreover, the decomposition is learned through knowledge distillation from soft prompts obtained from normal prompt tuning. To transfer it to a new task, the inventors perform a low-rank multiplicative update on the shared prompt matrix, for example, as will become immediately apparent.
[0077] As shown in representative diagram 250, a source prompt may be selected from a repository 252 (e.g., a vector database), and the selected source prompt may be used during the source training phase. Thereby, the customer can select the dataset that will be used in the source training phase, during which task-specific parameters are learned and, simultaneously, knowledge is also shared in a common set of parameters that can be referred to as a shared prompt.
[0078] Therefore, a set of task-specific datasets S1, S2, S3 will be selected from the repository 252 and used to perform source training. As a result, a task-sharing prompt 254 is generated and used as the initial framework when performing MPT. Thereby, as indicated by the dashed line, the datasets S1, S2, S3 selected as the source prompts for MPT are effectively provided. Thereby, the resulting transferred prompt 256 may be further trained using the new user dataset 258 to generate the resulting target task 260.
[0079] Accordingly, the source training phase has a significant impact on model accuracy and convergence speed. This phase sets the starting point in the final training, which can be near the optimal point (parameters) in the case of good dataset selection and can be a factor that causes damage in situations where dissimilar datasets are selected for source training. The starting point in training can dramatically affect the final model accuracy and the training speed by learning one shared prompt for multiple tasks. This also makes it possible to deploy one support model instead of deploying different models for each individual task. Furthermore, the approach herein can achieve transfer learning by leveraging knowledge gathered from related data, thereby boosting the training and performance for the target task. This can be particularly useful in situations involving multi-task learning, such as with a base model, etc. The base model often quickly changes direction, for example, from answering customer questions to identifying negative comments in online reviews. Instead of designing a unique prompt for each task, the approach herein may be used to create a general-purpose prompt that can be easily recycled.
[0080] Returning now to FIG. 2A, the AI module 238 may be further configured to apply the source-trained model to a new data set generated at the edge node 206. For example, the source-trained model may be applied to a data set generated as a result of an interaction with the administrator 207 and / or an interaction with the user 205 via the direct communication link 215 using the user device 204. Thereby, the new data set may preferably remain at the edge node 206 and include text entries of customer data that are not intentionally uploaded to the central server 202 via the network 210. The new data set may be held at the edge node 206 while performing a "target training step" that finalizes a model that has already been source-trained. Thereby, the final version of the model may be trained in view of the context collected from the source data set selected during the source training step. Moreover, by holding the new data set and related target training steps at the edge node 206, security and privacy are overall improved by preventing any disclosure of the content of the new data set.
[0081] However, the edge node 206 is preferably also configured to encode the new data set, for example by applying the new data set to an encoding model. The encoding model decomposes any text input in the new data set into tokens and maps these tokens to vectors. This process ensures that the privacy and security of the original data are maintained even if it is transmitted to a shared location, such as a public cloud. Thereby, the vectorized information may be combined and transmitted from the edge node 206 to the central node 202 without disclosing any details of the underlying text entries (e.g., data) used to form the vectors.
[0082] Subsequently, the central node 202 may search the vector database using the received vector information, thereby determining one or more of the datasets that are the closest match to the combined vector. In other words, the central node 202 may use the received vector information to identify the "N" closest datasets. Thereby, these "N" closest datasets may be returned from the central node 202 to the edge node 206 and provide relevant context while, for example, source training the model as described above. The number of datasets "N" may be set by the user (e.g., predetermined), dynamically adjusted based on real-time performance, adjusted using the output of one or more trained machine learning models, updated in response to receiving one or more instructions from the user, and so on.
[0083] Referring now to FIG. 3A, a method 300 for performing MPT on a model is shown according to one approach. One or more of the operations in method 300 select a source dataset to use while performing MPT on the model, and the selected source dataset provides context during the source training step of the model that enables related transfer learning to be performed. Method 300 also includes applying the source-trained model to a new dataset at an edge location during a target training step of creating a final model trained in view of the context collected from the source dataset selected during the source training step. Accordingly, the operations of method 300 may be continuously executed in the background of the operating system without requesting input from a user (e.g., a human).
[0084] Specific information (e.g., warnings, reports, read requests, etc.) can be issued to the user, but it should also be noted here that the various operations of method 300 can be repeatedly iterated for a new dataset generated at an edge node connected to a central data storage location. Therefore, method 300 may be performed in accordance with the present invention, among other things, in any of the environments shown in FIGS. 1, 2A, and 2B in various ways. Of course, as will be understood by those skilled in the art upon reading this specification, more or fewer operations than those specifically described in FIG. 3A may be included in method 300.
[0085] Each stage of method 300 may be performed by any suitable component of the operating environment. For example, both nodes 301, 302 shown in the flowchart of method 300 may correspond to one or more processors located at different locations in a distributed data generation and storage system. Moreover, each of the one or more processors is preferably configured to communicate with each other. In another example, at least one of nodes 301, 302 may include an encoding model configured to convert text entries (e.g., an array of alphanumeric characters) in a dataset into vectorized information. In some approaches, as will be described in more detail below, for example, the vectorized information is added to a vector database and compared against a new dataset. In other approaches, the vectorized information is sent to a cloud location and used to return a dataset similar to the source of the vectorized information.
[0086] In various implementations, method 300 may be performed partially or wholly by a controller, a processor, etc., or some other device having one or more processors internally. A processor implemented in hardware and / or software, preferably having at least one hardware component, such as a processing circuit, a chip, and / or a module, may be utilized in any device to perform one or more stages of method 300. Exemplary processors include, but are not limited to, a central processing unit (CPU), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), combinations thereof, or any other suitable computing device known in the art.
[0087] As mentioned above, FIG. 3A includes nodes 301, 302, both of which represent one or more processors, controllers, computers, etc. positioned at different locations in a distributed data storage system. For example, node 301 may include one or more processors located at a central data storage location (e.g., a cloud server) of the distributed computing system (see, e.g., central server 202 in FIG. 2A above). Node 302 may include one or more processors located at an edge node (e.g., an edge server) of the distributed computing system (see, e.g., edge node 206 in FIG. 2A above). Accordingly, commands, data, requests, etc. may be transmitted between nodes 301, 302 depending on the technique.
[0088] Note that the various processes included in method 300 are not intended to be limiting, as would be understood by one of ordinary skill in the art after reading this specification. For example, the data transmitted from node 302 to node 301 may be initiated from a request transmitted from node 301 to node 302 in some approaches. Additionally, the number of nodes included in FIG. 3A is not intended to be limiting. For example, additional edge nodes may be included in some approaches. Accordingly, any desired number of edge nodes may be connected to the central server, as would be understood by one of ordinary skill in the art after reading this specification.
[0089] As shown in the flowchart, method 300 includes operation 304 that is performed at node 301. Therein, operation 304 includes installing a vector database. In other words, operation 304 includes initializing (e.g., establishing) a logical space that can be used to form and maintain a vector database. The vector database may be used to store representations of various public datasets, as described in more detail below, for example.
[0090] Furthermore, operation 306 includes receiving a public dataset that includes text entries. The public dataset may be received from multiple different sources depending on the approach. In some approaches, the data may be actively scraped from publicly available websites and received as a list of text entries that are combined and collected into a collection to form a dataset. In other approaches, data having text entries may be collected from one or more repositories of test data and combined into a dataset of text entries. In other approaches, the text entries may be pre-emptively combined (e.g., by a remote system) into a dataset and received at node 301 via a network (see, e.g., network 210 in FIG. 2A). The type of text entries included in the dataset received in operation 306 may also vary depending on the approach. For example, the text entries in the received dataset may be multi-column text entries, single-column text entries, etc.
[0091] The received dataset is preferably processed and maintained in a database. Thereby, the various processed datasets in the database function as a repository against which newly received datasets can be compared to identify the existing dataset that is the closest match, for example, to be immediately apparent. Accordingly, operation 308 includes sampling a configurable number of text entries in each of the received public datasets. In other words, the number of text entries sampled in operation 308 may be set based on the type of public dataset being evaluated, predetermined by the user, dynamically adjusted based on performance, etc. In some approaches, the number of text entries sampled from a given dataset may be set based on the output from one or more statistical sampling algorithms. In other approaches, the number of samples and / or text entries actually sampled may be randomly selected.
[0092] Thus, operation 308 may serve as a preprocessing step to prepare each of the public data sets that will be added to the database. Additionally, operation 310 includes applying the sampled text entries to one or more encoding models. In other words, each of the text entries sampled from the public data set in operation 308 is applied to the encoding model. The embedding layer in the encoding model decomposes the input text entry into tokens and maps each of these tokens to a vector (e.g., vectorized information).
[0093] Each of the encoding models correlates with a different large language model supported by the system. Thereby, each encoding model may apply a different language space for interpreting the text entries of the data set in a way that is unique to its respective large language model. Thereby, the resulting vector information and corresponding data set are compatible with the large language model implemented in the encoding model used to encode the samples. Thereby, each of the sampled text entries is preferably applied to a different encoding model for each supported large language model architecture. The number and / or type of large language model architectures supported in a given approach may be predetermined by the user, based on the currently running application, the type of text entries in the public data set (e.g., different languages), etc.
[0094] From operation 310, method 300 proceeds to operation 312. There, operation 312 includes populating the vector database installed in operation 304 using the vectors generated by the encoding model. In other words, operation 312 includes creating and maintaining the vector database using the vectorized information generated by the encoding model as a result of executing operation 310. As a result, the vector database is populated over time with representations (e.g., encodings) of multiple data sets, each of which represents a different task. Moreover, each of the data sets in the database is encoded as vectors for each of the different supported large language model architectures.
[0095] Operations 304, 306, 308, 310, 312 may be repeated over time as public data sets are received to expand the representations included in the vector database. Thus, in some approaches, these operations may be performed in the background so as not to affect system performance. The performance of operations 304, 306, 308, 310, 312 may, in some cases, be further interrupted, for example, in response to receiving a search request from an edge node. Thereby, the representations of the data sets accumulated in the vector database may be compared against the representations of newly received data sets, for example, so as to be immediately apparent, and any similarities between them may be identified.
[0096] Continuing to refer to FIG. 3A, operation 320 is performed at node 302 (e.g., an edge node). There, operation 320 includes receiving a user dataset having text entries. In some approaches, the user dataset is generated at node 302. In other approaches, the user dataset is received from a local component (e.g., a user device) that shares a secure connection with node 302. In some approaches, text entries (e.g., alphanumeric strings) generated at node 302 may be intentionally retained at node 302 to ensure data security and retention. For example, a dataset having confidential information (e.g., personal data, financial data, intellectual property, etc.) may be intentionally retained at the edge server where the dataset was formed. However, in some approaches, other information that is not considered confidential may be sent to a central server (e.g., at node 301) for processing using one or more machine learning models and / or encoding models.
[0097] Proceeding to operation 322, a configurable number of text entries in the received user dataset are sampled. In other words, the number of text entries sampled from the new user dataset in operation 322 may be set based on the type of user dataset being evaluated, predetermined by the user, dynamically adjusted based on performance, etc. In some approaches, the number of text entries sampled from the user dataset may be set based on the output from one or more statistical sampling algorithms. In other approaches, the number of samples and / or text entries actually sampled may be randomly selected.
[0098] From operation 322, the flowchart proceeds to operation 324. There, operation 324 includes applying text entries sampled from the user dataset to one or more encoding models. In other words, each of the text entries sampled from the user dataset in operation 322 is applied to an encoding model in operation 324. As mentioned above, each of the encoding models corresponds to a different large language model (e.g., a language space). Accordingly, the embedding layer in each of the encoding models decomposes the input text entry into tokens and maps each of these tokens to a vector (e.g., vectorized information) according to the respective large language model.
[0099] Here too, each of the encoding models correlates with a different large language model supported by the system. Thereby, each encoding model may apply a different language space that interprets the text entries of the user dataset in a way that is unique to the respective large language model. Thereby, the resulting vector information and corresponding dataset are compatible with the large language model implemented in the encoding model used to encode the samples. Thereby, each of the sampled text entries is preferably applied to a different encoding model for each supported large language model architecture. The number and / or type of large language model architectures supported in a given approach may be predetermined by the user, based on the currently running application, the type of text entries in the public dataset (e.g., different languages), etc.
[0100] From operation 324, method 300 proceeds to operation 326. There, operation 326 includes combining the vectors generated by the encoding model. According to some techniques, combining the vectors includes calculating the average of the vectors. The average of the vectors may be calculated by combining the average values of each variable used to represent the vectors generated by the encoding model, as would be understood by one of ordinary skill in the art after reading this specification, for example. In other techniques, the vectors generated by the encoding model may be combined in other ways. For example, weighted values may be applied to each of the vectors.
[0101] It should also be noted that the vectors are preferably combined at the location where they are formed. Accordingly, operation 326 is shown in FIG. 3A as being performed at node 302 where the user dataset has actually been vectorized (e.g., converted into vectorized information). As mentioned above, this preferably maintains data security and retention by preventing the disclosure of potentially confidential information in the user dataset at a public location (e.g., a public cloud server). The user dataset itself is preferably held at the edge node, and the process of effectively forming and combining the vectors protects against the disclosure of confidential information. In other words, encoding and vectorizing the text entries sampled from the user dataset received in operation 320 prevents the text entries themselves (or any related information) from being shared outside of node 302. This is true even if the combined vectors are actually transmitted from node 302. Accordingly, the combined vectors may be transmitted to node 301 and compared against the datasets listed in the vector database. Thereby, the dataset identified as the closest match to the combined vectors received from node 302 may be identified for performing MPT, for example, as described in more detail below, and returned to node 302.
[0102] From operation 326, method 300 proceeds to operation 328, where a search request is sent from node 302 to node 301. The search request preferably includes the combined vector formed in operation 326. For example, additional details such as a desired number of similar data sets, information outlining what constitutes a data set "similar" to the user data set, time constraints, etc. may be included in the search request.
[0103] In response to receiving at node 301 a search request having the combined vector from node 302, method 300 proceeds to operation 330. There, operation 330 includes determining, using the vector database at node 301, the public data set that is the closest match to the received combined vector. In other words, operation 330 includes comparing the combined vector information received from node 302 in operation 328 to the information stored in the vector database. The combined vector information is preferably compared to an entry in the vector database formed using an encoding model corresponding to the same large language model. In other words, the combined vector information is preferably compared to an entry in the vector database formed by interpreting the text entry in the public data set using the same language space used to interpret the text entry in the user data set that formed the combined vector information. This ensures that the data set selected from the vector database at node 301 provides context while performing MPT against the model. Thereby, the selected data set can achieve related transfer learning back to the edge location without disclosing any confidential information outside the edge location.
[0104] According to some techniques, operation 330 includes using the vector information received from node 301 to search a vector database at node 302 and identify the "N" closest data sets. Depending on the technique, the number "N" of data sets may be 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 15, 20, 25, 30, 40, 50, 60, 70, 80, 90, 100, 200, 300, etc. The number "N" of data sets may be set by a user (e.g., predetermined), adjusted dynamically based on real-time performance, adjusted using the output of one or more trained machine learning models, updated in response to receiving one or more instructions from a user, etc. As used herein, "closest" data sets or more generally, "proximity" between data sets is intended to refer to a way of measuring (e.g., quantifying) how similar two data sets are to each other.
[0105] While determining how close two or more datasets are, different factors may be taken into account. While determining how similar two or more datasets are, factors including, but not limited to, the type of information in the dataset, the size of the dataset, the generation date / time of the dataset, the configuration and / or compilation details associated with the dataset, etc. may be taken into account. In some approaches, the "N" datasets having the lowest cosine distances in the vector database for the combined vector are identified as the datasets that are closest (or most similar) to the combined vector. Thus, the entries in the vector database may be arranged (e.g., represented) such that the cosine distances between the vectorized entries can be determined using a known process. Again here, the "N" closest datasets are preferably also applied to the same embedding layer that generated the combined vector used as a reference for searching the vector database. Thus, these "N" closest datasets may provide the most relevant context while performing MPT. More specifically, the "N" closest datasets in the vector database may provide valuable insights while training the model.
[0106] Thus, the dataset identified in the vector database as the closest match to the received combined vector information is preferably returned so as to go back from node 302 to node 301. Thereby, operation 332 includes returning the "N" closest datasets identified in the vector database at node 301 to node 302.
[0107] The number of similar datasets returned to node 302 has an impact on the amount of related transfer learning achieved. However, in some approaches, the benefits of transfer learning may be considered in comparison to the distortion imposed on the system and / or network by the number of datasets returned. In some approaches, all public datasets in the vector database may be returned to node 302, along with an indication of how close (e.g., similar) each respective public dataset is to the combined vectors generated from the new user dataset. This can, for example, as will be understood by one of ordinary skill in the art after reading this specification, maximize the amount of transfer learning achieved.
[0108] Continuing to refer to FIG. 3A, in response to receiving the "N" closest public datasets from the vector database at node 301, method 300 proceeds to operation 334 at node 302. There, operation 334 includes training the task sharing prompt at node 301 using the public datasets received from the vector database at node 301. In other words, operation 334 includes performing the source training step of the MPT procedure.
[0109] Performing source training on the model achieves a shared prompt that utilizes knowledge obtained from the "N" closest public datasets received from the vector database. Source training essentially includes training task (or dataset) specific prompts and task sharing prompts. In some approaches, task specific prompts include a set of trainable weights. Additionally, for each dataset sample, backpropagation and weight updates are performed for the multiplication of the task specific prompt and the shared prompt. This enables the model to learn useful information for each task and across tasks, and in some approaches, the learning across tasks is emphasized.
[0110] From operation 334, method 300 proceeds to operation 336. There, operation 336 includes training the task-specific prompt at node 301 using the trained task-sharing prompt and the user dataset. In other words, operation 336 includes performing the target training step of the MPT procedure in view of the transfer learning captured in operation 334. Again here, training is initialized in operation 334 by applying the user dataset with the parameters that capture knowledge across related tasks. This training is utilized in operation 336 while evaluating the user dataset by defining a more preferable starting point for the training.
[0111] Thus, the operations in method 300 can desirably fully utilize the benefits of MPT, while also ensuring data privacy and security through training at the data source (e.g., at the edge node). Thereby, the techniques herein can simplify the model training process by significantly reducing the training space. Referring momentarily to FIG. 3B, graph 370 shows the improvement to the training efficiency achieved as a result of performing the operations of method 300. There, graph 370 displays a three-dimensional surface representing the training space associated with creating a model representing an environment (e.g., a dataset). The lowest point 372 along the three-dimensional surface represents the optimal model configuration, while other local low points 374 along the surface represent sub-optimal model configurations. Before performing the operations of method 300 and improving MPT by achieving transfer learning, the model can be placed in the training space at a relatively high starting point 376. Starting point 376 is one of the points furthest from the lowest point 372 along the training space, and a significant number of resources are consumed to improve the accuracy of the model and approach the lowest point 372.
[0112] However, by maintaining a repository of encoded data sets for which entries that are the closest match for a new data set (e.g., an environment) can be searched, related transfer learning is achieved. Thereby, the knowledge that is transferred and learned or “injected” into an existing model shifts the starting point at which the model begins training. As shown, the improved starting point 378 is much closer to the lowest point 372, thereby significantly reducing the amount of additional training associated with developing an optimized (e.g., sufficiently accurate) model, as would be understood by one of ordinary skill in the art after reading this specification.
[0113] Referring now to FIG. 4, a distributed system 400 is shown according to an example, which is in no way intended to be limiting. As shown, a User Dataset is received (e.g., generated) at an On Edge, which is an edge server. The User Dataset is applied to an Encoding Model, which generates an Encoded Vector User Dataset. The Encoded Vector User Dataset is transmitted (e.g., via a network) to an On Cloud, which is a cloud server, and is used to discover the "N" most proximate datasets in a Vector Database. In other words, the Encoded Vector User Dataset is compared against various entries in the Vector Database, each of which is encoded according to a different large language model as shown. Thereby, the "N" entries identified as the closest match to the Encoded Vector User Dataset may be identified and transmitted to the On Edge as shown. Thereby, these "N" most proximate datasets may be used to perform (e.g., a portion of) the source training step of the MPT process, thereby providing transfer learning that improves the efficiency by which an accurate model may be generated for a new User Dataset, as described herein, for example.
[0114] Thereby, the techniques herein are capable of implementing MPT in addition to selecting a dataset for source training. Source training may be further performed at the edge location without compromising data integrity. The training time is also reduced as a result of implementing the techniques herein while using MPT for fine-tuning. As a result, the user experience is improved and the computing cost is reduced. In addition, the adaptation and interference accuracy for user downstream tasks is improved, especially as compared to conventional products.
[0115] It will be apparent that the various features of the foregoing system and / or methodology can be combined in any manner while creating multiple combinations from the description presented above.
[0116] It will be further understood that implementations of the present invention may be provided in the form of services deployed on behalf of customers to provide services on demand.
[0117] The description of the various implementations of the present invention is presented for purposes of illustration and is not intended to be exhaustive or limited to the disclosed implementations. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described implementations. The terms used herein are chosen to best explain the principles of an implementation, the practical application, or a technical improvement over technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the implementations disclosed herein.
Claims
1. Receiving a user dataset having text entries; Sampling a plurality of the text entries in the received user dataset; Applying the sampled text entries from the user dataset to an encoding model corresponding to a given large language model architecture; Combining the vectors generated by the encoding model; Transmitting the combined vectors to a vector database; and Receiving from the vector database one or more public datasets that are the closest match to the combined vectors A computer-implemented method (CIM) comprising.
2. The step of combining the vectors generated by the encoding model has the step of calculating an average of the vectors, the CIM according to claim 1.
3. The step of combining the vectors is executed at an edge node, the vector database is stored in a cloud location, and the edge node is connected to the cloud location via a network, the CIM according to claim 1.
4. The step of receiving the one or more public datasets that are the closest match to the combined vectors is Receiving all public datasets in the vector database, together with an indication of how similar each respective public dataset is to the combined vectors The CIM according to claim 1 having.
5. The vector database is Receiving the one or more public datasets, where each of the one or more public datasets includes text entries; For each of the received public datasets, Sampling a plurality of the text entries in a given one of the received public datasets, and Applying the sampled text entries from the given public dataset to an encoding model corresponding to a predetermined large language model architecture; and Using the vectors generated by the encoding model to form the vector database The CIM according to claim 1, formed by
6. Each of the encoding models decomposes the sampled text entry into tokens; maps each of the tokens to a vector The CIM according to claim 5, configured as
7. The received one or more public data sets that are the closest match to the combined vector include a predetermined number of the public data sets having the lowest cosine distance to the combined vector, the CIM according to claim 1.
8. training a task-sharing prompt using the received one or more public data sets; and training a task-specific prompt using the trained task-sharing prompt and the user data set The CIM according to any one of claims 1 to 7, further comprising
9. The task-sharing prompt and the task-specific prompt are trained at an edge node, and the vector database is stored at a cloud location, the CIM according to claim 8.
10. A set of processors with the following computer operations, namely, a procedure for receiving a user data set having text entries; a procedure for sampling a plurality of the text entries in the received user data set; a procedure for applying the sampled text entries from the user data set to an encoding model corresponding to a given large language model architecture; a procedure for combining the vectors generated by the encoding model; a procedure for transmitting the combined vectors to a vector database; and a procedure for receiving from the vector database one or more public data sets that are the closest match to the combined vector program instructions for causing A computer program comprising
11. The procedure for combining the vectors is executed at an edge node, the vector database is stored at a cloud location, and the edge node is connected to the cloud location via a network, the computer program according to claim 10.
12. The vector database Receiving the one or more public data sets, where each of the one or more public data sets includes text entries; For each of the received public data sets, sampling the plurality of text entries in a given one of the received public data sets, and applying the sampled text entries from the given public data set to an encoding model corresponding to a predetermined large language model architecture; and forming the vector database using the vectors generated by the encoding model The computer program according to claim 10, formed by.
13. Each of the encoding models, decomposes the sampled text entries into tokens; mapping each of the tokens to a vector The computer program according to claim 12, which is configured as follows.
14. The received one or more public data sets that are the closest match to the combined vectors include a predetermined number of the public data sets having the lowest cosine distance to the combined vectors, according to claim 10. computer program.
15. The program instructions cause the processor set to perform the following computer operations, namely, a procedure for training a task-sharing prompt using the received one or more public data sets; and a procedure for training a task-specific prompt using the trained task-sharing prompt and the user data set The computer program according to any one of claims 10 to 14, for further execution.
16. The task-sharing prompt and the task-specific prompt are trained at an edge node, and the vector database is stored at a cloud location, according to claim 15. computer program.
17. Processor set; A set of one or more computer-readable storage media; Collectively stored on the set of one or more storage media, the processor set performs the following computer operations, namely, A procedure for receiving a user data set having text entries; A procedure for sampling a plurality of the text entries in the received user dataset; A procedure for applying the sampled text entries from the user dataset to an encoding model corresponding to a given large language model architecture; A procedure for combining the vectors generated by the encoding model; A procedure for sending the combined vectors to a vector database; and A procedure for receiving, from the vector database, one or more public datasets that are the closest match to the combined vectors Program instructions for causing execution A computer system (CS) comprising.
18. The CS according to claim 17, wherein the procedure for combining the vectors is executed at an edge node, the vector database is stored in a cloud location, and the edge node is connected to the cloud location via a network.
19. The vector database is Receiving the one or more public datasets, where each of the one or more public datasets includes text entries; For each of the received public datasets, Sampling a plurality of the text entries in a given one of the received public datasets, and Applying the sampled text entries from the given public dataset to an encoding model corresponding to a predetermined large language model architecture; and Forming the vector database using the vectors generated by the encoding model The CS according to claim 17, formed by.
20. The program instructions are for further causing the processor set to perform the following computer operations, namely, A procedure for training a task-sharing prompt using the received one or more public datasets; and A procedure for training a task-specific prompt using the trained task-sharing prompt and the user dataset The CS according to any one of claims 17 to 19, for causing further execution.
21. The task sharing prompt and the task specific prompt are trained at an edge node, and the vector database is stored at a cloud location, the CS according to claim 20.
22. A computer implemented method (CIM) for creating a vector database, comprising: Receiving a public dataset including text entries; For each of the received public datasets, Sampling a plurality of the text entries in a given one of the received public datasets, and Applying the sampled text entries from the given public dataset to an encoding model corresponding to a predetermined large language model architecture; and Creating the vector database using vectors generated by the encoding model A CIM comprising.
23. Receiving a search request having combined vectors from an edge node; Using the vector database to determine one or more of the public datasets that are the closest match to the combined vectors; and Returning the determined one or more public datasets to the edge node The CIM according to claim 22, further comprising.
24. A computer program (CPP) for creating a vector database, comprising: Causing a set of processors to perform the following computer operations, namely: A procedure for receiving a public dataset including text entries; For each of the received public datasets, A procedure for sampling a plurality of the text entries in a given one of the received public datasets, and A procedure for applying the sampled text entries from the given public dataset to an encoding model corresponding to a predetermined large language model architecture; and A procedure for creating the vector database using vectors generated by the encoding model Program instructions for causing A computer program comprising.
25. The program instructions cause the set of processors to perform the following computer operations, namely: A procedure for receiving a search request having combined vectors from an edge node; A procedure for determining one or more of the public data sets that are the closest match to the combined vector using the vector database; and A procedure for returning the determined one or more public data sets to the edge node The computer program according to claim 24, which is for further causing the above to be executed.