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

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

Info

Publication number
KR102622170B1
KR102622170B1 KR1020210153158A KR20210153158A KR102622170B1 KR 102622170 B1 KR102622170 B1 KR 102622170B1 KR 1020210153158 A KR1020210153158 A KR 1020210153158A KR 20210153158 A KR20210153158 A KR 20210153158A KR 102622170 B1 KR102622170 B1 KR 102622170B1
Authority
KR
South Korea
Prior art keywords
model
serving
version
unit
distribution
Prior art date
Application number
KR1020210153158A
Other languages
English (en)
Other versions
KR20230067257A (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 KR1020210153158A priority Critical patent/KR102622170B1/ko
Priority to PCT/KR2022/017476 priority patent/WO2023085738A1/ko
Publication of KR20230067257A publication Critical patent/KR20230067257A/ko
Application granted granted Critical
Publication of KR102622170B1 publication Critical patent/KR102622170B1/ko

Links

Classifications

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

Abstract

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

Description

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

Claims (20)

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

Priority Applications (2)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
KR20230067257A KR20230067257A (ko) 2023-05-16
KR102622170B1 true KR102622170B1 (ko) 2024-01-05

Family

ID=86336078

Family Applications (1)

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

Country Status (2)

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

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200175416A1 (en) * 2018-11-30 2020-06-04 Jpmorgan Chase Bank, N.A. Methods for sharing machine learning based web service models
US20210182729A1 (en) * 2019-12-11 2021-06-17 Cisco Technology, Inc. Systems and methods for providing management of machine learning components
KR102284539B1 (ko) * 2020-11-30 2021-08-02 주식회사 애자일소다 머신러닝 기반 인공지능 모델 학습, 개발, 배포 및 운영 시스템과 이를 이용한 서비스 방법
KR102311787B1 (ko) * 2021-01-06 2021-10-08 한전케이디엔주식회사 Ai 모델의 성능 저하 방지를 위한 ai 모델 관리 장치 및 그 방법

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210055992A (ko) * 2019-11-08 2021-05-18 엘지전자 주식회사 인공지능 모델 관리 방법 및 장치
KR20210063610A (ko) 2019-11-25 2021-06-02 한국전자기술연구원 인공 지능 서비스 제공을 위한 마이크로 서비스 기반의 인공 지능 장치 및 그 방법
US11822913B2 (en) 2019-12-20 2023-11-21 UiPath, Inc. Dynamic artificial intelligence / machine learning model update, or retrain and update, in digital processes at runtime
KR20210131720A (ko) * 2020-04-24 2021-11-03 (주)엔투엠 인공지능 모델을 관리하는 방법 및 시스템
KR102232364B1 (ko) 2020-07-29 2021-03-26 한국전자기술연구원 마이크로 서비스 단위 엣지 응용에서의 서비스 중단 없는 엣지 응용 업데이트 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200175416A1 (en) * 2018-11-30 2020-06-04 Jpmorgan Chase Bank, N.A. Methods for sharing machine learning based web service models
US20210182729A1 (en) * 2019-12-11 2021-06-17 Cisco Technology, Inc. Systems and methods for providing management of machine learning components
KR102284539B1 (ko) * 2020-11-30 2021-08-02 주식회사 애자일소다 머신러닝 기반 인공지능 모델 학습, 개발, 배포 및 운영 시스템과 이를 이용한 서비스 방법
KR102311787B1 (ko) * 2021-01-06 2021-10-08 한전케이디엔주식회사 Ai 모델의 성능 저하 방지를 위한 ai 모델 관리 장치 및 그 방법

Also Published As

Publication number Publication date
KR20230067257A (ko) 2023-05-16
WO2023085738A1 (ko) 2023-05-19

Similar Documents

Publication Publication Date Title
US11144306B2 (en) Scheduling upgrades in distributed computing systems
US8533304B2 (en) Remotely deploying and automatically customizing workstation images
US10430204B2 (en) System and method for cloud provisioning and application deployment
US10614375B2 (en) Machine for development and deployment of analytical models
US9778992B1 (en) Interfacing with a virtual database system
EP3182280B1 (en) Machine for development of analytical models
US8584115B2 (en) Automated operating system device driver updating system
US9588752B2 (en) Performing unattended software installation
CN111580861A (zh) 用于计算机环境迁移的基于模式的人工智能计划器
WO2007105274A1 (ja) 適用パッチ選別装置及び適用パッチ選別方法
US20100058319A1 (en) Agile deployment of server
US20220075613A1 (en) Adaptive feedback based system and method for predicting upgrade times and determining upgrade plans in a virtual computing system
WO2009139770A1 (en) Systems and methods for making software available for download
JP2014063472A (ja) 情報処理装置、その方法及びプログラム
JP4167643B2 (ja) 業務システムの運用方法、運用管理システムおよび運用プログラム
KR102622170B1 (ko) Ai 모델 서빙 시스템 및 방법
US11165655B1 (en) System for optimizing enterprise network relations
US11570072B1 (en) Communicating with a data center management and monitoring console via a broker
US20130091497A1 (en) Configuration to order software deployment and management
WO2022140376A1 (en) Software defined build infrastructure for hybrid, virtualized and native build environments
KR102633812B1 (ko) 지능형 에이전트를 이용한 컨테이너 통합 관제 시스템 및 그 제어 방법
US11509541B1 (en) System for performing a data asset virtual reality mapping session
US20230023597A1 (en) Adaptively Uploading Data Center Asset Data for Analysis
US9984142B2 (en) Single unit of work
KR20230105460A (ko) 마이크로서비스 기반의 지능형 지식 공유 방법 및 시스템

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant