KR20200127467A - Management system and method of machine learning platform - Google Patents

Management system and method of machine learning platform Download PDF

Info

Publication number
KR20200127467A
KR20200127467A KR1020190051638A KR20190051638A KR20200127467A KR 20200127467 A KR20200127467 A KR 20200127467A KR 1020190051638 A KR1020190051638 A KR 1020190051638A KR 20190051638 A KR20190051638 A KR 20190051638A KR 20200127467 A KR20200127467 A KR 20200127467A
Authority
KR
South Korea
Prior art keywords
machine learning
node
session
worker
information
Prior art date
Application number
KR1020190051638A
Other languages
Korean (ko)
Other versions
KR102224487B1 (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 KR1020190051638A priority Critical patent/KR102224487B1/en
Priority to PCT/KR2020/002167 priority patent/WO2020222407A1/en
Publication of KR20200127467A publication Critical patent/KR20200127467A/en
Application granted granted Critical
Publication of KR102224487B1 publication Critical patent/KR102224487B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

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

Abstract

According to an embodiment of the present invention, provided is a machine learning platform management system capable of managing various machine learning related frameworks with one platform. The machine learning platform management system comprises: a master node that manages machine learning tasks and commands registered through an external program; a session node that analyzes machine learning task information and the commands received from the master node and assigns the same to an executable lower node; and a worker node that performs machine learning according to the machine learning task information and the commands assigned from the session node, and reports learning progress and resource status to the session node.

Description

머신 러닝 플랫폼 관리 시스템 및 방법{MANAGEMENT SYSTEM AND METHOD OF MACHINE LEARNING PLATFORM}Machine learning platform management system and method {MANAGEMENT SYSTEM AND METHOD OF MACHINE LEARNING PLATFORM}

본 발명의 일실시예는 머신 러닝 플랫폼 관리 시스템 및 방법에 관한 것으로, 더욱 구체적으로는 다양한 프레임 워크가 적용된 머신 러닝 환경에 적용될 수 있는 머신 러닝 플랫폼 관리 시스템 및 방법에 관한 것이다.An embodiment of the present invention relates to a machine learning platform management system and method, and more particularly, to a machine learning platform management system and method that can be applied to a machine learning environment to which various frameworks are applied.

최근 구글(Google), 마이크로소프트(Microsoft) 등의 글로벌 IT 기업들과 학계 연구그룹들은 머신러닝 기술관련 플랫폼(프레임워크, 라이브러리 등)을 무료로 공개하였다. 공개된 머신러닝 플랫폼은 사용자가 복잡한 머신러닝 내부 기술을 알지 못해도 손쉽게 이용 가능한 인터페이스를 제공‘하여 기술사용에 대한 사용자의 진입장벽을 획기적으로 낮추었다. 오픈 플랫폼을 공개한 기업 또는 연구그룹은 깃허브(Github), 자사의 웹을 통해 새로운 또는 개선된 학습 알고리즘과 향상된 하드웨어 활용 기술을 꾸준하게 업데이트 중에 있으며 대다수의 오픈 플랫폼들은 직관적인 사용자 인터페이스 제공을 통한 사용성, CPU 및 GPU를 활용한 학습 모델의 성능, 분산 플랫폼 기반 확장성 등의 향상을 목표로 개발되었다.Recently, global IT companies such as Google and Microsoft and academic research groups have released platforms related to machine learning technology (framework, library, etc.) for free. The unveiled machine learning platform provides an interface that users can easily use even if they do not know about complex machine learning internal technologies, dramatically lowering the barriers to entry for users to use the technology. Companies or research groups that have released open platforms are constantly updating new or improved learning algorithms and advanced hardware utilization technologies through Github and its web, and most open platforms are available through intuitive user interfaces. It was developed with the aim of improving the performance of learning models using CPU and GPU, and scalability based on distributed platforms.

구글 브레인팀은 2015년 11월 기존 딥러닝 플랫폼 DistBelief를 개선한 텐서플로우(TensorFlow)를 공개하여 유연하고 확장성이 향상된 결과를 도출하고 학습 과정에서 결과를 직관적인 그래프로 표현하였으며 2017년 5월 구글 개발자 컨퍼런스에서 안드로이드 모바일 플랫폼에서 머신러닝을 활용을 위해 개발한 텐서플로우 라이트 (TensorFlow Lite)를 공개하였다.In November 2015, the Google Brain Team released TensorFlow, an improved version of the existing deep learning platform DistBelief, to derive flexible and scalable results, and express the results in an intuitive graph during the learning process. At the developer conference, TensorFlow Lite, developed to utilize machine learning on the Android mobile platform, was unveiled.

아파치 소프트웨어 재단 루씬 프로젝트의 하위 프로젝트인 머하웃(Mahout)은 확장 가능한 머신러닝 라이브러리 구현을 목표로 개발되어, 2010년 아파치 공식 프로젝트 단계인 탑-레벨로 전환하였다. 대용량 데이터 처리 시스템인 하둡 파일 시스템을 사용하였고, 최근 성능과 사용자 편의성이 향상된 스파크 시스템 등을 활용한다.Mahout, a sub-project of the Apache Software Foundation's Lusin project, was developed with the aim of implementing an extensible machine learning library, and in 2010, it was converted to a top-level Apache project stage. Hadoop file system, which is a large-capacity data processing system, is used, and the Spark system with improved performance and user convenience is used.

아파치 소프트웨어 재단 스파크 프로젝트의 내부 프로젝트인 MLlib는 대용량 데이터를 활용하는 빠른 성능의 머신러닝 기술을 제공하고자 개발되어 2013년에 공개되었다. 메모리 기반으로 동작하여 디스크 기반의 머하웃 보다 빠르다고 알려져 있지만, 지원하는 딥러닝 기술이 제한적이다.MLlib, an internal project of the Apache Software Foundation's Spark Project, was developed to provide high-speed machine learning technology that utilizes large amounts of data, and was released in 2013. It is known to be faster than disk-based Mahout because it operates based on memory, but the deep learning technology it supports is limited.

페이스북 인공지능 연구그룹이 2017년 7월 공개한 Caffe2는 딥러닝 플랫폼으로써 기존의 Caffe를 기반으로 엔비디아(NVDIA), 퀄컴(Qualcumm), 인텔(Intel), 마이크로소프트(Microsoft) 등 여러 기업들과 연구, 개발하였으며, 학습 모델의 성능, 이식성, 활용성 등을 향상시키는 데에 초점을 맞췄다.Caffe2, which was unveiled by Facebook's artificial intelligence research group in July 2017, is a deep learning platform based on the existing Caffe. Researched and developed, and focused on improving the performance, portability, and usability of learning models.

최근 몇 년 사이 머신러닝의 필요성이 높아지고, 동시에 기업 및 학계에서 다양한 머신러닝 플랫폼을 공개하면서, 이를 적용가능한 환경이라면 구체적인 기술을 알지 못하는 사용자도 머신러닝 기반의 애플리케이션 개발이 가능해졌다.In recent years, the necessity of machine learning has increased, and at the same time, companies and academia have unveiled various machine learning platforms, and if the environment is applicable to them, even users who do not know specific technologies can develop machine learning-based applications.

하지만, 머신러닝 플랫폼을 사용하기 위해서는 머신러닝 환경을 구성해야 한다. 예를 들어, 텐서플로우를 사용하기 위해 일반적으로 파이썬 언어가 필요하다. 파이썬 언어를 설치하기 위해 아나콘다와 같은 가상환경을 구축하거나 텐서플로우를 설치하고 텐서플로우 작업을 하기 위해 파이참(PyCharm)과 같은 IDE를 설치하는 복잡한 과정을 거친다. 이런 환경 구성 과정에서 일반 사용자들은 의존성 문제, 버전 호환성 문제 등의 각종 문제에 부딪혀 머신러닝을 수행할 환경 구축에는 진입장벽이 높은 편이다.However, in order to use a machine learning platform, you need to configure a machine learning environment. For example, to use TensorFlow you usually need the Python language. It goes through the complicated process of building a virtual environment like Anaconda to install the Python language, or installing TensorFlow and an IDE like PyCharm to work with TensorFlow. In the process of configuring such an environment, general users encounter various problems such as dependency problems and version compatibility problems, so the barrier to entry is high in building an environment to perform machine learning.

본 발명이 이루고자 하는 기술적 과제는 다양한 머신러닝 관련 프레임 워크들을 하나의 플랫폼으로 관리할 수 있는 머신 러닝 플랫폼 관리 시스템 및 방법을 제공하는데 있다.An object of the present invention is to provide a machine learning platform management system and method capable of managing various machine learning related frameworks as a single platform.

또한, 머신 러닝 작업을 최적의 노드에 분배하고 실행 결과를 실시간으로 모니터링할 수 있는 머신 러닝 플랫폼 관리 시스템 및 방법을 제공하는데 있다.In addition, it is to provide a machine learning platform management system and method capable of distributing machine learning tasks to optimal nodes and monitoring execution results in real time.

또한, 외부 프로그램을 통하여 원격으로 머신러닝을 수행할 수 있는 머신 러닝 플랫폼 관리 시스템 및 방법을 제공하는데 있다.In addition, it is to provide a machine learning platform management system and method capable of remotely performing machine learning through an external program.

본 발명의 실시예에 따르면, 외부 프로그램을 통해 등록된 머신러닝 테스크(task) 및 명령어를 관리하는 마스터 노드; 상기 마스터 노드로부터 전달받은 상기 머신러닝 테스크 정보 및 상기 명령어를 분석하여 실행 가능한 하위 노드에 할당하는 세션 노드; 및 상기 세션 노드로부터 할당받은 상기 머신러닝 테스크 정보 및 상기 명령어에 따라 머신러닝을 수행하고, 학습 진행 상황 및 자원 상황을 상기 세션 노드로 보고하는 워커노드를 포함하는 머신 러닝 플랫폼 관리 시스템을 제공한다.According to an embodiment of the present invention, a master node for managing machine learning tasks and instructions registered through an external program; A session node that analyzes the machine learning task information and the command received from the master node and allocates it to an executable lower node; And a worker node that performs machine learning according to the machine learning task information and the command allocated from the session node, and reports a learning progress status and resource status to the session node.

상기 세션 노드는 상기 워커 노드로부터 보고받은 자원 상황에 따라 연산 처리 능력을 분석하고, 분석된 연산 처리 능력을 기준으로 상기 머신러닝 테스크 정보 및 상기 명령어를 할당할 수 있다.The session node may analyze computational processing capability according to resource conditions reported from the worker node, and allocate the machine learning task information and the instruction based on the analyzed computational processing capability.

상기 세션 노드는 상기 연산 처리 능력에 따라 순차적으로 정렬된 워커 노드 리스트를 생성하여 상기 워커 노드 리스트에 따라 상기 머신러닝 테스크 정보 및 상기 명령어를 할당할 수 있다.The session node may generate a list of worker nodes sequentially arranged according to the computational processing capability, and allocate the machine learning task information and the command according to the list of worker nodes.

상기 자원 상황은 CPU자원정보, GPU 자원정보, 메모리 자원정보, 디스크 자원정보, 패키지 버전, 라이브러리 버전, 파이썬 언어 버전, 프레임워크 종류, 프레임워크 버전, 운영체제 종류 및 운영체제 버전 중 적어도 하나를 포함할 수 있다.The resource status may include at least one of CPU resource information, GPU resource information, memory resource information, disk resource information, package version, library version, Python language version, framework type, framework version, operating system type, and operating system version. have.

상기 세션 노드는 동일한 프레임 워크를 사용하는 적어도 하나의 워커 노드를 관리할 수 있다.The session node may manage at least one worker node using the same framework.

상기 워커 노드는 할당받은 상기 머신 러닝 테스크 정보 및 상기 명령어에 따라 외부 네트워크 저장소에 액세스하여 상기 머신 러닝 테스크 및 학습 데이터 파일을 다운로드 받을 수 있다.The worker node may access an external network storage according to the allocated machine learning task information and the command to download the machine learning task and training data files.

상기 학습 진행 상황은 Loss 값, 학습의 정확도, Validation 값 및 진행율 중 적어도 하나를 포함할 수 있다.The learning progress status may include at least one of a loss value, learning accuracy, validation value, and progress rate.

상기 명령어는 상기 머신 러닝 테스크의 할당, 실행, 중지 및 학습 진행 상황 보고 중 적어도 하나를 포함할 수 있다. The command may include at least one of allocation, execution, suspension of the machine learning task, and reporting of a learning progress status.

본 발명의 실시예에 따르면, 워커 노드가 자원 정보를 세션 노드에 전송하여 연결을 요청하는 단계; 상기 세션 노드가 상기 자원 정보를 통하여 상기 워커 노드가 머신 러닝 수행이 가능한 노드인지 확인하는 단계; 상기 세션 노드가 머신 러닝 수행이 가능한 적어도 하나의 워커 노드를 이용하여 그룹을 형성하는 단계; 마스터 노드가 외부 프로그램을 통하여 머신러닝 테스크(task) 및 명령어를 등록받는 단계; 상기 마스터 노드가 상기 머신러닝 테스크 정보 및 상기 명령어를 상기 세션 노드에 전달하는 단계; 상기 세션 노드가 상기 머신러닝 테스크 정보 및 상기 명령어를 분석하여 실행 가능한 워커 노드에 할당하는 단계; 상기 워커 노드가 상기 세션 노드로부터 할당받은 상기 머신러닝 테스크 정보 및 상기 명령어에 따라 머신러닝을 수행하는 단계; 및 상기 워커 노드가 학습 진행 상황 및 상기 자원 상황을 상기 세션 노드로 보고하는 단계를 포함하는 머신 러닝 플랫폼 관리 방법을 제공한다.According to an embodiment of the present invention, the worker node transmits resource information to a session node to request connection; Checking, by the session node, whether the worker node is a node capable of performing machine learning through the resource information; Forming a group by the session node using at least one worker node capable of performing machine learning; Receiving, by the master node, registering machine learning tasks and instructions through an external program; Transmitting, by the master node, the machine learning task information and the command to the session node; Analyzing, by the session node, the machine learning task information and the instruction and allocating it to an executable worker node; Performing, by the worker node, machine learning according to the machine learning task information and the command allocated from the session node; And reporting the learning progress status and the resource status to the session node by the worker node.

상기 그룹을 형성하는 단계는, 동일한 프레임 워크를 사용하는 적어도 하나의 워커 노드를 이용하여 그룹을 형성할 수 있다.In the forming of the group, a group may be formed using at least one worker node using the same framework.

본 발명인 머신 러닝 플랫폼 관리 시스템 및 방법은 다양한 머신러닝 관련 프레임 워크들을 하나의 플랫폼으로 관리할 수 있다.The machine learning platform management system and method according to the present invention can manage various machine learning related frameworks with one platform.

또한, 머신 러닝 작업을 최적의 노드에 분배하고 실행 결과를 실시간으로 모니터링할 수 있다.In addition, machine learning tasks can be distributed to optimal nodes and execution results can be monitored in real time.

또한, 외부 프로그램을 통하여 원격으로 머신러닝을 수행할 수 있다.In addition, machine learning can be performed remotely through an external program.

도1은 실시예에 따른 머신 러닝 플랫폼 관리 시스템의 개념도이다.
도2는 실시예에 따른 마스터 노드의 구성 블록도이다
도3은 실시예에 따른 플랫폼 관리 데이터베이스의 동작을 설명하기 위한 도면이다.
도4는 실시예에 따른 세션 노드의 구성 블록도이다.
도5는 실시예에 따른 워커 노드의 구성 블록도이다.
도6은 실시예에 따른 머신 러닝 플랫폼 관리 방법의 순서도이다.
도7은 실시예에 따른 워커 노드 연결 과정을 설명하기 위한 도면이다.
도8은 실시예에 따른 머신 러닝 테스크 할당 과정을 설명하기 위한 도면이다.
도9은 실시예에 따른 머신 러닝 명령어 실행 과정을 설명하기 위한 도면이다.
도10은 실시예에 따른 자원 모니터링 매니저의 동작을 설명하기 위한 도면이다.
1 is a conceptual diagram of a machine learning platform management system according to an embodiment.
2 is a block diagram showing a configuration of a master node according to an embodiment
3 is a diagram for describing an operation of a platform management database according to an embodiment.
4 is a block diagram of a configuration of a session node according to an embodiment.
5 is a block diagram of a worker node according to an embodiment.
6 is a flowchart of a method for managing a machine learning platform according to an embodiment.
7 is a diagram illustrating a process of connecting a worker node according to an embodiment.
8 is a diagram for explaining a machine learning task allocation process according to an embodiment.
9 is a diagram for describing a process of executing a machine learning instruction according to an embodiment.
10 is a diagram illustrating an operation of a resource monitoring manager according to an embodiment.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.

다만, 본 발명의 기술 사상은 설명되는 일부 실시 예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있고, 본 발명의 기술 사상 범위 내에서라면, 실시 예들간 그 구성 요소들 중 하나 이상을 선택적으로 결합, 치환하여 사용할 수 있다.However, the technical idea of the present invention is not limited to some embodiments to be described, but may be implemented in various different forms, and within the scope of the technical idea of the present invention, one or more of the constituent elements may be selectively selected between the embodiments. It can be combined with and substituted for use.

또한, 본 발명의 실시예에서 사용되는 용어(기술 및 과학적 용어를 포함)는, 명백하게 특별히 정의되어 기술되지 않는 한, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 일반적으로 이해될 수 있는 의미로 해석될 수 있으며, 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥상의 의미를 고려하여 그 의미를 해석할 수 있을 것이다.In addition, terms (including technical and scientific terms) used in the embodiments of the present invention are generally understood by those of ordinary skill in the art, unless explicitly defined and described. It can be interpreted as a meaning, and terms generally used, such as terms defined in a dictionary, may be interpreted in consideration of the meaning in the context of the related technology.

또한, 본 발명의 실시예에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다.In addition, terms used in the embodiments of the present invention are for describing the embodiments and are not intended to limit the present invention.

본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함할 수 있고, "A 및(와) B, C 중 적어도 하나(또는 한 개 이상)"로 기재되는 경우 A, B, C로 조합할 수 있는 모든 조합 중 하나 이상을 포함할 수 있다.In the present specification, the singular form may include the plural form unless specifically stated in the phrase, and when described as "at least one (or more than one) of A and (and) B and C", it is combined with A, B, and C. It may contain one or more of all possible combinations.

또한, 본 발명의 실시 예의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다.In addition, terms such as first, second, A, B, (a), and (b) may be used in describing the constituent elements of the embodiment of the present invention.

이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등으로 한정되지 않는다.These terms are only for distinguishing the component from other components, and are not limited to the nature, order, or order of the component by the term.

그리고, 어떤 구성 요소가 다른 구성요소에 '연결', '결합' 또는 '접속'된다고 기재된 경우, 그 구성 요소는 그 다른 구성 요소에 직접적으로 연결, 결합 또는 접속되는 경우뿐만 아니라, 그 구성 요소와 그 다른 구성 요소 사이에 있는 또 다른 구성 요소로 인해 '연결', '결합' 또는 '접속' 되는 경우도 포함할 수 있다.And, when a component is described as being'connected','coupled' or'connected' to another component, the component is not only directly connected, coupled or connected to the other component, but also the component and It may also include the case of being'connected','coupled' or'connected' due to another component between the other components.

또한, 각 구성 요소의 "상(위) 또는 하(아래)"에 형성 또는 배치되는 것으로 기재되는 경우, 상(위) 또는 하(아래)는 두 개의 구성 요소들이 서로 직접 접촉되는 경우뿐만 아니라 하나 이상의 또 다른 구성 요소가 두 개의 구성 요소들 사이에 형성 또는 배치되는 경우도 포함한다. 또한, "상(위) 또는 하(아래)"으로 표현되는 경우 하나의 구성 요소를 기준으로 위쪽 방향뿐만 아니라 아래쪽 방향의 의미도 포함할 수 있다.In addition, when it is described as being formed or disposed in the "top (top) or bottom (bottom)" of each component, the top (top) or bottom (bottom) is one as well as when the two components are in direct contact with each other. It also includes a case in which the above other component is formed or disposed between the two components. In addition, when expressed as "upper (upper) or lower (lower)", the meaning of not only an upward direction but also a downward direction based on one component may be included.

이하, 첨부된 도면을 참조하여 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 대응하는 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings, but the same reference numerals are assigned to the same or corresponding components regardless of the reference numerals, and redundant descriptions thereof will be omitted.

도1은 실시예에 따른 머신 러닝 플랫폼 관리 시스템의 개념도이다. 도1을 참조하면, 실시예에 따른 머신 러닝 플랫폼 관리 시스템(1)은 마스터 노드(10), 세션 노드(20) 및 워커 노드(30)를 포함하여 구성될 수 있다. 실시예에서 하나의 마스터 노드(10)는 복수개의 세션 노드(20)를 관리할 수 있으며, 하나의 세션 노드(20)는 복수개의 워커 노드(30)를 관리할 수 있다. 즉, 마스터 노드(10)의 하위 노드는 세션 노드(20)이고, 세션 노드(20)의 하위 노드는 워커 노드(30)로 정의될 수 있다.1 is a conceptual diagram of a machine learning platform management system according to an embodiment. Referring to FIG. 1, the machine learning platform management system 1 according to the embodiment may include a master node 10, a session node 20, and a worker node 30. In the embodiment, one master node 10 may manage a plurality of session nodes 20, and one session node 20 may manage a plurality of worker nodes 30. That is, a lower node of the master node 10 may be defined as a session node 20, and a lower node of the session node 20 may be defined as a worker node 30.

마스터 노드(10)는 외부 프로그램(2)을 통해 등록된 머신러닝 테스크(task) 및 명령어를 관리할 수 있다. 실시예에서 외부 프로그램(2)은 웹 클라이언트일 수 있다.The master node 10 may manage machine learning tasks and commands registered through the external program 2. In an embodiment, the external program 2 may be a web client.

도2는 실시예에 따른 마스터 노드의 구성 블록도이다. 도2를 참조하면, 마스터 노드(10)는 자원 모니터링 매니저(11), 테스크 매니저(12), 명령 처리기(13), 클라이언트 매니저(14) 및 플랫폼 관리 데이터베이스(15)를 포함하여 구성될 수 있다.2 is a block diagram illustrating a configuration of a master node according to an embodiment. Referring to FIG. 2, the master node 10 may include a resource monitoring manager 11, a task manager 12, a command processor 13, a client manager 14, and a platform management database 15. .

자원 모니터링 매니저(11)는 연결되어 있는 각 세션 노드(20)가 관리하는 워커 노드(30)들의 자원들을 모니터링할 수 있다. 또한, 자원 모니터링 매니저(11)는 플랫폼 내의 머신 러닝을 위해 사용할 수 있는 자원 상황을 확인할 수 있다. The resource monitoring manager 11 may monitor resources of the worker nodes 30 managed by each connected session node 20. In addition, the resource monitoring manager 11 may check resource conditions that can be used for machine learning in the platform.

자원 상황은 하드웨어 자원 상황 및 소프트웨어 자원 상황으로 분류할 수 있다. 하드웨어 자원 상황은 CPU자원정보, GPU 자원정보, 메모리 자원정보, 디스크 자원정보 등을 포함할 수 있다. 구체적으로 하드웨어 자원 상황은 각 CPU 및 GPU의 연산처리 능력 단위인 GFLOPS, 메모리의 사용량 및 전체 크기, 디스크의 사용량 및 전체 크기 정보로 나타낼 수 있다. 소프트웨어 자원 상황은 패키지 버전, 라이브러리 버전, 파이썬 언어 버전, 프레임워크 종류, 프레임워크 버전, 운영체제 종류 및 운영체제 버전 등을 포함할 수 있다.The resource situation can be classified into a hardware resource situation and a software resource situation. The hardware resource status may include CPU resource information, GPU resource information, memory resource information, disk resource information, and the like. Specifically, the hardware resource situation can be expressed as GFLOPS, which is a unit of computational processing capability of each CPU and GPU, memory usage and total size, disk usage and total size information. The software resource status may include package version, library version, Python language version, framework type, framework version, operating system type, and operating system version.

자원 모니터링 매니저(11)는 플랫폼 내의 전체 가용자원을 파악함으로써 각 세션 노드(20) 및 워커 노드(30)의 가용자원을 파악할 수 있다. 자원 모니터링 매니저(11)는 자원 상황을 외부 프로그램(2)에 전송하여 사용자가 실시간으로 플랫폼 자원상황을 파악하도록 제공할 수 있다.The resource monitoring manager 11 can grasp the available resources of each session node 20 and the worker node 30 by grasping the total available resources in the platform. The resource monitoring manager 11 may transmit the resource status to the external program 2 and provide a user to understand the platform resource status in real time.

또한, 자원 모니터링 매니저는 세션 노드의 자원상황에 따라 머신러닝 테스크를 분배하며 프레임워크 별 머신러닝 테스크의 수행 요청량에 따라 세션 노드 당 워커 노드의 할당을 재구성할 수 있다.In addition, the resource monitoring manager distributes the machine learning tasks according to the resource status of the session nodes, and can reconfigure the allocation of worker nodes per session node according to the amount of requests to perform machine learning tasks for each framework.

테스크 매니저(12)는 외부 프로그램(2)을 통해 학습 파일 및 데이터 세트(Dataset)을 플랫폼에 등록하는 기능을 제공할 수 있다. 테스크 매니저(12)는 세션 노드(20)에 머신 러닝 테스크 정보를 전송할 수 있다. 외부 프로그램(2)을 통하여 등록된 학습 파일 및 데이터 세트는 외부 네트워크 저장소(3)에서 각 테스크별 고유 폴더에 저장될 수 있다. 테스크 매니저(12)는 해당 고유 폴더의 정보 및 사용자 정보를 플랫폼 관리 데이터베이스(15)에 갱신하여 저장할 수 있다. 워커 노드(30)는 머신 러닝 수행시 플랫폼 관리 데이터베이스(15)에 저장된 테스크 정보를 바탕으로 외부 네트워크 저장소(3)에 액세스근하여 해당 테스크를 다운받아 학습을 진행할 수 있다.The task manager 12 may provide a function of registering a learning file and a data set to the platform through the external program 2. The task manager 12 may transmit machine learning task information to the session node 20. Learning files and data sets registered through the external program 2 may be stored in a folder specific to each task in the external network storage 3. The task manager 12 may update and store information about a corresponding unique folder and user information in the platform management database 15. When performing machine learning, the worker node 30 accesses the external network storage 3 based on the task information stored in the platform management database 15, downloads the corresponding task, and performs learning.

명령 처리기(13)는 외부 프로그램(2)을 통해 사용자가 등록한 테스크에 대해 머신 러닝과 관련한 명령어를 처리할 수 있다. 사용자가 머신 러닝 실행과 관련한 명령어를 외부 프로그램을 통해 입력하면, 명령 처리기(13)는 해당 테스크 정보를 플랫폼 관리 데이터베이스(15)에서 확인하고 세션 노드(20)에 머신 러닝 테스크 정보 및 명령어를 전달할 수 있다.The command processor 13 may process a command related to machine learning for a task registered by a user through the external program 2. When a user inputs a command related to machine learning execution through an external program, the command processor 13 checks the corresponding task information in the platform management database 15 and transmits the machine learning task information and commands to the session node 20. have.

클라이언트 매니저(14)는 외부 프로그램(2)으로부터 등록된 사용자 정보를 관리할 수 있다. 사용자 정보는 ID, Passwd, 권한과 관련한 정보를 포함할 수 있다. 등록된 사용자 정보는 플랫폼 관리 데이터베이스(15)에 갱신되어 저장될 수 있다.The client manager 14 may manage user information registered from the external program 2. User information may include information related to ID, password, and authority. The registered user information may be updated and stored in the platform management database 15.

플랫폼 관리 데이터베이스(15)는 플랫폼의 머신러닝 테스크, 사용자 정보, 데이터, 학습실행결과 Log 정보를 저장할 수 있다. The platform management database 15 may store platform machine learning tasks, user information, data, and log information of learning execution results.

도3은 실시예에 따른 플랫폼 관리 데이터베이스의 동작을 설명하기 위한 도면이다. 도3을 참조하면, 사용자와 관련된 정보는 User Table로 관리되며 Idx 항목은 Task Table의 user_idx와 연결되어 사용자가 등록한 Task를 구분하는 데에 사용될 수 있다. User Table은 사용자의 id, 비밀번호, 권한을 관리한다.3 is a diagram for describing an operation of a platform management database according to an embodiment. Referring to FIG. 3, user-related information is managed as a user table, and an Idx item is connected to user_idx of a task table, and can be used to classify a task registered by a user. User Table manages user ID, password, and authority.

테스크와 관련된 정보는 Task Table로 관리되며 Idx는 Log Table의 Task_idx와 연결되어 테스크와 머신러닝 수행으로 인한 결과값인 로그가 연결되어 학습을 실행한 테스크의 결과 정보 로그를 구분하는 데에 사용된다. Task Table은 테스크의 사용자id, 학습 상태, 명칭, 할당된 세션 노드의 Ip 및 연결 포트, 할당된 워커 노드의 Ip 및 연결 포트, 워커 노드에서 실행될 때의 프로세스 ID, 진행률, 학습의 정확도, Task의 등록된 시간으로 구성된 정보를 관리한다. Task-related information is managed as a task table, and Idx is connected to Task_idx in the log table, and the log is connected to the log, which is the result value of the task and machine learning, and is used to classify the log of the result information of the task that has been trained. The task table is the user ID of the task, learning status, name, IP and connection port of the assigned session node, IP and connection port of the assigned worker node, process ID when running on the worker node, progress, accuracy of learning, task. Manage information composed of registered time.

테스크의 수행 결과값은 Log Table로 관리되며 테스크의 idx와 Log Table의 Task_idx와 연결되어 각 테스크의 결과값들을 구분하는 데에 사용될 수 있다. Log Table은 결과값의 순서, 머신 러닝 수행으로 인한 결과의 출력물들을 관리한다. The result value of task execution is managed as a log table, and it is connected to the idx of the task and the task_idx of the log table, and can be used to classify the result values of each task. The log table manages the order of result values and outputs of results from machine learning execution.

Data Table은 테스크의 User_idx와 연결되어 관리되어 각 테스크의 데이터세트를 구분하는 데에 사용될 수 있다. Data Table은 머신러닝을 수행할 데이터에 대한 내용으로 데이터세트의 이름, 사용자의 메모, 등록된 시각, 외부 네트워크 저장소에 저장된 경로로 구성된 정보를 관리한다. The Data Table is managed by being connected to the User_idx of the task, and can be used to classify the dataset of each task. The Data Table is the content of data to be machine learning and manages information consisting of the name of the dataset, the user's memo, the registered time, and the path stored in the external network storage.

세션 노드(20)는 마스터 노드(10)로부터 전달받은 머신러닝 테스크 정보 및 명령어를 분석하여 실행 가능한 하위 노드에 할당할 수 있다.The session node 20 may analyze machine learning task information and instructions received from the master node 10 and allocate them to an executable lower node.

세션 노드(20)는 워커 노드(30)로부터 보고받은 자원 상황에 따라 연산 처리 능력을 분석하고, 분석된 연산 처리 능력을 기준으로 머신러닝 테스크 정보 및 명령어를 할당할 수 있다.The session node 20 may analyze operation processing capability according to the resource situation reported from the worker node 30 and allocate machine learning task information and instructions based on the analyzed operation processing capability.

또한, 세션 노드(20)는 연산 처리 능력에 따라 순차적으로 정렬된 워커 노드 리스트를 생성하여 워커 노드 리스트에 따라 머신러닝 테스크 정보 및 명령어를 할당할 수 있다.In addition, the session node 20 may generate a list of worker nodes sequentially arranged according to computational processing capability, and allocate machine learning task information and instructions according to the list of worker nodes.

세션 노드(20)는 동일한 프레임 워크를 사용하는 적어도 하나의 워커 노드를 관리할 수 있다.The session node 20 may manage at least one worker node using the same framework.

도4는 실시예에 따른 세션 노드의 구성 블록도이다. 도4를 참조하면, 세션 노드(20)는 명령 분석기(21) 및 워커 노드 매니저(22)를 포함하여 구성될 수 있다.4 is a block diagram of a configuration of a session node according to an embodiment. Referring to FIG. 4, the session node 20 may include a command analyzer 21 and a worker node manager 22.

명령 분석기(21)는 마스터 노드(10)로부터 전달받은 머신 러닝 테스크에 대한 명령어를 해석하여 적합한 워커 노드(30)에 전달할 수 있다. 명령어는 머신 러닝 테스크의 할당, 실행, 중지 및 학습 진행 상황 보고 중 적어도 하나를 포함할 수 있다. 마스터 노드(10)로부터 전달받은 명령어는 분석 과정을 거쳐 적합한 테스크를 수행할 수 있는 워커 노드(30)에 전달된다. The command analyzer 21 may interpret the command for the machine learning task received from the master node 10 and transmit it to a suitable worker node 30. The instruction may include at least one of assigning, executing, stopping, and reporting progress of a machine learning task. The command received from the master node 10 is transmitted to a worker node 30 capable of performing an appropriate task through an analysis process.

워커 노드 매니저(22)는 실시간으로 관리하는 워커 노드의 자원을 모니터링할 수있다. 워커 노드 매니저(22)는 실시간으로 각 워커 노드로부터 하드웨어 자원 상황은 CPU자원정보, GPU 자원정보, 메모리 자원정보, 디스크 자원정보, 패키지 버전, 라이브러리 버전, 파이썬 언어 버전, 프레임워크 종류, 프레임워크 버전, 운영체제 종류 및 운영체제 버전 중 적어도 하나를 포함하는 자원 상황을 보고받을 수 있다. 워커 노드 매니저(22)는 각 워커 노드로부터 보고받은 자원 상황을 바탕으로 관리하는 워커 노드(30)의 자원 상황에 따라 높은 연산처리 능력(GFLOPS) 순으로 워커 노드 리스트를 생성할 수 있다.The worker node manager 22 may monitor resources of a worker node managed in real time. The worker node manager 22 determines the hardware resource status from each worker node in real time: CPU resource information, GPU resource information, memory resource information, disk resource information, package version, library version, Python language version, framework type, and framework version. , The resource status including at least one of the operating system type and the operating system version may be reported. The worker node manager 22 may generate a list of worker nodes in the order of high computational processing capability (GFLOPS) according to the resource status of the worker node 30 managed based on the resource status reported from each worker node.

워커 노드 리스트는 워커 노드 매니저(22)가 모니터링 된 자원 상황을 바탕으로 연산처리 능력이 높은 순으로 워커 노드를 정렬시킨 리스트를 의미할 수 있다. 워커 노드 매니저(22)는 자원 상황을 모니터링 하는 주기에 따라 자원 상황이 변결될 때마다 워커 노드의 상황을 반영하여 워커 노드 리스트를 갱신할 수 있다. 이를 통하여 플랫폼 내에 부여되는 머신 러닝 테스크가 최적의 처리 능력을 보유한 워커 노드(30)에 의하여 실시간으로 빠르게 처리될 수 있도록 한다.The worker node list may mean a list in which the worker node manager 22 sorts worker nodes in order of high computational processing capability based on the monitored resource situation. The worker node manager 22 may update the worker node list by reflecting the status of the worker node whenever the resource status changes according to the period of monitoring the resource status. Through this, the machine learning task given in the platform can be quickly processed in real time by the worker node 30 having the optimum processing capability.

워커 노드 매니저(22)는 마스터 노드로부터 워커 노드 재구성 명령을 전송받게 되면 세션 노드를 변경할 워커 노드에 할당되는 세션 노드의 연결 정보를 전송한다.When the worker node manager 22 receives a command to reconfigure a worker node from the master node, the worker node manager 22 transmits connection information of a session node allocated to a worker node to change the session node.

워커 노드(30)는 세션 노드(20)로부터 할당받은 머신러닝 테스크 정보 및 명령어에 따라 머신러닝을 수행하고, 학습 진행 상황 및 자원 상황을 세션 노드로 보고할 수 있다.The worker node 30 may perform machine learning according to machine learning task information and instructions allocated from the session node 20, and report a learning progress and resource status to the session node.

워커 노드(30)는 할당받은 머신 러닝 테스크 정보 및 명령어에 따라 외부 네트워크 저장소에 액세스하여 머신 러닝 테스크 및 학습 데이터 파일을 다운로드 받을 수 있다.The worker node 30 may access the external network storage according to the allocated machine learning task information and instructions to download the machine learning task and training data files.

학습 진행 상황은 Loss 값, 학습의 정확도, Validation 값 및 진행율 중 적어도 하나를 포함할 수 있다.The learning progress status may include at least one of a Loss value, a learning accuracy, a validation value, and a progress rate.

도5는 실시예에 따른 워커 노드의 구성 블록도이다. 도5를 참조하면, 실시예에 따른 워커 노드(30)는 테스크 실행기(31) 및 자원 관리 모듈(32)을 포함하여 구성될 수 있다. 5 is a block diagram of a worker node according to an embodiment. Referring to FIG. 5, the worker node 30 according to the embodiment may include a task executor 31 and a resource management module 32.

테스크 실행기(31)는 세션 노드(20)로부터 주어진 머신 러닝 테스크 정보에 따라 머신 러닝을 수행할 환경을 세팅할 수 있다. 테스크 실행기(31)는 머신 러닝 테스크 정보에 따라 관련된 파이썬 버전 확인, 머신러닝 프레임워크 버전 확인, 외부 네트워크 저장소로부터 학습 데이터 세트 및 테스크 파일 다운로드를 수행하여 환경 세팅을 수행할 수 있다. The task executor 31 may set an environment to perform machine learning according to the machine learning task information given from the session node 20. The task executor 31 may perform environment setting by checking a related Python version, checking a version of a machine learning framework, and downloading a training data set and a task file from an external network repository according to the machine learning task information.

테스크 실행기(31)는 세션 노드(20)로부터 전달받은 머신러닝 수행 명령어에 따라 해당 테스크의 학습 실행, 학습 중지, 학습 진행 상황 보고를 수행할 수 있다. 테스크의 학습 실행은 세팅된 테스크의 환경에서 머신 러닝 수행을 요청하는 명령어이다. 테스크의 학습 중지는 진행 중인 학습 중단을 요청하는 명령어이다. 테스크의 학습 진행 상황 보고는 머신 러닝을 수행하면서 나오는 학습실행결과 Log의 보고를 요청하는 명령어이다. 테스크 실행기(31)는 학습 진행의 결과 모델 파일을 관리하며 플랫폼 관리 데이터베이스(15)에 해당 테스크와 학습 진행 결과 Log를 갱신할 수 있다.The task executor 31 may perform learning execution, stop learning, and report on the progress of learning according to the machine learning execution command received from the session node 20. The learning execution of a task is a command that requests machine learning execution in the set task environment. Stop learning for a task is a command that requests stopping learning in progress. The task's training progress report is a command that requests the report of the log of the training execution result generated while performing machine learning. The task executor 31 manages a model file as a result of the progress of learning, and may update the corresponding task and a log of the training progress in the platform management database 15.

자원 관리 모듈(32)은 주기적으로 워커 노드(30)의 하드웨어 및 소프트웨어 자원상황을 세션 노드(20)에 보고할 수 있다. 하드웨어 자원은 워커 노드(30)의 CPU/GPU의 연산처리 능력 및 실시간 연산처리 능력 사용률, 전체 메모리 및 실시간 메모리의 사용률, 전체 디스크 및 디스크의 사용률이다. 실시간 하드웨어 자원상황은 세션 노드가 워커 노드에 머신 러닝 테스크를 할당하는 주요 지표로 사용될 수 있다. 소프트웨어웨어 자원상황은 워커 노드가 세션 노드에 등록할 때의 설치된 패키지, 라이브러리, 가상환경 목록이다. 소프트웨어 자원이 새로 설치되거나 제거되는 경우, 워커 노드의 변경된 소프트웨어 자원 상황은 세션 노드에 전송되어 갱신될 수 있다.The resource management module 32 may periodically report the hardware and software resource status of the worker node 30 to the session node 20. The hardware resources are CPU/GPU computational processing capacity and real-time computational processing capacity utilization rate of the worker node 30, total memory and real-time memory utilization, and total disk and disk utilization. Real-time hardware resource status can be used as a key indicator for session nodes to allocate machine learning tasks to worker nodes. The softwareware resource status is a list of installed packages, libraries, and virtual environments when the worker node registers with the session node. When the software resource is newly installed or removed, the changed software resource status of the worker node may be transmitted to the session node and updated.

도6은 실시예에 따른 머신 러닝 플랫폼 관리 방법의 순서도이다.6 is a flowchart of a method for managing a machine learning platform according to an embodiment.

먼저, 워커 노드는 자원 정보를 세션 노드에 전송하여 연결을 플랫폼에 등록및 연결을 요청한다(S610).First, the worker node transmits resource information to the session node to register and request connection to the platform (S610).

다음으로, 세션 노드는 자원 정보를 통하여 워커 노드가 머신 러닝 수행이 가능한 노드인지 확인한다(S620).Next, the session node checks whether the worker node is a node capable of performing machine learning through resource information (S620).

다음으로, 세션 노드는 머신 러닝 수행이 가능한 적어도 하나의 워커 노드를 이용하여 그룹을 형성한다. 이 때, 세션 노드는 동일한 프레임 워크를 사용하는 적어도 하나의 워커 노드를 이용하여 그룹을 형성한다(S630).Next, the session node forms a group using at least one worker node capable of performing machine learning. In this case, the session node forms a group using at least one worker node using the same framework (S630).

다음으로, 마스터 노드는 외부 프로그램을 통하여 머신러닝 테스크(task) 및 명령어를 등록받는다(S640).Next, the master node registers a machine learning task and command through an external program (S640).

다음으로, 마스터 노드는 머신러닝 테스크 정보 및 명령어를 세션 노드에 전달한다(S650).Next, the master node transmits the machine learning task information and instructions to the session node (S650).

다음으로, 세션 노드는 머신러닝 테스크 정보 및 명령어를 분석하여 실행 가능한 워커 노드에 할당한다(S660).Next, the session node analyzes the machine learning task information and instructions and allocates it to an executable worker node (S660).

다음으로, 워커 노드는 세션 노드로부터 할당받은 머신러닝 테스크 정보 및 명령어에 따라 머신러닝을 수행한다(S670).Next, the worker node performs machine learning according to the machine learning task information and instructions allocated from the session node (S670).

다음으로, 워커 노드는 학습 진행 상황 및 자원 상황을 세션 노드로 보고한다(S680).Next, the worker node reports the learning progress and resource status to the session node (S680).

도7은 실시예에 따른 워커 노드 연결 과정을 설명하기 위한 도면이다. 도7을 참조하면, 워커 노드는 실행시 세션 노드에 자동으로 연결요청을 한다. 이 때 워커 노드는 자신의 하드웨어 자원 상황 및 소프트웨어 자원 상황을 연결 요청과 함께 전송한다(S701). 7 is a diagram illustrating a process of connecting a worker node according to an embodiment. Referring to FIG. 7, the worker node automatically requests a connection to the session node when it is executed. At this time, the worker node transmits its own hardware resource status and software resource status together with the connection request (S701).

세션 노드의 워커 노드 매니저는 워커 노드의 연결요청을 수신한다. 세션 노드의 워커 노드 매니저는 마스터 노드에 등록된 머신 러닝 테스크를 실행할 수 있는 프레임워크가 설치된 워커 노드인지 확인한다. 워커 노드 매니저는 학습 수행이 가능한 워커 노드임을 확인하면 해당 워터 노드를 워커 노드 리스트에 추가한다(S702). The worker node manager of the session node receives a connection request from the worker node. The worker node manager of the session node checks whether a worker node has a framework that can execute machine learning tasks registered in the master node. When the worker node manager confirms that the worker node is capable of performing training, it adds the water node to the worker node list (S702).

동시에 마스터 노드의 자원 모니터링 매니저는 세션 노드가 관리하는 워커 노드에 대한 정보를 갱신하여 새로운 워커 노드의 자원 상황을 반영한다(S703). At the same time, the resource monitoring manager of the master node updates information on the worker node managed by the session node to reflect the resource status of the new worker node (S703).

자원 모니터링 매니저는 외부 프로그램에 각 세션 노드 및 워커 노드의 연결을 반영한 자원 상황을 제공한다(S704). The resource monitoring manager provides a resource situation reflecting the connection of each session node and worker node to an external program (S704).

도8은 실시예에 따른 머신 러닝 테스크 할당 과정을 설명하기 위한 도면이다. 도8을 참조하면, 외부 프로그램을 통해 사용자가 플랫폼에 등록되면 클라이언트 매니저로 사용자의 정보가 전달된다(S801). 8 is a diagram for describing a process of assigning a machine learning task according to an embodiment. Referring to FIG. 8, when a user is registered with the platform through an external program, user information is transmitted to the client manager (S801).

사용자 정보는 플랫폼 관리 데이터베이스에 등록된다(S802). User information is registered in the platform management database (S802).

등록된 사용자는 외부 프로그램을 통하여 머신 러닝 테스크를 등록할 수 있다(S803). The registered user may register a machine learning task through an external program (S803).

사용자가 머신 러닝 테스크를 등록하면 머신 러닝 테스크의 데이터 세트 및 학습 파일이 외부 네트워크 저장소에 업로드된다(S804). When the user registers the machine learning task, the data set and training file of the machine learning task are uploaded to the external network storage (S804).

또한 외부 네트워크 저장소에 해당 머신 러닝 테스크 파일의 위치가 포함된 머신 러닝 테스크 정보를 테스크 매니저로 전송하면, 테스크 매니저는 플랫폼 관리 데이터 베이스에 머신 러닝 테스크 정보를 등록한다(S805).In addition, when the machine learning task information including the location of the corresponding machine learning task file is transmitted to the task manager in the external network storage, the task manager registers the machine learning task information in the platform management database (S805).

테스크 매니저는 등록된 테스크의 머신 러닝 실행환경을 확인하여 머신 러닝이 실행 가능한 워커 노드를 관리하는 세션 노드에 테스크 정보를 전달한다(S806). The task manager checks the machine learning execution environment of the registered task and transmits the task information to the session node that manages the worker node capable of executing the machine learning (S806).

워커 노드 매니저는 워커 노드 리스트를 통하여 테스크를 할당할 워커 노드를 선정한다(S807).The worker node manager selects a worker node to allocate the task through the worker node list (S807).

워커 노드 매니저는 선정된 워커 노드에 테스크 정보를 전달한다(S808).The worker node manager delivers the task information to the selected worker node (S808).

워커 노드는 테스크 정보를 바탕으로 외부 네트워크 저장소에 액세스하여 테스크의 데이터 세트 및 학습 데이터 파일을 다운로드 받는다(S809).The worker node accesses the external network storage based on the task information and downloads the task data set and training data file (S809).

도9은 실시예에 따른 머신 러닝 명령어 실행 과정을 설명하기 위한 도면이다. 도9를 참조하면, 외부 프로그램으로부터 마스터 노드에 등록된 테스크의 원격 수행 명령이 전송된다(S901).9 is a diagram illustrating a process of executing a machine learning instruction according to an embodiment. Referring to Fig. 9, a remote execution command for a task registered in the master node is transmitted from an external program (S901).

명령 처리기는 플랫폼 관리 데이터베이스에 테스크 정보를 요청하고 테스크 정보를 로드하여, 테스크를 전달받은 세션 노드에 테스크 정보 및 명령어를 전송한다(S902~904).The command processor requests task information from the platform management database, loads the task information, and transmits the task information and commands to the session node that received the task (S902 to 904).

명령 분석기는 명령어를 분석하여 테스크가 할당된 워커 노드에 명령을 전송한다(S905).The command analyzer analyzes the command and transmits the command to the worker node to which the task is assigned (S905).

워커 노드는 등록된 테스크와 수신된 명령어를 수행한다. 테스크를 수행하면서 출력되는 학습 모델과 같은 학습 수행 결과 파일들은 외부 네트워크 저장소의 해당 테스크 폴더에 저장된다(S906).Worker nodes execute registered tasks and received commands. Training execution result files such as a learning model output while performing a task are stored in a corresponding task folder in an external network storage (S906).

학습 수행을 진행하면서 출력되는 중간 결과값과 같은 Log들은 플랫폼 관리 데이터베이스에 갱신된다(S907).Logs such as intermediate result values that are output while performing learning are updated in the platform management database (S907).

워커 노드는 명령 수행 결과를 명령 분석기에 전송하여 명령이 올바르게 수행되었는지 여부를 세션 노드에 보고한다(S908).The worker node transmits the command execution result to the command analyzer and reports whether the command has been correctly executed to the session node (S908).

명령 분석기는 명령 처리기에 명령 수행 결과를 전송하여 마스터 노드에 전달한다(S909).The command analyzer transmits the command execution result to the command processor and transmits it to the master node (S909).

학습 수행 결과가 외부 프로그램에 전송되면 플랫폼 관리 데이터베이스에 접근하여 해당 학습 수행 Log를 전송받는다(S910~911).When the learning performance result is transmitted to an external program, the platform management database is accessed and the corresponding learning performance log is transmitted (S910 to 911).

사용자는 학습 수행 Log를 통해 현재 머신 러닝의 진행상황 및 중간 결과값 등을 확인할 수 있다. 또한 사용자는 외부 프로그램을 통하여 외부 네트워크 저장소에 저장된 학습 수행 결과 파일을 실시간으로 다운로드 받을 수 있다(S912).The user can check the current machine learning progress and intermediate results through the learning performance log. In addition, the user may download a learning execution result file stored in an external network storage through an external program in real time (S912).

도10은 본 발명의 실시예에 따른 자원 모니터링 매니저의 동작을 설명하기 위한 도면이다. 10 is a diagram illustrating an operation of a resource monitoring manager according to an embodiment of the present invention.

도10을 참조하면, 마스터 노드의 자원 모니터링 매니저는 자원상황을 바탕으로 특정 프레임워크에 머신러닝 테스크의 부하가 집중될 경우, 머신러닝 테스크의 부하 분산을 위한 필요성을 판단한다. 자원 모니터링 매니저는 GFLOPS의 사용률, 메모리 사용률 및 디스크 사용률 중 적어도 하나에 따라 머신 러닝 테스크에 대한 부하 분산의 필요성을 판단할 수 있다(S1001).Referring to FIG. 10, the resource monitoring manager of the master node determines the necessity for load balancing of the machine learning task when the load of the machine learning task is concentrated on a specific framework based on the resource situation. The resource monitoring manager may determine the necessity of load balancing for the machine learning task according to at least one of the GFLOPS usage rate, the memory usage rate, and the disk usage rate (S1001).

마스터 노드의 자원 모니터링 매니저는 부하 분산을 위하여 세션 노드 B를 추가하는 명령을 세션 노드 A 및 B에 전송하여 워커 노드 재구성 명령을 내린다. 이는 실시간으로 모니터링되는 자원상황과 플랫폼 내 부여된 머신 러닝 테스크에 따라 효율적으로 부하분산을 하기 위함이다. 마스터 노드는 세션 노드 B에 할당이 가능한 워커 노드를 선정한다. 마스터 노드는 재구성 명령을 위해 변경될 세션 노드 및 워커 노드의 정보를 각각의 세션 노드 A 및 B에게 전송한다(S1002). The resource monitoring manager of the master node sends a command to add session node B to session nodes A and B for load balancing and issues a command to reconfigure worker nodes. This is to efficiently distribute the load according to the resource situation monitored in real time and the machine learning task assigned to the platform. The master node selects a worker node that can be assigned to session node B. The master node transmits the information of the session node and worker node to be changed for the reconfiguration command to each session node A and B (S1002).

세션 노드 A는 새로 할당되는 세션 노드 B의 연결 정보를 워커노드에 전송한다(S1003). The session node A transmits connection information of the newly allocated session node B to the worker node (S1003).

워커 노드는 새로 할당되는 세션 노드 B에 연결을 수행하고, 세션 노드 B에게 자원 상황을 보고한다(S1004). The worker node connects to the newly allocated session node B, and reports the resource status to the session node B (S1004).

세션 노드 B는 워커 노드 매니저를 통하여 워커 노드 리스트에 새로 할당된 워커 노드를 추가하고 자원을 관리한다(S1005).The session node B adds a newly allocated worker node to the worker node list through the worker node manager and manages resources (S1005).

본 실시예에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA(field-programmable gate array) 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.The term'~ unit' used in this embodiment refers to software or hardware components such as field-programmable gate array (FPGA) or ASIC, and'~ unit' performs certain roles. However,'~ part' is not limited to software or hardware. The'~ unit' may be configured to be in an addressable storage medium, or may be configured to reproduce one or more processors. Thus, as an example,'~ unit' refers to components such as software components, object-oriented software components, class components and task components, processes, functions, properties, and procedures. , Subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, database, data structures, tables, arrays, and variables. The components and functions provided in the'~ units' may be combined into a smaller number of elements and'~ units', or may be further divided into additional elements and'~ units'. In addition, components and'~ units' may be implemented to play one or more CPUs in a device or a security multimedia card.

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다. Although the above has been described with reference to preferred embodiments of the present invention, those skilled in the art will variously modify and change the present invention within the scope not departing from the spirit and scope of the present invention described in the following claims. You will understand that you can do it.

1: 머신 러닝 플랫폼 관리 시스템
2: 외부 프로그램
3: 외부 네트워크 저장소
10: 마스터 노드
20: 세션 노드
30: 워커 노드
1: machine learning platform management system
2: external program
3: External network storage
10: master node
20: session node
30: worker node

Claims (10)

외부 프로그램을 통해 등록된 머신러닝 테스크(task) 및 명령어를 관리하는 마스터 노드;
상기 마스터 노드로부터 전달받은 상기 머신러닝 테스크 정보 및 상기 명령어를 분석하여 실행 가능한 하위 노드에 할당하는 세션 노드; 및
상기 세션 노드로부터 할당받은 상기 머신러닝 테스크 정보 및 상기 명령어에 따라 머신러닝을 수행하고, 학습 진행 상황 및 자원 상황을 상기 세션 노드로 보고하는 워커노드를 포함하는 머신 러닝 플랫폼 관리 시스템.
A master node for managing machine learning tasks and commands registered through an external program;
A session node that analyzes the machine learning task information and the command received from the master node and assigns it to an executable lower node; And
Machine learning platform management system comprising a worker node for performing machine learning according to the machine learning task information and the command allocated from the session node, and reporting a learning progress status and resource status to the session node.
제1항에 잇어서,
상기 세션 노드는 상기 워커 노드로부터 보고받은 자원 상황에 따라 연산 처리 능력을 분석하고, 분석된 연산 처리 능력을 기준으로 상기 머신러닝 테스크 정보 및 상기 명령어를 할당하는 머신 러닝 플랫폼 관리 시스템.
Following paragraph 1,
The session node is a machine learning platform management system that analyzes the computational processing capacity according to the resource situation reported from the worker node, and allocates the machine learning task information and the instruction based on the analyzed computational processing capacity.
제2항에 있어서,
상기 세션 노드는 상기 연산 처리 능력에 따라 순차적으로 정렬된 워커 노드 리스트를 생성하여 상기 워커 노드 리스트에 따라 상기 머신러닝 테스크 정보 및 상기 명령어를 할당하는 머신 러닝 플랫폼 관리 시스템.
The method of claim 2,
The session node generates a list of worker nodes sequentially arranged according to the computational processing capability, and assigns the machine learning task information and the command according to the list of worker nodes.
제1항 또는 제2항에 있어서,
상기 자원 상황은 CPU자원정보, GPU 자원정보, 메모리 자원정보, 디스크 자원정보, 패키지 버전, 라이브러리 버전, 파이썬 언어 버전, 프레임워크 종류, 프레임워크 버전, 운영체제 종류 및 운영체제 버전 중 적어도 하나를 포함하는 머신 러닝 플랫폼 관리 시스템.
The method according to claim 1 or 2,
The resource status is a machine including at least one of CPU resource information, GPU resource information, memory resource information, disk resource information, package version, library version, Python language version, framework type, framework version, operating system type, and operating system version. Learning platform management system.
제1항에 있어서,
상기 세션 노드는 동일한 프레임 워크를 사용하는 적어도 하나의 워커 노드를 관리하는 머신 러닝 플랫폼 관리 시스템.
The method of claim 1,
The session node is a machine learning platform management system that manages at least one worker node using the same framework.
제1항에 있어서,
상기 워커 노드는 할당받은 상기 머신 러닝 테스크 정보 및 상기 명령어에 따라 외부 네트워크 저장소에 액세스하여 상기 머신 러닝 테스크 및 학습 데이터 파일을 다운로드 받는 머신 러닝 플랫폼 관리 시스템.
The method of claim 1,
The worker node accesses an external network storage according to the allocated machine learning task information and the command to download the machine learning task and training data files.
제1항에 있어서,
상기 학습 진행 상황은 Loss 값, 학습의 정확도, Validation 값 및 진행율 중 적어도 하나를 포함하는 머신 러닝 플랫폼 관리 시스템.
The method of claim 1,
The learning progress status is a machine learning platform management system including at least one of a Loss value, a learning accuracy, a validation value, and a progress rate.
제1항에 있어서,
상기 명령어는 상기 머신 러닝 테스크의 할당, 실행, 중지 및 학습 진행 상황 보고 중 적어도 하나를 포함하는 머신 러닝 플랫폼 관리 시스템.
The method of claim 1,
The command is a machine learning platform management system including at least one of the allocation, execution, stopping of the machine learning task, and a learning progress report.
워커 노드가 자원 정보를 세션 노드에 전송하여 연결을 요청하는 단계;
상기 세션 노드가 상기 자원 정보를 통하여 상기 워커 노드가 머신 러닝 수행이 가능한 노드인지 확인하는 단계;
상기 세션 노드가 머신 러닝 수행이 가능한 적어도 하나의 워커 노드를 이용하여 그룹을 형성하는 단계;
마스터 노드가 외부 프로그램을 통하여 머신러닝 테스크(task) 및 명령어를 등록받는 단계;
상기 마스터 노드가 상기 머신러닝 테스크 정보 및 상기 명령어를 상기 세션 노드에 전달하는 단계;
상기 세션 노드가 상기 머신러닝 테스크 정보 및 상기 명령어를 분석하여 실행 가능한 워커 노드에 할당하는 단계;
상기 워커 노드가 상기 세션 노드로부터 할당받은 상기 머신러닝 테스크 정보 및 상기 명령어에 따라 머신러닝을 수행하는 단계; 및
상기 워커 노드가 학습 진행 상황 및 상기 자원 상황을 상기 세션 노드로 보고하는 단계를 포함하는 머신 러닝 플랫폼 관리 방법.
Requesting a connection by the worker node transmitting resource information to the session node;
Checking, by the session node, whether the worker node is a node capable of performing machine learning through the resource information;
Forming a group by the session node using at least one worker node capable of performing machine learning;
Receiving, by the master node, registering machine learning tasks and instructions through an external program;
Transmitting, by the master node, the machine learning task information and the command to the session node;
Analyzing, by the session node, the machine learning task information and the instruction and assigning it to an executable worker node;
Performing, by the worker node, machine learning according to the machine learning task information and the command allocated from the session node; And
And reporting, by the worker node, the learning progress status and the resource status to the session node.
제9항에 있어서,
상기 그룹을 형성하는 단계는,
동일한 프레임 워크를 사용하는 적어도 하나의 워커 노드를 이용하여 그룹을 형성하는 머신 러닝 플랫폼 관리 방법.
The method of claim 9,
The step of forming the group,
A machine learning platform management method that forms a group using at least one worker node using the same framework.
KR1020190051638A 2019-05-02 2019-05-02 Management system and method of machine learning platform KR102224487B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190051638A KR102224487B1 (en) 2019-05-02 2019-05-02 Management system and method of machine learning platform
PCT/KR2020/002167 WO2020222407A1 (en) 2019-05-02 2020-02-14 Machine learning platform management system and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190051638A KR102224487B1 (en) 2019-05-02 2019-05-02 Management system and method of machine learning platform

Publications (2)

Publication Number Publication Date
KR20200127467A true KR20200127467A (en) 2020-11-11
KR102224487B1 KR102224487B1 (en) 2021-03-08

Family

ID=73028855

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190051638A KR102224487B1 (en) 2019-05-02 2019-05-02 Management system and method of machine learning platform

Country Status (2)

Country Link
KR (1) KR102224487B1 (en)
WO (1) WO2020222407A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220064859A (en) * 2020-11-12 2022-05-19 숭실대학교산학협력단 Method of load balancing for heterogeneous distribute machine learning platform environment, recording medium and device for performing the method

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4036806A1 (en) * 2021-02-02 2022-08-03 Samsung Electronics Co., Ltd. Method, system and apparatus for federated learning

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013073301A (en) * 2011-09-27 2013-04-22 Hitachi Ltd Distributed computer system and control method of the same
KR20180028004A (en) * 2016-09-07 2018-03-15 한국전자통신연구원 Method and apparatus for analyzing and processing data stream in environment where worker nodes are distributed, and method and apparatus for managing task
US20180331897A1 (en) * 2016-01-30 2018-11-15 Huawei Technologies Co.,Ltd. Method and device for training model in distributed system
US20180341525A1 (en) * 2017-05-23 2018-11-29 Kla-Tencor Corporation Scalable and Flexible Job Distribution Architecture for a Hybrid Processor System to Serve High Bandwidth Real Time Computational Systems Used in Semiconductor Inspection and Metrology Systems

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101013073B1 (en) * 2007-12-17 2011-02-14 한국전자통신연구원 Apparatus for Task Distribution and Parallel Processing System and Method there of

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013073301A (en) * 2011-09-27 2013-04-22 Hitachi Ltd Distributed computer system and control method of the same
US20180331897A1 (en) * 2016-01-30 2018-11-15 Huawei Technologies Co.,Ltd. Method and device for training model in distributed system
KR20180028004A (en) * 2016-09-07 2018-03-15 한국전자통신연구원 Method and apparatus for analyzing and processing data stream in environment where worker nodes are distributed, and method and apparatus for managing task
US20180341525A1 (en) * 2017-05-23 2018-11-29 Kla-Tencor Corporation Scalable and Flexible Job Distribution Architecture for a Hybrid Processor System to Serve High Bandwidth Real Time Computational Systems Used in Semiconductor Inspection and Metrology Systems

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220064859A (en) * 2020-11-12 2022-05-19 숭실대학교산학협력단 Method of load balancing for heterogeneous distribute machine learning platform environment, recording medium and device for performing the method

Also Published As

Publication number Publication date
KR102224487B1 (en) 2021-03-08
WO2020222407A1 (en) 2020-11-05

Similar Documents

Publication Publication Date Title
US11221780B2 (en) Size adjustable volumes for containers
US11537809B2 (en) Dynamic container grouping
US7496893B2 (en) Method for no-demand composition and teardown of service infrastructure
JP5497201B2 (en) Method for allocating resources, computer program for allocating resources, and system for allocating resources
US10007584B2 (en) Automated container migration in a platform-as-a-service system
US8850432B2 (en) Controlling utilization in a multi-tenant platform-as-a-service (PaaS) environment in a cloud computing system
Flores et al. Large-scale offloading in the Internet of Things
US20200034178A1 (en) Virtualization agnostic orchestration in a virtual computing system
KR20220006490A (en) Hybrid cloud resource allocation method for workload dynamic resource placement and optimization performance management
US11461120B2 (en) Methods and apparatus for rack nesting in virtualized server systems
KR102224487B1 (en) Management system and method of machine learning platform
US10509688B1 (en) System and method for migrating virtual machines between servers
US9575781B1 (en) Automatic determination of a virtual machine's dependencies on storage virtualization
Shyam et al. Modelling resource virtualisation concept in cloud computing environment using finite state machines
Calcaterra et al. MaxHadoop: An efficient scalable emulation tool to test SDN protocols in emulated Hadoop environments
Ben Hafaiedh et al. A model-based approach for formal verification and performance analysis of dynamic load-balancing protocols in cloud environment
Van Hensbergen et al. A unified execution model for cloud computing
Herlicq et al. Nextgenemo: an efficient provisioning of edge-native applications
Lebre et al. Vmplaces: A generic tool to investigate and compare vm placement algorithms
Hao Edge Computing on Low Availability Devices with K3s in a Smart Home IoT System
Lin et al. A lightweight edge computing platform designed on embeded system
Yu et al. Research and implementation of online judgment system based on micro service
US11500568B2 (en) LPM management using contingent and conditional inputs
Bhardwaj et al. On the impact of isolation costs on locality-aware cloud scheduling
Malviya et al. Designing Architecture for Container-As-A-Service (CaaS) in Cloud Computing Environment: A Review

Legal Events

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