KR20200087853A - 네트워크 액세스 가능한 머신 러닝 모델 훈련 및 호스팅 시스템 - Google Patents

네트워크 액세스 가능한 머신 러닝 모델 훈련 및 호스팅 시스템 Download PDF

Info

Publication number
KR20200087853A
KR20200087853A KR1020207017954A KR20207017954A KR20200087853A KR 20200087853 A KR20200087853 A KR 20200087853A KR 1020207017954 A KR1020207017954 A KR 1020207017954A KR 20207017954 A KR20207017954 A KR 20207017954A KR 20200087853 A KR20200087853 A KR 20200087853A
Authority
KR
South Korea
Prior art keywords
training
container
model
data
virtual machine
Prior art date
Application number
KR1020207017954A
Other languages
English (en)
Other versions
KR102428293B1 (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 아마존 테크놀로지스, 인크.
Publication of KR20200087853A publication Critical patent/KR20200087853A/ko
Application granted granted Critical
Publication of KR102428293B1 publication Critical patent/KR102428293B1/ko

Links

Images

Classifications

    • 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
    • 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/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • 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/4557Distribution of virtual machine instances; Migration and load balancing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)
  • Image Analysis (AREA)

Abstract

네트워크 액세스 가능한 머신 러닝 서비스가 본 발명에서 제공된다. 예를 들어, 네트워크 액세스 가능한 머신 러닝 서비스 제공자는 네트워크를 통해 사용자 장치에 액세스 가능한 하나 이상의 물리적 컴퓨팅 장치를 운영할 수 있다. 이러한 물리적 컴퓨팅 장치는 사용자 장치가 참조하는 훈련 데이터를 사용하여 머신 러닝 모델을 훈련시키도록 구성된 가상 컴퓨터 인스턴스를 호스팅할 수 있다. 이러한 물리적 컴퓨팅 장치(들)는 사용자 제공 입력에 응답하여 훈련된 머신 러닝 모델을 실행하도록 구성되는 가상 머신 인스턴스를 더 호스팅할 수 있어서, 네트워크를 통해 사용자 장치에 저장 및/또는 전송되는 출력을 생성할 수 있다.

Description

네트워크 액세스 가능한 머신 러닝 모델 훈련 및 호스팅 시스템
컴퓨팅 장치는 통신 네트워크를 사용하여 데이터를 교환할 수 있다. 회사와 조직은 여러 컴퓨팅 장치를 상호 연결하여 작업을 지원하거나 타사에 서비스를 제공하도록 컴퓨터 네트워크를 운영한다. 컴퓨팅 시스템은 단일 지리적 위치 또는 다수의 별개의 지리적 위치(예를 들어, 사설 또는 공공 통신 네트워크를 통해 상호 연결됨)에 위치할 수 있다. 구체적으로, 일반적으로 "데이터 센터"라고 하는 데이터 센터 또는 데이터 처리 센터는 데이터 센터의 사용자에게 컴퓨팅 리소스를 제공하기 위해 다수의 상호 연결된 컴퓨팅 시스템을 포함할 수 있다. 데이터 센터 리소스의 활용도를 높이기 위해, 가상화 기술을 통해 단일 물리적 컴퓨팅 장치가 데이터 센터 사용자에게 독립적인 컴퓨팅 장치로 나타나고 작동하는 하나 이상의 가상 머신 인스턴스를 호스팅할 수 있다.
도면 전체에 걸쳐, 참조 번호는 참조되는 요소들 사이의 대응을 나타내기 위해 재사용될 수 있다. 도면은 설명된 예시적인 실시예를 도시하기 위해 제공되며 본 개시의 범위를 제한하도록 의도되지 않는다.
도 1은 일부 실시예에서 머신 러닝 모델이 훈련되고 호스팅되는 예시적인 운영 환경의 블록도이다.
도 2는 일부 실시예에 따라 머신 러닝 모델을 훈련시키기 위해 운영 환경의 구성요소에 의해 수행되는 동작을 나타내는 도 1의 운영 환경의 블록도이다.
도 3은 일부 실시예에 따른, 머신 러닝 모델 훈련을 수정하기 위해 운영 환경의 구성요소에 의해 수행되는 동작을 나타내는 도 1의 운영 환경의 블록도이다.
도 4는 일부 실시예에 따라 머신 러닝 모델 훈련 프로세스를 병렬화하기 위해 운영 환경의 구성요소에 의해 수행되는 동작을 나타내는 도 1의 운영 환경의 블록도이다.
도 5a는 일부 실시예에 따른, 훈련된 머신 러닝 모델을 전개하기 위해 운영 환경의 구성요소에 의해 수행되는 동작을 나타내는 도 1의 동작 환경의 블록도이다.
도 5b는 일부 실시예에 따른, 훈련된 머신 러닝 모델을 실행하기 위해 운영 환경의 구성 요소에 의해 수행되는 동작을 나타내는 도 1의 동작 환경의 블록도이다.
도 6은 일부 실시예에 따른, 관련 머신 러닝 모델을 실행하기 위해 운영 환경의 구성요소에 의해 수행되는 동작을 나타내는 도 1의 동작 환경의 블록도이다.
도 7은 일부 실시예에 따른 모델 훈련 시스템에 의해 예시적으로 구현된 머신 러닝 모델 훈련 루틴을 나타내는 흐름도이다.
도 8은 본 출원에 따라 머신 러닝 모델을 훈련 및/또는 호스트하는 모델 훈련 시스템 및 모델 호스팅 시스템과 같은 예시적인 모델 시스템의 아키텍처의 일부 실시예를 도시한다.
도 9는 본 출원에 따라 데이터를 수신하고, 데이터를 준비하고, 훈련 요청을 모델 훈련 시스템으로 전송하고, 배치 및/또는 실행 요청을 모델 호스팅 시스템으로 전송할 수 있는 예시적인 최종 사용자 장치의 아키텍처의 일부 실시예를 도시한다.
전술한 바와 같이, 실시예들은 단일 물리적 컴퓨팅 장치(또는 다수의 물리적 컴퓨팅 장치)를 이용하여, 사용자에게 독립적인 컴퓨팅 장치로서 나타나고 동작하는 가상 머신의 하나 이상의 인스턴스를 호스팅할 수 있게 한다. 일부 실시예들에서, 서비스 제공자는 가상화 기술을 이용하여, 여기에 기술된 네트워크 액세스 가능한 머신 러닝 모델 훈련 및 호스팅 시스템과 같은, 네트워크 액세스 가능한 머신 러닝 서비스를 제공할 수 있다. 예를 들어, 서비스 제공자는 네트워크를 통해 사용자 장치에 액세스 가능한 하나 이상의 물리적 컴퓨팅 장치를 작동시킬 수 있다. 이러한 물리적 컴퓨팅 장치(들)는 사용자 장치로부터 수신된 명령에 응답하여 머신 러닝 모델을 훈련 및/또는 실행하도록 구성된 가상 머신 인스턴스를 호스팅할 수 있다.
본 명세서에 설명된 실시예는 머신 러닝 모델을 훈련 시키도록 구성된 종래의 컴퓨팅 시스템에 비해 몇 가지 기술적 이점을 제공한다. 예를 들어, 머신 러닝 모델은 매우 복잡하고 모델을 훈련하는 데 사용되는 데이터의 양이 매우 클 수 있으므로(예: 기가 바이트, 테라 바이트, 페타 바이트 등), 머신 러닝 모델의 학습은 많은 양의 처리 용량을 이용하게 된다. 따라서, 일부 사용자는 훈련을 수행하기 위해 물리적으로 큰 기존의 컴퓨팅 머신을 구입한다. 그러나 사용자는 원하는 모델 훈련을 실행하기 위해 이러한 기존 컴퓨팅 시스템을 특정 소프트웨어로 맞춤화할 수 있다. 한편, 본 명세서에 기술된 실시예는 사용자가 대량의 맞춤형 코드를 생성 및 구현할 필요가 없는 환경을 제공한다. 오히려, 사용자는 단순히 훈련할 머신 러닝 모델의 유형을 정의하기에 충분한 정보를 제공할 수 있고, 설명된 실시예는 가상 머신 인스턴스를 자동으로 초기화하고, 컨테이너를 초기화하고 및/또는 모델 훈련 서비스를 구현하기 위해 다른 동작을 수행할 수 있다.
한편, 설명된 실시예는 일부 실시예에서 상이한 물리적 컴퓨팅 장치들에 걸쳐 훈련을 분배하도록 구성된다. 따라서 모델 훈련 시간을 크게 줄일 수 있다.
훈련된 결과 모델이 부정확한 것으로 판명되면 귀중한 시간을 잃을 수 있다. 한편, 설명된 실시예는 훈련 과정 동안 모델을 주기적으로 평가하고 평가에 대응하는 메트릭을 출력할 수 있다. 따라서 사용자는 메트릭을 검토하여 예를 들어 훈련중인 머신 러닝 모델이 부정확한지 여부와 훈련 작업을 중단하는 것이 유리한지 여부를 판단할 수 있다.
종래의 컴퓨팅 머신이 이미 다른 모델을 훈련하는 과정에 있다면, 사용자는 상당한 머신 러닝 모델 훈련 지연을 경험할 수 있다. 한편, 여기서 설명되는 실시예는 일부 실시예에서 사용자 요구에 기초하여 모델 훈련을 수행하기 위해 컴퓨팅 리소스를 동적으로 할당한다. 따라서, 단일 사용자 또는 다수의 사용자가 겹치는 시간 동안 다수의 머신 러닝 모델을 훈련시키기를 원한다면, 훈련이 동시에 수행될 수 있다.
그러나, 이러한 종래의 서비스는 일반적으로 단일 유형의 머신 러닝 모델로 제한되며 규정된 데이터 입력 형식만을 허용한다. 반면에 사용자는 상이한 유형의 입력 데이터 형식을 수신할 수 있는 많은 상이한 유형의 머신 러닝 모델을 훈련하고 사용하기를 원할 수 있다. 이들 종래의 서비스와 달리, 기술된 실시예는 머신 러닝 모델의 유형, 머신 러닝 모델이 정의된 프로그래밍 언어, 머신 러닝 모델의 데이터 입력 포맷, 및/또는 머신 러닝 모델의 데이터 출력 포맷에 관계없이 머신 러닝 모델이 훈련되고 실행될 수 있는 유연한 실행 환경을 제공한다.
머신 러닝 모델 훈련 및 호스팅 환경의 예
도 1은 일부 실시예에서 머신 러닝 모델이 훈련되고 호스팅되는 예시적인 운영 환경(100)의 블록도이다. 운영 환경(100)은 최종 사용자 장치(102), 모델 훈련 시스템(120), 모델 호스팅 시스템(140), 훈련 데이터 저장소(160), 훈련 메트릭 데이터 저장소(165), 컨테이너 데이터 저장소(170), 훈련 모델 데이터 저장소(175) 및 모델 예측 데이터 저장소(180)를 포함한다.
모델 훈련 시스템의 예
일부 실시예에서, 사용자 장치(102)를 통해, 사용자는 모델 훈련 시스템(120)으로 하여금 하나 이상의 머신 러닝 모델을 훈련시킬 수 있는 데이터를 제공하기 위해 모델 훈련 시스템(120)과 상호 작용한다. 사용자 장치(102)는 모델 훈련 시스템(120)의 프론트엔드(129)를 통해 모델 훈련 시스템(120)과 상호 작용할 수 있다. 예를 들어, 사용자 장치(102)는 일 컨테이너 이미지(또는 다수의 컨테이너 이미지), 입력 데이터 표시기(예: 입력 데이터의 어드레스 또는 위치), 하이퍼파라미터 값(예: 알고리즘 작동 방식을 나타내는 값, 병렬로 실행할 알고리즘 수, 데이터를 분리할 클러스터 수 등) 및/또는 머신 러닝 모델을 훈련시킬 컴퓨팅 머신을 설명하는 정보(가령, 그래픽 처리 장치(GPU) 인스턴스 유형, 중앙 처리 장치(CPU) 인스턴스 유형, 할당할 메모리의 양, 훈련에 사용될 가상 머신 인스턴스의 유형, 등)를 포함하는 훈련 요청을 프론트엔드(129)에 제공할 수 있다.
일부 실시예에서, 컨테이너 이미지는 하나 이상의 계층을 포함할 수 있으며, 각 계층은 실행가능 명령어를 나타낸다. 실행가능 명령어 중 일부 또는 전부는 머신 러닝 모델을 정의하는 알고리즘을 함께 나타낸다. 실행가능 명령어(예: 알고리즘)는 모든 프로그래밍 언어(예: Python, Ruby, C ++, Java 등)로 작성할 수 있다. 일부 실시예에서, 알고리즘은 알고리즘 보관소(algorithm repository)(예를 들어, 네트워크 액세스 가능한 마켓 플레이스, 머신 러닝 훈련 서비스에 의해 제공되는 데이터 저장소 등)로부터 사용자 장치(102)를 통해 사용자에 의해 미리 생성되고 획득된다. 일부 실시예에서, 알고리즘은 사용자에 의해 생성된다.
일부 실시예에서, 훈련 요청 내에 컨테이너 이미지를 제공하는 대신에, 사용자 장치(102)는 훈련 요청 내에, 임의의 프로그래밍 언어로 작성된 알고리즘을 제공할 뿐이다. 모델 훈련 시스템(120)은 이후에 아래에서 더 상세히 설명되는 바와 같이, 머신 러닝 모델을 훈련하기 위해 가상 머신 인스턴스(122)에 궁극적으로 로딩되는 컨테이너에 알고리즘을 패키징한다.
일부 실시예들에서, 훈련 요청에서 컨테이너 이미지를 제공하는 대신에, 사용자 장치(102)는 훈련 요청에서 컨테이너 이미지의 표시자(예를 들어, 어드레스의 표시 또는 컨테이너 이미지의 저장된 위치)를 제공한다. 예를 들어, 컨테이너 이미지는 컨테이너 데이터 저장소(170)에 저장될 수 있다. 모델 훈련 시스템(120)은 표시된 위치로부터 컨테이너 이미지를 불러들이고, 불러온 컨테이너 이미지를 사용하여 컨테이너를 생성할 수 있다. 그 후, 컨테이너는 아래에서 더 상세히 설명되는 바와 같이 머신 러닝 모델을 훈련시키기 위해 가상 머신 인스턴스(122)에 로딩된다.
모델 훈련 시스템(120)은 일부 실시예에서 하나 이상의 사전 설정된 가상 머신 인스턴스(122)에서 머신 러닝 모델을 훈련하기 위해 사용자 장치(102)에 의해 제공된 정보를 사용할 수 있다. 특히, 모델 훈련 시스템(120)은 하나 이상의 컴퓨팅 네트워크(도시되지 않음)를 사용하여 상호 연결된 단일 물리적 컴퓨팅 장치 또는 다수의 물리적 컴퓨팅 장치를 포함하고, 물리적 컴퓨팅 장치(들)는 하나 이상의 가상 머신 인스턴스(122)를 호스팅한다. 모델 훈련 시스템(120)은 사용자 장치(102)에 의해 제공되는 머신 러닝 모델을 훈련시킬 컴퓨팅 머신을 설명하는 정보에 기초하여 컴퓨팅 용량(예를 들어, 아래에서 더 상세히 설명되는 컨테이너, 인스턴스 등)의 획득 및 구성을 처리할 수 있다. 모델 훈련 시스템(120)은 이후에 보다 상세히 설명되는 바와 같이 컴퓨팅 용량을 사용하여 머신 러닝 모델을 훈련시킬 수 있다. 모델 훈련 시스템(120)은 프론트엔드(129)를 통해 사용자 장치(102)로부터 수신된 훈련 요청의 양에 기초하여 자동으로 스케일 업 및 다운될 수 있어서, 과다 사용(예를 들어, 너무 적은 컴퓨팅 리소스의 획득 및 성능 문제로 시달림) 또는 과소 사용(예: 머신 러닝 모델을 훈련하는 데 필요한 것보다 많은 컴퓨팅 리소스를 확보하여 과잉 지불)에 관한 걱정으로부터 사용자를 해방시킨다. .
일부 실시예에서, 가상 머신 인스턴스(122)는 작업을 실행하는 데 이용된다. 예를 들어, 이러한 작업에는 머신 러닝 모델 훈련이 포함될 수 있다. 도 1에 도시된 바와 같이, 각각의 가상 머신 인스턴스(122)는 운영 체제(OS)(124), 언어 런타임(126) 및 하나 이상의 머신 러닝(ML) 훈련 컨테이너(130)를 포함한다. 일반적으로, ML 훈련 컨테이너(130)는 가상 머신 인스턴스 상에서 가용한 리소스를 이용하여 가상 머신 인스턴스 내에 생성된 논리 유닛이며, 해당 인스턴스에서 발생하는 다른 프로세스(예: 작업 실행)로부터 작업의 실행을 격리하는 데 사용될 수 있다. 일부 실시예에서, ML 훈련 컨테이너(130)는 하나 이상의 컨테이너 이미지 및 상위 컨테이너 계층으로부터 형성된다. 각 컨테이너 이미지는 하나 이상의 이미지 계층을 더 포함하며, 각 이미지 계층은 실행가능 명령어를 나타낸다. 전술한 바와 같이, 실행 가능 명령어의 일부 또는 전부는 함께 머신 러닝 모델을 정의하는 알고리즘을 나타낸다. ML 훈련 컨테이너(130)에 대한 변경(예를 들어, 새로운 파일의 생성, 기존 파일의 수정, 파일의 삭제 등)이 상위 컨테이너 계층에 저장된다. ML 훈련 컨테이너(130)가 삭제되면, 상위 컨테이너 계층도 삭제된다. 그러나, 삭제된 ML 훈련 컨테이너(130)의 일부를 형성하는 컨테이너 이미지(들)는 변경되지 않은 상태로 유지될 수 있다. ML 훈련 컨테이너(130)는 예를 들어 Linux 컨테이너로서 구현될 수 있다.
ML 훈련 컨테이너(130)는 일부 실시예에서 OS(132), 런타임(134) 및 코드(136)의 개별 사본을 각각 포함한다. OS(132) 및/또는 런타임(134)은 ML 훈련 컨테이너(130)를 형성하기 위해 사용되는 컨테이너 이미지의 적어도 일부를 형성하는 하나 이상의 실행가능 명령어(예를 들어, 컨테이너 이미지로부터 형성되는 컨테이너에서 실행될 런타임 및/또는 운영 체제를 규정하는 컨테이너 이미지 내의 실행가능 명령어)에 의해 규정될 수 있다. 코드(136)는 ML 훈련 컨테이너(130)를 형성하기 위해 사용되는 컨테이너 이미지의 적어도 일부를 형성하는 하나 이상의 실행가능 명령어를 포함한다. 예를 들어, 코드(136)는 머신 러닝 모델을 규정하는 알고리즘을 나타내는 컨테이너 이미지 내의 실행가능 명령어를 포함한다. OS(132) 및/또는 런타임(134)은 머신 러닝 모델 훈련을 시작하라는 명령어에 응답하여 코드(136)를 실행하도록 구성된다. 코드(136)의 실행은 아래에서 더 상세히 설명되는 바와 같이 모델 데이터의 생성을 초래한다.
일부 실시예에서, 코드(136)는 상이한 머신 러닝 모델을 정의하는 알고리즘을 나타내는 실행 가능한 명령어를 포함한다. 예를 들어, 코드(136)는 제 1 머신 러닝 모델을 정의하는 제 1 알고리즘을 나타내는 일 세트의 실행가능 명령어와, 제 2 머신 러닝 모델을 정의하는 제 2 알고리즘을 나타내는 제 2 세트의 실행가능 명령어를 포함한다. 일부 실시예에서, 가상 머신 인스턴스(122)는 코드(136)를 실행하고 모든 머신 러닝 모델을 훈련시킨다. 일부 실시예에서, 가상 머신 인스턴스(122)는 훈련할 머신 러닝 모델 중 하나를 선택하도록 코드(136)를 실행한다. 예를 들어, 가상 머신 인스턴스(122)는 훈련 요청에 의해 지시된 훈련 데이터의 유형을 식별하고, 식별된 유형의 훈련 데이터에 대응하도록 훈련(예를 들어, 선택된 머신 러닝 모델을 정의하는 알고리즘을 나타내는 실행 가능한 명령어를 실행)할 머신 러닝 모델을 선택할 수 있다.
일부 실시예에서, OS(132) 및 런타임(134)은 가상 머신 인스턴스(122)에 의해 사용되는 OS(124) 및 런타임(126)과 동일하다. 일부 실시예에서, OS(132) 및/또는 런타임(134)은 가상 머신 인스턴스(122)에 의해 사용되는 OS(124) 및/또는 런타임(126)과 상이하다.
일부 실시예에서, 모델 훈련 시스템(120)은 훈련 요청에 포함된 하나 이상의 컨테이너 이미지(또는 수신된 훈련 요청에 응답하여 컨테이너 데이터 저장소(170)로부터 불러온 컨테이너 이미지)를 사용하여 가상 머신 인스턴스(122)에 ML 훈련 컨테이너(130)를 생성 및 초기화한다. 예를 들어, 모델 훈련 시스템(120)은 컨테이너 이미지(들) 및/또는 상부 컨테이너 계층을 포함하는 ML 훈련 컨테이너(130)를 생성한다.
훈련 프로세스를 시작하기 전에, 일부 실시예에서, 모델 훈련 시스템(120)은 훈련 요청에 표시된 위치로부터 훈련 데이터를 불러들인다. 예를 들어, 훈련 요청에 표시된 위치는 훈련 데이터 저장소(160)의 위치일 수 있다. 따라서, 모델 훈련 시스템(120)은 훈련 데이터 저장소(160)의 표시된 위치로부터 훈련 데이터를 불러온다. 일부 실시예에서, 모델 훈련 시스템(120)은 훈련 프로세스를 시작하기 전에 훈련 데이터를 불러오지 않는다. 오히려, 모델 훈련 시스템(120)은 훈련 과정 동안 지시된 위치로부터 훈련 데이터를 스트리밍한다. 예를 들어, 모델 훈련 시스템(120)은 초기에 훈련 데이터의 일부를 불러와서 불러온 부분을 머신 러닝 모델을 훈련시키는 가상 머신 인스턴스(122)에 제공할 수 있다. 일단 가상 머신 인스턴스(122)가 불러온 부분을 적용하여 사용했거나 가상 머신 인스턴스(122)가 모든 불러온 부분을 사용하려고 하면(예를 들어, 불러온 부분을 저장하는 버퍼가 거의 비어 있음), 모델 훈련 시스템(120)은 훈련 데이터의 제 2 부분을 불러와서, 제 2 불러온 부분을 가상 머신 인스턴스(122) 등에 제공하는 것, 등을 포함한다.
머신 러닝 모델 훈련을 수행하기 위해, 가상 머신 인스턴스(122)는 일부 실시예에서 ML 훈련 컨테이너(130)에 저장된 코드(136)를 실행한다. 예를 들어, 코드(136)는 그 안에 초기화된 ML 훈련 컨테이너(130)의 컨테이너 이미지를 형성하는 실행 가능 명령어의 일부 또는 전부를 포함한다. 따라서, 가상 머신 인스턴스(122)는 머신 러닝 모델을 훈련하기 위해 그 안에 초기화된 ML 훈련 컨테이너(130)의 컨테이너 이미지를 형성하는 실행 가능 명령의 일부 또는 전부를 실행한다. 가상 머신 인스턴스(122)는 훈련 요청에 포함된 하이퍼파라미터 값에 따라 실행 가능 명령어 중 일부 또는 전부를 실행한다. 예시적인 예로서, 가상 머신 인스턴스(122)는 특정 파라미터(예를 들어, 계수, 가중치, 중심 등)에 대한 값을 식별함으로써 머신 러닝 모델을 학습시킨다. 식별된 값은 훈련 수행 방법을 정의하는 하이퍼파라미터에 따라 다르다. 따라서, 가상 머신 인스턴스(122)는 머신 러닝 모델 훈련 프로세스를 개시하기 위해 실행가능 명령어를 실행할 수 있고, 여기서 훈련 프로세스는 훈련 요청에 포함된 하이퍼파라미터 값을 사용하여 실행된다. 실행가능 명령어의 실행은 모델 훈련 시스템(120)에 의해 불러온 훈련 데이터를 실행중인 명령어 중 일부 또는 전부에 대한 입력 파라미터로서 적용하는 가상 머신 인스턴스(122)를 포함할 수 있다.
일부 실시예들에서, 실행 가능 명령어들을 실행하면 가상 머신 인스턴스(122)(예를 들어, ML 훈련 컨테이너(130))가 모델 데이터를 생성하게 한다. 예를 들어, ML 훈련 컨테이너(130)는 모델 데이터를 생성하고 모델 데이터를 ML 훈련 컨테이너(130)의 파일 시스템에 저장한다. 모델 데이터는 훈련되는 머신 러닝 모델의 특성, 예를 들어 머신 러닝 모델의 계층의 수, 머신 러닝 모델의 하이퍼파라미터, 머신 러닝 모델의 계수, 머신 러닝 모델의 가중치 등을 포함한다. 특히, 생성된 모델 데이터는 훈련되는 머신 러닝 모델을 정의하는 특성에 대한 값을 포함한다. 일부 실시예들에서, 실행가능 명령어들을 실행하면 ML 훈련 컨테이너(130)의 수정을 유발하여, 모델 데이터가 ML 훈련 컨테이너(130)의 상단 컨테이너 계층에 기록되거나 및/또는 ML 훈련 컨테이너(130)의 일부를 형성하는 컨테이너 이미지(들)가 모델 데이터를 포함하도록 수정된다.
가상 머신 인스턴스(122)(또는 모델 훈련 시스템(120) 자체)는 생성된 모델 데이터를 ML 훈련 컨테이너(130)로부터 풀링(pulling)하고, 훈련되는 머신 러닝 모델 및/또는 가상 머신 인스턴스(122)와 관련된 엔트리의 훈련 머신 데이터 저장소(175)에 생성된 모델 데이터를 저장한다. 일부 실시예에서, 가상 머신 인스턴스(122)는 모델 데이터를 포함하는 단일 파일을 생성하고 훈련 모델 데이터 저장소(175)에 단일 파일을 저장한다. 일부 실시예에서, 가상 머신 인스턴스(122)는 머신 러닝 모델을 훈련하는 동안 다수의 파일을 생성하고, 여기서 각 파일에는 모델 데이터가 포함된다. 일부 실시예에서, 각각의 모델 데이터 파일은 동일하거나 상이한 모델 데이터 정보를 포함한다(예를 들어, 하나의 파일은 알고리즘의 구조를 식별하고, 다른 파일은 계수의 목록 등을 포함한다). 가상 머신 인스턴스(122)는 일단 훈련이 완료되면 복수의 파일을 단일 파일로 패키징하고, 단일 파일을 훈련 모델 데이터 저장소(175)에 저장할 수 있다. 대안적으로, 가상 머신 인스턴스(122)는 복수의 파일을 훈련 모델 데이터 저장소(175)에 저장한다. 가상 머신 인스턴스(122)는 훈련 프로세스가 진행되는 동안 및/또는 훈련 프로세스가 완료된 후에 파일(들)을 훈련 모델 데이터 저장소(175)에 저장한다.
일부 실시예들에서, 가상 머신 인스턴스(122)는 훈련 프로세스가 진행됨에 따라 모델 데이터 파일(들)을 훈련 모델 데이터 저장소(175)에 정기적으로 저장한다. 따라서, 모델 데이터 파일(들)은 훈련 프로세스 동안 상이한 시간에 훈련 모델 데이터 저장소(175)에 저장될 수 있다. 특정 시간에 대응하는 각 모델 데이터 파일 세트 또는 특정 시간 기준으로 훈련 모델 데이터 저장소(175)에 존재하는 각 모델 데이터 파일 세트는 훈련 프로세스의 상이한 단계 동안 부분적으로 훈련된 머신 러닝 모델의 다른 버전을 나타내는 체크 포인트일 수 있다. 따라서, 훈련이 완료되기 전에, 사용자는 사용자 장치(102)를 통해, 부분적으로 훈련된 머신 러닝 모델의 버전(예를 들어, 훈련 과정의 특정 단계에서 훈련된 머신 러닝 모델)을 배포 및/또는 실행하기 위해 후술하는 방식으로 배포 및/또는 실행 요청을 제출할 수 있다. 부분적으로 훈련된 머신 러닝 모델의 버전은 훈련 모델 데이터 저장소(175)에 저장된 모델 데이터 파일의 일부 또는 전부에 기초할 수 있다.
일부 실시예에서, 가상 머신 인스턴스(122)는 복수의 ML 훈련 컨테이너(130)에 저장된 코드(136)를 실행한다. 예를 들어, 컨테이너 이미지에 포함된 알고리즘은 훈련 프로세스의 병렬화를 허용하는 형식일 수 있다. 따라서, 모델 훈련 시스템(120)은 훈련 요청에 제공된 컨테이너 이미지의 다수의 사본을 생성할 수 있고, 가상 머신 인스턴스(122)로 하여금 각각의 컨테이너 이미지 사본을 별개의 ML 훈련 컨테이너(130)에 로드하게할 수 있다. 그 후 가상 머신 인스턴스(122)는 ML 훈련 컨테이너(130)에 저장된 코드(136)를 병렬로 실행할 수 있다. 가상 머신 인스턴스(122)는 각각의 ML 훈련 컨테이너(130)에 컨피규레이션 정보를 추가로 제공할 수 있고(예를 들어, N개의 ML 훈련 컨테이너(130)가 머신 러닝 모델을 집합적으로 훈련하고 있고 컨피규레이션 정보를 수신하는 특정 ML 훈련 컨테이너(130)가 N 중 X의 ML 훈련 컨테이너(130) 번호임을 나타내는 정보), 이는 결과적인 모델 데이터에 포함될 수 있다. 훈련 프로세스를 병렬화함으로써, 모델 훈련 시스템(120)은 일부 구현들에서 훈련 시간을 상당히 감소시킬 수 있다.
일부 실시예에서, 복수의 가상 머신 인스턴스(122)는 복수의 ML 훈련 컨테이너(130)에 저장된 코드(136)를 실행한다. 예를 들어, 특정 머신 러닝 모델을 훈련하는데 사용되는 리소스는 단일 가상 머신 인스턴스의 한계를 초과할 수 있다. 그러나, 컨테이너 이미지에 포함된 알고리즘은 훈련 프로세스의 병렬화를 허용하는 형식의 것일 수 있다. 따라서, 모델 훈련 시스템(120)은 훈련 요청에 제공된 컨테이너 이미지의 다수의 사본을 생성하고, 다수의 가상 머신 인스턴스(122)를 초기화하며, 각각의 가상 머신 인스턴스(122)로 하여금 하나 이상의 개별 ML 훈련 컨테이너(130)에 컨테이너 이미지 사본을 로딩하게 할 수 있다. 그 후 가상 머신 인스턴스(122)는 ML 훈련 컨테이너(130)에 저장된 코드(136)를 병렬로 실행할 수 있다. 모델 훈련 시스템(120)은 가상 머신 인스턴스(122)를 통해 각각의 ML 훈련 컨테이너(130)에 컨피규레이션 정보를 추가로 제공할 수 있고(예를 들어, N개의 ML 훈련 컨테이너(130)가 하나의 머신 러닝 모델을 집합적으로 훈련하고 있다는 것과, 컨피규레이션 정보를 수신하는 특정 ML 훈련 컨테이너(130)가 ML 훈련 컨테이너(130) 번호 N 중의 X임을 나타내는 정보와, M 개의 가상 머신 인스턴스(122)가 집합적으로 하나의 머신 러닝 모델을 훈련하고 있다는 것과, 컨피규레이션 정보를 수신하는 특정 ML 훈련 컨테이너(130)가 가상 머신 인스턴스(122) 번호 M 중의 Y에서 초기화됨을 나타내는 정보, 등), 이는 결과 모델 데이터에 포함될 수 있다. 전술한 바와 같이, 훈련 프로세스를 병렬화함으로써, 모델 훈련 시스템(120)은 일부 실시예에서 훈련 시간을 상당히 감소시킬 수 있다.
일부 실시예에서, 모델 훈련 시스템(120)은 복수의 물리적 컴퓨팅 장치를 포함하고, 둘 이상의 물리적 컴퓨팅 장치는 코드(136)를 실행하는 하나 이상의 가상 머신 인스턴스(122)를 호스팅한다. 따라서, 병렬화는 상이한 가상 머신 인스턴스들(122) 및/또는 ML 훈련 컨테이너들(130)에 추가하여 상이한 물리적 컴퓨팅 장치들에 걸쳐 나타날 수 있다.
일부 실시예에서, 모델 훈련 시스템(120)은 ML 모델 평가기(128)를 포함한다. ML 모델 평가기(128)는 머신 러닝 모델이 훈련될 때 가상 머신 인스턴스(122)를 모니터링하여, 생성된 모델 데이터를 획득하고 획득된 모델 데이터를 처리하여, 모델 메트릭을 생성할 수 있다. 예를 들어, 모델 메트릭은 훈련되는 머신 러닝 모델의 에러율, 훈련되는 머신 러닝 모델의 통계적 분포, 훈련되는 머신 러닝 모델의 대기시간, 훈련되는 머신 러닝 모델의 신뢰 수준(가령, 훈련되는 머신 러닝 모델의 정확도가 알려짐에 대한 신뢰도), 등과 같은 품질 품질 메트릭을 포함할 수 있다. ML 모델 평가기(128)는 훈련되고 있는 머신 러닝 모델에 대한 모델 데이터와, 평가 데이터를 훈련데이터 저장소(160)로부터 획득할 수 있다. 평가 데이터는 머신 러닝 모델을 훈련시키기 위해 사용된 데이터와 별개이고, 입력 데이터 및 예상된 출력(예를 들어, 알려진 결과)을 모두 포함하므로, ML 모델 평가기(128)는 모델을 사용하여 머신 러닝 모델을 정의할 수 있고, 입력 데이터를 머신 러닝 모델에 입력으로서 제공함으로써 머신 러닝 모델을 실행할 수 있다. ML 모델 평가기(128)는 그 후, 머신 학습 모델의 출력을 예상 출력에 비교하고, 비교에 기초하여 훈련되는 머신 러닝 모델의 하나 이상의 품질 메트릭을 결정한다(예를 들어, 에러율은 머신 러닝 모델 출력과 예상 출력 간의 차이 또는 거리 일 수 있다).
ML 모델 평가기(128)는 일부 실시예에서 훈련 프로세스 동안 모델 메트릭을 주기적으로 생성하고, 모델 메트릭을 훈련 메트릭 데이터 저장소(165)에 저장한다. 머신 러닝 모델이 훈련되는 동안, 사용자는 사용자 장치(102)를 통해, 훈련 메트릭 데이터 저장소(165)로부터 모델 메트릭에 액세스하고 불러올 수 있다. 그 후 사용자는 모델 메트릭을 사용하여 훈련 프로세스를 조정할지 및/또는 훈련 프로세스를 중단할지 여부를 결정할 수 있다. 예를 들어, 모델 메트릭은 머신 러닝 모델의 성능 수행이 좋지 않음(예: 임계 값을 초과하는 오류율을 가짐, 예상되거나 원하는 분포가 아닌 통계 분포를 가짐(가령, 이항 분포가 아님, 포이즌 분포, 기하 분포, 정규 분포, 가우스 분포, 등)과, 임계 값보다 높은 실행 대기 시간을 가짐, 임계 값 아래의 신뢰 수준을 가짐) 및/또는 성능 수행이 점진적으로 악화되고 있음(가령, 품질 메트릭이 시간이 지남에 따라 계속 나빠짐)을 표시할 수 있다. 이에 응답하여, 일부 실시예들에서, 사용자는 사용자 장치(102)를 통해, 훈련되는 머신 러닝 모델을 수정하기 위한 요청을 모델 훈련 시스템(120)에 전송할 수 있다(예를 들어, 수정 요청을 전송). 요청은 새로운 또는 수정된 컨테이너 이미지, 새로운 또는 수정된 알고리즘, 새로운 또는 수정된 하이퍼파라미터(들) 및/또는 머신 러닝 모델을 훈련시킬 컴퓨팅 머신을 설명하는 새로운 또는 수정된 정보를 포함할 수 있다. 모델 훈련 시스템(120)은 이에 따라 머신 러닝 모델을 수정할 수 있다. 예를 들어, 모델 훈련 시스템(120)은 가상 머신 인스턴스(122)로 하여금, 선택적으로 기존 ML 훈련 컨테이너(130)를 삭제하게 하고, 요청에 포함된 일부 또는 모든 정보를 사용하여 새로운 ML 훈련 컨테이너(130)를 생성 및 초기화하게 하며, 머신 러닝 모델 훈련 프로세스를 재개하도록 새로운 ML 훈련 컨테이너(130)에 저장된 코드(136)를 실행하게할 수 있다. 다른 예로서, 모델 훈련 시스템(120)은 가상 머신 인스턴스(122)로 하여금, 수정 요청에서 제공된 데이터에 따라 기존 ML 훈련 컨테이너(130)에 저장된 코드의 실행을 수정하게 할 수 있다. 일부 실시예에서, 사용자는 사용자 장치(102)를 통해, 머신 러닝 모델 훈련 프로세스를 중지하기 위한 요청을 모델 훈련 시스템(120)에 전송할 수 있다. 모델 훈련 시스템(120)은 그 후, ML 훈련 컨테이너(130)를 삭제할 것을, 및/또는 훈련 모델 데이터 저장소(175)에 저장된 임의의 모델 데이터를 삭제할 것을, 가상 머신 인스턴스(122)에게 지시할 수 있다.
후술하는 바와 같이, 일부 실시예에서, 훈련 모델 데이터 저장소(175)에 저장된 모델 데이터는 머신 러닝 모델을 배치하기 위해 모델 호스팅 시스템(140)에 의해 사용된다. 대안적으로 또는 추가적으로, 사용자 장치(102) 또는 다른 컴퓨팅 장치(도시되지 않음)는 외부 장치에서 학습 알고리즘을 구현하기 위해 훈련 모델 데이터 저장소(175)로부터 모델 데이터를 불러올 수 있다. 예시적인 예로서, 로봇 장치는 입력 데이터를 캡처하기 위한 센서를 포함할 수 있다. 사용자 장치(102)는 훈련 모델 데이터 저장소(175)로부터 모델 데이터를 불러오고 모델 데이터를 로봇 장치에 저장할 수 있다. 모델 데이터는 머신 러닝 모델을 정의한다. 따라서, 로봇 장치는 캡처된 입력 데이터를 머신 러닝 모델에 대한 입력으로서 제공하여 출력을 생성할 수 있다. 로봇 장치는 결과 출력에 기초하여 동작(예를 들어, 전진, 팔 올리기, 소리 생성 등)을 수행할 수 있다.
가상 머신 인스턴스(122)가 가상 머신 인스턴스(122)의 단일 그룹으로서 도 1에 도시되어 있지만, 본 출원의 일부 실시예는 작업을 실행하기 위해 능동적으로 할당되지 않은 가상 머신 인스턴스(122)로부터 작업을 실행하도록 능동적으로 할당된 가상 머신 인스턴스(122)를 분리한다. 예를 들어, 작업을 실행하도록 능동적으로 할당된 가상 머신 인스턴스(122)는 "액티브 풀"(active pool)로 그룹화되는 반면, 작업을 실행하도록 능동적으로 할당되지 않은 가상 머신 인스턴스(122)는 "워밍 풀"(warming pool) 내에 배치된다. 일부 실시예에서, 워밍 풀 내의 가상 머신 인스턴스(122)는 훈련 요청에 응답하여 작업의 신속한 실행(가령, ML 훈련 컨테이너(130)에서 머신 러닝 모델 훈련의 신속한 초기화)을 실현하는데 필요한 운영 체제, 언어 런타임, 및/또는 기타 소프트웨어로 사전에 초기화될 수 있다.
일부 실시예들에서, 모델 훈련 시스템(120)은 프로세싱 유닛, 네트워크 인터페이스, 컴퓨터 판독가능 매체 드라이브 및 입/출력 장치 인터페이스를 포함하고, 이들 모두는 통신 버스를 통해 서로 통신할 수 있다. 네트워크 인터페이스는 하나 이상의 네트워크 또는 컴퓨팅 시스템에 대한 연결 기능을 제공할 수 있다. 따라서 프로세싱 유닛은 다른 컴퓨팅 시스템 또는 서비스(예를 들어, 사용자 장치(102), 모델 호스팅 시스템(140) 등)로부터 정보 및 명령어를 수신할 수 있다. 프로세싱 유닛은 또한 가상 머신 인스턴스(122)의 메모리와 통신할 수 있고 입/출력 장치 인터페이스를 통해 선택적 디스플레이에 대한 출력 정보를 더 제공할 수 있다. 입/출력 장치 인터페이스는 선택적인 입력 장치의 입력을 수용할 수도 있다. 메모리는 본 개시의 하나 이상의 양태를 구현하기 위해 프로세싱 유닛이 실행하는 컴퓨터 프로그램 명령어(일 실시예에서 모듈로서 그룹화됨)를 포함할 수 있다.
모델 호스팅 시스템 예
일부 실시예에서, 모델 호스팅 시스템(140)은 하나 이상의 컴퓨팅 네트워크(도시되지 않음)를 사용하여 상호 연결된 다수의 물리적 컴퓨팅 장치 또는 단일 물리적 컴퓨팅 장치를 포함하며, 여기서 물리적 컴퓨팅 장치(들)는 하나 이상의 가상 머신 인스턴스(142)를 호스팅한다. 모델 호스팅 시스템(140)은 훈련된 머신 러닝 모델의 실행에 대한 요구에 기초하여 컴퓨팅 용량(예를 들어, 컨테이너, 인스턴스 등)의 획득 및 구성을 처리할 수 있다. 모델 호스팅 시스템(140)은 이후에 보다 상세히 설명되는 바와 같이 컴퓨팅 용량을 사용하여 머신 러닝 모델을 실행할 수 있다. 모델 호스팅 시스템(140)은 모델 호스팅 시스템(140)의 프론트엔드(149)를 통해 사용자 장치(102)로부터 수신된 실행 요청의 볼륨에 기초하여 자동으로 스케일 업 및 다운될 수 있으며, 이에 의해 사용자는 과도 사용(가령, 컴퓨팅 리소스가 부족하고 성능 문제로 시달림) 또는 과소 사용(머신 러닝 모델 수행에 필요한 것보다 넘치는 컴퓨팅 리소스 및 이로 인한 과비용)에 관하여 걱정할 필요가 없다.
일부 실시예에서, 가상 머신 인스턴스(142)는 작업을 실행하는 데 이용된다. 예를 들어, 이러한 작업에는 머신 러닝 모델 실행이 포함될 수 있다. 도 1에 도시된 바와 같이, 각각의 가상 머신 인스턴스(142)는 운영 체제(OS)(144), 언어 런타임(146) 및 하나 이상의 ML 스코어링 컨테이너(150)를 포함한다. ML 스코어링 컨테이너(150)는 ML 스코어링 컨테이너(150)가 해당 인스턴스 상에서 가용한 리소스를 이용하여 가상 머신 인스턴스 내에서 생성된 로직 유닛이라는 점에서 ML 훈련 컨테이너(130)와 유사하며, 해당 인스턴스에서 발생하는 다른 프로세스(예: 작업 실행)로부터 작업 실행을 격리하는 데 사용될 수 있다. 일부 실시예에서, ML 스코어링 컨테이너(150)는 하나 이상의 컨테이너 이미지 및 상부 컨테이너 계층으로부터 형성된다. 각 컨테이너 이미지는 하나 이상의 이미지 계층을 더 포함하며, 각 이미지 계층은 실행가능 명령어를 나타낸다. 전술한 바와 같이, 실행 가능 명령어의 일부 또는 전부는 함께 머신 러닝 모델을 정의하는 알고리즘을 나타낸다. ML 스코어링 컨테이너(150)에 대한 변경(예를 들어, 새로운 파일의 생성, 기존 파일의 수정, 파일의 삭제, 등)이 상위 컨테이너 계층에 저장된다. ML 스코어링 컨테이너(150)가 삭제되면, 상위 컨테이너 계층도 삭제된다. 그러나, 삭제된 ML 스코어링 컨테이너(150)의 일부를 형성하는 컨테이너 이미지(들)는 변하지 않고 유지될 수 있다. ML 스코어링 컨테이너(150)는 예를 들어 리눅스(Linux) 컨테이너로서 구현될 수 있다.
ML 스코어링 컨테이너(150)는 각각 일부 실시예에서, OS(152), 런타임(154) 및 코드(156)의 개별 사본을 포함한다. OS(152) 및/또는 런타임(154)은 ML 스코어링 컨테이너(150)를 형성하기 위해 사용되는 컨테이너 이미지의 적어도 일부를 형성하는 하나 이상의 실행가능 명령어(예를 들어, 컨테이너 이미지로부터 형성되는 컨테이너에서 실행할 운영 체제 및/또는 런타임을 규정하는 컨테이너 이미지 내 실행가능 명령어(들))에 의해 정의될 수 있다. 코드(156)는 ML 스코어링 컨테이너(150)를 형성하는 데 사용되는 컨테이너 이미지의 적어도 일부를 형성하는 하나 이상의 실행가능 명령어를 포함한다. 예를 들어, 코드(156)는 머신 러닝 모델을 규정하는 알고리즘을 나타내는 컨테이너 이미지에 실행가능 명령어를 포함한다. 코드(156)는 또한 아래에서 더 상세히 설명되는 바와 같이, 규정된 머신 러닝 모델의 특성을 나타내는 모델 데이터를 포함할 수 있다. OS(152) 및/또는 런타임(154)은 머신 러닝 모델의 실행을 시작하라는 명령어에 응답하여 코드(156)를 실행하도록 구성된다. 코드(156)의 실행은 아래에서 더 상세히 설명되는 바와 같이, 출력(예를 들어, 예측된 결과)의 생성으로 나타난다.
일부 실시예에서, OS(152) 및 런타임(154)은 가상 머신 인스턴스(142)에 의해 사용되는 OS(144) 및 런타임(146)과 동일하다. 일부 실시예에서, OS(152) 및/또는 런타임(154)은 가상 머신 인스턴스(142)에 의해 사용되는 OS(144) 및/또는 런타임(146)과 상이하다.
일부 실시예들에서, 모델 호스팅 시스템(140)은 배치 요청에 포함된 하나 이상의 컨테이너 이미지들(또는 수신된 배치 요청에 응답하여 컨테이너 데이터 저장소(170)로부터 불러온 컨테이너 이미지)을 사용하여, 가상 머신 인스턴스(142)에 ML 스코어링 컨테이너(150)를 생성하고 초기화한다. 예를 들어, 모델 호스팅 시스템(140)은 컨테이너 이미지(들) 및/또는 상위 컨테이너 계층을 포함하는 ML 스코어링 컨테이너(150)를 생성한다.
상술한 바와 같이, 사용자 장치(102)는 일부 실시예에서 프론트엔드(149)를 통해 배치 요청 및/또는 실행 요청을 모델 호스팅 시스템(140)에 제출할 수 있다. 배치 요청(deployment request)은 모델 호스팅 시스템(140)으로 하여금 훈련된 머신 러닝 모델을 가상 머신 인스턴스(142)에 배치하게 한다. 예를 들어, 배치 요청은 엔드포인트(endpoint)의 신원(예를 들어, 하이퍼 텍스트 전송 프로토콜(HTTP)과 같은 엔드포인트 명칭과 같은 엔드포인트 명칭)과, 하나 이상의 훈련된 머신 러닝 모델의 신원(가령, 훈련 모델 데이터 저장소(175)에 포함된 하나 이상의 모델 데이터 파일의 위치)을 포함할 수 있다. 선택적으로, 배치 요청은 또한 컨테이너 데이터 저장소(170)에 저장된 하나 이상의 컨테이너 이미지의 신원을 포함한다.
배치 요청을 수신하면, 모델 호스팅 시스템(140)은 하나 이상의 호스팅된 가상 머신 인스턴스(142)에서 하나 이상의 ML 스코어링 컨테이너(150)를 초기화한다. 배치 요청이 하나 이상의 컨테이너 이미지의 신원을 포함하는 실시예에서, 모델 호스팅 시스템(140)은 식별된 컨테이너 이미지(들)로부터 ML 스코어링 컨테이너(들)(150)를 형성한다. 예를 들어, 배치 요청에서 식별된 컨테이너 이미지는 배치 요청에 대응하는 머신 러닝 모델을 훈련시키는 데 사용되는 ML 훈련 컨테이너(130)를 형성하는데 사용되는 동일한 컨테이너 이미지일 수 있다. 따라서, ML 스코어링 컨테이너(들)(150)의 코드(156)는 머신 러닝 모델을 정의하는 알고리즘을 나타내는 컨테이너 이미지(들)에 하나 이상의 실행 가능한 명령어를 포함한다. 배치 요청이 컨테이너 이미지의 신원을 포함하지 않는 실시예들에서, 모델 호스팅 시스템(140)은 식별되는 훈련된 머신 러닝 모델을 실행하기에 적합한 컨테이너 데이터 저장소(170)에 저장된 하나 이상의 컨테이너 이미지들로부터 ML 스코어링 컨테이너(들)(150)를 형성한다. 예를 들어, 적절한 컨테이너 이미지는 식별되는 훈련된 머신 러닝 모델(들)을 정의하는 알고리즘을 나타내는 실행 가능한 명령어를 포함하는 컨테이너 이미지일 수 있다.
모델 호스팅 시스템(140)은 일부 실시예에서 식별되는 훈련된 머신 러닝 모델(들)에 대응하는 모델 데이터를 불러옴으로써 ML 스코어링 컨테이너(들)(150)를 추가로 형성한다. 예를 들어, 배치 요청은 훈련 모델 데이터 저장소(175)에 저장된 모델 데이터 파일(들)의 위치를 식별할 수 있다. 배치 요청에서 단일 모델 데이터 파일이 식별되는 실시예에서, 모델 호스팅 시스템(140)은 훈련 모델 데이터 저장소(175)로부터 식별된 모델 데이터 파일을 불러오고, 모델 데이터 파일을 단일 ML 스코어링 컨테이너(150)에 삽입하며, 이는 코드(156)의 일부를 형성한다. 일부 실시예에서, 모델 데이터 파일은 아카이브되거나 압축된다(예를 들어, 개별 파일 패키지로부터 형성됨). 따라서, 모델 호스팅 시스템(140)은 모델 데이터 파일을 언아카이빙 또는 압축 해제하여 다수의 개별 파일을 획득하고, 개별 파일을 ML 스코어링 컨테이너(150)에 삽입한다. 일부 실시예에서, 모델 호스팅 시스템(140)은 모델 데이터 파일을 생성한 ML 훈련 컨테이너(130) 내 모델 데이터 파일을 저장한 위치와 동일한 위치에 모델 데이터 파일을 저장한다. 예를 들어, 모델 데이터 파일은 초기에 특정 오프셋에서 ML 훈련 컨테이너(130)의 상위 컨테이너 계층에 저장되었고, 모델 호스팅 시스템(140)은 그 후 모델 데이터 파일을 동일한 오프셋에서 ML 스코어링 컨테이너(150)의 상위 컨테이너 계층에 저장한다.
배치 요청에서 다수의 모델 데이터 파일이 식별되는 실시예에서, 모델 호스팅 시스템(140)은 훈련 모델 데이터 저장소(175)로부터 식별된 모델 데이터 파일을 불러온다. 모델 호스팅 시스템(140)은 모델 데이터 파일을 동일한 ML 스코어링 컨테이너(150)에, 또는, 동일한 가상 머신 인스턴스(142)에서 초기화된 상이한 ML 스코어링 컨테이너(150)에, 또는, 상이한 가상 머신 인스턴스(142)에서 초기화된 상이한 ML 스코어링 컨테이너(150)에 삽입할 수 있다. 예시적인 예로서, 배치 요청은, 훈련된 머신 러닝 모델이 관련되기 때문에, 상이한 훈련된 머신 러닝 모델에 대응하는 다수의 모델 데이터 파일을 식별할 수 있다(예를 들어, 하나의 훈련된 머신 러닝 모델의 출력이 다른 훈련된 머신 러닝 모델에 대한 입력으로서 사용됨). 따라서, 사용자는 다수의 머신 러닝 모델의 결과에 의존하는 단일 출력을 궁극적으로 수신하기 위해 다수의 머신 러닝 모델을 배치하고자 할 수 있다.
일부 실시예들에서, 모델 호스팅 시스템(140)은 초기화된 ML 스코어링 컨테이너(들)(150)를, 배치 요청에서 식별된 엔드포인트와 연관시킨다. 예를 들어, 초기화된 ML 스코어링 컨테이너(들)(150) 각각은 네트워크 어드레스와 연관될 수 있다. 모델 호스팅 시스템(140)은 네트워크 어드레스(들)를 식별된 엔드포인트에 매핑할 수 있고, 모델 호스팅 시스템(140) 또는 다른 시스템(예를 들어, 도시되지 않은 라우팅 시스템)은 매핑을 저장할 수 있다. 따라서, 사용자 장치(102)는 엔드포인트를 사용하여 ML 스코어링 컨테이너(들)(150)에 저장된 훈련된 머신 러닝 모델(들)을 참조할 수 있다. 이로써, 사용자 장치(102)를 조작하는 사용자가, 사용자에 의해 훈련된 머신 러닝 모델이 참조되는 방식을 변경함없이 ML 스코어링 컨테이너(150)의 네트워크 어드레스가 변경될 수 있다.
ML 스코어링 컨테이너(들)(150)가 초기화되면, ML 스코어링 컨테이너(들)(150)는 훈련된 머신 러닝 모델(들)을 실행할 준비가 된다. 일부 실시예들에서, 사용자 장치(102)는 프론트엔드(149)를 통해 실행 요청을 모델 호스팅 시스템(140)으로 전송하는데, 여기서, 실행 요청은 엔드포인트를 식별하고 머신 러닝 모델에 대한 입력(예를 들어, 입력 데이터 세트)을 포함한다. 모델 호스팅 시스템(140) 또는 다른 시스템(예를 들어, 도시되지 않은 라우팅 시스템)은 실행 요청을 획득하고, 식별된 엔드포인트에 대응하는 ML 스코어링 컨테이너(들)(150)을 식별하며, 입력을 식별된 ML 스코어링 컨테이너(150)로 전달한다.
일부 실시예들에서, 가상 머신 인스턴스(142)는 모델 호스팅 시스템(140)이 실행 요청을 수신한 것에 응답하여, 식별된 ML 스코어링 컨테이너(150)에 저장된 코드(156)를 실행한다. 특히, 코드(156)의 실행에 의해, 이 알고리즘에 대응하는 코드(156)의 실행 가능 명령어가, ML 스코어링 컨테이너(150)에 저장된 모델 데이터 파일을 판독하고, 실행 요청에 포함된 입력을 입력 파라미터로서 사용하며, 해당 출력을 생성할 수 있다. 예시적인 예로서, 이 알고리즘은 계수, 가중치, 계층, 클러스터 중심(cluster centroids), 등을 포함할 수 있다. 이 알고리즘에 대응하는 코드(156)의 실행 가능 명령어는 계수, 가중치, 계층, 클러스터 중심, 등에 대한 값을 결정하기 위해 모델 데이터 파일을 판독할 수 있다. 실행 가능 명령어는 입력 파라미터를 포함할 수 있고, 실행 요청에 포함된 입력은 입력 파라미터로서 가상 머신 인스턴스(142)에 의해 공급될 수 있다. 머신 러닝 모델 특성 및 제공된 입력 파라미터에 의해, 가상 머신 인스턴스(142)에 의한 실행 가능 명령어의 실행이 완료될 수 있고, 결과적으로 출력될 수 있다.
일부 실시예들에서, 가상 머신 인스턴스(142)는 모델 예측 데이터 저장소(180)에 출력을 저장한다. 대안적으로 또는 부가적으로, 가상 머신 인스턴스(142)는 프론트엔드(149)를 통해 실행 결과를 제출한 사용자 장치(102)로 출력을 전송한다. .
일부 실시예에서, 실행 요청은 관련된 훈련된 머신 러닝 모델의 그룹에 대응한다. 따라서, ML 스코어링 컨테이너(150)는 동일한 가상 머신 인스턴스(142) 또는 다른 가상 머신 인스턴스(142)에서 초기화된 제 2 ML 스코어링 컨테이너(150)에 출력을 전송할 수 있다. 그 후, 제 2 ML 스코어링 컨테이너(150)를 초기화한 가상 머신 인스턴스(142)는 제 2 ML 스코어링 컨테이너(150)에 저장된 제 2 코드(156)를 실행하여, 제 2 코드(156)의 실행가능 명령어에 대한 입력 파라미터로서 수신된 출력을 제공할 수 있다. 제 2 ML 스코어링 컨테이너(150)는 그 안에 저장된 모델 데이터 파일을 더 포함하며, 이는 머신 러닝 모델을 규정하는 특성에 대한 값을 결정하기 위해 제 2 코드(156) 내 실행가능 명령어에 의해 판독된다. 제 2 코드(156)의 실행은 제 2 출력으로 나타난다. 제 2 ML 스코어링 컨테이너(150)를 초기화한 가상 머신 인스턴스(142)는 프론트엔드(149)를 통해 제 2 출력을 모델 예측 데이터 저장소(180) 및/또는 사용자 장치(102)로 전송할 수 있고(예를 들어, 출력 생성을 위해 더 이상 훈련된 머신 러닝 모델이 필요하지 않은 경우), 또는, 동일한 또는 상이한 가상 머신 인스턴스(142)에서 초기화된 제 3 ML 스코어링 컨테이너(150)로 제 2 출력을 전송할 수 있으며(가령, 하나 이상의 추가 훈련된 머신 러닝 모델로부터의 출력이 필요한 경우), 위 참조된 프로세스는 제 3 ML 스코어링 컨테이너(150)에 대해 반복될 수 있다.
가상 머신 인스턴스(142)가 가상 머신 인스턴스(142)의 단일 그룹으로서 도 1에 도시되어 있지만, 본 출원의 일부 실시예는 작업을 실행하기 위해 능동적으로 할당되지 않은 가상 머신 인스턴스(142)로부터, 작업을 실행하도록 능동적으로 할당된 가상 머신 인스턴스(142)를 분리한다. 예를 들어, 작업을 실행하도록 능동적으로 할당된 가상 머신 인스턴스(142)는 "활성 풀"로 그룹화되는 반면, 작업을 실행하도록 능동적으로 할당되지 않은 가상 머신 인스턴스(142)는 "워밍 풀" 내에 배치된다. 일부 실시예에서, 워밍 풀 내의 가상 머신 인스턴스(142)는 배치 및/또는 실행 요청에 응답하여 작업의 빠른 실행(예를 들어, ML 스코어링 컨테이너(들)(150)의 빠른 초기화, ML 스코어링 컨테이너 내 코드(156)의 빠른 실행, 등)을 가능하게하는 데 필요한 운영 체제, 언어 런타임 및/또는 기타 소프트웨어로 사전에 초기화될 수 있다.
일부 실시예들에서, 모델 호스팅 시스템(140)은 프로세싱 유닛, 네트워크 인터페이스, 컴퓨터 판독가능 매체 드라이브 및 입/출력 장치 인터페이스를 포함하고, 이들 모두는 통신 버스를 통해 서로 통신할 수 있다. 네트워크 인터페이스는 하나 이상의 네트워크 또는 컴퓨팅 시스템에 대한 연결 기능을 제공할 수 있다. 따라서 프로세싱 유닛은 다른 컴퓨팅 시스템 또는 서비스(예를 들어, 사용자 장치(102), 모델 훈련 시스템(120) 등)로부터 정보 및 명령어를 수신할 수 있다. 프로세싱 유닛은 또한 가상 머신 인스턴스(142)의 메모리와 통신할 수 있고, 입/출력 장치 인터페이스를 통해 선택적 디스플레이를 위한 출력 정보를 더 제공할 수 있다. 입/출력 장치 인터페이스는 선택적인 입력 장치의 입력을 수용할 수도 있다. 메모리는 본 개시의 하나 이상의 양태를 구현하기 위해 프로세싱 유닛이 실행하는 컴퓨터 프로그램 명령어(일 실시예에서 모듈로서 그룹화됨)를 포함할 수 있다.
예시적인 훈련 및 호스팅 환경의 추가 실시예
일부 실시예에서, 운영 환경(100)은 다중 암 밴딧 모델(multi arm bandit models), 강화 러닝 모델, 앙상블 머신 러닝 모델, 딥 러닝 모델 등과 같은 많은 상이한 유형의 머신 러닝 모델을 지원한다.
도 1에 도시된 모델 훈련 시스템(120) 및 모델 호스팅 시스템(140)은 제한적이지 않다. 예를 들어, 모델 훈련 시스템(120) 및/또는 모델 호스팅 시스템(140)은 도 1에 도시된 것보다 더 적거나 더 많은 수의 장치를 갖는 컴퓨팅 환경 내에서 또한 동작할 수 있다. 따라서, 도 1의 모델 훈련 시스템(120) 및/또는 모델 호스팅 시스템(140)은 예시적인 것으로 간주될 수 있으며 본 개시를 제한하지 않는다. 예를 들어, 모델 훈련 시스템(120) 및/또는 모델 호스팅 시스템(140) 또는 그 다양한 구성 요소는 여기서 기술되는 프로세스들의 적어도 일부를 구현하기 위해 다양한 웹 서비스 구성요소, 호스팅된 또는 "클라우드" 컴퓨팅 환경, 및/또는 피어-투-피어 네트워크 컨피규레이션을 구현할 수 있다. 일부 실시예에서, 모델 훈련 시스템(120) 및/또는 모델 호스팅 시스템(140)은 하드웨어, 또는, 하드웨어 장치에 의해 실행되는 하드웨어 또는 소프트웨어로 직접 구현되며, 예를 들어, 여기서 기술되는 다양한 특징들을 수행하기 위해 컴퓨터 실행가능 명령어를 실행하도록 구성된 물리적 컴퓨터 하드웨어 상에 구현된 하나 이상의 물리적 또는 가상 서버를 포함할 수 있다. 하나 이상의 서버는 예를 들어 하나 이상의 POP(Points of Presence) 또는 지역 데이터 센터에 지리적으로 동 위치에 놓이거나 지리적으로 분산될 수 있다.
프론트엔드(129)는 사용자 장치(102)로부터 수신된 모든 훈련 요청을 처리하고 가상 머신 인스턴스(122)를 프로비저닝한다. 일부 실시예에서, 프론트엔드(129)는 모델 훈련 시스템(120)에 의해 제공되는 다른 모든 서비스에 대한 프론트 도어로서 기능한다. 프론트엔드(129)는 요청을 처리하고 요청이 제대로 승인되었는지 확인한다. 예를 들어, 프론트엔드(129)는 훈련 요청과 연관된 사용자에게 훈련 프로세스를 개시할 권한이 있는지 여부를 결정할 수 있다.
유사하게, 프론트엔드(149)는 사용자 장치(102)로부터 수신된 모든 배치 및 실행 요청을 처리하고, 가상 머신 인스턴스(142)를 프로비저닝한다. 일부 실시예에서, 프론트엔드(149)는 모델 호스팅 시스템(140)에 의해 제공되는 다른 모든 서비스에 대한 프론트 도어 역할을 한다. 프론트엔드(149)는 요청을 처리하고, 요청이 적절히 승인되었는지 확인한다. 예를 들어, 프론트엔드(149)는 배치 요청 또는 실행 요청과 연관된 사용자에게, 지시된 모델 데이터에 대한 액세스 권한, 및/또는 지시된 머신 러닝 모델을 실행할 권한이 있는지 여부를 결정할 수 있다.
훈련 데이터 저장소(160)는 훈련 데이터 및/또는 평가 데이터를 저장한다. 훈련 데이터는 머신 러닝 모델을 훈련시키는 데 사용되는 데이터일 수 있고, 평가 데이터는 머신 러닝 모델의 성능을 평가하는 데 사용되는 데이터일 수 있다. 일부 실시예에서, 훈련 데이터 및 평가 데이터는 공통 데이터를 갖는다. 일부 실시예에서, 훈련 데이터 및 평가 데이터는 공통 데이터를 갖지 않는다. 일부 실시예에서, 훈련 데이터는 입력 데이터 및 예상 출력을 포함한다. 훈련 데이터 저장소(160)가 모델 훈련 시스템(120) 및 모델 호스팅 시스템(140)의 외부에 위치하는 것으로 도시되어 있지만, 이는 제한적인 의미가 아니다. 예를 들어, 도시되지 않은 일부 실시예들에서, 훈련 데이터 저장소(160)는 모델 훈련 시스템(120) 또는 모델 호스팅 시스템(140) 중 적어도 하나의 내부에 위치된다.
일부 실시예에서, 훈련 메트릭 데이터 저장소(165)는 모델 메트릭을 저장한다. 훈련 메트릭스 데이터 저장소(165)가 모델 훈련 시스템(120) 및 모델 호스팅 시스템(140)의 외부에 위치하는 것으로 도시되어 있지만, 이는 제한적인 것으로 의도되지 않는다. 예를 들어, 도시되지 않은 일부 실시예들에서, 훈련 메트릭 데이터 저장소(165)는 모델 훈련 시스템(120) 또는 모델 호스팅 시스템(140) 중 적어도 하나의 내부에 위치된다.
컨테이너 데이터 저장소(170)는 다양한 가상 머신 인스턴스(122 및/또는 142)에 의해 불러들여질 수 있는, ML 훈련 컨테이너(130) 및/또는 ML 스코어링 컨테이너(150)를 형성하는데 사용된 컨테이너 이미지와 같은, 컨테이너 이미지를 저장한다. 컨테이너 이미지(170)가 모델 훈련 시스템(120) 및 모델 호스팅 시스템(140)의 외부에 위치하는 것으로 도시되어 있지만, 이는 제한적인 것으로 의도되지 않는다. 예를 들어, 도시되지 않은 일부 실시예들에서, 컨테이너 데이터 저장소(170)는 모델 훈련 시스템(120) 및 모델 호스팅 시스템(140) 중 적어도 하나의 내부에 위치된다.
훈련 모델 데이터 저장소(175)는 모델 데이터 파일을 저장한다. 일부 실시예에서, 일부 모델 데이터 파일은 단일 파일로 구성되는 반면, 다른 모델 데이터 파일은 다수의 개별 파일의 패키지이다. 훈련 모델 데이터 저장소(175)가 모델 훈련 시스템(120) 및 모델 호스팅 시스템(140)의 외부에 위치하는 것으로 도시되어 있지만, 이는 제한적인 것으로 의도되지 않는다. 예를 들어, 도시되지 않은 일부 실시예들에서, 훈련 모델 데이터 저장소(175)는 모델 훈련 시스템(120) 또는 모델 호스팅 시스템(140) 중 적어도 하나의 내부에 위치된다.
모델 예측 데이터 저장소(180)는 일부 실시예에서 ML 스코어링 컨테이너(150)에 의해 생성된 출력(예를 들어, 실행 결과)을 저장한다. 모델 예측 데이터 저장소(180)가 모델 훈련 시스템(120) 및 모델 호스팅 시스템(140)의 외부에 위치하는 것으로 도시되어 있지만, 이는 제한적인 것으로 의도되지 않는다. 예를 들어, 도시되지 않은 일부 실시예들에서, 모델 예측 데이터 저장소(180)는 모델 훈련 시스템(120) 및 모델 호스팅 시스템(140) 중 적어도 하나의 내부에 위치된다.
모델 훈련 시스템(120), 모델 호스팅 시스템(140), 훈련 데이터 저장소(160), 훈련 메트릭 데이터 저장소(165), 컨테이너 데이터 저장소(170), 훈련 모델 데이터 저장소(175) 및 모델 예측 데이터 저장소(180)는 별개의 구성 요소로 도시되어 있지만, 이는 제한적인 의미가 아니다. 일부 실시예들에서, 이들 구성요소들 중 임의의 하나 또는 모두가 설명된 기능을 수행하기 위해 결합될 수 있다. 예를 들어, 이들 구성 요소 중 어느 하나 또는 전부가 단일 컴퓨팅 장치에 의해 또는 컴퓨터 서버와 같은 다수의 별개의 컴퓨팅 장치에 의해 논리적으로 또는 물리적으로 함께 그룹화되어 서버 시스템으로서 집합적으로 동작하도록 구현될 수 있다. 이러한 구성요소들 중 어느 하나 또는 모두는 공유 내부 네트워크를 통해 통신할 수 있고, 집단 시스템(예를 들어, 머신 러닝 서비스로도 지칭됨)은 네트워크(110)를 통해 하나 이상의 사용자 장치(102)와 통신할 수 있다.
데스크탑 컴퓨터, 랩탑 및 휴대폰을 포함한 다양한 예시적인 사용자 장치(102)가 도 1에 도시되어 있고, 각각은 예시의 방식으로 제공된다. 일반적으로, 사용자 장치(102)는 데스크탑, 랩탑 또는 태블릿 컴퓨터, 개인용 컴퓨터, 웨어러블 컴퓨터, 서버, 개인 휴대 정보 단말기(PDA), 하이브리드 PDA/휴대 전화, 휴대 전화, 전자 책 리더, 셋톱 박스, 음성 명령 장치, 카메라, 디지털 미디어 플레이어 등과 같은, 임의의 컴퓨팅 장치일 수 있다. 일부 실시예에서, 모델 훈련 시스템(120) 및/또는 모델 호스팅 시스템(140)은 훈련 요청, 배치 요청 및/또는 실행 요청을 제출하기 위한, 하나 이상의 사용자 인터페이스, 명령-라인 인터페이스(CLI), 애플리케이션 프로그래밍 인터페이스(API) 및/또는 다른 프로그래밍 인터페이스를 사용자 장치(102)에 제공한다. 일부 실시예에서, 사용자 장치(102)는 훈련 요청, 배치 요청 및/또는 실행 요청을 제출하기 위해 모델 훈련 시스템(120) 및/또는 모델 호스팅 시스템(140)과 상호 작용하는 독립형 애플리케이션을 실행할 수 있다.
일부 실시예들에서, 네트워크(110)는 임의의 유선 네트워크, 무선 네트워크 또는 이들의 조합을 포함한다. 예를 들어, 네트워크(110)는 개인 영역 네트워크, 근거리 네트워크, 광역 네트워크, 무선 방송(over-the-air broadcast) 네트워크(예를 들어, 라디오 또는 텔레비전 용), 케이블 네트워크, 위성 네트워크, 셀룰러 전화 네트워크 또는 이들의 조합일 수 있다. 다른 예로서, 네트워크(110)는 인터넷과 같은 다양한 개별 당사자에 의해 운영될 수 있는, 연동된 네트워크들의 공개적으로 액세스 가능한 네트워크일 수 있다. 일부 실시예들에서, 네트워크(110)는 기업 또는 대학 인트라넷과 같은 사설 또는 준-사설(semi-private) 네트워크일 수 있다. 네트워크(110)는 GSM(Global System for Mobile Communications) 네트워크, CDMA(Code Division Multiple Access) 네트워크, LTE(Long Term Evolution) 네트워크 또는 임의의 다른 유형의 무선 네트워크와 같은, 하나 이상의 무선 네트워크를 포함할 수 있다. 네트워크(110)는 인터넷 또는 임의의 다른 전술한 유형의 네트워크를 통해 통신하기 위해 프로토콜 및 구성요소를 사용할 수 있다. 예를 들어, 네트워크(110)에 의해 사용되는 프로토콜은 HTTP(Hypertext Transfer Protocol), HTTP 시큐어(HTTPS), MQTT(Message Queue Telemetry Transport), CoAP(Constrained Application Protocol), 등을 포함할 수 있다. 인터넷 또는 임의의 다른 상기 언급된 유형의 통신 네트워크를 통해 통신하기 위한 프로토콜 및 구성 요소는 당업자에게 잘 알려져 있으므로 더 상세히 설명되지 않는다.
머신 러닝 모델 훈련을 위한 블록 다이어그램 예
도 2는 도 1의 운영 환경(100)의 블록도로서, 일부 실시예에 따라 머신 러닝 모델을 훈련시키기 위해 운영 환경(100)의 구성요소에 의해 수행되는 동작을 도시한다. 도 2에 도시된 바와 같이, 사용자 장치(102)는 (1)에서 컨테이너 이미지의 위치 및 훈련 데이터의 위치를 프론트엔드(129)로 전송한다. 프론트엔드(129)는 그 후 가상 머신 인스턴스(122)를 초기화시켜서, (2)에서 컨테이너 이미지 위치 및 훈련 데이터 위치를 초기화된 가상 머신 인스턴스(122)로 전달한다. 일부 실시예들에서, 컨테이너 이미지 위치 및 훈련 데이터 위치는 훈련 요청의 일부로서 전송된다.
일부 실시예들에서, 가상 머신 인스턴스(122)는 (3)에서 수신된 위치를 사용하여 훈련 데이터 저장소(160)로부터 훈련 데이터를 불러온다. 훈련 데이터를 불러오기 전, 중, 또는 후에, 가상 머신 인스턴스(122)는 (4)에서 수신된 위치를 사용하여 컨테이너 데이터 저장소(170)로부터 컨테이너 이미지를 불러온다.
가상 머신 인스턴스(122)는 일부 실시예에서 수신된 컨테이너 이미지를 사용하여 가상 머신 인스턴스(122) 내에서 ML 훈련 컨테이너를 초기화한다. 가상 머신 인스턴스(122)는 그 후 (5)에서, 불러온 훈련 데이터를 사용하여 ML 훈련 컨테이너에 저장된 코드를 실행하여, 머신 러닝 모델을 훈련시킨다. 예를 들어, 코드에는 아직 학습되지 않은 머신 러닝 모델을 정의하는 알고리즘을 나타내는 컨테이너 이미지에서 발원되는 실행가능 명령어가 포함될 수 있다. 가상 머신 인스턴스(122)는 사용자 장치(102)에 의해 제공되는 하이퍼파라미터 값에 따라 코드를 실행한다.
실행가능 명령어를 실행하면, ML 훈련 컨테이너가 학습중인 머신 러닝 모델의 특성을 포함하는 모델 데이터를 생성한다. 가상 머신 인스턴스(122)는 일부 실시예에 따라 (6)에서, 훈련 모델 데이터 저장소(175)에 모델 데이터를 저장한다. 일부 실시예에서, 가상 머신 인스턴스(122)는 훈련 모델 데이터 저장소(175)에 저장된 단일 파일로 패키지된 다수의 모델 데이터 파일을 생성한다.
머신 러닝 모델 훈련 프로세스 동안, ML 모델 평가기(128)는 (7)에서 훈련 모델 데이터 저장소(175)로부터 모델 데이터를 불러올 수 있다. ML 모델 평가기(128)는 (8)에서 훈련 데이터 저장소(160)로부터 평가 데이터를 추가로 불러온다. 예를 들어, 평가 데이터는 머신 러닝 모델 훈련에 사용되는 데이터와 별개인 데이터일 수 있다. 평가 데이터는 입력 데이터와, 입력 데이터의 결과로서 발생되거나 형성된 알려진 결과를 포함할 수 있다. 일부 실시예에서, ML 모델 평가기(128)는 (9)에서 평가 데이터에 포함된 입력 데이터를 사용하여 불러온 모델 데이터에 의해 정의된 머신 러닝 모델을 실행한다. ML 모델 평가기(128)는 그 후 (10)에서, 머신 러닝 모델의 품질 메트릭을 결정하기 위해 불러온 모델 데이터에 의해 정의된 머신 러닝 모델의 출력을, 평가 데이터에 포함된 알려진 결과와 비교한다. 예를 들어, 품질 메트릭은 머신 러닝 모델 출력과 알려진 결과 사이의 집계된 차이(예를 들어, 평균 차이, 중간값 차이, 등)에 기초하여 결정될 수 있다. ML 모델 평가기(128)는 (11)에서 훈련 메트릭 데이터 저장소(165)에 품질 메트릭을 저장할 수 있다.
일부 실시예에서, ML 모델 평가기(128)는 또한 훈련 메트릭 데이터 저장소(165)에 추가 정보를 저장한다. 예를 들어, ML 모델 평가기(128)는 입력 데이터(또는 입력 데이터를 나타내는 태그), 머신 러닝 모델 출력, 및 알려진 결과를 저장할 수 있다. 따라서, 사용자 장치(102)를 통해 사용자는 품질 메트릭(들)을 식별할 수 있을 뿐만 아니라, 머신 러닝 모델 출력과 알려진 결과 사이에 작은 차이를 초래했거나 전혀 차이를 초래하지 않은 입력, 머신 러닝 모델 출력 및 알려진 결과 간에 큰 차이를 가져온 입력, 등도 식별할 수 있다.
머신 러닝 모델 훈련 수정을 위한 블록 다이어그램 예
도 3은 도 1의 운영 환경(100)의 블록도로서, 일부 실시예에 따라 머신 러닝 모델 훈련을 수정하기 위해 운영 환경(100)의 구성요소에 의해 수행되는 동작을 도시한다. 도 3에 도시된 바와 같이, 사용자 장치(102)는 (1)에서 훈련 메트릭 데이터 저장소(165)에 저장된 품질 메트릭을 불러온다. 일부 실시예에서, 사용자는 사용자 장치(102)를 통해 여전히 학습되고 있는 머신 러닝 모델의 정확도를 결정하기 위해 품질 메트릭을 불러온다.
일부 실시예에서, 사용자 장치(102)는 수정된 컨테이너 이미지의 위치를 (2)에서 프론트엔드(129)로 전송한다. 그 후 프론트엔드(129)는 (3)에서, 수정된 컨테이너 이미지의 위치를 가상 머신 인스턴스(122)로 전달한다. 사용자 장치(102)는 훈련되는 머신 러닝 모델을 수정하기 위한 수정 요청의 일부로서 수정된 컨테이너 이미지를 전송할 수 있다. 이에 응답하여, 가상 머신 인스턴스(122)는 (4)에서, 원래 컨테이너 이미지로부터 형성된 원래 ML 훈련 컨테이너에 저장된 코드의 실행을 중지한다. 가상 머신 인스턴스(122)는 수신된 위치를 사용하여 (5)에서, 컨테이너 데이터 저장소(170)로부터 수정된 컨테이너 이미지를 불러온다. 가상 머신 인스턴스(122)는 그 후, 수정된 컨테이너 이미지로부터 수정된 ML 훈련 컨테이너를 형성할 수 있고, (6)에서 이전에 불러온 훈련 데이터를 사용하여 수정된 ML 훈련 컨테이너에 저장된 코드를 실행하여, 머신 러닝 모델을 재 훈련할 수 있다.
코드의 실행에 따라, 수정된 ML 훈련 컨테이너가 업데이트된 모델 데이터를 생성할 수 있고, 가상 머신 인스턴스(122)는 그 후 (7)에서, 훈련 모델 데이터 저장소(175)에 이를 저장한다. 도시되지 않은 일부 실시예들에서, 가상 머신 인스턴스(122)는 훈련 모델 데이터 저장소(175)로 하여금 원래 ML 훈련 컨테이너를 사용하여 수행된 훈련의 결과로서 저장된 임의의 모델 데이터를 삭제하게 한다.
도시되지 않은 일부 실시예들에서, 사용자는 훈련되는 머신 러닝 모델을 수정하기를 원하지만, 사용자가 새 ML 훈련 컨테이너의 초기화를 원하지 않기 때문에, 사용자는 사용자 장치(102)를 통해, 수정된 컨테이너 이미지의 위치를 제공하지 않는다. 오히려 사용자는 런타임 시 기존 ML 훈련 컨테이너를 수정하여 훈련 프로세스를 다시 시작하지 않고도 머신 러닝 모델을 수정할 수 있기를 원한다. 따라서, 사용자 장치(102)는 대신에 가상 머신 인스턴스(122)가 기존 ML 훈련 컨테이너에 추가하는(또는 ML 훈련 컨테이너에 이미 존재하는 다른 코드를 대체하기 위해 사용하는) 코드를 제공한다. 예를 들어, 기존 ML 훈련 컨테이너를 형성하는데 사용된 원래 컨테이너 이미지는 실행 가능 명령어가 실행될 때 추가 코드를 불러오고 실행하도록 구성된 실행 가능 명령어를 포함할 수 있다. 이러한 추가 코드는 컨테이너 이미지와 연계하여(예를 들어, ML 훈련 컨테이너가 초기화될 때), 및/또는 가상 머신 인스턴스(122)가 ML 훈련 컨테이너 내에 저장된 코드를 이미 실행하기 시작한 후에, 사용자 장치(102)에 의해 제공될 수 있다. 이 실시예에서, 추가 코드와 함께, 컨테이너 이미지는 완전한 ML 훈련 컨테이너를 형성한다.
병렬화된 머신 러닝 모델 훈련을 위한 블록 다이어그램 예
도 4는 도 1의 운영 환경(100)의 블록도로서, 일부 실시예에 따라 머신 러닝 모델 훈련 프로세스를 병렬화하기 위해 운영 환경(100)의 구성요소에 의해 수행되는 동작을 도시한다. 도 4에 도시된 바와 같이, 사용자 장치(102)는 컨테이너 이미지 위치 및 훈련 데이터 위치를 (1)에서 프론트엔드(129)로 전송한다. 이에 응답하여, 프론트엔드(129)는 제 1 가상 머신 인스턴스(122A) 및 제 2 가상 머신 인스턴스(122B)를 초기화하여, 제 1 가상 머신 인스턴스(122A)가 훈련 데이터의 제 1 부분을 사용하여 머신 러닝 모델의 부분 훈련을 수행할 수 있고, 제 2 가상 머신 인스턴스(122B)가 훈련 데이터의 제 2 부분을 사용하여 머신 러닝 모델의 부분 훈련을 수행할 수 있다. 프론트엔드(129)는 그 후 (2A)에서, 컨테이너 이미지 위치 및 훈련 데이터의 제 1 부분의 위치를 가상 머신 인스턴스(122A)로 전송한다. 컨테이너 이미지 위치 및 훈련 데이터의 제 1 부분의 위치를 가상 머신 인스턴스(122A)로 전송하기 전, 중, 또는 후에, 프론트엔드(129)는 컨테이너 이미지 위치 및 훈련 데이터의 제 2 부분의 위치를 (2B)에서 가상 머신 인스턴스(122B)로 전송한다. 일부 실시예에서, 컨테이너 이미지 위치 및 훈련 데이터 위치는 훈련 요청의 일부로서 전송된다.
일부 실시예들에서, 가상 머신 인스턴스(122A)는 (3A)에서, 수신된 위치를 사용하여 훈련 데이터 저장소(160)로부터 훈련 데이터의 제 1 부분을 불러온다. 가상 머신 인스턴스(122A)가 훈련 데이터의 제 1 부분을 불러오기 전, 중, 또는 후에, 가상 머신 인스턴스(122B)는 (3B)에서, 수신된 위치를 사용하여 훈련 데이터 저장소(160)로부터 훈련 데이터의 제 2 부분을 불러온다. 도시되지 않은 일부 실시예들에서, 가상 머신 인스턴스들(122A-122B)은 동일한 훈련 데이터를 불러온다.
그 후, 가상 머신 인스턴스(122A)는 일부 실시예에서 표시된 위치로부터 불러온 컨테이너 이미지를 사용하여 ML 훈련 컨테이너를 형성하고, (4A)에서 훈련 데이터의 불러온 제 1 부분을 사용하여 ML 훈련 컨테이너에 저장된 코드를 실행한다. 가상 머신 인스턴스(122A)가 코드를 실행하기 전, 중, 또는 이후에, 가상 머신 인스턴스(122B)는 표시된 위치로부터 불러온 컨테이너 이미지를 사용하여 ML 훈련 컨테이너를 형성하고, (4B)에서 훈련 데이터의 불러온 제 2 부분을 사용하여 ML 훈련 컨테이너에 저장된 코드를 실행한다. 따라서, 가상 머신 인스턴스(122A-122B)는 각각 동일한 ML 훈련 컨테이너의 사본을 포함한다.
코드를 실행하면 가상 머신 인스턴스(122A-122B)(예를 들어, 그 안에 포함된 ML 훈련 컨테이너)가 모델 데이터를 생성하게 된다. 따라서, 가상 머신 인스턴스(122A)는 모델 데이터를(5A)에서 훈련 모델 데이터 저장소(175)로 전송하고 가상 머신 인스턴스(122B)는 (5B)에서, 모델 데이터를 훈련 모델 데이터 저장소(175)로 전송한다. 도시되지 않은 일부 실시예들에서, 각각의 가상 머신 인스턴스(122A-122B)에 의해 생성된 모델 데이터는 (예를 들어, 훈련 모델 데이터 저장소(175)에 의해) 단일 모델 데이터 파일에 패키지된다.
일부 실시예에서, 가상 머신 인스턴스(122A-122B)는 머신 러닝 모델 훈련 동안 서로 통신한다. 예를 들어, 가상 머신 인스턴스(122A-122B)는 훈련 프로세스 동안 계수, 가중치, 훈련 전략 등을 공유할 수 있다.
머신 러닝 모델 배포 및 실행을 위한 블록 다이어그램 예
도 5a는 도 1의 운영 환경(100)의 블록도로서, 일부 실시예에 따른, 훈련된 머신 러닝 모델을 전개하기 위해 운영 환경(100)의 구성요소에 의해 수행되는 동작을 도시한다. 도 5a에 도시된 바와 같이, 사용자 장치(102)는 (1)에서, 머신 러닝 모델 배치 요청을 프론트엔드(149)에 전송한다. 프론트엔드(149)는 (2)에서, 가상 머신 인스턴스(142)를 초기화하고, (3)에서 배치 요청을 가상 머신 인스턴스(142)에 전송한다. 배치 요청은 훈련 모델 데이터 저장소(175)에 저장된 하나 이상의 모델 데이터 파일의 위치를 포함한다. 일부 실시예에서, 배치 요청은 엔드포인트 명칭을 포함한다. 일부 실시예들에서, 배치 요청은 엔드포인트 명칭을 포함하지 않는다.
일부 실시예들에서, 가상 머신 인스턴스(142)는 (4)에서, 훈련 모델 데이터 저장소(175)로부터 모델 데이터를 불러온다. 예를 들어, 가상 머신 인스턴스(142)는 배치 요청에서 식별된 위치에 대응하는 모델 데이터를 불러온다. 도시되지 않은 일부 실시예들에서, 가상 머신 인스턴스(142)는 모델 데이터를 불러오지 않는다. 오히려, 모델 데이터는 가상 머신 인스턴스(142)에 의해 불러들여진 컨테이너 이미지에 임베딩될 수 있다. 가상 머신 인스턴스(142)는 또한 (5)에서, 컨테이너 데이터 저장소(170)로부터 컨테이너 이미지를 불러온다. 컨테이너 이미지는 배치 요청에서 식별된 컨테이너 이미지에 해당할 수 있다.
가상 머신 인스턴스(142)는 일부 실시예에 따라 (6)에서, ML 스코어링 컨테이너를 초기화할 수 있다. 예를 들어, 가상 머신 인스턴스(142)는 불러온 컨테이너 이미지를 사용하여 ML 스코어링 컨테이너를 형성할 수 있다. 가상 머신 인스턴스(142)는 (7)에서, ML 스코어링 컨테이너에 (예를 들어, 머신 러닝 모델이 훈련될 때 모델 데이터가 ML 훈련 컨테이너(130)에 저장되는 위치와 동일한 위치에) 모델 데이터를 추가로 저장할 수 있다.
일부 실시예들에서, 배치 요청이 엔드포인트 명칭을 포함하지 않은 경우, 가상 머신 인스턴스(142)는 엔드포인트 명칭을 (8)에서 프론트엔드(149)로 전송할 수 있다. 프론트엔드(149)는 (9)에서 엔드포인트 명칭을 사용자 장치(102)로 전달할 수 있다. 따라서, 사용자 장치(102)는 초기화된 ML 스코어링 컨테이너에 후일에 액세스하기 위해(예를 들어, 머신 러닝 모델 실행 요청을 제출하기 위해) 엔드포인트 명칭을 사용할 수 있다.
도 5b는 도 1의 운영 환경(100)의 블록도로서, 일부 실시예에 따라, 훈련된 머신 러닝 모델을 실행하기 위해 운영 환경(100)의 구성요소에 의해 수행되는 동작을 도시한다. 도 5b에 도시된 바와 같이, 사용자 장치(102)는 (1)에서 머신 러닝 모델 실행 요청을 프론트엔드(149)에 전송한다. 프론트엔드(149)는 (2)에서 실행 요청을 가상 머신 인스턴스(142)로 전달한다. 일부 실시예들에서, 실행 요청은 모델 호스팅 시스템(140)이 실행 요청을 적절한 가상 머신 인스턴스(142)로 라우팅하기 위해 사용하는 엔드포인트 명칭을 포함한다.
일부 실시예들에서, 가상 머신 인스턴스(142)는 (3)에서, 출력 생성을 위해 실행 요청에 포함된 입력 데이터를 사용하여 가상 머신 인스턴스(142)에서 초기화된 ML 스코어링 컨테이너에 저장된 코드를 실행한다. 일부 실시예들에서, 가상 머신 인스턴스(142)는 (4)에서 모델 예측 데이터 저장소(180)에 출력을 저장한다. 대안적으로 또는 추가로, 가상 머신 인스턴스(142)는 (5)에서 출력을 프론트엔드(149)로 전송하고, 프론트엔드(149)는 (6)에서 출력을 사용자 장치(102)로 전송한다.
관련 머신 러닝 모델을 실행하기 위한 블록 다이어그램 예
도 6은 도 1의 운영 환경(100)의 블록도로서, 일부 실시예에 따라, 관련 머신 러닝 모델을 실행하기 위해 운영 환경(100)의 구성요소에 의해 수행되는 동작을 도시한다. 도 6에 도시된 바와 같이, 사용자 장치(102)는 (1)에서, 머신 러닝 모델 실행 요청을 프론트엔드(149)에 전송한다. 프론트엔드(149)는 (2)에서, 실행 요청을 가상 머신 인스턴스(142)에서 초기화된 제 1 ML 스코어링 컨테이너(150A)로 전달한다. 일부 실시예들에서, 실행 요청은 가상 머신 인스턴스(142)에서 초기화된 제 2 ML 스코어링 컨테이너(150B)에 의해 실행된 제 2 머신 러닝 모델로부터의 출력에 대한 요청을 포함할 수 있다. 그러나, 출력을 생성하기 위해, ML 스코어링 컨테이너(150B)는 ML 스코어링 컨테이너(150A)에 의해 실행되는 제 1 머신 러닝 모델의 실행으로부터 데이터를 필요로한다. 따라서, 가상 머신 인스턴스(142)는 초기에 실행 요청을 ML 스코어링 컨테이너(150A)로 라우팅한다. 일부 실시예에서, ML 스코어링 컨테이너(150A)는 다른 ML 스코어링 컨테이너(예를 들어, ML 스코어링 컨테이너(150B))와의 통신을 관리하는 마스터 컨테이너로서 기능한다.
일부 실시예들에서, 가상 머신 인스턴스(142)는 ML 스코어링 컨테이너(150A)로 하여금 (3)에서, 제 1 출력을 생성하기 위해 제 1 코드를 실행하게 한다. 예를 들어, 제 1 코드의 실행은 실행 요청에 포함된 입력 데이터를 사용하여 제 1 머신 러닝 모델의 실행을 나타낸다. ML 스코어링 컨테이너(150A)는 (4)에서 제 1 출력을 ML 스코어링 컨테이너(150B)로 전송한다.
가상 머신 인스턴스(142)는 (5)에서, 제 2 ML 스코어링 컨테이너(150B)로 하여금, 제 1 출력을 사용하여 제 2 출력을 생성하도록 제 2 코드를 실행하게 한다. 예를 들어, 제 2 코드의 실행은 제 1 출력을 제 2 머신 러닝 모델에 대한 입력으로서 사용하는 제 2 머신 러닝 모델의 실행을 나타낸다. 이어서, 제 2 ML 스코어링 컨테이너(150B)는 (6)에서 제 2 출력을 제 1 ML 스코어링 컨테이너(150A)로 전송한다.
일부 실시예들에서, 가상 머신 인스턴스(142)는 (7)에서, 제 1 ML 스코어링 컨테이너(150A)로부터 제 2 출력을 풀링하고, 제 2 출력을 모델 예측 데이터 저장소(180)에 저장한다. 대안적으로 또는 추가로, 가상 머신 인스턴스(142)는 (8)에서, 제 1 ML 스코어링 컨테이너(150A)로부터 제 2 출력을 풀링하여 제 2 출력을 프론트엔드(149)로 전송한다. 프론트엔드(149)는 (9)에서 제 2 출력을 사용자 장치(102)에 전송한다.
도시되지 않은 일부 실시예에서, ML 스코어링 컨테이너(150A-150B)는 상이한 가상 머신 인스턴스(142)에서 초기화된다. 따라서, 제 1 출력 및 제 2 출력의 전송이 가상 머신 인스턴스(142) 사이에서 발생할 수 있다.
머신 러닝 모델 정확도 개선 루틴 예
도 7은 일부 실시예에 따른 모델 훈련 시스템에 의해 예시 적으로 구현된 머신 러닝 모델 훈련 루틴(700)을 도시하는 흐름도이다. 예로서, 도 1의 모델 훈련 시스템(120)은 머신 러닝 모델 훈련 루틴(700)을 실행하도록 구성될 수 있다. 머신 러닝 모델 훈련 루틴(700)은 블록(702)에서 시작한다.
블록(704)에서, 일부 실시예에 따라, 컨테이너 이미지 위치 및 훈련 데이터 위치가 수신된다. 예를 들어, 컨테이너 이미지 위치 및 훈련 데이터 위치는 훈련 요청의 일부로서 수신된다.
블록(706)에서, 일부 실시예에 따라, 가상 머신 인스턴스가 초기화된다. 예를 들어, 초기화된 가상 머신 인스턴스는 머신 러닝 모델 훈련을 수행할 인스턴스이다.
블록(708)에서, 일부 실시예에 따라, 컨테이너 이미지 및 훈련 데이터가 불러들여진다. 예를 들어, 컨테이너 이미지는 컨테이너 데이터 저장소(170)로부터 블러들여질 수 있고, 훈련 데이터는 훈련 데이터 저장소(160)로부터 불러들여질 수 있다.
블록(710)에서, 일부 실시예에 따라, ML 훈련 컨테이너가 가상 머신 인스턴스에서 초기화된다. 예를 들어, ML 훈련 컨테이너는 수신된 컨테이너 이미지를 사용하여 형성된다. 컨테이너 이미지에는 알고리즘을 정의하는 실행 가능한 명령어가 포함되어 있다. 따라서 ML 훈련 컨테이너에는 알고리즘을 정의하는 실행 가능한 명령어가 포함된 코드가 포함된다.
블록(712)에서, 일부 실시예에 따라, ML 훈련 컨테이너에 저장된 코드는 불러온 훈련 데이터를 사용하여 실행된다. 예를 들어, 불러온 훈련 데이터(예를 들어, 훈련 데이터의 입력 데이터)는 (예를 들어, 실행가능 명령어의 입력 파라미터에 대한 값을 사용하여) 알고리즘을 정의하는 실행가능 명령어에 대한 입력으로서 제공된다.
블록(714)에서, 일부 실시예에 따라, 코드의 실행 결과로서 생성된 모델 데이터가 저장된다. 예를 들어, 모델 데이터는 훈련 모델 데이터 저장소(175)에 저장된다. 모델 데이터는 머신 러닝 모델 훈련 프로세스 동안 주기적으로 생성될 수 있다.
블록(716)에서, 일부 실시예들에서, 머신 러닝 모델 훈련 프로세스 동안 새로운 컨테이너 이미지가 수신되는지에 대한 결정이 이루어진다. 새로운 컨테이너 이미지가 수신되면, 머신 러닝 모델 훈련 루틴(700)은 블록(718)으로 진행한다. 그렇지 않고 머신 러닝 모델 훈련 프로세스 동안 새로운 컨테이너 이미지가 수신되지 않으면, 머신 러닝 모델 훈련 루틴(700)은 블록(720)으로 진행하여 종료된다. .
블록(718)에서, 일부 실시예에 따라, 원래 ML 훈련 컨테이너는 새로운 ML 훈련 컨테이너로 대체된다. 예를 들어, 새로운 ML 훈련 컨테이너는 새로운 컨테이너 이미지를 사용하여 형성된다. 원래 ML 훈련 컨테이너가 교체되면, 머신 러닝 모델 훈련 루틴(700)은 새로운 ML 훈련 컨테이너에 저장된 코드가 훈련 데이터를 사용하여 실행되도록 블록(712)으로 진행한다.
도시되지 않은 일부 실시예들에서, 새로운 컨테이너 이미지가 수신되지 않는다. 그러나, 새로운 하이퍼파라미터(예를 들어, 클러스터 수의 변경, 계층 수의 변경, 등), 새로운 코드, 등이 수신된다. 모델 훈련 시스템(120)은 새로운 하이퍼파라미터를 사용하여, 새로운 코드를 사용하여, 등을 통해, 머신 러닝 모델을 훈련시키기 위해 (원래 ML 훈련 컨테이너를 새로운 ML 훈련 컨테이너로 교체하는 대신) 런타임 동안 원래 ML 훈련 컨테이너를 수정할 수 있다.
모델 훈련 및 호스팅 시스템의 아키텍처 예
도 8은 본 출원에 따라 머신 러닝 모델을 훈련 및/또는 호스트하는 모델 훈련 시스템(120) 및 모델 호스팅 시스템(140)과 같은 예시적인 모델 시스템(800)의 아키텍처의 일부 실시예를 도시한다. 도 8에 도시된 모델 시스템의 일반적인 구조는 본 개시의 양태를 구현하는데 사용될 수 있는 컴퓨터 하드웨어 및 소프트웨어 구성 요소의 배열을 포함한다. 도시된 바와 같이, 모델 시스템(800)은 프로세싱 유닛(804), 네트워크 인터페이스(806), 컴퓨터 판독가능 매체 드라이브(807), 입/출력 장치 인터페이스(820)를 포함하고, 이들 모두는 통신 버스를 통해 서로 통신할 수 있다.
일부 실시예에서, 네트워크 인터페이스(806)는 도 1의 네트워크(110)와 같은 하나 이상의 네트워크 또는 컴퓨팅 시스템에 대한 연결 기능을 제공한다. 프로세싱 유닛(804)은 따라서 네트워크를 통해 다른 컴퓨팅 시스템 또는 서비스로부터 정보 및 명령어를 수신할 수 있다. 프로세싱 유닛(804)은 또한 메모리(810)와 통신하고 출력 정보를 더 제공할 수 있다. 일부 실시예에서, 모델 시스템(800)은 도 8에 도시된 것보다 더 많은(또는 더 적은) 구성요소를 포함한다.
일부 실시예에서, 메모리(810)는 하나 이상의 실시예를 구현하기 위해 프로세싱 유닛(804)이 실행하는 컴퓨터 프로그램 명령어를 포함한다. 메모리(810)는 일반적으로 RAM, ROM, 또는 다른 영구적 또는 비-일시적 메모리를 포함한다. 메모리(810)는 모델 훈련 시스템(120) 및/또는 모델 호스팅 시스템(140)에 의해 구현된 기능의 일반적인 관리 및 동작에서 프로세싱 유닛(804)에 의해 사용하기 위한 컴퓨터 프로그램 명령어를 제공하는 운영 체제(814)를 저장할 수 있다. 또한, 메모리(810)는 본 개시의 양태를 구현하기 위한 컴퓨터 프로그램 명령 및 다른 정보를 더 포함한다. 예를 들어, 일부 실시예들에서, 메모리(810)는 도 1에 도시된 모델 훈련 시스템(120)에 의해 제공되는 기능에 대응하는 모델 훈련 구성 요소(816)를 포함한다. 일부 실시예들에서, 메모리(810)는 모델 호스팅 시스템(140)에 의해 제공되는 기능에 대응하는 모델 실행 구성요소(818)를 포함한다.
최종 사용자 장치의 아키텍처 예
도 9는 본 출원에 따라 데이터를 수신하고, 데이터를 준비하며, 훈련 요청을 모델 훈련 시스템(120)에 전송하고, 배치 및/또는 실행 요청을 모델 호스팅 시스템(140)에 전송할 수 있는, 예시적인 최종 사용자 장치(102)의 아키텍처의 일부 실시예를 도시한다. 도 9에 도시된 최종 사용자 장치(102)의 일반적인 아키텍처는 본 개시의 양태를 구현하고 액세스하는데 사용될 수 있는 컴퓨터 하드웨어 및 소프트웨어 구성 요소의 배열을 포함한다. 도시된 바와 같이, 최종 사용자 장치(102)는 프로세싱 유닛(904), 네트워크 인터페이스(906), 컴퓨터 판독가능 매체 드라이브(907), 입/출력 장치 인터페이스(920), 선택적 디스플레이(930) 및 입력 장치(940)를 포함하고, 이들 모두는 통신 버스를 통해 서로 통신할 수 있다.
일부 실시예에서, 네트워크 인터페이스(906)는 도 1의 네트워크(110)와 같은 하나 이상의 네트워크 또는 컴퓨팅 시스템에 대한 연결 기능을 제공한다. 프로세싱 유닛(904)은 따라서 네트워크를 통해 다른 컴퓨팅 시스템 또는 서비스로부터 정보 및 명령어를 수신할 수 있다. 프로세싱 유닛(904)은 또한 메모리(910)와 통신하고, 입/출력 장치 인터페이스(920)를 통해 선택적 디스플레이(930)에 대한 출력 정보를 더 제공할 수 있다. 입/출력 장치 인터페이스(920)는 또한 키보드, 마우스, 디지털 펜, 터치스크린, 등과 같은 선택적 입력 장치(940)로부터의 입력을 수용할 수 있다. 일부 실시예에서, 최종 사용자 장치(102)는 도 9에 도시된 것보다 더 많은(또는 더 적은) 구성 요소를 포함한다.
일부 실시예들에서 메모리(910)는, 데이터를 수신하고, 데이터를 준비하며, 여기서 설명된 요청들을 전송하기 위해, 프로세싱 유닛(904)이 실행하는 컴퓨터 프로그램 명령어들을 포함한다. 메모리(910)는 일반적으로 RAM, ROM, 또는 다른 영구 또는 비-일시적 메모리를 포함한다. 메모리(910)는 최종 사용자 장치(102)의 일반적인 관리 및 동작에서 프로세싱 유닛(904)에 의해 사용하기 위한 컴퓨터 프로그램 명령어 및 인터페이스 소프트웨어(912)를 제공하는 운영 체제(914)를 저장할 수 있다. 메모리(910)는 본 개시의 양태를 구현하기 위한 컴퓨터 프로그램 명령어 및 다른 정보를 더 포함할 수 있다. 예를 들어, 일부 실시예들에서 메모리(910)는, 콘텐츠에 액세스하고 모델 훈련 시스템(120) 및/또는 모델 호스팅 시스템(140)과 통신하기 위해, 브라우저 애플리케이션, 미디어 플레이어, CLI, 독립형 애플리케이션, 등과 같은 네트워크 애플리케이션(916)을 포함한다.
용어
설명된 모든 방법 및 작업은 컴퓨터 시스템에 의해 수행되고 완전히 자동화될 수 있다. 일부 경우에, 컴퓨터 시스템은 설명된 기능을 수행하기 위해 네트워크를 통해 통신 및 상호 운용되는 다수의 별개의 컴퓨터 또는 컴퓨팅 장치(예를 들어, 물리적 서버, 워크스테이션, 스토리지 어레이, 클라우드 컴퓨팅 리소스, 등)를 포함할 수 있다. 각각의 이러한 컴퓨팅 장치는 통상적으로, 메모리 또는 다른 비-일시적 컴퓨터 판독가능 저장 매체 또는 장치(예를 들어, 솔리드 스테이트 저장 장치, 디스크 드라이브, 등)에 저장된 프로그램 명령어 또는 모듈을 실행하는 프로세서(또는 다중 프로세서)를 포함한다. 본 명세서에 개시된 다양한 기능들은 그러한 프로그램 명령들로 구현될 수 있거나, 컴퓨터 시스템의 애플리케이션-전용 회로(예를 들어, ASIC 또는 FPGA)에서 구현될 수 있다. 컴퓨터 시스템이 다수의 컴퓨팅 장치를 포함하는 경우에, 이러한 장치들이 동위치에 놓일 수 있으나, 반드시 그럴 필요는 없다. 개시된 방법 및 작업의 결과는 솔리드 스테이트 메모리 칩 또는 자기 디스크와 같은 물리적 저장 장치를 다른 상태로 변환함으로써 지속적으로 저장될 수 있다. 일부 실시예에서, 컴퓨터 시스템은 프로세싱 리소스가 다수의 별개의 비즈니스 엔티티 또는 다른 사용자에 의해 공유되는 클라우드 기반 컴퓨팅 시스템일 수 있다.
실시예에 따라, 여기서 설명된 임의의 프로세스 또는 알고리즘의 특정 동작, 이벤트 또는 기능이 상이한 순서로 수행될 수 있고, 추가, 병합 또는 생략될 수 있다(예를 들어, 모든 설명된 동작 또는 이벤트가 알고리즘 실시에 필요한 것은 아니다). 또한, 특정 실시예들에서, 동작들 또는 이벤트들은 예를 들어, 멀티-스레디드 프로세싱, 인터럽트 프로세싱, 또는 다중 프로세서들 또는 프로세서 코어들을 통해 또는 다른 병렬 아키텍처상에서, 순차적으로가 아니라 동시적으로, 수행될 수 있다.
본 명세서에 개시된 실시예와 관련하여 설명된 다양한 예시적인 논리 블록, 모듈, 루틴 및 알고리즘 단계는 전자 하드웨어(예를 들어, ASIC 또는 FPGA 장치), 컴퓨터 하드웨어에서 실행되는 컴퓨터 소프트웨어, 또는 이 둘의 조합으로 구현될 수 있다. 또한, 개시된 실시예들과 관련하여 설명된 다양한 예시적인 논리 블록 및 모듈은 프로세서 장치, 디지털 신호 프로세서(DSP), 주문형 집적 회로(ASIC), 필드 프로그래머블 게이트 어레이(FPGA) 또는 다른 프로그래머블 로직 장치, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 구성 요소, 또는 여기 기술된 기능을 수행하도록 설계된 이들의 조합과 같이, 기계에 의해 구현 또는 수행될 수 있다. 프로세서 장치는 마이크로 프로세서일 수 있지만, 대안적으로, 프로세서 장치는 제어기, 마이크로제어기 또는 상태 머신, 이들의 조합, 등일 수 있다. 프로세서 장치는 컴퓨터-실행가능 명령어를 처리하도록 구성된 전기 회로를 포함할 수 있다. 다른 실시예에서, 프로세서 장치는 컴퓨터-실행가능 명령어를 처리하지 않고 논리 동작을 수행하는 FPGA 또는 다른 프로그램 가능 장치를 포함한다. 프로세서 장치는 또한 컴퓨팅 장치의 조합, 예를 들어 DSP와 마이크로 프로세서의 조합, 복수의 마이크로 프로세서, DSP 코어와 연계된 하나 이상의 마이크로 프로세서, 또는 임의의 다른 그러한 구성으로서 구현될 수 있다. 주로 디지털 기술과 관련하여 설명되었지만, 프로세서 장치는 또한 주로 아날로그 구성 요소를 포함할 수 있다. 예를 들어, 설명된 렌더링 기술들 중 일부 또는 전부는 아날로그 회로 또는 혼합 아날로그 및 디지털 회로로 구현될 수 있다. 컴퓨팅 환경은 몇가지 예를 들자면, 마이크로 프로세서, 메인 프레임 컴퓨터, 디지털 신호 프로세서, 휴대용 컴퓨팅 장치, 장치 제어기 또는 기기 내의 연산 엔진을 기반으로하는 컴퓨터 시스템을 포함하지만 이에 제한되지 않는 임의의 유형의 컴퓨터 시스템을 포함할 수 있다.
개시된 실시예들과 관련하여 설명된 방법, 프로세스, 루틴 또는 알고리즘의 요소들은 직접 하드웨어적으로, 또는 프로세서 장치에 의해 실행되는 소프트웨어 모듈로, 또는 이 둘의 조합으로 구현될 수 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드 디스크, 이동식 디스크, CD-ROM 또는 기타 형태의 비-일시적 컴퓨터-판독가능 저장 매체에 위치할 수 있다. 예시적인 저장 매체는 프로세서 장치가 저장 매체로부터 정보를 판독하고 저장 매체에 정보를 기록할 수 있도록 프로세서 장치에 결합될 수 있다. 대안적으로, 저장 매체가 프로세서 장치에 통합될 수 있다. 프로세서 장치 및 저장 매체가 ASIC에 위치할 수 있다. ASIC가 사용자 단말기에 상주할 수 있다. 대안적으로, 프로세서 장치 및 저장 매체가 사용자 단말기에서 개별 구성요소로서 상주할 수 있다.
달리 구체적으로 언급되지 않거나 사용된 문맥 내에서 달리 이해되지 않는 한, "할 수 있는", "할 수 있었는", "가능할 수 있었던", "가능할 수 있는", "예를 들어" 등의 조건부 언어는 일반적으로, 특정 특징, 요소 또는 단계를 특정 실시예는 포함하지만 다른 실시예는 포함하지 않는다는 것을 전달하도록 의도된다. 따라서, 이러한 조건부 언어는 일반적으로 특징, 요소 또는 단계가 하나 이상의 실행을 위해 반드시 요구된다는 것이 아니며, 이러한 특징, 요소 또는 단계들이 임의의 특정 실시예에 포함되거나 수행되어야 하는지 여부를 다른 입력 또는 프람프트의 유무에 관계없이, 결정하기 위한 로직을 반드시 포함한다는 것을 의미하는 것도 아니다. "포함하는", "구비하는", "갖는" 등의 용어는 동의어이며, 개방형 방식으로 포괄적으로 사용되며 추가 요소, 특징, 행위, 작동 등을 배제하지 않는다. 또한, 따라서 용어 "또는"은 (배타적인 의미가 아닌) 포괄적인 의미로 사용되므로, 예를 들어, 요소들의 리스트를 연결하기 위해 사용될 때, "또는"이라는 용어는 리스트 내 요소들 중 하나, 일부 또는 모두를 의미한다.
달리 구체적으로 언급되지 않는 한, "X, Y 또는 Z 중 적어도 하나"라는 어구와 같은 택일적 언어는 일 품목, 용어, 등이 X, 또는 Y 또는 Z 또는 이들의 임의의 조합(예를 들어, X, Y 또는 Z)일 수 있음을 제시하기 위해 일반적으로 사용되는 범주에서 이해된다. 따라서, 그러한 택일적 언어는 일반적으로 특정 구현이 X 중 적어도 하나, Y 중 적어도 하나, 및 Z 중 적어도 하나가 각각 존재해야 함을 의도하는 것이 아니며 이를 암시해서도 안된다.
상기 상세한 설명은 다양한 실시예에 적용되는 바와 같은 신규한 특징을 도시, 설명 및 지적하였지만, 도시된 장치 또는 알고리즘의 형태 및 세부 사항의 다양한 생략, 대체 및 변경이 이루어질 수 있음을 이해할 수 있다. 본 개시의 정신을 벗어나지 않고. 인식될 수 있는 바와 같이, 일부 특징들은 다른 특징들과 별도로 사용되거나 실행될 수 있기 때문에, 설명된 특정 실시예들은 설명된 모든 특징 및 이점을 제공하지 않는 형태로 구현될 수 있다. 개시된 특정 실시예의 범위는 전술한 설명이 아니라 첨부된 청구 범위에 의해 지시된다. 청구 범위의 의미 및 등가 범위 내에 있는 모든 변경은 그 범위 내에 포함되어야한다.
전술한 내용은 다음 조항을 고려하여 더 잘 이해할 수 있다.
조항 1. 시스템에 있어서,
훈련 모델 데이터 저장소; 및
제 1 가상 머신 인스턴스를 호스팅하기 위한 제 1 컴퓨팅 장치를 포함하며, 상기 제 1 컴퓨팅 장치는 컴퓨터-실행가능 명령어를 포함하고, 상기 컴퓨터-실행가능 명령어는 실행될 때 상기 제 1 컴퓨팅 장치로 하여금:
사용자 장치로부터 훈련 요청을 획득하는 단계 - 상기 훈련 요청은 컨테이너 이미지의 표시자, 훈련 데이터의 표시자, 및 하나 이상의 제 1 하이퍼파라미터 값을 포함함;
제 1 가상 머신 인스턴스에서 머신 러닝(ML) 훈련 컨테이너를 초기화하는 단계 - 상기 ML 훈련 컨테이너는 컨테이너 이미지로부터 형성됨;
하나 이상의 제 1 하이퍼파라미터 값에 따라 ML 훈련 컨테이너 내에 저장된 코드를 제 1 가상 머신 인스턴스에 의해 실행하는 단계 - 상기 코드의 실행은 제 1 가상 머신 인스턴스에 의해 훈련 데이터를 사용하여 머신 러닝 모델을 훈련시키고, 머신 러닝 모델의 특성을 나타내는 모델 데이터를 생성함; 및
상기 모델 데이터를 훈련 모델 데이터 저장소에 저장하는 단계를 수행하게 하는, 시스템.
조항 2. 조항 1의 시스템에 있어서, 컴퓨터-실행가능 명령어는 실행될 때 상기 제 1 컴퓨팅 장치로 하여금:
훈련되는 머신 러닝 모델을 수정하기 위한 수정 요청을 획득하는 단계 - 상기 수정 요청은 제 2 컨테이너 이미지의 표시자를 포함함;
제 1 가상 머신 인스턴스에 의해 코드의 실행을 중단하는 단계;
ML 훈련 컨테이너를 제 2 컨테이너 이미지를 사용하여 형성된 제 2 ML 훈련 컨테이너로 대체하는 단계; 및
제 1 가상 머신 인스턴스에 의해 제 2 ML 훈련 컨테이너 내에 저장된 제 2 코드를 실행하는 단계 - 제 2 코드의 실행에 의해, 제 1 머신 인스턴스가 머신 러닝 모델을 재훈련시키고 제 2 모델 데이터를 생성함 - 를 더 수행하게 하는, 시스템.
조항 3. 조항 1의 시스템에 있어서, 컴퓨터-실행가능 명령어는 실행될 때 상기 제 1 컴퓨팅 장치로 하여금:
하나 이상의 제 2 하이퍼파라미터 값을 획득하는 단계; 및
제 1 가상 머신 인스턴스에 의해, 하나 이상의 제 1 하이퍼파라미터 값 대신에 하나 이상의 제 2 하이퍼파라미터 값에 따라 ML 훈련 컨테이너 내에 저장된 코드를 실행하는 단계를 더 수행하게 하는, 시스템.
조항 4. 조항 1의 시스템에 있어서, 컴퓨터-실행가능 명령어는 실행될 때 상기 제 1 컴퓨팅 장치로 하여금:
평가 데이터를 획득하는 단계 - 상기 평가 데이터는 입력 데이터 및 알려진 결과를 포함함;
모델 출력 데이터를 생성하도록 입력 데이터를 입력으로 이용하여 모델 데이터에 의해 규정된 머신 러닝 모델을 실행하는 단계;
머신 러닝 모델의 품질 메트릭을 결정하기 위해 모델 출력 데이터를 상기 알려진 결과와 비교하는 단계; 및
품질 메트릭을 저장하는 단계를 더 수행하게 하는, 시스템.
조항 5. 조항 1의 시스템에 있어서, 컴퓨터-실행가능 명령어는 실행될 때 상기 제 1 컴퓨팅 장치로 하여금:
제 1 가상 머신 인스턴스에서 제 2 ML 훈련 컨테이너를 초기화하는 단계 - 상기 제 2 ML 훈련 컨테이너는 상기 컨테이너 이미지로부터 형성됨; 및
상기 ML 훈련 컨테이너 내에 저장된 코드의 실행과 병렬로 하나 이상의 제 1 하이퍼파라미터 값에 따라 제 2 ML 훈련 컨테이너 내에 저장된 제 2 코드를 제 1 가상 머신 인스턴스에 의해 실행하는 단계를 더 수행하게 하는, 시스템.
조항 6. 컴퓨터 구현 방법에 있어서,
네트워크를 통해 사용자 장치로부터 훈련 요청을 수신하는 단계 - 상기 훈련 요청은 컨테이너 이미지의 표시자 및 훈련 데이터의 표시자를 포함함;
제 1 컴퓨팅 장치에 의해 호스팅되는 제 1 가상 머신 인스턴스에서 머신 러닝(ML) 훈련 컨테이너를 초기화하는 단계 - 상기 ML 훈련 컨테이너는 상기 컨테이너 이미지로부터 형성됨; 및
상기 ML 훈련 컨테이너 내에 저장된 코드를 제 1 가상 머신 인스턴스에 의해 실행하는 단계 - 상기 코드의 실행은 제 1 가상 머신 인스턴스에 의해 훈련 데이터를 사용하여 머신 러닝 모델을 훈련시키고 머신 러닝 모델의 특성을 나타내는 모델 데이터를 생성함 - 를 포함하는, 컴퓨터 구현 방법.
조항 7. 조항 6의 컴퓨터 구현 방법에 있어서,
훈련되는 머신 러닝 모델을 수정하기 위한 수정 요청을 수신하는 단계 - 상기 수정 요청은 제 2 컨테이너 이미지의 표시자를 포함함;
제 1 가상 머신 인스턴스에 의해 코드의 실행을 중단하는 단계;
상기 제 1 가상 머신 인스턴스에서 제 2 ML 훈련 컨테이너를 초기화하는 단계 - 상기 제 2 ML 훈련 컨테이너는 상기 제 2 컨테이너 이미지를 사용하여 형성됨; 및
제 2 ML 훈련 컨테이너 내에 저장된 제 2 코드를 제 1 가상 머신 인스턴스에 의해 실행하는 단계 - 상기 제 2 코드의 실행은 제 1 머신 인스턴스에 의해 머신 러닝 모델을 재훈련시키고 제 2 모델 데이터를 생성함 - 를 더 포함하는, 컴퓨터 구현 방법.
조항 8. 조항 6의 컴퓨터 구현 방법에 있어서, 상기 컴퓨터 구현 방법은:
평가 데이터를 획득하는 단계 - 상기 평가 데이터는 입력 데이터 및 알려진 결과를 포함함;
모델 출력 데이터를 생성하도록 입력 데이터를 입력으로서 사용하여 모델 데이터에 의해 규정된 머신 러닝 모델을 실행하는 단계; 및
머신 러닝 모델의 품질 메트릭을 결정하기 위해 모델 출력 데이터를 상기 알려진 결과와 비교하는 단계를 더 포함하는, 컴퓨터 구현 방법.
조항 9. 조항 6의 컴퓨터 구현 방법에 있어서,
상기 제 1 가상 머신 인스턴스에서 제 2 ML 훈련 컨테이너를 초기화하는 단계 - 상기 제 2 ML 훈련 컨테이너는 상기 컨테이너 이미지로부터 형성됨; 및
ML 훈련 컨테이너 내에 저장된 코드의 실행과 병렬로 제 2 ML 훈련 컨테이너 내에 저장된 제 2 코드를 제 1 가상 머신 인스턴스에 의해 실행하는 단계 - 상기 제 2 코드의 실행은 제 1 머신 인스턴스에 의해 제 2 모델 데이터를 생성하고, 모델 데이터와 제 2 모델 데이터의 조합은 훈련된 버전의 머신 러닝 모델의 특성을 규정함 - 를 더 포함하는, 컴퓨터 구현 방법.
조항 10. 조항 6의 컴퓨터 구현 방법에 있어서,
제 2 컴퓨팅 장치에 의해 호스팅되는 제 2 가상 머신 인스턴스에서 ML 스코어링 컨테이너를 초기화하는 단계 - 상기 ML 스코어링 컨테이너는 상기 컨테이너 이미지로부터 형성됨;
상기 ML 스코어링 컨테이너에 모델 데이터를 저장하는 단계;
상기 사용자 장치로부터 실행 요청을 수신하는 단계 - 상기 실행 요청은 입력 데이터를 포함함;
출력을 생성하도록 상기 입력 데이터를 사용하여 상기 ML 스코어링 컨테이너에 저장된 제 2 코드를 실행하는 단계; 및
상기 출력을 사용자 장치로 전송하는 단계를 더 포함하는, 컴퓨터 구현 방법.
조항 11. 조항 6의 컴퓨터 구현 방법에 있어서, 상기 훈련 요청이 하나 이상의 제 1 하이퍼파라미터 값을 더 포함하는, 컴퓨터 구현 방법.
조항 12. 조항 11의 컴퓨터 구현 방법에 있어서, 상기 ML 훈련 컨테이너 내에 저장된 코드를 제 1 가상 머신 인스턴스에 의해 실행하는 단계는 하나 이상의 제 1 하이퍼파라미터 값에 따라 상기 ML 훈련 컨테이너 내에 저장된 코드를 제 1 가상 머신 인스턴스에 의해 실행하는 단계를 더 포함하는, 컴퓨터 구현 방법.
조항 13. 조항 12의 컴퓨터 구현 방법에 있어서,
하나 이상의 제 2 하이퍼파라미터 값을 획득하는 단계; 및
하나 이상의 제 1 하이퍼파라미터 값이 아닌 하나 이상의 제 2 하이퍼파라미터 값에 따라 상기 ML 훈련 컨테이너 내에 저장된 코드를 제 1 가상 머신 인스턴스에 의해 실행하는 단계를 더 포함하는, 컴퓨터 구현 방법.
조항 14. 조항 6의 컴퓨터 구현 방법에 있어서, 상기 훈련 요청은 상기 제 1 컴퓨팅 장치의 그래픽 프로세싱 유닛(GPU) 인스턴스 유형, 상기 제 1 컴퓨팅 장치의 중앙 프로세싱 유닛(CPU) 인스턴스 유형, 상기 제 1 컴퓨팅 장치 상에 할당할 메모리의 양, 또는 상기 제 1 가상 머신 인스턴스의 유형 중 적어도 하나를 더 포함하는, 컴퓨터 구현 방법.
조항 15. 컴퓨터-실행가능 명령어를 저장하는 하나 이상의 비-일시적 컴퓨터 판독가능 저장 매체에 있어서, 상기 컴퓨터 실행가능 명령어는 하나 이상의 프로세서에 의해 수행될 경우, 상기 하나 이상의 프로세서로 하여금 적어도:
사용자 장치로부터 컨테이너 이미지의 표시자 및 훈련 데이터의 표시자를 획득하는 단계;
상기 컨테이너 이미지를 사용하여 제 1 가상 머신 인스턴스에서 훈련 컨테이너를 초기화하는 단계;
상기 훈련 컨테이너 내에 저장된 코드를 상기 제 1 가상 머신 인스턴스에 의해 실행하는 단계 - 상기 코드의 실행은 제 1 가상 머신 인스턴스에 의해 훈련 데이터를 사용하여 머신 러닝 모델을 훈련시키고 머신 러닝 모델의 특성을 나타내는 모델 데이터를 생성함 - 를 수행하게 하는, 비-일시적 컴퓨터 판독가능 저장 매체.
조항 16. 조항 15의 비-일시적 컴퓨터 판독가능 저장 매체에 있어서, 상기 컴퓨터-실행가능 명령어는 하나 이상의 프로세서로 하여금 적어도:
제 2 컨테이너 이미지의 표시자를 수신하는 단계;
제 1 가상 머신 인스턴스에 의해 코드의 실행을 중단하는 단계;
상기 제 1 가상 머신 인스턴스에서 제 2 훈련 컨테이너를 초기화하는 단계 - 상기 제 2 훈련 컨테이너는 상기 제 2 컨테이너 이미지를 사용하여 형성됨; 및
제 2 훈련 컨테이너 내에 저장된 제 2 코드를 제 1 가상 머신 인스턴스에 의해 실행하는 단계 - 제 2 코드의 실행은 제 1 머신 인스턴스에 의해 머신 러닝 모델을 재훈련시키고 제 2 모델 데이터를 생성함 - 를 더 수행하게 하는, 비-일시적 컴퓨터 판독가능 저장 매체.
조항 17. 조항 15의 비-일시적 컴퓨터 판독가능 저장 매체에 있어서, 상기 컴퓨터-실행가능 명령어는 하나 이상의 프로세서로 하여금 적어도:
상기 제 1 가상 머신 인스턴스에서 제 2 훈련 컨테이너를 초기화하는 단계 - 상기 제 2 훈련 컨테이너는 상기 컨테이너 이미지로부터 형성됨; 및
상기 훈련 컨테이너 내에 저장된 코드의 실행과 동시에 제 2 훈련 컨테이너 내에 저장된 제 2 코드를 상기 제 1 가상 머신 인스턴스에 의해 실행하는 단계 - 상기 제 2 코드의 실행은 제 1 머신 인스턴스에 의해 제 2 모델 데이터를 생성하고, 상기 모델 데이터와 제 2 모델 데이터의 조합은 훈련된 버전의 머신 러닝 모델의 특성을 규정함 - 를 더 수행하게 하는, 비-일시적 컴퓨터 판독가능 저장 매체.
조항 18. 조항 15의 비-일시적 컴퓨터 판독가능 저장 매체에 있어서, 상기 컴퓨터-실행가능 명령어는 하나 이상의 프로세서로 하여금 적어도:
제 2 컴퓨팅 장치에 의해 호스팅되는 제 2 가상 머신 인스턴스에서 스코어링 컨테이너를 초기화하는 단계 - 상기 스코어링 컨테이너는 상기 컨테이너 이미지로부터 형성됨; 및
상기 모델 데이터를 상기 스코어링 컨테이너에 저장하는 단계를 더 수행하게 하는, 비-일시적 컴퓨터 판독가능 저장 매체.
조항 19. 조항 18의 비-일시적 컴퓨터 판독가능 저장 매체에 있어서, 상기 컴퓨터-실행가능 명령어는 하나 이상의 프로세서로 하여금 적어도:
사용자 장치로부터 실행 요청을 수신하는 단계 - 상기 실행 요청은 입력 데이터를 포함함;
출력을 생성하도록 상기 입력 데이터를 사용하여 스코어링 컨테이너에 저장된 제 2 코드를 실행하는 단계; 및
상기 출력을 사용자 장치에 전송하는 단계를 더 수행하게 하는, 비-일시적 컴퓨터 판독가능 저장 매체.
조항 20. 조항 15의 비-일시적 컴퓨터 판독가능 저장 매체에 있어서, 상기 컴퓨터-실행가능 명령어는 하나 이상의 프로세서로 하여금 적어도:
하나 이상의 제 1 하이퍼파라미터 값을 획득하는 단계; 및
하나 이상의 제 1 하이퍼파라미터 값에 따라 상기 훈련 컨테이너 내에 저장된 코드를 제 1 가상 머신 인스턴스에 의해 실행하는 단계를 더 수행하게 하는, 비-일시적 컴퓨터 판독가능 저장 매체.

Claims (15)

  1. 시스템에 있어서,
    훈련 모델 데이터 저장소; 및
    제 1 가상 머신 인스턴스를 호스팅하기 위한 제 1 컴퓨팅 장치를 포함하며, 상기 제 1 컴퓨팅 장치는 컴퓨터-실행가능 명령어를 포함하고, 상기 컴퓨터-실행가능 명령어는 실행될 때 상기 제 1 컴퓨팅 장치로 하여금:
    사용자 장치로부터 훈련 요청을 획득하는 단계 - 상기 훈련 요청은 컨테이너 이미지의 표시자, 훈련 데이터의 표시자, 및 하나 이상의 제 1 하이퍼파라미터 값을 포함함;
    제 1 가상 머신 인스턴스에서 머신 러닝(ML) 훈련 컨테이너를 초기화하는 단계 - 상기 ML 훈련 컨테이너는 상기 컨테이너 이미지로부터 형성됨;
    하나 이상의 제 1 하이퍼파라미터 값에 따라 상기 ML 훈련 컨테이너 내에 저장된 코드를 제 1 가상 머신 인스턴스에 의해 실행하는 단계 - 상기 코드의 실행은 상기 제 1 가상 머신 인스턴스에 의해 훈련 데이터를 사용하여 머신 러닝 모델을 훈련시키고, 머신 러닝 모델의 특성을 나타내는 모델 데이터를 생성함; 및
    상기 모델 데이터를 훈련 모델 데이터 저장소에 저장하는 단계를 수행하게 하는, 시스템.
  2. 제 1 항에 있어서, 컴퓨터-실행가능 명령어는 실행될 때 상기 제 1 컴퓨팅 장치로 하여금:
    훈련되는 머신 러닝 모델을 수정하기 위한 수정 요청을 획득하는 단계 - 상기 수정 요청은 제 2 컨테이너 이미지의 표시자를 포함함;
    제 1 가상 머신 인스턴스에 의해 코드의 실행을 중단하는 단계;
    상기 ML 훈련 컨테이너를 제 2 컨테이너 이미지를 사용하여 형성된 제 2 ML 훈련 컨테이너로 대체하는 단계; 및
    제 1 가상 머신 인스턴스에 의해, 제 2 ML 훈련 컨테이너 내에 저장된 제 2 코드를 실행하는 단계 - 제 2 코드의 실행은 제 1 머신 인스턴스에 의해 머신 러닝 모델을 재훈련시키고 제 2 모델 데이터를 생성함 - 를 더 수행하게 하는, 시스템.
  3. 제 1 항에 있어서, 컴퓨터-실행가능 명령어는 실행될 때 상기 제 1 컴퓨팅 장치로 하여금:
    하나 이상의 제 2 하이퍼파라미터 값을 획득하는 단계; 및
    제 1 가상 머신 인스턴스에 의해, 하나 이상의 제 1 하이퍼파라미터 값 대신에 하나 이상의 제 2 하이퍼파라미터 값에 따라 상기 ML 훈련 컨테이너 내에 저장된 코드를 실행하는 단계를 더 수행하게 하는, 시스템.
  4. 제 1 항에 있어서, 컴퓨터-실행가능 명령어는 실행될 때 상기 제 1 컴퓨팅 장치로 하여금:
    평가 데이터를 획득하는 단계 - 상기 평가 데이터는 입력 데이터 및 알려진 결과를 포함함;
    모델 출력 데이터를 생성하도록 상기 입력 데이터를 입력으로 이용하여 모델 데이터에 의해 규정된 머신 러닝 모델을 실행하는 단계;
    상기 머신 러닝 모델의 품질 메트릭을 결정하기 위해 상기 모델 출력 데이터를 상기 알려진 결과와 비교하는 단계; 및
    품질 메트릭을 저장하는 단계를 더 수행하게 하는, 시스템.
  5. 제 1 항에 있어서, 컴퓨터-실행가능 명령어는 실행될 때 상기 제 1 컴퓨팅 장치로 하여금:
    상기 제 1 가상 머신 인스턴스에서 제 2 ML 훈련 컨테이너를 초기화하는 단계 - 상기 제 2 ML 훈련 컨테이너는 상기 컨테이너 이미지로부터 형성됨; 및
    상기 ML 훈련 컨테이너 내에 저장된 코드의 실행과 병렬로 하나 이상의 제 1 하이퍼파라미터 값에 따라 제 2 ML 훈련 컨테이너 내에 저장된 제 2 코드를 제 1 가상 머신 인스턴스에 의해 실행하는 단계를 더 수행하게 하는, 시스템.
  6. 제 5 항에 있어서,
    제 2 코드의 실행은 제 1 가상 머신 인스턴스에 의해 제 2 모델 데이터를 생성하고, 상기 모델 데이터 및 제 2 모델 데이터의 조합은 훈련된 버전의 머신 러닝 모델의 특성을 규정하는, 시스템.
  7. 컴퓨터 구현 방법에 있어서,
    네트워크를 통해 사용자 장치로부터 훈련 요청을 수신하는 단계 - 상기 훈련 요청은 컨테이너 이미지의 표시자 및 훈련 데이터의 표시자를 포함함;
    제 1 컴퓨팅 장치에 의해 호스팅되는 제 1 가상 머신 인스턴스에서 머신 러닝(ML) 훈련 컨테이너를 초기화하는 단계 - 상기 ML 훈련 컨테이너는 상기 컨테이너 이미지로부터 형성됨; 및
    상기 ML 훈련 컨테이너 내에 저장된 코드를 제 1 가상 머신 인스턴스에 의해 실행하는 단계 - 상기 코드의 실행은 제 1 가상 머신 인스턴스에 의해 훈련 데이터를 사용하여 머신 러닝 모델을 훈련시키고, 머신 러닝 모델의 특성을 나타내는 모델 데이터를 생성함 - 를 포함하는, 컴퓨터 구현 방법.
  8. 제 7 항에 있어서,
    훈련되는 머신 러닝 모델을 수정하기 위한 수정 요청을 수신하는 단계 - 상기 수정 요청은 제 2 컨테이너 이미지의 표시자를 포함함;
    제 1 가상 머신 인스턴스에 의해 코드의 실행을 중단하는 단계;
    상기 제 1 가상 머신 인스턴스에서 제 2 ML 훈련 컨테이너를 초기화하는 단계 - 상기 제 2 ML 훈련 컨테이너는 상기 제 2 컨테이너 이미지를 사용하여 형성됨; 및
    제 2 ML 훈련 컨테이너 내에 저장된 제 2 코드를 제 1 가상 머신 인스턴스에 의해 실행하는 단계 - 상기 제 2 코드의 실행은 제 1 머신 인스턴스에 의해 머신 러닝 모델을 재훈련시키고 제 2 모델 데이터를 생성함 - 를 더 포함하는, 컴퓨터 구현 방법.
  9. 제 7 항에 있어서, 상기 컴퓨터 구현 방법은:
    평가 데이터를 획득하는 단계 - 상기 평가 데이터는 입력 데이터 및 알려진 결과를 포함함;
    모델 출력 데이터를 생성하도록 상기 입력 데이터를 입력으로서 사용하여 상기 모델 데이터에 의해 규정된 머신 러닝 모델을 실행하는 단계; 및
    머신 러닝 모델의 품질 메트릭을 결정하기 위해 상기 모델 출력 데이터를 상기 알려진 결과와 비교하는 단계를 더 포함하는, 컴퓨터 구현 방법.
  10. 제 7 항에 있어서,
    상기 제 1 가상 머신 인스턴스에서 제 2 ML 훈련 컨테이너를 초기화하는 단계 - 상기 제 2 ML 훈련 컨테이너는 상기 컨테이너 이미지로부터 형성됨; 및
    상기 ML 훈련 컨테이너 내에 저장된 코드의 실행과 병렬로 제 2 ML 훈련 컨테이너 내에 저장된 제 2 코드를 제 1 가상 머신 인스턴스에 의해 실행하는 단계 - 상기 제 2 코드의 실행은 제 1 머신 인스턴스에 의해 제 2 모델 데이터를 생성하고, 상기 모델 데이터와 제 2 모델 데이터의 조합은 훈련된 버전의 머신 러닝 모델의 특성을 규정함 - 를 더 포함하는, 컴퓨터 구현 방법.
  11. 제 7 항에 있어서,
    제 2 컴퓨팅 장치에 의해 호스팅되는 제 2 가상 머신 인스턴스에서 ML 스코어링 컨테이너를 초기화하는 단계 - 상기 ML 스코어링 컨테이너는 상기 컨테이너 이미지로부터 형성됨;
    상기 ML 스코어링 컨테이너에 모델 데이터를 저장하는 단계;
    상기 사용자 장치로부터 실행 요청을 수신하는 단계 - 상기 실행 요청은 입력 데이터를 포함함;
    출력을 생성하도록 상기 입력 데이터를 사용하여 상기 ML 스코어링 컨테이너에 저장된 제 2 코드를 실행하는 단계; 및
    상기 출력을 사용자 장치로 전송하는 단계를 더 포함하는, 컴퓨터 구현 방법.
  12. 제 7 항에 있어서, 상기 훈련 요청이 하나 이상의 제 1 하이퍼파라미터 값을 더 포함하는, 컴퓨터 구현 방법.
  13. 제 12 항에 있어서, 상기 ML 훈련 컨테이너 내에 저장된 코드를 제 1 가상 머신 인스턴스에 의해 실행하는 단계는 하나 이상의 제 1 하이퍼파라미터 값에 따라 상기 ML 훈련 컨테이너 내에 저장된 코드를 제 1 가상 머신 인스턴스에 의해 실행하는 단계를 더 포함하는, 컴퓨터 구현 방법.
  14. 제 13 항에 있어서,
    하나 이상의 제 2 하이퍼파라미터 값을 획득하는 단계; 및
    하나 이상의 제 1 하이퍼파라미터 값이 아닌 하나 이상의 제 2 하이퍼파라미터 값에 따라 상기 ML 훈련 컨테이너 내에 저장된 코드를 제 1 가상 머신 인스턴스에 의해 실행하는 단계를 더 포함하는, 컴퓨터 구현 방법.
  15. 제 7 항에 있어서, 상기 훈련 요청은 상기 제 1 컴퓨팅 장치의 그래픽 프로세싱 유닛(GPU) 인스턴스 유형, 상기 제 1 컴퓨팅 장치의 중앙 프로세싱 유닛(CPU) 인스턴스 유형, 상기 제 1 컴퓨팅 장치 상에 할당할 메모리의 양, 또는 상기 제 1 가상 머신 인스턴스의 유형 중 적어도 하나를 더 포함하는, 컴퓨터 구현 방법.
KR1020207017954A 2017-11-22 2018-11-20 네트워크 액세스 가능한 머신 러닝 모델 훈련 및 호스팅 시스템 KR102428293B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/821,585 US11977958B2 (en) 2017-11-22 2017-11-22 Network-accessible machine learning model training and hosting system
US15/821,585 2017-11-22
PCT/US2018/062064 WO2019104063A1 (en) 2017-11-22 2018-11-20 Network-accessible machine learning model training and hosting system

Publications (2)

Publication Number Publication Date
KR20200087853A true KR20200087853A (ko) 2020-07-21
KR102428293B1 KR102428293B1 (ko) 2022-08-02

Family

ID=64661498

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207017954A KR102428293B1 (ko) 2017-11-22 2018-11-20 네트워크 액세스 가능한 머신 러닝 모델 훈련 및 호스팅 시스템

Country Status (7)

Country Link
US (1) US11977958B2 (ko)
EP (1) EP3714365A1 (ko)
JP (1) JP6997315B2 (ko)
KR (1) KR102428293B1 (ko)
CN (1) CN111448550B (ko)
AU (1) AU2018373029B2 (ko)
WO (1) WO2019104063A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102382317B1 (ko) * 2020-10-22 2022-04-04 국방과학연구소 사이버 훈련 도구 다운로드 시스템 및 방법
KR20220055627A (ko) * 2020-10-27 2022-05-04 한국과학기술정보연구원 인공 지능 학습을 위한 컴퓨팅 환경 구축 방법 및 장치
WO2023022405A1 (ko) * 2021-08-20 2023-02-23 (주)뤼이드 사전 학습을 위한 자동화 머신 러닝

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220188700A1 (en) * 2014-09-26 2022-06-16 Bombora, Inc. Distributed machine learning hyperparameter optimization
US11188392B2 (en) * 2017-09-20 2021-11-30 Algorithmia inc. Scheduling system for computational work on heterogeneous hardware
US11537439B1 (en) * 2017-11-22 2022-12-27 Amazon Technologies, Inc. Intelligent compute resource selection for machine learning training jobs
US11977958B2 (en) 2017-11-22 2024-05-07 Amazon Technologies, Inc. Network-accessible machine learning model training and hosting system
CN113762504A (zh) * 2017-11-29 2021-12-07 华为技术有限公司 模型训练系统、方法和存储介质
JP7047636B2 (ja) * 2018-06-29 2022-04-05 日本電信電話株式会社 通信システム及び通信方法
US20200160229A1 (en) * 2018-11-15 2020-05-21 Adobe Inc. Creating User Experiences with Behavioral Information and Machine Learning
CN111082961B (zh) * 2019-05-28 2023-01-20 中兴通讯股份有限公司 域间的数据交互方法及装置
CN112148348B (zh) * 2019-06-28 2023-10-20 杭州海康威视数字技术股份有限公司 任务处理方法、装置及存储介质
US20210065049A1 (en) * 2019-09-03 2021-03-04 Sap Se Automated data processing based on machine learning
WO2021107830A1 (en) * 2019-11-28 2021-06-03 Telefonaktiebolaget Lm Ericsson (Publ) Methods for determining application of models in multi-vendor networks
US11475328B2 (en) * 2020-03-13 2022-10-18 Cisco Technology, Inc. Decomposed machine learning model evaluation system
US11734614B1 (en) * 2020-03-26 2023-08-22 Amazon Technologies, Inc. Training service for an aggregated machine learning model
US11768945B2 (en) * 2020-04-07 2023-09-26 Allstate Insurance Company Machine learning system for determining a security vulnerability in computer software
US11829873B2 (en) * 2020-05-21 2023-11-28 Applied Materials, Inc. Predictive modeling of a manufacturing process using a set of trained inverted models
CN111782185B (zh) * 2020-06-30 2024-01-09 北京百度网讯科技有限公司 人工智能开发平台的管理方法及设备、介质
US20220058498A1 (en) * 2020-08-24 2022-02-24 Kyndryl, Inc. Intelligent backup and restoration of containerized environment
US11693878B2 (en) 2020-11-19 2023-07-04 International Business Machines Corporation Generation of a dataset in the format of a machine learning framework
US20220237505A1 (en) * 2021-01-27 2022-07-28 Salesforce.Com, Inc. Using container information to select containers for executing models
US20220237506A1 (en) * 2021-01-27 2022-07-28 Salesforce.Com, Inc. Using container and model information to select containers for executing models
KR20220152923A (ko) * 2021-05-10 2022-11-17 현대자동차주식회사 M2m 시스템에서 인공지능 서비스를 가능하게 하기 위한 방법 및 장치
EP4099164A1 (en) * 2021-06-02 2022-12-07 Amadeus S.A.S. Architecture to employ machine-learning model
US20230315678A1 (en) * 2022-03-29 2023-10-05 International Business Machines Corporation Storage driver for managing a multiple layer file system on the cloud
CN117076037A (zh) * 2022-05-09 2023-11-17 杭州海康威视数字技术股份有限公司 一种算法模型运行处理方法、装置及边缘智能设备
US20230412449A1 (en) * 2022-06-09 2023-12-21 Hewlett Packard Enterprise Development Lp Network alert detection utilizing trained edge classification models

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110127498A (ko) * 2010-05-19 2011-11-25 박배억 온라인 교육 시스템 및 이를 위한 통신 단말기
US20160092252A1 (en) * 2014-09-30 2016-03-31 Amazon Technologies, Inc. Threading as a service
US20170220949A1 (en) * 2016-01-29 2017-08-03 Yahoo! Inc. Method and system for distributed deep machine learning

Family Cites Families (102)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6321307B1 (en) 1997-12-31 2001-11-20 Compaq Computer Corporation Computer system and method employing speculative snooping for optimizing performance
US6263308B1 (en) 2000-03-20 2001-07-17 Microsoft Corporation Methods and apparatus for performing speech recognition using acoustic models which are improved through an interactive process
US7451207B2 (en) 2002-06-28 2008-11-11 Intel Corporation Predictive provisioning of media resources
US7958507B2 (en) 2005-06-16 2011-06-07 Hewlett-Packard Development Company, L.P. Job scheduling system and method
US8938463B1 (en) 2007-03-12 2015-01-20 Google Inc. Modifying search result ranking based on implicit user feedback and a model of presentation bias
CA2722300C (en) 2007-04-25 2016-06-28 Miovision Technologies Incorporated Method and system for analyzing multimedia content
US20080288622A1 (en) 2007-05-18 2008-11-20 Microsoft Corporation Managing Server Farms
US8521664B1 (en) 2010-05-14 2013-08-27 Google Inc. Predictive analytical model matching
US9099087B2 (en) 2010-09-03 2015-08-04 Canyon IP Holdings, LLC Methods and systems for obtaining language models for transcribing communications
US9152464B2 (en) 2010-09-03 2015-10-06 Ianywhere Solutions, Inc. Adjusting a server multiprogramming level based on collected throughput values
US8341573B2 (en) 2010-10-15 2012-12-25 Lsi Corporation Modeling approach for timing closure in hierarchical designs leveraging the separation of horizontal and vertical aspects of the design flow
US10228959B1 (en) 2011-06-02 2019-03-12 Google Llc Virtual network for virtual machine communication and migration
US8606728B1 (en) 2011-06-15 2013-12-10 Google Inc. Suggesting training examples
US9286103B2 (en) 2012-04-21 2016-03-15 International Business Machines Corporation Method and apparatus for providing a test network as an IP accessible cloud service
US9454733B1 (en) 2012-08-15 2016-09-27 Context Relevant, Inc. Training a machine learning model
US9363154B2 (en) 2012-09-26 2016-06-07 International Business Machines Corporaion Prediction-based provisioning planning for cloud environments
US8996372B1 (en) 2012-10-30 2015-03-31 Amazon Technologies, Inc. Using adaptation data with cloud-based speech recognition
US8978032B2 (en) 2012-11-15 2015-03-10 Bank Of America Corporation Host naming application programming interface
EP2962101A4 (en) 2013-02-28 2016-10-19 Progyny Inc APPARATUS, METHOD AND SYSTEM FOR CLASSIFYING HUMAN EMBRYONIC CELLS FROM IMAGES
US9235801B2 (en) 2013-03-15 2016-01-12 Citrix Systems, Inc. Managing computer server capacity
US9350747B2 (en) 2013-10-31 2016-05-24 Cyberpoint International Llc Methods and systems for malware analysis
WO2015085475A1 (zh) 2013-12-10 2015-06-18 华为技术有限公司 一种虚拟机资源的调度方法和装置
US20150170053A1 (en) 2013-12-13 2015-06-18 Microsoft Corporation Personalized machine learning models
EP3108365A1 (en) 2014-02-20 2016-12-28 Telefonaktiebolaget LM Ericsson (publ) Methods, apparatuses, and computer program products for deploying and managing software containers
US10235639B1 (en) 2014-03-14 2019-03-19 Directly Software, Inc. Al based CRM system
US20150332169A1 (en) 2014-05-15 2015-11-19 International Business Machines Corporation Introducing user trustworthiness in implicit feedback based search result ranking
US10558924B2 (en) 2014-05-23 2020-02-11 DataRobot, Inc. Systems for second-order predictive data analytics, and related methods and apparatus
GB2541625A (en) 2014-05-23 2017-02-22 Datarobot Systems and techniques for predictive data analytics
US9886670B2 (en) * 2014-06-30 2018-02-06 Amazon Technologies, Inc. Feature processing recipes for machine learning
US11100420B2 (en) 2014-06-30 2021-08-24 Amazon Technologies, Inc. Input processing for machine learning
EP3161733A1 (en) 2014-06-30 2017-05-03 Amazon Technologies, Inc. Interactive interfaces for machine learning model evaluations
JP6564023B2 (ja) * 2014-09-10 2019-08-21 アマゾン テクノロジーズ インコーポレイテッド コンピューティングインスタンスの起動時間
US9378731B2 (en) 2014-09-25 2016-06-28 Google Inc. Acoustic model training corpus selection
US20160148115A1 (en) 2014-11-26 2016-05-26 Microsoft Technology Licensing Easy deployment of machine learning models
US10104345B2 (en) 2014-12-16 2018-10-16 Sighthound, Inc. Data-enhanced video viewing system and methods for computer vision processing
US9667484B2 (en) 2015-01-07 2017-05-30 Verizon Patent And Licensing Inc. Delayed incremental and adaptive provisioning of wireless services
JP6349264B2 (ja) 2015-01-19 2018-06-27 株式会社日立製作所 計算資源割当て方法およびシステム
US20170017903A1 (en) 2015-02-11 2017-01-19 Skytree, Inc. User Interface for a Unified Data Science Platform Including Management of Models, Experiments, Data Sets, Projects, Actions, Reports and Features
US9378044B1 (en) 2015-03-28 2016-06-28 Vmware, Inc. Method and system that anticipates deleterious virtual-machine state changes within a virtualization layer
US9667656B2 (en) 2015-03-30 2017-05-30 Amazon Technologies, Inc. Networking flow logs for multi-tenant environments
EP3304322A4 (en) 2015-06-05 2018-11-07 Nutanix, Inc. Optimizable full-path encryption in a virtualization environment
US10255907B2 (en) 2015-06-07 2019-04-09 Apple Inc. Automatic accent detection using acoustic models
TWI591982B (zh) 2015-07-21 2017-07-11 黃能富 網路流量辨識方法及辨識系統
WO2017040852A1 (en) 2015-09-03 2017-03-09 Skytree, Inc. Modeling of geospatial location over time
US9772934B2 (en) 2015-09-14 2017-09-26 Palantir Technologies Inc. Pluggable fault detection tests for data pipelines
US10084658B2 (en) * 2015-09-28 2018-09-25 Cisco Technology, Inc. Enhanced cloud demand prediction for smart data centers
US10116521B2 (en) 2015-10-15 2018-10-30 Citrix Systems, Inc. Systems and methods for determining network configurations using historical real-time network metrics data
US10319374B2 (en) 2015-11-25 2019-06-11 Baidu USA, LLC Deployed end-to-end speech recognition
US11210595B2 (en) 2015-11-30 2021-12-28 Allegro Artificial Intelligence Ltd System and method for selective use of examples
US10904360B1 (en) 2015-12-02 2021-01-26 Zeta Global Corp. Method and apparatus for real-time personalization
US10269119B2 (en) 2015-12-07 2019-04-23 Avigilon Analytics Corporation System and method for background and foreground segmentation
US10387798B2 (en) 2015-12-16 2019-08-20 Accenture Global Solutions Limited Machine for development of analytical models
US10438132B2 (en) 2015-12-16 2019-10-08 Accenture Global Solutions Limited Machine for development and deployment of analytical models
US10002247B2 (en) * 2015-12-18 2018-06-19 Amazon Technologies, Inc. Software container registry container image deployment
US9910713B2 (en) 2015-12-21 2018-03-06 Amazon Technologies, Inc. Code execution request routing
US11715025B2 (en) * 2015-12-30 2023-08-01 Nutanix, Inc. Method for forecasting distributed resource utilization in a virtualization environment
US20170212829A1 (en) 2016-01-21 2017-07-27 American Software Safety Reliability Company Deep Learning Source Code Analyzer and Repairer
US20170213213A1 (en) 2016-01-25 2017-07-27 Sigue Corporation Enhanced authentication security applicable in an at least partially insecure network environment
US10671938B2 (en) 2016-01-27 2020-06-02 Bonsai AI, Inc. Artificial intelligence engine configured to work with a pedagogical programming language to train one or more trained artificial intelligence models
US11841789B2 (en) 2016-01-27 2023-12-12 Microsoft Technology Licensing, Llc Visual aids for debugging
US10095552B2 (en) 2016-02-05 2018-10-09 Sas Institute Inc. Automated transfer of objects among federated areas
US10230786B2 (en) 2016-02-26 2019-03-12 Red Hat, Inc. Hot deployment in a distributed cluster system
US20170270427A1 (en) 2016-03-17 2017-09-21 Microsoft Technology Licensing, Llc Multi-view machine learning
US10810491B1 (en) 2016-03-18 2020-10-20 Amazon Technologies, Inc. Real-time visualization of machine learning models
RU2632143C1 (ru) 2016-04-11 2017-10-02 Общество С Ограниченной Ответственностью "Яндекс" Способ обучения модуля ранжирования с использованием обучающей выборки с зашумленными ярлыками
US10503401B2 (en) 2016-05-16 2019-12-10 International Business Machines Corporation Opportunistic data analytics using memory bandwidth in disaggregated computing systems
US10712906B2 (en) 2016-05-25 2020-07-14 Lenovo (Singapore) Pte. Ltd. Systems and methods for presentation of elements on a display based on context
WO2017220752A1 (en) 2016-06-23 2017-12-28 Koninklijke Philips N.V. Method, apparatus and machine readable medium for measuring user availability or receptiveness to notifications
US9830315B1 (en) 2016-07-13 2017-11-28 Xerox Corporation Sequence-based structured prediction for semantic parsing
US20180053099A1 (en) 2016-08-16 2018-02-22 International Business Machines Corporation Automatic evaluation of a knowledge canvassing application
US11789724B2 (en) 2016-08-23 2023-10-17 International Business Machines Corporation Machine learning to facilitate incremental static program analysis
US11681943B2 (en) 2016-09-27 2023-06-20 Clarifai, Inc. Artificial intelligence development via user-selectable/connectable model representations
US10585693B2 (en) 2016-09-30 2020-03-10 Uchicago Argonne, Llc Systems and methods for metric driven deployments to cloud service providers
US10303388B1 (en) * 2016-09-30 2019-05-28 EMC IP Holding Company LLC Storage filtering using container images
US11188551B2 (en) 2016-11-04 2021-11-30 Microsoft Technology Licensing, Llc Multi-level data pagination
US20200026576A1 (en) 2017-01-19 2020-01-23 Nutanix, Inc. Determining a number of nodes required in a networked virtualization system based on increasing node density
CN106953862B (zh) * 2017-03-23 2020-09-25 全球能源互联网研究院有限公司 网络安全态势的感知方法和装置及感知模型训练方法和装置
US20180300653A1 (en) * 2017-04-18 2018-10-18 Distributed Systems, Inc. Distributed Machine Learning System
US10691514B2 (en) 2017-05-08 2020-06-23 Datapipe, Inc. System and method for integration, testing, deployment, orchestration, and management of applications
WO2018226790A1 (en) * 2017-06-09 2018-12-13 ORock Holdings, LLC Secure network-accessible system for executing remote applications
US20170330078A1 (en) 2017-07-18 2017-11-16 Ashok Reddy Method and system for automated model building
US10735273B2 (en) 2017-07-31 2020-08-04 Accenture Global Solutions Limited Using machine learning to make network management decisions
US11396825B2 (en) 2017-08-14 2022-07-26 General Electric Company Turbine diagnostic feature selection system
WO2019050952A1 (en) 2017-09-05 2019-03-14 Brandeis University SYSTEMS, METHODS, AND MEDIA FOR DISTRIBUTING DATABASE INTERROGATIONS THROUGH A PAYING VIRTUAL NETWORK
US10484392B2 (en) 2017-09-08 2019-11-19 Verizon Patent And Licensing Inc. Isolating containers on a host
US20190095794A1 (en) 2017-09-26 2019-03-28 Intel Corporation Methods and apparatus for training a neural network
US11720813B2 (en) 2017-09-29 2023-08-08 Oracle International Corporation Machine learning platform for dynamic model selection
US10846341B2 (en) 2017-10-13 2020-11-24 Kpmg Llp System and method for analysis of structured and unstructured data
US11544743B2 (en) 2017-10-16 2023-01-03 Adobe Inc. Digital content control based on shared machine learning properties
US10275710B1 (en) 2017-10-31 2019-04-30 KenSci Inc. Machine learning model repository
US11537868B2 (en) 2017-11-13 2022-12-27 Lyft, Inc. Generation and update of HD maps using data from heterogeneous sources
US10621019B1 (en) 2017-11-22 2020-04-14 Amazon Technologies, Inc. Using a client to manage remote machine learning jobs
US10490183B2 (en) 2017-11-22 2019-11-26 Amazon Technologies, Inc. Fully managed and continuously trained automatic speech recognition service
US11748610B1 (en) 2017-11-22 2023-09-05 Amazon Technologies, Inc. Building sequence to sequence (S2S) models using previously generated S2S models with similar use cases
US20200311617A1 (en) 2017-11-22 2020-10-01 Amazon Technologies, Inc. Packaging and deploying algorithms for flexible machine learning
US11537439B1 (en) 2017-11-22 2022-12-27 Amazon Technologies, Inc. Intelligent compute resource selection for machine learning training jobs
US10534965B2 (en) 2017-11-22 2020-01-14 Amazon Technologies, Inc. Analysis of video content
US11977958B2 (en) 2017-11-22 2024-05-07 Amazon Technologies, Inc. Network-accessible machine learning model training and hosting system
US10831519B2 (en) 2017-11-22 2020-11-10 Amazon Technologies, Inc. Packaging and deploying algorithms for flexible machine learning
US11257002B2 (en) 2017-11-22 2022-02-22 Amazon Technologies, Inc. Dynamic accuracy-based deployment and monitoring of machine learning models in provider networks
US10715549B2 (en) 2017-12-01 2020-07-14 KnowBe4, Inc. Systems and methods for AIDA based role models
CN114546391A (zh) 2020-11-25 2022-05-27 阿里巴巴集团控股有限公司 一种算子处理方法、装置、设备、系统及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110127498A (ko) * 2010-05-19 2011-11-25 박배억 온라인 교육 시스템 및 이를 위한 통신 단말기
US20160092252A1 (en) * 2014-09-30 2016-03-31 Amazon Technologies, Inc. Threading as a service
US20170220949A1 (en) * 2016-01-29 2017-08-03 Yahoo! Inc. Method and system for distributed deep machine learning

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102382317B1 (ko) * 2020-10-22 2022-04-04 국방과학연구소 사이버 훈련 도구 다운로드 시스템 및 방법
KR20220055627A (ko) * 2020-10-27 2022-05-04 한국과학기술정보연구원 인공 지능 학습을 위한 컴퓨팅 환경 구축 방법 및 장치
WO2023022405A1 (ko) * 2021-08-20 2023-02-23 (주)뤼이드 사전 학습을 위한 자동화 머신 러닝

Also Published As

Publication number Publication date
CN111448550B (zh) 2024-03-19
WO2019104063A9 (en) 2020-06-04
JP2021504799A (ja) 2021-02-15
AU2018373029A1 (en) 2020-05-28
EP3714365A1 (en) 2020-09-30
KR102428293B1 (ko) 2022-08-02
JP6997315B2 (ja) 2022-01-17
US11977958B2 (en) 2024-05-07
CN111448550A (zh) 2020-07-24
US20190156244A1 (en) 2019-05-23
AU2018373029B2 (en) 2021-08-05
WO2019104063A1 (en) 2019-05-31

Similar Documents

Publication Publication Date Title
KR102428293B1 (ko) 네트워크 액세스 가능한 머신 러닝 모델 훈련 및 호스팅 시스템
US11550614B2 (en) Packaging and deploying algorithms for flexible machine learning
US11948022B2 (en) Using a client to manage remote machine learning jobs
US20200311617A1 (en) Packaging and deploying algorithms for flexible machine learning
US11537439B1 (en) Intelligent compute resource selection for machine learning training jobs
CN113243005A (zh) 按需网络代码执行系统中的基于性能的硬件仿真
US10185558B2 (en) Language-independent program composition using containers
US11010215B2 (en) Recommending applications based on call requests between applications
US11449796B2 (en) Machine learning inference calls for database query processing
US11748610B1 (en) Building sequence to sequence (S2S) models using previously generated S2S models with similar use cases
US11373119B1 (en) Framework for building, orchestrating and deploying large-scale machine learning applications
US11593704B1 (en) Automatic determination of hyperparameters
US10599444B2 (en) Extensible input stack for processing input device data
CN115686500A (zh) 暴露基于支持的硬件的云api
US11341339B1 (en) Confidence calibration for natural-language understanding models that provides optimal interpretability
US11593675B1 (en) Machine learning-based program analysis using synthetically generated labeled data
JP7322345B2 (ja) シナリオプロファイルベースのパーティショニングおよびアプリケーションコードの管理
CN117296042A (zh) 用于超融合云基础架构的应用管理平台
US20190213015A1 (en) Extensible input stack for processing input device data
US10362082B2 (en) Method for streaming-based distributed media data processing
CN114138484A (zh) 资源分配方法、装置以及介质
US11966396B1 (en) Machine learning inference calls for database query processing

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