KR20240063666A - 컨테이너화된 인공지능 모듈의 증강 지능 모델 공유 장치 및 방법 - Google Patents

컨테이너화된 인공지능 모듈의 증강 지능 모델 공유 장치 및 방법 Download PDF

Info

Publication number
KR20240063666A
KR20240063666A KR1020220145544A KR20220145544A KR20240063666A KR 20240063666 A KR20240063666 A KR 20240063666A KR 1020220145544 A KR1020220145544 A KR 1020220145544A KR 20220145544 A KR20220145544 A KR 20220145544A KR 20240063666 A KR20240063666 A KR 20240063666A
Authority
KR
South Korea
Prior art keywords
model
information
intelligence
module
artificial intelligence
Prior art date
Application number
KR1020220145544A
Other languages
English (en)
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 KR1020220145544A priority Critical patent/KR20240063666A/ko
Priority to US18/468,188 priority patent/US20240152779A1/en
Publication of KR20240063666A publication Critical patent/KR20240063666A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9566URL specific, e.g. using aliases, detecting broken or misspelled links
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • 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
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)

Abstract

컨테이너화된 인공지능 모듈의 증강 지능 모델 공유 장치 및 방법이 개시된다. 본 발명의 실시예에 따른 컨테이너화된 인공지능 모듈의 증강 지능 모델 공유 장치는, 적어도 하나의 프로그램이 기록된 메모리 및 프로그램을 실행하는 프로세서를 포함하며, 프로그램은, 미리 저장된 응용 구성 정보를 참조하여 로봇 응용에 포함된 도커 이미지의 인공 지능 모듈을 컨테이너 저장소로부터 다운로드하는 단계, 인공 지능 모듈이 사용하는 지능 모델에 대한 모델 정보를 모델 정보 저장소에서 검색하고, 검색된 모델 정보를 기반으로 모델 저장소에서 상응하는 지능 모델을 다운로드하는 단계 및 로컬 파일시스템에 저장한 지능 모델을 컨테이너에 볼륨으로 마운트하여 인공 지능 모듈을 컨테이에서 실행시키는 단계를 수행할 수 있다.

Description

컨테이너화된 인공지능 모듈의 증강 지능 모델 공유 장치 및 방법{Apparatus and Method for Sharing Augmented Intelligence Model of Containerized Artificial Intelligence Module}
본 발명은 로봇에서 다양한 인공지능을 모듈화하고 모듈들을 서로 결합하여 서비스를 제공할 수 있는 기술에 관한 것이다.
로봇이 다양한 서비스를 제공하도록 로봇용 응용 소프트웨어는 여러 가지 인공지능 소프트웨어들의 조합으로 만들어진다.
일례로, 로봇은 음성 정보, 영상 정보 및 다양한 센서 정보 등을 이용하여 음성 인식, 자연어 처리, 사물 인식, 사용자 인식, 행동 인식, 외형특징 인식, 위치 인식, 이동 경로 생성, 관절 궤적 생성, 조작 정보 생성 등 다양한 인공지능 소프트웨어들을 조합하여 사용자에게 서비스를 제공한다.
로봇 응용 소프트웨어 개발자들은 인공지능 소프트웨어들을 손쉽게 조합하기 위해 ROS(Robot Operating System), RTC(Robot Technology Component), OPRoS(Open Platform for Robotic Services) 등과 같은 소프트웨어 프레임워크(Software Framework)를 활용하여 인공지능 소프트웨어들의 입출력과 실행 특성을 규격화하여 모듈화 방식으로 개발하고 배포하는 방식을 선호한다.
한편 최신의 인공지능 모듈들은 인공 신경망(Artificial Neural Network) 기반 기계 학습의 발달을 통해 성능이 크게 향상되고 있으며, 점점 더 많은 신경망 기반의 인공지능 모듈들이 출시되고 있다.
인공지능을 위한 신경망 데이터와 알고리즘으로 구성된 신경망 기반의 인공지능 모듈은 신경망을 구축하기 위해 Tensorflow, Caffe, PyTorch 및 Keras 등 다양한 인공지능 프레임워크 뿐만 아니라 인공지능 알고리즘에 필요한 다양한 외부 패키지들을 필요로 한다. 즉, 다양한 인공지능 프레임워크 및 외부 패키지와 의존 관계를 갖는 신경망 기반의 인공지능 모듈들을 구동하기 위해서는 해당 프레임워크 및 알고리즘이 의존하는 다양한 패키지들을 운영체제에 설치하여야 한다.
하지만, 여러 인공지능 모듈에서 필요한 인공지능 프레임워크나 외부 패키지들의 버전이 서로 다르거나, 외부 패키지 내부에서 필요로 하는 라이브러리 간에 충돌이 발생하여 의존 관계가 서로 상충하여 다수의 인공지능 모듈을 하나의 운영체제에서 동시에 구동시키는데 어려움이 발생한다.
이런 문제를 해결하기 위해, 최근에는 도커(Docker)를 이용하여 소프트웨어 실행에 필요한 운영체제, 런타임, 시스템 라이브러리 및 외부 패키지 등 모든 것을 포함하여 가상화 이미지(Image)로 만들어 구동시키는 컨테이너(Container) 기술이 개발되었다.
하지만, 도커 이미지로 만들어진 인공지능 모듈에 저장되어 있던 기존 모델 데이터를 새롭게 증강된 모델 데이터로 교체하기 위해서는 도커 이미지를 새로 빌드해야 하는 번거로움이 발생하며, 만들어진 도커 이미지의 크기도 매우 커서 배포하는데 많은 시간이 소요되어 로봇 지능 모델이 증강되더라도 로봇의 지능을 즉각적으로 향상시키기 어려운 상황이었다.
기재된 실시예는 컨테이너화된 로봇용 소프트웨어 프레임워크 기반 인공지능 모듈을 위한 지능이 증강되었을 때 도커 이미지를 새롭게 빌드하지 않고 증강 지능을 손쉽게 공유하는 방법을 제공하는 것을 목적으로 한다.
실시예에 따른 컨테이너화된 인공지능 모듈의 증강 지능 모델 공유 장치는, 적어도 하나의 프로그램이 기록된 메모리 및 프로그램을 실행하는 프로세서를 포함하며, 프로그램은, 미리 저장된 응용 구성 정보를 참조하여 로봇 응용에 포함된 도커 이미지의 인공 지능 모듈을 컨테이너 저장소로부터 다운로드하는 단계, 인공 지능 모듈이 사용하는 지능 모델에 대한 모델 정보를 모델 정보 저장소에서 검색하고, 검색된 모델 정보를 기반으로 모델 저장소에서 상응하는 지능 모델을 다운로드하는 단계 및 로컬 파일시스템에 저장한 지능 모델을 컨테이너에 볼륨으로 마운트하여 인공 지능 모듈을 컨테이에서 실행시키는 단계를 수행할 수 있다.
이때, 프로그램은, 모듈 기본 정보 저장소에 저장된 모듈 기본 정보를 기반으로 로봇 응용을 구성하는 단계 및 구성된 로봇 응용에 대한 응용 구성 정보를 응용 구성 정보 저장소에 저장하는 단계를 더 수행하고, 로봇 응용을 구성하는 단계에서, 모듈 목록 창 및 로봇 응용 구성 창을 포함하는 로봇 응용 구성 그래픽 사용자 인터페이스를 통해 사용자의 선택 입력을 기반으로 로봇 응용을 구성하되, 모듈 기본 정보 저장소에 저장된 인공 지능 모듈 기본 정보들을 모듈 목록 창에 나열하는 단계, 나열된 인공 지능 모듈 기본정보들 중에서 선택된 인공 지능 모듈들을 로봇 응용 구성 창에서 선택된 위치에 배치하는 단계 및 배치된 인공 지능 모듈들 사이의 통신 연결 관계를 설정하는 단계를 수행할 수 있다.
이때, 모델 정보는, 지능 모델의 신경망 구조 재구축에 필요한 클래스의 소스 파일 및 버전별 모델 파일에 대한 경로를 저장하고 있는 모델 URL 파일을 포함할 수 있다.
이때, 프로그램은, 지능 모델을 다운로드하는 단계에서, 모델 정보 저장소 URL에 연결하여 지능 모델 이름에 해당하는 모델 정보를 획득하는 단계, 모델 정보에 포함된 모델 버전으로 체크아웃을 수행하여 모델 정보를 원하는 버전의 스냅샷으로 변경하는 단계 및 스냅샷이 지시하는 모델 저장소 접근 경로 URL을 이용하여 네트워크 기반 저장 장치 또는 클라우드 스토리지 서비스로부터 지능 모델 파일을 다운로드하는 단계를 수행할 수 있다.
이때, 모듈 기본 정보는, 인공 지능 모듈을 실행하는데 필요한 도커 이미지 및 지능 모델 각각에 대한 참조 정보를 포함하되, 프로그램은, 로봇 응용을 구성하는 단계에서, 응용 구성 창에 배치된 인공 지능 모듈의 모듈 기본 정보를 확장하는 단계를 더 수행할 수 있다.
이때, 도커 이미지에 대한 참조 정보는, 도커 이미지 이름, 동작 플랫폼 및 도커 저장소에 대한 URL 중 적어도 하나를 기본 정보로 포함하되, 프로그램은, 모듈 기본 정보를 확장하는 단계에서, 컨테이너를 실행시킬 때 필요한 환경 변수들, 컨테이너를 실행시킬 때 선택적으로 입력 가능한 명령어 및 선택적 명령에 대한 입력 파라미터 중 적어도 하나를 도커 이미지에 대한 참조 정보에 추가할 수 있다.
이때, 프로그램은, 도커 저장소에 대한 URL을 이용하여 도커 이미지 이름과 동작 플랫폼에 해당하는 도커 이미지를 다운로드하고, 컨테이너를 실행시킬 때 필요한 환경 변수들을 설정하고, 필요한 경우 선택적으로 입력 가능한 명령어 및 선택 명령에 대한 입력 파라미터를 설정한 후 도커를 컨테이너 인스턴스로 생성하여 실행할 수 있다.
이때, 지능 모델에 대한 참조 정보는, 지능 모델 이름, 동작 플랫폼, 모델 정보 저장소에 대한 URL 및 컨테이너에 볼륨으로 저장될 디렉토리 경로 중 적어도 하나를 기본 정보로 포함하되, 프로그램은, 모듈 기본 정보를 확장하는 단계에서, 사용하는 지능 모델 버전 및 사용중인 모델의 자동 업데이트 정책 중 적어도 하나를 지능 모델에 대한 참조 정보에 추가할 수 있다.
이때, 프로그램은, 자동 업데이트 정책이 업데이트 없음(NoUpdate)으로 설정되어 있는 경우, 다운로드되어 캐쉬되어 있는 지능 모델 존재 여부에 따라 지능 모델의 다운로드를 수행하고, 자동 업데이트 정책이 업데이트 시작(UpdateOnStart)으로 설정되어 있는 경우, 도커를 시작할때만 최신 버전의 모델 여부를 확인하여 다운로드되어 캐쉬되어 있는 지능 모델 보다 최신 버전이 있는 경우 새로 다운로드하여 실행하고, 자동 업데이트 정책이 업데이트 진행(UpdateOnRunning)으로 설정되어 있는 경우, 도커 컨테이너가 동작 중일 때에도 최신 모델이 있는 경우에는 항상 최신 모델을 다운로드하여 도커를 순차적으로 롤링 업데이트(Rolling Update) 형태로 재실행할 수 있다.
실시예에 따른 컨테이너화된 인공지능 모듈의 증강 지능 모델 공유 방법은, 미리 저장된 응용 구성 정보를 참조하여 로봇 응용에 포함된 도커 이미지의 인공 지능 모듈을 컨테이너 저장소로부터 다운로드하는 단계, 인공 지능 모듈이 사용하는 지능 모델에 대한 모델 정보를 모델 정보 저장소에서 검색하고, 검색된 모델 정보를 기반으로 모델 저장소에서 상응하는 지능 모델을 다운로드하는 단계 및 로컬 파일시스템에 저장한 지능 모델을 컨테이너에 볼륨으로 마운트하여 인공 지능 모듈을 컨테이에서 실행시키는 단계를 수행할 수 있다.
이때, 실시예에 따른 컨테이너화된 인공지능 모듈의 증강 지능 모델 공유 방법은, 모듈 기본 정보 저장소에 저장된 모듈 기본 정보를 기반으로 로봇 응용을 구성하는 단계 및 구성된 로봇 응용에 대한 응용 구성 정보를 응용 구성 정보 저장소에 저장하는 단계를 더 포함하고, 로봇 응용을 구성하는 단계는, 모듈 목록 창 및 로봇 응용 구성 창을 포함하는 로봇 응용 구성 그래픽 사용자 인터페이스를 통해 사용자의 선택 입력을 기반으로 로봇 응용을 구성하되, 모듈 기본 정보 저장소에 저장된 인공 지능 모듈 기본 정보들을 모듈 목록 창에 나열하는 단계, 나열된 인공 지능 모듈 기본정보들 중에서 선택된 인공 지능 모듈들을 로봇 응용 구성 창에서 선택된 위치에 배치하는 단계 및 배치된 인공 지능 모듈들 사이의 통신 연결 관계를 설정하는 단계를 포함할 수 있다.
이때, 모델 정보는, 지능 모델의 신경망 구조 재구축에 필요한 클래스의 소스 파일 및 버전별 모델 파일에 대한 경로를 저장하고 있는 모델 URL 파일을 포함할 수 있다.
이때, 지능 모델을 다운로드하는 단계는, 모델 정보 저장소 URL에 연결하여 지능 모델 이름에 해당하는 모델 정보를 획득하는 단계, 모델 정보에 포함된 모델 버전으로 체크아웃을 수행하여 모델 정보를 원하는 버전의 스냅샷으로 변경하는 단계 및 스냅샷이 지시하는 모델 저장소 접근 경로 URL을 이용하여 네트워크 기반 저장 장치 또는 클라우드 스토리지 서비스로부터 지능 모델 파일을 다운로드하는 단계를 포함할 수 있다.
이때, 모듈 기본 정보는, 인공 지능 모듈을 실행하는데 필요한 도커 이미지 및 지능 모델 각각에 대한 참조 정보를 포함하되, 로봇 응용을 구성하는 단계는, 응용 구성 창에 배치된 인공 지능 모듈의 모듈 기본 정보를 확장하는 단계를 더 포함할 수 있다.
이때, 도커 이미지에 대한 참조 정보는, 도커 이미지 이름, 동작 플랫폼 및 도커 저장소에 대한 URL 중 적어도 하나를 기본 정보로 포함하되, 모듈 기본 정보를 확장하는 단계는, 컨테이너를 실행시킬 때 필요한 환경 변수들, 컨테이너를 실행시킬 때 선택적으로 입력 가능한 명령어 및 선택적 명령에 대한 입력 파라미터 중 적어도 하나를 도커 이미지에 대한 참조 정보에 추가할 수 있다.
이때, 도커 저장소에 대한 URL을 이용하여 도커 이미지 이름과 동작 플랫폼에 해당하는 도커 이미지를 다운로드하고, 컨테이너를 실행시킬 때 필요한 환경 변수들을 설정하고, 필요한 경우 선택적으로 입력 가능한 명령어 및 선택 명령에 대한 입력 파라미터를 설정한 후 도커를 컨테이너 인스턴스로 생성하여 실행할 수 있다.
이때, 지능 모델에 대한 참조 정보는, 지능 모델 이름, 동작 플랫폼, 모델 정보 저장소에 대한 URL 및 컨테이너에 볼륨으로 저장될 디렉토리 경로 중 적어도 하나를 기본 정보로 포함하되, 모듈 기본 정보를 확장하는 단계는, 사용하는 지능 모델 버전 및 사용중인 모델의 자동 업데이트 정책 중 적어도 하나를 지능 모델에 대한 참조 정보에 추가할 수 있다.
이때, 자동 업데이트 정책이 업데이트 없음(NoUpdate)으로 설정되어 있는 경우, 다운로드되어 캐쉬되어 있는 지능 모델 존재 여부에 따라 지능 모델의 다운로드를 수행하고, 자동 업데이트 정책이 업데이트 시작(UpdateOnStart)으로 설정되어 있는 경우, 도커를 시작할때만 최신 버전의 모델 여부를 확인하여 다운로드되어 캐쉬되어 있는 지능 모델 보다 최신 버전이 있는 경우 새로 다운로드하여 실행하고, 자동 업데이트 정책이 업데이트 진행(UpdateOnRunning)으로 설정되어 있는 경우, 도커 컨테이너가 동작 중일 때에도 최신 모델이 있는 경우에는 항상 최신 모델을 다운로드하여 도커를 순차적으로 롤링 업데이트(Rolling Update) 형태로 재실행할 수 있다.
실시예에 따른 컨테이너화된 인공지능 모듈의 증강 지능 모델 공유 장치는, 적어도 하나의 프로그램이 기록된 메모리 및 프로그램을 실행하는 프로세서를 포함하며, 프로그램은, 모듈 기본 정보 저장소에 저장된 인공 지능 모듈 기본 정보들을 중에서 선택된 인공 지능 모듈들간의 통신 연결 관계를 설정하여 로봇 응용을 구성하는 단계, 구성된 로봇 응용에 대한 응용 구성 정보를 응용 구성 정보 저장소에 저장하는 단계, 저장된 응용 구성 정보를 참조하여 로봇 응용에 포함된 도커 이미지의 인공 지능 모듈을 컨테이너 저장소로부터 다운로드하는 단계, 인공 지능 모듈이 사용하는 지능 모델에 대한 모델 정보를 모델 정보 저장소에서 검색하고, 검색된 모델 정보를 기반으로 모델 저장소에서 상응하는 지능 모델을 다운로드하는 단계 및 로컬 파일시스템에 저장한 지능 모델을 컨테이너에 볼륨으로 마운트하여 인공 지능 모듈을 컨테이에서 실행시키는 단계를 수행할 수 있다.
이때, 모델 정보는, 지능 모델의 신경망 구조 재구축에 필요한 클래스의 소스 파일 및 버전별 모델 파일에 대한 경로를 저장하고 있는 모델 URL 파일을 포함하되, 지능 모델을 다운로드하는 단계에서, 모델 정보 저장소 URL에 연결하여 지능 모델 이름에 해당하는 모델 정보를 획득하는 단계, 모델 정보에 포함된 모델 버전으로 체크아웃을 수행하여 모델 정보를 원하는 버전의 스냅샷으로 변경하는 단계 및 스냅샷이 지시하는 모델 저장소 접근 경로 URL을 이용하여 네트워크 기반 저장 장치 또는 클라우드 스토리지 서비스로부터 지능 모델 파일을 다운로드하는 단계를 포함할 수 있다.
본 발명의 구성에 따르면, 다양한 인공지능을 도커 컨테이너로 모듈화하고 모듈들을 서로 결합하여 서비스를 제공할 수 있는 로봇에서, 인공지능 모듈이 사용하는 신경망 데이터인 지능 모델을 로봇 외부의 고성능 서버에서 증강시켜 버전 별로 관리할 수 있으며, 도커 이미지의 추가적인 빌드나 이미지 전달 과정 없이 버전 별로 관리되는 지능 모델을 손쉽게 선택하고 도커 컨테이너와 연결하여 배포할 수 있으며, 지능 모델이 증강된 경우 도커 컨테이너로 구동되는 인공지능 모듈을 새로운 지능 모델을 이용하여 자연스럽게 업데이트할 수 있다.
도 1은 로봇을 위한 컨테이너화된 인공지능 모듈을 설명하기 위한 도면이다.
도 2는 인공 지능 모듈을 설명하기 위한 도면이다.
도 3은 도커 이미지에서 지능 모델 교체 예시도이다.
도 4는 실시예에 따른 컨테이너화된 인공지능 모듈의 증강 지능 모델 공유 방법을 설명하기 위한 순서도이다.
도 5는 실시예에 따른 컨테이너화된 인공지능 모듈의 증강 지능 모델 공유 방법을 설명하기 위한 시스템 구성도이다.
도 6은 실시예에 따른 도커화된 인공 지능 모듈을 위한 증강 지능 모델을 저장하는 과정을 설명하기 위한 예시도이다.
도 7은 실시예에 따른 도커화된 인공지능 모듈을 위한 증강 지능 모델 저장 과정을 설명하기 위한 순서도이다.
도 8은 실시예에 따른 도커화된 인공지능 모듈을 위한 지능 모델의 다운로드 에시도이다.
도 9는 실시예에 따른 도커화된 인공지능 모듈을 위한 지능 모델을 다운로드하는 과정을 설명하기 위한 순서도이다.
도 10는 실시예에 따른 도커화된 인공지능 모듈을 위한 도커 관련 추가 정보 입력창 예시도이다.
도 11은 실시예에 따른 도커화된 인공지능 모듈을 위한 모델 관련 추가 정보 입력창에서 모델 선택의 예시도이다.
도 12는 실시예에 따른 도커화된 인공지능 모듈을 위한 모델 관련 추가 정보 입력창에서 업데이트 정책 선택의 예시이다.
도 13 및 도 14는 실시예에 따른 도커화된 인공지능 모듈을 위한 증강 지능 모델의 롤링 업데이트 예시도이다.
도 15는 실시예에 따른 컴퓨터 시스템 구성을 나타낸 도면이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
비록 "제1" 또는 "제2" 등이 다양한 구성요소를 서술하기 위해서 사용되나, 이러한 구성요소는 상기와 같은 용어에 의해 제한되지 않는다. 상기와 같은 용어는 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용될 수 있다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있다.
본 명세서에서 사용된 용어는 실시예를 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 또는 "포함하는(comprising)"은 언급된 구성요소 또는 단계가 하나 이상의 다른 구성요소 또는 단계의 존재 또는 추가를 배제하지 않는다는 의미를 내포한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 해석될 수 있다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
이하에서는, 도 1 내지 도 15를 참조하여 실시예에 따른 컨테이너화된 인공지능 모듈의 증강 지능 모델 공유 장치 및 방법이 상세히 설명된다.
도 1은 로봇을 위한 컨테이너화된 인공지능 모듈을 설명하기 위한 도면이다.
도 1을 참조하면, 로봇에 탑재되는 다양한 인공지능 모듈과 로봇용 소프트웨어 프레임워크를 하나의 패키지로 컨테이너화시키고, 이들을 로봇에 배포한 후 로봇용 소프트웨어 프레임워크의 통신 기능을 활용하여 조합하면 로봇이 사용자에게 서비스를 제공할 수 있는 응용이 완성된다.
도 2는 인공 지능 모듈을 설명하기 위한 도면이다.
도 2를 참조하면, 학습기(Trainer)는 학습 데이터를 입력으로 지능 모델을 학습시키고, 학습이 완료된 지능 모델은 추론기(Inferrer)의 역할을 수행하는 로봇용 인공지능 모듈에 적재되어 로봇의 센싱 데이터를 입력으로 받아 추론이나 예측 등 인공지능 모듈의 고유 기능을 수행하는데 활용된다.
여기서, 인공지능 모델에 대한 학습 과정은 많은 계산 자원과 시간을 요구하므로, 로봇 내부에서 동작시키지 않고, 클라우드 환경 등에서 고성능 서버를 활용하여 보다 많은 데이터와 고성능 GPU 및 더 많은 컴퓨팅 자원을 이용하여 동작된다.
클라우드 환경에서 고성능 서버를 활용하여 기존 지능 모델보다 정확도가 향상된 증강 지능 모델이 생성되는 경우, 이들을 이용하여 로봇에서 동작하는 기존 인공 지능 모듈을 증강된 지능 모델로 교체시켜 점차 로봇의 지능 관련 성능을 향상시킬 수 있다.
도 3은 도커 이미지에서 지능 모델 교체 예시도이다.
도 3을 참조하면, 도커 이미지로 만들어진 인공지능 모듈에 저장되어 있던 기존 모델 데이터를 새롭게 증강된 모델 데이터로 교체하기 위해서는 학습기가 동작하는 클라우드 서버에서 도커 이미지를 새로 빌드하는 과정을 거치고 증강된 모델 데이터를 도커 내부 볼륨에 복사하는 과정을 통해 도커 이미지를 완성해야 한다.
도커 이미지를 새로 빌드하기 위해서는 증강 학습을 수행하는 클라우드 서버에서 학습기 뿐만 아니라 추론기에 해당하는 실행코드나 소스코드 및 인공지능 모듈의 하위 의존 패키지에 대한 자료를 모두 준비하고 있어야 하는 등 관리의 어려움이 있다.
또한, 빌드된 도커 이미지를 인공지능 모듈을 구동하는 각 로봇에 배포하는 과정에서, 지능 모델을 포함한 도커 이미지의 크기가 커져서 로봇에 전송하여 재시작하는데 많은 시간이 소요된다.
따라서, 기존에는 모델이 증강될 때마다 도커 이미지를 새로 빌드해야 하는 번거로움이 발생하며, 만들어진 도커 이미지의 크기도 매우 커서 배포하는데 많은 시간이 소요되어 로봇 지능 모델이 증강되더라도 로봇의 지능을 즉각적으로 향상시키기 어려운 상황이었다.
따라서, 실시예에서는 로봇용 소프트웨어 프레임워크를 활용하여 도커 이미지로 모듈화된 로봇용 인공지능 소프트웨어들을 위해, 지능 모델을 도커 이미지와 분리시켜 모델을 버전별로 관리하고 인공지능 모듈이 컨테이너로 인스턴스화되어 시작하거나 동작 중일 때 적절한 버전의 지능 모델이나 최신 증강된 지능 모델을 컨테이너 볼륨에 연결하여 구동시킬 수 있도록 한다.
도 4는 실시예에 따른 컨테이너화된 인공지능 모듈의 증강 지능 모델 공유 방법을 설명하기 위한 순서도이고, 도 5는 실시예에 따른 컨테이너화된 인공지능 모듈의 증강 지능 모델 공유 방법을 설명하기 위한 시스템 구성도이다.
도 4를 참조하면, 실시예에 따른 컨테이너화된 인공지능 모듈의 증강 지능 모델 공유 방법은, 미리 저장된 응용 구성 정보를 참조하여 로봇 응용에 포함된 도커 이미지의 인공 지능 모듈을 컨테이너 저장소로부터 다운로드하는 단계(S103), 인공 지능 모듈이 사용하는 지능 모델에 대한 모델 정보를 모델 정보 저장소에서 검색하고, 검색된 모델 정보를 기반으로 모델 저장소에서 상응하는 지능 모델을 다운로드하는 단계(S104) 및 로컬 파일시스템에 저장한 지능 모델을 컨테이너에 볼륨으로 마운트하여 인공 지능 모듈을 컨테이에서 실행시키는 단계(S105)을 포함할 수 있다.
이때, 실시예에 따른 컨테이너화된 인공지능 모듈의 증강 지능 모델 공유 방법은, 모듈 기본 정보 저장소에 저장된 모듈 기본 정보를 기반으로 로봇 응용을 구성하는 단계(S101) 및 구성된 로봇 응용에 대한 응용 구성 정보를 응용 구성 정보 저장소에 저장하는 단계(S102)를 더 포함할 수 있다.
이때, 로봇 응용을 구성하는 단계(S101)에서, 로봇 응용 구성 그래픽 사용자 인터페이스(Graphic User Interface, GUI)를 통해 사용자의 선택 입력을 기반으로 로봇 응용을 구성할 수 있다.
즉, 도 5를 참조하면, 모듈 기본 정보 저장소(10)에 저장되어 있는 모듈 기본 정보 목록이 로봇 응용 구성 GUI(100)의 모듈 목록 창(110)에 나열된다.
이때, 모듈 기본 정보는, 인공 지능 모듈 생성시 함께 생성되는 것으로, 인공 지능 모듈을 실행하는데 필요한 도커 이미지 및 지능 모델 각각에 대한 참조 정보를 포함하고 있다. 모듈 기본 정보에 대한 상세한 설명은 도 10 내지 12를 참조하여 후술하기로 한다.
그런 후, 모듈 목록 창(110)에 나열된 인공 지능 모듈 기본정보들 중에서 선택된 인공 지능 모듈들을 로봇 응용 구성 창(120)에서 선택된 위치에 배치된다. 즉, 사용자가 모듈 기본 정보를 마우스 끌기를 통해 로봇 응용 구성 창에 배치할 수 있다.
마지막으로, 배치된 인공 지능 모듈들 사이의 통신 연결 관계를 설정되면 로봇 응용이 생성된다.
이때, 로봇 응용을 구성하는 단계(S101)에서, 응용 구성 창에 배치된 인공 지능 모듈의 모듈 기본 정보를 확장하는 단계를 더 수행될 수 있다. 즉, 모듈 기본 정보인 도커 이미지 및 지능 모델 각각에 대한 참조 정보가 추가될 수 있다. 이에 대한 상세한 설명은 도 10 내지 12를 참조하여 후술하기로 한다.
전술한 바와 같이 생성된 로봇 응용에 대한 응용 구성 정보는 로봇용 컴퓨터(200) 내에 있는 응용 구성 정보 저장소(210)에 저장된다.
그런 후, 로봇용 컴퓨터에 탑재된 배포 에이전트(220)는, 사용자의 요청이나 로봇의 자체 판단에 의해 실행하도록 선택된 로봇 응용에 해당하는 응용 구성 정보를 해석하게 된다.
따라서, S1010에서, 배포 에이전트(220)는, 응용 구성 정보를 해석된 결과에 따라, 로봇 응용에 포함된 기본 모듈 정보에 포함된 도커 이미지의 인공 지능 모듈을 컨테이너 저장소(20)로부터 컨테이너(230)로 다운로드한다.
또한, S1020에서, 배포 에이전트(220)는, 각 인공 지능 모듈이 사용하는 지능 모델에 대한 모델 정보를 모델 정보 저장소(30)에서 찾아 해석하고, 모델 저장소(40)로부터 필요로 하는 지능 모델을 다운로드하여 로컬 파일 시스템(240)에 저장한다.
여기서, 지능 모델은, 학습에 따라 증강될 수 있다, 따라서, 모델 정보 저장소(30) 및 모델 저장소(40) 각각은 증강된 지능 모델에 의해 업데이트될 수 있다. 이에 대한 상세한 설명은 도 6 및 도 7을 참조하여 후술하기로 한다.
또한, 이와 같이 증강되는 지능 모델을 로봇 컴퓨터(200)에서 다운로드하는 상세한 설명은 도 8 및 도 9를 참조하여 후술하기로 한다.
그런 후, 인공 지능 모듈이 컨테이너(230)에서 실행될 때, 로컬 파일시스템(240)에 저장한 모델을 컨테이너에 볼륨으로 마운트(mount)하여 실행시키게 된다. 그러면, 인공 지능 모듈은, 실행 초기화 과정에서 마운트된 볼륨을 마치 로컬 파일시스템처럼 접근하여 지능 모델을 메모리에 적재(load)하여 신경망 데이터를 완성하고 모듈의 알고리즘 수행 과정에 활용할 수 있다.
도 6은 실시예에 따른 도커화된 인공 지능 모듈을 위한 증강 지능 모델을 저장하는 과정을 설명하기 위한 예시도이고, 도 7은 실시예에 따른 도커화된 인공지능 모듈을 위한 증강 지능 모델 저장 과정을 설명하기 위한 순서도이다.
도 6을 참조하면, 모델 정보 저장소(30)에 저장되는 모델 정보는, 지능 모델의 신경망 구조를 재구축하는데 필요한 클래스의 소스파일과 버전별 모델 파일에 대한 경로를 저장하고 있는 모델 URL 파일로 구성될 수 있다.
이때, 모델 구축 클래스 소스 파일은 하부의 인공 지능 프레임워크에서 모델 구축 클래스를 저장 및 적재하는 방식에 따라 선택적으로 생성될 수 있다. 일 례로, PyTorch의 경우에는 Torch.nn.Module을 확장한 클래스가 인스턴스화하기 위해 모델 구축 클래스 소스파일이 필요한 반면, TensorFlow 및 Keras의 경우에는 모델 파일 자체에 모델 구축 클래스가 포함되어 있어서 모델 구축 클래스 소스파일이 필요없을 수도 있다.
또한, 모델 정보에 모델 구축 클래스 소스 파일 및 모델 파일은, Git, Subversion(SVN)과 같은 버전 관리 시스템(VCS: Version Control System)(31)을 이용하여 버전이 관리될 수 있다.
그런데, Git, Subversion(SVN)과 같은 보통의 버전 관리 시스템(VCS)에서는 크기가 큰 바이너리 형태의 모델을 직접 저장 및 관리함에 있어, 저장용량의 제약이나 성능의 문제가 발생될 수 있다.
따라서, 모델 정보 중 모듈 버전 정보와 같은 핵심 정보만 버전 관리 시스템(VCS)(31)이 관리하고, 모델 파일 자체는 NAS(Network Attached Storage)와 같은 네트워크 기반 저장 장치나 Google 버킷(bucket)혹은 Amazon s3 버킷과 같은 클라우드 스토리지 서비스를 활용하여 모델 저장소(40)를 구축하여 저장되도록 할 수 있다. 따라서, 모델 정보에는 저장한 모델을 접근할 수 있는 경로 URL 정보와 소스 파일 형태로 크기가 작은 모델 구축 클래스만 저장한다.
그리고, 로봇 외부의 클라우드나 서버에서 학습기(50)를 이용하여 지능 모델이 증강된 경우, 학습기(50)는 모델 저장 API(51)를 이용하여, 증강된 지능 모델을 모델 저장소(40)에 추가하고 추가된 모델 버전에 대한 정보를 이용하여 모델 정보를 갱신할 수 있다.
이때, 모델 저장 API(51)를 호출하기 위해서는 모델 정보에 대한 URL과 모델이 저장될 저장소에 대한 URL이 입력 파라미터로 사용될 수 있다.
도 7을 참조하면, 호출된 모델 저장 API(51)는, 입력 파라미터에 사용자가 설정한 버전 번호가 포함되어 있는지를 판단한다(S310).
S310의 판단 결과 입력 파라미터에 사용자가 설정한 버전 번호가 포함되어 있을 경우, 모델 저장 API(51)는, 버전 번호를 사용자가 입력한 버전 번호로 설정한다(S320),
반면, S310의 판단 결과 입력 파라미터에 사용자가 설정한 버전 번호가 포함되어 있지 않을 경우, 모델 저장 API(51)는, 현재 사용하고 있는 모델의 최신(latest) 버전을 알아내고 여기에 자동으로 번호를 증가시켜서 버전 숫자를 올려서 모델 버전 정보를 갱신하는데 사용한다(S330).
그런 후, 모델저장 API(51)는, 모델 저장소(40)에 모델 버전에 해당하는 폴더를 생성(S340)하고, 하부의 인공지능 프레임워크에서 제공하는 방법을 이용하여 신경망 가중치에 해당하는 모델을 생성한 후, 해당 폴더에 파일 형태로 저장하고 버전 관리 시스템(VCS)에 등록한다(S350~S360).
또한, 모델저장 API(51)는, 하부의 인공지능 프레임워크에서 모델 구축 클래스를 저장 및 적재하는 방법을 이용하여 모델 구축 클래스에 해당하는 소스파일을 시리얼화하여 파일로 생성하고 모델 정보에 저장한 후, 모델 파일 URL 정보를 갱신하고 버전 관리 시스템(VCS)에 등록한다(S370~S380).
그런 후, 모델저장 API(51)는, 모델의 저장과 등록이 완료되었으면 버전 관리 시스템(VCS)을 이용하여 현재 모델 정보에 대한 스냅샵(Snapshot)에 모델 버전 이름과 latest로 태깅(Tagging)하여 놓는다(S390).
도 8은 실시예에 따른 도커화된 인공지능 모듈을 위한 지능 모델의 다운로드 에시도이고, 도 9는 실시예에 따른 도커화된 인공지능 모듈을 위한 지능 모델을 다운로드하는 과정을 설명하기 위한 순서도이다.
도 8 및 도 9를 참조하면, 로봇용 컴퓨터(200)에서 수행되는 배포 에이전트(220)는, 입력에 버전 정보가 포함되어 있는지의 여부(S410)에 따라, 입력된 버전 번호 및 최신 버전 번호에 상응하는 지능 모델을 다운로드 대상으로 설정한다(S420, S430).
그런 후, 배포 에이전트(220)는, 모델 정보 저장소 URL에 연결하여 지능 모델 이름에 해당하는 모델 정보를 복사하여(clone) 가져온(S440) 후, 모델 정보에 포함되어 있고 버전 관리 시스템(VCS)으로 관리되는 모델 버전으로 체크아웃(Checkout)을 수행하여 모델 정보를 원하는 버전의 스냅샷으로 변경한다(S450).
그런 후, 배포 에이전트(220)는, 해당 스냅샷의 모델 정보가 지시하는 모델 저장소 접근 경로 URL을 이용하여 네트워크 기반 저장장치나 클라우드 스토리지 서비스로부터 모델 파일을 다운로드한다(S460).
이때, 로봇용 컴퓨터에 다운로드된 모델 파일들은 내부 캐쉬 저장소에 저장하여 운용된다. 즉, 인공 지능 모듈이 다시 시작하여 기존에 사용하였던 지능 모델을 사용하기 위해 다운로드하려고 할 때, 이미 내부 캐쉬에 저장되어 있는 모델 파일이 존재하는 경우에는 다시 다운로드하지 않고 캐쉬 저장소에 있는 모델 파일을 이용한다.
도 10는 실시예에 따른 도커화된 인공지능 모듈을 위한 도커 관련 추가 정보 입력창 예시도이다.
도 10을 참조하면, 전술한 바와 같이 로봇 응용을 구성하는 단계(S101)에서, 로봇 응용 구성 그래픽 사용자 인터페이스(Graphic User Interface, GUI)를 통해 사용자의 선택 입력을 기반으로 로봇 응용을 구성할 수 있다.
이때, 로봇 응용을 구성하는 단계(S101)에서, 응용 구성 창에 배치된 인공 지능 모듈의 모듈 기본 정보를 확장할 수 있다.
즉, 응용 구성정보는 모듈 기본 정보인 도커 이미지 및 지능 모델 각각에 대해 로봇 특성이나 환경에 맞도록 모듈 기본정보가 확장된 내용의 정보가 추가될 수 있다.
즉, 모듈 기본정보로부터 도커 이미지를 참조하기 위한 완전한 정보와 인공지능 모델에 대한 완전한 정보는 로봇 응용 구성 GUI(100)를 통해 로봇 응용 구성 창에 모듈을 끌어다 놓은 후 마우스 우클릭하여 나타나는 추가 정보 입력 창(130)의 도커 탭(131) 및 모델 탭(132)을 통해 추가정보를 입력하여 완성한다.
이중, 도커 이미지에 대한 대한 참조 정보는 다음의 <표 1>과 같다.
항목 설명 기본정보
Name 도커 이미지 이름 O
Platform 동작 플랫폼 (예시: X86, ARM, Raspberry 등) O
Registry 도커 저장소에 대한 URL O
Environments 컨테이너를 실행시킬 때 필요한 환경 변수들
Command 컨테이너를 실행시킬 때 선택적으로 입력 가능한 명령어
Arguments 선택적 명령에 대한 입력 파라미터
<표 1>을 참조하면, 응용 구성정보에는 포함되지 않고 모듈 기본정보에만 포함되는 정보에는 Name, Platform, Registry가 해당하며, 반대로 모듈 기본정보에는 포함되지 않고 응용 구성정보에만 추가로 입력되는 항목은 Environment, Command, Arguments가 해당한다.
따라서, 로봇용 컴퓨터에서 수행되는 배포 에이전트는 응용 구성 정보에 포함된 도커 이미지에 대한 참조 정보 중 도커 저장소 URL을 이용하여 도커 이미지 이름과 동작 플랫폼에 해당하는 도커 이미지를 다운로드하고, 컨테이너를 실행시킬 때 필요한 환경 변수들을 설정하고 필요한 경우 선택적으로 입력된 명령어와 입력 파라미터를 설정한 후 도커를 컨테이너 인스턴스로 만들어 실행시킨다.
그리고, 지능 모델을 위한 참조 정보는 다음의 <표 2>와 같다.
항목 설명 기본정보
Name 인공지능 모델 이름 O
Platform 동작 플랫폼 (예시: CPU, GPU 등) O
Registry 모델 정보 저장소에 대한 URL O
Volume 컨테이너에 볼륨으로 저장될 디렉토리 경로 O
Version 사용하는 인공지능 모델 버전 (예시: v1.0, v2.0 등 버전표시 혹은 latest)
AutoUpdatePolicy 사용중인 모델의 자동 업데이트 정책(예시: NoUpdate, UpdateOnStart, UpdateOnRunning)
<표 2>를 참조하면, 응용 구성정보에는 포함되지 않고 모듈 기본정보에만 포함되는 정보에는 Name, Platform, Registry, Volume가 해당하며, 반대로 모듈 기본정보에는 포함되지 않고 응용 구성정보에만 추가로 입력하는 항목은 Version, AutoUpdatePolicy가 해당한다.
도 11은 실시예에 따른 도커화된 인공지능 모듈을 위한 모델 관련 추가 정보 입력창에서 모델 선택의 예시도이다.
도 11을 참조하면, 모듈 기본정보로부터 인공지능 모델에 대한 완전한 정보는 로봇 응용 구성 GUI(100)를 통해 로봇 응용 구성 창에 모듈을 끌어다 놓은 후 마우스 우클릭하여 나타나는 추가 정보 입력 창의 모델 탭을 통해 추가정보를 입력하여 완성한다. 이때, Version의 경우에는 모델 정보 저장소(30)에 저장된 모델 정보를 접근하여 모델 저장 단계에서 버전 관리 시스템(VCS)에 태깅(Tagging)된 버전 이름들의 목록을 가져와서 선택 박스(select box)에 표시하여 선택할 수 있게 한다.
다운로드된 모델 파일은 도커를 컨테이너 인스턴스로 만들어 실행할 때, 모델의 참조 정보에 정의된 Volume으로 마운트(mount)되도록 설정하여 인공지능 모듈에서 적재(load) 하여 사용한다.
이때, 인공지능 모델을 위한 응용 구성정보 중 AutoUpdatePolicy는 지능 모델이 증강되어 갱신된 경우에 갱신된 모델을 업데이트하기 위해 다음의 <표 3>과 같은 정책을 정의한다.
정책 설명
NoUpdate 로봇용 컴퓨터 로컬에 다운로드되어 캐쉬된 모델이 있는 경우 그대로 이용하고, 로컬에 캐쉬되어 있는 모델이 없는 경우에만 다운로드를 진행
UpdateOnStart 도커를 시작할 때 만 최신 버전의 모델 여부를 확인하고 최신 버전이 있는 경우 다운로드하여 실행
UpdateOnRunning 도커가 동작중일 때 최신 버전으로 모델이 갱신된 경우 모델을 새로 다운로드하여 도커를 재실행 시킴
도 12는 실시예에 따른 도커화된 인공지능 모듈을 위한 모델 관련 추가 정보 입력창에서 업데이트 정책 선택의 예시이다.
도 12를 참조하면, 업데이트 정책은, 로봇 응용 구성 GUI(100)를 통해 로봇 응용 구성 창에 모듈을 끌어다 놓은 후 마우스 우클릭하여 나타나는 추가 정보 입력 창의 모델 탭(132)을 통해 AutoUpdatePolicy 선택 박스를 통해 입력한다.
이때, AutoUpdatePolicy가 NoUpdate로 설정되어 있는 경우에는 로봇용 컴퓨터에 다운로드되어 캐쉬되어 있는 모델이 있는 경우 해당 모델을 이용하고, 로봇용 컴퓨터에 캐쉬되어 있는 모델이 없는 경우에만 다운로드를 수행한다.
그리고, AutoUpdatePolicy가 UpdateOnStart로 설정되어 있는 경우에는 도커를 시작할 때 만 최신 버전의 모델 여부를 확인하고 로봇용 컴퓨터에 다운로드되어 캐쉬되어 있는 모델 보다 최신 버전이 있는 경우 새로 다운로드하여 실행한다.
그리고, AutoUpdatePolicy가 UpdateOnRunning으로 설정되어 있는 경우에는 도커 컨테이너가 동작 중일 때에도 최신 모델이 있는 경우에는 항상 최신 모델을 다운로드하여 도커를 순차적으로 롤링 업데이트(Rolling Update) 형태로 재실행 시킨다.
도 13 및 도 14는 실시예에 따른 도커화된 인공지능 모듈을 위한 증강 지능 모델의 롤링 업데이트 예시도이다.
도 13 및 도 14를 참조하면, AutoUpdatePolicy가 UpdateOnRunning으로 설정되어 있는 경우를 위해 배포 에이전트(220)는 UpdateOnRunning으로 설정된 모듈들을 실행시킬때 마다 해당 모듈의 모델 정보를 감시하기 위한 와치독(Watchdog) 쓰레드를 실행시킨다(S510).
그러면, 와치독 쓰레드는 가입/출판(Pub/Sub) 방식으로 모델 정보가 갱신되었을 때 통보를 받거나, 와치독 스스로 모델 정보를 주기적으로 감시하는 방식으로 모니터링을 수행한다(S920).
그런 후, 와치독 쓰레드는 최신 버전의 모델이 저장되어 latest 태깅이 갱신된 경우(S530), 해당 이벤트를 배포 에이전트(220)에게 알림 통보한다.
그러면, 이벤트를 수신한 배포 에이전트(220)는 새로운 버전의 모델을 다운로드(S540)하고, 새로운 버전의 모델을 이용하여 모듈을 새로 시작하고 다른 모듈과의 연결관계를 설정한 후(S550), 기존에 동작하던 모듈을 중지(S560)하여 순차적으로 롤링 업데이트가 되도록 한다.
도 15는 실시예에 따른 컴퓨터 시스템 구성을 나타낸 도면이다.
실시예에 따른 컨테이너화된 인공지능 모듈의 증강 지능 모델 공유 장치는 컴퓨터로 읽을 수 있는 기록매체와 같은 컴퓨터 시스템(1000)에서 구현될 수 있다.
컴퓨터 시스템(1000)은 버스(1020)를 통하여 서로 통신하는 하나 이상의 프로세서(1010), 메모리(1030), 사용자 인터페이스 입력 장치(1040), 사용자 인터페이스 출력 장치(1050) 및 스토리지(1060)를 포함할 수 있다. 또한, 컴퓨터 시스템(1000)은 네트워크(1080)에 연결되는 네트워크 인터페이스(1070)를 더 포함할 수 있다. 프로세서(1010)는 중앙 처리 장치 또는 메모리(1030)나 스토리지(1060)에 저장된 프로그램 또는 프로세싱 인스트럭션들을 실행하는 반도체 장치일 수 있다. 메모리(1030) 및 스토리지(1060)는 휘발성 매체, 비휘발성 매체, 분리형 매체, 비분리형 매체, 통신 매체, 또는 정보 전달 매체 중에서 적어도 하나 이상을 포함하는 저장 매체일 수 있다. 예를 들어, 메모리(1030)는 ROM(1031)이나 RAM(1032)을 포함할 수 있다.
이상에서 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.

Claims (20)

  1. 적어도 하나의 프로그램이 기록된 메모리; 및
    프로그램을 실행하는 프로세서를 포함하며,
    프로그램은,
    미리 저장된 응용 구성 정보를 참조하여 로봇 응용에 포함된 도커 이미지의 인공 지능 모듈을 컨테이너 저장소로부터 다운로드하는 단계;
    인공 지능 모듈이 사용하는 지능 모델에 대한 모델 정보를 모델 정보 저장소에서 검색하고, 검색된 모델 정보를 기반으로 모델 저장소에서 상응하는 지능 모델을 다운로드하는 단계; 및
    로컬 파일시스템에 저장한 지능 모델을 컨테이너에 볼륨으로 마운트하여 인공 지능 모듈을 컨테이에서 실행시키는 단계를 수행하는, 컨테이너화된 인공지능 모듈의 증강 지능 모델 공유 장치.
  2. 제1 항에 있어서, 프로그램은,
    모듈 기본 정보 저장소에 저장된 모듈 기본 정보를 기반으로 로봇 응용을 구성하는 단계; 및
    구성된 로봇 응용에 대한 응용 구성 정보를 응용 구성 정보 저장소에 저장하는 단계를 더 수행하고,
    로봇 응용을 구성하는 단계에서, 모듈 목록 창 및 로봇 응용 구성 창을 포함하는 로봇 응용 구성 그래픽 사용자 인터페이스를 통해 사용자의 선택 입력을 기반으로 로봇 응용을 구성하되,
    모듈 기본 정보 저장소에 저장된 인공 지능 모듈 기본 정보들을 모듈 목록 창에 나열하는 단계;
    나열된 인공 지능 모듈 기본정보들 중에서 선택된 인공 지능 모듈들을 로봇 응용 구성 창에서 선택된 위치에 배치하는 단계; 및
    배치된 인공 지능 모듈들 사이의 통신 연결 관계를 설정하는 단계를 수행하는, 컨테이너화된 인공지능 모듈의 증강 지능 모델 공유 장치.
  3. 제1 항에 있어서, 모델 정보는,
    지능 모델의 신경망 구조 재구축에 필요한 클래스의 소스 파일; 및
    버전별 모델 파일에 대한 경로를 저장하고 있는 모델 URL 파일을 포함하는, 컨테이너화된 인공지능 모듈의 증강 지능 모델 공유 장치.
  4. 제3 항에 있어서, 프로그램은,
    지능 모델을 다운로드하는 단계에서,
    모델 정보 저장소 URL에 연결하여 지능 모델 이름에 해당하는 모델 정보를 획득하는 단계;
    모델 정보에 포함된 모델 버전으로 체크아웃을 수행하여 모델 정보를 원하는 버전의 스냅샷으로 변경하는 단계; 및
    스냅샷이 지시하는 모델 저장소 접근 경로 URL을 이용하여 네트워크 기반 저장 장치 또는 클라우드 스토리지 서비스로부터 지능 모델 파일을 다운로드하는 단계를 수행하는, 컨테이너화된 인공지능 모듈의 증강 지능 모델 공유 장치.
  5. 제2 항에 있어서, 모듈 기본 정보는,
    인공 지능 모듈을 실행하는데 필요한 도커 이미지 및 지능 모델 각각에 대한 참조 정보를 포함하되,
    프로그램은,
    로봇 응용을 구성하는 단계에서, 응용 구성 창에 배치된 인공 지능 모듈의 모듈 기본 정보를 확장하는 단계를 더 수행하는, 컨테이너화된 인공지능 모듈의 증강 지능 모델 공유 장치.
  6. 제5 항에 있어서, 도커 이미지에 대한 참조 정보는,
    도커 이미지 이름, 동작 플랫폼 및 도커 저장소에 대한 URL 중 적어도 하나를 기본 정보로 포함하되,
    프로그램은,
    모듈 기본 정보를 확장하는 단계에서, 컨테이너를 실행시킬 때 필요한 환경 변수들, 컨테이너를 실행시킬 때 선택적으로 입력 가능한 명령어 및 선택적 명령에 대한 입력 파라미터 중 적어도 하나를 도커 이미지에 대한 참조 정보에 추가하는, 컨테이너화된 인공지능 모듈의 증강 지능 모델 공유 장치.
  7. 제5 항에 있어서, 프로그램은,
    도커 저장소에 대한 URL을 이용하여 도커 이미지 이름과 동작 플랫폼에 해당하는 도커 이미지를 다운로드하고, 컨테이너를 실행시킬 때 필요한 환경 변수들을 설정하고, 필요한 경우 선택적으로 입력 가능한 명령어 및 선택 명령에 대한 입력 파라미터를 설정한 후 도커를 컨테이너 인스턴스로 생성하여 실행하는, 컨테이너화된 인공지능 모듈의 증강 지능 모델 공유 장치.
  8. 제5 항에 있어서, 지능 모델에 대한 참조 정보는,
    지능 모델 이름, 동작 플랫폼, 모델 정보 저장소에 대한 URL 및 컨테이너에 볼륨으로 저장될 디렉토리 경로 중 적어도 하나를 기본 정보로 포함하되,
    프로그램은,
    모듈 기본 정보를 확장하는 단계에서, 사용하는 지능 모델 버전 및 사용중인 모델의 자동 업데이트 정책 중 적어도 하나를 지능 모델에 대한 참조 정보에 추가하는, 컨테이너화된 인공지능 모듈의 증강 지능 모델 공유 장치.
  9. 제8 항에 있어서, 프로그램은,
    자동 업데이트 정책이 업데이트 없음(NoUpdate)으로 설정되어 있는 경우, 다운로드되어 캐쉬되어 있는 지능 모델 존재 여부에 따라 지능 모델의 다운로드를 수행하고,
    자동 업데이트 정책이 업데이트 시작(UpdateOnStart)으로 설정되어 있는 경우, 도커를 시작할때만 최신 버전의 모델 여부를 확인하여 다운로드되어 캐쉬되어 있는 지능 모델 보다 최신 버전이 있는 경우 새로 다운로드하여 실행하고,
    자동 업데이트 정책이 업데이트 진행(UpdateOnRunning)으로 설정되어 있는 경우, 도커 컨테이너가 동작 중일 때에도 최신 모델이 있는 경우에는 항상 최신 모델을 다운로드하여 도커를 순차적으로 롤링 업데이트(Rolling Update) 형태로 재실행하는, 컨테이너화된 인공지능 모듈의 증강 지능 모델 공유 장치.
  10. 미리 저장된 응용 구성 정보를 참조하여 로봇 응용에 포함된 도커 이미지의 인공 지능 모듈을 컨테이너 저장소로부터 다운로드하는 단계;
    인공 지능 모듈이 사용하는 지능 모델에 대한 모델 정보를 모델 정보 저장소에서 검색하고, 검색된 모델 정보를 기반으로 모델 저장소에서 상응하는 지능 모델을 다운로드하는 단계; 및
    로컬 파일시스템에 저장한 지능 모델을 컨테이너에 볼륨으로 마운트하여 인공 지능 모듈을 컨테이에서 실행시키는 단계를 수행하는, 컨테이너화된 인공지능 모듈의 증강 지능 모델 공유 방법.
  11. 제10 항에 있어서,
    모듈 기본 정보 저장소에 저장된 모듈 기본 정보를 기반으로 로봇 응용을 구성하는 단계; 및
    구성된 로봇 응용에 대한 응용 구성 정보를 응용 구성 정보 저장소에 저장하는 단계를 더 포함하고,
    로봇 응용을 구성하는 단계는,
    모듈 목록 창 및 로봇 응용 구성 창을 포함하는 로봇 응용 구성 그래픽 사용자 인터페이스를 통해 사용자의 선택 입력을 기반으로 로봇 응용을 구성하되,
    모듈 기본 정보 저장소에 저장된 인공 지능 모듈 기본 정보들을 모듈 목록 창에 나열하는 단계;
    나열된 인공 지능 모듈 기본정보들 중에서 선택된 인공 지능 모듈들을 로봇 응용 구성 창에서 선택된 위치에 배치하는 단계; 및
    배치된 인공 지능 모듈들 사이의 통신 연결 관계를 설정하는 단계를 포함하는, 컨테이너화된 인공지능 모듈의 증강 지능 모델 공유 방법.
  12. 제10 항에 있어서, 모델 정보는,
    지능 모델의 신경망 구조 재구축에 필요한 클래스의 소스 파일; 및
    버전별 모델 파일에 대한 경로를 저장하고 있는 모델 URL 파일을 포함하는, 컨테이너화된 인공지능 모듈의 증강 지능 모델 공유 방법.
  13. 제12 항에 있어서, 지능 모델을 다운로드하는 단계는,
    모델 정보 저장소 URL에 연결하여 지능 모델 이름에 해당하는 모델 정보를 획득하는 단계;
    모델 정보에 포함된 모델 버전으로 체크아웃을 수행하여 모델 정보를 원하는 버전의 스냅샷으로 변경하는 단계; 및
    스냅샷이 지시하는 모델 저장소 접근 경로 URL을 이용하여 네트워크 기반 저장 장치 또는 클라우드 스토리지 서비스로부터 지능 모델 파일을 다운로드하는 단계를 포함하는, 컨테이너화된 인공지능 모듈의 증강 지능 모델 공유 방법.
  14. 제11 항에 있어서, 모듈 기본 정보는,
    인공 지능 모듈을 실행하는데 필요한 도커 이미지 및 지능 모델 각각에 대한 참조 정보를 포함하되,
    로봇 응용을 구성하는 단계는,
    응용 구성 창에 배치된 인공 지능 모듈의 모듈 기본 정보를 확장하는 단계를 더 포함하는, 컨테이너화된 인공지능 모듈의 증강 지능 모델 공유 방법.
  15. 제14 항에 있어서, 도커 이미지에 대한 참조 정보는,
    도커 이미지 이름, 동작 플랫폼 및 도커 저장소에 대한 URL 중 적어도 하나를 기본 정보로 포함하되,
    모듈 기본 정보를 확장하는 단계는,
    컨테이너를 실행시킬 때 필요한 환경 변수들, 컨테이너를 실행시킬 때 선택적으로 입력 가능한 명령어 및 선택적 명령에 대한 입력 파라미터 중 적어도 하나를 도커 이미지에 대한 참조 정보에 추가하는, 컨테이너화된 인공지능 모듈의 증강 지능 모델 공유 방법.
  16. 제15 항에 있어서,
    도커 저장소에 대한 URL을 이용하여 도커 이미지 이름과 동작 플랫폼에 해당하는 도커 이미지를 다운로드하고, 컨테이너를 실행시킬 때 필요한 환경 변수들을 설정하고, 필요한 경우 선택적으로 입력 가능한 명령어 및 선택 명령에 대한 입력 파라미터를 설정한 후 도커를 컨테이너 인스턴스로 생성하여 실행하는, 컨테이너화된 인공지능 모듈의 증강 지능 모델 공유 방법.
  17. 제14 항에 있어서, 지능 모델에 대한 참조 정보는,
    지능 모델 이름, 동작 플랫폼, 모델 정보 저장소에 대한 URL 및 컨테이너에 볼륨으로 저장될 디렉토리 경로 중 적어도 하나를 기본 정보로 포함하되,
    모듈 기본 정보를 확장하는 단계는,
    사용하는 지능 모델 버전 및 사용중인 모델의 자동 업데이트 정책 중 적어도 하나를 지능 모델에 대한 참조 정보에 추가하는, 컨테이너화된 인공지능 모듈의 증강 지능 모델 공유 방법.
  18. 제17 항에 있어서,
    자동 업데이트 정책이 업데이트 없음(NoUpdate)으로 설정되어 있는 경우, 다운로드되어 캐쉬되어 있는 지능 모델 존재 여부에 따라 지능 모델의 다운로드를 수행하고,
    자동 업데이트 정책이 업데이트 시작(UpdateOnStart)으로 설정되어 있는 경우, 도커를 시작할때만 최신 버전의 모델 여부를 확인하여 다운로드되어 캐쉬되어 있는 지능 모델 보다 최신 버전이 있는 경우 새로 다운로드하여 실행하고,
    자동 업데이트 정책이 업데이트 진행(UpdateOnRunning)으로 설정되어 있는 경우, 도커 컨테이너가 동작 중일 때에도 최신 모델이 있는 경우에는 항상 최신 모델을 다운로드하여 도커를 순차적으로 롤링 업데이트(Rolling Update) 형태로 재실행하는, 컨테이너화된 인공지능 모듈의 증강 지능 모델 공유 장치.
  19. 적어도 하나의 프로그램이 기록된 메모리; 및
    프로그램을 실행하는 프로세서를 포함하며,
    프로그램은,
    모듈 기본 정보 저장소에 저장된 인공 지능 모듈 기본 정보들을 중에서 선택된 인공 지능 모듈들간의 통신 연결 관계를 설정하여 로봇 응용을 구성하는 단계;
    구성된 로봇 응용에 대한 응용 구성 정보를 응용 구성 정보 저장소에 저장하는 단계;
    저장된 응용 구성 정보를 참조하여 로봇 응용에 포함된 도커 이미지의 인공 지능 모듈을 컨테이너 저장소로부터 다운로드하는 단계;
    인공 지능 모듈이 사용하는 지능 모델에 대한 모델 정보를 모델 정보 저장소에서 검색하고, 검색된 모델 정보를 기반으로 모델 저장소에서 상응하는 지능 모델을 다운로드하는 단계; 및
    로컬 파일시스템에 저장한 지능 모델을 컨테이너에 볼륨으로 마운트하여 인공 지능 모듈을 컨테이에서 실행시키는 단계를 수행하는, 컨테이너화된 인공지능 모듈의 증강 지능 모델 공유 장치.
  20. 제19 항에 있어서, 모델 정보는,
    지능 모델의 신경망 구조 재구축에 필요한 클래스의 소스 파일; 및
    버전별 모델 파일에 대한 경로를 저장하고 있는 모델 URL 파일을 포함하되,
    지능 모델을 다운로드하는 단계에서,
    모델 정보 저장소 URL에 연결하여 지능 모델 이름에 해당하는 모델 정보를 획득하는 단계;
    모델 정보에 포함된 모델 버전으로 체크아웃을 수행하여 모델 정보를 원하는 버전의 스냅샷으로 변경하는 단계; 및
    스냅샷이 지시하는 모델 저장소 접근 경로 URL을 이용하여 네트워크 기반 저장 장치 또는 클라우드 스토리지 서비스로부터 지능 모델 파일을 다운로드하는 단계를 포함하는, 컨테이너화된 인공지능 모듈의 증강 지능 모델 공유 장치.
KR1020220145544A 2022-11-03 2022-11-03 컨테이너화된 인공지능 모듈의 증강 지능 모델 공유 장치 및 방법 KR20240063666A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020220145544A KR20240063666A (ko) 2022-11-03 2022-11-03 컨테이너화된 인공지능 모듈의 증강 지능 모델 공유 장치 및 방법
US18/468,188 US20240152779A1 (en) 2022-11-03 2023-09-15 Apparatus and method for sharing augmented intelligence model of containerized artificial intelligence module

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220145544A KR20240063666A (ko) 2022-11-03 2022-11-03 컨테이너화된 인공지능 모듈의 증강 지능 모델 공유 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20240063666A true KR20240063666A (ko) 2024-05-10

Family

ID=90927776

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220145544A KR20240063666A (ko) 2022-11-03 2022-11-03 컨테이너화된 인공지능 모듈의 증강 지능 모델 공유 장치 및 방법

Country Status (2)

Country Link
US (1) US20240152779A1 (ko)
KR (1) KR20240063666A (ko)

Also Published As

Publication number Publication date
US20240152779A1 (en) 2024-05-09

Similar Documents

Publication Publication Date Title
US10725769B2 (en) Automated deployment and servicing of distributed applications
US7809663B1 (en) System and method for supporting the utilization of machine language
US7886035B2 (en) Profile service based deployment configuration
CN111324346B (zh) 一种基于Serverless的前端应用构建方法和系统
US8701105B2 (en) Downloadable standalone offline application with integrated data for distributed offline processing
CN104094248A (zh) 分布式系统中的自更新功能
CN111459610B (zh) 一种模型部署方法和装置
US11307839B2 (en) Updating of container-based applications
US20080301627A1 (en) Providing extensive ability for describing a management interface
CN116149701A (zh) 一种面向边缘终端的软件在线升级方法和系统
US11989542B2 (en) Enhancing operator installation and upgrade management and verification
CN112418447B (zh) 提供机器学习服务的系统、方法、介质和设备
CN111522623B (zh) 组件化软件多进程运行系统
US20200133709A1 (en) System and method for content - application split
CN112565416A (zh) 基于云原生的大规模边缘安卓设备纳管系统及其纳管方法
Cai et al. Deployment and verification of machine learning tool-chain based on kubernetes distributed clusters: This paper is submitted for possible publication in the special issue on high performance distributed computing
JP2006127001A (ja) 業務システムの運用方法、運用管理システムおよび運用プログラム
KR20240063666A (ko) 컨테이너화된 인공지능 모듈의 증강 지능 모델 공유 장치 및 방법
CN113448549B (zh) 一种前端开发的全流程自动化处理系统及方法
Tambe et al. MDDPro: model-driven dependability provisioning in enterprise distributed real-time and embedded systems
US20240152371A1 (en) Dynamic re-execution of parts of a containerized application pipeline
KR102622170B1 (ko) Ai 모델 서빙 시스템 및 방법
CN116225464B (zh) 一种平台的快速部署方法
CN114089973A (zh) 一种启动方法、装置、计算机设备和存储介质
Shafiei-Dizaji Multi-Agent Approach to Modeling and Implementing Fault-Tolerance in Reactive Autonomic Systems

Legal Events

Date Code Title Description
E902 Notification of reason for refusal