Customized in-device network based on a shared base network
By sharing a base network among applications with subnetwork adaptations, the method addresses resource and privacy issues of large generative models, optimizing device performance and security.
Patent Information
- Application Number
- DE112024003363
- Authority / Receiving Office
- DE · DE
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-08-13
- Publication Date
- 2026-05-28
AI Technical Summary
Large generative base models require significant storage and computational resources when run on devices, and duplicating them for multiple applications consumes excessive memory and energy, while online usage lacks data privacy and personalization.
A shared base network is used by multiple applications, with application-specific subnetworks inserted for adaptations, ensuring compatibility, security, and efficiency by reusing model weights and implementing parameter-efficient model fitting.
This approach reduces storage and computational demands, enhances data privacy by keeping user data local, and maintains model performance and adaptability, while preventing unauthorized access and data exposure.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
CROSS-REFERENCE TO RELATED REGISTRATIONS
[0001] The present application claims priority over preliminary US patent application No. 63 / 519,985, filed on August 16, 2023. Its contents are hereby incorporated in full by reference. GENERAL STATE OF THE ART
[0002] Large generative base models can be used by a device, such as a mobile phone, to perform multiple different tasks and functions. Non-restrictive examples include using large generative base models to perform domain-open question-answering tasks, domain-open text-to-image generation tasks, and so on. Compared to classical neural network models, large generative base models typically offer superior performance and possess unique capabilities, such as improved generalization, context-aware learning, and the ability to interact via natural interfaces (text, image, speech, video).
[0003] Running large generative base models on the device offers several advantages. For example, running large generative base models on the device, as opposed to using a large generative model online, allows the large generative base model to function when the device is offline, the model's behavior can be personalized to the device user, and customer data remains offline, resulting in increased data privacy. However, running large generative base models on the device typically requires more storage, memory, and computational resources. For instance, if multiple applications on the device require a separate large generative base model, storing multiple large generative base models on the device can consume a significant amount of storage space (e.g., memory).Furthermore, a large amount of computing resources can be used to run different large generative base models for each application, which in turn can utilize a large amount of energy on the device. SUMMARY
[0004] According to the techniques described here, a base model can be shared by a multitude of applications and have interfaces that allow each application to adapt the base model for its own use. For example, the base model can be divided into a shared base neural network (hereinto, the network) and a set of interfaces into which sub-neural networks (hereinto, subnetwork) can be inserted for updates, extensions, and adaptations. For illustration, the shared base network can include model weights that are shared by a multitude of applications. To adapt the shared base network for a specific application from among the multitude of applications, a specific subnetwork associated with that application can be inserted or plugged into the shared base network.The specific subnetwork can include network weights that are specific to the particular application, so that when the specific subnetwork is inserted into the shared base network, it changes the shared base network into a customized network for the particular application.
[0005] In a first exemplary embodiment, a method includes a device hosting a base network shared by a multitude of applications. The method also includes the device receiving a notification from a specific application among the multitude of applications. The notification indicates that the specific application will use the base network. The method further includes the device retrieving a subnetwork associated with the specific application in response to receiving the notification from that application. Finally, the method includes the device creating a customized network for the specific application, at least partially by inserting the subnetwork into the base network.It should be taken into account that this procedure ensures the compatibility, security, authenticity and up-to-dateness of both the base network and the subnetwork.
[0006] In a second example, a device includes a memory and a processor coupled to the memory. The processor is configured to host a base network shared by a multitude of applications. The processor is further configured to receive a notification from a specific application within this multitude. The notification indicates that the specific application will use the base network. Upon receiving the notification from the specific application, the processor is further configured to retrieve a subnetwork associated with that specific application. The processor is also configured to create a customized network for the specific application, at least partially by inserting the subnetwork into the base network.
[0007] In a third example, a non-transitory, computer-readable medium contains instructions which, when executed by a processor within a device, cause the processor to perform operations. These operations include hosting a base network shared by a multitude of applications. They also include receiving a notification from a specific application within the multitude of applications, indicating that the specific application will use the base network. Furthermore, in response to receiving the notification from the specific application, the operations include retrieving a subnetwork associated with that application. Finally, they include creating a customized network for the specific application, at least partially by inserting the subnetwork into the base network.
[0008] In a fourth exemplary embodiment, a system may include different means for carrying out each of the operations of the first exemplary embodiment.
[0009] In a fifth exemplary embodiment, a method involves generating a customized network for a specific application using a device based on a base network shared by a multitude of applications and a subnetwork dedicated to that specific application. The subnetwork corresponds to a certified network. Running the customized network on the device ensures the authenticity and integrity of the base network and the subnetwork at runtime. At runtime, the data used by the customized network is secure, and private data is not exposed to unauthorized applications running on the device. Security measures are implemented at runtime to prevent the base network and the subnetwork from being exported, copied, or used in unauthorized environments.
[0010] In a sixth exemplary embodiment, a method involves generating a customized network for a specific application using a device based on a base network shared by a multitude of applications and a subnetwork dedicated to the specific application. The subnetwork can be aggregated, certified, distributed, and updated via the internet.
[0011] These and other embodiments, aspects, advantages, and alternatives will become apparent to those skilled in the art by reading the following detailed description, possibly with reference to the accompanying drawings. Furthermore, this summary and other descriptions and figures provided herein are intended to illustrate embodiments only by way of example, and therefore numerous variations are possible. For instance, structural elements and process steps can be rearranged, combined, distributed, eliminated, or otherwise modified while remaining within the scope of protection of the claimed embodiments. BRIEF DESCRIPTION OF THE DRAWINGS Fig. Figure 1 illustrates a device that is operational to create a first adapted network for a first application using a shared base network, according to the examples described herein. Fig. Figure 2 illustrates the device that is operational to create a second adapted network for a second application using the shared network, according to the examples described herein. Fig. Figure 3 illustrates an example of a process for creating a customized network for an application using a shared base network, as described in the examples presented here. Fig. Figure 4 illustrates an example of a process for activating a device-internal basic model, according to the examples described here. Fig. Figure 5 illustrates an example of another process for activating a device-internal basic model, according to the examples described here. Fig. Figure 6 illustrates an example of a process for creating a customized network for an application by modifying a shared base network using an embedding lookup matrix, as described in the examples presented here. Fig. Figure 7 illustrates an example of a system that includes a device capable of retrieving subnetworks from a memory of subnetworks, according to the examples described herein. Fig. Figure 8 is a diagram illustrating the training and inference phases of a machine learning model, in accordance with the examples described here. Fig. Figure 9 illustrates a flowchart according to the examples described herein. DETAILED DESCRIPTION
[0012] This document describes exemplary methods, devices, and systems. It is understood that the words "example" and "exemplary" are used herein to mean "serving as an example, instance, or illustration." An embodiment or feature described in this document as an "example," "exemplary," and / or "illustrative" is not necessarily to be construed as preferable or advantageous over other embodiments or features unless explicitly stated otherwise. Thus, other embodiments may be used and other modifications made without departing from the scope of protection of the subject matter presented herein.
[0013] Accordingly, the exemplary embodiments described herein are not to be understood as limiting. It is readily apparent that the aspects of the present disclosure, as generally described here and illustrated in the figures, can be arranged, replaced, combined, separated, and designed in a multitude of different configurations.
[0014] Unless the context suggests otherwise, the features illustrated in the individual figures can also be used in combination with one another. Therefore, the figures should generally be viewed as component aspects of one or more overall embodiments, bearing in mind that not all of the features shown are required for every embodiment.
[0015] Specific embodiments are described herein with reference to the drawings. In the description, common features are designated by common reference numerals throughout the drawings. In some figures, several instances of a particular feature type are used. Although these features are physically and / or logically separate, the same reference numeral is used for each, and the different instances are distinguished by adding a letter to the reference numeral. When reference is made herein to the features as a group or type (e.g., when no specific feature is referenced), the reference numeral without the distinguishing letter is used. However, when reference is made herein to a specific feature among several features of the same type, the reference numeral with the distinguishing letter is used. For example, in Fig. Figure 1 illustrates several subnetworks and assigns them the reference symbols 140A, 140B, and 140C. When referring to a specific subnetwork, such as subnetwork 140A, the distinguishing letter "A" is used. However, when referring to any of these subnetworks, or to these subnetworks as a group, the reference symbol 140 is used without a distinguishing letter.
[0016] Furthermore, any enumeration of elements, blocks, or steps in this specification or for the purposes of clarity is provided for informational purposes only. Therefore, such enumeration should not be interpreted as requiring or implying that these elements, blocks, or steps follow a particular arrangement or are performed in a specific order. Unless otherwise indicated, the figures are not to scale. I. Overview
[0017] The techniques described here enable developers to reuse model weights from a large base model on a device without compromising the base model's performance or adaptability. Reusing the model weights from the large base model improves the device's memory capacity.
[0018] For example, according to the techniques described here, the base model can be divided into a shared base network (e.g., a large general-purpose network) and a set of interfaces into which subnetworks (e.g., smaller application-specific networks) can be inserted (or plugged in) for updates, extensions, and adaptations. To illustrate, a variety of applications (e.g., system applications and developer-created applications) can share base model weights that form the foundation of the shared base network. To adapt the shared base network for a first application from among the many applications, a first subnetwork associated with that first application can be inserted or plugged into the shared base network.The first subnetwork can include network weights specific to the first application, so that when inserted into the shared base network, the first subnetwork "fine-tunes" the shared base network into a network tailored to the first application. Similarly, a second subnetwork, associated with the second application, can be inserted or plugged into the shared base network to tailor the shared base network to a second application from the multitude of applications. The second subnetwork can include network weights specific to the second application, so that when inserted into the shared base network, the second subnetwork fine-tunes the shared base network into a network tailored to the second application.
[0019] As described above, one aspect of the techniques described here is the sharing of model weights. In some implementations, the shared base network may contain a relatively large proportion of the model weights in a fitted network for a given application. As a non-restrictive example, in a network fitted for a particular application, the majority of the model weights (i.e., 99% or more) may remain in the shared base network, while a minority of the model weights (i.e., about 0.1% to 1.0%) may remain in a subnetwork tailored to the given application. The model weights in the subnetwork can be used to distinguish features specific to the given application.Therefore, when a given application calls the shared base network, the model weights of the corresponding subnetwork can be dynamically loaded and combined with the shared base network to form the customized network (e.g., a complete model) for the given application. It goes without saying that in some implementations, a given application may include multiple subnetworks (for different tasks) that are loaded (e.g., plugged in or inserted) into the shared base network.
[0020] Another aspect of the techniques described here is parameter-efficient model fitting. For example, the model weights of a subnetwork associated with a given application can be obtained by retraining or fine-tuning base models, such as the shared base network, using domain-specific samples unique to the application via a parameter-efficient training process. During the training process, the model weights of the base models are frozen, and the model weights of the subnetworks are updated. Updating the model weights of the subnetwork while freezing the model weights of the base models can achieve comparable performance and generalization to updating both the model weights of the subnetwork and the model weights of the base models; however, updating only the model weights (e.g.,(of the parameters) of the subnetwork is more efficient than fine-tuning the entire model.
[0021] Using different interfaces and implementations, a subnetwork can be inserted into the shared base network to create the adapted network on the device for the given application. According to the first implementation of inserting the subnetwork into the shared base network, a lightweight parallel branch can be added to a frozen computation graph of the shared base network, and the subnetwork can be inserted into this lightweight parallel branch. For example, a Low-Rank Adaptation (LoRA) protocol can be used to insert the subnetwork into the shared base network according to the first implementation.According to the second implementation of inserting the subnetwork into the shared base network, a lightweight sequential branch can be added to a frozen computation graph of the shared base network, and the subnetwork can be inserted into the lightweight sequential branch. For example, an adapter protocol or a hypernetwork protocol can be used to insert the subnetwork into the shared base network according to the second implementation. According to a third implementation of inserting the subnetwork into the shared base network, an embedding lookup matrix associated with the shared base network can be resized and updated based on the subnetwork. For example, soft prompts can be used to insert the subnetwork into the shared base network according to the third implementation.
[0022] According to some aspects of the techniques described here, a digital signature can be used to ensure that only subnetworks compatible with the shared base network are loaded into it. In some implementations, the digital signature for subnetworks can be created by an application programming interface (API) developer who loads the subnetworks into the shared base network. By adding the digital signatures to the subnetworks, only subnetworks signed with a compatible key can be loaded into the shared base model.By using a digital signature to ensure that compatible subnetworks are loaded into the shared base network, incompatible subnetworks and otherwise compatible subnetworks that have been maliciously modified can be detected and prevented from being loaded into the shared base network. In some embodiments, a storage of subnetworks can be used to distribute new subnetworks to the device or to update existing subnetworks on the device. In these embodiments, the device's storage can provide digital signatures to ensure that the subnetworks are compatible with the shared base network before they are loaded into the shared base model.
[0023] The techniques described here thus present system-level and infrastructure-level support for a device to efficiently execute large base models on the device while simultaneously reducing storage capacity requirements (e.g., saving memory), reducing computational resource requirements (e.g., saving computational resources), reducing the energy consumption associated with computational resources, and improving security and protection. In particular, by using a shared base network to facilitate the sharing of model weights by different applications, the storage capacity and computational resource requirements can be reduced, since each application uses shared model weights that typically constitute a large portion of the model weights required to run the application.Storing the shared base network on the device (e.g., an "internal" base network) reduces security and privacy concerns because user data does not need to be transferred to a remote base network on a server.
[0024] As described above, the techniques described here utilize the sharing of model weights across different applications and parameter-efficient model fitting to efficiently run base models on the device. There are at least three reasons that support the use of parameter-efficient model fitting and the sharing of model weights across different applications to support device-internal base models. First, training an efficient large base model may require the collection, curation, and cleaning of training data from the internet. Therefore, it is generally not practical to train a new large base model for every machine learning use case. Second, the standard models may not meet the specific requirements of applications. For example, an application developer may need to use private domain knowledge (e.g.,You may want to incorporate private documents and images) or domain-specific extensions into a model. Private domain knowledge and domain-specific extensions may not be included in a standard model and require parameter-efficient model customization. Third, large base models with a small amount of fine-tuning data can achieve excellent generalization. This allows an application developer to customize the behavior of the base models without having to retrain them from scratch. Fine-tuning requires only a relatively small amount of labeled data, making it possible to deploy customized models on the device without duplicating data storage for applications owned by different parties.
[0025] The shared base networks, subnetworks, and runtime environment for loading such networks are executed internally within the device in an isolated, secure environment. This secure environment ensures that user information remains on the device and private, even from other applications running on the same device. The secure environment also guarantees the compatibility, security, authenticity, and up-to-dateness of the base networks and subnetworks. Furthermore, the secure environment prevents the base networks and subnetworks from being copied or modified for unauthorized purposes.
[0026] The secure, on-device environment can be used to prevent features provided by the base network and subnetworks within the secure environment from gaining direct access to the network. Instead, the features communicate through a small number of purpose-built, open-source APIs that extract identifying information and employ a set of privacy-protecting technologies to safeguard users' private data.
[0027] Although the shared base model is a local, "in-device" model to enhance data privacy, in some scenarios user data may be transferred to another device or server during application use. With regard to implementations involving the use of a machine learning model, device interactions with cloud-based servers, or information exchange with other devices, controls may be provided to the user to decide whether and when the systems, programs, or features described herein allow the collection of user information (e.g., information about a user's social network, social actions or activities, occupation, user preferences, or current location) and whether content or messages are sent to the user from a server.Furthermore, certain data can be processed in one or more ways before being stored or used, so that personally identifiable information is removed. For example, a user's identity can be treated so that no personally identifiable information can be determined for the user, or a user's geographic location can be generalized when location information is obtained (such as at the city, postal code, or state level) so that a specific location of a user cannot be determined. Thus, the user can retain control over what information is collected about them, how that information is used, and what information is made available to them. II. Example device
[0028] Fig. Figure 1 illustrates a device 100 that is operational for generating a first customized network for a first application using a shared base network, according to the examples described herein. The device 100 includes a processor 102, a memory 104, and an application programming interface (API) 106. The memory 104 can correspond to a non-volatile, computer-readable medium containing instructions 105 that can be executed by the processor 102 to perform the operations described herein.
[0029] The device 100 can correspond to any user device, e.g., a laptop computer, a desktop computer, a mobile phone, a tablet, a portable computing device, etc. While the device 100 consists of three components (e.g., the processor 102, the memory 104, and the API 106), it is understood that the device 100 may include additional components in other embodiments. In other embodiments, the device 100 may, for example, include a user interface, a display screen, a keyboard, a mouse, a modem, additional processors, additional memory and / or storage devices, etc.
[0030] In one implementation, memory 104 also stores a multitude of subnetworks 140. Fig. For example, memory 104 stores a subnetwork 140A, a subnetwork 140B, and a subnetwork 140C. Although three subnetworks 140 are illustrated, memory 104 may store additional (or fewer) subnetworks 140 in other implementations. As a non-restrictive example, memory 104 may contain thirty (30) subnetworks 140 in some implementations. As another non-restrictive example, memory 104 may contain two (2) subnetworks 140 in some implementations. As described below, each subnetwork 140 can be allocated to an application 120 and used to create a customized network 150 for the application 120.
[0031] API 106 can be configured to facilitate communication between the processor 102 and a variety of different applications 120. For example, API 106 can facilitate communication between an application 120A and the processor 102. Specifically, application 120A can exchange data with the processor 102 via API 106, and processor 102 can exchange data with application 120A via API 106. Similarly, API 106 can facilitate communication between an application 120B and the processor 102. Specifically, application 120B can exchange data with processor 102 via API 106, and processor 102 can exchange data with application 120B via API 106. Additionally, API 106 can facilitate communication between an application 120C and processor 102.In particular, application 120C can exchange data with processor 102 via API 106, and processor 102 can exchange data with application 120C via API 106. Although three applications 120 are illustrated, in other implementations additional (or fewer) applications 120 can communicate with processor 102 via API 106. As a non-restrictive example, in some implementations forty (40) applications 120 can communicate with processor 102 via the API.
[0032] In the illustration of Fig. Subnetwork 140A and subnetwork 140B are assigned to application 120A, and subnetwork 140C is assigned to application 120B. Thus, in some implementations, multiple subnetworks 140 can be assigned to a single application 120. However, in other implementations, only a single subnetwork 140 can be assigned to a single application 120. Even though the subnetworks 140 are represented as stored in memory 104, in some implementations, applications 120 can cache corresponding subnetworks 140. As a non-restrictive example, in some implementations, application 120A can cache subnetwork 140A and subnetwork 140B, and application 120B can cache subnetwork 140C. In one particular implementation, the subnetworks 140 for a given application 120 can be downloaded when the application 120 is installed on device 100.For example, in response to the installation of application 120A on device 100, subnetworks 140A, 140B can be downloaded or retrieved from a subnetwork memory containing subnetworks 140 for different applications 120, as shown in . Fig. 7 described in more detail.
[0033] The processor 102 can be configured to host a base network 130. The base network 130 corresponds to a large generative base model that resides locally on the device 100 (e.g., an "internal" model). For example, the base network 130 is isolated from a server and other devices. By hosting the isolated base network 130 on the device 100, as opposed to using an online generative base model, the base network 130 can function when the device 100 is offline, the model's behavior can be personalized, and customer data can remain offline, resulting in increased data privacy. The base network 130 incorporates a variety of network weights 132 that, compared to classical neural networks, provide (i) better generalization, (ii) higher performance, (iii) a more natural interface, (iv) contextual learning, and so on.The base network 130 is shared by a multitude of applications 120. For example, the network weights 132 (e.g., base model weights) of the base network 130 apply to each application 120A-120C in the multitude of applications 120.
[0034] In Fig. Processor 102 can be configured to receive a notification from application 120A via API 106. The notification can indicate that application 120A will use base network 130. For example, receiving the notification from application 120A might involve receiving a call to base network 130 from application 120A via API 106. In response to receiving the notification via API 106, processor 102 can be configured to retrieve the subnetworks 140A and 140B associated with application 120A. For example, in the embodiment in which the subnetworks 140A, 140B are stored in memory 104, the processor 102 can retrieve the subnetworks 140A, 140B from memory 104 in response to receiving the notification that the associated application 120A will use the base network 130.As another example in the embodiment in which the subnetworks 140A, 140B are cached with the application 120A, the processor 102 can retrieve the subnetworks 140A, 140B from the application 120A via the API 106.
[0035] The processor 102 includes a custom network generator 110. According to one implementation, the custom network generator 110 can be implemented using special hardware. For example, the custom network generator 110 can be implemented using an application-specific integrated circuit (ASIC) or a field-programmable gate array (FPGA). According to another implementation, the custom network generator 110 can be implemented using software. For example, the processor 102 can implement the custom network generator 110 by executing instructions 105 stored in memory 104.The custom network generator 110 can be configured to create a customized network 150A for the application 120A by inserting the subnetworks 140A, 140B assigned to the application 120A into the base network 130.
[0036] According to an initial implementation, inserting one of the subnetworks 140A or 140B into the base network 130 involves adding a parallel branch to a computation graph of the base network 130 and inserting one of the subnetworks 140A or 140B into the parallel branch. According to this initial implementation, for example, one of the subnetworks 140A or 140B can be inserted into the base network 130 according to a subnetwork protocol. The subnetwork protocol defines a) the subnetwork architecture, b) compatible base networks, the loading location, and the current subnetwork parameters. Examples of subnetwork architectures include Soft Prompts, LoRA, IA3, BitFit, etc. According to a second implementation, inserting one of the subnetworks 140A, 140B into the base network 130 involves adding a sequential branch to a computation graph of the base network 130 and inserting one of the subnetworks 140A, 140B into the sequential branch.According to the second implementation, for example, one of the subnetworks 140A or 140B can be inserted into the base network 130 using an adapter protocol or a hypernetwork protocol. According to a third implementation, inserting one of the subnetworks 140A or 140B into the base network 130 involves resizing an embedding lookup matrix associated with the base network 130 and updating the embedding lookup matrix based on one of the subnetworks 140A or 140B after resizing the embedding lookup matrix.
[0037] According to one implementation, processor 102 can be configured to determine, before inserting subnetworks 140A and 140B into the base network 130, whether the digital signatures 144A and 144B associated with subnetworks 140A and 140B indicate that subnetworks 140A and 140B are compatible with the base network 130. For example, subnetwork 140A contains a digital signature 144A, and subnetwork 140B contains a digital signature 144B. As in Fig. As described in more detail in Section 7, the digital signatures 144A and 144B can be used to ensure that only subnetworks compatible with the base network 130 are loaded into the base network 130. For example, digital signature 144A can indicate whether subnetwork 140A is compatible with the base network 130, and digital signature 144B can indicate whether subnetwork 140B is compatible with the base network 130. In some embodiments, the digital signatures 144A and 144B for subnetworks 140A and 140B can be issued by an API 106 creator who loads subnetworks 140A and 140B into the base network 130. Subnetworks 140A and 140B can be inserted into the base network 130 in response to a finding that digital signatures 144A and 144B indicate that subnetworks 140A and 140B, respectively, are compatible with the base network 130.
[0038] By using the digital signatures 144A, 144B, which ensure that compatible subnetworks 140A, 140B are loaded into the base network 130, incompatible subnetworks and otherwise compatible subnetworks that have been maliciously modified can be detected and prevented from being loaded into the base network 130. In some embodiments, a memory of subnetworks can be used to distribute new subnetworks to the device 100 or to update existing subnetworks on the device 100. In these embodiments, the memory of the device 100 can provide digital signatures to ensure that the subnetworks are compatible with the base network 130 before the subnetworks are loaded into the base network 130.
[0039] Subnetwork 140A can correspond to a neural network topology that has assigned network weights 142A adapted for application 120A. For example, the network weights 142A in subnetwork 140A are applicable to application 120A, but the network weights 142A in subnetwork 140A are not applicable to different applications 120B, 120C in the multitude of applications 120. Similarly, subnetwork 140B can correspond to a neural network topology that has assigned network weights 142B adapted to application 120A. For example, the network weights 142B in subnetwork 140B are applicable to application 120A, but the network weights 142B in subnetwork 140B are not applicable to different applications 120B, 120C in the multitude of applications 120.
[0040] The in Fig. The techniques described in Section 1 thus enable developers to reuse the network weights 132 of the base network 130 hosted by the device 100 without affecting the performance or adaptability of the base network 130. For example, the base network 130 can account for a relatively large proportion of the network weights 132 in the adapted network 150A for the application 120A. As described in Fig. As described in Section 2, these network weights 132 are reusable to create a customized network 150B for the application 120B. Reusing the network weights 132 of the base network 130 improves the memory capacity of the device 100 (e.g., saves memory space on the device 100). For example, duplicating the network weights 132 to create an independent large base model for each application 120 can consume a significant amount of memory, especially if the majority of the network weights used for a given application 120 remain in the base network 130. To illustrate, in the adapted network 150A for application 120A, a large proportion of the network weights 132 (i.e., 99.9% or more) can remain in the base network 130, while a minority of the network weights 142A, 142B (i.e., about 0.1%) can remain in the subnetworks 140A, 140B tailored to application 120A.The network weights 142A, 142B in the subnetworks 140A, 140B can be used to distinguish specific features of the application 120A. Thus, when the application 120A makes a call to the base network 130, the network weights 142A, 142B of the corresponding subnetworks 140A, 140B can be dynamically loaded and combined with the base network 130 to form the customized network 150A (e.g., a complete model) for the application 120A.
[0041] Fig. Figure 2 illustrates the device 100, which is operational to create a second adapted network for a second application using the shared basic network, according to the examples described herein.
[0042] In Fig. 2. Processor 102 can be configured to receive a notification from application 120B via API 106. The notification can indicate that application 120B will use base network 130. For example, receiving the notification from application 120B can involve receiving a call to base network 130 from application 120B via API 106. In response to receiving the notification via API 106, processor 102 can be configured to retrieve the subnetwork 140C associated with application 120B. For example, in the embodiment where subnetwork 140C is stored in memory 104, processor 102 can retrieve subnetwork 140C from memory 104 in response to receiving the notification that the associated application 120B will use base network 130.As another example in the embodiment in which the subnetwork 140C is cached with the application 120B, the processor 102 can retrieve the subnetwork 140C from the application 120B via the API 106.
[0043] The custom network generator 110 can be configured to create a customized network 150B for application 120B by inserting the subnetwork 140C associated with application 120B into the base network 130. According to one implementation, the processor 102 can be configured to determine, before inserting subnetwork 140C into the base network 130, whether a digital signature 144C associated with subnetwork 140C indicates that subnetwork 140C is compatible with the base network 130. Subnetwork 140C can then be inserted into the base network 130 in response to a determination that the digital signature 144C indicates compatibility with the base network 130. The subnetwork 140C can correspond to a neural network topology that has assigned network weights 142C adapted for the application 120B.For example, the network weights 142C in subnetwork 140C are applicable to application 120B, but the network weights 142C in subnetwork 140C are not applicable to different applications 120A, 120C in the multitude of applications 120.
[0044] The in Fig. The two described techniques allow developers to reuse the network weights 132 (which were used to create the customized network 150A for application 120A) to create the customized network 150B for application 120B. Reusing the network weights 132 from the base network 130 improves the storage capacity of device 100 (e.g., saves storage space on device 100). III. Exemplary Processes
[0045] Fig. Figure 3 illustrates an example of a Process 300 for creating a customized network for an application using a shared base network according to the examples described here.
[0046] According to process 300, an application 120 and a corresponding subnetwork 140 can be provided to a natural interface session management module 304. The application 120 can correspond to any of the applications 120A-120C. According to one implementation, the natural interface session management module 304 can correspond to API 106. In some implementations, for example, API 106 can be replaced by the natural interface session management module 304. The natural interface session management module 304 can be configured to facilitate communication between the application 120, the subnetwork 140, and the shared base network 130 (e.g., the shared base models for the multitude of applications 120).In particular, the Natural Interface's Session Management Module 304 can respond to "natural language", as opposed to function calls that have a specific format, such as Java, Python, etc. Thus, Application 120 can provide text streams to the Natural Interface's Session Management Module 304.
[0047] The natural interface session management module 304 can be configured to facilitate the insertion of the subnetwork 140 associated with the application 120 into the shared base network 130. For example, the natural interface session management module 304 can identify parameter interfaces 306 to be used for inserting the subnetwork 140 into the shared base network 130. As non-restrictive examples, the natural interface session management module 304 can identify whether the subnetwork 140 should be inserted into the shared base network 130 using a LoRA protocol 350, an embedding frame 352, an adapter protocol 356, or a hypernetwork protocol 358, etc.Using the parameter interfaces 306, the session management module 304 of the natural interface can create the customized network 150A, 150B for the application 120 by inserting the subnetwork 140 into the shared base network 130.
[0048] As in Fig. As illustrated in Figure 3, the shared base network 130 can support different plugins 308 in some implementations. For example, in some scenarios, the shared base network 130 may not be trained to process certain types of data. In these scenarios, the shared base network 130 can use plugins 308 to process these types of data. As a non-restrictive example, by using plugins 308, the shared base network 130 can process documents 340, mathematical calculations 342, services 344, and personal information 346 that the shared base network 130 would otherwise be unable to process. Fig. The three plugins shown are for illustrative purposes only and should not be considered restrictive. In some implementations, the shared base network can be trained to process documents, mathematical calculations, services, and personal information without the use of plugins. Because the shared base network is an "internal" network located on the device (as opposed to an online network), the user information associated with the plugins can remain private and is not subject to malicious actors.
[0049] According to process 300, the shared base network 130 and the inserted subnetwork 140 (e.g., the adapted network 150) are provided to a machine language runtime / compiler 310 to facilitate use by the application 120.
[0050] Fig. Figure 4 illustrates an example of a process 400 for activating an internal device basic model, according to the examples described here.
[0051] According to process 400, generative, creative, and / or exploratory tasks 402 can be provided to one or more natural interfaces 404. The one or more natural interfaces 404 can be assigned to the session management module for natural interfaces 304. Fig. 3. In particular, the generative, creative and / or exploratory tasks 402 can be provided to one or more natural interfaces 404 as a text stream, as opposed to a programming language format.
[0052] Prompt engineering 406 can be performed by embedding the description of the generative, creative, and / or exploratory tasks 402 that a base network 430 is to perform in a prompt to the base network 430. The base network 430 can correspond to the base network 130. The base network 430 can be subjected to parameterized fine-tuning 408. Based on the parameter-efficient fine-tuning 408 of the base network 430, the base network 430 can perform non-deterministic computation 410 and enable the generation of output for the generative, creative, and / or exploratory tasks 402. This means that the base network 430 can produce output that changes (e.g., has a non-deterministic position) because the nature of the tasks 402 supports non-deterministic computation 410. As further discussed below with regard to Fig. As described in section 5, it may happen that the base network 430 needs a plugin to perform the task if the nature of the task requires deterministic computation, since the base network 430 is trained to perform non-deterministic computations 410.
[0053] Fig. Figure 5 illustrates an example of another process 500 for activating a device-internal basic model, according to the examples described here.
[0054] According to Process 500, factual, transactional, and / or quantitative tasks 502 can be provided to one or more natural interfaces 404. In particular, the factual, transactional, and / or quantitative tasks 502 of the one or more natural interfaces 404 can be provided as a text stream, as opposed to a programming language format.
[0055] Prompt engineering 406 can be performed by embedding the description of the factual, transactional, and / or quantitative tasks 502 that the base network 430 is to perform in a prompt to the base network 430. Furthermore, the base network 430 can be subjected to parameterized fine-tuning 408. However, since the base network 430 performs non-deterministic computations, as opposed to deterministic computations 510 (e.g., mathematical, algorithmic, procedural components), the base network 430 can utilize plugins, bridges, and / or extensions 508 to perform the deterministic computations 510 associated with the factual, transactional, and / or quantitative tasks 502.
[0056] It goes without saying that the basic network 430 in the Fig. 4-5 is only a non-restrictive example of a basic network. In other implementations, the basic network 430 may be able to perform non-deterministic computations 410 and deterministic computations 510, so that the plugins, bridges and / or extensions 508 are not required to perform the deterministic computations 510.
[0057] Fig. Figure 6 illustrates an example of a Process 600 for creating a customized network for an application by modifying a shared base network using an embedding lookup matrix according to the examples described here.
[0058] According to the procedure 600, a text encoder 610 includes a tokenizer, an embedding lookup matrix 614, and a transformer 616. An initial text prompt 602A (e.g., "A cute cat in the style of...") ") and a second text prompt 602B (e.g., "A cute dog in the style of The text prompts 602 are provided for the text encoder 610. The text prompts 602 can correspond to the data assigned to a subnetwork 140 that is to be inserted into the base network 130. The tokenizer 612 can be configured to receive the character stream (e.g., the text prompts 602), to split the character stream into individual tokens or words, and to output a stream of tokens or words.
[0059] As in Fig. As illustrated in Figure 6, the embedding lookup matrix contains 614 ninety-seven (97) rows of data. The in Fig. The 6 illustrated embedding lookup matrix 614 is for illustrative purposes only and should not be considered restrictive. According to one implementation, the embedding lookup matrix 614 can be associated with the base network 130. To include the text prompts 602 (e.g., subnetwork 140) in the embedding lookup matrix 614, the size of the embedding lookup matrix 614 can be changed. For example, an additional row can be added to the embedding lookup matrix 614. and an additional line The embedding lookup matrix 614 can be added after resizing. This update is based on the text prompts 602 (e.g., the subnetwork 140). For example, the tokenized version of the text prompts 602 can be inserted into the additional rows. The transformer 616 can be configured to process the updated embedding lookup matrix 614 and produce a continuous representation or embedding of the input. IV. Exemplary system for retrieving subnetworks
[0060] Fig. Figure 7 illustrates an example of a System 700 that includes a device capable of retrieving subnetworks from a memory of subnetworks, according to the examples described herein.
[0061] According to System 700, Device 100 communicates with a subnetwork memory 702. The subnetwork memory 702 can correspond to online storage or a database that allows Device 100 to download subnetworks 140, which can then be inserted into the base network 130. For example, subnetwork 140A, subnetwork 140B, and subnetwork 140C can be included in the subnetwork memory 702. In some scenarios, the subnetwork memory 702 can also be part of or include application storage. For example, applications 120 can be contained in online application storage, and when Device 100 downloads a specific application 120, the corresponding subnetwork(s) 140 can also be downloaded to Device 100.The memory for subnetwork 702 and the memory for application 120 can be different storage locations or part of the same storage. In some scenarios, the same subnetwork 140 can be shared by multiple applications 120. In some scenarios, subnetwork 140 and application 120 can be updated independently.
[0062] As in relation to the Fig. As described in sections 1-2, subnetwork 140A includes network weights 142A, an indication of the associated application 120A, and the digital signature 144A. The digital signature 144A can indicate whether subnetwork 140A is compatible with (or should be inserted into) the base network 130. For example, information indicating the compatibility between the base network 130 and subnetwork 140A can be communicated based on the digital signature 144A. For illustration, the digital signature 144A specifies a subnetwork version 710A of subnetwork 140A, one or more base model types 712A that are compatible with subnetwork 140A, one or more base model versions 714A that are compatible with subnetwork 140A, and parameter interfaces 716A that are compatible with subnetwork 140A.
[0063] Subnetwork version 710A can specify the version of subnetwork 140A for application 120A. For example, subnetwork 140A for application 120A can be updated in the memory of subnetworks 702. In some scenarios, an initial version of subnetwork 140A may not be compatible with the base network 130, while a subsequent version of subnetwork 140A may be compatible. By specifying subnetwork version 710A of subnetwork 140A in the digital signature 144A, device 100 can determine whether the current version 710A of subnetwork 140A is compatible with the base network 130. If the current version 710A of subnetwork 140A is compatible with the base network 130, device 100 can download subnetwork 140A from the memory of subnetworks 702 (e.g.,retrieve) and store the subnetwork 140A locally on the device 100 for use with the base network 130 when the application 120A indicates an intention to use the base network 130.
[0064] The one or more base model types 712A can specify different types of base models (e.g., base networks) that are compatible with subnetwork 140A. If one of the base model types 712A matches the type of base network 130, the device 100 can download (e.g., retrieve) subnetwork 140A from the memory of the subnetworks 702 and store subnetwork 140A locally on the device 100 for use with base network 130 when the application 120A indicates an intention to use base network 130.
[0065] The one or more base model versions 714A that are compatible with subnetwork 140A can specify different versions of base models (e.g., base networks) that are compatible with subnetwork 140A. For illustration, the one or more base model versions 714A can specify whether subnetwork 140A is compatible with a first version of a particular base network, a second version of the particular base network, and so on. If the version of base network 130 matches one of the versions in the one or more base model versions 714A, the device 100 can download (e.g., retrieve) subnetwork 140A from the memory of subnetworks 702 and store subnetwork 140A locally on the device 100 for use with base network 130 when the application 120A indicates an intention to use base network 130.
[0066] Parameter interface 716A can specify whether subnetwork 140A is compatible with subnetwork protocol 350, embedding frame 352, adapter protocol 356, hypernetwork protocol 358, etc. If basenetwork 130 has a parameter interface that matches one of the parameter interfaces 716A associated with subnetwork 140A, device 100 can download (e.g., retrieve) subnetwork 140A from the memory of subnetworks 702 and store subnetwork 140A locally on device 100 for use with basenetwork 130 when application 120A indicates an intention to use basenetwork 130.
[0067] Similar to the digital signature 144A for subnetwork 140A, the digital signature 144B for subnetwork 140B specifies a subnetwork version 710B of subnetwork 140B, one or more base model types 712B compatible with subnetwork 140B, one or more base model versions 714B compatible with subnetwork 140B, and parameter interfaces 716B compatible with subnetwork 140B. Additionally, the digital signature 144C for subnetwork 140C specifies a subnetwork version 710C of subnetwork 140C, one or more base model types 712C compatible with subnetwork 140C, one or more base model versions 714C compatible with subnetwork 140C, and parameter interfaces 716C compatible with subnetwork 140C.
[0068] The device 100 can use a specific subnetwork 140 to adapt the base network 130 if the information in the digital signature 144 of the specific subnetwork indicates that the subnetworks 140 are compatible with the base network 130. Thus, by using a digital signature 144 that ensures compatible subnetworks 140 are loaded into the shared base network 130, incompatible subnetworks and otherwise compatible subnetworks that have been maliciously modified can be detected and prevented from being loaded into the shared base network 130. V. Exemplary process for machine learning for large language models
[0069] Fig. Figure 8 shows a diagram 800 illustrating a training phase 802 and an inference phase 804 of trained machine learning models 832, in accordance with exemplary embodiments. According to some examples, the trained machine learning model(s) 832 may correspond to the base network 130 (e.g., a large generative base model) and / or one or more of the subnetworks 140. Some machine learning techniques involve training one or more machine learning algorithms on an input set of training data to detect patterns in the training data and provide output inferences and / or predictions about (patterns in) the training data. The resulting trained machine learning algorithm may be referred to as a trained machine learning model. For example, Figure 8 shows Fig. 8 The training phase 802, in which machine learning algorithm(s) 820 are trained on training data 810 to become trained machine learning models 832. Then, during the inference phase 804, the trained machine learning model(s) 832 can receive input data 830 and one or more inference / prediction requests 840 (perhaps as part of the input data 830) and provide one or more inference(s) and / or prediction(s) 850 as output.
[0070] As such, the trained machine learning model(s) 832 may include one or more models of machine learning algorithm(s) 820. The machine learning algorithm(s) 820 may include, but are not limited to: an artificial neural network (e.g., a convolutional neural network, a recurrent neural network, a Bayesian network, a hidden Markov model, a Markov decision process, a logistic regression function, a support vector machine, a suitable statistical machine learning algorithm, and / or a heuristic machine learning system). The machine learning algorithm(s) 820 may be supervised or unsupervised and may implement any suitable combination of online and offline learning.
[0071] In some examples, the machine learning algorithm(s) 820 and / or the trained machine learning model(s) 832 can be accelerated using on-device coprocessors such as graphics processing units (GPUs), tensor processing units (TPUs), digital signal processors (DSPs), and / or application-specific integrated circuits (ASICs). Such on-device coprocessors can be used to accelerate the machine learning algorithm(s) 820 and / or the trained machine learning model(s) 832. In some examples, the trained machine learning model(s) 832 can be trained, stored, and executed on a specific computing device to provide inferences, and / or otherwise perform inferences for that specific computing device.
[0072] During training phase 802, the machine learning algorithm(s) 820 can be trained by providing at least the training data 810 as training input using unsupervised, supervised, semi-supervised, and / or reinforcement learning techniques. Unsupervised learning involves providing some (or all) of the training data 810 to the machine learning algorithm(s) 820, and the machine learning algorithm(s) 820 determine one or more output inferences based on the provided part (or all) of the training data 810.Supervised learning involves providing a portion of the training data 810 to the machine learning algorithm(s) 820, where the machine learning algorithm(s) 820 determine one or more output inferences based on the provided portion of the training data 810, and the output inference(s) are either accepted or corrected based on correct results associated with the training data 810. In some examples, the supervised learning of the machine learning algorithm(s) 820 can be controlled by a set of rules and / or a set of labels for the training input, and the set of rules and / or the set of labels can be used to correct inferences of the machine learning algorithm(s) 820.
[0073] In some examples, the machine learning algorithm(s) 820 and / or the trained machine learning model(s) 832 may employ transfer learning techniques. For example, transfer learning techniques may involve pre-training the trained machine learning model(s) 832 on a set of data and additionally training it using the training data 810. In particular, the machine learning algorithm(s) 820 may be pre-trained on data from one or more computing devices, and a resulting trained machine learning model may be provided to a specific computing device, which is designated to execute the trained machine learning model during the inference phase 804.Then, during training phase 802, the pre-trained machine learning model can be further trained using the training data 810, which can be derived from kernel and non-kernel data of the specific computing device. This further training of the machine learning algorithm(s) 820 and / or the pre-trained machine learning model using the training data 810 from the specific computing device can be performed using either supervised or unsupervised learning. Once the machine learning algorithm(s) 820 and / or the pre-trained machine learning model has been trained on at least the training data 810, training phase 802 can be completed. The resulting trained machine learning model can be used as at least one of the trained machine learning models 832.
[0074] In particular, once the training phase 802 is completed, the trained machine learning model(s) 832 can be made available to a computing device if it is not already on the computing device. The inference phase 804 can begin after the trained machine learning model(s) 832 has been made available to the specific computing device.
[0075] During the inference phase 804, the trained machine learning model(s) 832 can receive the input data 830 and generate and output one or more corresponding inferences and / or predictions 850 about the input data 830. As such, the input data 830 can be used as input for the trained machine learning model(s) 832 to provide corresponding inferences and / or predictions 850 to kernel components and non-kernel components. For example, the trained machine learning model(s) 832 can generate inferences and / or predictions 850 in response to one or more inference / prediction requests 840. In some examples, the trained machine learning model(s) 832 can be executed by a section of other software.For example, the trained machine learning model(s) 832 can be executed by an inference or prediction daemon to be readily available to provide inferences and / or predictions on demand. The input data 830 can include data from the specific computing device that executes the trained machine learning model(s) 832, and / or input data from one or more computing devices other than the specific computing device.
[0076] If the trained machine learning model 832 corresponds to the base network 130, the input data 830 can include data associated with one or more of the applications 120. Other types of input data are also possible.
[0077] Inference(s) and / or prediction(s) 650 may include other output data generated by the trained machine learning model(s) 832, which operate on the input data 830 (and the training data 810). In some examples, the trained machine learning model(s) 832 may use output inference(s) and / or prediction(s) 850 as input feedback 860. The trained machine learning model(s) 832 may also rely on past inferences as input for generating new inferences.
[0078] Convolutional neural networks and / or deep neural networks used herein may be an example of the machine learning algorithm(s) 820. After training, the trained version of a convolutional neural network may be an example of the trained machine learning model(s) 832. VI. Additional Example Processes
[0079] Fig. Figure 9 illustrates a flowchart of a process 900, which relates to a new technology. The process 900 can be carried out, among other things, by the device 100. The embodiments of Fig. Figure 9 can be simplified by removing one or more of the features shown therein. Furthermore, these embodiments can be combined with features, aspects and / or implementations of any of the preceding figures or otherwise described herein.
[0080] Method 900 involves hosting a basic network shared by a multitude of applications through a device, in Block 902. Device 100, for example, hosts (see Fig. 1) The basic network 130, which is shared by a multitude of applications 120. The basic network is isolated from a server and other devices.
[0081] Method 900 also involves the device in block 904 receiving a notification from a specific application selected from the multitude of applications. The notification indicates that the specific application will use the base network. For example, the device receives 100 (see Fig. 1) A notification from application 120A. The notification indicates that application 120A will use the base network 130. According to one implementation of procedure 900, receiving the notification from the specified application involves the device receiving a call from the specified application to the base network.
[0082] Method 900 also includes the device retrieving a subnetwork associated with the respective application in response to receiving the notification from the specific application, in block 906. For example, the device calls 100 (see Fig. 1) the subnetwork 140A assigned to application 120A in response to receiving the notification from application 120A.
[0083] Method 900 also includes generating a customized network by the device for the respective application, at least partially by inserting the subnetwork into the base network, in block 908. For example, the customized network generator 110 generates (see Fig. 1) the adapted network 150A for application 120A at least partially by inserting the subnetwork 140A into the basic network 130.
[0084] According to one implementation, procedure 900 also involves the device retrieving a second subnetwork associated with the specific application in response to receiving the notification from that application. For example, the device calls 100 (see Fig. 1) The subnetwork 140B assigned to application 120A is activated in response to receiving a notification from application 120A. Creating the customized network for the specific application also involves the device inserting the second subnetwork into the base network. For example, creating the customized network 150A for application 120A involves (see Fig. 1) also the insertion of subnetwork 140B into the base network 130.
[0085] According to one implementation, procedure 900 involves, prior to inserting the subnetwork into the base network, determining by the device whether a digital signature associated with the subnetwork indicates that the subnetwork is compatible with the base network. For example, processor 102 determines (see Fig. 1) Before inserting subnetwork 140A into base network 130, check whether the digital signature 144A associated with subnetwork 140A indicates that subnetwork 140A is compatible with base network 130. Subnetwork 140A is inserted into base network 130 in response to a determination that the digital signature 144A indicates that subnetwork 140A is compatible with base network 130.
[0086] According to one implementation of Procedure 900, the subnetwork is retrieved from a memory of subnetworks for different applications. According to this implementation, the subnetwork corresponds to a neural network topology with assigned weights tailored to the specific application. According to this implementation, the network weights in the base network are applicable to each of the many possible applications.
[0087] According to one implementation of Procedure 900, inserting the subnetwork into the base network involves adding a parallel branch to a computation graph of the base network and inserting the subnetwork into the parallel branch. In this implementation, the subnetwork can be inserted into the base network according to a subnetwork protocol.
[0088] According to one implementation of Procedure 900, inserting the subnetwork into the base network involves adding a sequential branch to a computation graph of the base network and inserting the subnetwork into the sequential branch. In this implementation, the subnetwork can be inserted into the base network according to an adapter protocol or a hypernetwork protocol.
[0089] According to one implementation of Procedure 900, inserting the subnetwork into the base network involves resizing an embedding lookup matrix associated with the base network and updating the embedding lookup matrix based on the subnetwork after resizing the embedding lookup matrix.
[0090] The procedure 900 of Fig. Section 9 allows developers to reuse the network weights 132 of the base network 130 hosted by the device 100 without affecting the performance or adaptability of the base network 130. For example, the base network 130 can provide a relatively large proportion of the network weights 132 in the customized network 150A for the application 120A. These network weights 132 are reusable to create the customized network 150B for the application 120B. Reusing the network weights 132 of the base network 130 improves the memory capacity of the device 100 (e.g., saves memory space on the device 100). VII. Conclusion
[0091] The present disclosure is not to be limited in the sense of the specific embodiments described in this application, which are intended to illustrate various aspects. Many modifications and variations can be made without deviating from the scope of protection of the disclosure, as will be apparent to the person skilled in the art. Functionally equivalent methods and devices within the scope of protection of the disclosure, in addition to those described here, will be apparent to the person skilled in the art from the foregoing descriptions. Such modifications and variations are intended to fall within the scope of protection of the appended claims.
[0092] The above detailed description outlines various features and processes of the disclosed systems, devices, and methods with reference to the accompanying figures. In the figures, similar symbols typically identify similar components unless the context specifies otherwise. The embodiments described herein and in the figures are not to be understood as limiting. Other embodiments may be used and other modifications may be made without altering the scope of protection of the subject matter presented herein. It is readily understood that the aspects of this disclosure, as generally described herein and illustrated in the figures, may be arranged, substituted, combined, separated, and designed in a multitude of different configurations.
[0093] With regard to the message flow diagrams, scenarios, and flowcharts depicted in the figures and discussed here, each step, block, and / or communication can represent the processing and / or transmission of information according to the embodiments. Alternative embodiments are included within the scope of protection of these embodiments. In these alternative embodiments, for example, operations described as steps, blocks, transmissions, communications, requests, responses, and / or messages can be performed out of sequence as shown or discussed, including substantially concurrently or in reverse order, depending on the functionality involved.Furthermore, more or fewer blocks and / or processes can be used with each of the message flow diagrams, scenarios and flowcharts discussed herein, and these message flow diagrams, scenarios and flowcharts can be partially or completely combined with each other.
[0094] A step or block representing information processing may correspond to a circuit that can be configured to perform the specific logical functions of a procedure or technique described herein. Alternatively or additionally, a block representing information processing may correspond to a module, segment, or section of program code (including associated data). The program code may include one or more instructions executable by a processor to implement specific logical operations or actions in the procedure or technique. The program code and / or associated data may be stored on any type of computer-readable medium, such as a storage device, including random-access memory (RAM), a hard disk drive, a solid-state drive, or other storage medium.
[0095] Computer-readable media can also include non-volatile computer-readable media, such as those that store data for short periods, like register memory, processor cache, and RAM. Computer-readable media can also include non-volatile computer-readable media that store program code and / or data for longer periods. Thus, computer-readable media can include secondary or persistent long-term storage, such as read-only memory (ROM), optical or magnetic disks, solid-state drives, and compact disc read-only storage (CD-ROM). Computer-readable media can also be any other volatile or non-volatile storage system. A computer-readable medium can be considered, for example, as a computer-readable storage medium or as a specific storage device.
[0096] Furthermore, a step or block representing one or more information transfers can correspond to information transfers between software and / or hardware modules in the same physical device. However, other information transfers can occur between software modules and / or hardware modules in different physical devices.
[0097] The specific arrangements shown in the figures are not to be considered limiting. It is understood that other embodiments may include a larger or smaller number of the elements shown in a given figure. Furthermore, some of the illustrated elements may be combined or omitted. Additionally, an embodiment may include elements that are not illustrated in the figures.
[0098] Although various aspects and embodiments have been disclosed herein, further aspects and embodiments will be evident to the person skilled in the art. The various aspects and embodiments disclosed herein serve only for illustration and are not to be considered limiting, since the actual scope is indicated by the following claims. QUOTES INCLUDED IN THE DESCRIPTION
[0000] This list of documents cited by the applicant was automatically generated and is included solely for the reader's convenience. The list is not part of the German patent or utility model application. The DPMA accepts no liability for any errors or omissions. Cited patent literature
[0000] US 63 / 519,985
[0001]
Claims
[1] Procedure, encompassing: Hosting a basic network shared by a variety of applications through a single device; Receiving a notification from a specific application from among the multitude of applications by the device, wherein the notification indicates that the specific application will use the base network; Retrieving a subnetwork associated with the specific application by the device in response to receiving the notification from the specific application; and Creating a customized network for the specific application by the device, at least partially by inserting the subnetwork into the base network. [2] The method of claim 1, further comprising the following before inserting the subnetwork into the base network: Determine whether a digital signature associated with the subnetwork indicates that the subnetwork is compatible with the base network, by means of the device, where the subnetwork is inserted into the base network in response to the determination that the digital signature indicates that the subnetwork is compatible with the base network. [3] Method according to claim 1, wherein the subnetwork is retrieved from a memory of subnetworks which contains subnetworks for different applications. [4] Method according to claim 1, wherein the subnetwork corresponds to a topology of a neural network having assigned weights adapted for the specific application. [5] Method according to claim 1, wherein the insertion of the subnetwork into the base network comprises: Adding a parallel branch to a computation graph of the base network; and Inserting the subnetwork into the parallel branch. [6] Method according to claim 1, wherein the insertion of the subnetwork into the base network comprises: Adding a sequential branch to a computation graph of the base network; and Inserting the subnetwork into the sequential branch. [7] Method according to claim 1, wherein the insertion of the subnetwork into the base network comprises: Resizing an embedding lookup matrix associated with the base network; and Updating the embedding lookup matrix based on the subnetwork after resizing the embedding lookup matrix. [8] Method according to claim 1, wherein the network weights in the base network are applicable to each application of the plurality of applications. [9] Method according to claim 1, wherein the network weights in the subnetwork are applicable to the specific application and wherein the network weights in the subnetwork are not applicable to a different application in the plurality of applications. [10] Method according to claim 1, wherein the basic network is isolated from a server and other devices. [11] Method according to claim 1, wherein receiving the notification from the specified application comprises receiving a call from the specified application to the base network by the device. [12] Device comprising: a storage facility; and a processor coupled with the memory, wherein the processor is configured to: Hosting a basic network that is shared by a variety of applications; Receiving a notification from a specific application out of a multitude of applications, where the notification indicates that the specific application will use the base network; Retrieving a subnetwork associated with the specific application in response to receiving the notification from the specific application; and Creating a customized network for the specific application, at least partially by inserting the subnetwork into the base network. [13] Device according to claim 12, wherein, in order to insert the subnetwork into the base network, the processor is configured to: Adding a parallel branch to a computation graph of the base network; and Inserting the subnetwork into the parallel branch. [14] Device according to claim 12, wherein, in order to insert the subnetwork into the base network, the processor is configured to: Adding a sequential branch to a computation graph of the base network; and Inserting the subnetwork into the sequential branch. [15] Device according to claim 12, wherein, in order to insert the subnetwork into the base network, the processor is configured to: Resizing an embedding lookup matrix associated with the base network; and Updating the embedding lookup matrix based on the subnetwork after resizing the embedding lookup matrix. [16] Device according to claim 12, wherein, prior to inserting the subnetwork into the base network, the processor is configured to: Determine whether a digital signature associated with the subnetwork indicates that the subnetwork is compatible with the base network, where the subnetwork is inserted into the base network in response to the determination that the digital signature indicates that the subnetwork is compatible with the base network. [17] Device according to claim 12, wherein the basic network is isolated from a server and other devices. [18] Device according to claim 12, wherein network weights in the subnetwork are applicable to the specific application and wherein the network weights in the subnetwork are not applicable to a different application in the plurality of applications. [19] Non-transitory computer-readable medium comprising instructions which, when executed by a processor within a device, cause the processor to perform operations which include: Hosting a basic network that is shared by a variety of applications; Receiving a notification from a specific application out of a multitude of applications, where the notification indicates that the specific application will use the base network; Retrieving a subnetwork associated with the specific application in response to receiving a notification from the specific application; and creating a customer-specific network for the specific application, at least partially by inserting the subnetwork into the base network. [20] Non-transitory computer-readable medium according to claim 19, wherein the operations prior to inserting the subnetwork into the base network comprise the following: Determine whether a digital signature associated with the subnetwork indicates that the subnetwork is compatible with the base network, by means of the device, where the subnetwork is inserted into the base network in response to the determination that the digital signature indicates that the subnetwork is compatible with the base network.
Citation Information
Patent Citations
US63519985B2
U.S.-PATENTANMELDUNGNR.63/519,985
