KR102268817B1 - 분산 클라우드 환경에서의 기계 학습 성능 평가 방법 및 장치 - Google Patents

분산 클라우드 환경에서의 기계 학습 성능 평가 방법 및 장치 Download PDF

Info

Publication number
KR102268817B1
KR102268817B1 KR1020190171223A KR20190171223A KR102268817B1 KR 102268817 B1 KR102268817 B1 KR 102268817B1 KR 1020190171223 A KR1020190171223 A KR 1020190171223A KR 20190171223 A KR20190171223 A KR 20190171223A KR 102268817 B1 KR102268817 B1 KR 102268817B1
Authority
KR
South Korea
Prior art keywords
matrix
determinant
rows
exclusive
generate
Prior art date
Application number
KR1020190171223A
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 KR1020190171223A priority Critical patent/KR102268817B1/ko
Application granted granted Critical
Publication of KR102268817B1 publication Critical patent/KR102268817B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5009Determining service level performance parameters or violations of service level contracts, e.g. violations of agreed response time or mean time between failures [MTBF]
    • H04L41/5038
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5061Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the interaction between service providers and their network customers, e.g. customer relationship management
    • H04L41/5067Customer-centric QoS measurements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • H04L43/55Testing of service level quality, e.g. simulating service usage
    • 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/45591Monitoring or debugging support

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Environmental & Geological Engineering (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 개시의 일 양태에 따르면, 기계 학습 성능 평가 방법으로, 복수의 배타적 MM(Matrix Multiplication) 태스크 시나리오를 생성하는 단계와, 복수의 배타적 MM 태스크 시나리오를 행렬(matrix) X로 표현하는 단계와, 행렬 X의 행 중 n 개를 선택하여, 선택된 n 개의 행을 포함하는 제1 행렬을 생성하는 단계와, 행렬 X의 행 중 n+1 개를 선택하여, 선택된 n+1 개의 행을 포함하는 제2 행렬을 생성하는 단계와, 제1 행렬과 제2 행렬의 정보량을 비교하는 단계, 및 비교 결과에 기초하여, 제3 행렬의 생성 여부를 판단하는 단계를 포함하는 방법이 개시된다.

Description

분산 클라우드 환경에서의 기계 학습 성능 평가 방법 및 장치{METHOD AND DEVICE FOR EVALUATING MACHINE LEARNING PERFORMANCE IN A DISTRIBUTED CLOUD ENVIRIONMENT}
본 개시(disclosure)의 기술적 사상은 분산 클라우드 환경에서의 기계 학습 성능 평가 방법 및 장치에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 개시의 실시예들에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.
최근 클라우드 컴퓨팅 서비스 관련 기술이 급격하게 발전되면서 높은 수준의 컴퓨팅 연산 능력을 필요로 하는 다양한 분야에서 클라우드 서비스들이 널리 활용되고 있다. 또한, 클라우드 서비스 제공업체들도 고객 확보를 위해 경쟁적으로 새로운 서비스를 출시하고 있다.
현재 가장 보편적으로 사용되고 있는 IaaS (Infrastructure as a Service)의 경우 클라우드 제공 업체들이 다양한 컴퓨팅 하드웨어로부터 데이터센터를 구축 후 가상화 기술을 이용하여 사용자에게 컴퓨팅 자원을 제공해준다. IaaS 서비스는 여러 종류의 하드웨어로부터 다양한 구성(configuration)을 가진 자원을 사용자에게 제공해주게 되며, 클라우드 서비스 제공업체에 따라 100 종이 넘는 인스턴스 타입을 제공하는 경우도 있다.
이와 같이 다양한 업체들로부터 제공되는 수많은 종류의 클라우드 인스턴스들 중 자신의 애플리케이션 태스크를 위한 최적의 인스턴스를 찾아내는 것은 비전문적인 사용자들에게 있어서 매우 어려운 일이다. 이러한 문제를 해결하기 위하여, 클라우드 환경에서 최적의 인스턴스를 추천하는 알고리즘이 제시되었으나, 이러한 인스턴스 추천 알고리즘의 수행을 위해서는 다양한 인스턴스 타입을 활용한 실험이 필요하며, 이는 상당한 사용금액을 발생할 수 있다.
본 개시의 기술적 사상이 이루고자 하는 과제는, 인스턴스 추천을 위한 실험의 실행을 최소화하는 분산 클라우드 환경에서의 기계 학습 성능 평가 방법 및 장치를 제공하는데 있다.
본 개시의 기술적 사상이 이루고자 하는 기술적 과제는 이상에서 언급한 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제는 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
본 개시의 일 양태에 따르면, 기계 학습 성능 평가 방법으로, 복수의 배타적 MM(Matrix Multiplication) 태스크 시나리오를 생성하는 단계; 상기 복수의 배타적 MM 태스크 시나리오를 행렬(matrix) X로 표현하는 단계; 상기 행렬 X의 행(row) 중 n 개를 선택하여, 상기 선택된 n 개의 행을 포함하는 제1 행렬을 생성하는 단계; 상기 행렬 X의 행(row) 중 n+1 개를 선택하여, 상기 선택된 n+1 개의 행을 포함하는 제2 행렬을 생성하는 단계; 상기 제1 행렬과 상기 제2 행렬 각각의 정보량을 비교하는 단계; 및 상기 비교 결과에 기초하여, 제3 행렬의 생성 여부를 판단하는 단계;를 포함하는 방법이 개시된다.
예시적인 실시예에 따르면, 상기 복수의 배타적 MM 태스크 시나리오를 행렬 X로 표현하는 단계는, 분산 클라우드 환경에서 각 인스턴스의 하드웨어 특성들을 벡터로 표현하는 단계; 및 상기 각각의 배타적 MM 태스크 시나리오를 상기 행렬 X의 각각의 행으로, 상기 각각의 배타적 MM 태스크 시나리오에 따른 특성 벡터와 상기 각 인스턴스 별로 표현된 하드웨어 특성 벡터를 상기 행렬 X의 각각의 열(column)로 표현하는 단계;를 포함할 수 있다.
예시적인 실시예에 따르면, 상기 제1 행렬과 상기 제2 행렬 각각의 정보량을 비교하는 단계는, 상기 제1 행렬 및 상기 제2 행렬 각각에 대해 XTX 연산을 수행하여, 상기 제1 행렬에 대한 제1 정보 행렬(information matrix)을 생성하고, 상기 제2 행렬에 대한 제2 정보 행렬을 생성하는 단계; 상기 제1 정보 행렬에 대한 제1 행렬식(determinant)과 상기 제2 정보 행렬에 대한 제2 행렬식을 계산하는 단계; 및 상기 제1 행렬식과 상기 제2 행렬식을 비교하는 단계;를 포함할 수 있다.
예시적인 실시예에 따르면, 상기 제3 행렬의 생성 여부를 판단하는 단계는, 상기 제1 행렬식과 상기 제2 행렬식의 차이가 기 설정된 기준 이상인 경우, 제3 행렬을 생성하도록 판단하는 단계;를 포함할 수 있고, 상기 방법은, 상기 행렬 X의 행(row) 중 n+2 개를 선택하여, 상기 선택된 n+2 개의 행을 포함하는 제3 행렬을 생성하는 단계; 상기 제2 행렬과 상기 제3 행렬 각각의 정보량을 비교하는 단계; 및 상기 비교 결과에 기초하여, 제4 행렬의 생성 여부를 판단하는 단계;를 더 포함할 수 있다.
예시적인 실시예에 따르면, 상기 제4 행렬은, 상기 행렬 X의 행(row) 중 선택된 n+3 개의 행을 포함하는 행렬일 수 있다.
예시적인 실시예에 따르면, 상기 제3 행렬의 생성 여부를 판단하는 단계는, 상기 제2 행렬식과 상기 제1 행렬식의 차이가 기 설정된 기준 이하인 경우, 상기 제3 행렬을 생성하지 않도록 판단하는 단계;를 포함할 수 있다.
예시적인 실시예에 따르면, 상기 제2 행렬식과 상기 제1 행렬식의 차이가 기 설정된 기준 이하인 경우, 상기 제3 행렬을 생성하지 않도록 판단하는 단계는, 상기 제2 행렬식과 상기 제1 행렬식의 차이가 n-1 개의 행을 포함하는 제4 행렬에 XTX 연산을 수행하여 생성한 제4 정보 행렬의 제4 행렬식과 상기 제1 행렬식의 차이보다 크거나 같은 경우, 상기 제3 행렬을 생성하지 않도록 판단하는 단계;를 포함할 수 있다.
예시적인 실시예에 따르면, 상기 방법은, 상기 제3 행렬을 생성하지 않도록 판단하는 경우, 상기 복수의 배타적 MM 태스크 시나리오 중 n+1 개의 배타적 MM 태스크 시나리오를 성능 평가에 사용할 대표 실험 케이스의 개수로 결정하는 단계;를 더 포함할 수 있다.
예시적인 실시예에 따르면, 상기 복수의 배타적 MM 태스크 시나리오 중 n+1 개의 배타적 MM 태스크 시나리오를 성능 평가에 사용할 대표 실험 케이스의 개수로 결정하는 단계는, Fedorvo 알고리즘을 이용하여 상기 성능 평가에 사용할 대표 실험 케이스를 결정하는 단계;를 더 포함할 수 있다.
예시적인 실시예에 따르면, 상기 제3 행렬은, 상기 행렬 X의 행(row) 중 선택된 n+2 개의 행을 포함하는 행렬일 수 있다.
예시적인 실시예에 따르면, 상기 복수의 배타적 MM 태스크 시나리오를 생성하는 단계는, LHS(Latin Hypercube Sampling) 알고리즘을 이용하여 상기 복수의 배타적 MM 태스크 시나리오를 생성하는 단계;를 포함할 수 있다.
본 개시의 다른 양태에 따르면, 기계 학습 성능 평가 장치로, 통신부; 상기 기계 학습 성능 평가를 제공하기 위한 프로그램을 저장하는 메모리; 및 상기 메모리에 저장된 프로그램을 실행함으로써, 복수의 배타적 MM 태스크 시나리오(exclusive Matrix Multiplication task scenario)를 생성하고, 상기 복수의 배타적 MM 태스크 시나리오를 행렬(matrix) X로 표현하며, 상기 행렬 X의 행(row) 중 n 개를 선택하여, 상기 선택된 n 개의 행을 포함하는 제1 행렬을 생성하고, 상기 행렬 X의 행(row) 중 n+1 개를 선택하여, 상기 선택된 n+1 개의 행을 포함하는 제2 행렬을 생성하며, 상기 제1 행렬과 상기 제2 행렬 각각의 정보량을 비교하고, 상기 비교 결과에 기초하여, 제3 행렬의 생성 여부를 판단하는 프로세서;를 포함하는 장치가 개시된다.
예시적인 실시예에 따르면, 상기 프로세서는, 분산 클라우드 환경에서 각 인스턴스의 하드웨어 특성들을 벡터로 표현하고, 상기 각각의 배타적 MM 태스크 시나리오를 상기 행렬 X의 각각의 행으로, 상기 각각의 배타적 MM 태스크 시나리오에 따른 특성 벡터와 상기 각 인스턴스 별로 표현된 하드웨어 특성 벡터를 상기 행렬 X의 각각의 열(column)로 표현할 수 있다.
예시적인 실시예에 따르면, 상기 프로세서는, 상기 제1 행렬 및 상기 제2 행렬 각각에 대해 XTX 연산을 수행하여, 상기 제1 행렬에 대한 제1 정보 행렬(information matrix)을 생성하고, 상기 제2 행렬에 대한 제2 정보 행렬을 생성하며, 상기 제1 정보 행렬에 대한 제1 행렬식(determinant)과 상기 제2 정보 행렬에 대한 제2 행렬식을 계산하고, 상기 제1 행렬식과 상기 제2 행렬식을 비교할 수 있다.
예시적인 실시예에 따르면, 상기 프로세서는, 제1 행렬식과 상기 제2 행렬식의 차이가 기 설정된 기준 이상인 경우, 제3 행렬을 생성하도록 판단하고, 상기 행렬 X의 행(row) 중 n+2 개를 선택하여, 상기 선택된 n+2 개의 행을 포함하는 제3 행렬을 생성하며, 상기 제2 행렬과 상기 제3 행렬의 정보량을 비교하고, 상기 비교 결과에 기초하여 제4 행렬의 생성 여부를 판단할 수 있다.
예시적인 실시예에 따르면, 상기 제4 행렬은, 상기 행렬 X의 행(row) 중 선택된 n+3 개의 행을 포함하는 행렬일 수 있다.
예시적인 실시예에 따르면, 상기 프로세서는, 상기 제2 행렬식과 상기 제1 행렬식의 차이가 기 설정된 기준 이하인 경우, 상기 제3 행렬을 생성하지 않도록 판단할 수 있다.
예시적인 실시예에 따르면, 상기 프로세서는, 상기 제2 행렬식과 상기 제1 행렬식의 차이가 n-1 개의 행을 포함하는 제4 행렬에 XTX 연산을 수행하여 생성한 제4 정보 행렬의 제4 행렬식과 상기 제1 행렬식의 차이보다 크거나 같은 경우, 상기 제3 행렬을 생성하지 않도록 판단할 수 있다.
예시적인 실시예에 따르면, 상기 프로세서는, 상기 제3 행렬을 생성하지 않도록 판단하는 경우, 상기 복수의 배타적 MM 태스크 시나리오 중 n+1 개의 배타적 MM 태스크 시나리오를 성능 평가에 사용할 대표 실험 케이스의 개수로 결정할 수 있다.
예시적인 실시예에 따르면, 상기 프로세서는, Fedorvo 알고리즘을 이용하여 상기 성능 평가에 사용할 대표 실험 케이스를 결정할 수 있다.
예시적인 실시예에 따르면, 상기 제4 행렬은, 상기 행렬 X의 행(row) 중 선택된 n+2 개의 행을 포함할 수 있다.
예시적인 실시예에 따르면, 상기 프로세서는, 상기 복수의 배타적 MM 태스크 시나리오를 생성하는 단계는, LHS(Latin Hypercube Sampling) 알고리즘을 이용하여 상기 복수의 배타적 MM 태스크 시나리오를 생성할 수 있다.
본 개시의 실시예들에 따르면, 분산 클라우드 컴퓨팅 환경에서 분산 행렬 곱셈 실험 오버헤드를 현저하게 줄일 수 있는 효과가 있다.
본 개시의 기술적 사상에 의한 실시예들이 얻을 수 있는 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 명세서에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 클라우드 컴퓨팅 환경을 설명하기 위한 도면이다.
도 2는 본 개시의 일 실시예에 따른 분산 클라우드 환경에서의 기계 학습 성능 평가 장치를 나타내는 도면이다.
도 3은 본 개시의 일 실시예에 따라 제1 행렬과 제2 행렬의 정보량을 비교하는 과정을 설명하기 위한 도면이다.
도 4는 본 개시의 일 실시예에 따른 분산 클라우드 환경에서의 기계 학습 성능 평가 방법을 나타내는 순서도이다.
도 5는 본 개시의 일 실시예에 따른 대표 실험 사례를 선택하는 알고리즘을 나타내는 도면이다.
본 개시의 기술적 사상은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 개시의 기술적 사상을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 개시의 기술적 사상의 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 개시의 기술적 사상을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 개시의 기술적 사상의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 본 명세서의 설명 과정에서 이용되는 숫자(예를 들어, 제1, 제2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.
또한, 본 명세서에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.
또한, 본 명세서에 기재된 "~부", "~기", "~자", "~모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 프로세서(Processor), 마이크로 프로세서(Micro Processor), 어플리케이션 프로세서(Application Processor), 마이크로 컨트롤러(Micro Controller), CPU(Central Processing Unit), GPU(Graphics Processing Unit), APU(Accelerate Processor Unit), DSP(Digital Signal Processor), ASIC(Application Specific Integrated Circuit), FPGA(Field Programmable Gate Array) 등과 같은 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
그리고 본 명세서에서의 구성부들에 대한 구분은 각 구성부가 담당하는 주기능 별로 구분한 것에 불과함을 명확히 하고자 한다. 즉, 이하에서 설명할 2개 이상의 구성부가 하나의 구성부로 합쳐지거나 또는 하나의 구성부가 보다 세분화된 기능별로 2개 이상으로 분화되어 구비될 수도 있다. 그리고 이하에서 설명할 구성부 각각은 자신이 담당하는 주기능 이외에도 다른 구성부가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성부 각각이 담당하는 주기능 중 일부 기능이 다른 구성부에 의해 전담되어 수행될 수도 있음은 물론이다.
이하, 본 개시의 기술적 사상에 의한 실시예들을 차례로 상세히 설명한다.
도 1은 클라우드 컴퓨팅 환경을 설명하기 위한 도면이다.
클라우드 컴퓨팅(cloud computing)은 서로 다른 물리적인 위치에 존재하는 컴퓨팅 자원(10)을 클라우드를 통해 사용자(11, 12, 13, 14)에게 제공하는 것으로, 사용자 개인의 컴퓨터가 아닌 클라우드에 연결된 다른 컴퓨팅 자원들로 정보를 처리하는 기술을 의미한다. 여기서 컴퓨팅 자원은 프로세서, 메모리, 저장 장치 등을 의미할 수 있다.
이러한 클라우드 컴퓨팅을 통해 선행 투자 인프라스트럭처 비용(예를 들어, 서버 구매 등)을 줄일 수 있고, 응용 프로그램의 기동 및 실행 속도를 더 빠르게 하여 취급 용이성을 개선시키고, 유지보수 시간 및 비용을 줄일 수 있다.
이에 따라, 유동적이고 예측 불가능한 상황에서 정보 처리를 위한 컴퓨팅 자원을 효율적이고 빠르게 조절할 수 있다. 일반적으로, 클라우드 컴퓨팅 서비스 제공자는 사용자의 요청이 있는 경우, 사용료를 받고 필요한 컴퓨팅 자원을 제공한다.
초기의 클라우드 컴퓨팅 클라우드 서비스는 소프트웨어를 웹에서 쓸 수 있는 SaaS(Software as a Service, 서비스로서의 소프트웨어)가 대부분이었으나, 서버와 스토리지, 네트워크 같은 컴퓨팅 인프라 장비를 빌려주는 IaaS(Infrastracture as a Service, 서비스로서의 인프라스트럭처), 플랫폼을 빌려주는 PaaS(Platform as a Service, 서비스로서의 플랫폼) 등으로 발전하고 있다.
이와 같은 클라우드 컴퓨팅 서비스는 다양한 하드웨어 구성으로 필요한 만큼의 컴퓨팅 자원을 제공할 수 있다. 이러한 클라우드 컴퓨팅 환경에서 비용 효율성을 유지하기 위해서는, 인공지능(artificial intelligence)을 위한 딥 러닝(deep learning) 등의 많은 기계 학습 알고리즘(machine learning algorithm)에서 핵심 컴퓨팅 커널(computing kernel)인 분산 행렬 곱셈 태스크(distributed matrix multiplication task)의 특성을 이해하고 오버 헤드를 추정할 필요가 있다.
본 개시에서는 클라우드 컴퓨팅 환경에서 인스턴스 추천을 위한 실험의 실행을 최소화하여 실험 오버헤드를 줄일 수 있는 분산 클라우드 환경에서의 기계 학습 성능 평가 방법 및 장치가 제공된다.
한편, 정확한 모델을 구축하기 위해서는 잘 표현된 훈련 데이터 세트(well-represented train data sets)를 생성하는 것이 중요하다. 더 많은 데이터가 훈련 데이터 세트에 추가될수록 모델의 정확도가 향상될 수 있지만, 다양한 유형의 클라우드 인스턴스에 대해서 많은 수의 MM 태스크 시나리오로 오프라인 실험을 수행하기에는 너무 많은 비용이 소요될 수 있다.
본 개시에 따르면, 다양한 MM 태스크 시나리오를 생성하고 최소의 실험을 통해 최적 사례를 선택할 수 있어, 오프라인 실험을 간결하게 만들 수 있다.
도 2는 본 개시의 일 실시예에 따른 분산 클라우드 환경에서의 기계 학습 성능 평가 장치를 나타내는 도면이다.
도 2를 참조하면, 본 개시의 일 실시예에 따른 분산 클라우드 환경에서의 기계 학습 성능 평가 장치(200)는 그 하드웨어 구성에 따라 통신부(210), 프로세서(220), 및 메모리(230)를 포함할 수 있다. 그러나, 이는 일 예에 불과하며, 분산 클라우드 환경에서의 기계 학습 성능 평가 장치(200)의 구성이 이에 한정되는 것은 아니다. 예를 들어, 분산 클라우드 환경에서의 기계 학습 성능 평가 장치(200)은 다른 구성을 더 포함하거나, 도 2에 개시된 구성 중 일부를 포함하지 않을 수도 있다.
본 개시의 일 실시예에 따르면, 통신부(210)는 프로세서(220)의 제어에 의해 외부 장치 또는 외부 서버와 데이터 또는 신호를 송수신할 수 있다.
통신부(210)는 유무선 통신부를 포함할 수 있다. 통신부(210)가 유선 통신부를 포함하는 경우, 통신부(210)는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 부가가치 통신망(Value Added Network; VAN), 이동 통신망(mobile radio communication network), 위성 통신망 및 이들의 상호 조합을 통하여 통신을 하게 하는 하나 이상의 구성요소를 포함할 수 있다. 또한, 통신부(210)가 무선 통신부를 포함하는 경우, 통신부(210)는 셀룰러 통신, 무선랜(예를 들어, 와이-파이(Wi-Fi)) 등을 이용하여 무선으로 데이터 또는 신호를 송수신할 수 있다.
본 개시의 일 실시예에 따르면, 프로세서(220)는 기계 학습 성능 평가 장치(200)의 전반적인 동작을 제어할 수 있다. 프로세서(220)는 메모리(230)에 저장되는 하나 이상의 프로그램들을 실행할 수 있다.
프로세서(220)는 메모리(230)에 저장된 프로그램을 실행함으로써, 복수의 배타적 MM 태스크 시나리오(exclusive Matrix Multiplication task scenario)를 생성할 수 있다. 또한, 복수의 배타적 MM 태스크 시나리오를 행렬(matrix) X로 표현하며, 행렬 X의 행(row) 중 n 개를 선택하여 선택된 n 개의 행을 포함하는 제1 행렬을 생성하고, 행렬 X의 행(row) 중 n+1 개를 선택하여 선택된 n+1 개의 행을 포함하는 제2 행렬을 생성할 수 있다. 그 후, 프로세서(220)는 제1 행렬과 제2 행렬의 정보량을 비교하고, 비교 결과에 기초하여, 제3 행렬의 생성 여부를 판단한다.
일 실시예에서, 프로세서(220)는 LHS 알고리즘(Latin Hypercube Sampling algorithm)을 이용하여 복수의 배타적 MM 태스크 시나리오를 생성할 수 있다. 프로세서(220)는 복수의 배타적 MM 태스크 시나리오를 생성 시, 메모리 요구 사항을 충족해야 한다. LHS 알고리즘을 사용하는 경우, 메모리 요구 사항을 만족시키면서 다양한 MM 실험 사례를 생성할 수 있다. LHS 알고리즘의 기본 아이디어는 사용자가 선택한 확률 밀도 함수에 가까운 샘플링 포인트 분포를 얻는 것이므로, 균일 분포를 선택하면 LHS 알고리즘은 모든 가능한 값에 걸쳐 샘플을 보다 균일하게 분산시킬 수 있다.
메모리 요구 사항을 충족하며 LHS 알고리즘을 사용하여 생성한 복수의 MM 태스크 시나리오에는 훈련 데이터 세트 생성 시 실행하기에 너무 많은 시나리오가 포함될 수 있다. 따라서, 너무 많은 유사한 실험을 실행해야하는 부담을 덜기 위해 최적 알고리즘을 적용하여 모든 시나리오를 잘 나타낼 수 있는 실험 사례의 하위 집합을 선택할 수 있다. 도 3을 참조하여 설명한다.
도 3은 본 개시의 일 실시예에 따라 제1 행렬과 제2 행렬의 정보량을 비교하는 과정을 설명하기 위한 도면이다.
도 3을 참조하면, 프로세서(220)는 복수의 배타적 MM 태스크 시나리오를 행렬 X(310)로 표현하고, 복수의 배타적 MM 태스크 시나리오를 행렬 X(310)를 기초로 생성한 정보 행렬(320)을 생성할 수 있다.
일 실시예에서, 프로세서(220)는, 각 인스턴스의 하드웨어 특성들을 벡터로 표현하고, 각각의 배타적 MM 태스크 시나리오를 행렬 X(310)의 각각의 행으로, 각각의 배타적 MM 태스크 시나리오에 따른 특성 벡터와 각 인스턴스 별로 표현된 하드웨어 특성 벡터를 행렬 X의 각각의 열(column)로 표현할 수 있다.
여기서, 인스턴스의 하드웨어 특성은, 예를 들어, CPU 코어 개수, 캐시(cache) 사이즈, CPU 스피드, Linpack 벤치마크 throughput, 읽기 대역폭, 쓰기 대역폭, 네트워크 대역폭 등을 포함할 수 있다.
프로세서(220)는 각 인스턴스 타입별로 특성 벡터를 만든 후, 애플리케이션 예제에서 만들어지는 특성 벡터가 있다면 서로간에 cartesian-product를 실시하여 조합을 만들 수 있다. 이렇게 만들어진 조합은 행렬의 형태를 띠게 되며, 이러한 행렬이 행렬 X(310)가 될 수 있다. 도 3에서 행렬 X(310)의 처음 6개 열은 애플리케이션에서 생성되는 특성을 나타내고, 마지막 2개 열은 하드웨어 특성을 나타낸다. 또한, 행렬 X(310)의 각 행은 별개의 독립적인 실험 시나리오가 된다.
프로세서(220)는 행렬 X(310)에 대해 XTX 연산을 수행하여, 행렬 X(310)에 대한 정보 행렬을 생성할 수 있다.
이러한 과정을 통해 생성된 정보 행렬의 행렬식(determinant)를 최대화 하는 조합이 하드웨어 특성을 기반으로 했을 때 가장 다양한 시나리오를 커버하게 해준다. 많은 실험 시나리오를 추가할수록 행렬식은 커지게 되지만, 그만큼 많은 실험을 실행해야 한다는 단점이 있다. 이러한 단점을 해결하기 위해, 일 실시예에서, Fedorov 알고리즘을 이용하여 랜덤하게 하나의 시나리오를 최종 실험 시나리오에 추가할 수 있다.
한편, 실험 시나리오를 추가함에 있어서, 몇 개의 실험 시나리오를 추가하는지 결정하는 것이 중요하다. 일 실시예에서, 새로운 실험 시나리오를 추가함에 따라 발생하는 행렬식의 증가폭이 이전 시나리오에 비해서 작아질 경우에 실험 시나리오의 추가를 정지하도록 할 수 있다. 일 실시예에 따르면, 이와 같이 행렬식(determinant)의 발전 정도를 참조하여 실험 시나리오의 추가함으로써, 전체 실험 시나리오의 정확도에는 큰 영향 없이 최적의 실험 시나리오를 생성할 수 있다.
다시 도 2의 설명으로 돌아가면, 일 실시예에서, 프로세서(220)는, 제1 행렬 및 제2 행렬 각각에 대해 XTX 연산을 수행하여, 제1 행렬에 대한 제1 정보 행렬(information matrix)을 생성하고, 제2 행렬에 대한 제2 정보 행렬을 생성하며, 제1 정보 행렬에 대한 제1 행렬식(determinant)과 제2 정보 행렬에 대한 제2 행렬식을 계산하고, 제1 행렬식과 제2 행렬식을 비교할 수 있다.
프로세서(220)는, 제1 행렬식과 제2 행렬식의 차이가 기 설정된 기준 이상인 경우, 제3 행렬을 생성하도록 판단할 수 있다. 그 후, 프로세서(220)는, 행렬 X의 행(row) 중 n+2 개를 선택하여, 선택된 n+2 개의 행을 포함하는 제3 행렬을 생성하며, 제2 행렬과 제3 행렬의 정보량을 비교하고, 비교 결과에 기초하여 제4 행렬의 생성 여부를 판단할 수 있다. 여기서, 제3 행렬은, 행렬 X의 행(row) 중 n+2 개를 선택하여, 선택된 n+2 개의 행을 포함할 수 있다. 또한, 제4 행렬은, 행렬 X의 행(row) 중 n+3 개를 선택하여, 선택된 n+3 개의 행을 포함할 수 있다.
또한, 프로세서(220)는, 제2 행렬식과 제1 행렬식의 차이가 n-1 개의 행을 포함하는 제4 행렬에 XTX 연산을 수행하여 생성한 제4 정보 행렬의 제4 행렬식과 제1 행렬식의 차이보다 크거나 같은 경우, 제3 행렬을 생성하지 않도록 판단할 수 있다.
일 실시예에서, 프로세서(220)는, 제3 행렬을 생성하지 않도록 판단하는 경우, 복수의 배타적 MM 태스크 시나리오 중 n+1 개의 배타적 MM 태스크 시나리오를 성능 평가에 사용할 대표 실험 케이스의 개수로 결정할 수 있다. 이때, Fedorvo 알고리즘을 이용하여 성능 평가에 사용할 대표 실험 케이스를 결정할 수 있다.
본 개시의 일 실시예에 따르면, 메모리(230)는 기계 학습 성능 평가 장치(200)를 구동하고 제어하기 위한 다양한 데이터, 프로그램 또는 어플리케이션을 저장할 수 있다. 메모리(230)에 저장되는 프로그램은 하나 이상의 인스트럭션들을 포함할 수 있다. 메모리(230)에 저장된 프로그램(하나 이상의 인스트럭션들) 또는 어플리케이션은 프로세서(220)에 의해 실행될 수 있다.
본 개시에 따르면, 다양한 MM 태스크 시나리오를 생성하고 최적의 사례를 선택하여 오프라인 실험을 간결하게 만들 수 있다.
한편, 도 2의 블록도는 일 실시예의 설명을 위한 블록도로, 각 구성요소는 실제 구현되는 시스템에 따라 통합, 추가, 또는 생략될 수 있다. 즉, 필요에 따라 2 이상의 구성요소가 하나의 구성요소로 합쳐지거나, 혹은 하나의 구성요소가 2 이상의 구성요소로 세분되어 구성될 수 있다. 또한, 각 블록에서 수행하는 기능은 실시예들을 설명하기 위한 것이며, 그 구체적인 동작이나 장치는 본 개시의 권리범위를 제한하지 아니한다.
도 4는 본 개시의 일 실시예에 따른 분산 클라우드 환경에서의 기계 학습 성능 평가 방법을 나타내는 순서도이다.
도 4는 도 2 및 도 4의 분산 클라우드 환경에서의 기계 학습 성능 평가 장치의 동작 방법에 관한 것인 바, 중복되는 내용은 간략히 설명하도록 한다.
410 단계에서, 분산 클라우드 환경에서의 기계 학습 성능 평가 장치(200)는 복수의 배타적 MM 태스크 시나리오(exclusive Matrix Multiplication task scenario)를 생성할 수 있다. 일 실시예에서, 복수의 배타적 MM 태스크 시나리오를 생성하는 단계는, LHS(Latin Hypercube Sampling) 알고리즘을 이용하여 복수의 배타적 MM 태스크 시나리오를 생성할 수 있다.
420 단계에서, 분산 클라우드 환경에서의 기계 학습 성능 평가 장치(200)는 복수의 배타적 MM 태스크 시나리오를 행렬(matrix) X로 표현할 수 있다.
일 실시예에서, 복수의 배타적 MM 태스크 시나리오를 행렬 X로 표현 시, 각 인스턴스의 하드웨어 특성들을 벡터로 표현하고, 각각의 배타적 MM 태스크 시나리오를 행렬 X의 각각의 행으로, 각각의 배타적 MM 태스크 시나리오에 따른 특성 벡터와 각 인스턴스 별로 표현된 하드웨어 특성 벡터를 행렬 X의 각각의 열(column)로 표현할 수 있다.
430 단계에서, 분산 클라우드 환경에서의 기계 학습 성능 평가 장치(200)는 행렬 X의 행(row) 중 n 개를 선택하여, 선택된 n 개의 행을 포함하는 제1 행렬을 생성할 수 있다.
440 단계에서, 분산 클라우드 환경에서의 기계 학습 성능 평가 장치(200)는 행렬 X의 행(row) 중 n+1 개를 선택하여, 선택된 n+1 개의 행을 포함하는 제2 행렬을 생성할 수 있다.
450 단계에서, 분산 클라우드 환경에서의 기계 학습 성능 평가 장치(200)는 제1 행렬과 제2 행렬의 정보량을 비교할 수 있다.
일 실시예에서, 제1 행렬과 제2 행렬의 정보량을 비교 시, 제1 행렬 및 제2 행렬 각각에 대해 XTX 연산을 수행하여, 제1 행렬에 대한 제1 정보 행렬(information matrix)을 생성하고, 제2 행렬에 대한 제2 정보 행렬을 생성하며, 제1 정보 행렬에 대한 제1 행렬식(determinant)과 제2 정보 행렬에 대한 제2 행렬식을 계산하고, 제1 행렬식과 제2 행렬식을 비교할 수 있다.
460 단계에서, 분산 클라우드 환경에서의 기계 학습 성능 평가 장치(200)는 제3 행렬의 생성 여부를 판단할 수 있다.
일 실시예에서, 제3 행렬의 생성 여부를 판단 시, 제1 행렬식과 제2 행렬식의 차이가 기 설정된 기준 이상인 경우, 제3 행렬을 생성하도록 판단할 수 있다. 그 후, 행렬 X의 행(row) 중 n+2 개를 선택하여, 선택된 n+2 개의 행을 포함하는 제3 행렬을 생성하고, 제2 행렬과 제3 행렬의 정보량을 비교하며, 비교 결과에 기초하여, 제4 행렬의 생성 여부를 판단할 수 있다. 여기서, 제3 행렬은, 행렬 X의 행(row) 중 n+2 개를 선택하여, 선택된 n+2 개의 행을 포함할 수 있다. 또한, 제4 행렬은, 행렬 X의 행(row) 중 n+3 개를 선택하여, 선택된 n+3 개의 행을 포함할 수 있다.
일 실시예에서, 제2 행렬식과 제1 행렬식의 차이가 기 설정된 기준 이하인 경우, 제3 행렬을 생성하지 않도록 판단할 수 있고, 제2 행렬식과 제1 행렬식의 차이가 n-1 개의 행을 포함하는 제4 행렬에 XTX 연산을 수행하여 생성한 제4 정보 행렬의 제4 행렬식과 제1 행렬식의 차이보다 크거나 같은 경우, 제3 행렬을 생성하지 않도록 판단할 수 있다. 제3 행렬을 생성하지 않도록 판단하는 경우, 복수의 배타적 MM 태스크 시나리오 중 n+1 개의 배타적 MM 태스크 시나리오를 성능 평가에 사용할 대표 실험 케이스의 개수로 결정할 수 있다. 이때, Fedorvo 알고리즘을 이용하여 성능 평가에 사용할 대표 실험 케이스를 결정할 수 있다.
도 5는 본 개시의 일 실시예에 따른 대표 실험 사례를 선택하는 알고리즘을 나타내는 도면이다.
도 5를 참조하면, 1-4 행은 대표 실험 사례를 선택하는 함수의 전제 조건을 나타낸다. 즉, N은 생성할 전용 훈련 사례의 개수이고, M은 메모리 요구 사항을 충족하는 대표 MM 태스크 시나리오이며, LHSk는 LHS 알고리즘의 k 샘플링 포인트이며, dOptDet(T, k)는 T로부터 k 개의 최적의 열을 갖는 정규화된 분산 행렬의 행렬식을 반환한다.
6 행은 실험 사례를 저장하기 위해 변수를 초기화 하는 단계이고, 7-9 행은 LHS 알고리즘을 이용하여 생성한 샘플 (LHSN/|M|)을 메모리 요구 사항을 충족하는 대표 MM 태스크 시나리오에 곱하여 실험 사례를 생성하는 과정이다.
10 행은 정보 행렬의 행렬식을 k 행으로 저장하기 위하여 변수를 초기화하는 단계이고, 11 행은 최소의 실험 사례를 이용하여 행렬식을 계산하는 과정이다.
13 행은 D-최적 알고리즘에서 반환된 정규화 된 분산 행렬의 행렬식의 차이를 계산하는 과정이다.
14-15 행은 행렬식의 차이가 일정해지면, 대표 실험 사례를 선택하는 함수가 D-최적 알고리즘에 의해 추천되는 현재 실험 사례 세트를 반환하는 과정이다.
한편, 도 5에 도시된 알고리즘은 일 실시예의 설명을 위한 알고리즘으로, 구체적인 함수는 실제 구현되는 시스템에 따라 변경될 수 있다. 즉, 필요에 따라, 함수에 추가적인 기능을 포함하거나, 도 5에 도시된 함수의 2 이상의 기능이 하나의 기능으로 합쳐지거나, 혹은 하나의 기능이 2 이상의 기능으로 세분되어 구성될 수 있다. 또한, 도 5에 도시된 알고리즘은 일 실시예를 설명하기 위한 것이며, 그 구체적인 내용은 본 개시의 권리범위를 제한하지 아니한다.
본 개시의 실시예들에 따른 분산 클라우드 환경에서의 기계 학습 성능 평가 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 개시를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
또한, 개시된 실시예들에 따른 서비스형 함수를 제공하는 시스템 또는 시스템의 동작방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다.
컴퓨터 프로그램 제품은 S/W 프로그램, S/W 프로그램이 저장된 컴퓨터로 읽을 수 있는 저장 매체를 포함할 수 있다. 예를 들어, 컴퓨터 프로그램 제품은 전자 장치의 제조사 또는 전자 마켓(예, 구글 플레이 스토어, 앱 스토어)을 통해 전자적으로 배포되는 S/W 프로그램 형태의 상품(예, 다운로더블 앱)을 포함할 수 있다. 전자적 배포를 위하여, S/W 프로그램의 적어도 일부는 저장 매체에 저장되거나, 임시적으로 생성될 수 있다. 이 경우, 저장 매체는 제조사의 서버, 전자 마켓의 서버, 또는 SW 프로그램을 임시적으로 저장하는 중계 서버의 저장매체가 될 수 있다.
컴퓨터 프로그램 제품은, 서버 및 클라이언트 장치로 구성되는 시스템에서, 서버의 저장매체 또는 클라이언트 장치의 저장매체를 포함할 수 있다. 또는, 서버 또는 클라이언트 장치와 통신 연결되는 제3 장치(예, 스마트폰)가 존재하는 경우, 컴퓨터 프로그램 제품은 제3 장치의 저장매체를 포함할 수 있다. 또는, 컴퓨터 프로그램 제품은 서버로부터 클라이언트 장치 또는 제3 장치로 전송되거나, 제3 장치로부터 클라이언트 장치로 전송되는 S/W 프로그램 자체를 포함할 수 있다.
이 경우, 서버, 클라이언트 장치 및 제3 장치 중 하나가 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 수행할 수 있다. 또는, 서버, 클라이언트 장치 및 제3 장치 중 둘 이상이 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 분산하여 실시할 수 있다.
예를 들면, 서버(예로, 클라우드 서버 또는 인공 지능 서버 등)가 서버에 저장된 컴퓨터 프로그램 제품을 실행하여, 서버와 통신 연결된 클라이언트 장치가 개시된 실시예들에 따른 방법을 수행하도록 제어할 수 있다.
이상에서 본 개시의 실시예들에 대하여 상세하게 설명하였지만 본 개시의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 개시의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 개시의 권리범위에 속한다.
200: 기계 학습 성능 평가 장치
210: 통신부
220: 프로세서
230: 메모리
310: 행렬 X
320: 정보 행렬

Claims (15)

  1. 컴퓨터로 구현되는 기계 학습 성능 평가 장치에 의해 수행되는 기계 학습 성능 평가 방법으로,
    복수의 배타적 MM(Matrix Multiplication) 태스크 시나리오를 생성하는 단계;
    상기 복수의 배타적 MM 태스크 시나리오를 행렬(matrix) X로 표현하는 단계;
    상기 행렬 X의 행(row) 중 n 개를 선택하여, 상기 선택된 n 개의 행을 포함하는 제1 행렬을 생성하는 단계;
    상기 행렬 X의 행(row) 중 n+1 개를 선택하여, 상기 선택된 n+1 개의 행을 포함하는 제2 행렬을 생성하는 단계;
    상기 제1 행렬과 상기 제2 행렬 각각의 정보량을 비교하는 단계; 및
    상기 비교 결과에 기초하여, 제3 행렬의 생성 여부를 판단하는 단계;
    를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 복수의 배타적 MM 태스크 시나리오를 행렬 X로 표현하는 단계는,
    분산 클라우드 환경에서 각 인스턴스의 하드웨어 특성들을 벡터로 표현하는 단계; 및
    상기 각각의 배타적 MM 태스크 시나리오를 상기 행렬 X의 각각의 행으로, 상기 각각의 배타적 MM 태스크 시나리오에 따른 특성 벡터와 상기 각 인스턴스 별로 표현된 하드웨어 특성 벡터를 상기 행렬 X의 각각의 열(column)로 표현하는 단계;를 포함하는, 방법.
  3. 제1항에 있어서,
    상기 제1 행렬과 상기 제2 행렬 각각의 정보량을 비교하는 단계는,
    상기 제1 행렬 및 상기 제2 행렬 각각에 대해 XTX 연산을 수행하여, 상기 제1 행렬에 대한 제1 정보 행렬(information matrix)을 생성하고, 상기 제2 행렬에 대한 제2 정보 행렬을 생성하는 단계;
    상기 제1 정보 행렬에 대한 제1 행렬식(determinant)과 상기 제2 정보 행렬에 대한 제2 행렬식을 계산하는 단계; 및
    상기 제1 행렬식과 상기 제2 행렬식을 비교하는 단계;를 포함하는, 방법.
  4. 제3항에 있어서,
    상기 제3 행렬의 생성 여부를 판단하는 단계는,
    상기 제1 행렬식과 상기 제2 행렬식의 차이가 기 설정된 기준 이상인 경우, 제3 행렬을 생성하도록 판단하는 단계;를 포함하고,
    상기 방법은,
    상기 행렬 X의 행(row) 중 n+2 개를 선택하여, 상기 선택된 n+2 개의 행을 포함하는 제3 행렬을 생성하는 단계;
    상기 제2 행렬과 상기 제3 행렬 각각의 정보량을 비교하는 단계; 및
    상기 비교 결과에 기초하여, 제4 행렬의 생성 여부를 판단하는 단계;를 더 포함하는, 방법.
  5. 제4항에 있어서,
    상기 제4 행렬은,
    상기 행렬 X의 행(row) 중 선택된 n+3 개의 행을 포함하는 행렬인, 방법.
  6. 제3항에 있어서,
    상기 제3 행렬의 생성 여부를 판단하는 단계는,
    상기 제2 행렬식과 상기 제1 행렬식의 차이가 기 설정된 기준 이하인 경우, 상기 제3 행렬을 생성하지 않도록 판단하는 단계;를 포함하는, 방법.
  7. 제6항에 있어서,
    상기 제2 행렬식과 상기 제1 행렬식의 차이가 기 설정된 기준 이하인 경우, 상기 제3 행렬을 생성하지 않도록 판단하는 단계는,
    상기 제2 행렬식과 상기 제1 행렬식의 차이가 n-1 개의 행을 포함하는 제4 행렬에 XTX 연산을 수행하여 생성한 제4 정보 행렬의 제4 행렬식과 상기 제1 행렬식의 차이보다 크거나 같은 경우, 상기 제3 행렬을 생성하지 않도록 판단하는 단계;를 포함하는, 방법.
  8. 제6항에 있어서,
    상기 방법은,
    상기 제3 행렬을 생성하지 않도록 판단하는 경우, 상기 복수의 배타적 MM 태스크 시나리오 중 n+1 개의 배타적 MM 태스크 시나리오를 성능 평가에 사용할 대표 실험 케이스의 개수로 결정하는 단계;를 더 포함하는, 방법.
  9. 제8항에 있어서,
    상기 복수의 배타적 MM 태스크 시나리오 중 n+1 개의 배타적 MM 태스크 시나리오를 성능 평가에 사용할 대표 실험 케이스의 개수로 결정하는 단계는,
    Fedorvo 알고리즘을 이용하여 상기 성능 평가에 사용할 대표 실험 케이스를 결정하는 단계;를 더 포함하는, 방법.
  10. 제1항에 있어서,
    상기 제3 행렬은,
    상기 행렬 X의 행(row) 중 선택된 n+2 개의 행을 포함하는 행렬인, 방법.
  11. 제1항에 있어서,
    상기 복수의 배타적 MM 태스크 시나리오를 생성하는 단계는,
    LHS(Latin Hypercube Sampling) 알고리즘을 이용하여 상기 복수의 배타적 MM 태스크 시나리오를 생성하는 단계;를 포함하는, 방법.
  12. 기계 학습 성능 평가 장치에 있어서,
    통신부;
    상기 기계 학습 성능 평가를 제공하기 위한 프로그램을 저장하는 메모리; 및
    상기 메모리에 저장된 프로그램을 실행함으로써, 복수의 배타적 MM(Matrix Multiplication) 태스크 시나리오를 생성하고, 상기 복수의 배타적 MM 태스크 시나리오를 행렬(matrix) X로 표현하며, 상기 행렬 X의 행(row) 중 n 개를 선택하여, 상기 선택된 n 개의 행을 포함하는 제1 행렬을 생성하고, 상기 행렬 X의 행(row) 중 n+1 개를 선택하여, 상기 선택된 n+1 개의 행을 포함하는 제2 행렬을 생성하며, 상기 제1 행렬과 상기 제2 행렬 각각의 정보량을 비교하고, 상기 비교 결과에 기초하여, 제3 행렬의 생성 여부를 판단하는 프로세서;
    를 포함하는, 장치.
  13. 제12항에 있어서,
    상기 프로세서는,
    상기 제1 행렬 및 상기 제2 행렬 각각에 대해 XTX 연산을 수행하여, 상기 제1 행렬에 대한 제1 정보 행렬(information matrix)을 생성하고, 상기 제2 행렬에 대한 제2 정보 행렬을 생성하며, 상기 제1 정보 행렬에 대한 제1 행렬식(determinant)과 상기 제2 정보 행렬에 대한 제2 행렬식을 계산하고, 상기 제1 행렬식과 상기 제2 행렬식을 비교하는, 장치.
  14. 제13항에 있어서,
    상기 프로세서는,
    제1 행렬식과 상기 제2 행렬식의 차이가 기 설정된 기준 이상인 경우, 제3 행렬을 생성하도록 판단하고, 상기 행렬 X의 행(row) 중 n+2 개를 선택하여, 상기 선택된 n+2 개의 행을 포함하는 제3 행렬을 생성하며, 상기 제2 행렬과 상기 제3 행렬의 정보량을 비교하고, 상기 비교 결과에 기초하여 제4 행렬의 생성 여부를 판단하며,
    상기 제4 행렬은,
    상기 행렬 X의 행(row) 중 n+3 개를 선택하여, 상기 선택된 n+3 개의 행을 포함하는, 장치.
  15. 제13항에 있어서,
    상기 프로세서는,
    상기 제2 행렬식과 상기 제1 행렬식의 차이가 n-1 개의 행을 포함하는 제4 행렬에 XTX 연산을 수행하여 생성한 제4 정보 행렬의 제4 행렬식과 상기 제1 행렬식의 차이보다 크거나 같은 경우, 상기 제3 행렬을 생성하지 않도록 판단하고, 상기 제3 행렬을 생성하지 않도록 판단하는 경우, 상기 복수의 배타적 MM 태스크 시나리오 중 n+1 개의 배타적 MM 태스크 시나리오를 성능 평가에 사용할 대표 실험 케이스의 개수로 결정하는, 장치.
KR1020190171223A 2019-12-19 2019-12-19 분산 클라우드 환경에서의 기계 학습 성능 평가 방법 및 장치 KR102268817B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190171223A KR102268817B1 (ko) 2019-12-19 2019-12-19 분산 클라우드 환경에서의 기계 학습 성능 평가 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190171223A KR102268817B1 (ko) 2019-12-19 2019-12-19 분산 클라우드 환경에서의 기계 학습 성능 평가 방법 및 장치

Publications (1)

Publication Number Publication Date
KR102268817B1 true KR102268817B1 (ko) 2021-06-24

Family

ID=76606923

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190171223A KR102268817B1 (ko) 2019-12-19 2019-12-19 분산 클라우드 환경에서의 기계 학습 성능 평가 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102268817B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190053262A (ko) * 2016-10-27 2019-05-17 구글 엘엘씨 신경망 계산 유닛에서 입력 데이터의 희소성 이용
KR20190062848A (ko) * 2017-11-29 2019-06-07 주식회사 비네아 점진적 학습 모델을 이용한 빅데이터 마이닝 시스템 및 그 방법
US20190244141A1 (en) * 2018-02-08 2019-08-08 Cavium, Llc Systems and methods for programmable hardware architecture for machine learning
JP2019535079A (ja) * 2016-10-04 2019-12-05 マジック リープ, インコーポレイテッドMagic Leap,Inc. 畳み込みニューラルネットワークのための効率的データレイアウト

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019535079A (ja) * 2016-10-04 2019-12-05 マジック リープ, インコーポレイテッドMagic Leap,Inc. 畳み込みニューラルネットワークのための効率的データレイアウト
KR20190053262A (ko) * 2016-10-27 2019-05-17 구글 엘엘씨 신경망 계산 유닛에서 입력 데이터의 희소성 이용
KR20190062848A (ko) * 2017-11-29 2019-06-07 주식회사 비네아 점진적 학습 모델을 이용한 빅데이터 마이닝 시스템 및 그 방법
US20190244141A1 (en) * 2018-02-08 2019-08-08 Cavium, Llc Systems and methods for programmable hardware architecture for machine learning

Similar Documents

Publication Publication Date Title
US11074295B2 (en) Distributed graph embedding method and apparatus, device, and system
US10686891B2 (en) Migration of applications to a computing environment
US11093818B2 (en) Customer profile learning based on semi-supervised recurrent neural network using partially labeled sequence data
US9940119B2 (en) Providing limited versions of applications
US10963645B2 (en) Bi-directional contextualized text description
US11436056B2 (en) Allocation of shared computing resources using source code feature extraction and clustering-based training of machine learning models
US20200034750A1 (en) Generating artificial training data for machine-learning
US20210110045A1 (en) Adding adversarial robustness to trained machine learning models
CN112381216B (zh) 混合图神经网络模型的训练、预测方法和装置
CN105761102B (zh) 一种预测用户购买商品行为的方法和装置
US11620537B2 (en) Optimizing gradient boosting feature selection
US20170178163A1 (en) Method and system for generating a split questionnaire
KR102142943B1 (ko) 클라우드 기반의 인공지능 연산 서비스 방법 및 이를 수행하는 장치
US20120236740A1 (en) Network emulation with varying bandwidth and/or error rate
US11113117B2 (en) Clustering routines for extrapolating computing resource metrics
CN113127153A (zh) 一种用于确定目标任务描述信息的方法与设备
KR102268817B1 (ko) 분산 클라우드 환경에서의 기계 학습 성능 평가 방법 및 장치
CN112965788A (zh) 一种混合虚拟化方式的任务执行方法、系统及设备
CN110955380B (zh) 访存数据生成方法、存储介质、计算机设备和装置
KR20210143464A (ko) 데이터 분석 장치 및 그것의 데이터 분석 방법
EP3314560B1 (en) Transmitting application data for on-device demos
US20190318270A1 (en) Memory-based data selection scheme for machine learning training on limited memory resources
US11507878B2 (en) Adversarial training for event sequence analysis
CN113132445A (zh) 资源调度方法、设备、网络系统及存储介质
KR102479183B1 (ko) 온라인 상품 판매를 위한 판로 확장 요소 추천 서비스 제공 장치 및 방법

Legal Events

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