KR20230087316A - Apparatus and method for determining ai-based cloud service server - Google Patents
Apparatus and method for determining ai-based cloud service server Download PDFInfo
- Publication number
- KR20230087316A KR20230087316A KR1020210176149A KR20210176149A KR20230087316A KR 20230087316 A KR20230087316 A KR 20230087316A KR 1020210176149 A KR1020210176149 A KR 1020210176149A KR 20210176149 A KR20210176149 A KR 20210176149A KR 20230087316 A KR20230087316 A KR 20230087316A
- Authority
- KR
- South Korea
- Prior art keywords
- cloud service
- service server
- learning code
- type
- cloud
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1023—Server selection for load balancing based on a hash applied to IP addresses or costs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
본 발명은 인공지능 기반 클라우드 서비스 서버 결정 장치 및 방법에 관한 것으로, 상기 장치는 인공지능 기반 클라우드 서비스 서버 결정 장치는 사용자 학습코드를 수신하는 학습코드 수신부; 학습코드 모집단에 있는 샘플 학습코드의 사전 분석을 통해 구축된 학습코드 유형 모델을 기초로 상기 사용자 학습코드의 유형을 판단하는 학습코드 유형 판단부; 클라우드 리소스 할당 프로토콜을 통해 상기 사용자 학습코드의 유형을 클라우드 오케스트레이션 서버에 제공하고 상기 클라우드 오케스트레이션 서버로부터 학습코드 유형별 동적 비용-성능 메트릭을 수신하는 동적 비용-성능 메트릭 처리부; 상기 학습코드 유형별 동적 비용-성능 메트릭을 기초로 사용자 요구조건에 특정 기준 이상 근접한 리소스로 구성된 클라우드 서비스 서버를 후보 클라우드 서비스 서버로 결정하는 후보 클라우드 서비스 서버 결정부; 및 상기 사용자 요구조건의 변경이 발생되기 전까지 상기 후보 클라우드 서비스 서버를 최종 서비스 클라우드 서버로 결정하는 클라우드 서비스 서버 결정부;를 포함한다.The present invention relates to an artificial intelligence-based cloud service server determining apparatus and method, wherein the apparatus includes an artificial intelligence-based cloud service server determining apparatus comprising: a learning code receiver for receiving a user learning code; a learning code type determination unit for determining the type of the user learning code based on a learning code type model built through preliminary analysis of sample learning codes in a learning code population; a dynamic cost-performance metric processing unit providing the type of the user learning code to a cloud orchestration server through a cloud resource allocation protocol and receiving a dynamic cost-performance metric for each type of learning code from the cloud orchestration server; a candidate cloud service server determination unit that determines a cloud service server composed of resources that are closer to a user requirement than a specific criterion as a candidate cloud service server based on the dynamic cost-performance metric for each type of learning code; and a cloud service server determining unit that determines the candidate cloud service server as a final service cloud server until the user requirement is changed.
Description
본 발명은 클라우드 자원 활용 기술에 관한 것으로, 보다 상세하게는 인공지능을 활용하여 사용자의 학습코드를 클라우드 상에서 실행하기 위한 최적의 리소스를 구성할 수 있는 인공지능 기반 클라우드 서비스 서버 결정 장치 및 방법에 관한 것이다.The present invention relates to a technology for utilizing cloud resources, and more particularly, to an apparatus and method for determining an artificial intelligence-based cloud service server capable of constructing an optimal resource for executing a user's learning code in the cloud by utilizing artificial intelligence. will be.
최근 딥러닝 알고리즘은 다양한 분야에서 우수한 성능을 보이며 인공지능의 응용 사례를 넓히고 있다. 딥러닝 모델의 학습은 단시간에 많은 컴퓨팅 자원을 필요로 하기 때문에 주로 클라우드 환경 하에서 학습 작업이 이루어지고 있다.Recently, deep learning algorithms have shown excellent performance in various fields and are expanding the application cases of artificial intelligence. Because deep learning model learning requires a lot of computing resources in a short time, learning work is mainly performed in a cloud environment.
하지만, 클라우드 컴퓨팅 서비스를 통해서 제공되는 자원의 종류가 너무 많은 탓에 사용자들은 다양한 서비스를 활용하여 최적의 딥러닝 학습 환경을 구축하는데 큰 어려움을 겪고 있다. 클라우드 인스턴스들 간의 가격 역시 큰 차이를 보이기에 성능 및 비용 측면에서 최적의 효율을 보이는 인스턴스를 선택하여 학습 작업을 진행하는 것은 매우 중요하면서도 어려운 일이다.However, due to the large number of types of resources provided through cloud computing services, users have great difficulty in establishing an optimal deep learning learning environment using various services. Since the price of cloud instances also shows a big difference, it is very important and difficult to select an instance that shows the optimal efficiency in terms of performance and cost and proceed with the learning task.
한편, 딥러닝(인공지능) 플랫폼은 인공지능 기술들, 예를 들어 영상처리, 음성인식, 자연어처리 등을 이용하여 필요에 의해서 사용자가 사용이 가능하게 해주는 제품이나 서비스를 개발하기 위한 도구를 의미할 수 있다. 최근 구현되고 있는 인공지능의 핵심 기술들은 다양한 분야로 응용 가능한 범용적인 특성을 갖고 있으며, 인공지능은 딥러닝 플랫폼의 핵심 기술에 해당할 수 있다.On the other hand, deep learning (artificial intelligence) platform refers to a tool for developing products or services that users can use as needed by using artificial intelligence technologies, such as image processing, voice recognition, and natural language processing. can do. The core technologies of artificial intelligence that are being implemented recently have general-purpose characteristics that can be applied to various fields, and artificial intelligence can correspond to the core technology of a deep learning platform.
본 발명의 일 실시예는 인공지능을 활용하여 사용자의 학습코드를 클라우드 상에서 실행하기 위한 최적의 리소스를 구성할 수 있는 인공지능 기반 클라우드 서비스 서버 결정 장치 및 방법을 제공하고자 한다.One embodiment of the present invention is to provide an artificial intelligence-based cloud service server determining apparatus and method capable of configuring optimal resources for executing a user's learning code in the cloud by utilizing artificial intelligence.
실시예들 중에서, 인공지능 기반 클라우드 서비스 서버 결정 장치는 사용자 학습코드를 수신하는 학습코드 수신부; 학습코드 모집단에 있는 샘플 학습코드의 사전 분석을 통해 구축된 학습코드 유형 모델을 기초로 상기 사용자 학습코드의 유형을 판단하는 학습코드 유형 판단부; 클라우드 리소스 할당 프로토콜을 통해 상기 사용자 학습코드의 유형을 클라우드 오케스트레이션 서버에 제공하고 상기 클라우드 오케스트레이션 서버로부터 학습코드 유형별 동적 비용-성능 메트릭을 수신하는 동적 비용-성능 메트릭 처리부; 상기 학습코드 유형별 동적 비용-성능 메트릭을 기초로 사용자 요구조건에 특정 기준 이상 근접한 리소스로 구성된 클라우드 서비스 서버를 후보 클라우드 서비스 서버로 결정하는 후보 클라우드 서비스 서버 결정부; 및 상기 사용자 요구조건의 변경이 발생되기 전까지 상기 후보 클라우드 서비스 서버를 최종 서비스 클라우드 서버로 결정하는 클라우드 서비스 서버 결정부;를 포함한다.Among the embodiments, an artificial intelligence-based cloud service server determining device includes a learning code receiving unit for receiving a user learning code; a learning code type determination unit for determining the type of the user learning code based on a learning code type model built through preliminary analysis of sample learning codes in a learning code population; a dynamic cost-performance metric processing unit providing the type of the user learning code to a cloud orchestration server through a cloud resource allocation protocol and receiving a dynamic cost-performance metric for each type of learning code from the cloud orchestration server; a candidate cloud service server determination unit that determines a cloud service server composed of resources that are closer to a user requirement than a specific criterion as a candidate cloud service server based on the dynamic cost-performance metric for each type of learning code; and a cloud service server determining unit that determines the candidate cloud service server as a final service cloud server until the user requirement is changed.
상기 학습코드 유형 판단부는 상기 샘플 학습코드의 인공지능 연산 특징을 분석하여 CPU 집중 연산 유형, GPU 집중 연산 유형, 메모리 집중 연산 유형 및 가속기 집중 연산 유형 중 어느 하나를 상기 사용자 학습코드의 유형으로서 결정할 수 있다.The learning code type determination unit analyzes the artificial intelligence operation characteristics of the sample learning code to determine one of a CPU intensive operation type, a GPU intensive operation type, a memory intensive operation type, and an accelerator intensive operation type as the type of the user learning code. there is.
상기 학습코드 유형 판단부는 상기 샘플 학습코드의 인공지능 연산 동안 소정의 시간 간격(time interval)마다 예측된 CPU, GPU, 메모리 및 가속기 중 적어도 하나의 사용량을 기초로 상기 인공지능 연산 특징을 결정할 수 있다.The learning code type determining unit may determine the artificial intelligence operation characteristics based on the predicted usage of at least one of CPU, GPU, memory, and accelerator for every predetermined time interval during artificial intelligence operation of the sample learning code. .
상기 동적 비용-성능 메트릭 처리부는 비용-성능 메트릭의 정규 분포를 기초로 상기 학습코드 유형별 동적 비용-성능 메트릭을 충족시키는 서버의 존재 확률을 결정할 수 있다.The dynamic cost-performance metric processing unit may determine a server existence probability that satisfies the dynamic cost-performance metric for each learning code type based on a normal distribution of the cost-performance metric.
상기 동적 비용-성능 메트릭 처리부는 상기 서버의 존재 확률이 특정 기준 이하인 경우에는 상기 학습코드 유형별 동적 비용-성능 메트릭을 조절할 수 있다.The dynamic cost-performance metric processing unit may adjust the dynamic cost-performance metric for each learning code type when the existence probability of the server is less than or equal to a specific criterion.
상기 후보 클라우드 서비스 서버 결정부는 상기 사용자 요구조건에 가장 근접한 리소스로 구성된 순서대로 상기 클라우드 서비스 서버를 전순서 집합화 하고 상기 클라우드 서비스 서버의 로드를 결정하여 상기 후보 클라우드 서비스 서버를 결정할 수 있다.The candidate cloud service server determining unit may determine the candidate cloud service server by aggregating the cloud service servers in an order of configuration of resources closest to the user requirements and determining a load of the cloud service server.
상기 클라우드 서비스 서버 결정부는 상기 사용자 요구조건의 변경이 발생되면 상기 클라우드 서비스 서버를 다시 전순서 집합화 하고 상기 최종 서비스 클라우드 서버로 결정할 수 있다.The cloud service server determination unit may aggregate the cloud service server in an overall order and determine it as the final service cloud server when a change in the user requirement occurs.
실시예들 중에서, 사용자 학습코드를 수신하는 단계; 학습코드 모집단에 있는 샘플 학습코드의 사전 분석을 통해 구축된 학습코드 유형 모델을 기초로 상기 사용자 학습코드의 유형을 판단하는 단계; 클라우드 리소스 할당 프로토콜을 통해 상기 사용자 학습코드의 유형을 클라우드 오케스트레이션 서버에 제공하고 상기 클라우드 오케스트레이션 서버로부터 학습코드 유형별 동적 비용-성능 메트릭을 수신하는 단계; 상기 학습코드 유형별 동적 비용-성능 메트릭을 기초로 사용자 요구조건에 특정 기준 이상 근접한 리소스로 구성된 클라우드 서비스 서버를 후보 클라우드 서비스 서버로 결정하는 단계; 및 상기 사용자 요구조건의 변경이 발생되기 전까지 상기 후보 클라우드 서비스 서버를 최종 서비스 클라우드 서버로 결정하는 단계;를 포함한다.Among the embodiments, receiving a user learning code; Determining the type of the user learning code based on a learning code type model built through preliminary analysis of sample learning codes in a learning code population; providing the user learning code type to a cloud orchestration server through a cloud resource allocation protocol and receiving a dynamic cost-performance metric for each learning code type from the cloud orchestration server; determining, as a candidate cloud service server, a cloud service server composed of resources closer to a user requirement than a specific criterion based on the dynamic cost-performance metric for each type of learning code; and determining the candidate cloud service server as a final service cloud server until a change in the user requirement occurs.
개시된 기술은 다음의 효과를 가질 수 있다. 다만, 특정 실시예가 다음의 효과를 전부 포함하여야 한다거나 다음의 효과만을 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.The disclosed technology may have the following effects. However, it does not mean that a specific embodiment must include all of the following effects or only the following effects, so it should not be understood that the scope of rights of the disclosed technology is limited thereby.
본 발명의 일 실시예에 따른 인공지능 기반 클라우드 서비스 서버 결정 장치 및 방법은 인공지능을 활용하여 사용자의 학습코드를 클라우드 상에서 실행하기 위한 최적의 리소스를 구성할 수 있다.An artificial intelligence-based cloud service server determining apparatus and method according to an embodiment of the present invention may configure an optimal resource for executing a user's learning code in the cloud by utilizing artificial intelligence.
본 발명의 일 실시예에 따른 인공지능 기반 클라우드 서비스 서버 결정 장치 및 방법은 클라우드 리소스 할당 프로토콜을 기반으로 학습코드의 유형에 관한 리소스별 동적 비용-성능 매트릭스를 수신한 후 사용자 요구조건에 맞는 리소스 구성을 결정하여 사용자의 학습코드를 실행하기 위한 클라우드 환경을 제공할 수 있다.An apparatus and method for determining a cloud service server based on artificial intelligence according to an embodiment of the present invention receives a dynamic cost-performance matrix for each resource related to the type of learning code based on a cloud resource allocation protocol, and configures resources suitable for user requirements. It is possible to provide a cloud environment for executing the user's learning code by determining.
도 1은 본 발명에 따른 클라우드 서비스 서버 결정 시스템을 설명하는 도면이다.
도 2는 도 1의 클라우드 서비스 서버 결정 장치의 시스템 구성을 설명하는 도면이다.
도 3은 도 1의 클라우드 서비스 서버 결정 장치의 기능적 구성을 설명하는 도면이다.
도 4는 본 발명에 따른 인공지능 기반 클라우드 서비스 서버 결정 방법을 설명하는 순서도이다.
도 5는 본 발명에 따른 학습코드의 유형 판단 과정을 설명하는 도면이다.
도 6은 본 발명에 따른 리소스별 비용-성능 매트릭스를 설명하는 도면이다.1 is a diagram illustrating a system for determining a cloud service server according to the present invention.
FIG. 2 is a diagram explaining the system configuration of the device for determining a cloud service server of FIG. 1 .
FIG. 3 is a diagram explaining the functional configuration of the device for determining a cloud service server of FIG. 1 .
4 is a flowchart illustrating a method for determining an artificial intelligence-based cloud service server according to the present invention.
5 is a diagram illustrating a process of determining a type of a learning code according to the present invention.
6 is a diagram illustrating a cost-performance matrix for each resource according to the present invention.
본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.Since the description of the present invention is only an embodiment for structural or functional description, the scope of the present invention should not be construed as being limited by the embodiments described in the text. That is, since the embodiment can be changed in various ways and can have various forms, it should be understood that the scope of the present invention includes equivalents capable of realizing the technical idea. In addition, since the object or effect presented in the present invention does not mean that a specific embodiment should include all of them or only such effects, the scope of the present invention should not be construed as being limited thereto.
한편, 본 출원에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.Meanwhile, the meaning of terms described in this application should be understood as follows.
"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.Terms such as "first" and "second" are used to distinguish one component from another, and the scope of rights should not be limited by these terms. For example, a first element may be termed a second element, and similarly, a second element may be termed a first element.
어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.It should be understood that when an element is referred to as being “connected” to another element, it may be directly connected to the other element, but other elements may exist in the middle. On the other hand, when an element is referred to as being "directly connected" to another element, it should be understood that no intervening elements exist. Meanwhile, other expressions describing the relationship between components, such as “between” and “immediately between” or “adjacent to” and “directly adjacent to” should be interpreted similarly.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Expressions in the singular number should be understood to include plural expressions unless the context clearly dictates otherwise, and terms such as “comprise” or “having” refer to an embodied feature, number, step, operation, component, part, or these. It should be understood that it is intended to indicate that a combination exists, and does not preclude the possibility of the presence or addition of one or more other features, numbers, steps, operations, components, parts, or combinations thereof.
각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.In each step, the identification code (eg, a, b, c, etc.) is used for convenience of explanation, and the identification code does not describe the order of each step, and each step clearly follows a specific order in context. Unless otherwise specified, it may occur in a different order than specified. That is, each step may occur in the same order as specified, may be performed substantially simultaneously, or may be performed in the reverse order.
본 발명은 컴퓨터가 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있고, 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.The present invention can be implemented as computer readable code on a computer readable recording medium, and the computer readable recording medium includes all types of recording devices storing data that can be read by a computer system. . Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, and optical data storage devices. In addition, the computer-readable recording medium may be distributed to computer systems connected through a network, so that computer-readable codes may be stored and executed in a distributed manner.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.All terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which the present invention belongs, unless defined otherwise. Terms defined in commonly used dictionaries should be interpreted as consistent with meanings in the context of the related art, and cannot be interpreted as having ideal or excessively formal meanings unless explicitly defined in the present application.
도 1은 본 발명에 따른 클라우드 서비스 서버 결정 시스템을 설명하는 도면이다.1 is a diagram illustrating a system for determining a cloud service server according to the present invention.
도 1을 참조하면, 클라우드 서비스 서버 결정 시스템(100)은 사용자 단말(110), 클라우드 서비스 서버 결정 장치(130), 클라우드 서비스 서버(150), 클라우드 오케스트레이션 서버(170) 및 데이터베이스(190)를 포함할 수 있다.Referring to FIG. 1 , a cloud service
사용자 단말(110)은 클라우드 서비스를 이용할 수 있는 컴퓨팅 장치에 해당할 수 있고, 스마트폰, 노트북 또는 컴퓨터로 구현될 수 있으며, 반드시 이에 한정되지 않고, 태블릿 PC 등 다양한 디바이스로도 구현될 수 있다. 사용자 단말(110)은 클라우드 서비스 서버 결정 장치(130)와 네트워크를 통해 연결될 수 있고, 복수의 사용자 단말(110)들은 클라우드 서비스 서버 결정 장치(130)와 동시에 연결될 수 있다. 또한, 사용자 단말(110)은 클라우드 서비스 서버(150)와 직접 연결될 수 있으며, 클라우드 서비스 이용을 위한 전용 프로그램 또는 애플리케이션을 설치하여 실행시킬 수 있다.The
클라우드 서비스 서버 결정 장치(130)는 클라우드 컴퓨팅 환경에서 사용자 학습코드를 기반으로 하는 딥러닝 관련 작업 시 최적의 환경을 구성하도록 리소스의 효율적 관리를 수행하는 시스템, 또는 이에 해당하는 서버로 구현될 수 있다. 클라우드 서비스 서버 결정 장치(130)는 사용자 단말(110)과 네트워크를 통해 연결될 수 있고 관련 데이터를 주고받을 수 있다.The cloud service
또한, 클라우드 서비스 서버 결정 장치(130)는 적어도 하나의 외부 시스템과 연동하여 동작할 수 있다. 예를 들어, 외부 시스템은 클라우드 서비스를 위한 클라우드 서비스 서버(150), 동적 비용-성능 메트릭 생성을 위한 클라우드 오케스트레이션 서버(170), 딥러닝 학습을 위한 인공지능 서버, 서비스 결제를 위한 결제 서버 또는 사용자 인증을 위한 인증 서버 등을 포함할 수 있다.In addition, the cloud service
일 실시예에서, 클라우드 서비스 서버 결정 장치(130)는 데이터베이스(190)와 연동하여 클라우드 컴퓨팅 환경에서 딥러닝 작업을 위해 작성된 사용자 학습코드의 유형을 결정하고 결정된 하나의 학습코드의 유형을 기초로 생성된 동적 비용-성능 메트릭을 사용자 요구조건에 적용하여 최종 클라우드 서비스 서버(150)를 결정하기 위해 필요한 데이터를 저장할 수 있다. 또한, 클라우드 서비스 서버 결정 장치(130)는 프로세서, 메모리, 사용자 입출력부 및 네트워크 입출력부를 포함하여 구현될 수 있으며, 이에 대해서는 도 2에서 보다 자세히 설명한다.In one embodiment, the cloud service
클라우드 서비스 서버(150)는 클라우드 서비스를 제공하는 서버에 해당할 수 있다. 클라우드 서비스 서버(150)는 사용자 환경에 적합한 다양한 클라우드 리소스를 제공할 수 있으며, 클라우드 리소스들의 조합을 다양한 인스턴스로 구현하여 제공할 수 있다. 이를 위해, 클라우드 서비스 서버(150)는 복수의 자원풀(resource pool)들과 연결되어 구현될 수 있다. 클라우드 서비스 서버(150)는 클라우드 서비스 서버 결정 장치(130)와 네트워크를 통해 연결될 수 있으며, 사용자 단말(110)과도 직접 연결될 수 있다. 클라우드 서비스 서버(150)는 클라우드 서비스 서버 결정 장치(130)에서 수행되는 딥러닝 학습을 위한 다양한 클라우드 인스턴스들을 제공할 수 있으며, 일 실시예에서 클라우드 서비스 서버(150)는 딥러닝 플랫폼을 제공하는 서버의 역할을 수행할 수 있다. 다른 실시예에서, 클라우드 서비스 서버(150)는 복수개로 구현될 수 있으며, 이 경우 각 클라우드 서비스 서버(150)는 클라우드 서비스 서버 결정 장치(130)와 독립적으로 연결될 수 있다.The
클라우드 오케스트레이션 서버(170)는 클라우드 리소스 할당 프로토콜(cloud resource allocation protocol)을 기초로 사용자 학습코드의 유형에 관한 동적 비용-성능 메트릭을 생성하는 서버에 해당할 수 있다. 여기에서, 클라우드 리소스 할당 프로토콜은 학습코드의 유형에 따른 리소스 구성을 할당하는 규칙들의 집합에 해당할 수 있다. 즉, 클라우드 오케스트레이션 서버(170)는 클라우드 리소스 할당 프로토콜을 통해 사용자 학습코드의 유형에 대응되는 적어도 하나의 리소스 구성을 할당할 수 있고, 각 리소스 구성에 따라 해당 시점을 기준으로 동적으로 결정되는 비용-성능 메트릭을 생성하여 제공할 수 있다.The
또한, 클라우드 오케스트레이션 서버(170)는 클라우드 서비스 서버 결정 장치(130) 또는 클라우드 서비스 서버(150)와 네트워크를 통해 연결될 수 있다. 일 실시예에서, 클라우드 오케스트레이션 서버(170)는 클라우드 서비스 서버 결정 장치(130)와 클라우드 서비스 서버(150) 간의 연결을 제공할 수 있다. 이 경우, 클라우드 서비스 서버 결정 장치(130)는 클라우드 오케스트레이션 서버(170)의 중계를 통해 클라우드 서비스 서버(150)와 연결될 수 있다. 또한, 클라우드 서비스 서버(150)가 복수개로 구현된 경우 클라우드 오케스트레이션 서버(170)는 각 클라우드 서비스 서버(150)와 독립적으로 연결되어 클라우드 서비스 서버 결정 장치(130)와의 중계를 제공할 수 있다.Also, the
데이터베이스(190)는 클라우드 서비스 서버 결정 장치(130)의 동작 과정에서 필요한 다양한 정보들을 저장하는 저장장치에 해당할 수 있다. 데이터베이스(190)는 딥러닝 알고리즘 및 이에 관한 사용자 학습코드에 관한 정보를 저장할 수 있고, 학습코드 유형에 관한 정보를 저장할 수 있으며, 반드시 이에 한정되지 않고, 인공지능 기반 클라우드 서비스 서버 결정 과정에서 다양한 형태로 수집 또는 가공된 정보들을 저장할 수 있다.The
도 2는 도 1의 클라우드 서비스 서버 결정 장치의 시스템 구성을 설명하는 도면이다.FIG. 2 is a diagram explaining the system configuration of the device for determining a cloud service server of FIG. 1 .
도 2를 참조하면, 클라우드 서비스 서버 결정 장치(130)는 프로세서(210), 메모리(230), 사용자 입출력부(250) 및 네트워크 입출력부(270)를 포함하여 구현될 수 있다.Referring to FIG. 2 , an
프로세서(210)는 클라우드 서비스 서버 결정 장치(130)가 동작하는 과정에서의 각 단계들을 처리하는 프로시저를 실행할 수 있고, 그 과정 전반에서 읽혀지거나 작성되는 메모리(230)를 관리할 수 있으며, 메모리(230)에 있는 휘발성 메모리와 비휘발성 메모리 간의 동기화 시간을 스케줄할 수 있다. 프로세서(210)는 클라우드 서비스 서버 결정 장치(130)의 동작 전반을 제어할 수 있고, 메모리(230), 사용자 입출력부(250) 및 네트워크 입출력부(270)와 전기적으로 연결되어 이들 간의 데이터 흐름을 제어할 수 있다. 프로세서(210)는 클라우드 서비스 서버 결정 장치(130)의 CPU(Central Processing Unit)로 구현될 수 있다.The
메모리(230)는 SSD(Solid State Drive) 또는 HDD(Hard Disk Drive)와 같은 비휘발성 메모리로 구현되어 클라우드 서비스 서버 결정 장치(130)에 필요한 데이터 전반을 저장하는데 사용되는 보조기억장치를 포함할 수 있고, RAM(Random Access Memory)과 같은 휘발성 메모리로 구현된 주기억장치를 포함할 수 있다.The
사용자 입출력부(250)는 사용자 입력을 수신하기 위한 환경 및 사용자에게 특정 정보를 출력하기 위한 환경을 포함할 수 있다. 예를 들어, 사용자 입출력부(250)는 터치 패드, 터치 스크린, 화상 키보드 또는 포인팅 장치와 같은 어댑터를 포함하는 입력장치 및 모니터 또는 터치스크린과 같은 어댑터를 포함하는 출력장치를 포함할 수 있다. 일 실시예에서, 사용자 입출력부(250)는 원격 접속을 통해 접속되는 컴퓨팅 장치에 해당할 수 있고, 그러한 경우, 클라우드 서비스 서버 결정 장치(130)는 서버로서 수행될 수 있다.The user input/
네트워크 입출력부(270)은 네트워크를 통해 외부 장치 또는 시스템과 연결하기 위한 환경을 포함하고, 예를 들어, LAN(Local Area Network), MAN(Metropolitan Area Network), WAN(Wide Area Network) 및 VAN(Value Added Network) 등의 통신을 위한 어댑터를 포함할 수 있다.The network input/
도 3은 도 1의 클라우드 서비스 서버 결정 장치의 기능적 구성을 설명하는 도면이다.FIG. 3 is a diagram explaining the functional configuration of the device for determining a cloud service server of FIG. 1 .
도 3을 참조하면, 클라우드 서비스 서버 결정 장치(130)는 학습코드 수신부(310), 학습코드 유형 판단부(320), 동적 비용-성능 메트릭 처리부(330), 후보 클라우드 서비스 서버 결정부(340), 클라우드 서비스 서버 결정부(350) 및 제어부(360)를 포함할 수 있다.Referring to FIG. 3 , the cloud service
학습코드 수신부(310)는 사용자 학습코드를 수신할 수 있다. 여기에서, 사용자 학습코드는 소정의 딥러닝 알고리즘을 구현한 딥러닝 학습코드로서 사용자에 의해 직접 생성되거나 입력된 학습코드에 해당할 수 있다. 즉, 사용자 학습코드의 실행을 통해 딥러닝 알고리즘이 구현된 결과 소정의 테스트 데이터셋에 관한 학습 동작이 수행될 수 있으며, 학습 과정에 대한 모니터링을 통해 딥러닝 학습에 관한 다양한 성능 메트릭(metric)이 측정될 수 있다. 또한, 사용자 학습코드는 소정의 프로그래밍 언어에 따라 작성될 수 있으며, 딥러닝 알고리즘의 특성이나 딥러닝 학습 방식에 따라 복수의 코드 섹션들을 포함할 수 있다. 예를 들어, 코드 섹션은 사용자 학습코드의 연산 구간, 함수 구간 및 반복 구간 등에 해당할 수 있다.The learning
또한, 학습코드 수신부(310)는 사용자 단말(110)과 연동하여 사용자 학습코드의 수신을 위한 전용 인터페이스를 제공할 수 있으며, 사용자 단말(110)로부터 수신된 사용자 학습코드를 데이터베이스(190)에 저장하여 보관할 수 있다.In addition, the learning
또한, 학습코드 수신부(310)는 사용자 학습코드를 수신하여 소정의 전처리 동작을 수행할 수 있다. 예를 들어, 학습코드 수신부(310)는 사용자 학습코드를 소정의 크기 이내로 제한하거나, 다수의 부분 학습코드들로 분할하는 등의 전처리 동작들을 선택적으로 수행할 수 있다. 또한, 학습코드 수신부(310)는 메타데이터 추출모듈을 포함할 수 있고, 메타데이터 추출모듈을 통해 사용자 학습코드로부터 메타데이터를 추출할 수 있다. 예를 들어, 추출된 메타데이터는 학습코드의 컴파일 시간, 빌드 시간, 프로그래밍 언어 및 바이너리 정보 등을 포함할 수 있다.In addition, the learning
학습코드 유형 판단부(320)는 학습코드 모집단에 있는 샘플 학습코드의 사전 분석을 통해 구축된 학습코드 유형 모델을 기초로 사용자 학습코드의 유형을 판단할 수 있다. 여기에서, 학습코드 유형 모델은 학습코드를 입력으로 수신하여 해당 학습코드의 유형을 출력으로 생성하도록 구축된 딥러닝 모델에 해당할 수 있다. 학습코드 유형 모델은 샘플 학습코드에 관한 데이터셋에 해당하는 학습코드 모집단을 기초로 사전 학습을 통해 구축될 수 있으며, 학습코드의 유형 정보는 사전에 정의되어 활용될 수 있다.The learning code
예를 들어, 학습코드의 유형 정보는 학습코드의 실행에 의해 구현되는 딥러닝 알고리즘의 인공지능 연산 특징을 유형화하여 정의될 수 있으며, 인공지능 연산 특징은 딥러닝 알고리즘의 특성 메트릭들에 관한 조합으로 표현될 수 있다. 즉, 학습코드 유형 모델은 샘플 학습코드의 메타데이터에서 추출되는 학습코드 파라미터와 딥러닝 알고리즘의 인공지능 연산 특징들 간의 상관관계를 학습한 결과로서 구축될 수 있으며, 학습코드 유형 판단부(320)는 학습코드 유형 모델을 이용하여 사용자 학습코드에 대응되는 유형 정보를 결정할 수 있다.For example, the type information of the learning code can be defined by categorizing the artificial intelligence operation characteristics of the deep learning algorithm implemented by the execution of the learning code, and the artificial intelligence operation characteristics are a combination of characteristic metrics of the deep learning algorithm. can be expressed That is, the learning code type model can be built as a result of learning the correlation between the learning code parameter extracted from the metadata of the sample learning code and the artificial intelligence operation characteristics of the deep learning algorithm, and the learning code
일 실시예에서, 학습코드 유형 판단부(320)는 샘플 학습코드의 인공지능 연산 특징을 분석하여 CPU 집중 연산 유형, GPU 집중 연산 유형, 메모리 집중 연산 유형 및 가속기 집중 연산 유형 중 어느 하나를 사용자 학습코드의 유형으로서 결정할 수 있다. 보다 구체적으로, CPU 집중 연산 유형은 샘플 학습코드의 실행에 의해 구현되는 인공지능 연산이 GPU 보다는 CPU를 주로 활용하여 수행되는 것에 적합한 유형에 해당할 수 있고, GPU 집중 연산 유형은 해당 인공지능 연산이 GPU를 주로 활용하여 수행되는 것에 적합한 유형에 해당할 수 있으며, 메모리 집중 연산 유형은 해당 인공지능 연산의 수행 과정에서 연산 자원보다는 메모리를 주요 자원으로 활용하여 수행되는 것에 적합한 유형에 해당할 수 있다.In one embodiment, the learning code
또한, 가속기 집중 연산 유형은 사용자 학습코드의 실행에 관한 동작이 클라우드 환경에서 데이터 처리의 향상을 위한 가속기를 주로 활용하여 수행되는 것에 적합한 유형에 해당할 수 있다. 여기에서, 가속기는 하드웨어 및 소프트웨어 기반의 가속기를 포함할 수 있으며, 특히 사용자 학습코드의 실행으로 구현되는 딥러닝 알고리즘의 학습을 향상시키는데 활용될 수 있다. 예를 들어, 가속기는 TPU(Tensor Processing Unit), NPU(Neural Processing Unit), FPGA(Field Programmable Gate Array) 등을 포함할 수 있으며, 딥러닝 학습 과정에서 전력 요구량을 줄임으로써 비용(cost)을 감소시키거나 또는 연산 처리 능력을 높임으로써 성능(latency)을 개선시킬 수 있다. 한편, 학습코드 유형 판단부(320)는 사용자 학습코드의 유형으로서 대표적인 유형들을 추가로 정의하여 선택적으로 활용할 수 있음은 물론이다.In addition, the accelerator-intensive operation type may correspond to a type suitable for an operation related to the execution of user learning code to be performed mainly by utilizing an accelerator for improving data processing in a cloud environment. Here, the accelerator may include a hardware- and software-based accelerator, and may be particularly used to improve learning of a deep learning algorithm implemented by executing a user learning code. For example, the accelerator may include a Tensor Processing Unit (TPU), Neural Processing Unit (NPU), Field Programmable Gate Array (FPGA), etc., and reduce cost by reducing power requirements during deep learning training. The performance (latency) can be improved by increasing the computational processing power. On the other hand, it goes without saying that the learning code
일 실시예에서, 학습코드 유형 판단부(320)는 샘플 학습코드의 인공지능 연산 동안 소정의 시간 간격(time interval)마다 예측된 CPU, GPU, 메모리 alc 가속기 중 적어도 하나의 사용량을 기초로 인공지능 연산 특징을 결정할 수 있다. 학습코드의 실행에 의해 구현되는 딥러닝 알고리즘의 인공지능 연산 특징은 연산 과정에 사용되는 리소스들의 특성 메트릭에 관한 조합으로 표현될 수 있다. 이때, 특성 메트릭들에는 CPU, GPU, 메모리 및 가속기의 사용량(usage)에 관한 통계적 메트릭(예를 들어, 평균, 메디안, 분산, 표준편차 등)이 포함될 수 있으며, 필요에 따라 각 리소스에 관한 비용(cost) 및 시간(latency), 그리고 각 리소스들 사이의 사용 비율(use ratio) 등의 메트릭들이 포함될 수 있다. 학습코드 유형 판단부(320)는 특성 메트릭을 조합하여 인공지능 연산 특징을 정의하고 각 샘플 학습코드의 사전 분석을 통해 인공지능 연산 특징에 관한 학습 데이터를 수집할 수 있으며, 학습 데이터들은 학습코드 유형 모델의 구축 과정에서 활용될 수 있다.In one embodiment, the learning code
동적 비용-성능 메트릭 처리부(330)는 클라우드 리소스 할당 프로토콜을 통해 사용자 학습코드의 유형을 클라우드 오케스트레이션 서버(170)에 제공하고 클라우드 오케스트레이션 서버(170)로부터 학습코드 유형별 동적 비용-성능 메트릭을 수신할 수 있다. 즉, 동적 비용-성능 메트릭 처리부(330)는 클라우드 오케스트레이션 서버(170)와 연동하여 동작할 수 있으며, 사용자 학습코드의 유형에 관한 정보를 전송하여 그 응답으로서 사용자 학습코드의 유형에 대응되는 동적 비용-성능 메트릭을 수신할 수 있다.The dynamic cost-performance
이때, 동적 비용-성능 메트릭은 리소스별 비용-성능 매트릭스들을 포함할 수 있다. 예를 들어, 메모리에 관한 비용-성능 매트릭스는 메모리의 성능(즉, 크기, 처리속도 등)과 비용 간의 상관관계를 표현할 수 있다. 즉, 특정 비용과 특정 성능 사이에 상관관계가 존재하는 경우 '1'로 표현될 수 있고, 상관관계가 존재하지 않는 경우 '0'으로 표현될 수 있다. 클라우드 오케스트레이션 서버(170)는 각 클라우드 서비스 서버(150)로부터 현재 상태에 관한 정보를 수신하여 통합한 다음 리소스별 비용-성능 매트릭스들을 동적으로 갱신할 수 있다. 이에 따라, 동적 비용-성능 메트릭 처리부(330)는 사용자 학습코드의 유형에 관한 정보를 클라우드 오케스트레이션 서버(170)에 질의하여 그 응답으로서 질의 시점에서 동적 갱신된 비용-성능 메트릭을 획득할 수 있다.In this case, the dynamic cost-performance metric may include cost-performance matrices for each resource. For example, a cost-performance matrix for a memory can express the correlation between the memory's performance (ie, size, throughput, etc.) and cost. That is, when there is a correlation between a specific cost and a specific performance, it can be expressed as '1', and when there is no correlation, it can be expressed as '0'. The
일 실시예에서, 동적 비용-성능 메트릭 처리부(330)는 비용-성능 메트릭의 정규 분포를 기초로 학습코드 유형별 동적 비용-성능 메트릭을 충족시키는 서버의 존재 확률을 결정할 수 있다. 동적 비용-성능 메트릭 처리부(330)는 클라우드 오케스트레이션 서버(170)로부터 주기적으로 동적 비용-성능 메트릭을 수신할 수 있고, 누적된 동적 비용-성능 메트릭에 관한 통계적 메트릭으로서 비용-성능 메트릭에 관한 정규 분포를 생성할 수 있다. 동적 비용-성능 메트릭 처리부(330)는 비용-성능 메트릭의 정규 분포를 사용자 학습코드의 유형에 대응하는 동적 비용-성능 메트릭에 적용하여 중첩된 영역을 중심으로 클라우드 서비스 서버(150)의 존재 확률을 산출할 수 있다. 즉, 중첩된 영역이 넓을수록 학습코드 유형별 동적 비용-성능 메트릭을 충족시키는 서버의 존재 확률은 높아질 수 있다.In one embodiment, the dynamic cost-performance
일 실시예에서, 동적 비용-성능 메트릭 처리부(330)는 서버의 존재 확률이 특정 기준 이하인 경우에는 학습코드 유형별 동적 비용-성능 메트릭을 조절할 수 있다. 예를 들어, 동적 비용-성능 메트릭 처리부(330)는 서버의 존재 확률이 기 설정된 임계 확률 이하인 경우에는 학습코드 유형별 동적 비용-성능 메트릭을 비용-성능 메트릭에 관한 정규 분포에 가까워지도록 조절할 수 있다. 이후, 동적 비용-성능 메트릭 처리부(330)는 비용-성능 메트릭의 정규 분포를 조절된 학습코드 유형별 동적 비용-성능 메트릭에 적용하여 서버의 존재 확률을 재결정할 수 있다.In one embodiment, the dynamic cost-performance
후보 클라우드 서비스 서버 결정부(340)는 학습코드 유형별 동적 비용-성능 메트릭을 기초로 사용자 요구조건에 특정 기준 이상 근접한 리소스로 구성된 클라우드 서비스 서버(150)를 후보 클라우드 서비스 서버로 결정할 수 있다. 여기에서, 사용자 요구조건은 사용자가 직접 입력한 비용 및 성능 조건을 포함할 수 있다. 일 실시예에서, 사용자 요구조건은 해당 사용자 계정의 이전 이용 기록을 분석하여 자동 산출될 수 있다. 이 경우, 사용자 요구조건은 사용자의 선호 이용조건에 해당할 수 있다.The candidate cloud service
보다 구체적으로, 후보 클라우드 서비스 서버 결정부(340)는 학습코드 유형별 동적 비용-성능 메트릭을 기초로 사용자 학습코드의 유형에 대응되는 비용-성능 메트릭을 결정하고, 해당 비용-성능 메트릭을 기준으로 사용자 요구조건의 비용 및 성능에 적합한 리소스 구성을 결정할 수 있다. 이때, 리소스 구성은 사용자 요구조건의 비용 및 성능 각각에 특정 기준 이상 근접한 범위 내의 리소스들을 포함할 수 있다. 후보 클라우드 서비스 서버 결정부(340)는 결정된 리소스 구성을 가지는 클라우드 서비스 서버(150)를 후보 클라우드 서비스 서버로 결정할 수 있다. 즉, 후보 클라우드 서비스 서버는 사용자 학습코드의 실행을 처리하는데 요구되는 리소스 구성을 사용자의 요구조건에 맞춰 제공 가능한 클라우드 서비스 서버(150)에 해당할 수 있다. 이후 단계에서는 후보 클라우드 서비스 서버들 중에서 가장 적합한 서버가 선정되어 최종적으로 사용자 학습코드의 실행에 따른 딥러닝 학습이 수행될 수 있다.More specifically, the candidate cloud service
일 실시예에서, 후보 클라우드 서비스 서버 결정부(340)는 사용자 요구조건에 가장 근접한 리소스로 구성된 순서대로 클라우드 서비스 서버(150)를 전순서 집합화(totally ordered set) 하고 클라우드 서비스 서버(150)의 로드를 결정하여 후보 클라우드 서비스 서버를 결정할 수 있다. 즉, 클라우드 서비스 서버(150)가 복수인 경우 해당 서버들을 특정 기준에 따라 순서를 부여할 수 있으며, 해당 특정 기준에는 사용자 요구조건의 비용 및 성능에 따른 거리의 총합이 포함될 수 있다. 후보 클라우드 서비스 서버 결정부(340)는 정렬된 클라우드 서비스 서버(150)들 중에서 현재 시점의 로드(load)가 특정 기준 이하인 서버들을 선별하여 후보 클라우드 서비스 서버로서 결정할 수 있다.In one embodiment, the candidate cloud service
클라우드 서비스 서버 결정부(350)는 사용자 요구조건의 변경이 발생되기 전까지 후보 클라우드 서비스 서버를 최종 서비스 클라우드 서버로 결정할 수 있다. 만약 후보 클라우드 서비스 서버가 복수인 경우 클라우드 서비스 서버 결정부(350)는 후보 클라우드 서비스 서버들 중에서 가장 적합한 어느 하나를 선택하거나 또는 랜덤하게 선택하여 최종 서비스 클라우드 서버로 결정할 수 있다. 만약 후보 클라우드 서비스 서버가 하나인 경우 클라우드 서비스 서버 결정부(350)는 사용자 요구조건의 변경이 발생되기 전까지 후보 클라우드 서비스 서버를 최종 서비스 클라우드 서버로 결정할 수 있다.The cloud service
일 실시예에서, 클라우드 서비스 서버 결정부(350)는 사용자 요구조건의 변경이 발생되면 클라우드 서비스 서버(150)를 다시 전순서 집합화 하고 최종 서비스 클라우드 서버로 결정할 수 있다. 사용자는 사용자 단말(110)을 통해 사용자 요구조건을 변경할 수 있으며, 클라우드 서비스 서버 결정부(350)는 사용자 요구조건이 변경된 경우 현재 가용 리소스를 가지는 클라우드 서비스 서버(150)들을 대상으로 최종 서비스 클라우드 서버를 갱신하는 동작을 수행할 수 있다.In an embodiment, the cloud service
일 실시예에서, 클라우드 서비스 서버 결정부(350)는 사용자 요구조건의 변경이 발생되면 현재 가용 리소스가 없는 클라우드 서비스 서버(150) 중에서 향후 소정의 기간 내에 가용 리소스를 가질 것으로 예측되는 클라우드 서비스 서버(150)를 포함하여 최종 서비스 클라우드 서버를 갱신하는 동작을 수행할 수 있다.In one embodiment, the cloud service
제어부(360)는 클라우드 서비스 서버 결정 장치(130)의 전체적인 동작을 제어하고, 학습코드 수신부(310), 학습코드 유형 판단부(320), 동적 비용-성능 메트릭 처리부(330), 후보 클라우드 서비스 서버 결정부(340) 및 클라우드 서비스 서버 결정부(350) 간의 제어 흐름 또는 데이터 흐름을 관리할 수 있다.The
도 4는 본 발명에 따른 인공지능 기반 클라우드 서비스 서버 결정 방법을 설명하는 순서도이다.4 is a flowchart illustrating a method for determining an artificial intelligence-based cloud service server according to the present invention.
도 4를 참조하면, 클라우드 서비스 서버 결정 장치(130)는 학습코드 수신부(310)를 통해 사용자 학습코드를 수신할 수 있다(단계 S410). 클라우드 서비스 서버 결정 장치(130)는 학습코드 유형 판단부(320)를 통해 학습코드 모집단에 있는 샘플 학습코드의 사전 분석을 통해 구축된 학습코드 유형 모델을 기초로 사용자 학습코드의 유형을 판단할 수 있다(단계 S430).Referring to FIG. 4 , the cloud service
또한, 클라우드 서비스 서버 결정 장치(130)는 동적 비용-성능 메트릭 처리부(330)를 통해 클라우드 리소스 할당 프로토콜을 통해 사용자 학습코드의 유형을 클라우드 오케스트레이션 서버(170)에 제공하고 클라우드 오케스트레이션 서버(170)로부터 학습코드 유형별 동적 비용-성능 메트릭을 수신할 수 있다(단계 S450).In addition, the cloud service
또한, 클라우드 서비스 서버 결정 장치(130)는 후보 클라우드 서비스 서버 결정부(340)를 통해 학습코드 유형별 동적 비용-성능 메트릭을 기초로 사용자 요구조건에 특정 기준 이상 근접한 리소스로 구성된 클라우드 서비스 서버(150)를 후보 클라우드 서비스 서버로 결정할 수 있다(단계 S470). 클라우드 서비스 서버 결정 장치(130)는 클라우드 서비스 서버 결정부(350)를 통해 사용자 요구조건의 변경이 발생되기 전까지 후보 클라우드 서비스 서버를 최종 서비스 클라우드 서버로 결정할 수 있다(단계 S490).In addition, the cloud service
도 5는 본 발명에 따른 학습코드의 유형 판단 과정을 설명하는 도면이다.5 is a diagram illustrating a process of determining the type of a learning code according to the present invention.
도 5를 참조하면, 클라우드 서비스 서버 결정 장치(130)는 학습코드 유형 판단부(320)를 통해 학습코드 유형 모델을 기초로 학습코드(550)의 유형을 판단할 수 있다. 이때, 학습코드(550)의 유형은 학습코드의 실행을 통해 구현되는 딥러닝 알고리즘(530)의 인공지능 연산 특징을 기초로 결정될 수 있다. 예를 들어, 클라우드 서비스 서버 결정 장치(130)는 사용자 학습코드(550)의 인공지능 연산 특징을 분석하여 CPU 집중 연산 유형, GPU 집중 연산 유형, 메모리 집중 연산 유형 및 가속기 집중 연산 유형 중 어느 하나를 사용자 학습코드(550)의 유형으로서 결정할 수 있다. 도 5에서, 학습코드 (a)의 경우 CPU 집중 연산 유형으로 분류될 수 있고, (b)의 경우 GPU 집중 연산 유형으로 분류될 수 있다. 또한, (c)의 경우 메모리 집중 연산 유형으로 분류될 수 있고, (d)의 경우 가속기 집중 연산 유형으로 분류될 수 있다. 이때, 사용자 학습코드(550)의 유형은 클라우드의 자원풀(510)에 의해 관리하는 리소스들 중 특정 유형의 리소스에 따라 인공지능 연산 성능이 결정될 수 있음을 나타낼 수 있다.Referring to FIG. 5 , the cloud service
도 6은 본 발명에 따른 리소스별 비용-성능 매트릭스를 설명하는 도면이다.6 is a diagram illustrating a cost-performance matrix for each resource according to the present invention.
도 6을 참조하면, 클라우드 서비스 서버 결정 장치(130)는 동적 비용-성능 메트릭 처리부(330)를 통해 클라우드 오케스트레이션 서버(170)에 사용자 학습코드의 유형을 질의하여 학습코드 유형별 동적 비용-성능 메트릭을 수신할 수 있다. 이때, 동적 비용-성능 메트릭은 리소스별 비용-성능 매트릭스(610)들을 포함할 수 있다. 도 6에서, 메모리에 관한 비용-성능 매트릭스(610)는 메모리의 성능(즉, 크기, 처리속도 등)과 비용 간의 상관관계를 표현할 수 있다. 즉, 특정 비용과 특정 성능 사이에 상관관계가 존재하는 경우 '1'로 표현될 수 있고, 상관관계가 존재하지 않는 경우 '0'으로 표현될 수 있다.Referring to FIG. 6 , the cloud service
한편, 클라우드 오케스트레이션 서버(170)는 각 클라우드 서비스 서버(150)로부터 현재 상태에 관한 정보를 수신하여 통합한 다음 리소스별 비용-성능 매트릭스들을 동적으로 갱신할 수 있다. 즉, 리소스별 비용-성능 매트릭스들은 현재 시점에서 동작하는 각 클라우드 서비스 서버(150)들의 성능 및 비용을 참조하여 주기적으로 갱신될 수 있고, 클라우드 서비스 서버 결정 장치(130)는 리소스별 비용-성능 매트릭스들을 포함하는 동적 비용-성능 메트릭을 이용하여 사용자 요구조건에 근접한 리소스 구성을 효과적으로 결정할 수 있다.Meanwhile, the
특히, 클라우드 서비스 서버 결정 장치(130)는 사용자 요구조건의 변경이 발생하는 경우 클라우드 오케스트레이션 서버(170)에 의해 갱신된 동적 비용-성능 메트릭을 이용하여 현재 시점을 기준으로 사용자 요구조건에 근접한 리소스 구성을 빠르고 정확하게 갱신함으로써 사용자에게 최상의 클라우드 환경을 제공할 수 있다.In particular, the cloud service
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.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 claims below. You will understand that it can be done.
100: 클라우드 서비스 서버 결정 시스템
110: 사용자 단말
130: 클라우드 서비스 서버 결정 장치
150: 클라우드 서비스 서버
170: 클라우드 오케스트레이션 서버
190: 데이터베이스
210: 프로세서
230: 메모리
250: 사용자 입출력부
270: 네트워크 입출력부
310: 학습코드 수신부
320: 학습코드 유형 판단부
330: 동적 비용-성능 메트릭 처리부
340: 후보 클라우드 서비스 서버 결정부
350: 클라우드 서비스 서버 결정부
360: 제어부100: cloud service server determination system
110: User terminal 130: Device for determining cloud service server
150: cloud service server 170: cloud orchestration server
190: database
210: processor 230: memory
250: user input/output unit 270: network input/output unit
310: learning code receiver 320: learning code type determination unit
330: dynamic cost-performance metric processing unit
340: candidate cloud service server determination unit
350: cloud service server determination unit
360: control unit
Claims (8)
학습코드 모집단에 있는 샘플 학습코드의 사전 분석을 통해 구축된 학습코드 유형 모델을 기초로 상기 사용자 학습코드의 유형을 판단하는 학습코드 유형 판단부;
클라우드 리소스 할당 프로토콜을 통해 상기 사용자 학습코드의 유형을 클라우드 오케스트레이션 서버에 제공하고 상기 클라우드 오케스트레이션 서버로부터 학습코드 유형별 동적 비용-성능 메트릭을 수신하는 동적 비용-성능 메트릭 처리부;
상기 학습코드 유형별 동적 비용-성능 메트릭을 기초로 사용자 요구조건에 특정 기준 이상 근접한 리소스로 구성된 클라우드 서비스 서버를 후보 클라우드 서비스 서버로 결정하는 후보 클라우드 서비스 서버 결정부; 및
상기 사용자 요구조건의 변경이 발생되기 전까지 상기 후보 클라우드 서비스 서버를 최종 서비스 클라우드 서버로 결정하는 클라우드 서비스 서버 결정부;를 포함하는 인공지능 기반 클라우드 서비스 서버 결정 장치.
a learning code receiving unit for receiving a user learning code;
a learning code type determination unit for determining the type of the user learning code based on a learning code type model built through preliminary analysis of sample learning codes in a learning code population;
a dynamic cost-performance metric processing unit providing the type of the user learning code to a cloud orchestration server through a cloud resource allocation protocol and receiving a dynamic cost-performance metric for each type of learning code from the cloud orchestration server;
a candidate cloud service server determination unit that determines a cloud service server composed of resources that are closer to a user requirement than a specific criterion as a candidate cloud service server based on the dynamic cost-performance metric for each type of learning code; and
and a cloud service server determination unit determining the candidate cloud service server as a final service cloud server until the user requirement is changed.
상기 샘플 학습코드의 인공지능 연산 특징을 분석하여 CPU 집중 연산 유형, GPU 집중 연산 유형, 메모리 집중 연산 유형 및 가속기 집중 연산 유형 중 어느 하나를 상기 사용자 학습코드의 유형으로서 결정하는 것을 특징으로 하는 인공지능 기반 클라우드 서비스 서버 결정 장치.
The method of claim 1, wherein the learning code type determining unit
Artificial intelligence, characterized in that by analyzing the artificial intelligence operation characteristics of the sample learning code to determine one of the CPU intensive operation type, GPU intensive operation type, memory intensive operation type, and accelerator intensive operation type as the type of the user learning code. Base cloud service server determination device.
상기 샘플 학습코드의 인공지능 연산 동안 소정의 시간 간격(time interval)마다 예측된 CPU, GPU, 메모리 및 가속기 중 적어도 하나의 사용량을 기초로 상기 인공지능 연산 특징을 결정하는 것을 특징으로 하는 인공지능 기반 클라우드 서비스 서버 결정 장치.
The method of claim 2, wherein the learning code type determining unit
Based on artificial intelligence, characterized in that the artificial intelligence operation characteristic is determined based on the usage of at least one of the CPU, GPU, memory, and accelerator predicted at each predetermined time interval during the artificial intelligence operation of the sample learning code. Cloud service server decision device.
비용-성능 메트릭의 정규 분포를 기초로 상기 학습코드 유형별 동적 비용-성능 메트릭을 충족시키는 서버의 존재 확률을 결정하는 것을 특징으로 하는 인공지능 기반 클라우드 서비스 서버 결정 장치.
The method of claim 1, wherein the dynamic cost-performance metric processing unit
An artificial intelligence-based cloud service server determination device, characterized in that for determining the existence probability of a server that satisfies the dynamic cost-performance metric for each learning code type based on a normal distribution of the cost-performance metric.
상기 서버의 존재 확률이 특정 기준 이하인 경우에는 상기 학습코드 유형별 동적 비용-성능 메트릭을 조절하는 것을 특징으로 하는 인공지능 기반 클라우드 서비스 서버 결정 장치.
The method of claim 4, wherein the dynamic cost-performance metric processing unit
An artificial intelligence-based cloud service server determination device, characterized in that for adjusting a dynamic cost-performance metric for each learning code type when the existence probability of the server is less than or equal to a specific criterion.
상기 사용자 요구조건에 가장 근접한 리소스로 구성된 순서대로 상기 클라우드 서비스 서버를 전순서 집합화 하고 상기 클라우드 서비스 서버의 로드를 결정하여 상기 후보 클라우드 서비스 서버를 결정하는 것을 특징으로 하는 인공지능 기반 클라우드 서비스 서버 결정 장치.
The method of claim 1, wherein the candidate cloud service server determining unit
Determining the candidate cloud service server by aggregating the cloud service servers in the entire order in the order of resources closest to the user requirements and determining the load of the cloud service server to determine the candidate cloud service server. Device.
상기 사용자 요구조건의 변경이 발생되면 상기 클라우드 서비스 서버를 다시 전순서 집합화 하고 상기 최종 서비스 클라우드 서버로 결정하는 것을 특징으로 하는 인공지능 기반 클라우드 서비스 서버 결정 장치.
The method of claim 1, wherein the cloud service server determining unit
and when a change in the user requirements occurs, the cloud service server is aggregated again in the entire order and determined as the final service cloud server.
학습코드 모집단에 있는 샘플 학습코드의 사전 분석을 통해 구축된 학습코드 유형 모델을 기초로 상기 사용자 학습코드의 유형을 판단하는 단계;
클라우드 리소스 할당 프로토콜을 통해 상기 사용자 학습코드의 유형을 클라우드 오케스트레이션 서버에 제공하고 상기 클라우드 오케스트레이션 서버로부터 학습코드 유형별 동적 비용-성능 메트릭을 수신하는 단계;
상기 학습코드 유형별 동적 비용-성능 메트릭을 기초로 사용자 요구조건에 특정 기준 이상 근접한 리소스로 구성된 클라우드 서비스 서버를 후보 클라우드 서비스 서버로 결정하는 단계; 및
상기 사용자 요구조건의 변경이 발생되기 전까지 상기 후보 클라우드 서비스 서버를 최종 서비스 클라우드 서버로 결정하는 단계;를 포함하는 인공지능 기반 클라우드 서비스 서버 결정 방법.
Receiving a user learning code;
Determining the type of the user learning code based on a learning code type model built through preliminary analysis of sample learning codes in a learning code population;
providing the user learning code type to a cloud orchestration server through a cloud resource allocation protocol and receiving a dynamic cost-performance metric for each learning code type from the cloud orchestration server;
determining, as a candidate cloud service server, a cloud service server composed of resources closer to a user requirement than a specific criterion based on the dynamic cost-performance metric for each type of learning code; and
and determining the candidate cloud service server as a final service cloud server until a change in the user requirement occurs.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210176149A KR20230087316A (en) | 2021-12-09 | 2021-12-09 | Apparatus and method for determining ai-based cloud service server |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210176149A KR20230087316A (en) | 2021-12-09 | 2021-12-09 | Apparatus and method for determining ai-based cloud service server |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230087316A true KR20230087316A (en) | 2023-06-16 |
Family
ID=86948256
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210176149A KR20230087316A (en) | 2021-12-09 | 2021-12-09 | Apparatus and method for determining ai-based cloud service server |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20230087316A (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170078012A (en) | 2015-12-29 | 2017-07-07 | 전자부품연구원 | Method and System for Optimizing Resource Allocation with Cloud Resources Monitoring and Estimating |
-
2021
- 2021-12-09 KR KR1020210176149A patent/KR20230087316A/en unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170078012A (en) | 2015-12-29 | 2017-07-07 | 전자부품연구원 | Method and System for Optimizing Resource Allocation with Cloud Resources Monitoring and Estimating |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021036936A1 (en) | Method and apparatus for allocating resources and tasks in distributed system, and system | |
CN108536650B (en) | Method and device for generating gradient lifting tree model | |
CN110852421A (en) | Model generation method and device | |
WO2016033969A1 (en) | Method and system for predicting traffic data amount and/or resource data amount | |
US11645122B2 (en) | Method, device, and computer program product for managing jobs in processing system | |
CN111340221A (en) | Method and device for sampling neural network structure | |
US11640306B2 (en) | Computational configuration and multi-layer cluster analysis | |
CN116057518A (en) | Automatic query predicate selective prediction using machine learning model | |
KR20220094564A (en) | Method and apparatus for automatically reducing model weight for deep learning model serving optimization, and a method for providing cloud inference services usin the same | |
CN112257868A (en) | Method and device for constructing and training integrated prediction model for predicting passenger flow | |
CN112529202A (en) | Quantum entanglement state distribution method, device, equipment, storage medium and product | |
US20210035025A1 (en) | Systems and methods for optimizing machine learning models by summarizing list characteristics based on multi-dimensional feature vectors | |
Ma et al. | Ordinal optimization-based performance model estimation method for HDFS | |
KR102613365B1 (en) | Apparatus and method for determining ai-based cloud service server | |
CN110602207A (en) | Method, device, server and storage medium for predicting push information based on off-network | |
KR20230087316A (en) | Apparatus and method for determining ai-based cloud service server | |
CN116896591A (en) | Scheduling method and device for network data analysis model and computer equipment | |
KR102504939B1 (en) | Cloud-based deep learning task execution time prediction system and method | |
CN113918577B (en) | Data table identification method and device, electronic equipment and storage medium | |
US11720414B2 (en) | Parallel execution controller for partitioned segments of a data model | |
KR20230087308A (en) | Cloud learning device and method through artificial intelligence-based resource utilization pattern prediction | |
US11676050B2 (en) | Systems and methods for neighbor frequency aggregation of parametric probability distributions with decision trees using leaf nodes | |
KR20230087309A (en) | Artificial intelligence cloud learning apparatus and method based on learning cloud type | |
CN111144495B (en) | Service distribution method, device and medium | |
Wang et al. | Sparse multi-task learning for detecting influential nodes in an implicit diffusion network |