WO2023085738A1 - Ai 모델 서빙 시스템 및 방법 - Google Patents

Ai 모델 서빙 시스템 및 방법 Download PDF

Info

Publication number
WO2023085738A1
WO2023085738A1 PCT/KR2022/017476 KR2022017476W WO2023085738A1 WO 2023085738 A1 WO2023085738 A1 WO 2023085738A1 KR 2022017476 W KR2022017476 W KR 2022017476W WO 2023085738 A1 WO2023085738 A1 WO 2023085738A1
Authority
WO
WIPO (PCT)
Prior art keywords
model
unit
distribution
serving
version
Prior art date
Application number
PCT/KR2022/017476
Other languages
English (en)
French (fr)
Inventor
서창수
정희석
송환혁
정주영
Original Assignee
에스케이 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스케이 주식회사 filed Critical 에스케이 주식회사
Publication of WO2023085738A1 publication Critical patent/WO2023085738A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine

Definitions

  • the present invention is an AI model serving system and method that does not require separate coding for serving, such as registration and distribution of AI models.
  • it is possible to register and distribute AI models intuitively and easily using a user interface on the web. It relates to an AI model serving system and method.
  • AI Artificial Intelligence
  • AI models are developed using various languages, data, and libraries, and there are many restrictions in distributing and operating the developed AI models suitable for various use environments.
  • AI models subtly change machine learning inference results depending on applied data, features, etc., and use a lot of computing resources for machine learning, so log data management is also necessary to track and manage AI model performance. .
  • Korean Patent Publication No. 10-2021-0080163 which is a prior document, relates to dynamic artificial intelligence / machine learning model update, or retraining and updating in a digital process at runtime, and an updated version of the AI / ML model Initiating the process of calling and updating the AI/ML model during the runtime of a digital process
  • Korea Patent Registration No. 10-2232364 relates to a method for updating edge applications without service interruption in microservice unit edge applications.
  • the first edge application is duplicated with the second edge application, and when the first edge application is updated, the service is provided to the edge clients with the second edge application, whereby, Discloses a configuration capable of providing uninterrupted service to an edge gateway, and Korean Patent Publication No.
  • 10-2021-0063610 relates to a microservice-based artificial intelligence device and method for providing artificial intelligence services, including input preprocessing function and AI model calculation function. And post-processing functions are configured as containerized modules, respectively, and a configuration for distributing each containerized module is disclosed.
  • the prior art discloses an AI model update and distribution method, etc., but there is room for improvement in relation to a method for increasing user convenience and intuitively and easily serving an AI model in registering and distributing an AI model.
  • the present invention was created in view of the above circumstances, and an object of the present invention is to provide an AI model serving system and method that can intuitively and easily register and distribute AI models using a user interface on the web.
  • the AI model serving system includes an AI model registration unit registering an AI model capable of machine learning, an AI model search unit querying registration information of an AI model registered in the AI model registration unit, and the AI model An AI model distribution unit that applies the AI model registered in the register to a use environment in which machine learning is to be executed, and an AI model monitoring unit that monitors the execution status and log data of the AI model distributed through the AI model distribution unit,
  • the AI model registration unit, AI model search unit, AI model distribution unit, and AI model monitoring unit receive and execute commands through a user interface on the web.
  • the AI model registration unit may include a framework selection unit that selects a framework in which machine learning of the AI model is executed.
  • the AI model registration unit may include an AI model version management unit that records and stores model information for each version of a specific AI model.
  • a weight file generated as a result of training the AI model, a user code for executing inference on the registered AI model, and data used for training for analysis of the AI model can be uploaded through a user interface on the web.
  • the AI model search unit displays one or more information about the AI model version, AI model status, AI model serving status, AI model canary distribution status, and the date and time of change of the AI model version through a monitor screen on the web. can provide
  • the AI model search unit may provide a build task name applied to the AI model and failure and error information of a build step when registration of the AI model through the AI model registration unit fails.
  • the AI model distribution unit indicates Concurrency, which represents a value capable of responding to the serving request of the AI model at one time, the range of distribution resources allocated to the AI model, and the number of copies of the AI model to be served.
  • Concurrency represents a value capable of responding to the serving request of the AI model at one time, the range of distribution resources allocated to the AI model, and the number of copies of the AI model to be served.
  • a resource allocation amount of a replica or a GPU used by the AI model may be set.
  • the AI model distribution unit may include a canary distribution control unit that sets a distribution ratio between the currently serving AI model and the versioned-up AI model that will proceed to canary distribution.
  • the AI model monitoring unit may provide information about a canary distribution execution state and a distribution ratio when the AI model is being canary-distributed.
  • the AI model monitoring unit provides log data for each version of an AI model having a plurality of versions, and after initial inquiry, POD log inquiry that updates and displays log data according to a preset cycle. wealth may be included.
  • An AI model serving method includes (a) registering an AI model capable of machine learning in an AI model register, (b) registering information of an AI model registered in the AI model register Inquiry by a search unit, (c) distributing the AI model through an AI model distribution unit to a use environment in which machine learning of the AI model is to be executed, and (d) AI model distributed through the AI model distribution unit
  • the execution status and log data of are monitored through the AI model monitoring unit, and the AI model registration unit, AI model search unit, AI model distribution unit, and AI model monitoring unit receive and execute commands through the user interface on the web.
  • step (a) may include registering a framework in which machine learning of the AI model is executed.
  • step (a) may include recording and storing model information for each version of a specific AI model.
  • the step (a) includes a weight file generated as a result of training the AI model, user code for executing inference on the registered AI model, and data used for training for analysis of the AI model. may include uploading through a user interface on the web.
  • one or more information about the AI model version, AI model status, AI model serving status, AI model canary distribution status, and the date and time of change of the AI model version is displayed on a monitor screen on the web. can be provided through
  • the step (b) may include providing a build task name applied to the AI model and failure and error information of the build step when registration of the AI model fails.
  • step (c) concurrency representing a value that can respond to the serving request of the AI model at one time, the range of distribution resources allocated to the AI model, and the number of copies of the AI model to be served
  • step (c) A step of setting a resource allocation amount of a replica or a GPU used by the AI model may be included.
  • the step (c) may include setting a distribution ratio between the currently serving AI model and the versioned-up AI model that will proceed to canary distribution.
  • the step (d) may include providing information about a canary distribution execution state and a distribution ratio if the AI model is being canary-distributed.
  • the step (d) may include providing log data for each version of an AI model having a plurality of versions, and updating and displaying the log data according to a preset cycle after the initial inquiry. there is.
  • the AI model serving system and method according to the present invention can receive and execute commands through a user interface on the web, so that the user does not need to execute separate coding for registering and distributing AI models, improving user convenience. There are effects that can be done.
  • AI model serving system and method according to the present invention when a user fails to register with AI model registration information through model registration information inquiry, immediately checks whether or not there is an error in each build step and executes necessary measures. There is an effect.
  • the user can directly determine the distribution ratio of the canary distribution in consideration of the resource allocation of the use environment to which the AI model is applied and the probability of operation error occurrence of the versioned AI model. It can be set, and there is an effect that the change of the distribution ratio can be easily executed.
  • FIG. 1 is a block diagram of an AI model serving system according to an embodiment of the present invention.
  • FIG. 2 shows an exemplary screen for configuring a model registry.
  • 3 and 4 show exemplary screens for registering an AI model.
  • 5 and 6 show exemplary screens for version up of registered AI models.
  • FIG. 7 shows an exemplary screen showing registration information inquiry of an AI model.
  • FIG. 8 shows an exemplary configuration of a pop-up screen for checking detailed information of an AI model.
  • FIG. 9 illustrates an exemplary screen showing registration information inquiry of a corresponding AI model when registration of an AI model fails.
  • FIG. 10 shows an exemplary screen for distributing a registered AI model.
  • 11 and 12 show example screens for canary distribution of AI models.
  • FIG. 13 shows an exemplary management screen before serving an AI model.
  • FIG. 14 shows an exemplary management screen when serving of an AI model fails.
  • 15 shows an exemplary pop-up screen displaying error information of AI model serving.
  • FIG. 16 shows an exemplary screen for AI model distribution without canary distribution
  • FIG. 17 shows an example screen for AI model distribution with canary distribution.
  • FIG. 18 shows an exemplary screen for the service dashboard of an AI model in canary deployment.
  • 19 shows an exemplary screen related to POD log inquiry for each AI model.
  • 20 is a flowchart of an AI model serving method according to an embodiment of the present invention.
  • FIG. 1 is a block diagram of an AI model serving system according to an embodiment of the present invention.
  • the AI model serving system 10 of the present invention includes an AI model registration unit 100, an AI model search unit 200, an AI model distribution unit 300, and an AI model monitoring unit 400. .
  • the AI model registration unit 100 registers an AI model capable of machine learning.
  • the AI model may be a model in which training has been performed in advance by applying an AI algorithm.
  • the AI model registration unit 100 records and stores model information for each version of the framework selection unit 110 and / or a specific AI model for selecting a framework in which machine learning of the AI model is executed It may include an AI model version management unit 120 to do.
  • the framework can be a commercialized machine learning engine such as Tensorflow, PyTorch, Scikit-Learn, XGBoost, or Triton 5, and the user can select a machine learning engine to apply to the AI model through the framework selection unit 110. there is.
  • a commercialized machine learning engine such as Tensorflow, PyTorch, Scikit-Learn, XGBoost, or Triton 5
  • the AI model version management unit 120 may store and manage version-specific information of each AI model in the model registry.
  • the weight file generated as a result of training the AI model, the user code for executing inference on the registered AI model, and the data used for training for analysis of the AI model are displayed on the web. It can be uploaded through the user interface on top.
  • the AI model search unit 200 searches for registration information of AI models registered in the AI model registration unit 100 .
  • the AI model search unit 200 displays one or more information about the AI model version, AI model status, AI model serving status, AI model canary distribution status, and the date and time of change of the AI model version through a monitor screen on the web. can be provided through
  • the AI model search unit 200 provides build task name applied to the AI model and failure and error information of the build step. can provide.
  • the AI model distribution unit 300 applies the AI model registered in the AI model registration unit 100 to a use environment in which machine learning is to be executed.
  • the use environment may be a cloud or an on-premises environment.
  • the AI model distribution unit 300 includes Concurrency, which represents a value that can respond to the serving request of the AI model at once, the range of distribution resources allocated to the AI model, replicas representing the number of copies of the AI model to be served, or the AI model You can set the resource quota of the GPU to be used.
  • Concurrency represents a value that can respond to the serving request of the AI model at once, the range of distribution resources allocated to the AI model, replicas representing the number of copies of the AI model to be served, or the AI model You can set the resource quota of the GPU to be used.
  • the AI model distribution unit 300 may include a canary distribution control unit 310 that sets a distribution ratio between an AI model currently being served and an AI model that is versioned up to be canary distribution.
  • the user can set an appropriate distribution ratio through the canary distribution control unit 310 in consideration of the resource allocation of the use environment to which the AI model is applied and the probability of operation error occurrence of the versioned AI model, and the change in distribution ratio can be easily executed.
  • the AI model monitoring unit 400 monitors the execution status and log data of the AI model distributed through the AI model distribution unit 300. If the AI model is being canary-distributed, the AI model monitoring unit 400 may provide information about a canary-distribution execution state and a distribution ratio.
  • the AI model monitoring unit 400 provides log data for each version of an AI model having a plurality of versions, and after an initial inquiry, a pod that updates and displays the log data according to a preset cycle.
  • (POD) log inquiry unit 410 may be included.
  • the update period of log data may be set to, for example, 5 seconds in consideration of throughput of log data and time required for monitoring.
  • the AI model registration unit 100, the AI model search unit 200, the AI model distribution unit 300, and the AI model monitoring unit 400 of the AI model serving system 10 of the present invention command commands through a user interface on the web. input and executed. Accordingly, since the user does not need to execute separate coding for registering and distributing the AI model, user convenience can be improved.
  • FIG. 2 shows an exemplary screen for configuring a model registry.
  • the user can convert to a model information and version list screen by double-clicking the model selection item 130 .
  • the user can click the register model button 132 to register and store the corresponding AI model in the model registry.
  • the model distribution resource button 134 is displayed as 'create model distribution resource' if a namespace has not been created in the model registry, and is displayed as 'model distribution resource information' if a namespace has already been created. The user can check the distribution resource information of the AI model by clicking the model distribution resource button 134 .
  • 3 and 4 show exemplary screens for registering an AI model.
  • the user may arbitrarily set the name of an AI model to be registered in the model name registration field.
  • the name of a particular AI model must have a unique name so that it can be identified from other AI models.
  • the user can check whether the same model name already exists by clicking the duplicate check button 140 to check whether the same model name already exists.
  • model description item 142 information and additional explanations on the AI model can be entered, so that users other than the user registering the AI model can easily understand and utilize the AI model in the future.
  • the framework selection item 144 allows the user to select a framework to be used for registering and distributing the AI model.
  • AI models can be continuously updated by learning through machine learning, and users can specify a framework to perform machine learning on.
  • the framework for example, commercially available machine learning engines such as Tensorflow, PyTorch, Scikit-Learn, XGBoost, and Triton 5 may be used, without being limited thereto, and any engine developed for machine learning of AI models may be used.
  • the framework version item 146 displays version information provided by the framework selected by the user.
  • the data type item 148 allows selection of the type of data used for training of the AI model.
  • the data type is not particularly limited, but may be Tabular, Image, Audio, Text, Custom, or the like, and the user may select a corresponding data type from the data type item 148.
  • the user can classify and train the type of data corresponding to the field in which the AI model is to be used.
  • a weight file generated as a result of learning the AI model is uploaded.
  • the user can drag and drop the weight file, or click the Browse button and directly select the weight file to upload to the Object Storage of the model registry.
  • the AI model completes learning through operation execution, weight application, and output for each of the various layers that make up the AI algorithm, and the completed weight file is saved.
  • user code item 152 user code for executing inference on the registered AI model is uploaded.
  • the user can upload the compressed file created from the template to the model registry by clicking the Browse button.
  • User code is a file used to verify the combination of input data and AI models. That is, the user code verifies whether the registered AI model is an appropriately generated model based on the input data.
  • training data item 154 data used for training is uploaded to the model registry for analysis of the AI model.
  • the learning data is stored to monitor the inference results of the AI model and later check whether there are any abnormalities in the data used for learning. Users can upload the training data file to the model registry by clicking the Browse button.
  • 5 and 6 show exemplary screens for version up of registered AI models.
  • the model name item 160 displays information on previously registered AI models for version upgrade of the same model.
  • the model name and framework information are the same as before.
  • the version of the model is registered as a number obtained by adding the number 1 to the final version of the AI model that is currently operated.
  • model version description item 164 if additional explanation is required in relation to the model version, corresponding content is entered.
  • weight items, user code items, and learning data items for registering an AI model version up are displayed. Each item is the same as or similar to that described with reference to FIG. 4 .
  • weight item 170 a weight file generated as a result of learning the AI model is uploaded. Users can click the Browse button to upload files to the Object Storage of the model registry.
  • user code item 172 user code for executing inference on the registered AI model is uploaded.
  • the user can upload the compressed file created from the template to the model registry by clicking the Browse button.
  • training data item 174 data used for training is uploaded to the model registry for analysis of the AI model.
  • the learning data is stored to monitor the inference results of the AI model and later check whether there are any abnormalities in the data used for learning. Users can upload the training data file to the model registry by clicking the Browse button.
  • FIG. 7 shows an exemplary screen showing registration information inquiry of an AI model.
  • AI model registration information search results are displayed.
  • model version is displayed, model version, model status, serving/serving status, canary distribution/canary distribution status, date and time of modification, and model registration information inquiry items 210 are displayed.
  • the user can check the registration status of a specific AI model, such as AI model being built, build completed (deployable), build failed, etc. through the screen, and click the model registration information inquiry item (210) to view the detailed information of the AI model. You can move to a pop-up screen where you can check
  • FIG. 8 shows an exemplary configuration of a pop-up screen for checking detailed information of an AI model.
  • the model summary information item 220 displays information such as the model name, model version, start date, end date, and build status of the corresponding AI model.
  • the build status displays the item name, status (Succeeded/Failed), and elapsed time for the build selected by the user.
  • the build task name 222 includes comprehensive information about the build.
  • the build steps 224 constituting the build task are displayed.
  • FIG. 9 illustrates an exemplary screen showing registration information inquiry of a corresponding AI model when registration of an AI model fails.
  • the build status of the build task name 222 is displayed as Failed.
  • the presence or absence of errors in each build step 224 is displayed as shown in the lower left of the drawing, and detailed log contents are displayed in the name-value format as shown in the lower right.
  • FIG. 10 shows an exemplary screen for distributing a registered AI model.
  • the Concurrency item 320 represents a value capable of responding to a serving request of a corresponding AI model at one time.
  • the user configures the concurrency item 320 in the form of a drop-down box by setting several numerical values in advance, and can select and adjust a specific numerical value.
  • the distribution resource display item 322 displays total allocated resources and resources to be used for serving the corresponding AI model in the allocated cluster resources.
  • CPU, Memory, GPU, and Replica items are displayed, and since the total allocated resources and resources to be used are displayed, the user can easily check the resource status required to serve the AI model.
  • the resource allocation amount may be predefined according to the type of AI model, and resources may be provided by dividing the range into Small, Medium, and Large, for example, or the user may determine resource usage. You can also configure it to set it yourself.
  • the Replica item 326 indicates the number of replicas of the AI model to be served, and can be configured so that the user can preset the number of replicas of various figures and select the number of replicas in the form of a drop-down box.
  • Replica is set up in a Kubernetes cluster environment that serves AI models, and is used when there are many external requests or AI model performance is required. Replica is a means to stably operate the AI model, and even if some of the Pods (PODs) of the Kubernetes cluster that are running the AI model are terminated abnormally, other pods do not affect the entire system, so that the AI model's service It is a system tool that keeps running the pod and attempts to recover the abnormally terminated pod. Distribution resources are occupied and used as much as the set number of replicas.
  • PODs Pods
  • the GPU resource allocation can be set in the GPU setting item 328, and the user can set the range directly or select a preset range in the form of a drop-down box.
  • 11 and 12 show example screens for canary distribution of AI models.
  • the user can set the distribution ratio of the version of the AI model currently being served and the AI model of another version that will proceed to canary distribution through the distribution ratio adjustment item 312 .
  • the user can adjust the ratio so that the old version AI model and the new version AI model are distributed at a certain rate, and while monitoring the execution errors of the new version AI model, the old version AI model is converted into a new version AI model. You can also adjust the distribution ratio continuously until replacement.
  • a distribution resource display item 322 a distribution resource range item 324, a replica item 326, and a GPU setting item 328 are displayed.
  • the resource setting in FIG. 12 is to set the resource usage allocated to the AI model of the old version and the AI model of the new version, and each item is the same as or similar to the content described with reference to FIG. 10.
  • the distribution resource display item 322 displays total allocated resources and resources to be used for serving AI models of various versions in the allocated cluster resources.
  • CPU, Memory, GPU, and Replica items are displayed, and since the total allocated resources and resources to be used are displayed, the user can easily check the resource status required to serve the AI model.
  • the resource allocation amount may be predefined according to the type of AI model, and resources may be provided by dividing the range into Small, Medium, and Large, for example, or the user may determine resource usage. You can also configure it to set it yourself.
  • the Replica item 326 indicates the number of replicas of the AI model to be served, and can be configured so that the user can preset the number of replicas of various figures and select the number of replicas in the form of a drop-down box.
  • the GPU resource allocation can be set in the GPU setting item 328, and the user can set the range directly or select a preset range in the form of a drop-down box.
  • FIG. 13 shows an exemplary management screen before serving an AI model.
  • the model detailed addition option item 420 may include an icon for checking model distribution resource information and a model deletion icon, and the corresponding AI model information may be checked or the model may be deleted according to the user's selection.
  • model serving state item 422 icons dividing the serving state of the AI model into stop, pause, and start serving may be displayed.
  • start serving icon serving settings as shown in FIG. 10 for model distribution are displayed. You can move to the screen.
  • buttons for model version details, workflow inquiry, and model version deletion can be displayed. Depending on the user's choice, clicking a specific icon moves to the corresponding screen or executes a function. can
  • the model version addition button 426 is for upgrading and newly registering an AI model of an existing version, and when the user clicks the corresponding item, a page for model version registration as shown in FIGS. 5 and 6 may be opened.
  • FIG. 14 illustrates an exemplary management screen when serving of an AI model fails
  • FIG. 15 illustrates an exemplary pop-up screen displaying error information of AI model serving.
  • an ERROR icon is displayed in the model serving status item 422 of the management screen, and when the user clicks the ERROR icon, error information of AI model serving is displayed as a pop-up as shown in FIG. 15. displayed As service creation error information, Type, Time, Reason, Message information, etc. may be included. The user can immediately check the service generation error information through the screen and take appropriate measures to correct the error.
  • FIG. 16 shows an exemplary screen for AI model distribution without canary distribution
  • FIG. 17 shows an example screen for AI model distribution with canary distribution.
  • the model serving status item 422 of FIG. 16 may be displayed as RUNNING, WAITING, or DELETED, and in a state in which canary distribution is not performed, an additional canary distribution icon may be displayed in the canary distribution status item 428.
  • the canary distribution status item 428 shows the canary distribution status
  • RUNNING is displayed in the canary distribution status item 428
  • the distribution ratio of the new version AI model is displayed.
  • the canary deployment status item 428 is indicated as 10%, which means that the AI model of the old version is deployed at a rate of 90% and the AI model of the new version is deployed at a rate of 10%.
  • FIG. 18 shows an exemplary screen of a service dashboard of an AI model being deployed in a canary
  • FIG. 19 illustrates an exemplary screen of POD log inquiry for each AI model.
  • the user can check the basic information setting and serving setting information of the currently serving AI model on the service dashboard, and clicking the log search item 430 will log the pod (POD) log of the currently serving AI model.
  • a pop-up window may be displayed.
  • model version item 432 it is possible to select a version of AI models being deployed in a canary.
  • 'all' is displayed, so logs are loaded regardless of model version.
  • the user can select a model version from the drop-down box, and when a specific version is selected, a log according to the version can be newly loaded and displayed on the surface.
  • log window 434 information of a predetermined time before the inquiry time is displayed in the form of combining the execution date and content of the log data of the AI model.
  • the log update display 436 displays a cycle in which log data is updated after the initial inquiry, and the latest log data may be added to the bottom of the log window 434 as the log data is updated according to a preset cycle.
  • the user can set the renewal cycle of log data in advance, and in the drawing, it is set to 5 seconds, so that log data 5 seconds before the inquiry time is displayed, and the latest log data updated every 5 seconds is displayed on the log window 434. Can be added below.
  • the scroll 438 is generated when log data is continuously added and goes beyond the currently displayed log window 434, and the user can adjust the scroll 438 to check the log data of the part to be checked.
  • 20 is a flowchart illustrating an AI model serving method according to an embodiment of the present invention.
  • an AI model capable of machine learning is registered in the AI model registration unit 100 (S100)
  • registration information of the AI model registered in the AI model registration unit 100 is searched by the AI model search unit 200 (S200)
  • the AI model is distributed through the AI model distribution unit 300 to the use environment in which machine learning of the AI model is to be executed (S300)
  • the AI model The execution state and log data of the AI model distributed through the distribution unit 300 are monitored through the AI model monitoring unit 400 (S400).
  • the AI model registration unit 100, the AI model search unit 200, the AI model distribution unit 300, and the AI model monitoring unit 400 receive and execute commands through the user interface on the web.
  • the step of registering the AI model is the step of registering the framework in which machine learning of the AI model is executed and / or the step of recording and storing model information for each version of a specific AI model can include
  • the step of registering the AI model (S100) includes the weight file generated as a result of training the AI model, user code for executing inference on the registered AI model, and analysis of the AI model. It may include uploading data used for learning through a user interface on the web.
  • the step of registering the AI model (S100) includes one or more information about the AI model version, the AI model status, the serving status of the AI model, the canary distribution status of the AI model, and the date and time of change of the AI model version. It may include providing information through a monitor screen on the web.
  • the AI model registration inquiry step (S200) may include providing a build task name applied to the AI model and failure and error information of the build step when the registration of the AI model fails. there is.
  • the distributing step (S300) of the AI model includes Concurrency representing a value that can respond to the serving request of the AI model at one time, the range of distribution resources allocated to the AI model, and the AI model to be served. It may include setting a replica indicating the number of copies of , or a resource allocation amount of a GPU used by an AI model.
  • the step of distributing the AI model (S300) may include setting a distribution ratio between the currently serving AI model and the versioned-up AI model to proceed with canary distribution.
  • the step of monitoring the AI model may include providing information about a canary distribution execution state and a distribution ratio if the AI model is being canary-distributed.
  • log data for each version of the AI model having a plurality of versions is provided, and after the initial inquiry, the log data is updated and displayed according to a preset cycle. steps may be included.
  • the embodiments described above may be implemented as hardware components, software components, and/or a combination of hardware components and software components.
  • the devices, methods, and components described in the embodiments may include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate (FPGA). array), programmable logic units (PLUs), microprocessors, or any other device capable of executing and responding to instructions.
  • a processing device may run an operating system (OS) and one or more software applications running on the operating system.
  • a processing device may also access, store, manipulate, process, and generate data in response to execution of software.
  • OS operating system
  • a processing device may also access, store, manipulate, process, and generate data in response to execution of software.
  • the processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that it can include.
  • a processing device may include a plurality of processors or a processor and a controller. Also, other processing configurations are possible, such as parallel processors.
  • Software may include a computer program, code, instructions, or a combination of one or more of the foregoing, which configures a processing device to operate as desired or processes independently or collectively. You can command the device.
  • Software and/or data may be any tangible machine, component, physical device, virtual equipment, computer storage medium or device, intended to be interpreted by or provide instructions or data to a processing device. , or may be permanently or temporarily embodied in a transmitted signal wave.
  • Software may be distributed on networked computer systems and stored or executed in a distributed manner.
  • Software and data may be stored on one or more computer readable media.
  • the method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer readable medium.
  • the computer readable medium may include program instructions, data files, data structures, etc. alone or in combination.
  • Program commands recorded on the medium may be specially designed and configured for the embodiment, or may be known and usable to those skilled in computer software.
  • Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks.
  • - includes hardware devices specially configured to store and execute program instructions, such as magneto-optical media, and ROM, RAM, flash memory, and the like.
  • program instructions include high-level language codes that can be executed by a computer using an interpreter, as well as machine language codes such as those produced by a compiler.
  • the hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

Abstract

본 발명은 AI 모델의 등록 및 배포 등 서빙을 위해 별도의 코딩을 필요로 하지 않는 AI 모델 서빙 시스템 및 방법으로서, 특히, 웹 상에서 유저 인터페이스를 이용하여 직관적이며 용이하게 AI 모델을 등록 및 배포할 수 있는 AI 모델 서빙 시스템 및 방법에 관한 것이다. 본 발명의 일 실시예에 따른 AI 모델 서빙 시스템은, 머신 러닝이 가능한 AI 모델을 등록하는 AI 모델 등록부, 상기 AI 모델 등록부에 등록된 AI 모델의 등록 정보를 조회하는 AI 모델 검색부, 상기 AI 모델 등록부에 등록된 AI 모델을 머신 러닝을 실행하고자 하는 사용 환경에 적용시키는 AI 모델 배포부, 및 상기 AI 모델 배포부를 통해 배포된 AI 모델의 실행 상태와 로그 데이터를 모니터링 하는 AI 모델 모니터링부를 포함하며, 상기 AI 모델 등록부, AI 모델 검색부, AI 모델 배포부 및 AI 모델 모니터링부는 웹 상에서 유저 인터페이스를 통해 명령을 입력받아 실행된다.

Description

AI 모델 서빙 시스템 및 방법
본 발명은 AI 모델의 등록 및 배포 등 서빙을 위해 별도의 코딩을 필요로 하지 않는 AI 모델 서빙 시스템 및 방법으로서, 특히, 웹 상에서 유저 인터페이스를 이용하여 직관적이며 용이하게 AI 모델을 등록 및 배포할 수 있는 AI 모델 서빙 시스템 및 방법에 관한 것이다.
AI(Artificial Intelligence) 모델은 다양한 언어, 데이터, 라이브러리를 이용하여 개발되며, 개발된 AI 모델을 여러 사용 환경에 적합하게 배포하고, 구동시키는데 많은 제약이 따른다. 또한, AI 모델은 적용되는 데이터, 피처 등에 따라 머신 러닝의 추론 결과가 미묘하게 변경되며, 머신 러닝을 위해 많은 컴퓨팅 자원을 사용하므로, AI 모델의 성능을 추적, 관리하기 위한 로그 데이터 관리도 필요하다.
이와 관련하여, 선행문헌인 한국공개특허 10-2021-0080163호는 런타임시 디지털 프로세스에서의 동적 인공 지능/머신 러닝 모델 업데이트, 또는 재트레이닝 및 업데이트에 관한 것으로, AI/ML 모델의 업데이트된 버전을 호출하고, 디지털 프로세스의 런타임(runtime) 동안 AI/ML 모델을 업데이트 하는 과정을 개시하며, 한국등록특허 10-2232364호는 마이크로 서비스 단위 엣지 응용에서의 서비스 중단 없는 엣지 응용 업데이트 방법에 관한 것으로, 제1 엣지 응용으로 엣지 클라이언트에 서비스를 제공할 때, 제1 엣지 응용을 제2 엣지 응용으로 이중화하고, 제1 엣지 응용을 업데이트 하게 되면 제2 엣지 응용으로 엣지 클라이언트에 서비스를 제공하며, 이에 의해, 엣지 게이트웨이에 무중단 서비스가 가능한 구성을 개시하며, 한국공개특허 10-2021-0063610호는 인공 지능 서비스 제공을 위한 마이크로 서비스 기반의 인공 지능 장치 및 그 방법에 관한 것으로, 입력 전처리 기능, AI 모델 연산 기능 및 후처리 기능을 컨테이너화된 모듈로 각각 구성하고, 각 컨테이너화된 모듈을 배포하는 구성을 개시한다.
상기 종래 기술들은 AI 모델의 업데이트 및 배포 방법 등에 대해 개시하나, AI 모델 등록 및 배포 등에 있어 사용자의 편의성을 증대시키고, 직관적이며 용이하게 AI 모델을 서빙하는 방법과 관련하여 개선의 여지가 있다.
본 발명은 상기한 사정을 감안하여 창출된 것으로서, 본 발명의 목적은 웹 상에서 유저 인터페이스를 이용하여 직관적이며 용이하게 AI 모델을 등록 및 배포할 수 있는 AI 모델 서빙 시스템 및 방법을 제공하는데 있다.
본 발명의 일 실시예에 따른 AI 모델 서빙 시스템은, 머신 러닝이 가능한 AI 모델을 등록하는 AI 모델 등록부, 상기 AI 모델 등록부에 등록된 AI 모델의 등록 정보를 조회하는 AI 모델 검색부, 상기 AI 모델 등록부에 등록된 AI 모델을 머신 러닝을 실행하고자 하는 사용 환경에 적용시키는 AI 모델 배포부, 및 상기 AI 모델 배포부를 통해 배포된 AI 모델의 실행 상태와 로그 데이터를 모니터링 하는 AI 모델 모니터링부를 포함하며, 상기 AI 모델 등록부, AI 모델 검색부, AI 모델 배포부 및 AI 모델 모니터링부는 웹 상에서 유저 인터페이스를 통해 명령을 입력받아 실행된다.
일 실시예에서, 상기 AI 모델 등록부는, 상기 AI 모델의 머신 러닝이 실행되는 프레임워크를 선택하는 프레임워크 선택부를 포함할 수 있다.
일 실시예에서, 상기 AI 모델 등록부는, 특정 AI 모델의 버전별 모델 정보를 기록하고 저장하는 AI 모델 버전 관리부를 포함할 수 있다.
일 실시예에서, 상기 AI 모델 등록부에, 상기 AI 모델을 학습시킨 결과로 생성된 weight 파일, 등록된 AI 모델에 추론을 실행하기 위한 사용자 코드, 및 AI 모델의 분석을 위해 학습에 사용된 데이터가 웹 상에서 유저 인터페이스를 통해 업로드 될 수 있다.
일 실시예에서, 상기 AI 모델 검색부는, AI 모델 버전, AI 모델 상태, AI 모델의 서빙 상태, AI 모델의 카나리 배포 상태 및 AI 모델 버전의 변경일시에 관한 하나 이상의 정보를 웹 상에서 모니터 화면을 통해 제공할 수 있다.
일 실시예에서, 상기 AI 모델 검색부는, 상기 AI 모델 등록부를 통한 상기 AI 모델의 등록 실패 시, 상기 AI 모델에 적용되는 빌드 태스크 네임과 빌드 스텝의 실패 및 에러 정보를 제공할 수 있다.
일 실시예에서, 상기 AI 모델 배포부는, 상기 AI 모델의 서빙 요청에 일시에 응답 가능한 수치를 나타내는 Concurrency(동시성), 상기 AI 모델에 할당되는 배포 자원의 범위, 서빙하려는 AI 모델의 복제 개수를 나타내는 레플리카, 또는 상기 AI 모델이 사용하는 GPU의 자원 할당량을 설정할 수 있다.
일 실시예에서, 상기 AI 모델 배포부는, 현재 서빙되고 있는 AI 모델과 카나리 배포로 진행할 버전업 된 AI 모델의 배포 비율을 설정하는 카나리 배포 제어부를 포함할 수 있다.
일 실시예에서, 상기 AI 모델 모니터링부는, 상기 AI 모델이 카나리 배포 중이면, 카나리 배포 실행 상태와 배포 비율에 관한 정보를 제공할 수 있다.
일 실시예에서, 상기 AI 모델 모니터링부는, 복수의 버전을 갖는 AI 모델에 대한 버전별 로그 데이터를 제공하며, 초기 조회 이후, 미리 설정된 주기에 따라 로그 데이터를 갱신하여 표시하는 포드(POD) 로그 조회부를 포함할 수 있다.
본 발명의 일 실시예에 따른 AI 모델 서빙 방법은, (a) 머신 러닝이 가능한 AI 모델이 AI 모델 등록부에 등록되는 단계, (b) 상기 AI 모델 등록부에 등록된 AI 모델의 등록 정보가 AI 모델 검색부에서 조회되는 단계, (c) 상기 AI 모델의 머신 러닝을 실행하고자 하는 사용 환경에 AI 모델 배포부를 통해 상기 AI 모델이 배포되는 단계, 및 (d) 상기 AI 모델 배포부를 통해 배포된 AI 모델의 실행 상태와 로그 데이터가 AI 모델 모니터링부를 통해 모니터링 되는 단계를 포함하며, 상기 AI 모델 등록부, AI 모델 검색부, AI 모델 배포부 및 AI 모델 모니터링부는 웹 상에서 유저 인터페이스를 통해 명령을 입력받아 실행된다.
일 실시예에서, 상기 (a) 단계는, 상기 AI 모델의 머신 러닝이 실행되는 프레임워크가 등록되는 단계를 포함할 수 있다.
일 실시예에서, 상기 (a) 단계는, 특정 AI 모델의 버전별 모델 정보가 기록되어 저장되는 단계를 포함할 수 있다.
일 실시예에서, 상기 (a) 단계는, 상기 AI 모델을 학습시킨 결과로 생성된 weight 파일, 등록된 AI 모델에 추론을 실행하기 위한 사용자 코드, 및 AI 모델의 분석을 위해 학습에 사용된 데이터가 웹 상에서 유저 인터페이스를 통해 업로드 되는 단계를 포함할 수 있다.
일 실시예에서, 상기 (b) 단계는, AI 모델 버전, AI 모델 상태, AI 모델의 서빙 상태, AI 모델의 카나리 배포 상태 및 AI 모델 버전의 변경일시에 관한 하나 이상의 정보가 웹 상에서 모니터 화면을 통해 제공될 수 있다.
일 실시예에서, 상기 (b) 단계는, 상기 AI 모델의 등록 실패 시, 상기 AI 모델에 적용되는 빌드 태스크 네임과 빌드 스텝의 실패 및 에러 정보가 제공되는 단계를 포함할 수 있다.
일 실시예에서, 상기 (c) 단계는, 상기 AI 모델의 서빙 요청에 일시에 응답 가능한 수치를 나타내는 Concurrency(동시성), 상기 AI 모델에 할당되는 배포 자원의 범위, 서빙하려는 AI 모델의 복제 개수를 나타내는 레플리카, 또는 상기 AI 모델이 사용하는 GPU의 자원 할당량이 설정되는 단계를 포함할 수 있다.
일 실시예에서, 상기 (c) 단계는, 현재 서빙되고 있는 AI 모델과 카나리 배포로 진행할 버전업 된 AI 모델의 배포 비율이 설정되는 단계를 포함할 수 있다.
일 실시예에서, 상기 (d) 단계는, 상기 AI 모델이 카나리 배포 중이면, 카나리 배포 실행 상태와 배포 비율에 관한 정보가 제공되는 단계를 포함할 수 있다.
일 실시예에서, 상기 (d) 단계는, 복수의 버전을 갖는 AI 모델에 대한 버전별 로그 데이터가 제공되며, 초기 조회 이후, 미리 설정된 주기에 따라 로그 데이터가 갱신되어 표시되는 단계를 포함할 수 있다.
본 발명에 따른 AI 모델 서빙 시스템 및 방법은 웹 상에서 유저 인터페이스를 통해 명령을 입력 받아 실행될 수 있어서, 사용자가 AI 모델의 등록 및 배포를 위한 별도의 코딩을 실행할 필요가 없으므로, 사용자의 사용 편의성을 개선할 수 있는 효과가 있다.
또한, 본 발명에 따른 AI 모델 서빙 시스템 및 방법은, 사용자가 모델 등록 정보 조회를 통해 AI 모델의 등록 정보와 함께 등록 실패 시, 각 빌드 스텝의 에러 유무를 즉각적으로 확인하여 필요한 조치를 실행시킬 수 있는 효과가 있다.
또한, 본 발명에 따른 AI 모델 서빙 시스템 및 방법은, AI 모델이 적용되고 있는 사용 환경의 자원 할당과 버전업 된 AI 모델의 작동 에러 발생 확률 등을 고려하여, 사용자가 직접 카나리 배포의 배포 비율을 설정할 수 있으며, 배포 비율의 변경도 용이하게 실행할 수 있는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 AI 모델 서빙 시스템의 블록도이다.
도 2는 모델 레지스트리를 구성하는 예시적인 화면을 도시한다.
도 3 및 도 4는 AI 모델을 등록하기 위한 예시적인 화면을 도시한다.
도 5 및 도 6는 등록된 AI 모델의 버전 업(version up)을 위한 예시적인 화면을 도시한다.
도 7는 AI 모델의 등록 정보 조회를 나타내는 예시적인 화면을 도시한다.
도 8은 AI 모델의 상세 정보 확인을 위한 팝업 화면의 예시적인 구성을 도시한다.
도 9은 AI 모델의 등록 실패 시, 해당 AI 모델의 등록 정보 조회를 나타내는 예시적인 화면을 도시한다.
도 10은 등록된 AI 모델의 배포를 위한 예시적인 화면을 도시한다.
도 11 및 도 12은 AI 모델의 카나리 배포를 위한 예시적인 화면을 도시한다.
도 13은 AI 모델의 서빙 전의 예시적인 관리 화면을 도시한다.
도 14는 AI 모델의 서빙 실패 시의 예시적인 관리 화면을 도시한다.
도 15은 AI 모델 서빙의 에러 정보를 표시하는 예시적인 팝업 화면을 도시한다.
도 16는 카나리 배포를 하지 않는 AI 모델의 배포에 관한 예시적인 화면을 도시하며, 도 17는 카나리 배포를 하는 AI 모델의 배포에 관한 예시적인 화면을 도시한다.
도 18는 카나리 배포 중인 AI 모델의 서비스 대시보드에 관한 예시적인 화면을 도시한다.
도 19은 AI 모델별 포드(POD) 로그 조회에 관한 예시적인 화면을 도시한다.
도 20은 본 발명의 일 실시예에 따른 AI 모델 서빙 방법의 순서도이다.
이하에서는, 본 발명의 일 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
도 1은 본 발명의 일 실시예에 따른 AI 모델 서빙 시스템의 블록도이다.
도 1을 참조하면, 본 발명의 AI 모델 서빙 시스템(10)은 AI 모델 등록부(100), AI 모델 검색부(200), AI 모델 배포부(300) 및 AI 모델 모니터링부(400)를 포함한다.
AI 모델 등록부(100)는 머신 러닝이 가능한 AI 모델을 등록한다. AI 모델은 AI 알고리즘을 적용하여 미리 학습이 실행된 모델이 될 수 있다.
본 발명의 일 실시예에서, AI 모델 등록부(100)는 AI 모델의 머신 러닝이 실행되는 프레임워크를 선택하는 프레임워크 선택부(110) 및/또는 특정 AI 모델의 버전별 모델 정보를 기록하고 저장하는 AI 모델 버전 관리부(120)를 포함할 수 있다.
프레임워크는 Tensorflow, PyTorch, Scikit-Learn, XGBoost, Triton 5 등의 상용화 된 머신 러닝 엔진이 될 수 있으며, 사용자는 프레임워크 선택부(110)를 통해 해당 AI 모델에 적용할 머신 러닝 엔진을 선택할 수 있다.
AI 모델 버전 관리부(120)는 모델 레지스트리에 각 AI 모델의 버전별 정보를 저장하여 관리할 수 있다.
AI 모델 등록부(100)에는, AI 모델을 학습시킨 결과로 생성된 weight 파일, 등록된 AI 모델에 추론을 실행하기 위한 사용자 코드, 및 AI 모델의 분석을 위해 학습에 사용된 데이터가 웹(web) 상에서 유저 인터페이스(user interface)를 통해 업로드 될 수 있다.
AI 모델 검색부(200)는 AI 모델 등록부(100)에 등록된 AI 모델의 등록 정보를 조회한다. AI 모델 검색부(200)는, AI 모델 버전, AI 모델 상태, AI 모델의 서빙 상태, AI 모델의 카나리(canary) 배포 상태 및 AI 모델 버전의 변경일시에 관한 하나 이상의 정보를 웹 상에서 모니터 화면을 통해 제공할 수 있다.
또한, AI 모델 검색부(200)는 AI 모델 등록부(100)를 통한 AI 모델의 등록 실패 시, AI 모델에 적용되는 빌드 태스크 네임(Build Task Name)과 빌드 스텝(build step)의 실패 및 에러 정보를 제공할 수 있다.
AI 모델 배포부(300)는 AI 모델 등록부(100)에 등록된 AI 모델을 머신 러닝을 실행하고자 하는 사용 환경에 적용시킨다. 사용 환경은 클라우드(cloud) 또는 온-프레미스(On-premises) 환경이 될 수 있다.
AI 모델 배포부(300)는 AI 모델의 서빙 요청에 일시에 응답 가능한 수치를 나타내는 Concurrency(동시성), AI 모델에 할당되는 배포 자원의 범위, 서빙하려는 AI 모델의 복제 개수를 나타내는 레플리카, 또는 AI 모델이 사용하는 GPU의 자원 할당량을 설정할 수 있다.
본 발명의 일 실시예에서, AI 모델 배포부(300)는 현재 서빙되고 있는 AI 모델과 카나리 배포로 진행할 버전업 된 AI 모델의 배포 비율을 설정하는 카나리 배포 제어부(310)를 포함할 수 있다. 사용자는 AI 모델이 적용되고 있는 사용 환경의 자원 할당과 버전업 된 AI 모델의 작동 에러 발생 확률 등을 고려하여, 카나리 배포 제어부(310)를 통해 적절한 배포 비율을 설정할 수 있으며, 배포 비율의 변경도 용이하게 실행할 수 있다.
AI 모델 모니터링부(400)는 AI 모델 배포부(300)를 통해 배포된 AI 모델의 실행 상태와 로그 데이터를 모니터링 한다. AI 모델 모니터링부(400)는, AI 모델이 카나리 배포 중이면, 카나리 배포 실행 상태와 배포 비율에 관한 정보를 제공할 수 있다.
본 발명의 일 실시예에서, AI 모델 모니터링부(400)는 복수의 버전을 갖는 AI 모델에 대한 버전별 로그 데이터를 제공하며, 초기 조회 이후, 미리 설정된 주기에 따라 로그 데이터를 갱신하여 표시하는 포드(POD) 로그 조회부(410)를 포함할 수 있다. 로그 데이터의 갱신 주기는 로그 데이터의 처리량과 모니터링을 위해 필요한 시간 등을 고려하여, 예를 들어, 5초로 설정될 수 있다.
본 발명의 AI 모델 서빙 시스템(10)의 AI 모델 등록부(100), AI 모델 검색부(200), AI 모델 배포부(300), AI 모델 모니터링부(400)는 웹 상에서 유저 인터페이스를 통해 명령을 입력받아 실행된다. 따라서, 사용자는 AI 모델의 등록 및 배포를 위한 별도의 코딩을 실행할 필요가 없으므로, 사용자의 사용 편의성을 개선할 수 있다.
도 2는 모델 레지스트리를 구성하는 예시적인 화면을 도시한다.
도 2를 참조하면, 사용자는 모델 선택 항목(130)을 더블 클릭하여 모델 정보와 버전 목록 화면으로 전환할 수 있다. 사용자는 실행하고자 하는 AI 모델에 대한 정보를 확인한 후, 모델 등록 버튼(132)을 클릭하여 해당 AI 모델을 모델 레지스트리에 등록 및 저장할 수 있다.
모델 배포 자원 버튼(134)은 모델 레지스트리에 네임스페이스(Namespace) 생성이 되지 않은 상태면, '모델 배포 자원 생성'으로 표시되고, 이미 네임스페이스가 생성되어 있으면 '모델 배포 자원 정보'로 표시된다. 사용자는 모델 배포 자원 버튼(134)을 클릭하여 해당 AI 모델의 배포 자원 정보를 확인할 수 있다.
도 3 및 도 4는 AI 모델을 등록하기 위한 예시적인 화면을 도시한다.
도 3 및 도 4를 참조하면, 사용자는 모델 이름 등록란에 등록하고자 하는 AI 모델의 이름을 임의로 설정할 수 있다. 특정 AI 모델의 이름은 다른 AI 모델과 식별될 수 있도록 고유한 명칭을 가져야 한다. 사용자는 동일한 모델명이 이미 존재하는지 확인하기 위해 중복 체크 버튼(140)을 클릭하여 중복 여부를 확인할 수 있다.
모델 설명 항목(142)에는 해당 AI 모델에 대한 정보 및 부가적인 설명을 입력할 수 있으며, 해당 AI 모델을 등록하는 사용자 이외의 사용자가 추후 해당 AI 모델에 대해 용이하게 이해하고 활용할 수 있도록 한다.
프레임워크 선택 항목(144)은 사용자가 AI 모델의 등록과 배포에 사용할 프레임워크를 선택하도록 한다. AI 모델은 머신 러닝을 통한 학습을 통해 지속적으로 업데이트 할 수 있으며, 사용자는 머신 러닝을 수행할 프레임워크를 지정할 수 있다. 프레임워크는, 예를 들어, Tensorflow, PyTorch, Scikit-Learn, XGBoost, Triton 5 등의 상용화 된 머신 러닝 엔진이 사용될 수 있으며, 이에 제한적이지 않고, AI 모델의 머신 러닝을 위해 개발된 어떠한 엔진도 사용될 수 있다.
프레임워크 버전 항목(146)은 사용자가 선택한 프레임워크가 제공하는 버전 정보를 표시한다.
데이터 타입 항목(148)은 AI 모델의 학습에 사용된 데이터의 종류를 선택할 수 있도록 한다. 데이터 타입은, 특별히 제한적이지 않으나, Tabular, Image, Audio, Text, Custom 등이 될 수 있으며, 사용자는 데이터 타입 항목(148)에서 해당 데이터 종류를 선택할 수 있다.
AI 모델은 학습하는 데이터의 종류에 따라 다른 형태의 추론 결과물을 산출하므로, 사용자는 해당 AI 모델을 활용하고자 하는 분야에 상응하여 데이터의 종류를 구분하여 학습시킬 수 있다.
Weight 항목(150)에는 AI 모델을 학습시킨 결과로 생성된 Weight 파일이 업로드 된다. 사용자는 Weight 파일을 드래그 앤 드랍 하거나, Browse 버튼을 클릭하고 Weight 파일을 직접 선택하여 모델 레지스트리의 Object Storage에 업로드 할 수 있다. AI 모델은 AI 알고리즘을 구성하는 여러 레이어(layer)별로 연산 실행, 가중치 적용 및 출력을 통해 학습을 완료하며, 완성된 Weight 파일이 저장된다.
사용자 코드 항목(152)에는 등록된 AI 모델에 추론을 실행하기 위한 사용자 코드가 업로드 된다. 사용자는 Browse 버튼을 클릭하여 템플릿에서 생성된 압축파일을 모델 레지스트리에 업로드 할 수 있다.
사용자 코드는 입력 데이터와 AI 모델의 결합을 검증하는 용도로 사용되는 파일이다. 즉, 사용자 코드는 등록된 AI 모델이 입력 데이터에 기반하여 적합하게 생성된 모델인지 검증한다.
학습 데이터 항목(154)에는 AI 모델의 분석을 위해 학습에 사용된 데이터가 모델 레지스트리에 업로드 된다. AI 모델의 추론 결과를 모니터링 하고, 학습에 사용된 데이터의 이상 유무를 추후 확인하기 위해 학습 데이터는 저장된다. 사용자는 Browse 버튼을 클릭하여 학습 데이터 파일을 모델 레지스트리에 업로드 할 수 있다.
도 5 및 도 6는 등록된 AI 모델의 버전 업(version up)을 위한 예시적인 화면을 도시한다.
도 5 및 도 6를 참조하면, 모델 이름 항목(160)에는 동일 모델의 버전 업을 위해 기존에 등록됐던 AI 모델의 정보가 표시된다. 모델명과 프레임워크 정보는 기존과 동일하다.
모델 버전 항목(162)에는 기존에 운영되는 해당 AI 모델의 최종 버전에서 숫자 1이 추가된 번호로 모델의 버전이 등록된다.
모델 버전 설명 항목(164)에는 모델 버전과 관련하여 부가적인 설명이 필요한 경우에 해당 내용이 기입된다.
또한, AI 모델의 버전 업 등록을 위한 Weight 항목, 사용자 코드 항목, 학습 데이터 항목이 표시된다. 각 항목들은 도 4를 참조하여 설명한 바와 동일 내지 유사하다.
Weight 항목(170)에는 AI 모델을 학습시킨 결과로 생성된 Weight 파일이 업로드 된다. 사용자는 Browse 버튼을 클릭하여 모델 레지스트리의 Object Storage에 파일을 업로드 할 수 있다.
사용자 코드 항목(172)에는 등록된 AI 모델에 추론을 실행하기 위한 사용자 코드가 업로드 된다. 사용자는 Browse 버튼을 클릭하여 템플릿에서 생성된 압축파일을 모델 레지스트리에 업로드 할 수 있다.
학습 데이터 항목(174)에는 AI 모델의 분석을 위해 학습에 사용된 데이터가 모델 레지스트리에 업로드 된다. AI 모델의 추론 결과를 모니터링 하고, 학습에 사용된 데이터의 이상 유무를 추후 확인하기 위해 학습 데이터는 저장된다. 사용자는 Browse 버튼을 클릭하여 학습 데이터 파일을 모델 레지스트리에 업로드 할 수 있다.
도 7는 AI 모델의 등록 정보 조회를 나타내는 예시적인 화면을 도시한다.
도 7를 참조하면, AI 모델의 등록 정보 조회 결과, 모델 버전, 모델 상태, 서빙/서빙 상태, Canary 배포/Canary 배포 상태, 변경일시, 모델 등록 정보 조회 항목(210)이 표시된다.
사용자는 화면을 통해 AI 모델의 빌드 중, 빌드 완료(배포 가능), 빌드 실패 등과 같은 특정 AI 모델의 등록 상태를 확인할 수 있으며, 모델 등록 정보 조회 항목(210)을 클릭하여 해당 AI 모델의 상세 정보를 확인할 수 있는 팝업 화면으로 이동할 수 있다.
도 8은 AI 모델의 상세 정보 확인을 위한 팝업 화면의 예시적인 구성을 도시한다.
도 8을 참조하면, 모델 요약 정보 항목(220)에는 해당 AI 모델의 모델명, 모델 버전, 시작 일시, 종료 일시, 빌드 상태 등의 정보가 표시된다. 빌드 상태에는 사용자가 선택한 빌드에 대한 항목명, 상태(Succeeded/Failed) 및 소요된 시간 등이 표시된다.
빌드 태스크 네임(222)에는 빌드에 대한 종합적인 정보가 포함된다. 도 8의 좌측 하단의 build-from-s3 항목을 선택하면, 빌드 태스크를 구성하는 빌드 스텝(224)이 표시된다.
빌드 태스크 내 각 세부 항목이 선택되면, 해당 빌드 스텝(224)의 내용이 호출되어 우측 영역에 표시된다. 데이터는 Name-Value 형식의 테이블 형태로 표시된다.
도 9은 AI 모델의 등록 실패 시, 해당 AI 모델의 등록 정보 조회를 나타내는 예시적인 화면을 도시한다.
도 9을 참조하면, AI 모델의 등록이 실패하면, 빌드 태스크 네임(222)의 빌드 상태는 Failed로 표시된다. 또한, 도면의 하단 좌측과 같이 각 빌드 스텝(224)의 Error 유무가 표시되며, 하단 우측과 같이 Name-Value 형식으로 상세 로그 내용이 표시된다.
사용자는 모델 등록 정보 조회를 통해 AI 모델의 등록 정보와 함께 등록 실패 시, 각 빌드 스텝(224)의 Error 유무를 즉각적으로 확인하여 필요한 조치를 실행할 수 있다.
도 10은 등록된 AI 모델의 배포를 위한 예시적인 화면을 도시한다.
도 10을 참조하면, Concurrency(동시성) 항목(320)은 해당 AI 모델의 서빙 요청에 일시에 응답할 수 있는 수치를 나타낸다. 사용자는 여러 수치를 미리 설정하여 드롭 다운 박스 형태로 Concurrency 항목(320)을 구성하고, 특정 수치를 선택하여 조절할 수 있다.
배포 자원 표시 항목(322)에는 할당받은 클러스터 자원에서 해당 AI 모델의 서빙을 위한 총 할당 자원과 사용할 자원이 표시된다. 도면에는, CPU, Memory, GPU, Replica 항목이 표시되어 있으며, 총 할당 자원과 사용할 자원이 표시되어 있으므로, 사용자는 해당 AI 모델의 서빙에 소요되는 자원 현황을 용이하게 확인할 수 있다.
배포 자원 범위 항목(324)에는 AI 모델의 종류에 따라 자원 배분량을 미리 정의하여, 예를 들어, Small, Medium, Large 로 범위를 구분하여 자원을 제공할 수 있고, 또는, 사용자가 자원 사용량을 직접 설정하도록 구성할 수도 있다.
Replica 항목(326)은 서빙 하려는 AI 모델의 복제 개수를 나타내며, 사용자가 여러 수치의 복제 개수를 미리 설정하고, 드롭 다운 박스 형태로 복제 개수를 선택할 수 있도록 구성할 수 있다.
Replica는 AI 모델을 서빙하는 쿠버네티스(Kubernetes) 클러스터 환경에서 설정되며, 외부 사용 요청이 많거나 AI 모델의 성능이 많이 필요할 때 사용된다. Replica는 AI 모델을 안정적으로 운영하기 위한 수단이며, AI 모델을 운영 중인 쿠버네티스 클러스터의 여러 포드(POD) 중 일부의 포드가 비정상 종료가 되더라도 다른 포드가 전체 시스템에 영향이 없도록 AI 모델의 서비스를 계속해서 운영하면서 비정상 종료된 포드의 복구를 시도하도록 하는 시스템 도구이다. 설정된 Replica의 개수 만큼 배포 자원이 더 많이 점유되어 사용된다.
AI 모델이 GPU 기능을 사용할 때 GPU 설정 항목(328)에서 GPU의 자원 할당량이 설정될 수 있으며, 사용자가 직접 범위를 설정하거나, 드롭 다운 박스 형태로 미리 설정된 범위를 선택할 수 있도록 구성할 수 있다.
도 11 및 도 12은 AI 모델의 카나리 배포를 위한 예시적인 화면을 도시한다.
도 11 및 도 12을 참조하면, 사용자는 배포 비율 조정 항목(312)을 통해 현재 서빙 되고 있는 AI 모델의 버전과 카나리 배포로 진행할 다른 버전의 AI 모델의 배포 비율을 설정할 수 있다.
이미 사용되고 있는 AI 모델을 버전 업 하여, 새로운 버전의 AI 모델을 배포하는 경우, 새로운 버전의 AI 모델의 실행 에러 등으로 인하여 서비스의 원활한 제공이 제한될 수 있다.
사용자는 기존 버전의 AI 모델과 새로운 버전의 AI 모델이 일정 비율로 배포되도록 비율을 조정할 수 있으며, 새로운 버전의 AI 모델의 실행 에러 등을 모니터링 하면서, 기존 버전의 AI 모델을 새로운 버전의 AI 모델로 대체할 때까지 연속적으로 배포 비율을 조정할 수도 있다.
도 12을 참조하면, 카나리 배포 시, 배포 자원 표시 항목(322), 배포 자원 범위 항목(324), Replica 항목(326) 및 GPU 설정 항목(328)이 표시된다.
도 12의 자원 설정은 기존 버전의 AI 모델과 새로운 버전의 AI 모델에 할당한 자원 사용량을 설정하기 위함이며, 각 항목들은 도 10을 참조하여 설명한 내용과 동일 내지 유사하다.
배포 자원 표시 항목(322)에는 할당받은 클러스터 자원에서 여러 버전의 AI 모델의 서빙을 위한 총 할당 자원과 사용할 자원이 표시된다. 도면에는, CPU, Memory, GPU, Replica 항목이 표시되어 있으며, 총 할당 자원과 사용할 자원이 표시되어 있으므로, 사용자는 해당 AI 모델의 서빙에 소요되는 자원 현황을 용이하게 확인할 수 있다.
배포 자원 범위 항목(324)에는 AI 모델의 종류에 따라 자원 배분량을 미리 정의하여, 예를 들어, Small, Medium, Large 로 범위를 구분하여 자원을 제공할 수 있고, 또는, 사용자가 자원 사용량을 직접 설정하도록 구성할 수도 있다.
Replica 항목(326)은 서빙 하려는 AI 모델의 복제 개수를 나타내며, 사용자가 여러 수치의 복제 개수를 미리 설정하고, 드롭 다운 박스 형태로 복제 개수를 선택할 수 있도록 구성할 수 있다.
AI 모델이 GPU 기능을 사용할 때 GPU 설정 항목(328)에서 GPU의 자원 할당량이 설정될 수 있으며, 사용자가 직접 범위를 설정하거나, 드롭 다운 박스 형태로 미리 설정된 범위를 선택할 수 있도록 구성할 수 있다.
도 13은 AI 모델의 서빙 전의 예시적인 관리 화면을 도시한다.
도 13을 참조하면, 사용자가 도 2의 모델 선택 항목(130)을 클릭하면, 해당 AI 모델의 모델 버전과 모델 상태가 표시된다.
모델 상세 추가 옵션 항목(420)에는 모델 배포 자원 정보를 확인할 수 있도록 하는 아이콘과 모델 삭제 아이콘이 포함될 수 있으며, 사용자의 선택에 따라 해당 AI 모델의 정보를 확인하거나 모델을 삭제할 수 있다.
모델 서빙 상태 항목(422)에는 AI 모델의 서빙 상태를 중지, 일시정지, 서빙 시작으로 구분한 아이콘이 표시될 수 있으며, 사용자가 서빙 시작 아이콘을 클릭하면, 모델 배포를 위해 도 10과 같은 서빙 설정 화면으로 이동할 수 있다.
모델 버전의 추가 옵션 항목(424)에는 모델 버전 상세 정보, 워크플로우 조회, 모델 버전 삭제를 위한 아이콘이 표시될 수 있으며, 사용자의 선택에 따라 특정 아이콘을 클릭하면 해당 화면으로 이동하거나, 기능이 실행될 수 있다.
모델 버전 추가 버튼(426)은 기존 버전의 AI 모델을 버전 업 하여 새로 등록하기 위한 것으로, 사용자가 해당 항목을 클릭하면 도 5 및 도 6와 같은 모델 버전 등록을 위한 페이지가 열릴 수 있다.
도 14는 AI 모델의 서빙 실패 시의 예시적인 관리 화면을 도시하며, 도 15은 AI 모델 서빙의 에러 정보를 표시하는 예시적인 팝업 화면을 도시한다.
도 14를 참조하면, AI 모델의 서빙 실패 시 관리 화면의 모델 서빙 상태 항목(422)에는 ERROR 아이콘이 표시되며, 사용자가 ERROR 아이콘을 클릭하면, 도 15과 같이 팝업으로 AI 모델 서빙의 에러 정보가 표시된다. 서비스 생성 오류 정보로서 Type, Time, Reason, Message 정보 등이 포함될 수 있다. 사용자는 화면을 통해 서비스 생성 오류 정보를 즉각적으로 확인하여, 오류의 교정에 적합한 조치를 실행할 수 있다.
도 16는 카나리 배포를 하지 않는 AI 모델의 배포에 관한 예시적인 화면을 도시하며, 도 17는 카나리 배포를 하는 AI 모델의 배포에 관한 예시적인 화면을 도시한다.
도 16의 모델 서빙 상태 항목(422)은 RUNNING, WAITING, DELETED로 표시될 수 있으며, 카나리 배포를 하지 않은 상태에서는, Canary 배포 상태 항목(428)에 Canary 배포 추가 아이콘이 표시될 수 있다.
도 17는 카나리 배포 상태를 나타내므로, Canary 배포 상태 항목(428)에 RUNNING으로 표시되며, 새로운 버전의 AI 모델의 배포 비율이 표시된다. 예를 들어, 도면에서, Canary 배포 상태 항목(428)에 10%로 표시되어 있으며, 이는 기존 버전의 AI 모델이 90%, 새로운 버전의 AI 모델이 10% 비율로 배포되는 것을 의미한다.
도 18는 카나리 배포 중인 AI 모델의 서비스 대시보드에 관한 예시적인 화면을 도시하며, 도 19은 AI 모델별 포드(POD) 로그 조회에 관한 예시적인 화면을 도시한다.
도 18를 참조하면, 사용자는 서비스 대시보드에서 현재 서빙 중인 AI 모델의 기본 정보 설정과 서빙 설정 정보를 확인할 수 있으며, 로그 조회 항목(430)을 클릭하면 현재 서빙 중인 AI 모델의 포드(POD) 로그가 표시되는 팝업 창이 열릴 수 있다.
도 19에서, 모델 버전 항목(432)에서, 카나리 배포 중인 AI 모델들의 버전을 선택할 수 있으며, 도면에서는 '모두'로 표시되어, 모델의 버전 구분 없이 로그가 로딩된다. 사용자는 드롭 다운 박스에서 모델 버전을 선택할 수 있으며, 특정 버전을 선택하면, 해당 버전에 따른 로그를 신규로 로딩하여 표면에 표시할 수 있다.
로그 창(434)에는 AI 모델의 로그 데이터가 실행 일시 및 내용이 결합한 형태로 조회 시간으로부터 소정 시간 전의 정보가 표시된다.
로그 갱신 표시(436)에는 초기 조회 이후 로그 데이터가 갱신되는 주기가 표시되며, 미리 설정된 주기에 따라 로그 데이터가 갱신되면서, 최신 로그 데이터가 로그 창(434)의 하단에 추가될 수 있다.
여기서, 사용자는 로그 데이터의 갱신 주기를 미리 설정할 수 있으며, 도면에서는 5초로 설정되어, 조회 시간으로부터 5초 전의 로그 데이터가 표시되며, 5초마다 갱신된 최신의 로그 데이터가 로그 창(434)의 하단에 추가될 수 있다.
스크롤(438)은 로그 데이터가 계속 추가되어 현재 표시되는 로그 창(434)을 벗어나면 생성되며, 사용자는 스크롤(438)을 조정하여 확인하고자 하는 부분의 로그 데이터를 확인할 수 있다.
도 20은 본 발명의 일 실시예에 따른 AI 모델 서빙 방법을 도시하는 순서도이다.
도 20을 참조하면, 본 발명의 AI 모델 서빙 방법은, 머신 러닝이 가능한 AI 모델이 AI 모델 등록부(100)에 등록되는 단계(S100), AI 모델 등록부(100)에 등록된 AI 모델의 등록 정보가 AI 모델 검색부(200)에서 조회되는 단계(S200), AI 모델의 머신 러닝을 실행하고자 하는 사용 환경에 AI 모델 배포부(300)를 통해 AI 모델이 배포되는 단계(S300), 및 AI 모델 배포부(300)를 통해 배포된 AI 모델의 실행 상태와 로그 데이터가 AI 모델 모니터링부(400)를 통해 모니터링 되는 단계(S400)를 포함한다. 여기서, AI 모델 등록부(100), AI 모델 검색부(200), AI 모델 배포부(300) 및 AI 모델 모니터링부(400)는 웹 상에서 유저 인터페이스를 통해 명령을 입력받아 실행된다.
본 발명의 일 실시예에서, AI 모델이 등록되는 단계(S100)는, AI 모델의 머신 러닝이 실행되는 프레임워크가 등록되는 단계 및/또는 특정 AI 모델의 버전별 모델 정보가 기록되어 저장되는 단계를 포함할 수 있다.
본 발명의 다른 실시예에서, AI 모델이 등록되는 단계(S100)는, AI 모델을 학습시킨 결과로 생성된 weight 파일, 등록된 AI 모델에 추론을 실행하기 위한 사용자 코드, 및 AI 모델의 분석을 위해 학습에 사용된 데이터가 웹 상에서 유저 인터페이스를 통해 업로드 되는 단계를 포함할 수 있다.
본 발명의 다른 실시예에서, AI 모델이 등록되는 단계(S100)는, AI 모델 버전, AI 모델 상태, AI 모델의 서빙 상태, AI 모델의 카나리 배포 상태 및 AI 모델 버전의 변경일시에 관한 하나 이상의 정보가 웹 상에서 모니터 화면을 통해 제공되는 단계를 포함할 수 있다.
본 발명의 일 실시예에서, AI 모델의 등록 조회 단계(S200)는, AI 모델의 등록 실패 시, AI 모델에 적용되는 빌드 태스크 네임과 빌드 스텝의 실패 및 에러 정보가 제공되는 단계를 포함할 수 있다.
본 발명의 일 실시예에서, AI 모델의 배포 단계(S300)는, AI 모델의 서빙 요청에 일시에 응답 가능한 수치를 나타내는 Concurrency(동시성), AI 모델에 할당되는 배포 자원의 범위, 서빙하려는 AI 모델의 복제 개수를 나타내는 레플리카, 또는 AI 모델이 사용하는 GPU의 자원 할당량이 설정되는 단계를 포함할 수 있다.
본 발명의 다른 실시예에서, AI 모델의 배포 단계(S300)는, 현재 서빙되고 있는 AI 모델과 카나리 배포로 진행할 버전업 된 AI 모델의 배포 비율이 설정되는 단계를 포함할 수 있다.
본 발명의 일 실시예에서, AI 모델의 모니터링 단계(S400)는, AI 모델이 카나리 배포 중이면, 카나리 배포 실행 상태와 배포 비율에 관한 정보가 제공되는 단계를 포함할 수 있다.
본 발명의 다른 실시예에서, AI 모델의 모니터링 단계(S400)는, 복수의 버전을 갖는 AI 모델에 대한 버전별 로그 데이터가 제공되며, 초기 조회 이후, 미리 설정된 주기에 따라 로그 데이터가 갱신되어 표시되는 단계를 포함할 수 있다.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 컨트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로 컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서 (parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody) 될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나, 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드 뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
지금까지 본 발명을 바람직한 실시 예를 참조하여 상세히 설명하였지만, 본 발명이 상기한 실시 예에 한정되는 것은 아니며, 이하의 특허청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 또는 수정이 가능한 범위까지 본 발명의 기술적 사상이 미친다 할 것이다.

Claims (20)

  1. 머신 러닝이 가능한 AI 모델을 등록하는 AI 모델 등록부;
    상기 AI 모델 등록부에 등록된 AI 모델의 등록 정보를 조회하는 AI 모델 검색부;
    상기 AI 모델 등록부에 등록된 AI 모델을 머신 러닝을 실행하고자 하는 사용 환경에 적용시키는 AI 모델 배포부; 및
    상기 AI 모델 배포부를 통해 배포된 AI 모델의 실행 상태와 로그 데이터를 모니터링 하는 AI 모델 모니터링부를 포함하며,
    상기 AI 모델 등록부, AI 모델 검색부, AI 모델 배포부 및 AI 모델 모니터링부는 웹 상에서 유저 인터페이스를 통해 명령을 입력받아 실행되는 것을 특징으로 하는 AI 모델 서빙 시스템.
  2. 제1항에 있어서,
    상기 AI 모델 등록부는,
    상기 AI 모델의 머신 러닝이 실행되는 프레임워크를 선택하는 프레임워크 선택부를 포함하는 것을 특징으로 하는 AI 모델 서빙 시스템.
  3. 제1항에 있어서,
    상기 AI 모델 등록부는,
    특정 AI 모델의 버전별 모델 정보를 기록하고 저장하는 AI 모델 버전 관리부를 포함하는 것을 특징으로 하는 AI 모델 서빙 시스템.
  4. 제1항에 있어서,
    상기 AI 모델 등록부는,
    상기 AI 모델을 학습시킨 결과로 생성된 weight 파일, 등록된 AI 모델에 추론을 실행하기 위한 사용자 코드, 및 AI 모델의 분석을 위해 학습에 사용된 데이터를 웹 상에서 유저 인터페이스를 통해 업로드 하는 것을 특징으로 하는 AI 모델 서빙 시스템.
  5. 제1항에 있어서,
    상기 AI 모델 검색부는,
    AI 모델 버전, AI 모델 상태, AI 모델의 서빙 상태, AI 모델의 카나리 배포 상태 및 AI 모델 버전의 변경일시에 관한 하나 이상의 정보를 웹 상에서 모니터 화면을 통해 제공하는 것을 특징으로 하는 AI 모델 서빙 시스템.
  6. 제1항에 있어서,
    상기 AI 모델 검색부는,
    상기 AI 모델 등록부를 통한 상기 AI 모델의 등록 실패 시, 상기 AI 모델에 적용되는 빌드 태스크 네임과 빌드 스텝의 실패 및 에러 정보를 제공하는 것을 특징으로 하는 AI 모델 서빙 시스템.
  7. 제1항에 있어서,
    상기 AI 모델 배포부는,
    상기 AI 모델의 서빙 요청에 일시에 응답 가능한 수치를 나타내는 Concurrency(동시성), 상기 AI 모델에 할당되는 배포 자원의 범위, 서빙하려는 AI 모델의 복제 개수를 나타내는 레플리카, 또는 상기 AI 모델이 사용하는 GPU의 자원 할당량을 설정하는 것을 특징으로 하는 AI 모델 서빙 시스템.
  8. 제1항에 있어서,
    상기 AI 모델 배포부는,
    현재 서빙되고 있는 AI 모델과 카나리 배포로 진행할 버전업 된 AI 모델의 배포 비율을 설정하는 카나리 배포 제어부를 포함하는 것을 특징으로 하는 AI 모델 서빙 시스템.
  9. 제8항에 있어서,
    상기 AI 모델 모니터링부는,
    상기 AI 모델이 카나리 배포 중이면, 카나리 배포 실행 상태와 배포 비율에 관한 정보를 제공하는 것을 특징으로 하는 AI 모델 서빙 시스템.
  10. 제1항에 있어서,
    상기 AI 모델 모니터링부는,
    복수의 버전을 갖는 AI 모델에 대한 버전별 로그 데이터를 제공하며, 초기 조회 이후, 미리 설정된 주기에 따라 로그 데이터를 갱신하여 표시하는 포드(POD) 로그 조회부를 포함하는 것을 특징으로 하는 AI 모델 서빙 시스템.
  11. (a) 머신 러닝이 가능한 AI 모델이 AI 모델 등록부에 등록되는 단계;
    (b) 상기 AI 모델 등록부에 등록된 AI 모델의 등록 정보가 AI 모델 검색부에서 조회되는 단계;
    (c) 상기 AI 모델의 머신 러닝을 실행하고자 하는 사용 환경에 AI 모델 배포부를 통해 상기 AI 모델이 배포되는 단계; 및
    (d) 상기 AI 모델 배포부를 통해 배포된 AI 모델의 실행 상태와 로그 데이터가 AI 모델 모니터링부를 통해 모니터링 되는 단계를 포함하며,
    상기 AI 모델 등록부, AI 모델 검색부, AI 모델 배포부 및 AI 모델 모니터링부는 웹 상에서 유저 인터페이스를 통해 명령을 입력받아 실행되는 것을 특징으로 하는 AI 모델 서빙 방법.
  12. 제11항에 있어서,
    상기 (a) 단계는,
    상기 AI 모델의 머신 러닝이 실행되는 프레임워크가 등록되는 단계를 포함하는 것을 특징으로 하는 AI 모델 서빙 방법.
  13. 제11항에 있어서,
    상기 (a) 단계는,
    특정 AI 모델의 버전별 모델 정보가 기록되어 저장되는 단계를 포함하는 것을 특징으로 하는 AI 모델 서빙 방법.
  14. 제11항에 있어서,
    상기 (a) 단계는,
    상기 AI 모델을 학습시킨 결과로 생성된 weight 파일, 등록된 AI 모델에 추론을 실행하기 위한 사용자 코드, 및 AI 모델의 분석을 위해 학습에 사용된 데이터가 웹 상에서 유저 인터페이스를 통해 업로드 되는 단계를 포함하는 것을 특징으로 하는 AI 모델 서빙 방법.
  15. 제11항에 있어서,
    상기 (b) 단계는,
    AI 모델 버전, AI 모델 상태, AI 모델의 서빙 상태, AI 모델의 카나리 배포 상태 및 AI 모델 버전의 변경일시에 관한 하나 이상의 정보가 웹 상에서 모니터 화면을 통해 제공되는 단계를 포함하는 것을 특징으로 하는 AI 모델 서빙 방법.
  16. 제11항에 있어서,
    상기 (b) 단계는,
    상기 AI 모델의 등록 실패 시, 상기 AI 모델에 적용되는 빌드 태스크 네임과 빌드 스텝의 실패 및 에러 정보가 제공되는 단계를 포함하는 것을 특징으로 하는 AI 모델 서빙 방법.
  17. 제11항에 있어서,
    상기 (c) 단계는,
    상기 AI 모델의 서빙 요청에 일시에 응답 가능한 수치를 나타내는 Concurrency(동시성), 상기 AI 모델에 할당되는 배포 자원의 범위, 서빙하려는 AI 모델의 복제 개수를 나타내는 레플리카, 또는 상기 AI 모델이 사용하는 GPU의 자원 할당량이 설정되는 단계를 포함하는 것을 특징으로 하는 AI 모델 서빙 방법.
  18. 제11항에 있어서,
    상기 (c) 단계는,
    현재 서빙되고 있는 AI 모델과 카나리 배포로 진행할 버전업 된 AI 모델의 배포 비율이 설정되는 단계를 포함하는 것을 특징으로 하는 AI 모델 서빙 방법.
  19. 제18항에 있어서,
    상기 (d) 단계는,
    상기 AI 모델이 카나리 배포 중이면, 카나리 배포 실행 상태와 배포 비율에 관한 정보가 제공되는 단계를 포함하는 것을 특징으로 하는 AI 모델 서빙 방법.
  20. 제11항에 있어서,
    상기 (d) 단계는,
    복수의 버전을 갖는 AI 모델에 대한 버전별 로그 데이터가 제공되며, 초기 조회 이후, 미리 설정된 주기에 따라 로그 데이터가 갱신되어 표시되는 단계를 포함하는 것을 특징으로 하는 AI 모델 서빙 방법.
PCT/KR2022/017476 2021-11-09 2022-11-08 Ai 모델 서빙 시스템 및 방법 WO2023085738A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2021-0153158 2021-11-09
KR1020210153158A KR102622170B1 (ko) 2021-11-09 2021-11-09 Ai 모델 서빙 시스템 및 방법

Publications (1)

Publication Number Publication Date
WO2023085738A1 true WO2023085738A1 (ko) 2023-05-19

Family

ID=86336078

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2022/017476 WO2023085738A1 (ko) 2021-11-09 2022-11-08 Ai 모델 서빙 시스템 및 방법

Country Status (2)

Country Link
KR (1) KR102622170B1 (ko)
WO (1) WO2023085738A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200175416A1 (en) * 2018-11-30 2020-06-04 Jpmorgan Chase Bank, N.A. Methods for sharing machine learning based web service models
KR20210055992A (ko) * 2019-11-08 2021-05-18 엘지전자 주식회사 인공지능 모델 관리 방법 및 장치
US20210182729A1 (en) * 2019-12-11 2021-06-17 Cisco Technology, Inc. Systems and methods for providing management of machine learning components
KR102311787B1 (ko) * 2021-01-06 2021-10-08 한전케이디엔주식회사 Ai 모델의 성능 저하 방지를 위한 ai 모델 관리 장치 및 그 방법
KR20210131720A (ko) * 2020-04-24 2021-11-03 (주)엔투엠 인공지능 모델을 관리하는 방법 및 시스템

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210063610A (ko) 2019-11-25 2021-06-02 한국전자기술연구원 인공 지능 서비스 제공을 위한 마이크로 서비스 기반의 인공 지능 장치 및 그 방법
US11822913B2 (en) 2019-12-20 2023-11-21 UiPath, Inc. Dynamic artificial intelligence / machine learning model update, or retrain and update, in digital processes at runtime
KR102232364B1 (ko) 2020-07-29 2021-03-26 한국전자기술연구원 마이크로 서비스 단위 엣지 응용에서의 서비스 중단 없는 엣지 응용 업데이트 방법
KR102284539B1 (ko) * 2020-11-30 2021-08-02 주식회사 애자일소다 머신러닝 기반 인공지능 모델 학습, 개발, 배포 및 운영 시스템과 이를 이용한 서비스 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200175416A1 (en) * 2018-11-30 2020-06-04 Jpmorgan Chase Bank, N.A. Methods for sharing machine learning based web service models
KR20210055992A (ko) * 2019-11-08 2021-05-18 엘지전자 주식회사 인공지능 모델 관리 방법 및 장치
US20210182729A1 (en) * 2019-12-11 2021-06-17 Cisco Technology, Inc. Systems and methods for providing management of machine learning components
KR20210131720A (ko) * 2020-04-24 2021-11-03 (주)엔투엠 인공지능 모델을 관리하는 방법 및 시스템
KR102311787B1 (ko) * 2021-01-06 2021-10-08 한전케이디엔주식회사 Ai 모델의 성능 저하 방지를 위한 ai 모델 관리 장치 및 그 방법

Also Published As

Publication number Publication date
KR102622170B1 (ko) 2024-01-05
KR20230067257A (ko) 2023-05-16

Similar Documents

Publication Publication Date Title
WO2020017847A1 (ko) 클라우드 플랫폼에서의 멀티 클러스터 프로비저닝 및 관리 방법
WO2020017843A1 (ko) 클라우드 플랫폼에서의 클러스터 리소스 할당 및 관리 방법
WO2018203635A1 (ko) 클라우드 플랫폼에서 어플리케이션을 컨테이너화하는 방법
WO2020017844A1 (ko) 클라우드 플랫폼에서 복수의 클러스터 및 어플리케이션을 모니터링하는 방법
US9600264B2 (en) Generating a customized set of tasks for migration of a deployed software solution
US10176217B1 (en) Dynamically performing data processing in a data pipeline system
CN109885316B (zh) 基于kubernetes的hdfs-hbase部署方法及装置
US8539285B2 (en) Systems for agile error determination and reporting and methods thereof
JP5288334B2 (ja) 仮想アプライアンス配備システム
US8010504B2 (en) Increasing application availability during automated enterprise deployments
EP2944070B1 (en) Service migration across cluster boundaries
US20030226138A1 (en) Installation of application software through a network from a source computer system on to a target computer system
JP5657475B2 (ja) 運用管理装置、及び方法
WO2020017846A1 (ko) 클라우드 플랫폼에서 어플리케이션 컨테이너의 볼륨(스토리지) 프로비저닝 방법
CN108616384B (zh) 一种集中式的服务管理部署工具及方法
CN111580926A (zh) 模型发布方法、模型部署方法、装置、设备及存储介质
WO2018227772A1 (zh) 柜员机控件更新方法、装置、计算机设备及存储介质
WO2018105804A1 (ko) Bpm 기반의 iot diy 시스템 및 이의 구현방법
WO2023085738A1 (ko) Ai 모델 서빙 시스템 및 방법
WO2021002724A1 (en) Electronic apparatus and control method thereof
WO2018221998A1 (ko) 실시간 병목 자동 분석 방법 및 이러한 방법을 수행하는 장치
WO2010071318A2 (ko) 통합관제 및 제어시스템 및 그 방법
WO2023090807A1 (ko) 모델 서버 스케일링을 제어하는 ai 모델 운영 장치 및 방법
WO2023249361A1 (ko) 컨테이너 기반 다중 클러스터 환경에서 데이터 동기화를 위한 방법 및 장치
WO2024080425A1 (ko) 공급망 관리에 관한 작업 흐름을 제어하는 플랫폼을 제공하는 전자 장치, 그 방법, 및 프로그램이 기록된 비일시적 컴퓨터 판독 가능 기록 매체

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22893158

Country of ref document: EP

Kind code of ref document: A1