Method for deploying neural network model on ai platform
Patent Information
- Application Number
- KR1020250026698
- Authority / Receiving Office
- KR · KR
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2024-03-07
- Filing Date
- 2025-02-28
- Publication Date
- 2026-08-11
- Estimated Expiration
- 2045-02-28
Smart Images

Figure 112025023495318-PAT00003_ABST
Abstract
Description
Technology Field
[0001] The present disclosure relates to a method for continuous deployment of a neural network model serviced on an artificial intelligence platform, and more specifically, to a method for deploying a neural network model application without interruption of service during the update and without mixing with previous versions by performing updates in units of Pods, which are container groups, to continuously deploy a neural network model serviced on an artificial intelligence platform. Background Technology
[0003] Neural network models served in databases where various service models and vast amounts of data on existing AI platforms were intermingled could have their source code updated individually, requiring separate tools for the deployment and management of these updated models. At this time, a technical problem existed in which the development of source code related to neural network model applications was combined with the operation of service environment infrastructure, leading to increased system complexity and making centralized management of individual application services difficult.
[0004] In addition, in existing service deployment environments, when source code was updated, a method was utilized to create a new container group containing the updated content in addition to the existing container group and delete the existing container group. However, since this method resulted in the temporary coexistence of two container groups, there was a problem where two different versions of the application existed during the service process of the neural network model application. Therefore, there is a growing need for a method to continuously deploy neural network model applications without service interruption during updates or mixing with previous versions by performing updates at the level of container groups called Pods, in order to continuously deploy neural network models serviced on an artificial intelligence platform.
[0005] Meanwhile, although the present disclosure is derived based on the technical background examined above, the technical problem or objective of the present disclosure is not limited to solving the problems or disadvantages examined above. That is, in addition to the technical issues examined above, the present disclosure can cover various technical issues related to the contents described below. The problem to be solved
[0007] The present disclosure relates to a method for continuous deployment of a neural network model serviced on an artificial intelligence platform. More specifically, the objective is to deploy a neural network model application without interruption of service during the update or mixing with previous versions by performing updates in units of Pods, which are container groups, to continuously deploy a neural network model serviced on an artificial intelligence platform.
[0008] Meanwhile, the technical problem that the present disclosure aims to solve is not limited to the technical problem mentioned above, and various technical problems may be included within the scope obvious to a person skilled in the art from the contents described below. means of solving the problem
[0010] A method performed by a computing device according to one embodiment of the present disclosure for realizing the aforementioned task is disclosed. The method may include: obtaining a container group comprising a first container, a second container, and a sub-container for deploying a neural network model; identifying a change in at least one of the first container, the second container, or the sub-container included in the container group; updating at least one of the first container, the second container, or the sub-container based on the identified change; and coordinating a neural network model application based on the container group in which at least one of the first container, the second container, or the sub-container has been updated.
[0011] Alternatively, the first container included in the container group includes at least one of a command or script for controlling the second container, and the second container may be controlled based on at least one of the command or script included in the first container.
[0012] Alternatively, the step of obtaining a container group including a first container, a second container, and a sub-container for deploying the neural network model may further include the step of obtaining a first repository including at least one of a command or script for controlling the second container based on the first container.
[0013] Alternatively, the first container may include a Hook init container.
[0014] Alternatively, sub-containers included in the above container group can be synchronized with a source code repository to update the source code.
[0015] Alternatively, the step of obtaining a container group including a first container, a second container, and a sub-container for deploying the neural network model may further include the step of obtaining a second repository containing source code for adjusting the second container based on the sub-container.
[0016] Alternatively, the step of updating at least one of the first container, the second container, or the sub-container based on the identified change may include, if a change is identified in a source code repository synchronized with the sub-container, the step of updating the source code contained in the second repository based on the change and the sub-container.
[0017] Alternatively, the step of coordinating a neural network model application based on a container group in which at least one of the first container, the second container, or the sub-container has been updated may include the step of executing a process of controlling the second container based on a first repository containing at least one of a command or script for controlling the second container when the source code contained in the second repository has been updated.
[0018] Alternatively, the second container may include a main container in which the neural network model application can be executed.
[0019] Alternatively, the step of updating at least one of the first container, the second container, or the sub-container based on the identified change includes the step of updating a sub-container included in the container group, and the step of adjusting a neural network model application based on the container group in which at least one of the first container, the second container, or the sub-container has been updated may include the step of adjusting a neural network model application included in the second container based on the updated sub-container and the first container.
[0020] Alternatively, the step of coordinating a neural network model application included in the second container based on the updated sub-container and the first container may include: obtaining the last updated source code included in the updated sub-container; obtaining at least one of a command or script for controlling the second container based on the first container; and coordinating the neural network model application included in the second container based on at least one of the command or script for controlling the second container and the updated source code.
[0021] Alternatively, the step of coordinating a neural network model application included in the second container based on at least one of a command or script for controlling the second container and the updated source code may include the step of re-executing the neural network model application included in the second container based on at least one of a command or script for controlling the second container and the updated source code.
[0022] A computer program stored on a computer-readable storage medium is disclosed in accordance with one embodiment of the present disclosure for realizing the aforementioned objectives. When the computer program is executed on one or more processors, the one or more processors perform operations to continuously deploy a neural network model, the operations may include: an operation to obtain a container group including a first container, a second container, and a sub-container for deploying a neural network model; an operation to identify a change in at least one of the first container, the second container, or the sub-container included in the container group; an operation to update at least one of the first container, the second container, or the sub-container based on the identified change; and an operation to coordinate a neural network model application based on the container group in which at least one of the first container, the second container, or the sub-container has been updated.
[0023] Alternatively, the operation of obtaining a container group including a first container, a second container, and a sub-container for deploying the neural network model may further include the operation of obtaining a first repository including at least one of a command or script for controlling the second container based on the first container.
[0024] Alternatively, the operation of obtaining a container group including a first container, a second container, and a sub-container for deploying the neural network model may further include the operation of obtaining a second repository containing source code for adjusting the second container based on the sub-container.
[0025] Alternatively, the operation of updating at least one of the first container, the second container, or the sub-container based on the identified change may include, when a change is identified in a source code repository synchronized with the sub-container, an operation of updating the source code contained in the second repository based on the change and the sub-container.
[0026] Alternatively, the operation of coordinating a neural network model application based on a container group in which at least one of the first container, the second container, or the sub-container is updated may include the operation of executing a process of controlling the second container based on a first repository containing at least one of a command or script for controlling the second container when the source code included in the second repository is updated.
[0027] Alternatively, the operation of updating at least one of the first container, the second container, or the sub-container based on the identified change includes the operation of updating a sub-container included in the container group, and the operation of adjusting a neural network model application based on the container group in which at least one of the first container, the second container, or the sub-container has been updated may include the operation of adjusting a neural network model application included in the second container based on the updated sub-container and the first container.
[0028] Alternatively, the operation of coordinating a neural network model application included in the second container based on the updated sub-container and the first container may include: the operation of obtaining the last updated source code included in the updated sub-container; the operation of obtaining at least one of a command or script for controlling the second container based on the first container; and the operation of coordinating a neural network model application included in the second container based on at least one of the command or script for controlling the second container and the updated source code.
[0029] A computing device according to one embodiment of the present disclosure for realizing the aforementioned tasks is disclosed. The device comprises at least one processor, wherein the at least one processor may be configured to acquire a container group comprising a first container, a second container, and a sub-container for deploying a neural network model; identify a change in at least one of the first container, the second container, or the sub-container included in the container group; update at least one of the first container, the second container, or the sub-container based on the identified change; and coordinate a neural network model application based on the container group in which at least one of the first container, the second container, or the sub-container has been updated. Effects of the invention
[0031] The present disclosure relates to a method for continuous deployment of a neural network model serviced on an artificial intelligence platform. More specifically, to continuously deploy a neural network model serviced on an artificial intelligence platform, updates are performed in units of Pods, which are groups of containers, thereby enabling continuous deployment of the neural network model application without interruption of service during updates or mixing with previous versions.
[0032] Meanwhile, the effects of the present disclosure are not limited to those mentioned above, and various effects may be included within the scope obvious to a person skilled in the art from the contents described below. Brief explanation of the drawing
[0034] FIG. 1 is a block diagram of a computing device for continuously deploying a neural network model according to one embodiment of the present disclosure. FIG. 2 is a schematic diagram showing a network function according to one embodiment of the present disclosure. FIG. 3 is a flowchart illustrating a method for continuously deploying a neural network model according to one embodiment of the present disclosure. FIG. 4 is a schematic diagram illustrating the process of continuously deploying a neural network model according to one embodiment of the present disclosure. Figure 5 is a schematic diagram illustrating the process of continuously deploying a neural network model in an existing service environment. FIG. 6 is a schematic diagram illustrating the process of continuously deploying a neural network model according to one embodiment of the present disclosure in comparison with an embodiment of a conventional service environment. FIG. 7 is a brief and general schematic diagram of an exemplary computing environment in which embodiments of the present disclosure may be implemented. Specific details for implementing the invention
[0035] Various embodiments are now described with reference to the drawings. In this specification, various descriptions are provided to provide an understanding of the present disclosure. However, it is evident that these embodiments can be practiced without such specific descriptions.
[0036] As used herein, terms such as “component,” “module,” “system,” etc. refer to computer-related entities, hardware, firmware, software, combinations of software and hardware, or executions of software. For example, a component may be, but is not limited to, a procedure executed on a processor, a processor, an object, an execution thread, a program, and / or a computer. For example, both an application executed on a computing device and the computing device itself may be a component. One or more components may reside within a processor and / or an execution thread. A component may be localized within a single computer. A component may be distributed among two or more computers. Additionally, these components may be executed from various computer-readable media having various data structures stored therein. Components may communicate through local and / or remote processes, for example, according to signals having one or more data packets (e.g., data from a component interacting with another component in a local system or distributed system, and / or data transmitted through signals to other systems and networks such as the Internet).
[0037] Furthermore, the term "or" is intended to mean an implicit "or" rather than an exclusive "or." That is, unless otherwise specified or evident from the context, "X uses A or B" is intended to mean one of the natural implicit substitutions. In other words, if X uses A; if X uses B; or if X uses both A and B, "X uses A or B" may apply to any of these cases. Additionally, the term "and / or" as used herein should be understood to refer to and include all possible combinations of one or more of the enumerated related items.
[0038] Additionally, the terms “comprising” and / or “comprising” should be understood to mean that such features and / or components are present. However, the terms “comprising” and / or “comprising” should be understood not to exclude the presence or addition of one or more other features, components and / or groups thereof. Furthermore, unless otherwise specified or clearly evident from the context to indicate a singular form, the singular in this specification and claims should generally be interpreted to mean “one or more.”
[0039] And, the term "at least one of A or B" should be interpreted to mean "a case including only A," "a case including only B," or "a combination of A and B."
[0040] Those skilled in the art should recognize that the various exemplary logical blocks, configurations, modules, circuits, means, logics, and algorithmic steps described in connection with the embodiments disclosed herein may be implemented in electronic hardware, computer software, or a combination of both. To clearly exemplify the interchangeability of hardware and software, various exemplary components, blocks, configurations, means, logics, modules, circuits, and steps have been generally described above in terms of their functionality. Whether such functionality is implemented in hardware or software depends on the specific application and design constraints imposed on the overall system. Those skilled in the art may implement the described functionality in various ways for each specific application. However, such decisions regarding implementation should not be construed as going beyond the scope of this disclosure.
[0041] The description of the presented embodiments is provided to enable those skilled in the art to use or practice the present invention. Various modifications to these embodiments will be apparent to those skilled in the art. The general principles defined herein may be applied to other embodiments without departing from the scope of the present disclosure. Thus, the present invention is not limited to the embodiments presented herein. The present invention should be interpreted in the broadest possible scope consistent with the principles and novel features presented herein.
[0042] In the present disclosure, network functions, artificial neural networks, and neural networks may be used interchangeably.
[0044] FIG. 1 is a block diagram of a computing device for continuously deploying a neural network model according to one embodiment of the present disclosure.
[0045] The configuration of the computing device (100) illustrated in FIG. 1 is merely a simplified example. In one embodiment of the present disclosure, the computing device (100) may include other configurations for performing the computing environment of the computing device (100), and only some of the disclosed configurations may constitute the computing device (100).
[0046] The computing device (100) may include a processor (110), memory (130), and a network unit (150).
[0047] The processor (110) may be composed of one or more cores and may include processors for data analysis and deep learning, such as a central processing unit (CPU) of a computing device, a general purpose graphics processing unit (GPGPU), and a tensor processing unit (TPU). The processor (110) may read a computer program stored in memory (130) and perform data processing for machine learning according to one embodiment of the present disclosure. According to one embodiment of the present disclosure, the processor (110) may perform operations for training a neural network model. The processor (110) may perform calculations for training a neural network model, such as processing input data for training in deep learning (DL), extracting features from input data, calculating errors, and updating weights of the neural network model using backpropagation. At least one of the CPU, GPGPU, and TPU of the processor (110) may process the training of the neural network model. For example, a CPU and a GPGPU can work together to process the training of a neural network model and the classification of data using the neural network model. Additionally, in one embodiment of the present disclosure, processors of a plurality of computing devices can be used together to process the training of a neural network model and the classification of data using the neural network model. Furthermore, a computer program executed on a computing device according to one embodiment of the present disclosure may be a CPU, GPGPU, or TPU executable program.
[0048] According to one embodiment of the present disclosure, the memory (130) can store any form of information generated or determined by the processor (110) and any form of information received by the network unit (150).
[0049] According to one embodiment of the present disclosure, the memory (130) may include at least one type of storage medium among a flash memory type, a hard disk type, a multimedia card micro type, a card type memory (e.g., SD or XD memory), RAM (Random Access Memory), SRAM (Static Random Access Memory), ROM (Read-Only Memory), EEPROM (Electrically Erasable Programmable Read-Only Memory), PROM (Programmable Read-Only Memory), magnetic memory, a magnetic disk, and an optical disk. The computing device (100) may operate in conjunction with web storage that performs the storage function of the memory (130) on the internet. The description of the memory described above is merely an example and the present disclosure is not limited thereto.
[0050] A network unit (150) according to one embodiment of the present disclosure can use various wired communication systems such as a public switched telephone network (PSTN), xDSL (x Digital Subscriber Line), RADSL (Rate Adaptive DSL), MDSL (Multi Rate DSL), VDSL (Very High Speed DSL), UADSL (Universal Asymmetric DSL), HDSL (High Bit Rate DSL), and a local area network (LAN).
[0051] Additionally, the network unit (150) presented in this disclosure may use various wireless communication systems such as CDMA (Code Division Multi Access), TDMA (Time Division Multi Access), FDMA (Frequency Division Multi Access), OFDMA (Orthogonal Frequency Division Multi Access), SC-FDMA (Single Carrier-FDMA), and other systems.
[0052] In the present disclosure, the network unit (150) can be configured regardless of the mode of communication, such as wired and wireless, and can be configured as various communication networks, such as a Personal Area Network (PAN) or a Wide Area Network (WAN). In addition, the network may be a known World Wide Web (WWW) and may utilize wireless transmission technology used for short-range communication, such as Infrared Data Association (IrDA) or Bluetooth. The technologies described in the present disclosure may also be used in other networks mentioned above.
[0054] FIG. 2 is a schematic diagram showing a network function according to one embodiment of the present disclosure.
[0055] Throughout this specification, computational model, neural network, network function, and neural network may be used interchangeably. A neural network may consist of a set of interconnected computational units, which may generally be referred to as nodes. These nodes may also be referred to as neurons. A neural network is composed of at least one node. The nodes (or neurons) constituting the neural networks may be interconnected by one or more links.
[0056] In a neural network, one or more nodes connected via links can form relative input and output node relationships. The concepts of input and output nodes are relative; any node in an output node relationship with respect to one node may be in an input node relationship with respect to another node, and vice versa. As described above, the input node versus output node relationship can be generated based on links. One or more output nodes may be connected to a single input node via links, and vice versa.
[0057] In a relationship between an input node and an output node connected through a single link, the value of the output node's data can be determined based on the data input to the input node. Here, the link interconnecting the input node and the output node may have a weight. The weight can be variable and can be varied by the user or an algorithm to enable the neural network to perform the desired function. For example, if one or more input nodes are interconnected to a single output node by respective links, the output node's value can be determined based on the values input to the input nodes connected to the output node and the weights set on the links corresponding to each input node.
[0058] As described above, a neural network consists of one or more nodes interconnected through one or more links, forming input-output node relationships within the network. The characteristics of a neural network can be determined by the number of nodes and links within the network, the relationships between the nodes and links, and the weight values assigned to each link. For example, if two neural networks exist with the same number of nodes and links but different weight values for the links, the two neural networks may be recognized as different from each other.
[0059] A neural network can be composed of a set of one or more nodes. A subset of nodes constituting a neural network can form a layer. Some of the nodes constituting a neural network can form a layer based on their distances from an initial input node. For example, a set of nodes with a distance of n from an initial input node can form n layers. The distance from the initial input node can be defined by the minimum number of links that must be traversed to reach that node from the initial input node. However, this definition of a layer is arbitrary for illustrative purposes, and the degree of a layer within a neural network can be defined in a way different from that described above. For example, a layer of nodes may be defined by its distance from a final output node.
[0060] Initial input nodes may refer to one or more nodes within a neural network to which data is directly input without passing through links in their relationships with other nodes. Alternatively, in terms of link-based relationships between nodes within the neural network, they may refer to nodes that do not have other input nodes connected by links. Similarly, final output nodes may refer to one or more nodes within a neural network that do not have output nodes in their relationships with other nodes. Furthermore, hidden nodes may refer to nodes constituting the neural network that are neither initial input nodes nor final output nodes.
[0061] A neural network according to one embodiment of the present disclosure may have the number of nodes in the input layer equal to the number of nodes in the output layer, and may be a neural network in which the number of nodes decreases and then increases again as it progresses from the input layer to the hidden layer. Additionally, a neural network according to another embodiment of the present disclosure may have the number of nodes in the input layer less than the number of nodes in the output layer, and may be a neural network in which the number of nodes decreases as it progresses from the input layer to the hidden layer. Additionally, a neural network according to yet another embodiment of the present disclosure may have the number of nodes in the input layer greater than the number of nodes in the output layer, and may be a neural network in which the number of nodes increases as it progresses from the input layer to the hidden layer. A neural network according to yet another embodiment of the present disclosure may be a neural network in which the above-described neural networks are combined.
[0062] A deep neural network (DNN) may refer to a neural network that includes multiple hidden layers in addition to input and output layers. Using a deep neural network allows for the identification of the latent structures of data. That is, it is possible to identify the latent structures of photos, text, videos, voice, and music (e.g., what objects are present in a photo, what the content and emotions of a text are, what the content and emotions of a voice are, etc.). Deep neural networks may include convolutional neural networks (CNN), recurrent neural networks (RNN), autoencoders, Generative Adversarial Networks (GAN), restricted Boltzmann machines (RBM), deep belief networks (DBN), Q networks, U networks, Siamese networks, Generative Adversarial Networks (GAN), etc. The description of deep neural networks described above is merely illustrative and the present disclosure is not limited thereto.
[0063] In one embodiment of the present disclosure, the network function may include an autoencoder. The autoencoder may be a type of artificial neural network for outputting output data similar to the input data. The autoencoder may include at least one hidden layer, and an odd number of hidden layers may be placed between the input and output layers. The number of nodes in each layer may be reduced from the number of nodes in the input layer to an intermediate layer called a bottleneck layer (encoding), and then expanded symmetrically from the bottleneck layer to the output layer (symmetrically with respect to the input layer). The autoencoder may perform non-linear dimensionality reduction. The number of input and output layers may correspond to the dimension after preprocessing of the input data. In the autoencoder structure, the number of nodes in the hidden layer included in the encoder may have a structure in which the number of nodes decreases as it moves away from the input layer. If the number of nodes in the bottleneck layer (the layer with the fewest nodes located between the encoder and decoder) is too small, a sufficient amount of information may not be transmitted, so it may be maintained at a certain number or more (e.g., more than half of the input layer).
[0064] Neural networks can be trained in at least one of supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning. The training of a neural network may be the process of applying knowledge to the neural network to perform a specific action.
[0065] Neural networks can be trained to minimize the error in their output. The training process involves repeatedly inputting training data into the network, calculating the error between the network's output and the target for the training data, and updating the weights of each node by backpropagating the error from the output layer to the input layer in a direction that reduces the error. In supervised learning, training data is used where the correct answer is labeled for each data point (i.e., labeled training data), whereas in unsupervised learning, the correct answer may not be labeled for each training data point. For instance, in the case of supervised learning for data classification, the training data may consist of data where each training point is labeled with a category. The labeled training data is input into the neural network, and the error can be calculated by comparing the network's output (category) with the labels of the training data. As another example, in the case of unsupervised learning for data classification, the error can be calculated by comparing the input training data with the neural network's output. The calculated error is backpropagated in the neural network (i.e., from the output layer to the input layer), and through backpropagation, the connection weights of each node in each layer of the neural network can be updated. The amount of change in the connection weights of each node being updated can be determined by the learning rate. The neural network's calculation of the input data and the backpropagation of the error can constitute a learning cycle (epoch). The learning rate can be applied differently depending on the number of iterations of the neural network's learning cycle. For example, a high learning rate can be used in the early stages of training to quickly achieve a certain level of performance and increase efficiency, while a low learning rate can be used in the later stages to improve accuracy.
[0066] In the training of neural networks, the training data is generally a subset of the real-world data (i.e., the data intended to be processed by the trained neural network). Consequently, a training cycle may exist where errors decrease on the training data but increase on the real-world data. Overfitting is a phenomenon where the network learns excessively on the training data, leading to increased errors on the real-world data. For example, a neural network trained on yellow cats might fail to recognize cats when seeing anything other than yellow, which can be considered a form of overfitting. Overfitting can act as a cause for increased errors in machine learning algorithms. Various optimization methods can be used to prevent this overfitting. To prevent overfitting, methods such as increasing the training data, regularization, dropout (which disables some nodes in the network during training), and the use of batch normalization layers can be applied.
[0068] FIG. 3 is a flowchart illustrating a method for continuously deploying a neural network model according to one embodiment of the present disclosure.
[0069] Referring to FIG. 3, the computing device (100) may directly obtain "information for continuously distributing a neural network model" or receive it from an external system. The external system may be a server, a database, etc., that stores and manages information for continuously distributing a neural network model. The computing device (100) may use the information obtained directly or received from the external system as "input data for continuously distributing a neural network model."
[0070] According to one embodiment of the present disclosure, a computing device (100) may acquire a container group including a first container, a second container, and a sub-container to deploy a neural network model (S110). At this time, the deployment of the neural network model may refer to continuous deployment utilized in MLOps platforms such as MLflow, Kubeflow, and SageMaker Pipelines, and CI / CD tools such as Jenkins, GitLab CI / CD, and GitHub Actions may be utilized in the process of deploying the neural network model, but are not limited thereto. Additionally, in one embodiment of the present disclosure, the container may refer to "a package containing an application and all elements (libraries, dependencies, configuration files, etc.) necessary to run the application" utilized in server environments such as Kubernetes, Docker Swarm, and AWS ECS (Elastic Container Service). Additionally, the container group may refer to a group of containers, and may include, for example, a Pod in a Kubernetes environment, but is not limited thereto and various embodiments may be utilized. Meanwhile, the first container included in the container group may include at least one of a command or a script for controlling the second container, and may include, for example, a Hook init container. Furthermore, the sub-container included in the container group may be synchronized with a source code repository to update source code, and the source code repository may refer to a remote source code repository (SVN, Github Repository, etc.).Additionally, the second container included in the container group may include a main container in which the neural network model application can be executed, and the second container may be controlled based on at least one of the source code included in the sub-container and the command or script included in the first container.
[0071] According to one embodiment of the present disclosure, a computing device (100) may obtain a first storage containing at least one of a command or a script for controlling the second container based on the first container. In this case, the first storage may refer to a storage space accessible to at least one of the first container, the second container, or the sub-container. For example, the computing device (100) may execute the first container at the time when the first Pod, which is an example of the container group, is created to generate a hook script in the first storage that can control the second container. In this case, the hook script may be exemplarily included in the command contained in the first container, and the computing device (100) may control the second container, which is the main container, and the neural network model application running in the second container through IPC (Inter Process Communication) using the hook script. Alternatively, the computing device (100) may obtain a second repository containing source code for adjusting the second container based on the sub-container. For example, the computing device (100) may store source code obtained through a remote source code repository (SVN, Github Repository, etc.) synchronized with the sub-container in the second repository. Meanwhile, the computing device (100) may identify a change in at least one of the first container, the second container, or the sub-container included in the container group, and a description related thereto will be provided below.
[0072] According to one embodiment of the present disclosure, a computing device (100) can identify a change in at least one of a first container, a second container, or a sub-container included in a container group obtained through step S110 (S120). At this time, the identified change may include, but is not limited to, a change in a command or script included in the first container, a change in source code of a remote source code repository (SVN, Github Repository, etc.) synchronized with the sub-container. For example, the computing device (100) can identify that a change has occurred in the sub-container synchronized with the remote source code repository when a change occurs in the remote source code repository (SVN, Github Repository, etc.). Meanwhile, in order to continuously deploy a neural network model serviced on an artificial intelligence platform, updates to the neural network model application must be reflected in real time. Accordingly, the computing device (100) can identify a change in at least one of the first container, the second container, or the sub-container included in the container group in which the neural network model application can be executed, and can update at least one of the first container, the second container, or the sub-container based on the identified change, and a specific description thereof is provided below through FIG. 4.
[0073] According to one embodiment of the present disclosure, a computing device (100) may update at least one of the first container, the second container, or the sub-container based on a change identified through step S120 (S130). At this time, the computing device (100) may update a sub-container included in the container group. For example, if a change is identified in a source code repository synchronized with the sub-container, the computing device (100) may update the source code included in the second repository based on the change and the sub-container. As a specific example, the computing device (100) may determine that a change has been identified in the sub-container if the source code in the source code repository synchronized with the sub-container is updated. Subsequently, the computing device (100) may update the source code included in the second repository based on the updated source code synchronized with the sub-container. At this time, the computing device (100) reflects the update to the container group at the Pod level of Kubernetes, rather than the code of the application itself, through an embodiment of the present disclosure, so that the application developer can focus on the core task of code development without being constrained by the Kubernetes operating environment, thereby improving work efficiency and increasing development convenience. Meanwhile, the computing device (100) can adjust the neural network model application based on the container group in which at least one of the first container, the second container, or the sub-container has been updated, and a specific description related thereto will be described later through FIGS. 4 and FIGS. 6.
[0074] According to one embodiment of the present disclosure, a computing device (100) can coordinate a neural network model application based on a container group in which at least one of the first container, the second container, or the sub-container is updated through step S130 (S140). At this time, the computing device (100) can execute a process of controlling the second container based on the first container when the source code included in the second container is updated. For example, when the source code included in the second container is updated, the computing device (100) can execute a hook script of the first container and execute a process of controlling the second container, which is the main container, and the neural network model application running in the second container through IPC (Inter Process Communication) called through the hook script. Subsequently, the computing device (100) can coordinate the neural network model application included in the second container based on the updated sub-container and the first container. Specifically, the computing device (100) obtains the last updated source code included in the updated sub-container, obtains at least one of a command or script for controlling the second container based on the first container, and can adjust the neural network model application included in the second container based on at least one of the command or script for controlling the second container and the updated source code. For example, the computing device (100) can re-execute the neural network model application included in the second container based on at least one of the command or script for controlling the second container and the updated source code.Through this, the computing device (100) can minimize service downtime and reduce productivity by not creating a new container group even when the container group is updated, and by reflecting the latest source code in the neural network model application running in the second container and then re-executing only the neural network model application. In addition, since the computing device (100) does not create a new container group even when the container group is updated, the neural network model application can be continuously distributed without service interruption during the update of the container group or mixing with the previous version, and it can be guaranteed that only one version of the service operates even in situations where the service is redeployed. In this regard, a detailed description of the process by which the computing device (100) adjusts the neural network model application based on a container group in which at least one of the first container, the second container, or the sub-container is updated will be described later through FIGS. 4 to 6.
[0076] FIG. 4 is a schematic diagram illustrating the process of continuously deploying a neural network model according to one embodiment of the present disclosure.
[0077] Referring to FIG. 4, a computing device (100) may obtain a container group (10) including a first container (11), a second container (13), and a sub-container (13) to deploy a neural network model. At this time, the deployment of the neural network model may refer to continuous deployment utilized in MLOps platforms such as MLflow, Kubeflow, and SageMaker Pipelines, and CI / CD tools such as Jenkins, GitLab CI / CD, and GitHub Actions may be utilized in the deployment process of the neural network model, but are not limited thereto. In addition, in one embodiment of the present disclosure, the containers (11 to 13) may refer to "packaging of an application and all elements (libraries, dependencies, configuration files, etc.) necessary to run the application" used in server environments such as Kubernetes, Docker Swarm, AWS ECS (Elastic Container Service), etc., and may refer to a basic unit for deploying and managing neural network model applications. Additionally, the container group may refer to a group of the containers, and may include, for example, a Pod in a Kubernetes environment, but is not limited thereto and various embodiments may be utilized. Meanwhile, the first container (11) included in the container group (10) may include at least one of a command or script for controlling the second container (13), and may include, for example, a Hook init container.Additionally, a sub-container (12) included in the container group (10) may be synchronized with a source code repository (20) to update source code, and the source code repository (20) may refer to a remote source code repository (SVN, Github Repository, etc.). Additionally, a second container (13) included in the container group (10) may include a main container in which the neural network model application can be executed, and the second container (13) may be controlled based on at least one of the source code included in the sub-container (12) and the command or script included in the first container (11).
[0078] According to process ① of FIG. 4, the computing device (100) may obtain a first storage (11-1) containing at least one of a command or script for controlling the second container (13) based on the first container (11). At this time, the first storage (11-1) may mean a storage space accessible to at least one of the first container (11), the second container (13), or the sub-container (12). For example, the computing device (100) may execute the first container (11) at the time when the first Pod, which is an example of the container group (10), is created to generate a hook script in the first storage (11-1) that can control the second container (13) and set IPC preconditions. At this time, the above hook script may be exemplarily included in the commands included in the first container, and the above IPC (Inter-Process Communication) may refer to a mechanism in which multiple processes running in a computer operating system environment exchange data or communicate with each other. Subsequently, the computing device (100) can control the second container (13), which is the main container, and the neural network model application running in the second container (13) through the hook script via IPC (Inter Process Communication), and a related explanation will be described below.
[0079] Additionally, referring to process ② of FIG. 4, the computing device (100) may obtain a second repository (12-1) containing source code for adjusting the second container (13) based on the sub-container (12). For example, the computing device (100) may store source code obtained through a remote source code repository (SVN, Github Repository, etc.) (20) synchronized with the sub-container (12) in the second repository (12-1). Additionally, the computing device (100) may identify a change in at least one of the first container (11), the second container (13), or the sub-container (12) included in the container group (10). At this time, the identified changes may include, but are not limited to, changes to commands or scripts included in the first container (11), changes to source code in a remote source code repository (SVN, Github Repository, etc.) (20) synchronized with the sub-container (12). For example, the computing device (100) may identify that a change has occurred in the sub-container (12) synchronized with the remote source code repository when changes occur in the remote source code repository (SVN, Github Repository, etc.) (20). In this regard, in order to continuously deploy a neural network model serviced on an artificial intelligence platform, updates to the neural network model application must be reflected in real time. Accordingly, the computing device (100) may update at least one of the first container (11), the second container (13), or the sub-container (12) based on the identified changes. At this time, the computing device (100) may update the sub-container included in the container group.For example, the computing device (100) may determine that a change has been identified in the sub-container (12) when the source code of the source code repository (20) synchronized with the sub-container (12) is updated. Subsequently, as in the example of process ② of FIG. 4, when a change is identified in the source code repository (20) synchronized with the sub-container (12), the computing device (100) may update the source code contained in the second repository (12-1) based on the change and the sub-container (12). In other words, the computing device (100) may update the source code contained in the second repository (12-1) based on the updated source code synchronized with the sub-container (12). At this time, the computing device (100) reflects the update to the container group (10) at the Pod level of Kubernetes, rather than the code of the application itself, through an embodiment of the present disclosure, so that the application developer can focus on the core task of code development without being constrained by the Kubernetes operating environment, thereby improving work efficiency and increasing development convenience. Meanwhile, the computing device (100) can adjust the neural network model application based on the container group in which at least one of the first container (11), the second container (13), or the sub-container (12) has been updated, and a specific description related thereto will be described below.
[0080] According to one embodiment of the present disclosure, a computing device (100) can coordinate a neural network model application based on a container group (10) in which at least one of the first container (11), the second container (13), or the sub-container (12) is updated. In this case, the computing device (100) can execute a process of controlling the second container (13) based on the first container (11-1) when the source code contained in the second container (12-1) is updated.
[0081] Referring to process ③ of FIG. 4, the computing device (100) can execute a hook script of the first storage (11-1) when the source code contained in the second storage (12-1) is updated, and can execute a process of controlling the second container (13), which is the main container, and the neural network model application running in the second container (13) through IPC (Inter Process Communication) called through the hook script. Afterwards, the computing device (100) can adjust the neural network model application contained in the second container (13) based on the updated sub-container (12) and the first container (11).
[0082] Specifically, referring to process ④ of FIG. 4, the computing device (100) obtains the last updated source code included in the second storage (12-1) based on the updated sub-container (12), obtains at least one of a command or script for controlling the second container (13) from the first storage (11-1), and can adjust the neural network model application included in the second container (13) based on at least one of the command or script for controlling the second container (13) and the updated source code. For example, the computing device (100) can rerun the neural network model application included in the second container (13) based on at least one of the command or script for controlling the second container (13) and the updated source code. Through this, the computing device (100) does not create a new container group even when the container group (10) is updated, and minimizes service downtime and reduces productivity by reflecting the latest source code in the neural network model application running in the second container (13) and then re-running only the neural network model application. In addition, since the computing device (100) does not create a new container group even when the container group (10) is updated, the neural network model application can be continuously distributed without service interruption during the update of the container group (10) or mixing with the previous version, and it can be guaranteed that only one version of the service operates even when the service is redeployed.In this regard, a detailed description of the process by which a computing device (100) can continuously distribute a neural network model application without interruption of service and mixing with previous versions during the update of the container group by continuously distributing the neural network model through an embodiment of the present disclosure, compared with an embodiment of an existing service environment, is described below through FIGS. 5 and 6.
[0084] FIG. 5 is a schematic diagram illustrating the process of continuously deploying a neural network model in an existing service environment, and FIG. 6 is a schematic diagram illustrating the process of continuously deploying a neural network model according to an embodiment of the present disclosure in comparison with an embodiment of an existing service environment.
[0085] First, referring to FIG. 5 regarding an embodiment of an existing Kubernetes service environment, in the case of the existing rolling update method, the computing device (100) must create a new pod containing the contents of the container being updated, and the update can proceed by deleting the existing containers one by one and simultaneously updating the pods one by one within the new pod. For example, when an update occurs in the first main container (30), the computing device (100) can create a new second main container (40) to reflect the update details. Then, referring to process ② of FIG. 5, the computing device (100) can perform deployment and re-execution of the neural network model application after migrating all neural network model applications and updated information contained in the first main container (30) to the second main container (40). At this time, the computing device (100) can maintain two main containers as in process ① of FIG. 5 until all update details and information are moved from the first main container (30) to the second main container (40). However, in this case, as in process ③ of FIG. 5, when the computing device (100) performs the distribution of a neural network model application, the second main container (40) acquires all update details and information, and since the two main containers coexist temporarily until it is re-executed, the application traffic of the first main container (30) before the update and the application traffic of the second main container (40) during the update process may be mixed (41), and accordingly, the service may operate in an unintended manner and there is a problem of increased resource consumption.
[0086] On the other hand, referring to FIG. 6 according to one embodiment of the present disclosure, when an update occurs in the source code repository (20), the computing device (100) can synchronize the updated source code to each of the sub-container a (12-a), sub-container b (12-b), or sub-container c (12-c), as in process ① of FIG. 6. In addition, based on the source code updated in each of the sub-containers (12-a to 12-c), the computing device (100) can reflect the update details for each module running in the main container, the 2' container (13'). Therefore, through the above-described embodiment of the present disclosure, even if an update occurs during the deployment process of a neural network model application, only one container group always exists and only one application traffic is generated, so resource consumption can be relatively reduced. Furthermore, the computing device (100) can reflect the update details of the source code to the existing container group in real time without restarting the container group, the Pod, itself during the redeployment process of the neural network model service, thereby minimizing service downtime and minimizing productivity reduction.
[0088] According to one embodiment of the present disclosure, a computer-readable medium storing a data structure is disclosed. A data structure may refer to the organization, management, and storage of data that enables efficient access and modification of the data. A data structure may refer to the organization of data for solving specific problems (e.g., data retrieval, data storage, data modification in the shortest possible time). A data structure may be defined as physical or logical relationships between data elements designed to support specific data processing functions. Logical relationships between data elements may include connection relationships between user-defined data elements. Physical relationships between data elements may include actual relationships between data elements physically stored in a computer-readable storage medium (e.g., a permanent storage device). Specifically, a data structure may include a set of data, relationships between data, and functions or instructions applicable to the data. Through an effectively designed data structure, a computing device can perform operations while using minimal resources of the computing device. Specifically, through an effectively designed data structure, a computing device can increase the efficiency of operations, reading, insertion, deletion, comparison, exchange, and retrieval.
[0089] Data structures can be classified into linear and non-linear data structures based on their form. A linear data structure is one where only one piece of data is connected to the next. Linear data structures can include lists, stacks, queues, and deques. A list can refer to a set of data that maintains an internal order. Lists can include linked lists. A linked list is a data structure where data is connected in a line, with each piece of data possessing a pointer. In a linked list, the pointer can contain information regarding the connection to the next or previous data. Depending on its form, a linked list can be represented as a singly linked list, a doubly linked list, or a circular linked list. A stack is a data arrangement structure that allows for restricted access to data. A stack can be a linear data structure where data can be processed (e.g., insertion or deletion) only at one end. Data stored in a stack can be a Last-In, First-Out (LIFO) data structure, meaning that the later an item is entered, the sooner it is retrieved. A queue is a data sequence structure that allows for limited access to data; unlike a stack, it can be a FIFO (First in First Out) data structure where data stored later is retrieved later. A deque is a data structure that can process data at both ends.
[0090] Non-linear data structures can be structures where multiple data are connected after a single piece of data. Non-linear data structures may include graph data structures. A graph data structure can be defined by vertices and edges, and an edge may include a line connecting two different vertices. Graph data structures may include tree data structures. A tree data structure may be a data structure where there is only one path connecting two different vertices among the multiple vertices included in the tree. In other words, it may be a data structure that does not form a loop in a graph data structure.
[0091] Throughout this specification, computational model, neural network, network function, and neural network may be used interchangeably. Hereinafter, the term neural network will be used consistently. A data structure may include a neural network. Furthermore, a data structure including a neural network may be stored on a computer-readable medium. A data structure including a neural network may also include data preprocessed for processing by the neural network, data input to the neural network, weights of the neural network, hyperparameters of the neural network, data obtained from the neural network, activation functions associated with each node or layer of the neural network, loss functions for learning the neural network, etc. A data structure including a neural network may include any of the components disclosed above. That is, a data structure including a neural network may be configured to include all or any combination thereof, such as data preprocessed for processing by the neural network, data input to the neural network, weights of the neural network, hyperparameters of the neural network, data obtained from the neural network, activation functions associated with each node or layer of the neural network, and loss functions for learning the neural network. In addition to the configurations described above, a data structure including a neural network may include any other information that determines the characteristics of the neural network. Furthermore, the data structure may include any form of data used or generated during the computational process of the neural network, and is not limited to the foregoing. A computer-readable medium may include a computer-readable recording medium and / or a computer-readable transmission medium. A neural network may be composed of a set of interconnected computational units that may generally be referred to as nodes. These nodes may also be referred to as neurons. A neural network is composed of at least one node.
[0092] A data structure may include data input to a neural network. A data structure including data input to a neural network may be stored on a computer-readable medium. Data input to a neural network may include training data input during the neural network learning process and / or input data input to a neural network after training is complete. Data input to a neural network may include pre-processed data and / or data subject to pre-processing. Pre-processing may include a data processing process for inputting data into a neural network. Accordingly, a data structure may include data subject to pre-processing and data generated by pre-processing. The aforementioned data structure is merely an example, and the present disclosure is not limited thereto.
[0093] The data structure may include weights of the neural network. (In this specification, weights and parameters may be used interchangeably.) The data structure including the weights of the neural network may be stored on a computer-readable medium. The neural network may include multiple weights. The weights may be variable and may be varied by a user or an algorithm to enable the neural network to perform a desired function. For example, if one or more input nodes are interconnected to a single output node by respective links, the output node may determine the data value output from the output node based on values input to the input nodes connected to the output node and weights set on the links corresponding to each input node. The aforementioned data structure is merely an example and the present disclosure is not limited thereto.
[0094] As an example rather than a limitation, weights may include weights that vary during the neural network learning process and / or weights for which neural network learning is completed. Weights that vary during the neural network learning process may include weights at the start of the learning cycle and / or weights that vary during the learning cycle. Weights for which neural network learning is completed may include weights for which the learning cycle is completed. Accordingly, a data structure containing the weights of a neural network may include a data structure containing weights that vary during the neural network learning process and / or weights for which neural network learning is completed. Therefore, the weights and / or combinations of each weight described above are included in the data structure containing the weights of a neural network. The aforementioned data structure is merely an example and the present disclosure is not limited thereto.
[0095] Data structures containing the weights of a neural network may be stored on a computer-readable storage medium (e.g., memory, hard disk) after undergoing a serialization process. Serialization may be a process of converting a data structure into a form that can be stored on the same or different computing devices and later reconstructed for use. A computing device may serialize the data structure to transmit and receive data over a network. A serialized data structure containing the weights of a neural network may be reconstructed on the same or different computing devices through deserialization. Data structures containing the weights of a neural network are not limited to serialization. Furthermore, data structures containing the weights of a neural network may include data structures designed to increase computational efficiency while minimizing the use of computing device resources (e.g., B-Tree, Trie, m-way search tree, AVL tree, Red-Black Tree in non-linear data structures). The foregoing is merely an example and the present disclosure is not limited thereto.
[0096] The data structure may include hyperparameters of the neural network. The data structure including the neural network hyperparameters may be stored on a computer-readable medium. The hyperparameters may be variables that are varied by the user. The hyperparameters may include, for example, a learning rate, a cost function, the number of learning cycle iterations, weight initialization (e.g., setting the range of weight values subject to weight initialization), and the number of hidden units (e.g., the number of hidden layers, the number of nodes in the hidden layers). The aforementioned data structure is merely an example, and the present disclosure is not limited thereto.
[0098] FIG. 7 is a brief and general schematic diagram of an exemplary computing environment in which embodiments of the present disclosure may be implemented.
[0099] Although the present disclosure has been described as generally being implementable by a computing device, a person skilled in the art will be well aware that the present disclosure may be implemented in combination with computer-executable instructions and / or other program modules that can be executed on one or more computers and / or as a combination of hardware and software.
[0100] Generally, a program module includes routines, programs, components, data structures, etc., that perform a specific task or implement a specific abstract data type. Furthermore, a person skilled in the art will be well aware that the method of the present disclosure can be implemented in other computer system configurations, including single-processor or multi-processor computer systems, minicomputers, mainframe computers, as well as personal computers, handheld computing devices, microprocessor-based or programmable consumer electronics, etc. (each of which may be connected to and operated with one or more associated devices).
[0101] The embodiments described in this disclosure may also be implemented in a distributed computing environment in which tasks are performed by remote processing devices connected via a communication network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.
[0102] Computers typically include various computer-readable media. Any medium accessible by a computer may be a computer-readable medium, and such computer-readable media include volatile and non-volatile media, transitory and non-transitory media, and removable and non-removable media. By example, but not limiting, computer-readable media may include computer-readable storage media and computer-readable transmission media. Computer-readable storage media include volatile and non-volatile media, transitory and non-transitory media, and removable and non-removable media implemented by any method or technique for storing information such as computer-readable instructions, data structures, program modules, or other data. Computer-readable storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technologies, CD-ROM, DVD (digital video disk) or other optical disk storage devices, magnetic cassettes, magnetic tapes, magnetic disk storage devices or other magnetic storage devices, or any other media that can be accessed by a computer and used to store desired information.
[0103] Computer-readable transmission media typically include all information transmission media that implement computer-readable instructions, data structures, program modules, or other data, etc., on a modulated data signal, such as a carrier wave or other transport mechanism. The term modulated data signal means a signal in which one or more of the characteristics of the signal are set or modified to encode information within the signal. By example, not limiting, computer-readable transmission media include wired media, such as wired networks or direct-wired connections, and wireless media, such as acoustic, RF, infrared, and other wireless media. Any combination of the media described above is also considered to be within the scope of computer-readable transmission media.
[0104] An exemplary environment (1100) for implementing various aspects of the present disclosure, including a computer (1102), is shown, wherein the computer (1102) includes a processing unit (1104), system memory (1106), and a system bus (1108). The system bus (1108) connects system components, including system memory (1106) (but not limited thereto), to the processing unit (1104). The processing unit (1104) may be any processor among various commercial processors. Dual processor and other multiprocessor architectures may also be used as the processing unit (1104).
[0105] The system bus (1108) may be any of several types of bus structures that can be additionally interconnected to a local bus using any of the memory bus, peripheral bus, and various commercial bus architectures. System memory (1106) includes read-only memory (ROM) (1110) and random access memory (RAM) (1112). The basic input / output system (BIOS) is stored in non-volatile memory (1110), such as ROM, EPROM, EEPROM, etc., and this BIOS includes basic routines that help transfer information between components within the computer (1102) at times such as during startup. The RAM (1112) may also include high-speed RAM, such as static RAM, for caching data.
[0106] The computer (1102) also includes an internal hard disk drive (HDD) (1114) (e.g., EIDE, SATA)—this internal hard disk drive (1114) may also be configured for external use within a suitable chassis (not shown)—a magnetic floppy disk drive (FDD) (1116) (e.g., for reading from or writing to a removable diskette (1118)), and an optical disk drive (1120) (e.g., for reading from a CD-ROM disk (1122) or reading from or writing to other high-capacity optical media such as a DVD). The hard disk drive (1114), the magnetic disk drive (1116), and the optical disk drive (1120) may each be connected to the system bus (1108) by a hard disk drive interface (1124), a magnetic disk drive interface (1126), and an optical drive interface (1128). The interface (1124) for implementing an external drive includes at least one or both of USB (Universal Serial Bus) and IEEE 1394 interface technologies.
[0107] These drives and associated computer-readable media provide non-volatile storage of data, data structures, computer-executable instructions, etc. In the case of a computer (1102), the drives and media correspond to storing any data in a suitable digital format. Although the description of computer-readable media above refers to HDDs, removable magnetic disks, and removable optical media such as CDs or DVDs, a person skilled in the art will know that other types of computer-readable media, such as zip drives, magnetic cassettes, flash memory cards, cartridges, etc., may also be used in exemplary operating environments and that any of these media may contain computer-executable instructions for performing the methods of the present disclosure.
[0108] A number of program modules, including an operating system (1130), one or more application programs (1132), other program modules (1134), and program data (1136), may be stored in the drive and RAM (1112). All or part of the operating system, application, module and / or data may also be cached in RAM (1112). It will be well known that the present disclosure may be implemented in various commercially available operating systems or combinations of operating systems.
[0109] The user can input commands and information into the computer (1102) through one or more wired / wireless input devices, such as a pointing device like a keyboard (1138) and a mouse (1140). Other input devices (not shown) may include a microphone, an IR remote control, a joystick, a game pad, a stylus pen, a touch screen, etc. These and other input devices are often connected to the processing unit (1104) via an input device interface (1142) connected to the system bus (1108), but may also be connected via other interfaces such as a parallel port, an IEEE 1394 serial port, a game port, a USB port, an IR interface, etc.
[0110] A monitor (1144) or other type of display device is also connected to the system bus (1108) via an interface such as a video adapter (1146). In addition to the monitor (1144), the computer generally includes other peripheral output devices (not shown), such as speakers, a printer, and so on.
[0111] The computer (1102) may operate in a networked environment using a logical connection to one or more remote computers, such as remote computer(s) (1148), via wired and / or wireless communication. The remote computer(s) (1148) may be a workstation, a computing device computer, a router, a personal computer, a portable computer, a microprocessor-based entertainment device, a peer device, or other conventional network node, and generally include many or all of the components described for the computer (1102), but for brevity, only the memory storage device (1150) is illustrated. The illustrated logical connection includes a wired / wireless connection to a local area network (LAN) (1152) and / or a larger network, e.g., a wide area network (WAN) (1154). Such LAN and WAN networking environments are common in offices and companies and facilitate enterprise-wide computer networks, such as intranets, all of which can be connected to a global computer network, e.g., the Internet.
[0112] When used in a LAN networking environment, the computer (1102) is connected to a local network (1152) via a wired and / or wireless communication network interface or adapter (1156). The adapter (1156) may facilitate wired or wireless communication to the LAN (1152), and the LAN (1152) may also include a wireless access point installed therein to communicate with the wireless adapter (1156). When used in a WAN networking environment, the computer (1102) may include a modem (1158), be connected to a communication computing device on the WAN (1154), or have other means to establish communication through the WAN (1154), such as through the Internet. The modem (1158), which may be an internal or external and a wired or wireless device, is connected to the system bus (1108) via a serial port interface (1142). In a networked environment, the program modules described for the computer (1102) or parts thereof may be stored in a remote memory / storage device (1150). It will be well known that the illustrated network connection is exemplary and that other means of establishing a communication link between computers may be used.
[0113] The computer (1102) operates to communicate with any wireless device or object that is deployed and operated via wireless communication, for example, a printer, scanner, desktop and / or portable computer, PDA (portable data assistant), communication satellite, any equipment or place associated with a wireless detectable tag, and a telephone. This includes at least Wi-Fi and Bluetooth wireless technologies. Accordingly, the communication may be a predefined structure as in a conventional network, or simply ad hoc communication between at least two devices.
[0114] Wi-Fi (Wireless Fidelity) enables connectivity to the Internet and other sources without wires. Wi-Fi is a wireless technology, similar to a cell phone, that allows devices, such as computers, to transmit and receive data indoors and outdoors—that is, anywhere within the coverage area of a base station. Wi-Fi networks use a wireless technology called IEEE 802.11 (a, b, g, etc.) to provide secure, reliable, and high-speed wireless connections. Wi-Fi can be used to connect computers to each other, to the Internet, and to wired networks (using IEEE 802.3 or Ethernet). Wi-Fi networks can operate in unlicensed 2.4 and 5 GHz wireless bands, for example, at data rates of 11 Mbps (802.11a) or 54 Mbps (802.11b), or in products that include both bands (dual band).
[0115] Those skilled in the art of the present disclosure will understand that information and signals may be represented using any various different technologies and techniques. For example, data, instructions, commands, information, signals, bits, symbols, and chips that may be referenced in the above description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof.
[0116] Those skilled in the art will understand that the various exemplary logic blocks, modules, processors, means, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be implemented by electronic hardware, various forms of programs or design code (referred to herein as software for convenience), or a combination of all such. To clearly illustrate this interoperability between hardware and software, various exemplary components, blocks, modules, circuits, and steps have been generally described above in relation to their functions. Whether such functions are implemented as hardware or software depends on the design constraints imposed on the specific application and the overall system. Those skilled in the art may implement the functions described in various ways for each specific application, but such implementation decisions should not be interpreted as being outside the scope of this disclosure.
[0117] The various embodiments presented herein may be implemented as methods, devices, or articles manufactured using standard programming and / or engineering techniques. The term "article manufactured" includes a computer program, a carrier, or a medium accessible from any computer-readable storage device. For example, computer-readable storage media include, but are not limited to, magnetic storage devices (e.g., hard disks, floppy disks, magnetic strips, etc.), optical discs (e.g., CDs, DVDs, etc.), smart cards, and flash memory devices (e.g., EEPROMs, cards, sticks, key drives, etc.). Additionally, the various storage media presented herein include one or more devices and / or other machine-readable media for storing information.
[0118] It should be understood that the specific order or hierarchy of steps in the presented processes is an example of exemplary approaches. It should be understood that the specific order or hierarchy of steps in the processes may be rearranged within the scope of this disclosure based on design priorities. The appended method claims provide elements of various steps in a sample order, but do not imply being limited to the specific order or hierarchy presented.
[0119] Description of the presented embodiments is provided so that a person skilled in the art may use or practice the present disclosure. Various modifications to these embodiments will be apparent to a person skilled in the art, and the general principles defined herein may be applied to other embodiments without departing from the scope of the present disclosure. Thus, the present disclosure is not limited to the embodiments presented herein, but should be interpreted in the broadest possible scope consistent with the principles and novel features presented herein.
Claims
Claim 1 A method for continuously deploying a neural network model, performed by a computing device, comprising: obtaining a container group including a first container, a second container, and a sub-container for deploying the neural network model; obtaining a second repository including source code for adjusting the second container based on the sub-container; identifying a change in at least one of the first container, the second container, or the sub-container included in the container group; updating at least one of the first container, the second container, or the sub-container based on the identified change; and adjusting a neural network model application based on the container group in which at least one of the first container, the second container, or the sub-container has been updated.The step of updating at least one of the first container, the second container, or the sub-container based on the identified change includes, when a change is identified in the source code repository synchronized with the sub-container, updating the source code included in the second repository based on the change and the sub-container; the step of coordinating a neural network model application based on a container group in which at least one of the first container, the second container, or the sub-container is updated includes, when the source code included in the second repository is updated, executing a process of controlling the second container based on a first repository including at least one of a command or script for controlling the second container; the step of updating at least one of the first container, the second container, or the sub-container based on the identified change includes, the step of updating a sub-container included in the container group; and the step of coordinating a neural network model application based on a container group in which at least one of the first container, the second container, or the sub-container is updated includes, the sub-container included in the updated sub-container A method comprising: a step of obtaining the last updated source code; a step of obtaining at least one of a command or script for controlling the second container based on the first container; and a step of coordinating a neural network model application included in the second container based on at least one of the command or script for controlling the second container and the updated source code. Claim 2 A method according to claim 1, wherein the first container included in the container group includes at least one of a command or script for controlling the second container, and the second container can be controlled based on at least one of the command or script included in the first container. Claim 3 In claim 2, the step of obtaining a container group including a first container, a second container, and a sub-container for deploying the neural network model further comprises the step of obtaining a first repository including at least one of a command or a script for controlling the second container based on the first container. Claim 4 In claim 3, the method wherein the first container comprises a Hook init container. Claim 5 delete Claim 6 delete Claim 7 delete Claim 8 delete Claim 9 A method according to claim 1, wherein the second container comprises a main container in which the neural network model application can be executed. Claim 10 delete Claim 11 delete Claim 12 A method according to claim 1, wherein the step of coordinating a neural network model application included in the second container based on at least one of a command or script for controlling the second container and the updated source code comprises the step of re-executing the neural network model application included in the second container based on at least one of a command or script for controlling the second container and the updated source code. Claim 13 A computer program stored on a computer-readable storage medium, wherein, when executed by one or more processors, the computer program causes the one or more processors to perform operations for continuously deploying a neural network model, the operations comprising: an operation of obtaining a container group including a first container, a second container, and a sub-container for deploying a neural network model; an operation of obtaining a second repository including source code for adjusting the second container based on the sub-container; an operation of identifying a change in at least one of the first container, the second container, or the sub-container included in the container group; an operation of updating at least one of the first container, the second container, or the sub-container based on the identified change; and an operation of adjusting a neural network model application based on the container group in which at least one of the first container, the second container, or the sub-container has been updated.The operation of updating at least one of the first container, the second container, or the sub-container based on the identified change includes, when a change is identified in the source code repository synchronized with the sub-container, an operation of updating the source code included in the second repository based on the change and the sub-container; the operation of coordinating a neural network model application based on a container group in which at least one of the first container, the second container, or the sub-container is updated includes, when the source code included in the second repository is updated, an operation of executing a process of controlling the second container based on a first repository including at least one of a command or a script for controlling the second container; the operation of updating at least one of the first container, the second container, or the sub-container based on the identified change includes an operation of updating a sub-container included in the container group; and the operation of coordinating a neural network model application based on a container group in which at least one of the first container, the second container, or the sub-container is updated includes, the updated A computer program stored on a computer-readable storage medium, comprising: an operation of obtaining the last updated source code contained in a sub-container; an operation of obtaining at least one of a command or script for controlling the second container based on the first container; and an operation of adjusting a neural network model application contained in the second container based on at least one of the command or script for controlling the second container and the updated source code. Claim 14 In claim 13, the first container included in the container group includes at least one of a command or script for controlling the second container, and the second container is a computer program stored on a computer-readable storage medium, wherein control can be performed based on at least one of the command or script included in the first container. Claim 15 A computer program stored on a computer-readable storage medium, wherein the operation of acquiring a container group including a first container, a second container, and a sub-container for distributing the neural network model further includes the operation of acquiring a first repository including at least one of a command or a script for controlling the second container based on the first container. Claim 16 delete Claim 17 delete Claim 18 delete Claim 19 delete Claim 20 delete Claim 21 delete Claim 22 A computing device comprising at least one processor, wherein the at least one processor obtains a container group comprising a first container, a second container, and a sub-container for deploying a neural network model; obtains a second repository comprising source code for adjusting the second container based on the sub-container; identifies a change in at least one of the first container, the second container, or the sub-container included in the container group; and updates at least one of the first container, the second container, or the sub-container based on the identified change;and at least one of the first container, the second container, or the sub-container is configured to coordinate a neural network model application based on an updated container group, wherein the sub-container included in the container group is synchronized with a source code repository to update source code, and updating at least one of the first container, the second container, or the sub-container based on the identified change includes, when a change is identified in the source code repository synchronized with the sub-container, updating the source code included in the second repository based on the change and the sub-container, and at least one of the first container, the second container, or the sub-container is configured to coordinate a neural network model application based on an updated container group, wherein when the source code included in the second repository is updated, a process of controlling the second container based on a first repository including at least one command or script for controlling the second container is executed, and updating at least one of the first container, the second container, or the sub-container based on the identified change includes updating the sub-container included in the container group, and the first container, the Coordinating a neural network model application based on a container group in which at least one of the 2 containers or sub-containers has been updated comprises: obtaining the last updated source code contained in the updated sub-container; and obtaining at least one of a command or script for controlling the 2 container based on the 1 container;A computing device comprising at least one of a command or script for controlling the second container and coordinating a neural network model application included in the second container based on the updated source code.
Citation Information
Patent Citations
Model training method and apparatus, and data recognizing method
KR1020200128938A