KR102063791B1 - 클라우드 기반의 인공지능 연산 서비스 방법 및 장치 - Google Patents

클라우드 기반의 인공지능 연산 서비스 방법 및 장치 Download PDF

Info

Publication number
KR102063791B1
KR102063791B1 KR1020180077996A KR20180077996A KR102063791B1 KR 102063791 B1 KR102063791 B1 KR 102063791B1 KR 1020180077996 A KR1020180077996 A KR 1020180077996A KR 20180077996 A KR20180077996 A KR 20180077996A KR 102063791 B1 KR102063791 B1 KR 102063791B1
Authority
KR
South Korea
Prior art keywords
instance
matrix
performance
characteristic
cloud
Prior art date
Application number
KR1020180077996A
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 KR1020180077996A priority Critical patent/KR102063791B1/ko
Application granted granted Critical
Publication of KR102063791B1 publication Critical patent/KR102063791B1/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/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명은 클라우드 기반의 인공지능 연산 서비스 방법 및 장치에 관한 것으로, (a) 인스턴스 특성을 검출하는 단계, (b) 상기 인스턴스 특성과 분산 행렬 특성을 포함하는 인스턴스 연산 맵을 생성하는 단계, (c) 분산 행렬 곱셈에 관계된 인스턴스들 각각에 대해 상기 인스턴스 연산 맵을 적용하여 제1 및 제2 행렬들을 분할한 제1 및 제2 블록 기반 파티션들을 곱셈 연산하는 인스턴스 성능을 예측하는 단계 및 (d) 특정 인스턴스의 성능이 기준 이하인 경우에는 상기 특정 인스턴스를 다른 인스턴스로 대체하는 단계를 포함한다. 따라서, 본 발명은 클라우드 인스턴스의 다양성을 고려하여 행렬연산에 대한 성능을 예측할 수 있다.

Description

클라우드 기반의 인공지능 연산 서비스 방법 및 장치{CLOUD-BASED AI COMPUTING SERVICE METHOD AND APPARATUS}
본 발명은 클라우드 기반의 인공지능 연산 서비스 기술에 관한 것으로, 보다 상세하게는 클라우드 인스턴스의 다양성을 고려하여 행렬연산에 대한 성능을 예측할 수 있는 클라우드 기반의 인공지능 연산 서비스 방법 및 장치에 관한 것이다.
최근 하드웨어 및 소프트웨어 시스템 기술의 향상은 과거에 불가능했던 대규모 데이터 집합의 처리를 가능하게 만들었다. 시스템들은 증가하는 빅데이터 분석 어플리케이션들의 수를 수용하기 위하여 운영 작업들을 통해 오버헤드를 줄임으로써 확장성과 내결함성을 제공하는 클라우드 컴퓨팅 환경을 점점 더 많이 적용하고 있다. 클라우드 컴퓨팅 서비스는 다양한 인스턴스에 고유한 하드웨어 구성을 제공하고, 많은 빅데이터 처리 소프트웨어 플랫폼은 이러한 리소스를 스케일 아웃 방식으로 사용할 수 있다.
특히, 클라우드 컴퓨팅 서비스는 연산 능력, 메모리, 디스크, 네트워크 및 하드웨어 가속기 등에서 서로 다른 성능을 보유한 다양한 인스턴스를 제공할 수 있다. 인스턴스 사용 가격은 해당 인스턴스의 구성에 따라 달라질 수 있고, 행렬 곱셈에 대한 연산시간은 동일한 행렬 간의 곱셈 연산이라고 하더라도 인스턴스 타입이 보유한 하드웨어적인 특성에 따라 서로 달라질 수 있다. 따라서, 클라우드 컴퓨팅 서비스에 있어서 올바른 인스턴스의 선택은 연산 시간과 가격을 동시에 고려하는 경우 매우 중요한 문제에 해당할 수 있다.
한국 등록특허공보 제10-0909510(2009.07.20)호
본 발명의 일 실시예는 클라우드 인스턴스의 다양성을 고려하여 행렬연산에 대한 성능을 예측할 수 있는 클라우드 기반의 인공지능 연산 서비스 방법 및 장치를 제공하고자 한다.
본 발명의 일 실시예는 인스턴스 별로 가변적으로 할당된 분산 행렬의 분할 형태에 관한 정보를 포함하는 인스턴스 연산 맵을 생성하여 행렬 연산 성능을 예측할 수 있는 클라우드 기반의 인공지능 연산 서비스 방법 및 장치를 제공하고자 한다.
본 발명의 일 실시예는 다양한 형태의 서브 블록 기반 파티션 집합에 분산 행렬 특성을 적용하고 앙상블 러닝을 통한 분산 행렬 연산의 성능을 예측하는 모델을 통해 최적의 클라우드 컴퓨팅 서비스를 제공할 수 있는 클라우드 기반의 인공지능 연산 서비스 방법 및 장치를 제공하고자 한다.
실시예들 중에서, 컴퓨터 수행 가능한 클라우드 기반의 인공지능 연산 서비스 방법은 (a) 인스턴스 특성을 검출하는 단계, (b) 상기 인스턴스 특성과 분산 행렬 특성을 포함하는 인스턴스 연산 맵을 생성하는 단계, (c) 분산 행렬 곱셈에 관계된 인스턴스들 각각에 대해 상기 인스턴스 연산 맵을 적용하여 제1 및 제2 행렬들을 분할한 제1 및 제2 블록 기반 파티션들을 곱셈 연산하는 인스턴스 성능을 예측하는 단계 및 (d) 특정 인스턴스의 성능이 기준 이하인 경우에는 상기 특정 인스턴스를 다른 인스턴스로 대체하는 단계를 포함한다.
상기 (a) 단계는 분산 컴퓨팅 시스템에서 동작되는 클라우드 서버를 인스턴스로서 결정하고 상기 인스턴스의 CPU(Central Processing Unit), GPU(Graphics Processing Unit), TPU(Tensor Processing Unit) 중 적어도 하나를 포함하는 컴퓨팅 연산 자원을 메트릭화(metricizing) 하는 단계를 포함할 수 있다.
상기 (b) 단계는 상기 인스턴스 특성을 인스턴스의 컴퓨팅 연산 자원으로 정의하는 단계 및 상기 인스턴스 특성을 기초로 클라우드 컴퓨팅 시스템에 있는 인스턴스들 간의 분산 행렬의 분할 형태를 결정하여 상기 분산 행렬 특성을 결정하는 단계를 포함할 수 있다.
상기 (b) 단계는 상기 클라우드 컴퓨팅 시스템에 있는 인스턴스들 별로 가변적으로 할당된 분산 행렬의 분할 형태를 결정하여 상기 인스턴스 연산 맵을 생성하는 단계를 더 포함할 수 있다.
상기 (c) 단계는 (c1) 상기 인스턴스들 각각에 대해, 블록 기반 파티션 집합에 대한 프로파일링을 수행하여 서브 블록 기반 파티션 집합을 생성하는 단계 및 (c2) 상기 서브 블록 기반 파티션 집합에 대해 상기 분산 행렬 특성을 적용하여 분산 행렬 연산 예측 모델을 생성하여 상기 블록 기반 파티션 집합에 대한 행렬 연산성능을 예측하는 단계를 포함할 수 있다.
상기 (c2) 단계는 적어도 행렬 연산 횟수, 결과 행렬 크기 및 좌우측 행렬 크기들의 합계를 상기 분산 행렬 특성으로 결정하는 단계를 포함할 수 있다.
상기 (c2) 단계는 상기 분산 행렬 특성에 따라 상기 서브 블록 기반 파티션 집합에 있는 분산 행렬에 관해 행렬 특성 데이터를 생성하는 단계 및 상기 행렬 특성 데이터에 관해 복수의 제1 러너들(first learners)을 결합하여 제2 러너(second learner)를 생성하는 앙상블 러닝(ensemble learning)을 수행하는 단계를 더 포함할 수 있다.
상기 (c2) 단계는 그라디언트 부스팅 리그레서(Gradient Boosting Regressor) 기반의 앙상블 러닝을 통해 상기 복수의 제1 러너들을 상기 제2 러너로 결합하는 단계를 더 포함할 수 있다.
상기 (c2) 단계는 상기 제2 러너에 관한 베이지안 최적화(Bayesian Optimization)를 통해 하이퍼 파라미터(Hyper Parameter) 검색을 수행하여 상기 분산 행렬 예측 모델을 생성하는 단계를 더 포함할 수 있다.
실시예들 중에서, 클라우드 기반의 인공지능 연산 서비스 장치는 인스턴스 특성을 검출하는 인스턴스 특성 검출부, 상기 인스턴스 특성과 분산 행렬 특성을 포함하는 인스턴스 연산 맵을 생성하는 인스턴스 연산 맵 생성부, 분산 행렬 곱셈에 관계된 인스턴스들 각각에 대해 상기 인스턴스 연산 맵을 적용하여 제1 및 제2 행렬들을 분할한 제1 및 제2 블록 기반 파티션들을 곱셈 연산하는 인스턴스 성능을 예측하는 인스턴스 성능 예측부 및 특정 인스턴스의 성능이 기준 이하인 경우에는 상기 특정 인스턴스를 다른 인스턴스로 대체하는 인스턴스 대체부를 포함한다.
개시된 기술은 다음의 효과를 가질 수 있다. 다만, 특정 실시예가 다음의 효과를 전부 포함하여야 한다거나 다음의 효과만을 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
본 발명의 일 실시예에 따른 클라우드 기반의 인공지능 연산 서비스 방법 및 장치는 인스턴스 별로 가변적으로 할당된 분산 행렬의 분할 형태에 관한 정보를 포함하는 인스턴스 연산 맵을 생성하여 행렬 연산 성능을 예측할 수 있다.
본 발명의 일 실시예에 따른 클라우드 기반의 인공지능 연산 서비스 방법 및 장치는 다양한 형태의 서브 블록 기반 파티션 집합에 분산 행렬 특성을 적용하고 앙상블 러닝을 통한 분산 행렬 연산의 성능을 예측하는 모델을 통해 최적의 클라우드 컴퓨팅 서비스를 제공할 수 있다.
도 1은 본 발명의 일 실시예에 따른 클라우드 기반의 인공지능 연산 서비스 시스템을 설명하는 도면이다.
도 2는 도 1에 있는 인공지능 연산 서비스 장치를 나타내는 블록도이다.
도 3은 도 1에 있는 인공지능 연산 서비스 장치에서 수행되는 인공지능 연산 서비스 제공 과정을 설명하는 순서도이다.
도 4는 도 1에 있는 인공지능 연산 서비스 장치에서 생성되는 분산 행렬 연산 예측 모델을 설명하는 예시도이다.
도 5는 도 1에 있는 인공지능 연산 서비스 장치에서 블록 기반의 분산 행렬 곱셈이 수행되는 과정을 설명하는 예시도이다.
본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
한편, 본 출원에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.
"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.
본 발명은 컴퓨터가 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있고, 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.
행렬 곱셈(Matrix Multiplication)에 대한 성능 예측은 클라우드 컴퓨팅 환경에서 행렬 곱셈에 소요되는 시간을 산출함으로써 수행될 수 있다. 즉, 임의의 행렬들 간의 곱셈에 대한 성능을 예측하는 방법은 성능 예측 모델을 생성하고 성능 예측 모델을 이용하여 행렬 곱셈에 대한 소요 시간을 예측하는 것에 해당할 수 있다. 성능 예측 모델은 행렬 곱셈의 연산 시간에 가장 큰 영향을 미치는 행렬 특성을 입력 데이터로 하고 해당 행렬 특성을 가진 행렬들 간의 행렬 곱셈에 소요되는 예상 시간을 출력 데이터로 하는 학습 데이터들을 기계 학습하여 생성된 학습 결과에 해당할 수 있다.
행렬 곱셈 성능 예측은 핵심적인 구성이라고 할 수 있는 성능 예측 모델 구축을 통해 수행될 수 있고, 학습 데이터 집합 생성 단계, 특징 추출 단계 및 모델링 작업 단계로 구성될 수 있으며, 각 단계별로 수행되는 동작은 다음과 같다.
1) 학습 데이터 집합 생성 단계
학습 데이터 집합 생성 단계에서 행렬 곱셈 성능 예측은 성능 예측 모델을 구축하기 위해 다양한 형상과 크기의 행렬 곱셈에 관한 프로파일링을 수행할 수 있다. 보다 구체적으로, 행렬 곱셈 성능 예측은 학습에 사용될 학습 데이터를 생성하기 위하여 행렬 곱셈의 다양한 유형들에 속하는 행렬 곱셈 작업을 생성할 수 있다. 행렬 곱셈 성능 예측은 모든 형상과 크기의 행렬들을 처리하기 위해 행렬 곱셈 작업에 대해 좌우측 행렬들 간의 행렬 곱셈 연산에 소요되는 예상 연산시간을 포함하는 프로파일을 수집하여 학습 프로파일링을 수행할 수 있다.
행렬 곱셈 작업은 좌우측 행렬의 형상과 크기에 따라 정사각형 행렬들 간의 곱셈(square X square), 길고 얇은 직사각형 행렬과 짧고 넓은 직사각형 행렬 간의 곱셈(long-thin X short-wide) 및 짧고 넓은 직사각형 행렬과 길고 얇은 직사각형 행렬 간의 곱셈(short-wide X long-thin)으로 크게 분류될 수 있다. 또한, 행렬 곱셈 성능 예측은 행렬 곱셈에 소요되는 연산시간 측정에 있어서 JSON 형식의 다양한 실행 지표들을 제공하는 Apache Spark web UI REST API를 사용할 수 있으며, 반드시 이에 한정되지 않고, 다양한 분산 인공지능 연산 프로그램을 사용할 수 있다.
행렬 곱셈 성능 예측은 서로 다른 용량을 가진 다양한 클라우드 컴퓨팅 인스턴스(instance)들에 대해 최적의 성능을 얻기 위해 GPU 장치를 사용하는 인스턴스에서는 행렬 곱셈을 수행할 때 NVBLAS 라이브러리(Library)를 사용하고 CPU 장치를 사용하는 인스턴스의 경우 OpenBLAS를 사용할 수 있다. 또한, 행렬 곱셈 성능 예측은 Spark가 하드웨어 최적화 선형 대수 라이브러리와 상호 작용할 수 있도록 netlib-java library를 사용할 수 있다. 행렬 곱셈 성능 예측은 반드시 이에 한정되지 않고 다양한 분산 인공지능 연산 프로그램을 사용할 수 있다.
2) 특징 추출 단계
분산 컴퓨팅 환경에서의 행렬 곱셈의 오버헤드(overhead)는 다양한 자원들에 영향을 받을 수 있다. 행렬 곱셈 성능 측정은 다양한 오버헤드를 처리하기 위해 입력 행렬 블록들의 차원(dimension)과 곱셈(product)을 사용할 수 있고, 예를 들어, lr, lc, rc, lr*rc, lr*lc, lc*rc, lr*lc+lc*rc 및 lr*lc*rc 등을 행렬 곱셈 성능을 모델링하기 위한 행렬 특성들로서 사용할 수 있다. 여기에서, lr*rc는 출력 행렬의 크기를 나타내고, lr*lr 및 lc*rc는 각각 네트워크 오버헤드 및 입출력 디스크 오버헤드에 영향을 미치는 좌우측 행렬 블록의 크기를 나타낼 수 있다. lr*lc*rc는 행렬 곱셈에서 수행되는 곱셈 연산의 총 수를 나타낼 수 있다.
3) 모델링 작업 단계
모델링 작업 단계에서, 행렬 곱셈 성능 예측은 다양한 행렬들을 곱하는 성능을 예측할 수 있는 성능 예측 모델을 구축할 수 있다. 모델링 작업 단계는 모델 구축 단계 및 하이퍼 파라미터(hyper-parameter) 검색 단계로 구성될 수 있다. 행렬 곱셈 성능 예측은 모델 구축 단계를 위해 GB(Gradient Boost) regressor를 사용할 수 있고, GB 방법(method)에 대한 최적의 파라미터들을 찾기 위해 베이지안 최적화(Bayesian Optimization)를 사용할 수 있다.
도 1은 본 발명의 일 실시예에 따른 클라우드 기반의 인공지능 연산 서비스 시스템을 설명하는 도면이다.
도 1을 참조하면, 클라우드 기반의 인공지능 연산 서비스 시스템(100)은 사용자 단말(110), 인공지능 연산 서비스 장치(130) 및 데이터베이스(150)를 포함할 수 있다.
사용자 단말(110)은 인공지능 연산 서비스 장치(130)에 분산 행렬의 연산 서비스와 같은 인공지능 연산 서비스를 요청할 수 있는 컴퓨팅 장치에 해당할 수 있다. 사용자 단말(110)은 스마트폰, 노트북 또는 컴퓨터로 구현될 수 있으며, 반드시 이에 한정되지 않고, 태블릿 PC 등 다양한 디바이스로도 구현될 수 있다. 사용자 단말(110)은 인공지능 연산 서비스 장치(130)와 네트워크를 통해 연결될 수 있고, 복수의 사용자 단말(110)들은 인공지능 연산 서비스 장치(130)와 동시에 연결될 수 있다.
인공지능 연산 서비스 장치(130)는 인공지능을 구현할 때 필수적인 분산 행렬 연산에 대한 연산시간을 인스턴스 특성을 고려하여 예측하고 최적의 클라우드 컴퓨팅 서비스를 제공할 수 있는 컴퓨터 또는 프로그램에 해당하는 서버로 구현될 수 있다. 인공지능 연산 서비스 장치(130)는 분산 컴퓨팅 기반으로 동작되는 적어도 하나의 클라우드 서버로 구현될 수 있다. 인공지능 연산 서비스 장치(130)는 사용자 단말(110)과 유선 네트워크 또는 블루투스, WiFi 등과 같은 무선 네트워크로 연결될 수 있고, 유선 또는 무선 네트워크를 통해 사용자 단말(110)과 통신을 수행할 수 있다.
인공지능 연산 서비스 장치(130)는 데이터베이스(150)와 연동하여 분산 행렬 연산과 관련된 적어도 하나의 클라우드 서버에 관한 CPU(Central Processing Unit), GPU(Graphics Processing Unit), TPU(Tensor Processing Unit) 및 메모리를 포함하는 자원 정보를 저장할 수 있다. 한편, 인공지능 연산 서비스 장치(130)는 도 1과 달리, 데이터베이스(150)를 내부에 포함하여 구현될 수 있다.
데이터베이스(150)는 인공지능 연산 서비스 장치(130)가 사용자 단말(110)로부터 수신한 인공지능 연산 서비스 요청에 따라 분산 행렬 곱셈에 대한 인스턴스 성능을 예측하여 최적의 인스턴스를 제공하기 위해 사용하는 다양한 정보들을 저장할 수 있다. 예를 들어, 데이터베이스(150)는 분산 컴퓨팅 시스템에서 동작하는 클라우드 서버에 해당하는 인스턴스 정보를 저장할 수 있고, 분산 행렬 곱셈을 수행하기 위한 분산 행렬 특성 정보를 저장할 수 있으며, 반드시 이에 한정되지 않고, 사용자 최적의 클라우드 컴퓨팅 서비스 환경을 제공하기 위하여 인공지능 연산 서비스를 제공하는 과정에서 다양한 형태로 수집 또는 가공된 정보들을 저장할 수 있다.
도 2는 도 1에 있는 인공지능 연산 서비스 장치를 나타내는 블록도이다.
도 2를 참조하면, 인공지능 연산 서비스 장치(130)는 인스턴스 특성 검출부(210), 인스턴스 연산 맵 생성부(230), 인스턴스 성능 예측부(250), 인스턴스 대체부(270) 및 제어부(290)를 포함할 수 있다.
인스턴스 특성 검출부(210)는 인스턴스 특성을 검출할 수 있다. 인스턴스(instance)는 클라우드 컴퓨팅 서비스에서 제공하는 서비스 단위로서 사용자에게 제공되는 가상 클라우드 서버에 해당할 수 있고, 메모리, 디스크 및 네트워크 등을 포함하여 구성될 수 있다. 인스턴스 특성은 인스턴스를 구성하는 메모리, 디스크 및 네트워크 등에 대한 하드웨어적인 구성 정보에 해당할 수 있다. 인스턴스 특성 검출부(210)는 분산 행렬 연산이 수행될 것으로 예상되는 인스턴스로부터 해당 인스턴스를 구성하는 구성요소들에 대한 특성 정보들을 검출할 수 있다.
일 실시예에서, 인스턴스 특성 검출부(210)는 분산 컴퓨팅 시스템에서 동작되는 클라우드 서버를 인스턴스로서 결정하고 인스턴스의 CPU(Central Processing Unit), GPU(Graphics Processing Unit), TPU(Tensor Processing Unit) 중 적어도 하나를 포함하는 컴퓨팅 연산 자원을 메트릭화(metricizing)할 수 있다. 인스턴스 특성 검출부(210)는 다양한 인스턴스를 정의할 수 있고 인스턴스를 구성하는 다양한 컴퓨팅 연산 자원들에 대해 각각의 특징을 정량화된 수치로서 결정할 수 있다. 컴퓨팅 연산 자원은 대표적으로 CPU, GPU 및 TPU 등의 연산장치를 포함할 수 있으며, 반드시 이에 한정되지 않고, 컴퓨팅 연산이 가능하도록 다양한 하드웨어들을 포함할 수 있다.
인스턴스 연산 맵 생성부(230)는 인스턴스 특성과 분산 행렬 특성을 포함하는 인스턴스 연산 맵을 생성할 수 있다. 인스턴스 연산 맵(map)은 각기 다른 인스턴스의 하드웨어적 특성과 행렬 곱셈 연산에 사용되는 좌측 행렬 및 우측 행렬의 분산 행렬 특성을 고려하여 분산 행렬 연산을 수행하는 인스턴스별 분산 행렬의 할당에 관한 정보에 해당할 수 있다. 인스턴스 연산 맵 생성부(230)는 인스턴스 특성 검출부(210)에 의해 검출된 인스턴스 특성을 기초로 인스턴스 특성 벡터를 생성할 수 있고, 인스턴스 특성 벡터는 인스턴스 특성을 벡터를 활용하여 표현한 하드웨어 특성 벡터에 해당할 수 있다.
인스턴스 연산 맵 생성부(230)는 인스턴스 특성 벡터에 연산하고자 하는 좌우측 행렬들의 크기로부터 추출된 분산 행렬 특성을 추가하여 인스턴스 연산 맵을 생성할 수 있다. 분산 행렬 특성은 다양한 크기와 형태를 가진 임의의 행렬들 간의 행렬 곱셈 연산에 소요되는 시간에 영향을 주는 적어도 하나의 요인에 해당할 수 있다.
일 실시예에서, 인스턴스 연산 맵 생성부(230)는 인스턴스 특성을 인스턴스의 컴퓨팅 연산 자원으로 정의하고, 인스턴스 특성을 기초로 클라우드 컴퓨팅 시스템에 있는 인스턴스들 간의 분산 행렬의 분할 형태를 결정하여 분산 행렬 특성을 결정할 수 있다. 인스턴스 연산 맵 생성부(230)는 인스턴스를 구성하는 구성요소들에 대한 특성 정보를 인스턴스의 컴퓨팅 연산 자원으로 정의할 수 있다.
인스턴스 연산 맵 생성부(230)는 인스턴스 특성을 기초로 각 인스턴스의 성능을 결정할 수 있고 인스턴스 성능을 기초로 인스턴스 별로 수행할 분산 행렬의 분할 형태를 결정할 수 있다. 예를 들어, 인스턴스 연산 맵 생성부(230)는 인스턴스의 성능이 좋을수록 해당 인스턴스에 상대적으로 큰 분산 행렬을 할당할 수 있고, 각 인스턴스 별로 성능에 따라 차등되게 분산 행렬이 할당될 수 있다. 인스턴스 연산 맵 생성부(230)는 각 인스턴스에 분할된 분산 행렬의 크기를 기초로 분산 행렬 특성을 결정할 수 있다.
일 실시예에서, 인스턴스 연산 맵 생성부(230)는 클라우드 컴퓨팅 시스템에 있는 인스턴스들 별로 가변적으로 할당된 분산 행렬의 분할 형태를 결정하여 인스턴스 연산 맵을 생성할 수 있다. 분산 행렬의 분할 형태는 해당 인스턴스에 할당된 분산 행렬에 포함된 좌우측 행렬의 형상 및 크기에 관한 정보와 원래의 행렬에서 분할된 좌우측 행렬의 원래 행렬에서의 위치에 관한 정보를 포함할 수 있다. 인스턴스 연산 맵은 각 인스턴스별로 할당된 분산 행렬 정보 및 각 인스턴스에서 연산된 결과를 통합하여 결과 행렬을 생성하기 위한 정보를 포함하여 생성될 수 있다.
인스턴스 성능 예측부(250)는 분산 행렬 곱셈에 관계된 인스턴스들 각각에 대해 인스턴스 연산 맵을 적용하여 제1 및 제2 행렬들을 분할한 제1 및 제2 블록 기반 파티션들을 곱셈 연산하는 인스턴스 성능을 예측할 수 있다. 인스턴스 성능 예측부(250)는 인스턴스 연산 맵에 포함된 분산 행렬 정보를 기초로 제1 및 제2 행렬들을 분할하여 제1 및 제2 블록 기반 파티션들을 생성할 수 있고, 각 인스턴스 별로 제1 및 제2 블록 기반 파티션들을 할당하여 각 인스턴스에서 수행되는 분산 행렬 연산에 대해 소요되는 시간을 해당 인스턴스 성능으로서 예측할 수 있다. 즉, 인스턴스 성능 예측부(250)는 분산 행렬 연산에 소요되는 시간이 짧을수록 해당 연산을 수행한 인스턴스의 성능이 좋은 것으로 결정할 수 있다.
일 실시예에서, 인스턴스 성능 예측부(250)는 인스턴스들 각각에 대해, 블록 기반 파티션 집합에 대한 프로파일링을 수행하여 서브 블록 기반 파티션 집합을 생성할 수 있다. 블록 기반 파티션 집합은 전체 블록 기반 파티션에 대한 행렬 곱셈의 모집단에 해당할 수 있고, 서브 블록 기반 파티션 집합은 임의적으로 결정된 다양한 형태의 블록 기반 파티션에 대한 행렬 곱셈의 모집단에 해당할 수 있다.
인스턴스 성능 예측부(250)는 블록 기반 파티션 집합에 대한 랜덤 생플링을 통해 임의의 서브 블록 기반 파티션 집합을 생성할 수 있다. 인스턴스 성능 예측부(250)는 서로 다른 다양한 인스턴스에 대해 분산 행렬 곱셈의 소요시간을 예측하기 위해 다양한 형태의 임의의 행렬 곱셈들을 서브 블록 기반 파티션 집합으로 결정할 수 있다. 예를 들어, 인스턴스 성능 예측부(250)는 square x square, long-thin x short-wide 및 short-wide x long-thin으로 크게 분류될 수 있는 다양한 형태의 분산 행렬 곱셈을 서브 블록 기반 파티션 집합으로 프로파일링 할 수 있다.
일 실시예에서, 인스턴스 성능 예측부(250)는 서브 블록 기반 파티션 집합에 대해 분산 행렬 특성을 적용하여 분산 행렬 연산 예측 모델을 생성하여 블록 기반 파티션 집합에 대한 행렬 연산성능을 예측할 수 있다. 분산 행렬 연산 예측 모델은 다양한 클라우드 컴퓨팅 자원 구성을 통해 다양한 형태를 가지는 분산 행렬의 곱셈의 소요 시간을 예측하는 모델에 해당할 수 있다. 인스턴스 성능 예측부(250)는 분산 행렬 곱셈의 특징을 나타내기 위해 분산 행렬 연산 예측 모델을 생성하기 위한 8가지의 분산 행렬 특성을 사용할 수 있다.
일 실시예에서, 인스턴스 성능 예측부(250)는 좌측 행렬의 행 크기(lr), 우측 행렬의 열 크기(rc), 좌측 행렬의 열 크기(lc) 또는 우측 행렬의 행 크기(rr), 좌측 행렬의 전체 크기(lr*lc), 우측 행렬의 전체 크기(lc*rc), 좌우측 행렬 크기들의 합계(lr*lc+lc*rc), 결과 행렬의 크기(lr*rc) 및 행렬 연산 횟수(lr*lc*rc)를 8가지의 분산 행렬 특성으로 결정할 수 있다. 여기에서, 좌우측 행렬 크기들의 합계(lr*lc+lc*rc)는 분산 행렬 곱셈을 수행하는 각각의 인스턴스에서 일어나는 네트워크 오버헤드 및 I/O디스크 오버헤드를 나타낼 수 있고, 행렬 연산 횟수(lr*lc*rc)는 각각의 인스턴스가 분산 행렬 곱셈을 수행할 때 생기는 오버헤드의 크기를 나타낼 수 있다.
일 실시예에서, 인스턴스 성능 예측부(250)는 적어도 행렬 연산 횟수(lr*lc*rc), 결과 행렬 크기(lr*rc) 및 좌우측 행렬 크기들의 합계(lr*lc+lc*rc)를 분산 행렬 특성으로 결정할 수 있다. 보다 구체적으로, 인스턴스 성능 예측부(250)는 서브 블록 기반 파티션 집합에 대한 분산 행렬 연산 예측 모델의 정확성에 가장 큰 영향을 주는 중요 요인에 해당하는 행렬 연산횟수(lr*lc*rc), 결과 행렬 크기(lr*rc) 및 좌우측 행렬 크기들의 합계(lr*lc+lc*rc)를 분산 행렬 특성으로 결정하고 서브 블록 기반 파티션 집합에 적용하여 분산 행렬 연산 예측 모델을 생성할 수 있다.
일 실시예에서, 인스턴스 성능 예측부(250)는 분산 행렬 특성에 따라 서브 블록 기반 파티션 집합에 있는 분산 행렬에 관해 행렬 특성 데이터를 생성할 수 있다. 여기에서, 행렬 특성 데이터는 서브 블록 기반 파티션 집합에 적용되는 복수의 분산 행렬 특성들 중에서 결정된 적어도 하나의 분산 행렬 특성을 포함하는 메타 데이터에 해당할 수 있다.
일 실시예에서, 인스턴스 성능 예측부(250)는 행렬 특성 데이터에 관해 복수의 제1 러너들(first learners)을 결합하여 제2 러너(second learner)를 생성하는 앙상블 러닝(ensemble learning)을 수행할 수 있다. 여기에서, 제1 러너들(first learners) 및 제2 러너(second learner)는 각각 위크 러너들(weak learners) 및 스트롱 러너(strong learner)에 해당할 수 있다. 위크 러너들(weak learners)은 스트롱 러너에 비해 낮은 예측 정확도를 가지는 학습(예측)자들의 집합에 해당할 수 있고, 스트롱 러너(strong learner)는 상대적으로 높은 예측 정확도를 가지는 학습자에 해당할 수 있다.
보다 구체적으로, 인스턴스 성능 예측부(250)는 각각 적어도 하나의 분산 행렬 특성에 해당하는 적어도 하나의 행렬 특성 데이터를 가지고 복수의 위크 러너들을 결정하고 앙상블 러닝을 수행하여 스트롱 러너를 생성할 수 있다. 여기에서, 앙상블 러닝은 여러 머신 러닝 알고리즘들을 각각 사용하는 경우에 비해 더 좋은 예측 성능을 얻기 위해, 다수의 기계학습 알고리즘을 사용하고 그 결과들을 조합하는 머신 러닝 기법에 해당할 수 있다.
앙상블 러닝은 배깅(bagging)과 부스팅(boosting)의 두가지 방법을 통해 수행될 수 있다. 배깅(bagging)은 bootstrap aggregating의 약자로, 부트스트랩(bootstrap)을 통해 조금씩 다른 훈련 데이터에 대해 훈련된 복수의 위크 러너들을 결합(aggregating)시키는 방법이다. 여기에서, 부트스트랩은 주어진 훈련 데이터에서 중복을 허용하여 원래 데이터와 같은 크기의 데이터를 만드는 과정을 의미할 수 있다. 즉, 배깅은 데이터 샘플링을 통해 여러 개의 메타 데이터를 생성하고, 각 메타 데이터를 이용해 여러 개의 위크 러너들을 만들며 최종적으로 각 위크 러너의 예측 결과를 평균하여 스트롱 러너로 결정할 수 있다. 예를 들어, 배깅은 랜덤 포레스트(random forest) 기반의 앙상블 러닝에서 사용될 수 있다.
부스팅은 메타 데이터로 여러 개의 위크 러너들을 순차적으로 생성하는데, 두번째 위크 러너는 첫번째 위크 러너가 잘못 예측한 데이터에 가중치를 좀 더 주어서(boosting) 학습을 하고 최종적으로 마지막에 생성된 위크 러너를 스트롱 러너로 결정할 수 있다. 예를 들어, 부스팅은 그라디언트 부스팅 리그레서(gradient boosting regressor) 기반의 앙상블 러닝에서 사용될 수 있다. 결과적으로, 인스턴스 성능 예측부(250)는 배깅과 부스팅을 포함하는 앙상블 러닝을 수행하여 제1 러너들을 결합하여 제2 러너를 생성할 수 있다.
인스턴스 성능 예측부(250)는 제2 러너를 통해 분산 행렬 연산 예측 모델을 생성할 수 있다. 일 실시예에서, 인스턴스 성능 예측부(250)는 랜덤 포레스트(random forest)기반의 앙상블 러닝을 통해 제1 러너들을 제2 러너로 결합할 수 있다. 랜덤 포레스트는 분류, 회기 분석 등에 사용되는 앙상블 러닝의 일종으로, 훈련 과정에서 무작위로 구성한 다수의 결정 트리로부터 분류 또는 평균 예측을 출력할 수 있다. 랜덤 포레스트는 크게 다수의 결정 트리를 구성하는 학습 단계와 입력 벡터가 들어왔을 때, 분류하거나 예측을 수행하는 테스트 단계로 구성될 수 있고 배깅을 사용하여 임의성을 증진시킬 수 있다. 랜덤 포레스트는 특별한 매개변수의 설정 없이도 정확한 예측이 가능한 장점이 있다.
일 실시예에서, 인스턴스 성능 예측부(250)는 그라디언트 부스팅 리그레서(Gradient Boosting Regressor) 기반의 앙상블 러닝을 통해 복수의 제1 러너들을 제2 러너로 결합할 수 있다. 여기에서, 그라디언트 부스팅 리그레서(GB regressor)는 분류 및 회귀에 대한 유연한 통계 학습 접근법에 해당하고 여러 개의 결정 트리를 묶어 강력한 모델을 만드는 앙상블 러닝 기법의 하나에 해당할 수 있다. 그라디언트 부스팅 리그레서는 랜덤 포레스트와 마찬가지로 예측 모델을 구성하는 기본 요소로 결정 트리를 사용할 수 있다.
보다 구체적으로, 그라디언트 부스팅 리그레서는 주로 행렬 특성 간의 복잡하고 비선형적인 상호 작용을 모델링하기 위해 점진적으로 간단한 선형 관계에만 일반적으로 적용 가능한 여러 개의 위크 러너들을 결합할 수 있다. 그라디언트 부스팅 리그레서는 스테이지 방식의 패턴으로 만들어지는데 각 단계에서 새로운 위크 러너 모델이 이전 모델의 오류를 수정한다.
즉, 그라디언트 부스팅 리그레서는 이전 결정 트리의 오차를 보완하는 방식으로 순차적인 결정 트리를 만들 수 있다. 그라디언트 부스팅 리그레서는 다수의 위크 러너들을 통해 스트롱 러너를 생성하여 과적합(overfitting)에 강하다는 장점이 있다. 결과적으로, 인스턴스 성능 예측부(250)는 분산 행렬 특성에 관한 데이터를 가지고 그라디언트 부스팅 리그레서 기반의 앙상블 러닝을 사용하여 분산 행렬 연산 예측 모델을 생성할 수 있다.
일 실시예에서, 인스턴스 성능 예측부(250)는 제2 러너에 관한 베이지안 최적화(Bayesian Optimization)를 통해 하이퍼 파라미터(Hyper Parameter) 검색을 수행하여 분산 행렬 예측 모델을 생성할 수 있다. 여기에서, 베이지안 최적화(Bayesian Optimization)는 모델 품질을 향상하거나 불확실성을 감소시킬 가능성이 있는 파라미터들을 검색하고 확률적 프로세스를 사용하여 완전한 성능 측정치를 추정하는 접근법에 해당할 수 있다. 예를 들어, 베이지안 최적화는 목적 함수를 예측할 때, 이전 실험에서 사용 가능한 모든 정보를 사용하고(prior) 새로운 실험이 수행된 후 목적 함수 모델을 수렴치(convergence)까지 업데이트 (posterior)한다.
보다 구체적으로, 인스턴스 성능 예측부(250)는 분산 행렬 연산 예측 모델에 대해 베이지안 최적화를 수행하여 행렬 연산 성능의 예측 정확도를 높일 수 있다. 다른 일 실시예에서, 인스턴스 성능 예측부(250)는 랜덤 워크(random walk), 그리드 기반 검색 또는 통계적 추론(statistical inference)를 통해 설정된 하이퍼 파라미터를 사용하여 분산 행렬 예측 모델의 예측 정확도를 높일 수 있다.
인스턴스 대체부(270)는 특정 인스턴스의 성능이 기준 이하인 경우에는 특정 인스턴스를 다른 인스턴스로 대체할 수 있다. 인스턴스 성능은 특정 인스턴스에서 수행되는 분산 행렬 곱셈에 대한 소요시간을 기초로 판단할 수 있고, 인스턴스 대체부(270)는 인스턴스 성능 예측부(250)에 의해 예측된 시간이 특정 시간 이하인 경우 해당 인스턴스를 다른 인스턴스로 대체할 수 있다. 다른 예에서, 인스턴스 대체부(270)는 기준 이하의 성능이 예측된 특정 인스턴스를 대체된 다른 인스턴스로 변경하도록 인스턴스 연산 맵을 갱신할 수 있고, 인공지능 연산 서비스 장치(130)는 인스턴스 연산 맵을 기초로 인공지능 연산 서비스를 제공할 수 있다.
제어부(290)는 인공지능 연산 서비스 장치(130)의 전체적인 동작을 제어하고, 인스턴스 특성 검출부(210), 인스턴스 연산 맵 생성부(230), 인스턴스 성능 예측부(250) 및 인스턴스 대체부(270) 간의 제어 흐름 또는 데이터 흐름을 관리할 수 있다.
도 3은 도 1에 있는 인공지능 연산 서비스 장치에서 수행되는 인공지능 연산 서비스 제공 과정을 설명하는 순서도이다.
도 3을 참조하면, 인공지능 연산 서비스 장치(130)는 인스턴스 특성 검출부(210)를 통해 인스턴스 특성을 검출할 수 있다(단계 S310). 인공지능 연산 서비스 장치(130)는 인스턴스 연산 맵 생성부(230)를 통해 인스턴스 특성과 분산 행렬 특성을 포함하는 인스턴스 연산 맵을 생성할 수 있다(단계 S330).
인공지능 연산 서비스 장치(130)는 인스턴스 성능 예측부(250)를 통해 분산 행렬 곱셈에 관계된 인스턴스들 각각에 대해 인스턴스 연산 맵을 적용하여 제1 및 제2 행렬들을 분할한 제1 및 제2 블록 기반 파티션들을 곱셈 연산하는 인스턴스 성능을 예측할 수 있다(단계 S350). 인공지능 연산 서비스 장치(130)는 인스턴스 대체부(270)를 통해 특정 인스턴스의 성능이 기준 이하인 경우에는 특정 인스턴스를 다른 인스턴스로 대체할 수 있다(단계 S370).
도 4는 도 1에 있는 인공지능 연산 서비스 장치에서 생성되는 분산 행렬 연산 예측 모델을 설명하는 예시도이다.
도 4를 참조하면, 인공지능 연산 서비스 장치(130)는 인스턴스 성능 예측부(250)를 통해 블록 기반 파티션 집합으로부터 다양한 모양과 크기를 가지는 서브 블록 기반 파티션 집합을 생성할 수 있다(Model data generation). 인공지능 연산 서비스 장치(130)는 인스턴스 성능 예측부(250)를 통해 서브 블록 기반 파티션 집합에 대해 분산 행렬 특성을 적용할 수 있다(Feature extraction). 보다 구체적으로, 인공지능 연산 서비스 장치(130)는 인스턴스 성능 예측부(250)를 통해 적어도 행렬 연산 횟수(lr*lc*rc), 결과 행렬 크기(lr*rc) 및 좌우측 행렬 크기들의 합계(lr*lc+lc*rc)를 분산 행렬 특성으로 결정할 수 있다.
인공지능 연산 서비스 장치(130)는 인스턴스 성능 예측부(250)를 통해 분산 행렬 연산 예측 모델을 생성할 수 있다(Modeling). 보다 구체적으로, 인공지능 연산 서비스 장치(130)는 인스턴스 성능 예측부(250)를 통해 분산 행렬 특성에 따라 서브 블록 기반 파티션 집합에 있는 분산 행렬에 관해 행렬 특성 데이터를 생성하고 복수의 제1 러너들(first learners)을 결합하여 제2 러너(second learner)를 생성하는 앙상블 러닝(ensemble learning)을 수행할 수 있다. 인스턴스 성능 예측부(250)는 제2 러너에 관한 베이지안 최적화를 통해 하이퍼 파라미터 검색을 수행하여 분산 행렬 예측 모델을 생성할 수 있다.
도 5는 도 1에 있는 인공지능 연산 서비스 장치에서 블록 기반의 분산 행렬 곱셈이 수행되는 과정을 설명하는 예시도이다.
도 5를 참조하면, 인공지능 연산 서비스 장치(130)는 분산 행렬 곱셈을 4개의 클라우드 인스턴스에서 수행할 수 있다. 인스턴스 성능 예측부(250)는 분산 행렬 곱셈이 수행되는 과정에서 각각 단계마다 비중이 큰 오버헤드를 다르게 결정할 수 있다. 예를 들어, cogroup 단계에서 네트워크 오버헤드의 비중이 크고 element-wise addition 단계에서 행렬 곱셈의 오버헤드의 비중이 클 수 있다. 일 실시예에서, 인스턴스 성능 예측부(250)는 각각의 오버헤드를 고려하여 분산 행렬 곱셈의 소요 시간을 프로파일링 할 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 클라우드 기반의 인공지능 연산 서비스 시스템
110: 사용자 단말 130: 인공지능 연산 서비스 장치
150: 데이터베이스
210: 인스턴스 특성 검출부 230: 인스턴스 연산 맵 생성부
250: 인스턴스 성능 예측부 270: 인스턴스 대체부
290: 제어부

Claims (10)

  1. (a) 인스턴스(instance) 특성을 검출하는 단계;
    (b) 상기 인스턴스 특성과 분산 행렬 특성을 포함하는 인스턴스 연산 맵을 생성하는 단계;
    (c) 분산 행렬 곱셈에 관계된 인스턴스들 각각에 대해 상기 인스턴스 연산 맵을 적용하여 제1 및 제2 행렬들을 분할한 제1 및 제2 블록 기반 파티션들을 곱셈 연산하는 인스턴스 성능을 예측하는 단계; 및
    (d) 특정 인스턴스의 성능이 기준 이하인 경우에는 상기 특정 인스턴스를 다른 인스턴스로 대체하는 단계를 포함하되,
    상기 (c) 단계는 (c1) 상기 인스턴스들 각각에 대해, 블록 기반 파티션 집합에 대한 프로파일링을 수행하여 서브 블록 기반 파티션 집합을 생성하는 단계 및 (c2) 상기 서브 블록 기반 파티션 집합에 대해 상기 분산 행렬 특성을 적용하여 분산 행렬 연산 예측 모델을 생성하여 상기 블록 기반 파티션 집합에 대한 행렬 연산성능을 예측하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 수행 가능한 클라우드 기반의 인공지능 연산 서비스 방법.
  2. 제1항에 있어서, 상기 (a) 단계는
    분산 컴퓨팅 시스템에서 동작되는 클라우드 서버를 인스턴스로서 결정하고 상기 인스턴스의 CPU(Central Processing Unit), GPU(Graphics Processing Unit), TPU(Tensor Processing Unit) 중 적어도 하나를 포함하는 컴퓨팅 연산 자원을 메트릭화(metricizing) 하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 수행 가능한 클라우드 기반의 인공지능 연산 서비스 방법.
  3. 제1항에 있어서, 상기 (b) 단계는
    상기 인스턴스 특성을 인스턴스의 컴퓨팅 연산 자원으로 정의하는 단계; 및
    상기 인스턴스 특성을 기초로 클라우드 컴퓨팅 시스템에 있는 인스턴스들 간의 분산 행렬의 분할 형태를 결정하여 상기 분산 행렬 특성을 결정하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 수행 가능한 클라우드 기반의 인공지능 연산 서비스 방법.
  4. 제3항에 있어서, 상기 (b) 단계는
    상기 클라우드 컴퓨팅 시스템에 있는 인스턴스들 별로 가변적으로 할당된 분산 행렬의 분할 형태를 결정하여 상기 인스턴스 연산 맵을 생성하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 수행 가능한 클라우드 기반의 인공지능 연산 서비스 방법.
  5. 삭제
  6. 제1항에 있어서, 상기 (c2) 단계는
    적어도 행렬 연산 횟수, 결과 행렬 크기 및 좌우측 행렬 크기들의 합계를 상기 분산 행렬 특성으로 결정하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 수행 가능한 클라우드 기반의 인공지능 연산 서비스 방법.
  7. 제1항에 있어서, 상기 (c2) 단계는
    상기 분산 행렬 특성에 따라 상기 서브 블록 기반 파티션 집합에 있는 분산 행렬에 관해 행렬 특성 데이터를 생성하는 단계; 및
    상기 행렬 특성 데이터에 관해 복수의 제1 러너들(first learners)을 결합하여 제2 러너(second learner)를 생성하는 앙상블 러닝(ensemble learning)을 수행하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 수행 가능한 클라우드 기반의 인공지능 연산 서비스 방법.
  8. 제7항에 있어서, 상기 (c2) 단계는
    그라디언트 부스팅 리그레서(Gradient Boosting Regressor) 기반의 앙상블 러닝을 통해 상기 복수의 제1 러너들을 상기 제2 러너로 결합하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 수행 가능한 클라우드 기반의 인공지능 연산 서비스 방법.
  9. 제7항에 있어서, 상기 (c2) 단계는
    상기 제2 러너에 관한 베이지안 최적화(Bayesian Optimization)를 통해 하이퍼 파라미터(Hyper Parameter) 검색을 수행하여 상기 분산 행렬 연산 예측 모델을 생성하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 수행 가능한 클라우드 기반의 인공지능 연산 서비스 방법.
  10. 인스턴스 특성을 검출하는 인스턴스 특성 검출부;
    상기 인스턴스 특성과 분산 행렬 특성을 포함하는 인스턴스 연산 맵을 생성하는 인스턴스 연산 맵 생성부;
    분산 행렬 곱셈에 관계된 인스턴스들 각각에 대해 상기 인스턴스 연산 맵을 적용하여 제1 및 제2 행렬들을 분할한 제1 및 제2 블록 기반 파티션들을 곱셈 연산하는 인스턴스 성능을 예측하는 인스턴스 성능 예측부; 및
    특정 인스턴스의 성능이 기준 이하인 경우에는 상기 특정 인스턴스를 다른 인스턴스로 대체하는 인스턴스 대체부를 포함하되,
    상기 인스턴스 성능 예측부는 상기 인스턴스들 각각에 대해, 블록 기반 파티션 집합에 대한 프로파일링을 수행하여 서브 블록 기반 파티션 집합을 생성하고, 상기 서브 블록 기반 파티션 집합에 대해 상기 분산 행렬 특성을 적용하여 분산 행렬 연산 예측 모델을 생성하여 상기 블록 기반 파티션 집합에 대한 행렬 연산성능을 예측하는 것을 특징으로 하는 클라우드 기반의 인공지능 연산 서비스 장치.
KR1020180077996A 2018-07-05 2018-07-05 클라우드 기반의 인공지능 연산 서비스 방법 및 장치 KR102063791B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180077996A KR102063791B1 (ko) 2018-07-05 2018-07-05 클라우드 기반의 인공지능 연산 서비스 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180077996A KR102063791B1 (ko) 2018-07-05 2018-07-05 클라우드 기반의 인공지능 연산 서비스 방법 및 장치

Publications (1)

Publication Number Publication Date
KR102063791B1 true KR102063791B1 (ko) 2020-01-08

Family

ID=69153892

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180077996A KR102063791B1 (ko) 2018-07-05 2018-07-05 클라우드 기반의 인공지능 연산 서비스 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102063791B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220029004A (ko) * 2020-09-01 2022-03-08 국민대학교산학협력단 클라우드 기반 딥러닝 작업의 수행시간 예측 시스템 및 방법
KR20220096531A (ko) * 2020-12-31 2022-07-07 국민대학교산학협력단 빅데이터 분석을 위한 인공지능 기반의 클라우드 최적화 장치 및 방법
WO2023287108A1 (ko) * 2021-07-12 2023-01-19 주식회사 에너자이 딥러닝 모델의 연산 실행 속도 간접 추정 방법 및 시스템
KR20230087318A (ko) * 2021-12-09 2023-06-16 국민대학교산학협력단 인공지능 기반 클라우드 서비스 장치 및 방법

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100909510B1 (ko) 2006-05-08 2009-07-27 엔비디아 코포레이션 감소된 대역폭 요건들을 갖는 행렬 곱셈
KR20130073449A (ko) * 2011-12-23 2013-07-03 한국전자통신연구원 상호 의존 관계가 있는 컴포넌트 분배 및 관리 방법
KR101361080B1 (ko) * 2012-12-27 2014-02-13 네이버 주식회사 행렬간 연산 시스템, 방법 및 컴퓨터 판독 가능한 기록 매체
KR20160041856A (ko) * 2013-05-30 2016-04-18 프레지던트 앤드 펠로우즈 오브 하바드 칼리지 베이지안 최적화를 수행하기 위한 시스템 및 방법
KR20170078012A (ko) * 2015-12-29 2017-07-07 전자부품연구원 클라우드 자원 모니터링 및 예측을 통한 자원 할당 최적화 방법 및 시스템
KR20180022537A (ko) * 2016-08-23 2018-03-06 주식회사 스탠다임 기계 학습 앙상블 모델을 이용한 조합 약물의 효과 예측 방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100909510B1 (ko) 2006-05-08 2009-07-27 엔비디아 코포레이션 감소된 대역폭 요건들을 갖는 행렬 곱셈
KR20130073449A (ko) * 2011-12-23 2013-07-03 한국전자통신연구원 상호 의존 관계가 있는 컴포넌트 분배 및 관리 방법
KR101361080B1 (ko) * 2012-12-27 2014-02-13 네이버 주식회사 행렬간 연산 시스템, 방법 및 컴퓨터 판독 가능한 기록 매체
KR20160041856A (ko) * 2013-05-30 2016-04-18 프레지던트 앤드 펠로우즈 오브 하바드 칼리지 베이지안 최적화를 수행하기 위한 시스템 및 방법
KR20170078012A (ko) * 2015-12-29 2017-07-07 전자부품연구원 클라우드 자원 모니터링 및 예측을 통한 자원 할당 최적화 방법 및 시스템
KR20180022537A (ko) * 2016-08-23 2018-03-06 주식회사 스탠다임 기계 학습 앙상블 모델을 이용한 조합 약물의 효과 예측 방법

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220029004A (ko) * 2020-09-01 2022-03-08 국민대학교산학협력단 클라우드 기반 딥러닝 작업의 수행시간 예측 시스템 및 방법
WO2022050477A1 (ko) * 2020-09-01 2022-03-10 국민대학교산학협력단 클라우드 기반 딥러닝 작업의 수행시간 예측 시스템 및 방법
KR102504939B1 (ko) * 2020-09-01 2023-03-02 국민대학교산학협력단 클라우드 기반 딥러닝 작업의 수행시간 예측 시스템 및 방법
KR20220096531A (ko) * 2020-12-31 2022-07-07 국민대학교산학협력단 빅데이터 분석을 위한 인공지능 기반의 클라우드 최적화 장치 및 방법
KR102452206B1 (ko) 2020-12-31 2022-10-07 국민대학교산학협력단 빅데이터 분석을 위한 인공지능 기반의 클라우드 최적화 장치 및 방법
WO2023287108A1 (ko) * 2021-07-12 2023-01-19 주식회사 에너자이 딥러닝 모델의 연산 실행 속도 간접 추정 방법 및 시스템
KR20230087318A (ko) * 2021-12-09 2023-06-16 국민대학교산학협력단 인공지능 기반 클라우드 서비스 장치 및 방법
KR102613366B1 (ko) 2021-12-09 2023-12-13 국민대학교산학협력단 인공지능 기반 클라우드 서비스 장치 및 방법

Similar Documents

Publication Publication Date Title
Shapi et al. Energy consumption prediction by using machine learning for smart building: Case study in Malaysia
KR102063791B1 (ko) 클라우드 기반의 인공지능 연산 서비스 방법 및 장치
Marques et al. Fitting multiple models to multiple data sets
Priore et al. A comparison of machine-learning algorithms for dynamic scheduling of flexible manufacturing systems
Picheny Multiobjective optimization using Gaussian process emulators via stepwise uncertainty reduction
Edwards et al. Constructing large scale surrogate models from big data and artificial intelligence
Balaprakash et al. Active-learning-based surrogate models for empirical performance tuning
CN109074284A (zh) 用于按比例增减资源的方法和系统、以及计算机程序产品
US20180006900A1 (en) Predictive anomaly detection in communication systems
US20200387565A1 (en) Computational model optimizations
KR102142943B1 (ko) 클라우드 기반의 인공지능 연산 서비스 방법 및 이를 수행하는 장치
KR102224714B1 (ko) 신규 물질 탐색 시스템 및 그 탐색 방법
CN109165081B (zh) 基于机器学习的Web应用自适应资源配置方法
WO2018144534A1 (en) Hardware-based machine learning acceleration
US10824956B1 (en) System and method for price estimation of reports before execution in analytics
KR102452206B1 (ko) 빅데이터 분석을 위한 인공지능 기반의 클라우드 최적화 장치 및 방법
Nicholson et al. Optimal network flow: A predictive analytics perspective on the fixed-charge network flow problem
Wessing et al. Comparing asynchronous and synchronous parallelization of the SMS-EMOA
Samreen et al. Transferable knowledge for low-cost decision making in cloud environments
Perri et al. Towards a learning-based performance modeling for accelerating deep neural networks
Sukhija et al. Portfolio-based selection of robust dynamic loop scheduling algorithms using machine learning
KR102158051B1 (ko) 컴퓨터 수행 가능한 클라우드 기반의 인공지능 연산 서비스 방법
Liu et al. An orthogonal predictive model-based dynamic multi-objective optimization algorithm
Skobtsov et al. Intelligent telemetry data analysis of small satellites
CN112711912A (zh) 基于云计算和机器学习算法的空气质量监测与告警方法、系统、装置和介质

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant