Networked system and information processing method
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-05-22
- Publication Date
- 2026-08-13
Smart Images

Figure JP2025018578_13082026_PF_FP_ABST
Abstract
Description
Networked System and Information Processing Method
[0001] The present disclosure relates to a networked system including a plurality of machine learning processing engines and an information processing method in the networked system.
[0002] As a solution to the problems regarding network addresses in the existing Internet, International Publication No. 2020 / 049754 (Patent Document 1) discloses a completely new method for determining network addresses using public keys.
[0003] International Publication No. 2020 / 049754
[0004] The present disclosure provides a new networked system including a plurality of machine learning processing engines.
[0005] A networked system according to an aspect of the present disclosure includes a plurality of machine learning processing engines. Each of the plurality of machine learning processing engines is configured to operate on one or more computing devices. Each of the plurality of machine learning processing engines includes specifying means for specifying other machine learning processing engines by cryptographic methods. Each of the plurality of machine learning processing engines exchanges information with the specified other machine learning processing engines according to the interrelationship between the specified other machine learning processing engines and the own machine learning engine, and executes model operations.
[0006] Each of the plurality of machine learning processing engines may further include determining means for determining the authority to be given to the specified other machine learning processing engines according to a predetermined setting.
[0007] The predetermined setting may associate the network address of another machine learning processing engine with one or more authorities to be given to the other machine learning processing engine.
[0008] Each of the plurality of machine learning processing engines may have a setting in which information indicating another machine learning processing engine is associated with the network address of the other machine learning processing engine.
[0009] The identification means may authenticate the network addresses of other machine learning processing engines. Each of the machine learning processing engines may have a secret key used for identification by cryptographic methods.
[0010] Model operations may include at least one of the following: data collection, preprocessing of collected data, model training, model evaluation, model deployment, inference using the model, monitoring of model performance, model maintenance, and model retraining.
[0011] In another form of this disclosure, a method for processing information in a system comprising multiple machine learning processing engines is provided. Each of the multiple machine learning processing engines is configured to operate on one or more computing devices. The method for processing information includes the steps of each of the multiple machine learning processing engines identifying other machine learning processing engines by cryptographic means, and each of the multiple machine learning processing engines exchanging information with the identified other machine learning processing engines in accordance with the relationship between the identified other machine learning processing engines and its own machine learning engine, and performing a model operation.
[0012] According to this disclosure, a new networked system including multiple machine learning processing engines is provided.
[0013] This is a flowchart showing an example of the process for determining the network address at each node of a networked system according to this embodiment. This is a sequence diagram showing an example of the process for authenticating network addresses between nodes of a networked system according to this embodiment. This is a schematic diagram showing an example of the hardware configuration of a node according to this embodiment. This is a schematic diagram showing an example of the configuration of a networked system according to this embodiment. This is a schematic diagram showing a more detailed configuration example of the machine learning processing engine shown in Figure 4. This is a diagram showing an example of setting permissions in a networked system according to this embodiment. This is a diagram showing an example of the model operation of the machine learning processing engine according to this embodiment. This is a schematic diagram showing an example of the implementation of the machine learning processing engine according to this embodiment. This is a schematic diagram showing an example of sharing core parameters according to this embodiment. This is a diagram showing an example of a configuration in which multiple nodes access the machine learning processing engine according to this embodiment.
[0014] Embodiments relating to this disclosure will be described in detail with reference to the drawings. Note that identical or corresponding parts in the drawings are denoted by the same reference numerals, and their descriptions will not be repeated.
[0015] [A. Overview] The networked system according to this embodiment includes multiple machine learning processing engines. At least one machine learning processing engine can exchange information with other machine learning processing engines to perform model operations.
[0016] A machine learning processing engine includes, for example, a machine learning model (hereinafter also simply referred to as "the model"). Model operations include, for example, data collection, preprocessing of collected data, model training, model evaluation, model deployment, inference using the model, monitoring of model performance, model maintenance, and model retraining. Note that only some of the specific examples of model operations exemplified above may be implemented.
[0017] The machine learning processing engine model may be, for example, a neural network (e.g., convolutional neural network, recurrent neural network, etc.), a regression model (e.g., linear regression, polynomial regression, etc.), a classification model (e.g., logistic regression, support vector machine, decision tree, random forest, etc.), a clustering model (e.g., K-means clustering, hierarchical clustering, etc.), a dimensionality reduction model (e.g., principal component analysis, t-SNE, etc.), and a reinforcement learning model (e.g., Q-learning, Deep Q-Network, etc.).
[0018] A machine learning processing engine may be capable of training using methods such as supervised learning, unsupervised learning, or reinforcement learning. In a machine learning processing engine, training may update the parameters of some or all of the models in the machine learning processing engine, or cause a change in the state of some or all of the models in the machine learning processing engine.
[0019] The tasks of a machine learning processing engine may include, for example, classification (e.g., binary classification, multi-class classification), regression (e.g., prediction of continuous values), clustering, anomaly detection, dimensionality reduction, and reinforcement learning.
[0020] [B. Network Address Authentication Scheme] Next, the network address authentication scheme (hereinafter also simply referred to as the "authentication scheme") used by the networked system according to this embodiment will be described.
[0021] (b1: Obtaining the network address of the local node) Each node has a cryptographically determined network address. The entire network address of each node may also be cryptographically determined.
[0022] In this specification, "network address" means identification information for identifying a node present in a network, and is not limited to commonly used IP (Internet Protocol) addresses (IPv4 and IPv6), but may also be a proprietary address scheme (which can adopt any length of address).
[0023] In this embodiment, as an example of a method for cryptographically determining a network address, the public key of each node and an irreversible cryptographic hash function (hereinafter also simply referred to as "hash function") are used.
[0024] Any hash function is acceptable as long as it is common across nodes; for example, BLAKE or Keccak can be used. Alternatively, any cryptographic hash function developed in the future may be adopted.
[0025] The public key is input into a hash function to calculate a hash value. The network address is determined using all or part of the calculated hash value. For example, the entire network address may be determined solely from the hash value. In this case, the hash value may be designed to be the same length as or longer than the number of digits (or bits) required for the network address.
[0026] For example, to determine an IPv6 address, you only need to calculate a hash value of at least 128 bits, and to determine an IPv4 address, you only need to calculate a hash value of at least 32 bits. If you have a public key that can calculate a 256-bit or 512-bit hash value, you can extract any 128 bits (or 32 bits) of the calculated hash value and use that as the network address.
[0027] As a variation, the network address may be determined by adding a predetermined value to the calculated hash value. For example, the network address may be determined by changing the value of a specific digit (or a specific bit position) in a hash value of a predetermined bit length to a predetermined value (for example, a value indicating a specific attribute).
[0028] As a variation, instead of the public key itself, the hash function may input the public key with a specific string added to it, or the public key modified with a specific string. The specific string could be, for example, the name of an organization associated with the network address or a trademark owned by that organization.
[0029] By using such cryptographically determined network addresses, authentication of network addresses becomes possible between nodes. In other words, each node authenticates the network address of its communication partner to ensure the authenticity of that partner.
[0030] In this embodiment, each node can autonomously determine or generate its own network address. The process for determining the network address at each node will be described below.
[0031] Figure 1 is a flowchart showing an example of the network address determination process at each node of a networked system according to this embodiment.
[0032] Referring to Figure 1, the node determines the secret key (step S2). The node may generate the secret key using any pseudorandom number generation algorithm, or it may obtain the secret key from an external source. The node generates a public key corresponding to the determined secret key according to an encryption algorithm (step S4).
[0033] The node inputs the determined public key into a hash function to calculate a hash value (step S6), and uses the calculated hash value to determine the network address (step S8).
[0034] The node determines whether the determined network address satisfies predetermined conditions (step S10).
[0035] The predetermined conditions may include that the determined network address conforms to the network address rules. Specifically, the predetermined conditions may include that one or more specific digits (or one or more specific bits) of the determined network address represent a predetermined value. For example, the predetermined conditions may be deemed satisfied if the first two digits (16 bits in an 8-bit representation) of the determined network address represent "FC".
[0036] The specified conditions may include the fact that the network address is not the same as (or does not conflict with) that of other nodes.
[0037] If the predetermined conditions are not met (NO in step S10), the process from step S2 onward is repeated. At this time, the previously determined or generated private and public keys may be discarded.
[0038] If the predetermined conditions are met (YES in step S10), the node stores the key pair consisting of a private key and a public key (step S12).
[0039] The processes in steps S2 and S4 may be replaced, for example, by generating a key pair (private key and public key) using a TPM (Trusted Platform Module).
[0040] In step S12, only the private key may be stored. In this case, a public key corresponding to the stored private key may be generated each time as needed. In this way, each node stores at least a private key used for identification by cryptographic methods.
[0041] The determination in step S10 as to whether the predetermined conditions are met may, for example, correspond to a process to ensure that the determined network address conforms to the network rules. Depending on the network in which the network address is used, there may be no rules set, and in such cases, the determination in step S10 may be skipped or effectively disabled. For example, the determination in step S10 may be omitted altogether, or it may be determined that any network address meets the predetermined conditions.
[0042] Since the key pair stored by the above process is used for a long time, it is also referred to as a "static key pair" hereinafter. As will be described later, in the handshake for establishing an encryption session, a key pair that is temporarily used (hereinafter also referred to as an "ephemeral key pair") is generated separately from the static key pair.
[0043] (b2: Issuance of an electronic certificate associated with the public key) Although the network address and key pair necessary for the authentication scheme are determined by the above process, the following process may be executed as necessary. That is, an electronic certificate associated with the public key may be prepared. By using such an electronic certificate, the validity of the public key is further guaranteed.
[0044] Specifically, the node requests the certification authority to issue an electronic certificate associated with the public key (step S14). The node stores the electronic certificate issued by the certification authority (step S16). Note that the node may receive the electronic certificate directly from the certification authority, or may obtain the electronic certificate issued by the certification authority by any method. The electronic certificate may be registered in the certification authority or a repository associated with the certification authority.
[0045] The electronic certificate includes electronic certificate information and a signature (signature value). The electronic certificate information includes, for example, the following information.
[0046] ・ Name of the issuer ・ Name of the subject ・ Public key of the subject ・ Validity period For example, as the name of the issuer, the name of the certification authority may be stored. As the name of the subject, the name of the node or the username of the node may be stored. As the public key of the subject, the value of the public key of the node may be stored. As the validity period, the start date and time and the end date and time may be stored. The length of the validity period can be set arbitrarily, but for example, a period during which cryptographic security can be ensured may be set. Alternatively, from a commercial perspective, the validity period may be determined. For example, the validity period may be determined according to the period for which the user who uses or manages the node has paid or plans to pay the usage fee.
[0047] The certification authority calculates the hash value of the electronic certificate information using the private key of the certification authority. A signature is generated from the calculated hash value.
[0048] The electronic certificate information may include information indicating the signature algorithm used for signature calculation. The electronic certificate information may include the public key of the issuer (for example, the certification authority). By including the public key of the issuer in the electronic certificate, the validity of the electronic certificate can be sequentially confirmed from the intermediate certification authority to the root certification authority according to the certificate chain.
[0049] The certification authority may provide the issued electronic certificate to the node and register it in the repository. The repository may be provided by a certification authority different from the certification authority that issues the electronic certificate.
[0050] As described above, the issuance of the electronic certificate associated with the public key of each node is an optional process.
[0051] (b3: Encrypted session) Next, an example of the process for establishing an encrypted session between nodes will be described.
[0052] An encryption session may be established between each pair of nodes exchanging data. For example, if nodes A, B, and C exchange data with each other, a total of three encryption sessions may be established: one between node A and node B, one between node B and node C, and one between node C and node A.
[0053] The process of establishing an encrypted session may include processing based on asymmetric encryption. The network address may be authenticated by processing based on asymmetric encryption. Any type of asymmetric encryption may be used, such as elliptic curve cryptography or RSA encryption. The algorithm for asymmetric encryption may be any algorithm developed in the future.
[0054] Figure 2 is a sequence diagram showing an example of the process of establishing an encrypted session between nodes of a networked system according to this embodiment. In the sequence diagram shown in Figure 2, the network address determined cryptographically from the static public key SP_A of node A is assumed to be known to node B.
[0055] Referring to Figure 2, Node B generates a short-term key pair (sequence SQ2). The short-term key pair includes a short-term private key EPr_B and a public key EP_B. Node B generates a Handshake Initiation Message (HIM) (sequence SQ4). The Handshake Initiation Message is a request to establish an encrypted session with Node A.
[0056] The handshake initiation message may include, for example, the following three pieces of data: (1) Short-term public key EP_B (plaintext) (2) Encrypted static public key SP_B of node B (encryption key: ECDH(EPr_B, SP_A)) (3) Encrypted timestamp (encryption key: ECDH(SPr_B, SP_A)) Data encryption may employ algorithms such as ChaCha20-Poly1305. ChaCha20-Poly1305 simultaneously provides data confidentiality, integrity, and authenticity.
[0057] ECDH() refers to the function shown in the ECDH (Elliptic curve Diffie-Hellman) cryptographic algorithm for key exchange. The ECDH() function outputs the shared key.
[0058] Node B sends the generated handshake start message to Node A (sequence SQ6).
[0059] Node A decodes the handshake start message (sequence SQ8). Decoding the handshake start message includes, for example, the following processes:
[0060] (1) The encryption key for the encrypted static public key SP_B of node B is ECDH(EPr_B, SP_A). Using the symmetry of ECDH(EPr_B, SP_A) = ECDH(SPr_A, EP_B), node A calculates the encryption key using the short-term public key EP_B of node B included in the handshake start message and node A's static private key SPr_A. Then, node A decrypts the encrypted static public key SP_B of node B using the determined encryption key.
[0061] (2) The encryption key for the encrypted timestamp is ECDH(SPr_B, SP_A). Using the symmetry of ECDH(SPr_B, SP_A) = ECDH(SPr_A, SP_B), node A calculates the encryption key using node B's static public key SP_B obtained by decryption and node A's static private key SPr_A. Then, node A decrypts the encrypted timestamp using the determined encryption key.
[0062] Through the process described above, node A obtains node B's short-term public key EP_B and static public key SP_B. If node A cannot obtain node B's short-term public key EP_B or static public key SP_B, or if the timestamp indicates an invalid value, node A may abort the process of establishing the encryption session.
[0063] Node A obtains the static public key SP_B of Node B (sequence SQ10). Based on the obtained static public key SP_B of Node B, Node A may cryptographically determine the network address of Node B. The network address of Node B may be determined using all or part of the hash value calculated by inputting the static public key SP_B of Node B into a hash function, as described above.
[0064] Node A generates a short-term key pair (sequence SQ12). The short-term key pair includes a short-term private key EPr_A and a public key EP_A. Node B generates a Handshake Exchange Response (HER) (sequence SQ14). The Handshake Exchange Response is a request to establish an encryption session with Node A.
[0065] The handshake exchange response includes, for example, the following two pieces of data: (1) a short-term public key EP_A (plaintext) and (2) a predetermined string (encrypted with encryption key = ECDH(EPr_A, EP_B) AND ECDH(SPr_A, SP_B)). The predetermined string is a string known between node A and node B, and may be, for example, an empty string.
[0066] Node A sends the generated handshake start message to Node A (sequence SQ16).
[0067] Node A decodes the handshake exchange response (sequence SQ18). Decoding the handshake exchange response includes, for example, the following processes:
[0068] The encryption key for the encrypted predetermined string is ECDH(EPr_A, EP_B) AND ECDH(SPr_A, SP_B). Utilizing the symmetry of ECDH(EPr_A, EP_B) = ECDH(EPr_B, EP_A) and ECDH(SPr_A, SP_B) = ECDH(SPr_B, SP_A), node B calculates the encryption key using node A's short-term public key EP_A included in the handshake exchange response, node A's static public key SP_A, node B's short-term private key EPr_B, and node B's static private key SPr_B. Then, node B decrypts the encrypted predetermined string using the determined encryption key. If the decrypted result does not match the predetermined string, node B may abort the process of establishing the encryption session.
[0069] Node A calculates the shared key used in the encryption session (sequence SQ20). Node B calculates the shared key used in the encryption session (sequence SQ22). The shared keys calculated by Node A and Node B may be based on at least a part of the shared key shown below. In the following equations, the left side is the shared key calculated by Node A, and the right side is the shared key calculated by Node B.
[0070] (1) ECDH(EPr_A, SP_B) = ECDH(SPr_B, EP_A) (2) ECDH(SPr_A, SP_B) = ECDH(SPr_B, SP_A) (3) ECDH(EPr_A, EP_B) = ECDH(EPr_B, EP_A) (4) ECDH(SPr_A, EP_B) = ECDH(EPr_B, SP_A) For example, the result of concatenating the four shared keys calculated by (1) to (4) may be used as the common key used in the encryption session, or the result of a logical operation on the four shared keys may be used as the common key used in the encryption session. Thus, the common key used in the encryption session may be based on a combination of short-term key pairs and static key pairs.
[0071] Nodes A and B initiate communication using an encrypted session based on the calculated shared key (sequence SQ24). Nodes A and B may each determine identification information (e.g., a session ID) to identify the established encrypted session.
[0072] The session IDs for the same encryption session may be different between node A and node B.
[0073] As a shared key, a first shared key used when one node transmits data to the other node, and a second shared key used when the other node transmits data to the first node, may be prepared independently. In this case, multiple types of shared keys may be generated, for example, by differentiating the concatenation order of the four shared keys calculated by (1) to (4) above.
[0074] As mentioned above, in order to establish an encrypted session between nodes, it is necessary to exchange public keys between the nodes and then match the shared keys calculated at each node based on an asymmetric encryption algorithm. If this process for establishing an encrypted session is successful, at least the public key of the communicating node is authenticated. As a result, the network address of the communicating node, which is uniquely determined from the public key of the communicating node, is also authenticated.
[0075] The processing of sequences SQ2 to SQ24 may be implemented at Layer 3 (Network Layer) of the OSI (Open Systems Interconnection) reference model. Alternatively, the processing of sequences SQ2 to SQ24 may utilize existing Layer 3 functions for implementing IP addresses.
[0076] Short-term key pairs may be updated sequentially when predetermined conditions are met. When updating short-term key pairs, an exchange similar to that of a handshake start message and handshake exchange response may occur. The predetermined conditions may include, for example, at least one of the following: the total amount of data exchanged using one short-term key pair reaches a predetermined value (e.g., 100 MB), or a predetermined time (e.g., 5 minutes) has elapsed since one short-term key pair was generated. The shared key is also updated along with the update of the short-term key pairs.
[0077] If a pre-shared key (PSK) is available between nodes, the encryption strength may be increased by using the pre-shared key. As described above, once an encryption session is established between nodes, the two nodes corresponding to that encryption session each hold a shared key. Each node may hold the shared key shared with another node as a pre-shared key until it establishes the next encryption session with that other node. Thus, the shared key shared in the previous encryption session may also be the pre-shared key.
[0078] For example, when two nodes that possess a pre-shared key re-establish an encryption session, the handshake start message may include a request to confirm the existence of the pre-shared key. If the pre-shared key is available, the generated handshake exchange response (sequence SQ14 in Figure 2) may be further encrypted using the pre-shared key. The node that receives the handshake exchange response decrypts it using the pre-shared key.
[0079] If the shared key is updated sequentially, each node may hold multiple pre-shared keys associated with the same encryption session. Therefore, when each node receives encrypted data, it may sequentially select one of the multiple pre-shared keys it holds associated with the same encryption session and attempt to decrypt the received data.
[0080] Using a pre-shared key can further enhance the cryptographic strength of an encrypted session. Furthermore, using a pre-shared key allows for restricting access from nodes other than those that have previously established an encrypted session.
[0081] If a digital certificate associated with the public key is available, the public key may be verified using the digital certificate after sequence SQ8, for example. Verification of the public key using the digital certificate may include at least one of the following: querying the certificate authority and / or accessing the repository. If verification of the public key using the digital certificate fails, the process of establishing the encryption session may be aborted.
[0082] If a blacklist or whitelist is available for any node, the establishment of an encrypted session may be determined based on the blacklist or whitelist. For example, establishing an encrypted session with a node whose network address is on the blacklist may be prohibited. Establishing an encrypted session with a node whose network address is on the whitelist may be permitted only with a node whose network address is on the whitelist.
[0083] By using the authentication scheme according to this embodiment, it is guaranteed that each node possesses the public key (and the private key that forms a key pair with that public key) of the other node with which it communicates. In other words, from the perspective of each node, it is guaranteed that the node possessing a specific key pair is the communication partner. Thus, in the authentication scheme according to this embodiment, other nodes are authenticated and identified by cryptographic methods.
[0084] The network address identified through the process described above can also be called an authenticated network address. Below, we will describe some examples of networking systems that use authenticated network addresses.
[0085] [C. Nodes] In this specification, the term “node” includes physical or virtual computing resources that may have network addresses. A single node may have multiple network addresses. In this case, a single node will have multiple key pairs.
[0086] A single computing device (hereinafter also simply referred to as "device") may correspond to one node or to multiple nodes. A device may be, for example, a general-purpose computer, a specialized computer, a smartphone, a tablet, a smart speaker, or a wearable device. A device may also be a mobile device such as a vehicle, an aircraft, a helicopter, a drone, a ship, a train, or a spacecraft. In other words, a device may be at least a part of a ground mobile device, an air mobile device, a space mobile device, a water mobile device, or an underwater mobile device. For example, vehicles may be able to autonomously exchange information with each other.
[0087] For example, if a device provides a virtual environment, each of the multiple virtual machines deployed in that virtual environment may correspond to a node. A cloud server may also provide a virtual environment.
[0088] Multiple devices may sometimes constitute a single node. For example, in a configuration where multiple devices provide a single service or run an application, those multiple devices may be treated collectively as a single computing resource.
[0089] Figure 3 is a schematic diagram showing an example of the hardware configuration of a node according to this embodiment. Figure 3 shows an example of the hardware configuration of device 100, which is a personal computer, as an example of a node.
[0090] Referring to Figure 3, the device 100 includes one or more processors 102, one or more memories 104, storage 110, a display 106, an input unit 108, and a communication unit 122.
[0091] The processor 102 is an arithmetic circuit that sequentially reads and executes computer-readable instructions. The processor 102 is composed of, for example, a CPU (Central Processing Unit) or a GPU (Graphics Processing Unit). The device 100 may have multiple processors 102, or a single processor 102 may have multiple cores.
[0092] In this specification, the term "processor" includes ASIC (Application Specific Integrated Circuit) and FPGA (Field-Programmable Gate Array). Processor 102 may be implemented as SoC (System on Chip). Processor 102 can also be referred to as processing circuitry.
[0093] Memory 104 is a volatile storage device such as DRAM (Dynamic Random Access Memory) or SRAM (Static Random Access Memory). Storage 110 is a non-volatile storage device such as HDD (Hard Disk Drive) or SSD (Solid State Drive).
[0094] In this specification, the term “memory” includes volatile storage devices such as memory 104 and non-volatile storage devices such as storage 110.
[0095] The storage 110 stores various programs, various data, and various parameters. The processor 102 performs various processes by loading a specified program from among the various programs stored in the storage 110 onto the memory 104 and executing it sequentially.
[0096] For example, storage 110 stores an OS (Operating System) 112, a communication processing program 114, a machine learning program 116, a set of parameters 118, and a key pair 12.
[0097] The OS 112 includes computer-readable instructions for providing an environment for executing various processes on device 100. The communication processing program 114 includes computer-readable instructions for executing an authentication scheme according to this embodiment. The communication processing program 114 may also include computer-readable instructions for the communication processing module 20 described later. The machine learning program 116 includes computer-readable instructions for a machine learning processing engine, as described later. The parameter group 118 is information for defining the operation of the model included in the machine learning processing engine.
[0098] The key pair 12 includes the node's private key and public key. Alternatively, only the private key may be stored instead of the key pair 12. The key pair 12 or the private key may be stored in a TPM (Time Processor Module) separate from the storage 110.
[0099] The display 106 displays the processing results from the processor 102 to the outside. The display 106 may be, for example, an LCD (Liquid Crystal Display) or an organic EL (Electro-Luminescence) display.
[0100] The input unit 108 receives user input to the device 100. The input unit 108 may be, for example, a keyboard, a mouse, a touch panel located on the display 106, or a switch located at any of the locations on the device 100's casing.
[0101] The display 106 and input unit 108 may be omitted. The communication unit 122 performs data communication with other nodes. More specifically, the communication unit 122 includes a network interface for connecting device 100 to a network. For example, the communication unit 122 includes wired connection terminals such as an Ethernet® port, a USB (Universal Serial Bus) port, a serial port such as IEEE 1394, and a parallel port. Alternatively, the communication unit 122 may include processing circuits and antennas for wireless communication with devices, routers, mobile base stations, etc. The wireless communication supported by the communication unit 122 may be, for example, Wi-Fi®, Bluetooth®, ZigBee®, LPWA (Low Power Wide Area), GSM®, W-CDMA, CDMA200, LTE (Long Term Evolution), fifth-generation mobile communication system (5G), or sixth-generation mobile communication system (6G).
[0102] Device 100 may include a component for reading computer-readable instructions from a non-transitory medium on which computer-readable instructions are stored. The medium may be, for example, an optical medium such as a DVD (Digital Versatile Disc) or a semiconductor medium such as a USB memory stick.
[0103] Alternatively, instead of installing programs and other files on device 100 via media, the necessary programs and other files may be obtained from a distribution server on the network.
[0104] It should be noted that the node according to this embodiment is not limited to the device 100 shown in Figure 3, and any hardware configuration can be adopted according to the required functions and the era in which they will be implemented.
[0105] Furthermore, sensors or actuators may also correspond to nodes. In the networked system according to this embodiment, nodes may include devices that do not have a machine learning processing engine implemented. When a sensor or actuator corresponds to a single node, the authentication scheme described above can be used to authenticate, for example, a sensor that collects values, and an actuator to which commands are given.
[0106] Furthermore, a node may be a product or part of a product. For example, a node may be a home appliance, an automobile, a smart home device, a drone, or an autonomous robot.
[0107] [D. Networked System] Figure 4 is a schematic diagram showing an example of the configuration of a networked system according to this embodiment.
[0108] Referring to Figure 4, the networked system 1 includes a network of machine learning processing engines 10-1 to 10-4 (hereinafter sometimes collectively referred to as "machine learning processing engine 10"). Each of the machine learning processing engines 10-1 to 10-4 can be considered a "node" present in the network. Each of the machine learning processing engines 10-1 to 10-4 operates on one or more devices 100.
[0109] Each of the machine learning processing engines 10, at least some of the multiple machine learning processing engines 10, includes one or more models. At least some of the one or more models may be AI (Artificial Intelligence) models. The models may also be called trained models. The models include task-specific algorithms and parameter sets.
[0110] Each of the multiple machine learning processing engines 10, at least some of them, includes an agent. The agent is responsible for interacting with, for example, the user or other machine learning processing engines 10. The agent may also perform requested tasks using a trained model.
[0111] For example, the agent may pass information received from a user or other machine learning processing engine 10 to a model to obtain an inference result, and return the inference result to the source of the information. The agent may also perform a requested task by coordinating multiple models.
[0112] If the agent determines that it cannot adequately handle at least a portion of a request or query from a user or another machine learning processing engine 10, it may forward at least a portion of the request or query to another machine learning processing engine 10. The receiving machine learning processing engine 10 may then perform the processing corresponding to the request or query. Alternatively, the agent may respond to the source of the request or query by recommending another machine learning processing engine 10 that is capable of handling the request or query that it has determined it cannot adequately handle. In other words, the agent may introduce the requester to yet another machine learning processing engine 10 that is capable of handling the request or query. By employing such forwarding and introduction processes, the need for a single machine learning processing engine 10 to be all-purpose is reduced, and multiple machine learning processing engines 10 can cooperate to execute the requested task.
[0113] The number of machine learning processing engines 10 included in the networked system 1 can be arbitrarily determined. The machine learning processing engines 10 may have different structures or functions from each other, or they may have the same structure or function.
[0114] Each of the multiple machine learning processing engines 10 may include one or more agents and one or more models.
[0115] In the networked system 1, various model operations can be performed on at least some of the multiple machine learning processing engines 10. For example, MLOps can be realized.
[0116] In the networked system 1, one machine learning processing engine 10 can operate (manage) or execute model operations independently, or multiple machine learning processing engines 10 can work together to operate or execute model operations.
[0117] For example, one machine learning processing engine 10 may output information that another machine learning processing engine 10 receives, and then train or retrain the model of the other machine learning processing engine 10.
[0118] For example, one machine learning processing engine 10 may output information, which another machine learning processing engine 10 may receive, and the other machine learning processing engine 10 may perform inference based on the received information. Furthermore, the other machine learning processing engine 10 may return the inference result to the first machine learning processing engine 10, or pass it to yet another machine learning processing engine 10.
[0119] For example, multiple machine learning processing engines 10 may work together to perform a single task. For instance, one machine learning processing engine 10 may receive the evaluation results of a model from another machine learning processing engine 10, and based on those evaluation results, the other machine learning processing engine 10 may determine whether or not the model needs to be retrained. The other machine learning processing engine 10 may then provide the first machine learning processing engine 10 with the information necessary for retraining.
[0120] For example, the machine learning processing engines 10 may perform tasks such as games or simulations in which they compete against each other.
[0121] For example, the machine learning processing engines 10 may communicate with each other using natural language. Such communication can improve the language understanding and generation capabilities of the models.
[0122] In this way, in the networked system 1, various information necessary for model operation is exchanged between multiple machine learning processing engines 10. To ensure secure information exchange, the networked system 1 uses authenticated network addresses as described above.
[0123] More specifically, each machine learning processing engine 10-1 to 10-4 has a key pair 12-1 to 12-4. Each key pair 12-1 to 12-4 consists of a private key 13-1 to 13-4 and a public key 14-1 to 14-4. As described above, the private keys 13-1 to 13-4 are used to uniquely determine the network address of each machine learning processing engine 10-1 to 10-4.
[0124] For example, the process of authenticating the network address shown in Figure 2 may be handled by agents included in each of the machine learning processing engines 10-1 to 10-4.
[0125] Each of the machine learning processing engines 10-1 to 10-4 may have a communication partner setting 16-1 to 16-4. The communication partner setting 16-1 to 16-4 includes information for identifying one or more other machine learning processing engines 10 that are scheduled to exchange information with the machine learning processing engines 10-1 to 10-4.
[0126] For example, the communication partner settings 16-1 to 16-4 may be a kind of whitelist. Specifically, each of the communication partner settings 16-1 to 16-4 may include information for identifying a machine learning processing engine 10 that is pre-configured as a communication partner (in the example in Figure 4, the name) and a corresponding network address. Each of the machine learning processing engines 10-1 to 10-4 has, for example, a communication partner setting 16-1 to 16-4 that associates information indicating another machine learning processing engine 10 with the network address of the other machine learning processing engine 10. Note that the communication partner settings 16-1 to 16-4 may include a corresponding public key instead of, or in addition to, the network address. The communication partner settings 16-1 to 16-4 may be managed by the communication processing module 20 described later.
[0127] For example, machine learning processing engine 10-1 establishes encryption sessions 18-1, 18-5, and 18-4 with machine learning processing engines 10-2 to 10-4, respectively. Machine learning processing engine 10-2 establishes encryption sessions 18-1, 18-3, and 18-6 with machine learning processing engines 10-1, 10-3, and 10-4, respectively. Machine learning processing engine 10-3 establishes encryption sessions 18-5, 18-2, and 18-3 with machine learning processing engines 10-1, 10-2, and 10-4, respectively. Machine learning processing engine 10-4 establishes encryption sessions 18-4, 18-6, and 18-3 with machine learning processing engines 10-1 to 10-3, respectively.
[0128] For example, the process for establishing the encrypted session 18-1 may be initiated by either the machine learning processing engine 10-1 or 10-2. When machine learning processing engine 10-1 initiates communication with machine learning processing engine 10-2, machine learning processing engine 10-1 may refer to the communication partner setting 16-1 and send a handshake start message to the network address of machine learning processing engine 10-2. Alternatively, machine learning processing engine 10-1 may determine the network address of machine learning processing engine 10-2 from its public key 14-2 and send a handshake start message to the determined network address. The same process is also performed when machine learning processing engine 10-2 initiates communication with machine learning processing engine 10-1.
[0129] Figure 5 is a schematic diagram showing a more detailed configuration example of the machine learning processing engine 10 shown in Figure 4. For the sake of explanation, Figure 5 focuses on machine learning processing engines 10-1 and 10-2, but other machine learning processing engines 10 may have a similar configuration.
[0130] Referring to Figure 5, the machine learning processing engine 10-1 includes agent 10A-1 and model 10M-1. The machine learning processing engine 10-2 includes agent 10A-2 and model 10M-2.
[0131] The machine learning processing engine 10-1 may include a communication processing module 20-1. The machine learning processing engine 10-2 may include a communication processing module 20-2.
[0132] Communication processing modules 20-1 and 20-2 (hereinafter collectively referred to as "communication processing modules 20") are implemented, for example, at Layer 3 (network layer) and are responsible for the authentication scheme described above. More specifically, communication processing modules 20 identify other machine learning processing engines 10 using cryptographic methods. Since communication processing modules 20 are responsible for the processing to authenticate and identify other machine learning processing engines 10 (or agents 10A or models 10M), agents 10A-1 and 10A-2 (hereinafter collectively referred to as "agents 10A") and models 10M-1 and 10M-2 (hereinafter collectively referred to as "models 10M") do not need to implement the processing required for the authentication scheme.
[0133] Agent 10A may include all or part of the functions of the communication processing module 20.
[0134] For example, an encrypted session 18-1 is established between communication processing module 20-1 and communication processing module 20-2. Agent 10A-1 and agent 10A-2 may exchange information via the encrypted session 18-1. In this case, agent 10A-1 passes information to model 10M-1 and receives inference results from model 10M-1. Similarly, agent 10A-2 passes information to model 10M-2 and receives inference results from model 10M-2.
[0135] Agent 10A-1 and Model 10M-2 may exchange information, or Agent 10A-2 and Model 10M-1 may exchange information, or Model 10M-1 and Model 10M-2 may exchange information.
[0136] By using the authentication scheme according to this embodiment, the machine learning processing engine 10 can authenticate and identify the machine learning processing engine 10 of the communication partner. Furthermore, encryption enhances the security of the information exchanged between the machine learning processing engines 10.
[0137] Furthermore, by implementing the authentication scheme according to this embodiment at Layer 3 (Network Layer), it becomes unnecessary to implement authentication and identification processes for the communication partner at Layer 7 (Application Layer) of the OSI reference model, which executes the main processing of the machine learning processing engine 10.
[0138] In the networked system according to this embodiment, each of the multiple machine learning processing engines 10 exchanges information with other machine learning processing engines 10 and executes model operations, depending on the relationship between its own machine learning processing engine and the other machine learning processing engines 10. That is, each of the multiple machine learning processing engines 10 determines the content of the information to be exchanged with the other machine learning processing engine 10 and the processing content of the model operations to be executed, depending on what kind of communication partner the other machine learning processing engine 10 is to its own machine learning processing engine.
[0139] Each of the multiple machine learning processing engines 10 may pre-determine the permissions it will grant to the other machine learning processing engines 10. In other words, each of the multiple machine learning processing engines 10 may perform different model operations depending on the permissions it grants to the other machine learning processing engines 10.
[0140] Figure 6 shows an example of permission settings in a networked system according to this embodiment. For the sake of explanation, Figure 6 shows an example of permission settings for the machine learning processing engine 10-1.
[0141] Referring to Figure 6, for example, in addition to machine learning processing engines 10-2 to 10-4, which are scheduled to exchange information with machine learning processing engine 10-1, the scope of permissions to be granted to the local node (machine learning processing engine 10-1) is set.
[0142] In the example shown in Figure 6, inference, additional training, and evaluation are shown as examples of permission types. Inference means the permission of the target machine learning processing engine 10 to provide information to the machine learning processing engine 10-1 and obtain an inference result. Additional training means the permission of the target machine learning processing engine 10 to have the machine learning processing engine 10-1 perform additional training. Evaluation means the permission of the target machine learning processing engine 10 to obtain an evaluation of the model from the machine learning processing engine 10-1.
[0143] Thus, each of the machine learning processing engines 10-1 to 10-4 may have a setting that associates the network address of another machine learning processing engine 10 with one or more permissions to be granted to that other machine learning processing engine 10.
[0144] The machine learning processing engine 10 may determine the scope of permissions to grant based on the authenticated network address of another machine learning processing engine 10 (or node). In other words, the machine learning processing engine 10 may determine the permissions to grant to another machine learning processing engine 10 according to predetermined settings. The process of determining such permissions may be handled by the communication processing module 20 or by agent 10A. The machine learning processing engine 10 may accept access from other machine learning processing engines 10 within the scope of the permissions it has granted.
[0145] Each of the multiple machine learning processing engines 10 exchanges information with other machine learning processing engines 10 based on determined permissions and executes model operations. Each of the multiple machine learning processing engines 10 exchanges information with other machine learning processing engines 10 within the scope of the permissions granted to those other machine learning processing engines 10 and operates or executes model operations.
[0146] In addition to the permissions shown in Figure 6, or instead of permissions, roles may be predetermined to be assigned to the machine learning processing engine 10. A role is also an example of the interaction between one machine learning processing engine 10 and another. Roles may include, for example, a provider of information for additional learning or a monitor for the model's performance.
[0147] Furthermore, the permissions and roles set for each of the machine learning processing engines 10 may be determined or updated autonomously by any of the machine learning processing engines 10. In other words, the relationship between one machine learning processing engine 10 and another machine learning processing engine 10 may be dynamically determined or changed depending on various circumstances and conditions.
[0148] Furthermore, if an electronic certificate associated with a public key is used, the electronic certificate may also describe the permissions and / or roles granted to the corresponding machine learning processing engine 10 (or node). The machine learning processing engine 10 (or node) may determine the permissions and / or roles granted to the communicating machine learning processing engine 10 (or node) based on the acquired electronic certificate.
[0149] In this way, since permissions and roles can be set for each of the machine learning processing engines 10, a networked system can be flexibly configured according to the purpose.
[0150] As an alternative, the machine learning processing engine 10 may receive requests from various sources.
[0151] Figure 7 shows an example of a model operation of the machine learning processing engine 10 according to this embodiment. For the sake of explanation, Figure 7 focuses on the machine learning processing engine 10-1 shown in Figure 4, but other machine learning processing engines 10 may have a similar configuration.
[0152] Referring to Figure 7, machine learning processing engine 10-1 receives task requests and information from machine learning processing engines 10-2 to 10-4, respectively.
[0153] The machine learning processing engine 10-1 may receive task requests and information from the preprocessing layer 30. The preprocessing layer 30 is responsible for tasks such as converting information into a format suitable for processing by the machine learning processing engine 10. The preprocessing layer 30 may perform tasks such as speech recognition, image processing, and translation. The preprocessing layer 30 may consist of, for example, a transformer.
[0154] The machine learning processing engine 10-1 may accept any document 32 as input. The machine learning processing engine 10-1 may accept requests or information from a user 34 as input. The machine learning processing engine 10-1 may accept information from a sensor 36 as input. The machine learning processing engine 10-1 may output information to an actuator not shown in the diagram.
[0155] In any case, the machine learning processing engine 10-1 authenticates and identifies the communication partner using an authentication scheme. For example, if the preprocessing layer 30 is the communication partner, it authenticates and identifies the node containing the preprocessing layer 30. If a document 32 is input, it authenticates and identifies the node holding the document 32. If it receives a request or information from a user 34 as input, it authenticates and identifies the device used by the user 34. The sensor 36 or actuator may include circuitry or logic that executes the authentication scheme.
[0156] As an alternative, one machine learning processing engine 10 may be implemented by multiple devices 100.
[0157] Figure 8 is a schematic diagram showing an implementation example of the machine learning processing engine 10 according to this embodiment. In the implementation example shown in Figure 8, the machine learning processing engine 10-1 is implemented by three devices 100-1 to 100-3, and the machine learning processing engines 10-2 to 10-4 are each implemented by devices 100-4 to 100-6.
[0158] Each of devices 100-1 to 100-6 may be a single node. In this case, each of devices 100-1 to 100-6 has a device-specific network address (or key pair). Alternatively, each of the machine learning processing engines 10-1 to 10-4 may be a single node. In this case, devices 100-1 to 100-3 may share a network address (or key pair).
[0159] In any case, devices 100-1 to 100-6 execute the authentication scheme.
[0160] By implementing the machine learning processing engine 10 using multiple devices, for example, distributed parallel learning can be performed. Distributed parallel learning includes, for example, data parallelism, model parallelism, pipeline parallelism, and hybrid parallelism.
[0161] By implementing a single machine learning processing engine 10 using multiple devices 100, a machine learning processing engine 10 with a large-scale model can be realized.
[0162] As an alternative, multiple machine learning processing engines 10 may have common core parameters, and fine-tuning may be performed based on information from each machine learning processing engine 10.
[0163] Figure 9 is a schematic diagram showing an example of core parameter sharing according to this embodiment. For the sake of explanation, an example configuration in which machine learning processing engines 10-1 to 10-3 have common core parameters is shown, but the number of machine learning processing engines 10 can be any number.
[0164] Referring to Figure 9, the machine learning processing engines 10-1 to 10-3 each have common core parameters 10P-1 to 10P-3. The core parameters 10P-1 to 10P-3 are mutually independent groups of parameters (see parameter group 118 in Figure 3, etc.).
[0165] The machine learning processing engine 10-1 adds or updates unique parameters 10Q-1 in response to training on the machine learning processing engine 10-1 (its own node), and also adds or updates unique parameters 10Q-1 in response to inference results from the machine learning processing engine 10-2 (node 2) or the machine learning processing engine 10-3 (node 3). The machine learning processing engine 10-1 can identify which machine learning processing engine 10 the unique parameter 10Q-1 is attributable to. Therefore, the machine learning processing engine 10-1 may manage unique parameters 10Q-1 separately from the originating machine learning processing engine 10.
[0166] Similarly, the machine learning processing engine 10-2 adds or updates the unique parameter 10Q-2 in accordance with training of the machine learning processing engine 10-2 (its own node), and adds or updates the unique parameter 10Q-2 in accordance with the inference results of the machine learning processing engine 10-1 (node 1) or the machine learning processing engine 10-3 (node 3). Similar to the machine learning processing engines 10-1 and 10-2, the machine learning processing engine 10-3 adds or updates the unique parameter 10Q-3.
[0167] In the configuration example shown in Figure 9, the machine learning processing engines 10-1 to 10-3 use an authentication scheme to authenticate and identify the communication partner.
[0168] By adding or updating parameters for each node to these common core parameters, each machine learning processing engine 10 (node) can perform node-specific model operations.
[0169] As an alternative, multiple nodes may access a single machine learning processing engine 10.
[0170] Figure 10 shows an example configuration in which multiple nodes access a machine learning processing engine 10 according to this embodiment. Referring to Figure 10, devices 100-1 to 100-3 can access the machine learning processing engine 10. The machine learning processing engine 10 may be a single node, and devices 100-1 to 100-3 may each be independent nodes.
[0171] The machine learning processing engine 10 may authenticate and identify devices 100-1 to 100-3, respectively, using an authentication scheme.
[0172] Devices 100-1 to 100-3 each have preprocessing layers 30-1 to 30-3. Similar to the preprocessing layer 30 described above, preprocessing layers 30-1 to 30-3 are responsible for, for example, converting information into a format suitable for processing by the machine learning processing engine 10.
[0173] The processing results from preprocessing layers 30-1 to 30-3 may be passed to the machine learning processing engine 10, or the inference results from the machine learning processing engine 10 may be passed to any of the preprocessing layers 30-1 to 30-3. The preprocessing layers 30-1 to 30-3 do not need to be identical to each other, and their performance and functions may differ depending on the device 100-1 to 100-3.
[0174] A networked system may be constructed by arbitrarily combining one or more of the above-described modifications.
[0175] [E. Modifications] In the above-described embodiment, an example of a process in which a machine learning processing engine 10 to be communicated with is identified by establishing an encrypted session using a process based on asymmetric encryption was described. In other words, an example of a process in which another machine learning processing engine is identified by a cryptographic method was described. However, another machine learning processing engine may be identified using a protocol such as SSL / TLS, for example.
[0176] [F. Advantages] According to the networked system of this embodiment, multiple machine learning processing engines can perform model operations while exchanging information. This allows each machine learning processing engine to autonomously evolve and improve. At this time, by performing model operations according to the interrelationships between machine learning processing engines, a networked system can be flexibly constructed to suit various applications and purposes.
[0177] By using the authentication scheme according to this embodiment, authentication of network addresses, identification of machine learning processing engines, and determination of permissions and roles to be granted to machine learning processing engines can be securely and efficiently achieved between machine learning processing engines.
[0178] The embodiments disclosed herein should be considered in all respects to be illustrative and not restrictive. The scope of the invention is indicated by the claims rather than by the foregoing description, and all modifications within the meaning and scope of equivalents of the claims are intended to be included.
[0179] 1 Networked system, 10 Machine learning processing engine, 10A Agent, 10M Model, 10P Core parameters, 10Q Unique parameters, 12 Key pair, 13 Private key, 14 Public key, 16 Communication partner settings, 18 Encryption session, 20 Communication processing module, 30 Preprocessing layer, 32 Document, 34 User, 100 Device, 102 Processor, 104 Memory, 106 Display, 108 Input unit, 110 Storage, 114 Communication processing program, 116 Machine learning program, 118 Parameter group, 122 Communication unit.
Claims
1. A networked system comprising multiple machine learning processing engines, each of which is configured to operate on one or more computing devices, each of which comprises identification means for identifying other machine learning processing engines by cryptographic means, and each of which exchanges information with the identified other machine learning processing engines in accordance with the relationship between its own machine learning engine and the identified other machine learning processing engines to perform model operations.
2. The networked system according to claim 1, wherein each of the plurality of machine learning processing engines further comprises a determination means for determining the authority to grant to the identified other machine learning processing engine according to predetermined settings.
3. The networking system according to claim 2, wherein the predetermined settings associate the network address of another machine learning processing engine with one or more permissions to be granted to the other machine learning processing engine.
4. The networked system according to any one of claims 1 to 3, wherein each of the plurality of machine learning processing engines has a setting that associates information indicating other machine learning processing engines with the network addresses of those other machine learning processing engines.
5. The networked system according to any one of claims 1 to 4, wherein the identifying means authenticates the network address of the other machine learning processing engine.
6. The networked system according to any one of claims 1 to 5, wherein each of the plurality of machine learning processing engines has a secret key used for identification by the cryptographic method.
7. The networked system according to any one of claims 1 to 6, wherein the model operation includes at least one of data collection, preprocessing of collected data, model training, model evaluation, model deployment, inference using the model, monitoring of model performance, model maintenance, and model retraining.
8. An information processing method in a system comprising multiple machine learning processing engines, wherein each of the multiple machine learning processing engines is configured to operate on one or more computing devices, and the information processing method comprises the steps of: each of the multiple machine learning processing engines identifying other machine learning processing engines by cryptographic means; and each of the multiple machine learning processing engines exchanging information with the identified other machine learning processing engines in accordance with the relationship between the identified other machine learning processing engines and its own machine learning engine, and executing a model operation.