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 PDF

Info

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
Application number
KR1020190151937A
Other languages
Korean (ko)
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 한국전자기술연구원
Priority to KR1020190151937A priority Critical patent/KR20210063610A/en
Publication of KR20210063610A publication Critical patent/KR20210063610A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting
    • 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
    • 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine 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

An AI device of the present invention comprises: an input processing module that handles pre-processing of input data; an AI model calculation module that processes an AI model calculation process for the input data pre-processed by the input processing module; and an output processing module that processes post-processing process of the result data calculated by the AI model calculation module, wherein the pre-processing process, the AI model calculation process, and the post-processing process are characterized in that they are processes defined according to microservices. Therefore, the present invention is capable of configuring an existing application logic to respond to various service environments.

Description

인공 지능 서비스 제공을 위한 마이크로 서비스 기반의 인공 지능 장치 및 그 방법{MICROSERVICE-BASED ARTIFICIAL INTELIGENCE DEVICE FOR PROVIDING ARTIFICIAL INTELIGENCE SERVICE AND METHOD THEREOF}MICROSERVICE-BASED ARTIFICIAL INTELIGENCE DEVICE FOR PROVIDING ARTIFICIAL INTELIGENCE SERVICE AND METHOD THEREOF

본 발명은 인공 지능 서비스를 제공하는 기술에 관한 것으로, 특히, 어플리케이션을 마이크로서비스(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 input processing module 110, AI model operation module 120, output processing module 130 and service control module ( 140) is referred to.

입력 처리 모듈(110)input processing module 110

입력 처리 모듈(110)은 입력 데이터의 전처리 과정을 마이크로서비스 단위로 처리하는 소프트웨어 모듈로서, 도커(Dcoker)와 같은 컨테이너 기술 기반으로 컨테이너화된 모듈일 수 있다.The input processing module 110 is a software module that processes the pre-processing of input data in units of microservices, and may be a containerized module based on a container technology such as Docker.

이러한 컨테이너화된 입력 처리 모듈(110)은 입력 데이터를 수신하고, 수신된 입력 데이터를 AI 모델 연산 모듈(120)에 포함된 AI모델의 입력단 특성에 맞추어 전처리 하는 과정을 수행한다.The containerized input processing module 110 receives input data, and performs a process of pre-processing the received input data according to the characteristics of the input terminal of the AI model included in the AI model operation module 120 .

마이크로서비스 단위로 수행되는 전처리 과정은, 예를 들면, 특정 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 model calculation module 120 is a module containerized to include the AI model, and processes the process of applying the preprocessed input data input from the input processing module 110 to the AI model in units of microservices. Here, the result data output from the AI model calculation module 120 is data generated by the output terminal of the AI model.

출력 처리 모듈(130)output processing module 130

출력 처리 모듈(130)은 전술한 AI 모델 연산 모듈(120)로부터 입력되는 결과값을 후처리하고, 후처리된 결과 데이터를 사용자에게 제공하는 과정을 마이크로서비스 단위로 처리하는 소프트웨어 모듈로서, 전술한 구성들(110, 120)과 마찬가지로 도커(Dcoker)와 같은 컨테이너 기술 기반으로 컨테이너화된 모듈일 수 있다.The output processing module 130 is a software module that post-processes the result value input from the above-described AI model calculation module 120 and processes the process of providing the post-processed result data to the user in units of microservices. Like the components 110 and 120 , it may be a containerized module based on a container technology such as Docker.

마이크로서비스 단위로 수행되는 후처리 과정은, 예를 들면, 상기 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)service control module 140

서비스 제어 모듈(140)은 마이크로서비스 단위로 분할된 상기 모듈들(110, 120 및 130) 간의 연결 및 동작을 제어하고, 상기 모듈(110, 120 및 130)들의 입력 및 출력을 제어하도록 각 모듈에 대한 운용을 설정하는 과정을 마이크로서비스 단위로 처리하는 컨테이너화된 모듈일 수 있다. The service control module 140 controls the connection and operation between the modules 110 , 120 and 130 divided into microservice units, and controls the input and output of the modules 110 , 120 and 130 to each module. It may be a containerized module that handles the process of setting up the operation of the system in units of microservices.

각 모듈에 대한 운용을 설정하기 위해, 서비스 제어 모듈(140)은 url 및 전처리 형식(전처리 형식을 정의한 전처리 정책 데이터)을 지정하여, 이를 입력 처리 모듈(110)로 전달한다.In order to set the operation for each module, the service control module 140 designates a url and a preprocessing format (preprocessing policy data defining a preprocessing format), and transmits it to the input processing module 110 .

또한, 서비스 제어 모듈(140)은 전처리된 데이터를 AI 모델 연산 모듈(120)로 전달하기 위한 전달 방법(또는 전달 방법을 정의한 전달 정책 데이터)을 입력 처리 모듈(110)로 전달한다.In addition, the service control module 140 transmits a delivery method (or delivery policy data defining a delivery method) for delivering the pre-processed data to the AI model operation module 120 to the input processing module 110 .

또한, 서비스 제어 모듈(140)은 전처리된 데이터의 수신 방법(또는 수신 방법을 정의한 수신 정책 데이터)을 AI 모델 연산 모듈(120)로 전달한다.In addition, the service control module 140 transmits the reception method (or reception policy data defining the reception method) of the preprocessed data to the AI model operation module 120 .

또한, 서비스 제어 모듈(140)은 AI 모델 연산 모듈(120)에게 AI 모델의 연산 수행을 요청한다.In addition, the service control module 140 requests the AI model calculation module 120 to perform the calculation of the AI model.

또한, 서비스 제어 모듈(140)은 AI 모델의 연산 결과(출력)를 전달하는 방법(또는 전달 방법을 정의한 전달 정책 데이터)을 AI 모델 연산 모듈(120)에게 전달한다.In addition, the service control module 140 transmits a method (or delivery policy data defining a delivery method) of delivering the operation result (output) of the AI model to the AI model operation module 120 .

또한, 서비스 제어 모듈(140)은 AI 모델의 연산 결과를 나타내는 결과 데이터를 수신하는 수신 방법(수신 방법을 정의한 수신 정책 데이터)을 출력 처리 모듈(130)로 전달한다.Also, the service control module 140 transmits a reception method (reception policy data defining a reception method) for receiving result data indicating the operation result of the AI model to the output processing module 130 .

또한, 서비스 제어 모듈(140)은 AI 모델 연산 모듈(120)의 연산 결과를 나타내는 결과 데이터에 대한 후처리 형식(후처리 형식을 정의한 후처리 정책 데이터)을 지정하여 이를 출력 처리 모듈(130)로 전달한다. In addition, the service control module 140 specifies a post-processing format (post-processing policy data defining a post-processing format) for the result data representing the computation result of the AI model computation module 120 and sends it to the output processing module 130 . transmit

또한, 서비스 제어 모듈(140)은 출력 처리 모듈(130)에서 후처리 과정을 통해 획득한 최종 분석 결과를 사용자에게 제공하는(표시하는) 방법을 설정하거나, 그 설정 방법을 출력 처리 모듈(130)로 전달한다. 여기서, 설정 방법은, 예를 들면, 사용자 단말의 URL 지정을 포함할 수 있다.In addition, the service control module 140 sets a method for providing (displays) the final analysis result obtained through the post-processing process in the output processing module 130 to the user, or sets the setting method to the output processing module 130 . forward to Here, the setting method may include, for example, designation of a URL of the user terminal.

이러한 서비스 제어 모듈(140)도 전술한 구성들(110, 120, 130)과 마찬가지로, 마이크로 서비스 단위로 독립된 프로세스를 수행하도록 구현된 컨테이너화된 모듈일 수 있다.The service control module 140 may also be a containerized module implemented to perform an independent process in units of microservices, similarly to the above-described components 110 , 120 , and 130 .

상기와 같은 구성을 통할 경우, 전술한 두 개의 예에서 처리하는 과정들은 다음과 같은 마이크로서비스 단위의 독립된 프로세스들로 변경될 수 있다. 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 input processing module 110, and input terminal information of the AI model operation module is transmitted.

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 modules 110 , 120 , 130 and 140 executed in the AI device 100 may be distributed from an external system. Here, the external system may be referred to as a microservice platform device (or a cloud platform device).

즉, 마이크로서비스 플랫폼 장치는 기존의 어플리케이션 중에서 전처리 기능, 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 AI device 100 . In this case, the AI device 100 may receive (download) all containerized modules from the microservice platform device, or receive some containerized modules as other microservice platform devices.

도 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 microservice platform system 200 according to an embodiment of the present invention includes an application selection unit 210 , an application analysis unit 220 , a container configuration unit 230 , and an operation setting unit 240 . do.

어플리케이션 선정부(210)는 AI 장치(100) 또는 이를 포함하는 장치(예, 사용자 단말, 데스크탑 또는 서버 등)로부터 마이크로서비스 기반의 어플리케이션의 제공을 요청하는 요청 메시지에 응답하여, 기존의 어플리케이션들 중에서 대상 어플리케이션을 선정한다. The application selector 210 responds to a request message for requesting the provision of a microservice-based application from the AI device 100 or a device including the same (eg, a user terminal, a desktop, or a server), among existing applications. Select the target application.

대상 어플리케이션은 AI 장치(100) 또는 이를 포함하는 장치의 사용자가 원하는 특화된 기능들(예를 들면, 입력 데이터의 전처리 처리 기능, 전처리된 입력 데이터에 대한 AI 모델 연산 처리 기능 및 AI 모델의 연산 처리 결과 데이터에 대한 후처리 기능)을 구비하고 있는지 여부를 기준으로 선정된다. The target application includes specialized functions desired by the user of the AI device 100 or a device including the same (eg, a pre-processing function of input data, an AI model arithmetic processing function for pre-processed input data, and an arithmetic processing result of the AI model It is selected based on whether it has post-processing function for data).

이러한 대상 어플리케이션을 선정하기 위해, 어플리케이션 선정부(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 AI device 100 or a device including the same, the application selecting unit 210 selects a target application based on the received application information.

어플리케이션 분석부(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 container configuration unit 230 sets the container conversion target determined by the application analysis unit 220, for example, the input pre-processing step, the AI model calculation step, and the post-processing step to a module separation policy, module integration policy, module linkage policy, individual Each of the containerized modules is configured in consideration of the container configuration policy including the module's availability policy, the individual module's extensibility policy, and the security policy. Here, a method of configuring each step as a containerized module may be an open source change of an existing application, a code change, etc., and a description thereof is replaced with a known description of a container technology such as Docker. Meanwhile, although FIG. 2 illustrates a case in which the application analysis unit 220 and the container configuration unit 230 are separated, they may be integrated into one configuration. For example, the application analysis unit 220 may be integrated into the container configuration unit 230 .

운용 정책 설정부(240)는 컨테이너화된 모듈들의 운용 정책을 설정한다. 운용 정책은, 예를 들면, 각 컨테이너화된 모듈의 입/출력 제어와 관련된 정책일 수 있다. 예를 들면, 전처리된 데이터를 AI 모델 연산 모듈(120)로 전달하는 방법을 규정한 입력 처리 모듈(110)에 대한 전달 정책, 전처리된 데이터의 수신 방법을 규정한 AI 모델 연산 모듈(120)에 대한 수신 정책, AI 모델 연산 모듈(120)에게 AI 모델의 연산 수행을 요청하는 것과 관련된 정책, AI 모델의 연산 결과(출력)를 전달하는 방법을 규정한 AI 모델 연산 모듈(120)에 대한 전달 정책, AI 모델의 연산 결과를 나타내는 결과 데이터를 수신하는 방법을 규정한 출력 처리 모듈(130)에 대한 수신 정책, AI 모델 연산 모듈(120)의 연산 결과를 나타내는 결과 데이터에 대한 후처리 형식(후처리 형식을 정의한 후처리 정책 데이터)을 규정한 출력 처리 모듈(130)에 대한 후처리 정책 및 후처리 과정을 통해 획득한 최종 분석 결과를 사용자에게 제공하는 방법을 규정한 출력 처리 모듈(130)에 대한 제공 정책 등을 포함한다.The operation policy setting unit 240 sets the operation policy of the containerized modules. The operation policy may be, for example, a policy related to input/output control of each containerized module. For example, a delivery policy for the input processing module 110 that defines a method of transferring the preprocessed data to the AI model operation module 120, and the AI model operation module 120 that defines a method of receiving the preprocessed data A delivery policy for the AI model calculation module 120 that defines a reception policy for, a policy related to requesting the AI model calculation module 120 to perform calculation of the AI model, and a method of delivering the calculation result (output) of the AI model , a reception policy for the output processing module 130 that stipulates a method of receiving the result data indicating the operation result of the AI model, and the post-processing format (post-processing) for the result data indicating the operation result of the AI model operation module 120 Post-processing policy data defining the format) for the output processing module 130 that defines the post-processing policy for the output processing module 130 and the method of providing the final analysis result obtained through the post-processing process to the user provision policies, and the like.

그 밖에, 운용 설정부(240)는 컨테이너화된 마이크로서비스 어플리케이션의 모니터링 뷰, 인프라 운영 모니터링, 성능 테스트, 성능 테스트 결과를 컨테이너화된 마이크로서비스 어플리케이션에 반영, 오류 반영, 운영 체계 이관 및 적용하는 등의 전반적인 운용을 설정한다. In addition, the operation setting unit 240 reflects the overall monitoring view of the containerized microservice application, infrastructure operation monitoring, performance test, and performance test results to the containerized microservice application, error reflection, operating system transfer and application, etc. Set up operation.

이상 설명한 봐와 같이, 본 발명은 기존 어플리케이션은 단일 어플리케이션 형태로 어플리케이션 내에서 입력 데이터의 선처리 및 출력의 후처리를 단일로 진행하여 서비스화가 어렵고, 개발된 코드에 대한 재활용성이 저하되는 반면, 마이크로 서비스 기반 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.
제1항에서,
상기 입력 처리 모듈, 상기 AI 모델 연산 모듈, 상기 출력 처리 모듈은, 각각 컨테이너화된 모듈인 것인 AI 장치.
In claim 1,
The input processing module, the AI model calculation module, and the output processing module are each a containerized module.
제1항에서,
사전에 규정한 운용 정책에 따라, 상기 입력 처리 모듈, 상기 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.
제3항에서,
상기 서비스 제어 모듈은 컨테이너화된 모듈인 것인 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
제5항에서,
상기 구성하는 단계는,
상기 입력 전처리 기능, 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.
제5항에서,
상기 운용 정책을 설정하는 단계는,
각 컨테이너화된 모듈의 입출력 제어와 관련된 정책을 설정하는 단계인 것인 컨테이너화된 어플리케이션을 배포하는 방법.
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.
제7항에서,
각 컨테이너화된 모듈의 입출력 제어와 관련된 정책은,
입력 데이터의 전처리 형식을 규정한 전처리 정책, 전처리된 데이터의 전달 방법을 규정한 전달 정책, 전처리된 데이터의 수신 방법을 규정한 수신 정책, 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 모델 연산 기능 및 후처리 기능을 구비한 대상 어플리케이션을 선정하는 어플리케이션 선정부;
상기 선정된 대상 어플리케이션의 입력 전처리 기능, 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.
제9항에서,
상기 운용 정책 설정부는,
각 컨테이너화된 모듈의 입출력 제어와 관련된 정책을 설정하는 것인 마이크로서비스 플랫폼 장치.
In claim 9,
The operation policy setting unit,
A microservices platform device that sets policies related to I/O control of each containerized module.
특정 url로부터 로딩된 이미지 파일 또는 비디오 파일을 리사이징(resize) 및 어레이(array) 형태로 변경하는 전처리 과정을 처리하는 입력 처리 모듈;
상기 전처리 과정에 따라 생성된 데이터에 대해 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.
제11항에서,
상기 출력 처리 모듈에 의해 처리되는 후처리 과정은,
상기 연산된 결과 데이터를 이용하여 이미지 파일 또는 비디오 파일에 바운딩 박스 및 객체 명을 추가하는 과정과, 바운딩 박스 및 객체 명을 추가된 이미지 파일 또는 비디오 파일을 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.
KR1020190151937A 2019-11-25 2019-11-25 Microservice-based artificial inteligence device for providing artificial inteligence service and method thereof KR20210063610A (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (3)

* Cited by examiner, † Cited by third party
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