A system and method for implementing a federative learning engine for vertical and horizontal AI integration.
The federated learning method addresses data centralization challenges by creating a fused model from local models, ensuring efficient and secure training of industry-specific AI models across diverse markets.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- ORACLE INT CORP
- Filing Date
- 2022-06-21
- Publication Date
- 2026-04-27
AI Technical Summary
Existing machine learning models struggle with data centralization issues, including the management of sensitive information, significant hardware requirements, and catastrophic forgetting, especially when applied across multiple different markets or industries.
A federated learning approach combining a global model with local models, where a central aggregator trains a minimal model on user data, removes the classifier head, and creates a fused model from multiple local models, enabling rapid customization and vertical-specific AI without catastrophic forgetting.
This method allows for efficient, secure, and cost-effective training of industry-specific AI models by leveraging user data while minimizing hardware needs and preventing performance degradation over time.
Smart Images

Figure 0007840397000001 
Figure 0007840397000002 
Figure 0007840397000003
Abstract
Description
Technical Field
[0001] Cross - Reference to Related Applications This application claims the benefit and priority of U.S. Patent Application No. 17 / 399,911, filed on August 11, 2021, and titled "Systems and Methods for Implementing a Federated Learning Engine for the Integration of Vertical and Horizontal AI", which is hereby incorporated by reference in its entirety.
Background Art
[0002] Background This application relates to distributed machine learning and federated learning.
Summary of the Invention
Means for Solving the Problems
[0003] Brief Summary One aspect of the present disclosure relates to a method. The method includes receiving a global model including a plurality of layers from a central aggregator communicatively connected to a plurality of user environments, training a local model on the global model using data collected within the user environments, uploading at least a portion of the local model to the central aggregator, receiving a plurality of local models, and creating a fused model based on the plurality of received local models.
[0004] In some embodiments, the plurality of user environments include a plurality of tenancies within a cloud computing network. In some embodiments, the global model can be a deep learning model. In some embodiments, the deep learning model can be a Transformer. In some embodiments, the deep learning model can be a Bidirectional Encoder Representations from Transformers (BERT) model.
[0005] In some embodiments, the minimal model can take the output of the global model. In some embodiments, the output of the global model includes the layer outputs of at least some of the layers of the global model. In some embodiments, uploading the minimal model to a central aggregator includes removing the classifier head from the minimal model. In some embodiments, uploading the minimal model to a central aggregator includes uploading the binary of the minimal model.
[0006] In some embodiments, multiple minimal models are received from a central aggregator. In some embodiments, creating a fused model based on the received multiple minimal models includes training the fused model on the received minimal models. In some embodiments, creating a fused model based on the received multiple minimal models includes combining data representing layers and weights from each of the multiple minimal models.
[0007] In some embodiments, creating a fused model based on a plurality of received minimum models includes generating a classifier head and applying the classifier head to layers of the fused model. In some embodiments, the method includes receiving data to be used to generate machine learning model outputs, ingesting the data using a global model in a user environment, collecting intermediate outputs of the global model, ingesting the intermediate outputs using a fused model, and outputting predictions using the fused model. In some embodiments, the method includes receiving data to be used to generate machine learning model outputs, ingesting the data using a global model in a user environment, collecting a first intermediate output of the global model, ingesting the first intermediate output of the global model using at least some of the plurality of minimum models, collecting a second intermediate output of at least some of the plurality of minimum models, ingesting the intermediate outputs using a fused model, and outputting predictions using the fused model.
[0008] One aspect of the present disclosure relates to a system including memory and at least one processor. The at least one processor can receive a global model from a central aggregator which is communicably connected to multiple user environments, the global model comprising multiple layers, training a minimal model on the global model using data collected within the user environments, uploading at least a portion of the minimal model to the central aggregator, receiving multiple minimal models, and creating a fused model based on the received multiple minimal models.
[0009] In some embodiments, uploading at least a portion of the minimal models to a central aggregator includes removing the classifier heads from the minimal models. In some embodiments, creating a fused model based on multiple received minimal models includes training the fused model on the received minimal models.
[0010] One aspect of the present disclosure relates to a non-temporary computer-readable storage medium for storing a plurality of instructions that can be executed by one or more processors. When executed by one or more processors, the plurality of instructions cause one or more processors to receive a global model comprising multiple layers from a central aggregator that is communicably connected to multiple user environments, to train a minimal model on the global model using data collected within the user environments, to upload at least a portion of the minimal model to the central aggregator, to receive a plurality of minimal models, and to create a fused model based on the plurality of received minimal models.
[0011] In some embodiments, uploading at least a portion of the minimal models to a central aggregator includes removing the classifier heads from the minimal models. In some embodiments, creating a fused model based on multiple received minimal models includes training the fused model on the received minimal models. [Brief explanation of the drawing]
[0012] [Figure 1] This is a schematic diagram of one embodiment of the AI. [Figure 2] This is a schematic diagram of one embodiment of an associative learning system. [Figure 3] This is a detailed schematic diagram of one embodiment of an associative learning system. [Figure 4] This is a schematic diagram of one embodiment of the process for generating a fusion model output. [Figure 5] This is a flowchart illustrating one embodiment of the process for generating a fusion model. [Figure 6] This flowchart shows one embodiment of the process performed in the customer environment to generate a fusion model. [Figure 7] This is a flowchart illustrating one embodiment of the process for generating output using a fusion model. [Figure 8] This block diagram shows one pattern for implementing a cloud infrastructure as a service system, in at least one embodiment. [Figure 9] This block diagram shows another pattern for implementing cloud infrastructure as a service system, with at least one embodiment. [Figure 10] This block diagram shows another pattern for implementing cloud infrastructure as a service system, with at least one embodiment. [Figure 11] This block diagram shows another pattern for implementing cloud infrastructure as a service system, with at least one embodiment. [Figure 12] A block diagram illustrating an exemplary computer system according to at least one embodiment. [Modes for carrying out the invention]
[0013] Detailed explanation In the following description, certain details are included to provide a complete understanding of a particular embodiment for illustrative purposes. However, it will be apparent that various embodiments can be carried out without these specific details. The figures and descriptions are not intended to be limiting. The term “exemplary” is used herein to mean “serving as an example, illustration, or illustration.” Any embodiment or design described herein as “exemplary” should not necessarily be construed as being preferable or advantageous over other embodiments or designs.
[0014] Intelligence system Referring here to Figure 1, a schematic diagram of one embodiment of the intelligence system 151 is shown. The intelligence system 151 shows the connections between the data source 150, data processing 152, enterprise IT 158, AI services 160, intelligent app / insight module 168, and enterprise solution customers 170 or service customers 172. In some embodiments, the embodiment of the intelligence system 151 can collect data, train a model, and provide the model and / or the output of the model to one or more customers.
[0015] The intelligence system 151 includes a data source 150. The data source may include data sources used by the intelligence system 151. These may include, for example, Internet of Things devices, social media, mobile apps, smartwatches, health apps, or other data sources.
[0016] The data collected from data source 150 may be provided to data processing module 152. This may include, for example, an ingestion submodule 154 that can provide real-time and / or batch ingestion to data governance module 156. Governance module 156 can provide data cataloging, data orchestration, and / or data integration.
[0017] The data processing module 152 can be connected to the enterprise IP 158 that can provide, for example, a recording system, enterprise risk management, human capital management, customer relationship management, etc. The enterprise IT 158 can be connected to the AI service 160 that can include a service module 162 including one or several services. Each of these one or several services represents an AI function. These can include, for example, computer vision, speech translation, anomaly detection, language services, prediction services, collaborative AI services, etc.
[0018] The services within the service module 162 can each be customer endpoints that enable customers to use both pre-trained model intelligence and custom model intelligence provided via the AI service 160. The service module 162 can include the services identified above and can include newer services as newer services are developed and produced.
[0019] The AI service 160 can include an AI and data science platform 164. The AI and data science platform 164 can provide infrastructure and functions for supporting the execution of machine learning and data workloads. This can include, for example, support for model training, support for inference, etc. In some embodiments, the platform 164 can include an orchestration layer that can be a set of functions that encapsulate both the ML infrastructure layer and the service layer from the complexity and specificity of those layers to facilitate consumption and management within the AI service logic. This layer can include, for example, an asset manager, a training manager, a deployment manager, and / or an orchestration manager.
[0020] Network service 166 can provide infrastructure resources that can be used by individual AI services across multiple AI service customers, or that can be shared by multiple AI services across multiple AI service customers. Where such security and privacy separation is required by AI service customers, multiple AI services can share dedicated ML infrastructure resources for a specific AI service customer. The necessary common infrastructure includes computing (CPU / GPU), networking, and storage.
[0021] System 151 further includes an intelligent app / insight module 168. The app of this module enables, for example, faster time to business insights, faster processes, longer time to market, and improved customer experience. In some embodiments, these can further reduce costs and improve productivity. In some embodiments, this can be achieved without the use of data scientists or IT.
[0022] System 151 can interact with customers 170 and 172 directly via the AI service 160 or via the intelligent app / insight module 168.
[0023] Associative learning engine Many machine learning approaches utilize centralized training data. This training data can be centralized, for example, within a data center or on one or more machines. While such data centralization has proven effective, it may have several drawbacks. These drawbacks include issues arising from the collection and / or management of data that includes personal, protected, and / or sensitive information. Furthermore, aggregating large amounts of data can require significant hardware and the associated costs. Finally, due to issues related to catastrophic forgetting, the performance of machine learning models may not improve even as the training data set grows significantly.
[0024] This problem becomes particularly difficult when using artificial intelligence models for multiple different markets. For example, a single AI model may struggle to function effectively in both the healthcare and hospitality markets. Such a model cannot include market-specific training to perform equally well in both markets, as this could lead to a catastrophic loss of training relevant to the other market. Therefore, many such models lack the specific training necessary to deliver high levels of performance.
[0025] For example, horizontal AI models may not be specific to one or more industry domains. These horizontal AI models can solve a wide range of problems across many different industries, and in some embodiments, they can provide use-case-agnostic programs. In some embodiments, horizontal AI can be used to prioritize customer leads, predict which adoptions will be most successful, recommend products, or target advertising. Vertical AI, on the other hand, is specific to an industry vertical and can be applied to specific problems in a particular industry, and can be highly optimized for that industry, for example. Vertical AI applications can train models using industry-specific types of data from the target industry. In some embodiments, inferences from vertical AI can provide unique, improved predictions and / or insights.
[0026] In some embodiments, the combination of horizontal and vertical AI disclosed herein can enable the solution of a wide range of problems, and in some embodiments, it can help customers select data for building an AI vertical. In some embodiments, this disclosure can facilitate the rapid training, generation, and / or deployment of AI models using highly heterogeneous data from multiple sources. Embodiments disclosed herein can, for example, accelerate the rapid prototyping of industry-specific models with vertical differentiation in a particular industrial domain. Embodiments disclosed herein can enable the use of model learning to optimize infrastructure costs for model training and deployment.
[0027] In certain embodiments disclosed herein, a horizontal AI in the form of an initial global model can be used in combination with a vertical AI in the form of one or more minimal models and / or fused models. Through the combination of horizontal and vertical AI disclosed herein, in some embodiments, the advantages of both horizontal and vertical AI can be achieved simultaneously. In some embodiments, the global model can be updated over time based on the minimal models and / or fused models, and thus, over time, the global model can become a vertical AI through these updates. This targeted vertical model can then be memorized and utilized to provide a vertical-specific AI without further associative learning.
[0028] Furthermore, this disclosure relates to a system and method of federative learning. In such a system and method, a global model is intensively trained and provided to different customers, also referred to herein as users. These users can install and utilize this global model and, based on the data they collect, can train a supplemental machine learning model, also referred to herein as a minimal model. In some embodiments, this supplemental machine learning model can receive one or more outputs of the global model, for example, the interlayer outputs of the global model, as input. Based on these inputs from the global model and / or other inputs, the supplemental model can generate outputs.
[0029] Such supplemental models can be provided to a central server capable of storing them. These supplemental models can be provided to the central server by first removing the classifier head and then sending the removed supplemental model to the central server. In some embodiments, the supplemental models can be sent to the central server in binary format, which can identify the layers and / or nodes of the supplemental model, as well as the weights associated with the layers and / or nodes of the supplemental model.
[0030] These supplemental models can be received from several users who have been provided with a global model, and a library of supplemental models can be created in the aggregator. Users can request and / or provide one or more supplemental models. Some or all of these one or more supplemental models can be used to create a fused model. In some embodiments, the fused model can be created from a combination of supplemental models, and / or the fused model can be trained on top of the supplemental models. In some embodiments, the fused model can incorporate data from a minimal model, specifically including layers and / or nodes from the minimal model, as well as their associated weights.
[0031] By using a pre-trained global model combined with minimal models, users can quickly incorporate changes and / or updates and customize the model for specific applications without the risk of, for example, catastrophic forgetting. Furthermore, users can select the minimal models to include in the fused model. These minimal models can be selected based on information related to them, which may include metadata associated with the minimal models. In some embodiments, this metadata may indicate the source of the minimal model, the confidence level and / or accuracy of the minimal model, and / or other information related to the minimal model. Based on this information, users can decide whether to trust the minimal models and / or select one or more minimal models to include in the fused model.
[0032] During operation, if a user wants to make predictions using a fused model, the user can receive and / or select data such as feature data. This data can be taken up by the global model in the user environment. Intermediate outputs of the global model (which may include interlayer outputs) can be collected by the user. These intermediate outputs of the global model can be used as features to be taken up by the next machine learning model. In some embodiments, this next machine learning model can be the minimal model from which the fused model is created. In such embodiments, intermediate outputs of the minimal model (which may include interlayer outputs) can be collected by the user. These intermediate outputs of the minimal model can be used as features to be taken up by the fused model.
[0033] Some or all of the features of the global model and / or minimal model from which the fused model is created can be incorporated by the fused model. A fused model that can include a classifier head can produce an output that can be the final output. This output could be a prediction, classification, etc.
[0034] Referring now to Figure 2, a schematic diagram of one embodiment of the federated learning system 200 is shown. The federated learning system 200 may include an aggregator 202 and one or more customer environments 212. Each of the aggregator 202 and one or more customer environments 212 may have hardware or virtual instances. Thus, in some embodiments, each of the aggregator 202 and one or more customer environments 212 may have one or more processors, servers, computers, etc., or virtual computing instances. In some embodiments, all of the aggregator 202 and one or more customer environments 212 may have virtual instances, for example, on a virtual cloud network. In some embodiments, the aggregator and one or more customer environments 212 may run as separate tenancies within the cloud network. In some embodiments, each of the one or more customer environments 212 may have access to the private data of the associated customer, while in some embodiments, the aggregator 202 may not have access to this customer's private data.
[0035] In some embodiments, the aggregator 202 and each of the customer environments may be linked to communicate via a communication network 210. The communication network 210 can enable communication and / or data transfer between the aggregator 202 and one or more customer environments 212. In some embodiments, the communication network 210 may include wired or wireless networks, local area networks, wide area networks, public networks, private networks, and the like.
[0036] The aggregator 202 can collect and manage information. This may include, for example, information identifying one or more customers, the current status of processing, and recording and monitoring of information. In some embodiments, the aggregator 202 manages the information, thereby facilitating the collection, averaging, and variance of the minimum model. In some embodiments, the aggregator 202 can further train and / or update the training of the global model.
[0037] The aggregator 202 may include a federation server 204. The federation server 204 can be implemented in hardware or software. The federation server 204 can generate and / or train a global model, provide that global model to one or more customer environments 212, receive minimum models from one or more customer environments 212, manage the storage and tracking of minimum models, generate and / or collect metadata related to minimum models, and provide one or more minimum models to one or more customer environments 212. The federation server 204 can be implemented in hardware or software. In some embodiments, the federation server 204 may comprise virtual computing instances and / or services provided as part of a virtual cloud network.
[0038] The aggregator may include a global model store 206. The global model store 206 can store global models. In some embodiments, this may include storing metadata related to the global models. This metadata may include, for example, versions, training data, etc. The global model store 206 may have a database and / or memory. This memory may include an allocated portion of memory or one or more separate memory devices.
[0039] The global model can be a base model. The global model may include, for example, neural networks, decision trees, linear classifiers / regression models, deep learning models, and deep reinforcement learning models, such as Deep Deterministic Policy Gradient (DDPG) or Deep Q Network (DQN). In some embodiments, the global model may include a transformer, such as a Bidirectional Encoded Representation by Transformer (BERT) model. The global model can be trained by an aggregator, specifically a federated server. In some embodiments, the global model may be trained for feature extraction. In some embodiments, for example, the global model may be trained for feature extraction from a given text. These features may include, for example, linguistic features and / or contextual features. In some embodiments, the global model can be trained using data accessible by the aggregator 202, including training data in the global model store 206.
[0040] The aggregator may include a minimal model store 208, also referred to herein as a supplemental model store 208 or local model store 208. The minimal model store 208 can store one or more minimal models. The minimal model store 208 can store the binary of a minimal model, which may represent the layers, nodes, and / or weights of the minimal model. In some embodiments, the minimal model store 208 may store metadata related to the minimal model. This metadata may include, for example, identification of the source of the minimal model, information for establishing and / or evaluating the reliability of the validation model, and information related to training the validation model. In some embodiments, information related to training the validation model may identify the task on which the validation model was trained, and / or the specific vertical on which the validation model was trained. The minimal model store 208 may comprise a database and / or memory. This memory may include an allocated portion of memory or one or more separate memory devices.
[0041] Each of the customer environments 212 may include a fusion server 214. The fusion server 214 can receive a global model from the aggregator 202, store the global model, generate a minimum model on top of the global model, send the global model to the aggregator 202 for storage in the minimum model store 208, receive one or more minimum models and / or updates from the aggregator 202, train and / or build a fusion model based on these one or more minimum models and / or updates received from the aggregator 202, and generate one or more outputs and / or predictions using the minimum models and / or global model. The fusion server 214 can be implemented in hardware or software. In some embodiments, the fusion server 214 may comprise a virtual computing instance and / or service provided as part of a virtual cloud network.
[0042] A customer environment 212 may include a data store 216. The data store 216 can store customer information of a customer associated with the customer environment. In some embodiments, this customer information can be kept private and stored in a way that prevents access by the aggregator 202 and / or other customer environments 212. The customer information in the data store 216 can be used for training minimal models and fused models. The data store 216 may include a database and / or memory. This memory may include an allocated portion of memory or one or more separate memory devices.
[0043] The customer environment 212 may include a model store 218. In some embodiments, the model store 218 can store minimum models trained by the customer environment 212 on top of the global model, and in some embodiments, it can store fused models generated and / or trained by the customer environment 212 on top of the received minimum model. In some embodiments, the model store 218 may further store global models received by the customer environment 212 from the aggregator 202. The model store 218 may comprise a database and / or memory. This memory may include an allocated portion of memory or one or more separate memory devices.
[0044] Referring now to Figure 3, a detailed schematic diagram of one embodiment of System 200 is shown. In some embodiments, System 200 can provide a framework for federative learning. This system includes an aggregator 202 and one customer environment 212. As shown in Figure 2, System 200 may include multiple additional customer environments 212, but only a single customer environment 212 is shown for the purpose of providing more detail about the components and / or modules of the aggregator 202 and the customer environment 212.
[0045] The aggregator 202 may include a fusion manager 302, a protocol manager 304, and an FL connection manager 306. These modules may be modules within the federation server 204, and / or modules accessible and / or controllable by the federation server 204. The fusion manager 302 can be coupled with model stores, specifically the global model store 206 and the local model store 208.
[0046] As shown in Figure 3, the local model store 208 may contain multiple minimum models 308, also referred to herein as supplemental models 308 or local models 308. These may include a first minimum model 308-A received from a first customer environment 212, such as customer environment A212-A shown in Figure 2, and a second minimum model 308-B received from a second customer environment 212, such as customer environment B212-B shown in Figures 2 and 3. The local model store 208 may contain binaries for each of the minimum models 308 contained in the local model store 208, the binaries which can identify the layers, nodes, and / or weight values of the model from which the minimum model was created.
[0047] Furthermore, as shown in Figure 3, the global model store 206 can include a global model 310. The global model 310 can be trained and / or generated by the aggregator 202, specifically by the fusion manager 302 in some embodiments.
[0048] The fusion manager 302 can select a specific model from one of the model stores 206, 208. In some embodiments, the fusion manager 302 can provide information to and / or retrieve information from the model stores 206, 208. This may include providing a global model 310 to the global model store 206 and / or providing one or more of the minimum models 308 to the minimum model store 208. In some embodiments, the fusion manager 302 can retrieve models from the model stores 206, 208. This may include retrieving a global model 310 from the global model store 206 so that the global model can be provided to one or more of the customer environments 212. In some embodiments, this may include retrieving one or more of the minimum models 308 from the minimum model store 208. These minimum models 308 can then be provided to one or more customer environments 212. In some embodiments, the fusion manager 302 can retrieve and / or provide information regarding model performance. Therefore, in some embodiments, the fusion manager 302 can access metadata associated with a model stored in one of the model stores 206, 208. The fusion manager can be implemented in hardware or software, and in some embodiments, it can be part of the fusion server 204.
[0049] The protocol manager 304 facilitates communication between the aggregator 202 and / or federation server 204 and one or more of the customer environments 212. The protocol manager 304 can further provide message exchange between the customer environments 212 and the aggregator 202 and / or federation learning servers, for example, governance across learning protocols. These messages may include, for example, queries, model updates, FL configuration establishment, and new customer registration.
[0050] The FL connection manager 306 can function as a connection interface between the aggregator 202 and the customer environment 212. In some embodiments, the FL connection manager 306 can establish and manage networking between various components necessary for the operation of the system 200. Specifically, the FL connection manager can establish and manage communication and / or networking between the aggregator 202 and one or more customer environments 212. In some embodiments, the FL connection manager can support low-level APIs from the OSI / TCP-IP stack.
[0051] The customer environment 212 may include a local training manager 312, a protocol manager 314, and an FL connection manager 316. These modules may be modules within the federation server 204, and / or modules accessible and / or controllable by the federation server 204.
[0052] The local training manager 312 can train machine learning models in the customer environment 212. This may include training minimal models on a global model, as well as / or training and / or building fused models. The local training manager 312 can be communicatively coupled with the local data manager 318 and the model store 218. The local data manager 318 can be communicatively coupled with the data store 216. The local data manager 318 can access and provide access to the data in the data store 216. This data in the data store 216 of the customer environment 212 can, in some embodiments, be isolated for the specific customer environment 212 in which it is contained.
[0053] By accessing the data in the data store 216, the local training manager 318 can train, generate, and / or build machine learning models. Specifically, the local training manager 318 can train, generate, and / or build minimal models and / or fused models. These models can be stored in the model store 218.
[0054] Similar to the aggregator 202, the customer environment 212 may include a protocol manager 314 and an FL connection manager 316. The protocol manager 314 facilitates communication between the customer environment 212 and the aggregator 202. In some embodiments, the protocol manager 314 can further facilitate communication with other customer environments 212. The protocol manager 314 can further provide governance over message exchange between customer environments 212 and / or between customer environments and the aggregator 202 and / or federated learning server 204. These messages may include, for example, queries, model updates, FL configuration establishment, and new customer registration.
[0055] The FL connection manager 316 can function as a connection interface between customer environments 212 and aggregators 202, and / or between sets of customer environments 212. In some embodiments, the FL connection manager 316 can establish and manage networking between various components necessary for the operation of system 200. Specifically, the FL connection manager can establish and manage communication and / or networking between customer environments 212 and aggregators 202, and / or between sets of customer environments 212. In some embodiments, the FL connection manager can support low-level APIs from the OSI / TCP-IP stack.
[0056] Referring next to Figure 4, a schematic diagram of one embodiment of the process 400 performed by the customer environment when generating predictions is shown. As seen in Figure 4, in some embodiments, predictions can be made using multiple models. These models can be stored in the customer environment 212. User input 401 is incorporated into the model. In some embodiments, this may include incorporating user input 401 into a global model 402. The global model 402 may comprise multiple layers 404-A to 404-N. In some embodiments, the global model 402 can act as a feature extractor and may provide multiple outputs 406. These outputs are used as features by subsequent models and are therefore referred to as intermediate outputs in this specification.
[0057] In some embodiments, the global model 402 can provide outputs after classification and / or processing by some or all of the layers. Thus, for example, the global modal 402 can provide a first output after processing and / or classification of layer 404-A, a second output after processing and / or classification of layer 404-B, a third output after processing and / or classification of layer 404-C, and so on, up to the Nth output after processing and / or classification of layer 404-N.
[0058] These intermediate outputs 406 can be captured by subsequent models, such as minimal models or fused models. In some embodiments, minimal and fused models are configured to capture outputs of a global model, which may include at least some layer outputs of the global model's layers. In some embodiments, these intermediate outputs 406 can be captured by one or more minimal models 408 stored in a model store 218 of the customer environment 212, and in some embodiments, these intermediate outputs 406 can be captured by a fused model 414.
[0059] Referring particularly to Figure 4, the intermediate output from the global model 402 can be captured by a plurality of minimum models 408 in the model store 218 of the customer environment 212. Each of these minimum models 408 can act as a feature extractor and, in some embodiments, can provide multiple outputs. Since these outputs are used as features by subsequent models, they are referred to as intermediate outputs herein.
[0060] In some embodiments, the minimum model 408 may provide an output 412 after classification and / or processing by some or all of the layers. Specifically, in some embodiments, the output 412 may be provided after each of the some or all of the layers is completed. Thus, in some embodiments, the minimum model may provide up to the same number of outputs 412 as the number of layers in that minimum model.
[0061] These outputs can be received and incorporated into a fusion model 414, which may comprise multiple layers 416 and a classifier head 418. The fusion model 414, specifically the classifier head, can provide a final output in the form of a desired task output 420.
[0062] Referring next to Figure 5, a flowchart is shown illustrating one embodiment of the process 500 for generating a fused model. Process 500 can be performed by all or part of the federated learning system 200. Process 500 begins in block 502, where the aggregator 202, specifically the federated server 204, receives and / or retrieves global training data. In some embodiments, this may include receiving and / or retrieving global training data from the global model store 206.
[0063] In block 504, the global model is trained. In some embodiments, the global model may be trained by the aggregator 202, specifically by the federation server 204 and / or the fusion manager 302. The global model can be trained using global training data. After the global model has been trained, it may be stored in the global model store 206.
[0064] In block 506, the global model is provided to the customer environment 212. The global model can be provided to the customer environment by the aggregator 202 via the federation server 204, specifically via the FL connection manager 306 and the protocol manager 304. In some embodiments, the aggregator 202 can transmit the global model to some or all of the customer environments 212 to which the aggregator is connected. The global model is received by the customer environment 212, and the customer environment 212 stores the global model in its model store 218.
[0065] In block 508, local data is collected in each of the customer environments 212. The local data collected by the customer environment 212 can be stored in the data store 216 of that customer environment 212. The local data can be stored in the data store 216 by the local data manager 318 of the customer environment 212.
[0066] In block 510, some or all of the customer environments 212 that have received the global model can train a minimum model. In some embodiments, this may include training a minimum model on top of the global model.
[0067] The minimal model trained by a customer environment 212 can be trained by the customer environment 212's local training manager 312. The minimal model of a customer environment 212 can be trained using the customer environment 212's local data. This local data can be retrieved from the customer environment 212's data store 216 by the customer environment 212's local data manager 318. Execution of the steps in block 510 by multiple customer environments 212 can result in the creation of multiple minimal models, each of which can be trained using the customer environment 212's local data. The minimal models generated by a customer environment 212 can be stored in the customer environment 212's model store 218.
[0068] In block 512, the customer environment removes the head layer from the minimum model to be trained to create a minimum model to be removed. This may include the customer environment 212 removing the classifier head from its minimum model. In some embodiments, this minimum model to be removed may include a binary of the minimum model, which can identify, for example, the layers and / or nodes of the supplemental model, as well as the weights associated with those layers and / or nodes.
[0069] After the head layer of the minimum model is removed, the minimum model to be removed may be uploaded to the aggregator 202 by the customer environment, i.e., the binary of the minimum model may be uploaded. This may include the protocol manager 314 and / or FL connection manager 316 of the customer environment 212 communicating the minimum model to be removed to the connection manager 306 and / or protocol manager 304 of the aggregator 202. The aggregator 202 can receive the minimum model to be removed from the customer environment 212 and can store the minimum model to be removed in the global model store 206.
[0070] In block 514, the received minimum models to be removed are evaluated by the aggregator 202. The aggregator 202 can generate minimum model scores and associate the minimum models with its minimum model store. These minimum model scores can characterize one or more attributes of the minimum model, the training of the minimum model, the customer environment 212 in which the minimum model was trained, etc. In some embodiments, these minimum model scores may reflect, for example, the reliability of the associated minimum model. In some embodiments, the minimum model score of a minimum model may be generated based on metadata associated with that minimum model.
[0071] In block 516, the customer environment selects, fetches, requests, and / or receives one or more minimal models to be removed from the aggregator. In some embodiments, the customer can request information characterizing one or more minimal models to be removed via the customer environment. This information may include, for example, the score of the minimal model, metadata associated with the minimal model, etc. In some embodiments, the customer can select and / or request one or more minimal models via the customer environment. In some embodiments, these one or more minimal models may be selected based on this information characterizing one or more minimal models to be removed. For example, the customer can select and / or request one or more minimal models if the requested one or more minimal models have information indicating one or more desired attributes, such as sufficiently high reliability, training of the minimal model for one or more desired tasks, etc. In some embodiments, the customer can select a minimal model based on a predetermined threshold, and in some embodiments, the customer can select a minimal model based on a comparison of the received minimal models. Thus, in some embodiments, for example, the customer can select the minimal model with the highest score.
[0072] The aggregator 202 can receive selections and / or requests for minimum models to be removed and can provide the requested and / or selected minimum models to the customer environment 212. The minimum models to be removed may be provided to the customer environment via the protocol manager 304 and / or the FL connection manager 306. The customer environment 212 can receive the selected minimum models to be removed from the aggregator 202 and can store the minimum models to be removed in the model store 218. In some embodiments, the customer environment 212 can receive the minimum models to be removed via the FL connection manager 316 and / or the protocol manager 314.
[0073] In block 518, the customer environment 212 trains the fusion model. In some embodiments, the customer environment 212 can train the fusion model on the received minimal model to be removed. The fusion model can be trained by the local training manager 312. In some embodiments, training the fusion model can include fusing the minimal model into the fusion model. In some embodiments, the fusion model can include, for example, neural networks such as FedAVG (e.g., Gradient Average, Fed+, FedPox), decision trees such as ID3 fusion, reinforcement learning such as iterative average and FedAvg, linear classifiers such as iterative average, and / or Naive Bayes such as Naive Bayes fusion with differential privacy.
[0074] In some embodiments, training a fusion model can involve combining binaries from each of the received minimal models. This fusion training can, in some embodiments, facilitate and simplify the creation of the fusion model.
[0075] In block 520, a task-specific head, specifically a task-specific classifier head, is generated and applied to the fused model. This task-specific classifier head can be generated by the customer environment, specifically by the local training manager 312. The fused model can be stored in the model store 218 of the customer environment where the fused model was trained and / or generated.
[0076] Next, referring to Figure 6, a flowchart is shown illustrating one embodiment of process 600 for generating a fusion model. Process 600 can be executed by the customer environment 212. Process 600 begins in block 602, in which the customer environment 212 receives and implements the global model. The global model may be received by the customer environment 212 from the aggregator. The customer environment 212 can store the global model in the customer environment's model store 218.
[0077] In block 604, data is collected in the customer environment 212. This data may include local data generated by the customer environment, or local data generated in relation to the customer environment. For example, the customer environment 212 may be associated with a hospital. The local data may be some or all of the data generated by that hospital, or generated in relation to that hospital. In some embodiments, this data may be provided to or accessed by the customer environment. The local data collected in the customer environment 212 may be stored in the customer environment 212's data store 216 by the local data manager 318.
[0078] In block 606, the minimum model is trained by the customer environment 212. In some embodiments, the minimum model is trained on top of the global model. The minimum model trained by the customer environment 212 can, specifically, be trained by the local training manager 312 of that customer environment 212.
[0079] A minimal model for a customer environment 212 can be trained using the local data of that customer environment 212. This local data can be retrieved from the customer environment 212's data store 216 by the customer environment 212's local data manager 318. Therefore, in some embodiments, training the minimal model may include, for example, retrieving local data from the data store 216 via the local data manager 318.
[0080] In block 608, the minimum model head layer is removed by the customer environment 212, and the removed minimum model, in other words, the minimum model binary, is sent to and / or provided to the aggregator. In some embodiments, this may include identifying and removing the head layer from the minimum model to be trained, the head layer may include classifier heads. In some embodiments, this removed minimum model may include the minimum model binary, which may identify, for example, the layers and / or nodes of the supplemental model, as well as the weights associated with the layers and / or nodes of the supplemental model.
[0081] After the head layer of the minimum model is removed, the minimum model to be removed may be uploaded to the aggregator 202 by the customer environment, i.e., the binary of the minimum model may be uploaded. This may include the protocol manager 314 and / or FL connection manager 316 of the customer environment 212 communicating the minimum model to be removed to the connection manager 306 and / or protocol manager 304 of the aggregator 202. The aggregator 202 can receive the minimum model to be removed from the customer environment 212 and can store the minimum model to be removed in the global model store 206.
[0082] In block 610, the customer environment selects, fetches, requests, and / or receives one or more minimum models to be removed from the aggregator. In some embodiments, the distribution of minimum models to be removed can be done according to a push or pull mechanism. In some embodiments, for example, one or more minimum models and / or updates can be pushed to the customer environment 212 by the aggregator 202. In other embodiments, the customer environment 212 can select and / or request one or more minimum models.
[0083] In embodiments where the minimum model is pushed to the customer environment, the aggregator 202 can track the number of minimum models received and the changes in the minimum model compared to the global model. In some embodiments, the aggregator can push updates, for example, after a predetermined period of time has elapsed or when a change threshold is met.
[0084] In embodiments where the minimum models are pulled into the customer environment 212, the customer can request information through the customer environment that characterizes one or more minimum models to be eliminated. This information may include, for example, the score of the minimum models, metadata associated with the minimum models, etc. In some embodiments, the customer can select and / or request one or more minimum models through the customer environment. In some embodiments, these one or more minimum models may be selected based on this information characterizing one or more minimum models to be eliminated. For example, the customer can select and / or request one or more minimum models if the requested one or more minimum models have information indicating one or more desired attributes, such as sufficiently high reliability, training of the minimum models for one or more desired tasks, etc. In some embodiments, the customer can select minimum models based on a predetermined threshold, and in some embodiments, the customer can select minimum models based on a comparison of the received minimum models. Thus, in some embodiments, for example, the customer can select the minimum model with the highest score.
[0085] The aggregator 202 can receive selections and / or requests for minimum models to be removed and can provide the requested and / or selected minimum models to the customer environment 212. The minimum models to be removed may be provided to the customer environment via the protocol manager 304 and / or the FL connection manager 306. The customer environment 212 can receive the selected minimum models to be removed from the aggregator 202 and can store the minimum models to be removed in the model store 218. In some embodiments, the customer environment 212 can receive the minimum models to be removed via the FL connection manager 316 and / or the protocol manager 314.
[0086] In block 612, the reliability of the received minimum model to be removed is verified. In some embodiments, this reliability verification can be performed by the customer environment 212. In some embodiments, the reliability verification can be performed using an external trust establishment system. This may include, for example, the use of a blockchain. In some embodiments, the external trust establishment system may verify the reliability of the received minimum model, for example, via a decentralized consensus.
[0087] In block 614, the minimum model and / or updates received are stored by the customer environment 212. In some embodiments, this may include storing the minimum model and / or updates received in the model store 218.
[0088] In block 616, a fused model is constructed on top of the received minimum model. In some embodiments, the fused model can be created from a combination of supplementary models, and / or the fused model can be trained on top of the supplementary models. The fused model can be trained by the local training manager 312. In some embodiments, creating a fused model based on the received minimum model to be removed may involve combining data such as the binary of the minimum model to be removed, representing the layers and weights from each of the multiple minimum models.
[0089] In some embodiments, training the fusion model may include fusing a minimal model into the fusion model. In some embodiments, the fusion model may include decision trees such as FedAVG(, Gradient Average, Fed+, FedPox); ID3 fusion, reinforcement learning such as iterative averages and FedAvg, linear classifiers such as iterative averages, and / or Naive Bayes such as Naive Bayes fusion with differential privacy.
[0090] In block 618, a task-specific head, specifically a task-specific classifier head, is generated and applied to the fused model. This task-specific classifier head can be generated by the customer environment, specifically by the local training manager 312. The fused model can be stored in the model store 218 of the customer environment where the fused model was trained and / or generated.
[0091] In block 620, the fused model is stored. The fused model can be stored in the model store 218 of the customer environment in which the fused model was trained and / or generated.
[0092] Referring next to Figure 7, a flowchart is shown illustrating one embodiment of process 700 for generating output using a fusion model. Process 700 can be executed by the customer environment 212. Process 700 begins in block 702, where data for use in generating output of a machine learning model, specifically data for generating output using a fusion model, is received. In block 704, this data is incorporated into a global model. The global model can generate multiple intermediate outputs, also referred to herein as first intermediate outputs, such as one or more layer outputs. These intermediate outputs of the global model can be received and / or collected, as shown in block 706.
[0093] In block 708, the intermediate outputs of the global model are incorporated into the multiple minimal models from which the fused model was generated. Each of these minimal models may generate one or more intermediate outputs, also referred to herein as second intermediate outputs, which can be received and / or collected as shown in block 710.
[0094] After intermediate outputs are received and / or collected from the minimal model, process 700 proceeds to block 712, where the intermediate outputs of the minimal model and / or global model are incorporated into the fused model. In some embodiments where the output of the minimal model is undesirable, steps 708 and 710 can be skipped, and the process can proceed directly from block 706 to block 712, where the intermediate outputs of the global model are incorporated into the fused model. In some embodiments, in addition to incorporating intermediate outputs into the fused model, some or all of the data received in block 702 can be incorporated into the fused model.
[0095] In block 714, the classifier head of the fusion model generates and / or makes predictions based on the inputs received from the layers of the fusion model, based on the inputs taken into the fusion model. This can be output by the fusion model.
[0096] Implementation example Figure 8 is a block diagram 800 showing an example pattern of an IaaS architecture according to at least one embodiment. A service operator 802 can be communicatively coupled to a secure host tenancy 804 which may include a virtual cloud network (VCN) 806 and a secure host subnet 808. In some examples, the service operator 802 may use one or more client computing devices, which may be portable handheld devices (e.g., iPhone®, mobile phones, iPad®, computing tablets, personal digital assistants (PDAs)) or wearable devices (e.g., Google Glass® head-mounted displays), running software such as Microsoft® Windows Mobile®, and / or various mobile operating systems such as iOS, WindowsPhone, Android, BlackBerry 8, PalmOS, as well as the internet, email, short message service (SMS), Blackberry®, or other valid communication protocols. Alternatively, the client computing device may be a general-purpose personal computer, including, for example, personal computers and / or laptop computers running various versions of Microsoft Windows®, Apple Macintosh®, and / or Linux® operating systems. The client computing device may be a workstation computer running one of a variety of commercially available UNIX® or UNIX-like operating systems, including, but not limited to, various GNU / Linux operating systems such as Google Chrome OS.Alternatively, or in addition, the client computing device may be any other electronic device, such as a thin client computer, an internet-enabled game system (e.g., a Microsoft Xbox game console with or without Kinect® gesture input), and / or a personal messaging device that can communicate via a network that has access to the VCN806 and / or the Internet.
[0097] VCN806 may include a local peering gateway (LPG) 810 that can communicately connect to Secure Shell (SSH) VCN812 via LPG810 included in SSHVCN812. SSHVCN812 may include an SSH subnet 814, and SSHVCN812 may communicately connect to control plane VCN816 via LPG810 included in control plane VCN816. Furthermore, SSHVCN812 may communicately connect to data plane VCN818 via LPG810. Control plane VCN816 and data plane VCN818 may be included in a service tenancy 819 owned and / or operated by an IaaS provider.
[0098] The control plane VCN 816 may include a control plane demilitarized zone (DMZ) layer 820 that functions as a perimeter network (e.g., part of the corporate network between the corporate intranet and the external network). DMZ-based servers have limited responsibility and can help deter security breaches. Furthermore, the DMZ layer 820 may include a control plane application layer 824 that may include one or more load balancer (LB) subnets 822, an application subnet 826, and a control plane data layer 828 that may include a database (DB) subnet 830 (e.g., a front-end DB subnet and / or a back-end DB subnet). The LB subnet 822 included in the control plane DMZ layer 820 can be communicatively coupled to the application subnet 826 included in the control plane application layer 824 and to an internet gateway 834 that may be included in the control plane VCN 816, and the application subnet 826 can be communicatively coupled to the DB subnet 830 included in the control plane data layer 828, as well as to a service gateway 836 and a network address translation (NAT) gateway 838. The control plane VCN816 may include a service gateway 836 and a NAT gateway 838.
[0099] The control plane VCN 816 may include a data plane mirror application layer 840 which may include an application subnet 826. The application subnet 826 included in the data plane mirror application layer 840 may include a virtual network interface controller (VNIC) 842 which can run a compute instance 844. The compute instance 844 may communicatively combine the application subnet 826 of the data plane mirror application layer 840 with the application subnet 826 which may be included in the data plane application layer 846.
[0100] The data plane VCN818 may include a data plane application layer 846, a data plane DMZ layer 848, and a data plane data layer 850. The data plane DMZ layer 848 may include an LB subnet 822 that can be communicatively coupled to the application subnet 826 of the data plane application layer 846 and the internet gateway 834 of the data plane VCN818. The application subnet 826 may be communicatively coupled to the service gateway 836 of the data plane VCN818 and the NAT gateway 838 of the data plane VCN818. The data plane data layer 850 may also include a DB subnet 830 that can be communicatively coupled to the application subnet 826 of the data plane application layer 846.
[0101] The Internet gateway 834 of the control plane VCN816 and data plane VCN818 can be communicatively connected to a metadata management service 852, which can be communicatively connected to the public internet 854. The public internet 854 can be communicatively connected to the NAT gateway 838 of the control plane VCN816 and data plane VCN818. The service gateway 836 of the control plane VCN816 and data plane VCN818 can be communicatively connected to a cloud service 856.
[0102] In some cases, a service gateway 836 of the control plane VCN816 or data plan VCN818 can make application programming interface (API) calls to a cloud service 856 without going through the public internet 854. API calls from the service gateway 836 to the cloud service 856 can be one-way: the service gateway 836 can make an API call to the cloud service 856, and the cloud service 856 can send the requested data to the service gateway 836. However, there may be cases where the cloud service 856 cannot initiate an API call to the service gateway 836.
[0103] In some examples, a secure host tenancy 804 can be directly connected to a service tenancy 819, or otherwise isolated. A secure host subnet 808 can communicate with an SSH subnet 814 via an LPG 810, which can enable bidirectional communication through systems that would otherwise be isolated. Connecting a secure host subnet 808 to an SSH subnet 814 can give the secure host subnet 808 access to other entities within the service tenancy 819.
[0104] The control plane VCN816 can enable users of service tenancy 819 to set up or provision desired resources. Desired resources provisioned within the control plane VCN816 can be deployed or used within the data plane VCN818. In some examples, the control plane VCN816 can be separated from the data plane VCN818, and the data plane mirror application layer 840 of the control plane VCN816 can communicate with the data plane application layer 846 of the data plane VCN818 via a VNIC 842, which can be included in the data plane mirror application layer 840 and the data plane application layer 846.
[0105] In some examples, a system user or customer may make requests, such as create, read, update, or delete (CRUD) operations, via the public internet 854, which can communicate the requests to the metadata management service 852. The metadata management service 852 can communicate the requests to the control plane VCN 816 via the internet gateway 834. This request may be received by the LB subnet 822, which is included in the control plane DMZ layer 820. The LB subnet 822 may determine that the request is valid, and in response to this determination, the LB subnet 822 may send the request to the application subnet 826, which is included in the control plane application layer 824. If the request is validated and a call to the public internet 854 is required, the call to the public internet 854 may be sent to the NAT gateway 838, which can make calls to the public internet 854. Memory that may be desirable to be stored by the request can be stored in the DB subnet 830.
[0106] In some cases, the data plane mirror application layer 840 can facilitate direct communication between the control plane VCN816 and the data plane VCN818. For example, it may be desirable to apply configuration changes, updates, or other appropriate modifications to resources contained in the data plane VCN818. Through VNIC842, the control plane VCN816 can communicate directly with the resources contained in the data plane VCN818, thereby enabling it to perform configuration changes, updates, or other appropriate modifications to the resources contained in the data plane VCN818.
[0107] In some embodiments, the control plane VCN816 and data plane VCN818 can be included in the service tenancy 819. In this case, the system's user or customer cannot own or operate either the control plane VCN816 or the data plane VCN818. Instead, the IaaS provider can own or operate the control plane VCN816 and the data plane VCN818, and both can be included in the service tenancy 819. This embodiment can enable network isolation that can prevent a user or customer from interacting with resources of other users or other customers. This embodiment also allows the system's user or customer to store databases privately without having to rely on the public internet 854, which may not have the desired level of security for storage.
[0108] In another embodiment, the LB subnet 822 included in the control plane VCN 816 may be configured to receive signals from the service gateway 836. In this embodiment, the control plane VCN 816 and the data plane VCN 818 may be configured to be invoked by the IaaS provider's customers without calling the public internet 854. Since the database used by the customer may be controlled by the IaaS provider and stored in a service tenancy 819 which can be isolated from the public internet 854, the IaaS provider's customers may prefer this embodiment.
[0109] Figure 9 is a block diagram 900 illustrating another pattern example of an IaaS architecture according to at least one embodiment. A service operator 902 (e.g., service operator 802 in Figure 8) can be communicatively coupled to a secure host tenancy 904 (e.g., secure host tenancy 804 in Figure 8), which may include a virtual cloud network (VCN) 906 (e.g., VCN806 in Figure 8) and a secure host subnet 908 (e.g., secure host subnet 808 in Figure 8). The VCN906 may include a local peering gateway (LPG) 910 (e.g., LPG810 in Figure 8), which may be communicatively coupled to a secure shell (SSH) VCN912 (e.g., SSH VCN812 in Figure 8) via the LPG810 contained within the SSH VCN912. SSHVCN912 may include SSH subnet 914 (e.g., SSH subnet 814 in Figure 8), and SSHVCN912 may be communicably coupled to control plane VCN916 (e.g., control plane VCN816 in Figure 8) via LPG910 included in control plane VCN916. Control plane VCN916 may include service tenancy 919 (e.g., service tenancy 819 in Figure 8), and data plane VCN918 (e.g., data plane VCN818 in Figure 8) may include customer tenancy 921, which may be owned or operated by a user or customer of the system.
[0110] The control plane VCN916 may include a control plane DMZ layer 920 (e.g., control plane DMZ layer 820 in Figure 8) which may include an LB subnet 922 (e.g., LB subnet 822 in Figure 8), a control plane application layer 924 (e.g., control plane application layer 824 in Figure 8) which may include an application subnet 926 (e.g., application subnet 826 in Figure 8), and a control plane data layer 928 (e.g., control plane data layer 828 in Figure 8) which may include a database (DB) subnet 930 (e.g., similar to DB subnet 830 in Figure 8). The LB subnet 922 included in the control plane DMZ layer 920 may be communicatively coupled to the application subnet 926 included in the control plane application layer 924 and to an internet gateway 934 (e.g., internet gateway 834 in Figure 8) which may be included in the control plane VCN 916. The application subnet 926 may be communicatively coupled to the DB subnet 930, service gateway 936 (e.g., service gateway in Figure 8), and network address translation (NAT) gateway 938 (e.g., NAT gateway 838 in Figure 8) included in the control plane data layer 928. The control plane VCN 916 may include the service gateway 936 and the NAT gateway 938.
[0111] The control plane VCN 916 may include a data plane mirror application layer 940 (e.g., data plane mirror application layer 840 in Figure 8) which may include an application subnet 926. The application subnet 926 included in the data plane mirror application layer 940 may include a virtual network interface controller (VNIC) 942 (e.g., VNIC 842) which may run a compute instance 944 (e.g., similar to compute instance 844 in Figure 8). The compute instance 944 can facilitate communication between the application subnet 926 of the data plane mirror application layer 940 and the application subnet 926 that may be included in the data plane application layer 946 (e.g., data plane application layer 846 in Figure 8) via the VNIC 942 included in the data plane mirror application layer 940 and the VNIC 942 included in the data plane application layer 946.
[0112] The Internet gateway 934 included in the control plane VCN916 can be communicatively connected to the metadata management service 952 (for example, the metadata management service 852 in Figure 8), and the metadata management service 952 can be communicatively connected to the public internet 954 (for example, the public internet 854 in Figure 8). The public internet 954 can be communicatively connected to the NAT gateway 938 included in the control plane VCN916. The service gateway 936 included in the control plane VCN916 can be communicatively connected to the cloud service 956 (for example, the cloud service 856 in Figure 8).
[0113] In some examples, the data plane VCN918 may be included in a customer tenancy 921. In this case, the IaaS provider can provide a control plane VCN916 to each customer, and the IaaS provider can set up a unique compute instance 944 included in a service tenancy 919 for each customer. Each compute instance 944 can enable communication between the control plane VCN916 included in the service tenancy 919 and the data plane VCN918 included in the customer tenancy 921. The compute instance 944 may enable resources provisioned within the control plane VCN916 included in the service tenancy 919 to be deployed or otherwise used within the data plane VCN918 included in the customer tenancy 921.
[0114] In another example, an IaaS provider's customer may have a database residing within customer tenancy 921. In this example, the control plane VCN916 may include a data plane mirror app tier 940 that can include an app subnet 926. The data plane mirror app tier 940 may reside within data plane VCN918, but does not have to. That is, the data plane mirror app tier 940 can access customer tenancy 921, but it may not reside within data plane VCN918, or it may not be owned or operated by the IaaS provider's customer. The data plane mirror app tier 940 may be configured to make calls to data plane VCN918, but does not have to be configured to make calls to any entity contained within control plane VCN916. A customer may want to deploy or use resources in data plane VCN918 that are provisioned within control plane VCN916, and the data plane mirror app tier 940 can facilitate the customer's desired deployment or other use of the resources.
[0115] In some embodiments, a customer of the IaaS provider can apply filters to the data plane VCN918. In this embodiment, the customer can determine what the data plane VCN918 can access and can restrict access from the data plane VCN918 to the public internet 954. The IaaS provider may not be able to apply filters or control the data plane VCN918's access to external networks or databases. Applying customer filters and controls to the data plane VCN918 included in a customer tenancy 921 can help isolate the data plane VCN918 from other customers and the public internet 954.
[0116] In some embodiments, the cloud service 956 can be invoked by the service gateway 936 to access services that may not exist on the public internet 954, the control plane VCN 916, or the data plane VCN 918. The connection between the cloud service 956 and the control plane VCN 916 or the data plane VCN 918 may not exist or may not be continuous. The cloud service 956 may reside on a separate network owned or operated by the IaaS provider. The cloud service 956 may be configured to receive calls from the service gateway 936, or it may be configured not to receive calls from the public internet 954. Some cloud services 956 may be isolated from other cloud services 956, and the control plane VCN 916 may be isolated from cloud services 956 that do not have to be in the same region as the control plane VCN 916. For example, the control plane VCN 916 may be located in "Region 1", and the cloud service "Deployment 11" may be located in Region 1 and "Region 2". If a call to deployment 11 is made by a service gateway 936 included in the control plane VCN916 located in region 1, that call may be sent to deployment 11 in region 1. In this example, the control plane VCN916, or deployment 11 in region 1, may not be communicatively coupled to or communicating with deployment 11 in region 2.
[0117] Figure 10 is a block diagram 1000 showing another pattern example of an IaaS architecture according to at least one embodiment. A service operator 1002 (e.g., service operator 802 in Figure 8) can be communicatively coupled to a secure host tenancy 1004 (e.g., secure host tenancy 804 in Figure 8), which may include a virtual cloud network (VCN) 1006 (e.g., VCN806 in Figure 8) and a secure host subnet 1008 (e.g., secure host subnet 808 in Figure 8). VCN 1006 may include an LPG 1010 (e.g., LPG810 in Figure 8) which can be communicatively coupled to SSHVCN 1011 (e.g., SSHVCN 812 in Figure 8) via an LPG 1010 contained in SSHVCN 1012. SSHVCN1012 may include SSH subnet 1014 (e.g., SSH subnet 814 in Figure 8), and SSHVCN1012 may be communicatively coupled to control plane VCN1016 (e.g., control plane VCN816 in Figure 8) via LPG1010 included in control plane VCN1016, and may be communicatively coupled to data plane VCN1018 (e.g., data plane 818 in Figure 8) via LPG1010 included in data plane VCN1018. Control plane VCN1016 and data plane VCN1018 may be included in service tenancy 1019 (e.g., service tenancy 819 in Figure 8).
[0118] The control plane VCN1016 may include a control plane DMZ layer 1020 (e.g., control plane DMZ layer 820 in Figure 8) which can include a load balancer (LB) subnet 1022 (e.g., LB subnet 822 in Figure 8), a control plane application layer 1024 (e.g., control plane application layer 824 in Figure 8) which can include an application subnet 1026 (e.g., similar to application subnet 826 in Figure 8), and a control plane data layer 1028 (e.g., control plane data layer 828 in Figure 8) which can include a DB subnet 1030. The LB subnet 1022 included in the control plane DMZ layer 1020 can be communicatively coupled to the application subnet 1026 included in the control plane application layer 1024, and can be communicatively coupled to the internet gateway 1034 (e.g., internet gateway 834 in Figure 8), which can be included in the control plane VCN 1016. The application subnet 1026 can be communicatively coupled to the DB subnet 1030 included in the control plane data layer 1028, and can be communicatively coupled to the service gateway 1036 (e.g., the service gateway in Figure 8) and the network address translation (NAT) gateway 1038 (e.g., NAT gateway 838 in Figure 8). The control plane VCN 1016 can include the service gateway 1036 and the NAT gateway 1038.
[0119] The data plane VCN 1018 can include a data plane application layer 1046 (e.g., data plane application layer 846 in Figure 8), a data plane DMZ layer 1048 (e.g., data plane DMZ layer 848 in Figure 8), and a data plane data layer 1050 (e.g., data plane data layer 850 in Figure 8). The data plane DMZ layer 1048 may include an LB subnet 1022, which may be communicatively coupled to a trusted application subnet 1060, an untrusted application subnet 1062 of the data plane application layer 1046, and an internet gateway 1034 included in the data plane VCN 1018. The trusted application subnet 1060 may be communicatively coupled to a service gateway 1036 included in the data plane VCN 1018, a NAT gateway 1038 included in the data plane VCN 1018, and a DB subnet 1030 included in the data plane data layer 1050. The untrusted application subnet 1062 can communicate with the service gateway 1036 included in the data plane VCN 1018 and the DB subnet 1030 included in the data plane data layer 1050. The data plane data layer 1050 may include the DB subnet 1030 which can communicate with the service gateway 1036 included in the data plane VCN 1018.
[0120] An untrusted application subnet 1062 may include one or more primary VNICs 1064(1)-(N) that can be communicatively connected to tenancy virtual machines (VMs) 1066(1)-(N). Each tenancy VM 1066(1)-(N) may be communicatively connected to each application subnet 1067(1)-(N) that can be included in each container exit VCN 1068(1)-(N) that can be included in each customer tenancy 1070(1)-(N). Each secondary VNIC 1072(1)-(N) can facilitate communication between the untrusted application subnet 1062 included in the data plane VCN 1018 and the application subnets included in the container exit VCN 1068(1)-(N). Each container exit VCN 1068(1)-(N) may include a NAT gateway 1038 that can be communicatively connected to the public internet 1054 (e.g., public internet 854 in Figure 8).
[0121] The Internet gateway 1034, included in the control plane VCN1016 and the data plane VCN1018, can communicate with the metadata management service 1052 (for example, the metadata management system 852 in Figure 8), which can communicate with the public internet 1054. The public internet 1054 can communicate with the NAT gateway 1038, included in the control plane VCN1016 and the data plane VCN1018. The service gateway 1036, included in the control plane VCN1016 and the data plane VCN1018, can communicate with the cloud service 1056.
[0122] In some embodiments, the data plane VCN 1018 can be integrated with a customer tenancy 1070. This integration may be beneficial or desirable for the IaaS provider's customer, such as when code execution support is desired. The customer may provide execution of potentially destructive code, code that may communicate with other customer resources, or code that may cause other undesirable effects. Accordingly, the IaaS provider can decide whether to execute the code provided to the IaaS provider by the customer.
[0123] In some examples, an IaaS provider's customer may grant temporary network access to the IaaS provider and request functionality to be added to a dataplane tier application 1046. The code that performs the functionality may run on VMs 1066(1)-(N), and the code does not need to be configured to run elsewhere on the dataplane VCN 1018. Each VM 1066(1)-(N) may be connected to one customer tenancy 1070. Each container 1071(1)-(N) contained within VM 1066(1)-(N) may be configured to run code. In this case, double isolation may exist (e.g., code execution in container 1071(1)-(N), which may be contained in at least VMs 1066(1)-(N) that are in an untrusted application subnet 1062), which may help prevent incorrect or undesirable code from damaging the IaaS provider's network or another customer's network. Containers 1071(1)-(N) may be communicatively coupled to customer tenancy 1070 and may be configured to send or receive data from customer tenancy 1070. Containers 1071(1)-(N) may not be configured to send or receive data from any other entities in the data plane VCN1018. Once code execution is complete, the IaaS provider may terminate or otherwise dispose of containers 1071(1)-(N).
[0124] In some embodiments, a trusted application subnet 1060 may execute code that may be owned or operated by the IaaS provider. In this embodiment, the trusted application subnet 1060 may be communicatively coupled to a DB subnet 1030 and configured to perform CRUD operations in the DB subnet 1030. An untrusted application subnet 1062 may be communicatively coupled to a DB subnet 1030, but in this embodiment, the untrusted application subnet may be configured to perform read operations in the DB subnet 1030. Containers 1071(1)~(N), which may be included in each customer's VM 1066(1)~(N) and may execute code from the customer, do not need to be communicatively coupled to the DB subnet 1030.
[0125] In other embodiments, the control plane VCN1016 and the data plane VCN1018 do not have to be directly communicatively coupled. In this embodiment, there is no direct communication between the control plane VCN1016 and the data plane VCN1018. However, communication can be performed indirectly through at least one method. The LPG1010 may be established by an IaaS provider that can facilitate communication between the control plane VCN1016 and the data plane VCN1018. In another example, the control plane VCN1016 or the data plane VCN1018 can make a call to the cloud service 1056 via the service gateway 1036. For example, a call from the control plane VCN1016 to the cloud service 1056 may include a request for a service that can communicate with the data plane VCN1018.
[0126] Figure 11 is a block diagram 1100 showing another exemplary pattern of an IaaS architecture according to at least one embodiment. A service operator 1102 (e.g., service operator 802 in Figure 8) can be communicatively coupled to a secure host tenancy 1104 (e.g., secure host tenancy 804 in Figure 8) and a secure host subnet 1108 (e.g., secure host subnet 808 in Figure 8), which may include a virtual cloud network (VCN) 1106 (e.g., VCN806 in Figure 8). VCN 1106 may include an LPG 1110 (e.g., LPG810 in Figure 8) which can be communicatively coupled to SSH VCN 1112 (e.g., SSH VCN812 in Figure 8) via an LPG 1110 contained in SSH VCN 1112. SSH VCN1112 may include SSH subnet 1114 (e.g., SSH subnet 814 in Figure 8), and SSH VCN1112 may be communicably coupled to control plane VCN1116 (e.g., control plane VCN816 in Figure 8) via LPG1110 included in control plane VCN1116, and to data plane VCN1118 (e.g., data plane 818 in Figure 8) via LPG1110 included in data plane VCN1118. Control plane VCN1116 and data plane VCN1118 may be included in service tenancy 1119 (e.g., service tenancy 819 in Figure 8).
[0127] The control plane VCN1116 may include a control plane DMZ layer 1120 (e.g., control plane DMZ layer 820 in Figure 8) which may include an LB subnet 1122 (e.g., LB subnet 822 in Figure 8), a control plane application layer 1124 (e.g., control plane application layer 824 in Figure 8) which may include an application subnet 1126 (e.g., application subnet 826 in Figure 8), and a control plane data layer 1128 (e.g., control plane data layer 828 in Figure 8) which may include a DB subnet 1130 (e.g., DB subnet 1030 in Figure 10). The LB subnet 1122 included in the control plane DMZ layer 1120 can be communicatively coupled to the application subnet 1126 included in the control plane application layer 1124, and to an internet gateway 1134 (e.g., internet gateway 834 in Figure 8) which can be included in the control plane VCN 1116. The application subnet 1126 can be communicatively coupled to the DB subnet 1130 included in the control plane data layer 1128, and to a service gateway 1136 (e.g., service gateway in Figure 8) and a network address translation (NAT) gateway 1138 (e.g., NAT gateway 838 in Figure 8). The control plane VCN 1116 can include the service gateway 1136 and the NAT gateway 1138.
[0128] The data plane VCN1118 may include a data plane application layer 1146 (e.g., data plane application layer 846 in Figure 8), a data plane DMZ layer 1148 (e.g., data plane DMZ layer 848 in Figure 8), and a data plane data layer 1150 (e.g., data plane data layer 850 in Figure 8). The data plane DMZ layer 1148 may include a trusted application subnet 1160 (e.g., trusted application subnet 1060 in Figure 10) and an LB subnet 1122 that can be communicatively coupled to the data plane application layer 1146 included in the data plane VCN1118 and the untrusted application subnet 1162 of the internet gateway 1134 (e.g., untrusted application subnet 1062 in Figure 10). The trusted application subnet 1160 may be communicatively coupled to the service gateway 1136 included in the data plane VCN1118, the NAT gateway 1138 included in the data plane VCN1118, and the DB subnet 1130 included in the data plane data layer 1150. The untrusted application subnet 1162 can be communicatively coupled to the service gateway 1136 included in the data plane VCN 1118 and the DB subnet 1130 included in the data plane data layer 1150. The data plane data layer 1150 may include the DB subnet 1130, which can be communicatively coupled to the service gateway 1136 included in the data plane VCN 1118.
[0129] An untrusted application subnet 1162 may include primary VNICs 1164(1)-(N) that can be communicatively coupled to tenancy virtual machines (VMs) 1166(1)-(N) that reside within the untrusted application subnet 1162. Each tenancy VM 1166(1)-(N) can execute code within its respective container 1167(1)-(N) and may be communicatively coupled to an application subnet 1126 that can be contained in a data plane application layer 1146, which can be contained in a container exit VCN 1168. Each secondary VNIC 1172(1)-(N) can facilitate communication between the untrusted application subnet 1162 contained in the data plane VCN 1118 and the application subnet contained in the container exit VCN 1168. The container exit VCN may include a NAT gateway 1138 that can be communicatively coupled to the public internet 1154 (e.g., public internet 854 in Figure 8).
[0130] The Internet gateway 1134, included in the control plane VCN1116 and the data plane VCN1118, can communicate with a metadata management service 1152 (for example, the metadata management system 852 in Figure 8), which can communicate with the public internet 1154. The public internet 1154 can communicate with the NAT gateway 1138 included in the control plane VCN1116 and the NAT gateway 1138 included in the data plane VCN1118. The service gateway 1136, included in the control plane VCN1116 and the data plane VCN1118, can communicate with a cloud service 1156.
[0131] In some examples, the pattern shown by the architecture in block diagram 1100 of Figure 11 can be considered an exception to the pattern shown by the architecture in block diagram 1000 of Figure 10, which may be desirable for the IaaS provider's customers when the IaaS provider cannot communicate directly with the customer (e.g., in a disconnected area). Each container 1167(1)-(N) contained within each customer's VM 1166(1)-(N) is accessible by the customer in real time. Each container 1167(1)-(N) can be configured to make calls to each secondary VNIC 1172(1)-(N) contained within the application subnet 1126 of the data plane application layer 1146, which can be contained within the container exit VCN 1168. The secondary VNICs 1172(1)-(N) can send calls to a NAT gateway 1138, which can send calls to the public internet 1154. In this example, the containers 1167(1)-(N), which customers can access in real time, can be isolated from the control plane VCN1116 and from other entities included in the data plane VCN1118. The containers 1167(1)-(N) may also be isolated from resources from other customers.
[0132] In another example, a customer can use containers 1167(1)-(N) to invoke cloud service 1156. In this example, the customer can execute code within containers 1167(1)-(N) to request a service from cloud service 1156. Containers 1167(1)-(N) can send this request to secondary VNICs 1172(1)-(N), which can then send the request to a NAT gateway that can send the request to the public internet 1154. The public internet 1154 can then send the request to LB subnet 1122, which is included in control plane VCN 1116, via internet gateway 1134. In response to the determination that the request is valid, the LB subnet can send the request to application subnet 1126, which can then send the request to cloud service 1156 via service gateway 1136.
[0133] It should be understood that the IaaS architectures 800, 900, 1000, and 1100 shown in the figures may have components other than those shown. Furthermore, the embodiments shown in the figures are only some examples of cloud infrastructure systems that may incorporate embodiments of this disclosure. In some other embodiments, the IaaS system may have more or fewer components than those shown, may combine two or more components, or may have different configurations or arrangements of components.
[0134] In certain embodiments, the IaaS system described herein may include a suite of applications, middleware, and database service products delivered to customers in a self-service, subscription-based, elastically scalable, reliable, highly available, and secure manner. An example of such an IaaS system is Oracle Cloud Infrastructure (OCI), offered by the assignee.
[0135] Figure 12 shows an exemplary computer system 1200 in which various embodiments of the present disclosure may be implemented. System 1200 can be used to implement any of the computer systems described above. As shown in the figure, computer system 1200 includes a processing unit 1204 that communicates with several peripheral subsystems via a bus subsystem 1202. These peripheral subsystems may include a processing accelerator 1206, an I / O subsystem 1208, a storage subsystem 1218, and a communication subsystem 1224. The storage subsystem 1218 includes a tangible computer-readable storage medium 1222 and system memory 1210.
[0136] The bus subsystem 1202 provides a mechanism that enables various components and subsystems of the computer system 1200 to communicate with each other as intended. Although the bus subsystem 1202 is schematically shown as a single bus, multiple buses can be utilized in alternative embodiments of the bus subsystem. The bus subsystem 1202 may be any of several types of bus structures, including a memory bus or memory controller, peripheral bus, and local bus, using any of the various bus architectures. For example, such architectures may include the Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus. This can be implemented as a mezzanine bus manufactured according to the IEEEP1386.1 standard.
[0137] The processing unit 1204 can be implemented as one or more integrated circuits (e.g., conventional microprocessors or microcontrollers) and controls the operation of the computer system 1200. One or more processors may be included in the processing unit 1204. These processors may include single-core processors or multi-core processors. In certain embodiments, the processing unit 1204 may be implemented as one or more independent processing units 1232 and / or 1234, each containing a single-core processor or multi-core processor. In other embodiments, the processing unit 1204 may be implemented as a quad-core processing unit formed by integrating two dual-core processors onto a single chip.
[0138] In various embodiments, the processing unit 1204 can execute various programs in response to program code and can maintain multiple concurrently running programs or processes. At any given time, some or all of the program code to be executed may reside in the processor 1204 and / or the storage subsystem 1218. Through appropriate programming, the processor 1204 can provide the various functions described above. The computer system 1200 may further include a processing accelerator 1206 which may include a digital signal processor (DSP), a dedicated processor, etc.
[0139] The I / O subsystem 1208 may include user interface input devices and user interface output devices. User interface input devices may include keyboards, pointing devices such as mice and trackballs, touchpads and touchscreens integrated into displays, scroll wheels, click wheels, dials, buttons, switches, keypads, audio input devices with voice command recognition systems, microphones, and other types of input devices. User interface input devices may also include motion sensing and / or gesture recognition devices, such as the Microsoft Kinect® motion sensor, which allow the user to control and interact with input devices, such as the Microsoft Xbox® 360 game controller, through a natural user interface using gestures and voice commands. User interface input devices may also include eye gesture recognition devices, such as the Google Glass® blink detector, which detects eye activity from the user (e.g., blinking while taking photos and / or selecting menus) and translates eye gestures as input to an input device (e.g., Google Glass®). Furthermore, the user interface input device may include a voice recognition sensing device that enables the user to interact with a voice recognition system (e.g., Siri® Navigator) through voice commands.
[0140] User interface input devices may include, but are not limited to, three-dimensional (3D) mice, joysticks or pointing sticks, gamepads and graphic tablets, as well as audio / visual devices such as speakers, digital cameras, digital video cameras, portable media players, webcams, image scanners, fingerprint scanners, barcode readers, 3D scanners, 3D printers, laser rangefinders, and eye-tracking devices. Furthermore, user interface input devices may also include medical imaging input devices such as computed tomography, magnetic resonance imaging, positional radiography, and medical ultrasound equipment. User interface input devices may also include audio input devices such as MIDI keyboards and digital musical instruments.
[0141] User interface output devices may include non-visual displays such as display subsystems, indicator lights, or audio output devices. Display subsystems may include flat panel devices such as those using cathode ray tubes (CRTs), liquid crystal displays (LCDs), or plasma displays, projection devices, touchscreens, etc. Generally, the use of the term “output device” is intended to include all possible types of devices and mechanisms for outputting information from the computer system 1200 to a user or another computer. For example, user interface output devices include, but are not limited to, a variety of display devices that visually convey text, graphics, and audio / video information, such as monitors, printers, speakers, headphones, car navigation systems, plotters, audio output devices, and modems.
[0142] The computer system 1200 may include a storage subsystem 1218 having software elements that are shown to be currently located in the system memory 1210. The system memory 1210 can store program instructions that can be loaded and executed on the processing unit 1204, as well as data generated during the execution of these programs.
[0143] Depending on the configuration and type of the computer system 1200, the system memory 1210 may be volatile (such as random access memory (RAM)) and / or non-volatile (such as read-only memory (ROM) or flash memory). RAM typically contains data and / or program modules that are immediately accessible to the processing unit 1204 and / or currently operating and executing by the processing unit 1204. In some implementations, the system memory 1210 may contain several different types of memory, such as static random access memory (SRAM) or dynamic random access memory (DRAM). In some implementations, the basic input / output system (BIOS), which contains basic routines that help transfer information between elements within the computer system 1200, such as during startup, may typically be stored in ROM. As an example, and not an limitation, the system memory 1210 also refers to application programs 1212, program data 1214, and the operating system 1216, which may include client applications, web browsers, middle-tier applications, relational database management systems (RDBMS), etc. For example, Operating Systems 1216 may include various versions of Microsoft Windows®, Apple Macintosh®, and / or Linux operating systems, various commercially available UNIX® or UNIX-like operating systems (including, but not limited to, various GNU / Linux operating systems, Google Chrome® OS, etc.), and / or mobile operating systems such as iOS, Windows® Phone, Android® OS, BlackBerry® OS, and Palm® OS.
[0144] The storage subsystem 1218 may also provide a tangible, computer-readable storage medium for storing basic programming and data structures that provide the functionality of several embodiments. When executed by a processor, software (programs, code modules, instructions) that provides the functionality described above may be stored in the storage subsystem 1218. These software modules or instructions may be executed by the processing unit 1204. The storage subsystem 1218 may also provide a repository for storing data used in accordance with this disclosure.
[0145] The storage subsystem 1200 may also include a computer-readable storage medium reader 1220 that can be further connected to the computer-readable storage medium 1222. Together, and optionally in combination with the system memory 1210, the computer-readable storage medium 1222 can comprehensively represent a storage medium for temporarily and / or more permanently storing, storing, transmitting, and retrieving computer-readable information, in addition to remote, local, fixed, and / or removable storage devices.
[0146] The computer-readable storage medium 1222 containing code or a portion of code may also include any suitable medium known or used in the art, including, but not limited to, storage and communication media such as volatile and non-volatile, removable and non-removable media, implemented in any way or technique for storing and / or transmitting information. This may include tangible computer-readable storage media such as RAM, ROM, electronically erasable programmable ROM (EEPROM), flash memory or other memory technologies, CD-ROM, digital versatile disk (DVD), or other optical storage devices, magnetic cassettes, magnetic tapes, magnetic disk storage devices or other magnetic storage devices, or other tangible computer-readable media. This may also include intangible computer-readable media such as any other medium that can be used to transmit data signals, data transmissions, or desired information and is accessible by the computing system 1200.
[0147] As an example, the computer-readable storage medium 1222 may include a hard disk drive that reads or writes to a non-removable non-volatile magnetic medium, a magnetic disk drive that reads or writes to a removable non-volatile magnetic disk, and an optical disk drive that reads or writes to a removable non-volatile optical disk such as a CD-ROM, DVD, Blu-ray® disc, or other optical medium. The computer-readable storage medium 1222 may also include, but is not limited to, Zip® drives, flash memory cards, Universal Serial Bus (USB) flash drives, Secure Digital (SD) cards, DVD discs, digital videotapes, etc. The computer-readable storage medium 1222 may also include solid-state drives (SSDs) based on non-volatile memory such as flash memory-based SSDs, enterprise flash drives, solid-state ROMs, SSDs based on volatile memory such as solid-state RAM, dynamic RAM, and static RAM, DRAM-based SSDs, magnetoresistive RAM (MRAM) SSDs, and hybrid SSDs that use a combination of DRAM and flash memory-based SSDs. Disk drives and associated computer-readable media can provide non-volatile storage for computer-readable instructions, data structures, program modules, and other data for the computer system 1200.
[0148] The communication subsystem 1224 provides interfaces to other computer systems and networks. The communication subsystem 1224 functions as an interface for sending and receiving data between the computer system 1200 and other systems. For example, the communication subsystem 1224 can enable the computer system 1200 to connect to one or more devices via the Internet. In some embodiments, the communication subsystem 1224 may include radio frequency (RF) transceiver components for accessing wireless voice and / or data networks (e.g., using advanced data network technologies such as cellular technology, 3G, 4G, or EDGE (Enhanced Data Rate for Global Evolution)), WiFi (IEEE 802.11 family standards, or other mobile communication technologies, or any combination thereof), Global Positioning System (GPS) receiver components, and / or other components. In some embodiments, the communication subsystem 1224 may provide, in addition to or instead of a wireless interface, a wired network connection (e.g., Ethernet®).
[0149] In some embodiments, the communication subsystem 1224 may also receive input communications in the form of structured and / or unstructured data feeds 1226, event streams 1228, event updates 1230, etc., on behalf of one or more users who can use the computer system 1200.
[0150] As an example, the communication subsystem 1224 may be configured to receive data feeds 1226 in real time from users of social networks and / or other communication services such as Twitter® feeds, Facebook® updates, and web feeds such as Rich Site Summary (RSS) feeds, as well as real-time updates from one or more third-party information sources.
[0151] Furthermore, the communication subsystem 1224 may be configured to receive data in the form of a continuous data stream, which may include an event stream 1228 of real-time events and / or event updates 1230, which may be continuous or have no explicit end and may be essentially unlimited. Examples of applications that generate continuous data may include, for example, sensor data applications, financial tickers, network performance measurement tools (e.g., network monitoring and traffic management applications), clickstream analysis tools, and automotive traffic monitoring.
[0152] The communication subsystem 1224 may also be configured to output structured and / or unstructured data feeds 1226, event streams 1228, event updates 1230, etc., to one or more databases that can communicate with one or more streaming data source computers coupled to the computer system 1200.
[0153] The computer system 1200 may be one of various types, including handheld portable devices (e.g., iPhone® mobile phones, iPad® computing tablets, PDAs), wearable devices (e.g., Google Glass® head-mounted displays), PCs, workstations, mainframes, kiosks, server racks, or other data processing systems.
[0154] Due to the constantly changing nature of computers and networks, the description of the computer system 1200 shown in the figure is intended only as a specific example. Many other configurations are possible with more or fewer components than the system shown in the figure. For example, customized hardware may also be used, or certain elements may be implemented in hardware, firmware, software (including applets), or a combination thereof. Furthermore, connections to other computing devices such as network input / output devices may be used. Based on the disclosures and teachings provided herein, those skilled in the art will understand other techniques and / or methods for implementing various embodiments.
Claims
1. Receiving a global model containing multiple layers from a central aggregator that is connected to multiple user environments in a communicative manner, Using the data collected within the user environment, a minimal model is trained on the global model. Uploading at least a portion of the minimum model to the central aggregator, Receiving multiple minimum models, A method comprising creating a fused model based on a plurality of received minimum models.
2. The method according to claim 1, wherein the plurality of user environments include a plurality of tenancies within a cloud computing network.
3. The method according to claim 1, wherein the global model includes a deep learning model.
4. The method according to claim 3, wherein the deep learning model includes a transformer.
5. The method according to claim 3, wherein the deep learning model includes a transformer-based bidirectional encoded representation (BERT) model.
6. The method according to claim 1, wherein the minimum model is configured to take in the output of the global model.
7. The method according to claim 6, wherein the output of the global model includes at least some layer outputs of the layers of the global model.
8. The method according to claim 1, wherein uploading the minimum model to the central aggregator includes removing the classifier head from the minimum model.
9. The method according to claim 8, wherein uploading the minimum model to the central aggregator includes uploading the binary of the minimum model.
10. The method according to claim 1, wherein the plurality of minimum models are received from the central aggregator.
11. The method according to claim 1, wherein creating the fused model based on the received minimum models comprises training the fused model on the received minimum models.
12. The method according to claim 1, wherein creating the fused model based on the received plurality of minimum models includes combining data representing layers and weights from each of the plurality of minimum models.
13. The method according to claim 1, wherein creating the fused model based on the plurality of received minimum models comprises generating a classifier head and applying the classifier head to the layers of the fused model.
14. Receiving data to be used to generate machine learning model output, The user environment is used to import the data using the global model, To collect the intermediate output of the aforementioned global model, The intermediate output is acquired using the aforementioned fusion model, The aforementioned fusion model is used to output predictions, The method according to claim 1, further comprising:
15. Receiving data to be used to generate machine learning model output, The user environment is used to import the data using the global model, To collect the first intermediate output of the aforementioned global model, The first intermediate output of the global model is taken using at least some of the plurality of minimum models, Collecting at least some of the second intermediate outputs from the plurality of minimum models, The intermediate output is acquired using the aforementioned fusion model, The aforementioned fusion model is used to output predictions, The method according to claim 1, further comprising:
16. Memory and A system comprising: at least one processor configured to carry out the method according to any one of claims 1 to 15.
17. A program for causing one or more processors to perform the method according to any one of claims 1 to 15.
Citation Information
Patent Citations
Machine learning with model filtering and model mixing for edge devices in a heterogeneous environment
US20160217387A1
Machine learning system and method, integration server, information processing device, program, and inference model creation method
WO2021059604A1