KR20210063610A - Microservice-based artificial inteligence device for providing artificial inteligence service and method thereof - Google Patents
Microservice-based artificial inteligence device for providing artificial inteligence service and method thereof Download PDFInfo
- Publication number
- KR20210063610A KR20210063610A KR1020190151937A KR20190151937A KR20210063610A KR 20210063610 A KR20210063610 A KR 20210063610A KR 1020190151937 A KR1020190151937 A KR 1020190151937A KR 20190151937 A KR20190151937 A KR 20190151937A KR 20210063610 A KR20210063610 A KR 20210063610A
- Authority
- KR
- South Korea
- Prior art keywords
- processing
- module
- policy
- input
- post
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/76—Adapting program code to run in a different environment; Porting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
Abstract
Description
본 발명은 인공 지능 서비스를 제공하는 기술에 관한 것으로, 특히, 어플리케이션을 마이크로서비스(microservice) 단위의 구성 요소로 분할하는 기술에 관한 것이다.The present invention relates to a technology for providing an artificial intelligence service, and more particularly, to a technology for dividing an application into components of a microservice unit.
- 현재의 머신 러닝 및 뉴럴 네트워크 기술은 정확도를 높이기 위한 경쟁이 진행 중이며, 이를 위하여 클라우드, 혹은 GPU 등의 기술을 통한 빠르고 정확한 분석 알고리즘 및 프레임워크의 개발로 진행되고 있다.- Current machine learning and neural network technologies are competing to increase accuracy, and for this purpose, rapid and accurate analysis algorithms and frameworks are being developed through technologies such as cloud or GPU.
- 하지만 이렇게 개발된 모델들을 실생활에서 사용하기 위해서는 각각의 프레임워크와 함께 정확한 추론을 제공하는 알고리즘(모델)의 적절한 배포 및 갱신이 진행될 수 있어야 한다.- However, in order to use the developed models in real life, the appropriate distribution and update of algorithms (models) that provide accurate reasoning with each framework must be able to proceed.
- 현재의 AI 어플리케이션들은 단독 어플리케이션 형태의 구성으로 해당 서비스를 외부에 제공하는 서비스 형태의 구성이 아닌, 입력데이터 수신, 입력 테이터 가공, 모델 연산 및 데이터 후처리를 단일 어플리케이션 상에서 제공한다.- Current AI applications provide input data reception, input data processing, model operation, and data post-processing in a single application, rather than a service type configuration that provides the service to the outside with a single application configuration.
이와 같은 구성은 동일한 모델을 활용하는 다른 어플리케이션에 있어 기존 어플리케이션의 수정이 요구되어 서비스 및 어플리케이션 로직의 재활용성을 크게 저하시키는 요소이다.Such a configuration is a factor that greatly degrades the reusability of services and application logic because other applications using the same model require modification of existing applications.
본 발명의 목적은 기존의 인공지능 소프트웨어에서, 소프트웨어 재활용성 및 관리 성능의 갱신을 위하여 1) 마이크로 서비스 기반 서비스 구조 및 이러한 서비스 구조에 기반한 2) 입출력 제어 기술을 제공하는 장치 및 방법을 제공하는 데 있다.An object of the present invention is to provide an apparatus and method for providing 1) a microservice-based service structure and 2) input/output control technology based on the service structure for updating software reusability and management performance in existing artificial intelligence software. have.
본 발명의 전술한 목적들 및 그 이외의 목적과 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부된 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해진다.The above and other objects, advantages and features of the present invention, and a method for achieving them will become clear when referring to the embodiments described below in detail in conjunction with the accompanying drawings.
본 발명의 일면에 따른 AI 장치는 입력 데이터의 전처리 과정을 처리하는 입력 처리 모듈; 상기 입력 처리 모듈에 의해 전처리된 입력 데이터에 대해 AI 모델 연산 과정을 처리하는 AI 모델 연산 모듈; 및 상기 AI 모델 연산 모듈에 의해 연산된 결과 데이터의 후처리 과정을 처리하는 출력 처리 모듈을 포함하고, 상기 전치리 과정, 상기 AI 모델 연산 과정 및 상기 후처리 과정은 마이크로서비스에 따라 정의된 프로세스이다. An AI device according to an aspect of the present invention includes an input processing module for processing a pre-processing of input data; an AI model calculation module for processing an AI model calculation process with respect to the input data preprocessed by the input processing module; and an output processing module for processing a post-processing process of the result data calculated by the AI model computation module, wherein the pre-processing process, the AI model computation process, and the post-processing process are processes defined according to microservices. .
본 발명의 다른 일면에 따른 컨테이너화된 어플리케이션을 배포하는 방법은, 마이크로서비스 플랫폼 장치에서 컨테이너화된 어플리케이션을 배포하는 방법으로서, 기존의 어플리케이션들 중에서 대상 어플리케이션을 선정하는 단계; 상기 선정된 대상 어플리케이션을 분석하여, 마이크로서비스로 정의되는 입력 전처리 기능, AI 모델 연산 기능 및 후처리 기능을 추출하는 단계; 상기 추출된 입력 전처리 기능, AI 모델 연산 기능 및 후처리 기능을 컨테이너화된 모듈로 각각 구성하는 단계; 각 컨테이너화된 모듈에 대한 운용 정책을 설정하는 단계; 및 각 컨테이너화된 모듈을 배포하는 단계;를 포함한다. A method of distributing a containerized application according to another aspect of the present invention is a method of distributing a containerized application in a microservice platform device, the method comprising: selecting a target application from among existing applications; analyzing the selected target application and extracting an input pre-processing function defined as a microservice, an AI model calculation function, and a post-processing function; configuring the extracted input pre-processing function, AI model calculation function, and post-processing function into containerized modules, respectively; setting an operation policy for each containerized module; and distributing each containerized module.
본 발명의 또 다른 일면에 따른 마이크로서비스 플랫폼 장치는, 입력 전처리 기능, AI 모델 연산 기능 및 후처리 기능을 구비한 대상 어플리케이션을 선정하는 어플리케이션 선정부; 상기 선정된 대상 어플리케이션의 입력 전처리 기능, AI 모델 연산 기능 및 후처리 기능을 컨테이너화된 모듈로 각각 구성하는 컨테이너 구성부; 및 각 컨테이너화된 모듈에 대한 운용 정책을 설정하는 운용 정책 설정부를 포함한다. A microservices platform device according to another aspect of the present invention includes: an application selection unit for selecting a target application having an input pre-processing function, an AI model calculation function, and a post-processing function; a container configuration unit that configures the input pre-processing function, the AI model calculation function, and the post-processing function of the selected target application into containerized modules, respectively; and an operation policy setting unit for setting an operation policy for each containerized module.
본 발명의 또 다른 일면에 따른 AI 장치는, 특정 url로부터 로딩된 이미지 파일 또는 비디오 파일을 리사이징(resize) 및 어레이(array) 형태로 변경하는 전처리 과정을 처리하는 입력 처리 모듈; 상기 전처리 과정에 따라 생성된 데이터에 대해 AI 모델 연산 과정을 처리하는 AI 모델 연산 모듈; 및 상기 AI 모델 연산 모듈에 의해 연산된 결과 데이터의 후처리 과정을 처리하는 출력 처리 모듈;을 포함하고, 상기 전치리 과정, 상기 AI 모델 연산 과정 및 상기 후처리 과정은 마이크로서비스에 따라 정의된 프로세스이다. AI device according to another aspect of the present invention, an input processing module for processing a preprocessing process of changing the image file or video file loaded from a specific url to the resizing (resize) and array (array) form; an AI model calculation module for processing an AI model calculation process for the data generated according to the preprocessing process; and an output processing module for processing a post-processing process of the result data calculated by the AI model computation module, wherein the pre-position process, the AI model computation process, and the post-processing process are defined according to microservices to be.
본 발명에 의하면, 기존 어플리케이션은 단일 어플리케이션 형태로 어플리케이션 내에서 입력 데이터의 선처리 및 출력의 후처리를 단일로 진행하여 서비스화가 어렵고, 개발된 코드에 대한 재활용성이 저하되는 반면, 마이크로 서비스 기반 AI 서비스 아키텍쳐를 제안하고 이를 기반으로 하는 입/출력 관리 기술을 제공함으로서, 이를 통하여 기존 어플리케이션 로직의 다양한 서비스 환경 대응 구성이 가능하다.According to the present invention, the existing application performs pre-processing of input data and post-processing of output in a single application in the form of a single application, making it difficult to service and reducing the reusability of the developed code, whereas microservice-based AI service By proposing the architecture and providing input/output management technology based on it, it is possible to configure the existing application logic to respond to various service environments.
또한, 분석 어플리케이션의 성능 향상을 위하여, 어플리케이션 전체를 갱신하는 게 아닌, 입/출력 모델들만을 해당 마이크로 서비스로 대체함으로써 서비스 구성을 위한 코드 재활용성을 강화시킬 수 있고, 또한 입출력 모델을 관리하기 위한 체계적 방안을 제시함으로써 인공 지능 기반 서비스 개발 난이도 저하 및 서비스 활성화를 도모할 수 있다.In addition, in order to improve the performance of the analysis application, it is possible to enhance the code reusability for service configuration by replacing only the input/output models with the corresponding microservice, rather than updating the entire application, and also for managing the input/output model. By proposing a systematic plan, it is possible to reduce the difficulty of developing AI-based services and promote service.
도 1은 본 발명의 실시 에에 따른 마이크로 서비스 기반의 AI장치의 전체 구성도.
도 2는 본 발명의 실시 예에 따른 마이크로 서비스 기반의 어플리케이션을 배포하는 마이크로서비스 플랫폼 장치의 전체 구성도.1 is an overall configuration diagram of a microservice-based AI device according to an embodiment of the present invention.
2 is an overall configuration diagram of a microservice platform device for distributing a microservice-based application according to an embodiment of the present invention.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.In the present invention, various modifications may be made and various embodiments may be provided, and specific embodiments will be illustrated in the drawings and described in detail. However, this is not intended to limit the present invention to a specific embodiment, it should be understood to include all changes, equivalents, and substitutes included in the spirit and scope of the present invention.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the present application are only used to describe specific embodiments, and are not intended to limit the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In the present application, terms such as "comprise" or "have" are intended to designate the presence of features, numbers, steps, actions, components, parts, or combinations thereof described in the specification, but one or more other features. It is to be understood that the presence or addition of elements or numbers, steps, actions, components, parts, or combinations thereof does not preclude in advance.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 갖는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms including technical or scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which the present invention belongs. Terms as defined in a commonly used dictionary should be interpreted as having a meaning consistent with the meaning in the context of the related technology, and should not be interpreted as an ideal or excessively formal meaning unless explicitly defined in the present application. Does not.
[용어의 정의][Definition of Terms]
마이크로서비스(microservices ( microservicemicroservice ))
마이크로서비스는 어플리케이션을 느슨히 결합된 서비스의 모임으로 구조화하는 서비스 지향 아키텍처 스타일의 일종인 소프트웨어 개발 기법을 의미한다. 마이크로서비스는 프로세스의 최소 단위를 정의하는 용어로 사용될 수 있다. 이러한 마이크로서비스와 관련된 몇 가지 용어들을 더 살펴보면, 다음과 같다. 마이크로서비스 아키텍처(microservice architecture, MSA)의 서비스들은 HTTP와 같은 기술 불가지론적인 프로토콜을 사용하여 목표를 달성하기 위해 네트워크를 통해 통신하는 프로세스들인 경우도 있다. 그러나, 서비스들은 공유 메모리와 같은 다른 종류의 프로세스 간 통신 매커니즘을 사용할 수도 있다. 서비스들은 이를테면 OSGI 번들에서처럼 동일한 프로세스 내에서 실행할 수 있다. 마이크로서비스 아키텍처의 서비스들은 독립적인 전개(deploy)가 가능하고, 서비스의 교체가 쉽다. 마이크로서비스는 기능별로 분류된다. 서비스는 최적의 조건에 부합하는 바에 따라 각기 다른 프로그래밍 언어, 데이터베이스, 하드웨어, 소프트웨어 환경을 사용하여 구현할 수 있다. 마이크로서비스들은 규모가 작고, 메시지 전달이 가능하며 컨텍스트 별로 묶이며 자율적으로 개발되며 독립적으로 전개가 가능하며 분산적이며 자동화된 프로세스들로 출시된다. Microservices refers to a software development technique that is a type of service-oriented architecture style that structures an application as a collection of loosely coupled services. Microservices can be used as a term to define the smallest unit of a process. Some more terms related to these microservices are as follows. Services in a microservice architecture (MSA) are often processes that communicate over a network to achieve a goal using technology agnostic protocols such as HTTP. However, services may use other kinds of interprocess communication mechanisms, such as shared memory. Services can run in the same process, for example in OSGI bundles. Services in a microservices architecture can be independently deployed, and service replacement is easy. Microservices are categorized by function. Services can be implemented using different programming languages, databases, hardware, and software environments according to optimal conditions. Microservices are small, message-passable, context-bound, autonomously developed, independently deployable, distributed, and released as automated processes.
컨테이너container
컨테이너는 애플리케이션의 코드, 구성 및 종속성을 하나의 객체로 패키징하는 표준화된 방식을 설명하는 용어로 사용된다. 즉, 컨테이너는 어떤 환경에서도 일관적으로 실행되는데 필요한 구성 파일 및 종속성과 함께 코드를 패키징한다. 컨테이너는 컴퓨팅 리소스의 최적화된 사용을 위해 CPU 및 메모리 사용을 설정할 수 있는 프로세스 격리 기능을 제공한다. 즉, 컨테이너는 운영 체제의 리소스를 공유하는 개별 프로세스로 실행된다. 이는 컨테이너의 신속한 시작과 중지를 가능하게 한다. 컨테이너는 서버에 설치된 운영 체제를 공유하며 리소스가 격리된 프로세스 형태로 실행되므로 환경에 상관 없이 빠르고 안정적이며 일관된 배포를 보장한다. 마이크로서비스와 관련하여, 컨테이너는 어플리케이션을 쉽게 분리하여 마이크로서비스라는 독립적인 구성 요소로 실행할 수 있는 프로세스 격리 기능을 제공하는 용어로 사용된다. 컨테이너는 코드가 배포되는 방식을 표준화하므로 클라우드 환경 사이에서 실행되는 어플리케이션에 대한 워크플로를 쉽게 구축할 수 있다. 컨테이너를 사용하면, 머신 러닝 또는 AI 모델을 신속하게 확장하여 훈련 및 추론을 수행할 수 있게 된다.Container is used as a term to describe a standardized way of packaging an application's code, configuration, and dependencies into a single object. In other words, containers package code along with configuration files and dependencies needed to run consistently in any environment. Containers provide process isolation that allows you to set CPU and memory usage for optimized use of computing resources. In other words, containers run as separate processes that share the resources of the operating system. This enables rapid start and stop of containers. Containers share the operating system installed on the server and run as resource-isolated processes, ensuring fast, reliable and consistent deployment regardless of environment. In the context of microservices, containers are used as a term to provide process isolation that allows applications to be easily separated and run as independent components called microservices. Containers standardize how code is deployed, making it easy to build workflows for applications running across cloud environments. Using containers, you can quickly scale machine learning or AI models to perform training and inference.
최근 뉴럴 네트워크 및 머신 러닝 기술 등과 같은 분석 기술은 GPU, 클라우드 등 고성능 컴퓨팅 환경에 의하여 빠르게 진화하고 있다. 하지만 이러한 뉴럴 네트워크 및 머신 러닝 기술들은 정확도의 향상에 집중하고 있어 매우 높은 사양의 자원을 요구하는 게 일반적이다. Recently, analysis technologies such as neural networks and machine learning technologies are rapidly evolving due to high-performance computing environments such as GPU and cloud. However, these neural networks and machine learning technologies are focused on improving accuracy, so they generally require very high-spec resources.
이러한 어플리케이션들은 뉴럴 네트워크 연산을 지원할 수 있는 하드웨어 상에서, 뉴럴 네트워크 연산을 지원하기 위한 플랫폼 (예. 텐서플로우 (Tensorflow) 등)를 통하여 개발되고 있다. 이 때, 어플리케이션은 수신 또는 수집된 입력 데이터의 전처리 과정, 전처리된 입력 데이터에 대한 모델 연산 과정 및 모델 연산 과정에 따라 생성된 결과 데이터의 후처리 과정을 모두 지원하는 단일 어플리케이션 형태로 구성되고 있다. These applications are being developed through a platform (eg, Tensorflow, etc.) to support the neural network operation on hardware that can support the neural network operation. In this case, the application is configured as a single application type that supports all of the pre-processing of received or collected input data, the model computation process for the pre-processed input data, and the post-processing of the result data generated according to the model computation process.
이러한 단일 어플리케이션 형태의 구성은 1) 해당 어플리케이션의 서비스화에 대한 어려움, 2) 어플리케이션 성능 개선 시 전체 코드에 대한 관리 필요, 3) 웹 기반 서비스 구성 및 관리에 대한 어려움 등이 존재한다.In the configuration of such a single application type, there are 1) difficulties in converting the application into a service, 2) the need to manage the entire code when improving application performance, and 3) difficulties in configuring and managing web-based services.
이를 개선하기 위하여 본 발명에서는 마이크로 서비스 기반 인공지능 서비스 방법을 제공한다.In order to improve this, the present invention provides a microservice-based AI service method.
본 발명에 따른 마이크로 서비스 기반 인공지능 서비스 방법을 설명하기에 앞서, 우선, 기존의 AI 또는 인공지능 어플리케이션은 아래와 같은 기본적인 과정들을 수행한다. Before describing the microservice-based AI service method according to the present invention, first, an existing AI or artificial intelligence application performs the following basic processes.
1) 분석해야 할 소스 데이터를 로드한다. 1) Load the source data to be analyzed.
2) 소스 데이터를 뉴럴 네트워크 AI 모델의 입력단에 제공하기 위하여 전처리를 수행한다. 2) Preprocessing is performed to provide the source data to the input of the neural network AI model.
3) 전처리된 소스 데이터를 모델에 적용하여 분석을 진행한다. 이 때, 분석된 결과는 뉴럴 네트워크 모델의 종단 (출력단)에서 생성된다. 3) Apply the preprocessed source data to the model and proceed with the analysis. At this time, the analyzed result is generated at the end (output end) of the neural network model.
4) 뉴럴 네트워크 모델의 정돈에서 생성된 분석 결과를 후처리 한다. 4) Post-process the analysis result generated in the arrangement of the neural network model.
5) 후처리된 결과를 사용자에게 제시한다. 5) Post-processed results are presented to the user.
상기와 같은 과정을 실제 이미지 프로세싱 기반 AI 모델, 가령, 이미지 분류(image classification) 어플리케이션에 대응하면 다음과 같다.The above process corresponds to an actual image processing-based AI model, for example, an image classification application, as follows.
1) 이미지 파일을 특정 url로부터 로드한다. 1) Load an image file from a specific url.
2) 이미지 파일을 뉴럴 네트워크 모델(또는 AI 모델)의 입력단에 제공하기 위하여, 특정 크기로 리사이징(resize) 및/또는 해당 이미지를 어레이(array) 형태로 변경한다. 2) In order to provide the image file to the input terminal of the neural network model (or AI model), it is resized to a specific size and/or the image is changed to an array form.
3) 2) 에서 획득된 어레이(array)의 이미지를 뉴럴 네트워크 모델의 입력단에 제공한다. 3) The image of the array obtained in 2) is provided to the input of the neural network model.
4) 뉴럴 네트워크 모델(AI 모델)의 출력단에서 생성된 데이터를 정렬한다. 예를 들면, 최상위 값을 가지는 한 가지, 혹은 다섯 가지에 대한 인덱스를 추출하고, 이를 다시 모델 파라미터 파일의 값과 비교하여 top-1, top-5 값을 도출한다. 4) Sort the data generated at the output of the neural network model (AI model). For example, one or five indexes with the highest value are extracted, and the values of the model parameter file are compared again to derive top-1 and top-5 values.
5) 4)의 결과로 생성된 텍스트를 사용자에게 표시한다. 5) The text generated as a result of 4) is displayed to the user.
다른 예는 아래와 같다. 여기서는 비디오 스트림을 입력받아 해당 비디오 스트림의 오브젝트를 추출하고, 이 결과를 다시 비디오로 제공하는 예를 제시한다. Another example is below. Here, an example of receiving a video stream, extracting an object of the corresponding video stream, and providing the result as a video is presented.
1) 비디오 파일을 특정 URL로부터 로드 한다.1) Load a video file from a specific URL.
2) 입력 비디오로부터 한 개의 프레임을 추출한다. 추출된 프레임을 필요에 따라 리사이징(resize)하거나 혹은 어레이(array) 형태로 변환한다. 2) Extract one frame from the input video. The extracted frame is resized as necessary or converted into an array form.
3) 2)의 결과로 생성된 데이터를 뉴럴 네트워크 모델(또는 AI 모델)의 입력단에 제공한다. 3) The data generated as a result of 2) is provided to the input of the neural network model (or AI model).
4) 뉴럴 네트워크 모델의 출력단에서 생성된 데이터를 활용하여, 2)에서 수집된 이미지에 오브젝트를 표시한다. 예를 들면, 바운딩 박스(bounding box) 및 객체명(object name) 등을 추가로 표시한다. 4) Using the data generated at the output of the neural network model, the object is displayed on the image collected in 2). For example, a bounding box and an object name are additionally displayed.
5) 4)의 결과로 생성된 이미지를 HTTP streaming (MJPEG 등)을 통하여 제공한다. 5) The image created as a result of 4) is provided through HTTP streaming (MJPEG, etc.).
이처럼, 기존의 AI 어플리케이션에서 수행하는 상기와 같은 과정들은 현재 단일 어플리케이션 형태로 개발 및 제공된다. As such, the above processes performed in the existing AI application are currently developed and provided in the form of a single application.
하지만, 이중 실제 뉴럴 네트워크(AI 모델)와 관련된 연산은 3)번 과정에서만 제공되고 있으며, 1), 2) 과정은 전처리, 4), 5) 과정은 후처리 과정으로 분리(분류)될 수 있다. 여기서 마이크로 서비스 형태로 각 과정을 독립시켜 제공할 수 있다면 기존 AI 어플리케이션에 대한 다양한 서비스의 확장 구성이 가능할 것이다.However, calculations related to the actual neural network (AI model) are provided only in step 3), steps 1) and 2) are preprocessed, and steps 4) and 5) can be separated (classified) into post-processing. . Here, if each process can be provided independently in the form of microservices, it will be possible to configure the expansion of various services for existing AI applications.
본 발명에 따른 마이크로 서비스 기반 인공지능 서비스 방법은 기존의 AI 어플리케이션에서 수행하는 전처리 과정, AI 모델의 연산 과정 및 후처리 과정을 마이크로 서비스 단위로 독립적으로 운영함을 특징으로 한다.The microservice-based AI service method according to the present invention is characterized in that the pre-processing process performed in the existing AI application, the computation process of the AI model, and the post-processing process are independently operated in units of microservices.
도 1은 본 발명의 실시 에에 따른 마이크로 서비스 기반의 AI장치의 전체 구성도이다.1 is an overall configuration diagram of an AI device based on microservices according to an embodiment of the present invention.
본 발명의 실시 예에 따른 마이크로서비스 기반의 인공 지능 장치(이하, 'AI 장치'라 함)(100)는 마이크로서비스 아키텍쳐(microservice architecture) 기반으로 개발된(프로그래밍된 또는 코드화된) 어플리케이션을 실행하는 장치일 수 있다.A microservice-based artificial intelligence device (hereinafter, referred to as an 'AI device') 100 according to an embodiment of the present invention executes an application developed (programmed or coded) based on a microservice architecture. It may be a device.
이러한 AI 장치는, 상기 마이크로서비스 아키텍쳐 기반으로 개발된 어플리케이션을 실행하기 위해, 적어도 하나의 프로세서, 메모리, 통신모듈 및 이들을 연결하는 시스템 버스를 포함하는 컴퓨팅 장치이거나, 이러한 컴퓨팅 장치를 포함하는 사용자 단말, 데스크 탑 또는 서버 등으로 구체화될 수 있다.Such an AI device is a computing device including at least one processor, a memory, a communication module, and a system bus connecting them to execute an application developed based on the microservice architecture, or a user terminal including such a computing device; It may be embodied as a desktop or server.
상기 AI 장치 또는 상기 AI 장치에 포함된 적어도 하나의 프로세서에 의해 실행되는 상기 마이크로서비스 아키텍쳐 기반으로 개발된 어플리케이션은 기존의 어플리케이션이 수행하는 입력 데이터의 전처리 과정, 전처리된 입력 데이터에 대한 AI모델의 연산 과정 및 AI모델의 연산 과정에 따라 생성된 출력 데이터의 후처리 과정을 각각 독립적으로 변경하고, 또한 이 과정들의 조합이 가능하도록 컨테이너화된 다수의 소프트웨어 모듈들로 구현된다.The application developed based on the microservice architecture executed by the AI device or at least one processor included in the AI device includes a pre-processing of input data performed by an existing application, and an AI model operation on the pre-processed input data. It is implemented as a plurality of containerized software modules to independently change the post-processing process of the output data generated according to the process and the computation process of the AI model, and to combine these processes.
본 발명의 실시 예에서는, 컨테이너화된 소프트웨어 모듈들을 도 1에 도시한 바와 같이, 특화된 기능에 따라 입력 처리 모듈(110), AI 모델 연산 모듈(120), 출력 처리 모듈(130) 및 서비스 제어 모듈(140)로 지칭한다.In an embodiment of the present invention, as shown in FIG. 1, containerized software modules are
입력 처리 모듈(110)
입력 처리 모듈(110)은 입력 데이터의 전처리 과정을 마이크로서비스 단위로 처리하는 소프트웨어 모듈로서, 도커(Dcoker)와 같은 컨테이너 기술 기반으로 컨테이너화된 모듈일 수 있다.The
이러한 컨테이너화된 입력 처리 모듈(110)은 입력 데이터를 수신하고, 수신된 입력 데이터를 AI 모델 연산 모듈(120)에 포함된 AI모델의 입력단 특성에 맞추어 전처리 하는 과정을 수행한다.The containerized
마이크로서비스 단위로 수행되는 전처리 과정은, 예를 들면, 특정 url로부터 로딩된 이미지 파일 또는 비디오 파일을 리사이징(resize) 및 어레이(array) 형태로 변경하는 것일 수 있다.The preprocessing process performed in units of microservices may be, for example, resizing and changing an image file or a video file loaded from a specific url into an array form.
AI 모델 연산 모듈(120)AI Model Calculation Module (120)
AI 모델 연산 모듈(120)은 AI 모델을 포함하도록 컨테이너화된 모듈로서, 입력 처리 모듈(110)로부터 입력된 전처리된 입력 데이터를 AI 모델에 적용하는 과정을 마이크로 서비스 단위로 처리한다. 여기서, AI 모델 연산 모듈(120)로부터 출력되는 결과 데이터는 상기 AI 모델의 출력단에서 생성한 데이터이다. The AI
출력 처리 모듈(130)
출력 처리 모듈(130)은 전술한 AI 모델 연산 모듈(120)로부터 입력되는 결과값을 후처리하고, 후처리된 결과 데이터를 사용자에게 제공하는 과정을 마이크로서비스 단위로 처리하는 소프트웨어 모듈로서, 전술한 구성들(110, 120)과 마찬가지로 도커(Dcoker)와 같은 컨테이너 기술 기반으로 컨테이너화된 모듈일 수 있다.The
마이크로서비스 단위로 수행되는 후처리 과정은, 예를 들면, 상기 AI 모델의 출력단에서 생성된 결과 데이터를 정렬하는 과정을 수행할 수 있다. 예를 들면, 정렬된 데이터 중에서 최상위 값 또는 상기 최상위 값을 기준으로 내림차순으로 정렬된 다수의 데이터를 사용자에게 제공하는 과정일 수 있다.The post-processing process performed in units of microservices may, for example, perform a process of aligning result data generated at the output end of the AI model. For example, it may be a process of providing the highest value among the sorted data or a plurality of data sorted in descending order based on the highest value to the user.
마이크로서비스 단위로 수행되는 후처리 과정의 다른 예로, 상기 AI 모델의 출력단에서 생성된 결과 데이터를 이용하여 수집된 이미지에 오브젝트를 표시하고, 오브젝트가 표시된 이미지를 HTTP streaming (MJPEG 등)을 통하여 사용자에게 제공하는 과정일 수 있다. 여기서, 수집된 이미지에 오브젝트를 표시하는 과정은, 예를 들면, 수집된 이미지에 바운딩 박스(bounding box) 및/또는 객체명(object name) 등을 표시하는 것일 수 있다.As another example of a post-processing process performed in units of microservices, an object is displayed in an image collected using the result data generated at the output end of the AI model, and the image in which the object is displayed is provided to the user through HTTP streaming (MJPEG, etc.) It may be a process to provide. Here, the process of displaying the object on the collected image may be, for example, displaying a bounding box and/or an object name on the collected image.
서비스 제어 모듈(140)
서비스 제어 모듈(140)은 마이크로서비스 단위로 분할된 상기 모듈들(110, 120 및 130) 간의 연결 및 동작을 제어하고, 상기 모듈(110, 120 및 130)들의 입력 및 출력을 제어하도록 각 모듈에 대한 운용을 설정하는 과정을 마이크로서비스 단위로 처리하는 컨테이너화된 모듈일 수 있다. The
각 모듈에 대한 운용을 설정하기 위해, 서비스 제어 모듈(140)은 url 및 전처리 형식(전처리 형식을 정의한 전처리 정책 데이터)을 지정하여, 이를 입력 처리 모듈(110)로 전달한다.In order to set the operation for each module, the
또한, 서비스 제어 모듈(140)은 전처리된 데이터를 AI 모델 연산 모듈(120)로 전달하기 위한 전달 방법(또는 전달 방법을 정의한 전달 정책 데이터)을 입력 처리 모듈(110)로 전달한다.In addition, the
또한, 서비스 제어 모듈(140)은 전처리된 데이터의 수신 방법(또는 수신 방법을 정의한 수신 정책 데이터)을 AI 모델 연산 모듈(120)로 전달한다.In addition, the
또한, 서비스 제어 모듈(140)은 AI 모델 연산 모듈(120)에게 AI 모델의 연산 수행을 요청한다.In addition, the
또한, 서비스 제어 모듈(140)은 AI 모델의 연산 결과(출력)를 전달하는 방법(또는 전달 방법을 정의한 전달 정책 데이터)을 AI 모델 연산 모듈(120)에게 전달한다.In addition, the
또한, 서비스 제어 모듈(140)은 AI 모델의 연산 결과를 나타내는 결과 데이터를 수신하는 수신 방법(수신 방법을 정의한 수신 정책 데이터)을 출력 처리 모듈(130)로 전달한다.Also, the
또한, 서비스 제어 모듈(140)은 AI 모델 연산 모듈(120)의 연산 결과를 나타내는 결과 데이터에 대한 후처리 형식(후처리 형식을 정의한 후처리 정책 데이터)을 지정하여 이를 출력 처리 모듈(130)로 전달한다. In addition, the
또한, 서비스 제어 모듈(140)은 출력 처리 모듈(130)에서 후처리 과정을 통해 획득한 최종 분석 결과를 사용자에게 제공하는(표시하는) 방법을 설정하거나, 그 설정 방법을 출력 처리 모듈(130)로 전달한다. 여기서, 설정 방법은, 예를 들면, 사용자 단말의 URL 지정을 포함할 수 있다.In addition, the
이러한 서비스 제어 모듈(140)도 전술한 구성들(110, 120, 130)과 마찬가지로, 마이크로 서비스 단위로 독립된 프로세스를 수행하도록 구현된 컨테이너화된 모듈일 수 있다.The
상기와 같은 구성을 통할 경우, 전술한 두 개의 예에서 처리하는 과정들은 다음과 같은 마이크로서비스 단위의 독립된 프로세스들로 변경될 수 있다. In the case of the above configuration, the processes processed in the above two examples may be changed to the following independent processes in the microservice unit.
1) (서비스 제어 모듈 --> 입력 처리 모듈) 입력 처리 모듈(110)에 입력 URL을 전달하고, AI 모델 연산 모듈의 입력단 정보를 전달한다. 1) (Service Control Module --> Input Processing Module) The input URL is transmitted to the
2) (입력 처리 모듈 --> AI 모델 연산 모듈) 입력 데이터를 전처리하고 전처리된 입력 데이터를 AI 모델 연산 모듈에 전달한다. 2) (Input processing module --> AI model calculation module) Pre-process the input data and transfer the pre-processed input data to the AI model calculation module.
3) (서비스 제어 모듈 --> AI 모델 연산 모듈) 연산의 결과를 출력 처리 모듈에 전달할 것을 명령한다. 3) (Service control module --> AI model operation module) Instructs to deliver the result of operation to the output processing module.
4) (AI 모델 연산 모듈 --> 출력 처리 모듈) 연산의 결과를 출력 처리 모듈에 전달한다. 4) (AI model calculation module --> output processing module) The result of the operation is delivered to the output processing module.
5) (서비스 제어 모듈 --> 출력 처리 모듈) 연산 결과를 통한 후처리 방법을 설정한다. 5) (Service control module --> Output processing module) Set the post-processing method through the operation result.
6) (출력 처리 모듈) 후처리 후 해당 데이터를 지정된 URL에 전달한다. 6) (Output processing module) After post-processing, the data is delivered to the designated URL.
상기와 같은 구성을 통하여, AI 모델 연산 모듈1종에 대하여 다양한 입력 및 출력의 연동이 가능하며, 이를 통하여 AI 서비스 구성을 위한 보다 높은 코드 재사용성 및 설정 방법을 제시할 수 있고 AI 서비스 기반 활성화가 제시될 수 있다. Through the above configuration, it is possible to interlock various inputs and outputs for one type of AI model calculation module, and through this, higher code reusability and setting method for AI service configuration can be suggested, and AI service-based activation is possible. can be presented.
한편, AI 장치(100)에서 실행되는 상기 컨테이너화된 모듈들(110, 120, 130 및 140)로 이루어진 어플리케이션은 외부 시스템으로부터 배포된 것일 수 있다. 여기서, 외부 시스템는 마이크로서비스 플랫폼 장치(또는 클라우드 플랫폼 장치)로 지칭될 수 있다.Meanwhile, the application including the containerized
즉, 마이크로서비스 플랫폼 장치는 기존의 어플리케이션 중에서 전처리 기능, AI 모델 연산 기능 및 후처리 기능와 같은 3개의 특화된 기능으로 분할 가능한 기존의 어플리케이션을 선정하고, 선정된 기존의 어플리케이션을 각 기능별로 분할된 컨테이너화된 모듈로 개발하여 상기 AI 장치(100)에 배포할 수 있다. 이때, AI 장치(100)는 마이크로서비스 플랫폼 장치로부터 모든 컨테이너화된 모듈을 제공받거나(다운로딩하거나), 일부 컨테이너화된 모듈은 다른 마이크로서비스 플랫폼 장치으로 제공받을 수 있다.That is, the microservice platform device selects an existing application that can be divided into three specialized functions, such as a pre-processing function, an AI model calculation function, and a post-processing function, among existing applications, and converts the selected existing application into a containerized application divided by each function. It can be developed as a module and distributed to the
도 2는 본 발명의 실시 예에 따른 마이크로 서비스 기반의 어플리케이션을 배포하는 마이크로서비스 플랫폼 장치의 전체 구성도이다.2 is an overall configuration diagram of a microservice platform device for distributing a microservice-based application according to an embodiment of the present invention.
도 2를 참조하면, 본 발명의 실시 예에 따른 마이크로서비스 플랫폼 시스템(200)는 어플리케이션 선정부(210), 어플리케이션 분석부(220), 컨테이너 구성부(230) 및 운용 설정부(240)를 포함한다.Referring to FIG. 2 , the
어플리케이션 선정부(210)는 AI 장치(100) 또는 이를 포함하는 장치(예, 사용자 단말, 데스크탑 또는 서버 등)로부터 마이크로서비스 기반의 어플리케이션의 제공을 요청하는 요청 메시지에 응답하여, 기존의 어플리케이션들 중에서 대상 어플리케이션을 선정한다. The application selector 210 responds to a request message for requesting the provision of a microservice-based application from the
대상 어플리케이션은 AI 장치(100) 또는 이를 포함하는 장치의 사용자가 원하는 특화된 기능들(예를 들면, 입력 데이터의 전처리 처리 기능, 전처리된 입력 데이터에 대한 AI 모델 연산 처리 기능 및 AI 모델의 연산 처리 결과 데이터에 대한 후처리 기능)을 구비하고 있는지 여부를 기준으로 선정된다. The target application includes specialized functions desired by the user of the
이러한 대상 어플리케이션을 선정하기 위해, 어플리케이션 선정부(210)는 사용자가 원하는 어플리케이션 정보를 요청한다. 여기서, 어플리케이션 정보는 사용자가 기존에 사용하고 있던 어플리케이션에 대한 정보(기존 어플리케이션의 명칭 정보 또는 버전 정보) 또는 이와 유사한 기능을 구비하지만 사용 경험이 없는 기존의 어플리케이션에 대한 정보를 요청한다.In order to select such a target application, the application selector 210 requests application information desired by the user. Here, the application information requests information about an application that the user has previously used (name information or version information of an existing application) or information about an existing application that has a similar function but has no experience in using it.
어플리케이션 선정부(210)는 AI 장치(100) 또는 이를 포함하는 장치로부터 어플리케이션 정보를 수신하면, 수신된 어플리케이션 정보에 기초하여 대상 어플리케이션을 선정한다.When receiving application information from the
어플리케이션 분석부(220)는 어플리케이션 선정부(210)에 의해 선정된 어플리케이션을 분석하고, 그 분석 결과에 따라 선정된 어플리케이션에서 마이크로서비스로 구분되는 최소 기능 요소를 추출하고, 추출된 최소 기능 요소를 컨테이너 전환 대상을 결정한다. 여기서, 마이크로서비스 단위의 최소 기능 요소는, 예를 들면, 입력 전처리 단계(입력 전처리 기능), AI 모델 연산 단계(AI 모델 연산 기능) 및 후처리 단계(후처리 기능)를 포함한다. The application analysis unit 220 analyzes the application selected by the application selection unit 210, extracts a minimum functional element classified as a microservice from the selected application according to the analysis result, and stores the extracted minimum functional element as a container Decide on the target of conversion. Here, the minimum functional element of the microservice unit includes, for example, an input pre-processing step (input pre-processing function), an AI model calculation step (AI model calculation function), and a post-processing step (post-processing function).
컨테이너 구성부(230)는 어플리케이션 분석부(220)에 의해 결정된 컨테이너 전환 대상, 예를 들면, 입력 전처리 단계, AI 모델 연산 단계 및 후처리 단계를 모듈 분리 정책, 모듈 통합 정책, 모듈 연계 정책, 개별 모듈의 가용성 정책, 개별 모듈의 확장성 정책, 보안 정책 등을 포함하는 컨테이너 구성 정책을 고려하여 컨테이너화된 모듈들로 각각 구성한다. 여기서, 각 단계를 컨테이너화된 모듈로 구성하는 방법은, 기존의 어플리케이션의 오픈 소스 변경, 코드 변경 등일 수 있으며, 이에 대한 설명은 도커(Dcoker)와 같은 컨테이너 기술에 대한 공지의 설명으로 대신한다. 한편, 도 2에서는 어플리케이션 분석부(220)와 컨테이너 구성부(230)를 분리한 경우를 도시하고 있으나, 하나의 구성으로 통합될 수 있다. 예를 들면, 어플리케이션 분석부(220)가 컨테이너 구성부(230)에 통합될 수 있다.The
운용 정책 설정부(240)는 컨테이너화된 모듈들의 운용 정책을 설정한다. 운용 정책은, 예를 들면, 각 컨테이너화된 모듈의 입/출력 제어와 관련된 정책일 수 있다. 예를 들면, 전처리된 데이터를 AI 모델 연산 모듈(120)로 전달하는 방법을 규정한 입력 처리 모듈(110)에 대한 전달 정책, 전처리된 데이터의 수신 방법을 규정한 AI 모델 연산 모듈(120)에 대한 수신 정책, AI 모델 연산 모듈(120)에게 AI 모델의 연산 수행을 요청하는 것과 관련된 정책, AI 모델의 연산 결과(출력)를 전달하는 방법을 규정한 AI 모델 연산 모듈(120)에 대한 전달 정책, AI 모델의 연산 결과를 나타내는 결과 데이터를 수신하는 방법을 규정한 출력 처리 모듈(130)에 대한 수신 정책, AI 모델 연산 모듈(120)의 연산 결과를 나타내는 결과 데이터에 대한 후처리 형식(후처리 형식을 정의한 후처리 정책 데이터)을 규정한 출력 처리 모듈(130)에 대한 후처리 정책 및 후처리 과정을 통해 획득한 최종 분석 결과를 사용자에게 제공하는 방법을 규정한 출력 처리 모듈(130)에 대한 제공 정책 등을 포함한다.The operation
그 밖에, 운용 설정부(240)는 컨테이너화된 마이크로서비스 어플리케이션의 모니터링 뷰, 인프라 운영 모니터링, 성능 테스트, 성능 테스트 결과를 컨테이너화된 마이크로서비스 어플리케이션에 반영, 오류 반영, 운영 체계 이관 및 적용하는 등의 전반적인 운용을 설정한다. In addition, the
이상 설명한 봐와 같이, 본 발명은 기존 어플리케이션은 단일 어플리케이션 형태로 어플리케이션 내에서 입력 데이터의 선처리 및 출력의 후처리를 단일로 진행하여 서비스화가 어렵고, 개발된 코드에 대한 재활용성이 저하되는 반면, 마이크로 서비스 기반 AI 서비스 아키텍쳐를 제안하고 이를 기반으로 하는 입/출력 관리 기술을 제공함으로서, 이를 통하여 기존 어플리케이션 로직의 다양한 서비스 환경 대응 구성이 가능하다.As described above, in the present invention, the existing application performs pre-processing of input data and post-processing of output in a single application in the form of a single application, making it difficult to service and reducing the reusability of the developed code, while By proposing a service-based AI service architecture and providing input/output management technology based on it, it is possible to configure the existing application logic to respond to various service environments.
또한, 본 발명에서는 경우에 따라, 분석 어플리케이션의 성능 향상을 위하여, 기존의 어플리케이션 전체를 갱신하는 게 아닌, 입/출력 제어와 관련된 모델들만을 해당 마이크로 서비스로 대체함으로써 서비스 구성을 위한 코드 재활용성 강화시킬 수 있고, 입출력 모델을 관리하기 위한 체계적 방안을 제시함으로써 인공 지능 기반 서비스 개발 난이도 저하 및 서비스 활성화를 도모할 수 있다.In addition, in the present invention, in order to improve the performance of the analysis application in some cases, instead of updating the entire existing application, only the models related to input/output control are replaced with the corresponding microservice, thereby enhancing code reusability for service configuration. By suggesting a systematic way to manage input/output models, it is possible to reduce the difficulty of developing AI-based services and promote service activation.
본 발명은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예 들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. The present invention may be implemented in hardware components, software components, and/or combinations of hardware components and software components. For example, devices 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 array (FPGA). , a programmable logic unit (PLU), microprocessor, or any other device capable of executing and responding to instructions, may be implemented using one or more general purpose or special purpose computers.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of these, configuring the processing unit to operate as desired or processed independently or collectively. You can command the device. Software and/or data may be interpreted by a processing device or, to provide instructions or data to a processing device, of any type of machine, component, physical device, virtual equipment, computer storage medium or device. , Or may be permanently or temporarily embodyed in a transmitted signal wave. The software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored on one or more computer-readable recording media.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다. 그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Although the embodiments have been described by the limited embodiments and drawings as described above, various modifications and variations can be made from the above description to those of ordinary skill in the art. For example, the described techniques are performed in a different order from the described method, and/or components such as systems, structures, devices, circuits, etc. described are combined or combined in a form different from the described method, or other components Alternatively, even if substituted or substituted by an equivalent, an appropriate result can be achieved. Therefore, other implementations, other embodiments, and those equivalent to the claims also fall within the scope of the claims to be described later.
Claims (12)
상기 입력 처리 모듈에 의해 전처리된 입력 데이터에 대해 AI 모델 연산 과정을 처리하는 AI 모델 연산 모듈; 및
상기 AI 모델 연산 모듈에 의해 연산된 결과 데이터의 후처리 과정을 처리하는 출력 처리 모듈;을 포함하고,
상기 전치리 과정, 상기 AI 모델 연산 과정 및 상기 후처리 과정은 마이크로서비스에 따라 정의된 프로세스인 것인 AI 장치.an input processing module for processing the pre-processing of input data;
an AI model calculation module for processing an AI model calculation process with respect to the input data preprocessed by the input processing module; and
An output processing module for processing post-processing of the result data calculated by the AI model calculation module;
The AI device wherein the pre-processing process, the AI model calculation process, and the post-processing process are processes defined according to microservices.
상기 입력 처리 모듈, 상기 AI 모델 연산 모듈, 상기 출력 처리 모듈은, 각각 컨테이너화된 모듈인 것인 AI 장치.In claim 1,
The input processing module, the AI model calculation module, and the output processing module are each a containerized module.
사전에 규정한 운용 정책에 따라, 상기 입력 처리 모듈, 상기 AI 모델 연산 모듈, 상기 출력 처리 모듈 간의 입/출력 제어를 처리하는 서비스 제어 모듈을 더 포함하는 것인 AI 장치. In claim 1,
The AI device further comprising a service control module for processing input/output control between the input processing module, the AI model operation module, and the output processing module according to a predefined operation policy.
상기 서비스 제어 모듈은 컨테이너화된 모듈인 것인 AI 장치.In claim 3,
wherein the service control module is a containerized module.
기존의 어플리케이션들 중에서 대상 어플리케이션을 선정하는 단계;
상기 선정된 대상 어플리케이션을 분석하여, 마이크로서비스로 정의되는 입력 전처리 기능, AI 모델 연산 기능 및 후처리 기능을 추출하는 단계;
상기 추출된 입력 전처리 기능, AI 모델 연산 기능 및 후처리 기능을 컨테이너화된 모듈로 각각 구성하는 단계;
각 컨테이너화된 모듈에 대한 운용 정책을 설정하는 단계; 및
각 컨테이너화된 모듈을 배포하는 단계;
를 포함하는 컨테이너화된 어플리케이션을 배포하는 방법. A method of deploying a containerized application on a microservices platform device, comprising:
selecting a target application from among existing applications;
analyzing the selected target application and extracting an input pre-processing function defined as a microservice, an AI model calculation function, and a post-processing function;
configuring the extracted input pre-processing function, AI model calculation function, and post-processing function into containerized modules, respectively;
setting an operation policy for each containerized module; and
deploying each containerized module;
How to deploy a containerized application containing
상기 구성하는 단계는,
상기 입력 전처리 기능, AI 모델 연산 기능 및 후처리 기능을 모듈 분리 정책, 모듈 통합 정책, 모듈 연계 정책, 개별 모듈의 가용성 정책, 개별 모듈의 확장성 정책 및 보안 정책을 포함하는 컨테이너 구성 정책을 고려하여 컨테이너화된 모듈로 각각 구성하는 단계인 것인 컨테이너화된 어플리케이션을 배포하는 방법.In clause 5,
The configuring step is
Considering the container configuration policy including the module separation policy, module integration policy, module linkage policy, individual module availability policy, individual module scalability policy and security policy, the input pre-processing function, AI model calculation function, and post-processing function A method of deploying a containerized application, the step of configuring each into containerized modules.
상기 운용 정책을 설정하는 단계는,
각 컨테이너화된 모듈의 입출력 제어와 관련된 정책을 설정하는 단계인 것인 컨테이너화된 어플리케이션을 배포하는 방법.In clause 5,
The step of setting the operation policy is,
A method of deploying a containerized application, which is a step of setting policies related to input/output control of each containerized module.
각 컨테이너화된 모듈의 입출력 제어와 관련된 정책은,
입력 데이터의 전처리 형식을 규정한 전처리 정책, 전처리된 데이터의 전달 방법을 규정한 전달 정책, 전처리된 데이터의 수신 방법을 규정한 수신 정책, AI 모델의 연산 결과의 전달 방법을 규정한 전달 정책, AI 모델의 연산 결과를 수신하는 방법을 규정한 수신 정책, AI 모델 연산 결과의 후처리 형식을 규정한 후처리 정책 및 후처리 과정을 통해 획득한 최종 분석 결과를 사용자에게 제공하는 방법을 규정한 제공 정책을 포함하는 것인 컨테이너화된 어플리케이션을 배포하는 방법.In clause 7,
The policies related to I/O control of each containerized module are:
A preprocessing policy that defines the preprocessing format of input data, a forwarding policy that specifies a method for transmitting preprocessed data, a reception policy that defines a method of receiving preprocessed data, a forwarding policy that defines the method of delivering the calculation result of the AI model, AI Reception policy that stipulates how to receive the calculation result of the model, the post-processing policy that stipulates the post-processing format of the AI model calculation result, and the provision policy that stipulates how to provide users with the final analysis result obtained through the post-processing A method of deploying a containerized application comprising:
상기 선정된 대상 어플리케이션의 입력 전처리 기능, AI 모델 연산 기능 및 후처리 기능을 컨테이너화된 모듈로 각각 구성하는 컨테이너 구성부; 및
각 컨테이너화된 모듈에 대한 운용 정책을 설정하는 운용 정책 설정부
를 포함하는 마이크로서비스 플랫폼 장치. an application selection unit for selecting a target application having an input pre-processing function, an AI model calculation function, and a post-processing function;
a container configuration unit that configures the input pre-processing function, the AI model calculation function, and the post-processing function of the selected target application into containerized modules, respectively; and
Operation policy setting unit to set operation policy for each containerized module
A microservices platform device comprising a.
상기 운용 정책 설정부는,
각 컨테이너화된 모듈의 입출력 제어와 관련된 정책을 설정하는 것인 마이크로서비스 플랫폼 장치.In claim 9,
The operation policy setting unit,
A microservices platform device that sets policies related to I/O control of each containerized module.
상기 전처리 과정에 따라 생성된 데이터에 대해 AI 모델 연산 과정을 처리하는 AI 모델 연산 모듈; 및
상기 AI 모델 연산 모듈에 의해 연산된 결과 데이터의 후처리 과정을 처리하는 출력 처리 모듈;
상기 전치리 과정, 상기 AI 모델 연산 과정 및 상기 후처리 과정은 마이크로서비스에 따라 정의된 프로세스인 것인 AI 장치.an input processing module for processing a preprocessing process of resizing and changing an image file or a video file loaded from a specific url into an array form;
an AI model calculation module for processing an AI model calculation process for the data generated according to the preprocessing process; and
an output processing module for processing post-processing of the result data calculated by the AI model calculation module;
The AI device wherein the pre-processing process, the AI model calculation process, and the post-processing process are processes defined according to microservices.
상기 출력 처리 모듈에 의해 처리되는 후처리 과정은,
상기 연산된 결과 데이터를 이용하여 이미지 파일 또는 비디오 파일에 바운딩 박스 및 객체 명을 추가하는 과정과, 바운딩 박스 및 객체 명을 추가된 이미지 파일 또는 비디오 파일을 HTTP 스트리밍(streaming) 방식으로 사용자 단말에게 제공하기 위한 처리 과정을 포함하는 것인 AI 장치.
In claim 11,
The post-processing process processed by the output processing module is,
The process of adding a bounding box and object name to an image file or video file using the calculated result data, and an image file or video file to which the bounding box and object name are added are provided to the user terminal in an HTTP streaming method AI device comprising a process for doing.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190151937A KR20210063610A (en) | 2019-11-25 | 2019-11-25 | Microservice-based artificial inteligence device for providing artificial inteligence service and method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190151937A KR20210063610A (en) | 2019-11-25 | 2019-11-25 | Microservice-based artificial inteligence device for providing artificial inteligence service and method thereof |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20210063610A true KR20210063610A (en) | 2021-06-02 |
Family
ID=76372655
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190151937A KR20210063610A (en) | 2019-11-25 | 2019-11-25 | Microservice-based artificial inteligence device for providing artificial inteligence service and method thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20210063610A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102499435B1 (en) * | 2022-02-25 | 2023-02-14 | 주식회사 에이젠글로벌 | Method for generating credit evaluation model based on artificial intelligence and apparatus performing the method |
KR20230067257A (en) | 2021-11-09 | 2023-05-16 | 에스케이 주식회사 | Ai model serving system and method thereof |
-
2019
- 2019-11-25 KR KR1020190151937A patent/KR20210063610A/en unknown
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230067257A (en) | 2021-11-09 | 2023-05-16 | 에스케이 주식회사 | Ai model serving system and method thereof |
KR102499435B1 (en) * | 2022-02-25 | 2023-02-14 | 주식회사 에이젠글로벌 | Method for generating credit evaluation model based on artificial intelligence and apparatus performing the method |
WO2023163395A1 (en) * | 2022-02-25 | 2023-08-31 | 주식회사 에이젠글로벌 | Method and apparatus for generating artificial intelligence-based credit evaluation model |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11018959B1 (en) | System for real-time collection, processing and delivery of data-telemetry | |
Pahl et al. | Architectural principles for cloud software | |
US20220138004A1 (en) | System and method for automated production and deployment of packaged ai solutions | |
Mendonça et al. | Developing self-adaptive microservice systems: Challenges and directions | |
CN111367187B (en) | Method for improving the processing of sensor flow data in a distributed network | |
EP3312724B1 (en) | Microservice-based data processing apparatus, method, and program | |
US10360024B2 (en) | Method and apparatus for execution of distributed workflow processes | |
US9965322B2 (en) | Scheduling tasks in a distributed processing system with both reconfigurable and configurable processors | |
Yoong et al. | IEC 61499 in a Nutshell | |
Zhao et al. | A software workbench for interactive, time critical and highly self-adaptive cloud applications (SWITCH) | |
US12001273B2 (en) | Software validation framework | |
KR20210063610A (en) | Microservice-based artificial inteligence device for providing artificial inteligence service and method thereof | |
Jha et al. | Multiobjective deployment of data analysis operations in heterogeneous IoT infrastructure | |
Um et al. | Edge computing in smart production | |
US20240192946A1 (en) | Application management platform for hyper-converged cloud infrastructures | |
Collier et al. | Developing distributed high-performance computing capabilities of an open science platform for robust epidemic analysis | |
US20220066764A1 (en) | Generating a software release based on controller metadata | |
KR101494864B1 (en) | Proteomics service system using cloud computing and the method for the same | |
Penchalaiah et al. | Clustered Single-Board Devices with Docker Container Big Stream Processing Architecture. | |
Ferreira Da Silva et al. | Workflows Community Summit 2022: A Roadmap Revolution | |
Zhang et al. | Tinyedge: Enabling rapid edge system customization for iot applications | |
KR102602395B1 (en) | Tosca-to-oam model tranlation | |
WO2024109882A1 (en) | Data processing method, apparatus and device | |
US20220269528A1 (en) | System, method and apparatus for intelligent heterogeneous computation | |
US11928503B2 (en) | Cognitive scheduler for Kubernetes |