KR102590993B1 - 적응형 배치 프로세싱 방법 및 시스템 - Google Patents
적응형 배치 프로세싱 방법 및 시스템 Download PDFInfo
- Publication number
- KR102590993B1 KR102590993B1 KR1020210117458A KR20210117458A KR102590993B1 KR 102590993 B1 KR102590993 B1 KR 102590993B1 KR 1020210117458 A KR1020210117458 A KR 1020210117458A KR 20210117458 A KR20210117458 A KR 20210117458A KR 102590993 B1 KR102590993 B1 KR 102590993B1
- Authority
- KR
- South Korea
- Prior art keywords
- batch
- server
- size
- client
- data
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 27
- 230000003044 adaptive effect Effects 0.000 title claims abstract description 21
- 238000012545 processing Methods 0.000 title description 10
- 238000004458 analytical method Methods 0.000 claims abstract description 66
- 238000010801 machine learning Methods 0.000 claims abstract description 26
- 238000004364 calculation method Methods 0.000 claims description 22
- 230000015654 memory Effects 0.000 claims description 21
- 238000005259 measurement Methods 0.000 claims description 10
- 238000003672 processing method Methods 0.000 abstract description 13
- 238000004891 communication Methods 0.000 description 25
- 238000005516 engineering process Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 7
- 238000013528 artificial neural network Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 238000013135 deep learning Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000013527 convolutional neural network Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 238000010923 batch production Methods 0.000 description 1
- 238000013477 bayesian statistics method Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012706 support-vector machine Methods 0.000 description 1
Classifications
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/16—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using machine learning or artificial intelligence
-
- 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]
-
- 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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- 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/54—Interprogram communication
-
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5681—Pre-fetching or pre-delivering data based on network characteristics
-
- 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/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/61—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Medical Informatics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Multimedia (AREA)
- Computer And Data Communications (AREA)
- Debugging And Monitoring (AREA)
Abstract
본 발명은 적응형 배치 프로세싱 방법 및 장치에 관한 것이다. 본 발명의 일 실시예에 따른 적응형 배치 프로세싱 방법은 머신 러닝(machine leaning) 기법으로 학습된 모델을 저장한 서버와 상기 서버에 접속하여 입력 데이터를 전송하면서 해당 입력 데이터에 대한 상기 모델 기반의 분석 결과를 요청하는 클라이언트를 각각 포함하는 시스템에 의해 수행되는 방법으로서, 상기 서버에서 상기 서버의 가용 자원의 양을 측정하는 단계; 상기 서버에서 측정된 상기 가용 자원의 양을 이용하여 배치(batch) 크기를 계산하고, 계산된 배치 크기에 대한 정보를 상기 클라이언트로 전송하는 단계; 상기 클라이언트에서 다수 입력 데이터의 큐(queue)를 생성하여 상기 전송된 정보를 반영한 크기의 배치 데이터를 생성하고, 생성된 상기 배치 데이터를 상기 서버로 전송하는 단계; 및 상기 서버에서 수신된 상기 배치 데이터에 대해 상기 모델을 기반으로 한 분석을 수행하는 단계;를 포함한다.
Description
본 발명은 배치 프로세싱(Batch Processing) 방법 및 시스템에 관한 것으로서, 더욱 상세하게는 머신 러닝(machine learning) 기반 분석 서비스 제공 시에 분석 서비스의 성능과 자원 활용도의 제고를 위한 적응형 배치 프로세싱 방법 및 시스템에 관한 것이다.
최근, 딥 러닝(deep learning) 등의 머신 러닝(machine learning) 기술이 발달하면서, 학습된 모델을 기반으로 서비스를 구성하여 분석을 제공하는 기법들이 제시되고 있다.
도 1은 종래의 머신 러닝 모델을 이용한 분석 서비스를 위한 구성도를 나타낸다.
가령, 도 1을 참고하면, TensorFlow Serving, PyTorch Serving 등의 분석 서비스는 머신 러닝 기법으로 학습된 모델을 서버(20)에 위치시키고, 해당 모델을 활용한 분석(또는 추론)을 REST API나 혹은 RPC 프로토콜을 통하여 클라이언트(10)에 제공한다. 즉, 클라이언트(10)에서는 분석 서비스 제공 대상이 되는 입력 데이터를 해당 프로토콜을 통해 서버(20)에 전송하며, 이에 따라 서버(20)에서는 모델을 기반으로 수신된 입력 데이터에 대한 분석을 수행하여 그 분석 결과를 클라이언트(10)에 전달한다.
한편, 이러한 분석 서비스의 성능을 높이기 위한 기술로는 배치 프로세싱(Batch Processing)이 있다. 즉, 배치 프로세싱은 분석 대상을 하나씩 매번 요청하지 않고 분석 대상을 적절히 묶은 하나의 배치(batch)를 생성하고, 해당 배치에 대한 분석을 요청하는 기술이다. 예를 들어, 한 개의 데이터를 처리하는 시간이 100ms라고 할 경우, 10개의 데이터를 순차적으로 처리하는 데 소요되는 시간은 1000ms이다. 하지만, 이들 10개의 데이터를 묶어서 하나의 batch로 처리할 경우, 1000ms 보다 적은 시간에 처리할 수 있다.
다만, 이러한 배치 프로세싱 기술은 컴퓨팅 자원에 많은 영향을 받는다. 예를 들어, 컴퓨팅 자원에 100MB의 가용 메모리만 남아 있을 때 1000MB의 배치 데이터(batch data)가 입력되는 경우, 해당 데이터는 정상적으로 처리되지 않거나, 하나씩 데이터를 순차적으로 처리할 때보다 오히려 처리시간이 늘어날 수 있다.
상기한 바와 같은 종래 기술의 문제점을 해결하기 위하여, 본 발명은 머신 러닝(machine learning) 기반 분석 서비스 제공 시에 각 자원의 상태를 고려한 자원 인지의 적응형 배치 프로세스 기술을 제공하는데 그 목적이 있다.
다만, 본 발명이 해결하고자 하는 과제는 이상에서 언급한 과제에 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
상기와 같은 과제를 해결하기 위한 본 발명의 일 실시예에 따른 방법은 머신 러닝(machine leaning) 기법으로 학습된 모델을 저장한 서버와 상기 서버에 접속하여 입력 데이터를 전송하면서 해당 입력 데이터에 대한 상기 모델 기반의 분석 결과를 요청하는 클라이언트를 각각 포함하는 시스템에 의해 수행되는 방법으로서, 상기 서버에서 상기 서버의 가용 자원의 양을 측정하는 단계; 상기 서버에서 측정된 상기 가용 자원의 양을 이용하여 배치(batch) 크기를 계산하고, 계산된 배치 크기에 대한 정보를 상기 클라이언트로 전송하는 단계; 상기 클라이언트에서 다수 입력 데이터의 큐(queue)를 생성하여 상기 전송된 정보를 반영한 크기의 배치 데이터를 생성하고, 생성된 상기 배치 데이터를 상기 서버로 전송하는 단계; 및 상기 서버에서 수신된 상기 배치 데이터에 대해 상기 모델을 기반으로 한 분석을 수행하는 단계;를 포함한다.
본 발명의 다른 일 실시예에 따른 방법은 머신 러닝(machine leaning) 기법으로 학습된 모델을 저장한 서버와 상기 서버에 접속하여 입력 데이터를 전송하면서 해당 입력 데이터에 대한 상기 모델 기반의 분석 결과를 요청하는 클라이언트를 각각 포함하는 시스템에 의해 수행되는 방법으로서, 상기 서버에서 상기 서버의 가용 자원의 양을 측정하여 상기 클라이언트로 전송하는 단계; 상기 클라이언트에서 전송된 상기 가용 자원의 양을 이용하여 배치(batch) 크기를 계산하는 단계; 상기 클라이언트에서 다수 입력 데이터의 큐(queue)를 생성하여 상기 배치 크기를 반영한 크기의 배치 데이터를 생성하고, 생성된 상기 배치 데이터를 상기 서버로 전송하는 단계; 및 상기 서버에서 수신된 상기 배치 데이터에 대해 상기 모델을 기반으로 한 분석을 수행하는 단계;를 포함한다.
상기 가용 자원량은 상기 서버의 프로세서 로드 크기 및 메모리 여유 크기를 포함할 수 있다.
상기 배치 데이터의 생성 시에 상기 배치 크기에 해당하는 다수 입력 데이터의 수집 시간이 분석에 요구되는 QoS(Quality of Service)의 지연 시간을 초과하는 경우, 상기 배치 크기보다 적은 크기의 배치 데이터를 생성할 수 있다.
상기 배치 크기의 계산 시에 상기 서버의 가용 자원량과, 상기 클라이언트에서 상기 서버로 기 전송된 입력 데이터의 평균 크기를 각각 이용하여 상기 배치 크기를 계산할 수 있다.
본 발명의 일 실시예에 따른 시스템은 머신 러닝(machine leaning) 기법으로 학습된 모델을 저장한 서버와, 상기 서버에 접속하여 입력 데이터를 전송하면서 해당 입력 데이터에 대한 상기 모델 기반의 분석 결과를 요청하는 클라이언트를 포함하는 시스템으로서, 상기 서버의 가용 자원량을 측정하는 자원량 측정부; 상기 가용 자원량을 이용하여 배치(batch) 크기를 계산하는 배치 크기 계산부; 상기 클라이언트에서 다수 입력 데이터의 큐(queue)를 생성하도록 상기 클라이언트에 포함된 큐 생성부; 상기 생성된 큐에서 상기 배치 크기를 반영한 배치 데이터를 생성하도록 상기 클라이언트에 포함된 배치 생성부; 및 상기 모델을 기반으로 상기 클라이언트에서 수신된 상기 배치 데이터에 대한 분석을 수행하도록 상기 서버에 포함된 모델 분석부;를 포함한다.
상기 큐 생성부는 상기 배치 크기에 해당하는 다수 입력 데이터의 수집 시간이 분석에 요구되는 QoS(Quality of Service)의 지연 시간을 초과하는 경우, 상기 배치 크기보다 적은 크기의 배치 데이터를 생성할 수 있다.
상기 배치 크기 계산부는 상기 서버의 가용 자원량과, 상기 클라이언트에서 상기 서버로 기 전송된 입력 데이터의 평균 크기를 각각 이용하여 상기 배치 크기를 계산할 수 있다.
상기와 같이 구성되는 본 발명은 가용 자원의 측정을 통해 계산된 배치 크기에 맞는 배치 데이터의 분석이 가능하여, 보다 성능이 향상된 적응형 배치 프로세싱(adaptive batch processing) 기반의 분석 서비스를 제공할 수 있는 이점이 있다.
즉, 본 발명은 임의의 고정되어 있는 배치 크기가 아닌, 가용 자원에 최적화된 배치 크기를 측정할 수 있어, 자원 최적화와 머신 러닝 기반의 분석 서비스 성능의 향상이 가능한 이점이 있다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 종래의 머신 러닝 모델을 이용한 분석 서비스를 위한 구성도를 나타낸다.
도 2는 본 발명의 일 실시예에 따른 시스템(10)의 동작 구성도를 나타낸다.
도 3은 본 발명의 일 실시예에 따른 클라이언트(100) 및 서버(200)의 블록 구성도를 나타낸다.
도 4는 클라이언트(100)에서 제어부(150)의 블록 구성도를 나타낸다.
도 5는 서버(200)에서 제어부(250)의 블록 구성도를 나타낸다.
도 6은 본 발명의 일 실시예에 따른 적응형 배치 프로세싱 방법의 순서도를 나타낸다.
도 2는 본 발명의 일 실시예에 따른 시스템(10)의 동작 구성도를 나타낸다.
도 3은 본 발명의 일 실시예에 따른 클라이언트(100) 및 서버(200)의 블록 구성도를 나타낸다.
도 4는 클라이언트(100)에서 제어부(150)의 블록 구성도를 나타낸다.
도 5는 서버(200)에서 제어부(250)의 블록 구성도를 나타낸다.
도 6은 본 발명의 일 실시예에 따른 적응형 배치 프로세싱 방법의 순서도를 나타낸다.
본 발명의 상기 목적과 수단 및 그에 따른 효과는 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며, 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 경우에 따라 복수형도 포함한다. 본 명세서에서, "포함하다", “구비하다”, “마련하다” 또는 “가지다” 등의 용어는 언급된 구성요소 외의 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.
본 명세서에서, “또는”, “적어도 하나” 등의 용어는 함께 나열된 단어들 중 하나를 나타내거나, 또는 둘 이상의 조합을 나타낼 수 있다. 예를 들어, “또는 B”“및 B 중 적어도 하나”는 A 또는 B 중 하나만을 포함할 수 있고, A와 B를 모두 포함할 수도 있다.
본 명세서에서, “예를 들어” 등에 따르는 설명은 인용된 특성, 변수, 또는 값과 같이 제시한 정보들이 정확하게 일치하지 않을 수 있고, 허용 오차, 측정 오차, 측정 정확도의 한계와 통상적으로 알려진 기타 요인을 비롯한 변형과 같은 효과로 본 발명의 다양한 실시 예에 따른 발명의 실시 형태를 한정하지 않아야 할 것이다.
본 명세서에서, 어떤 구성요소가 다른 구성요소에 '연결되어’ 있다거나 '접속되어' 있다고 기재된 경우, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성 요소에 '직접 연결되어' 있다거나 '직접 접속되어' 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해될 수 있어야 할 것이다.
본 명세서에서, 어떤 구성요소가 다른 구성요소의 '상에' 있다거나 '접하여' 있다고 기재된 경우, 다른 구성요소에 상에 직접 맞닿아 있거나 또는 연결되어 있을 수 있지만, 중간에 또 다른 구성요소가 존재할 수 있다고 이해되어야 할 것이다. 반면, 어떤 구성요소가 다른 구성요소의 '바로 위에' 있다거나 '직접 접하여' 있다고 기재된 경우에는, 중간에 또 다른 구성요소가 존재하지 않은 것으로 이해될 수 있다. 구성요소 간의 관계를 설명하는 다른 표현들, 예를 들면, '~사이에'와 '직접 ~사이에' 등도 마찬가지로 해석될 수 있다.
본 명세서에서, '제1', '제2' 등의 용어는 다양한 구성요소를 설명하는데 사용될 수 있지만, 해당 구성요소는 위 용어에 의해 한정되어서는 안 된다. 또한, 위 용어는 각 구성요소의 순서를 한정하기 위한 것으로 해석되어서는 안 되며, 하나의 구성요소와 다른 구성요소를 구별하는 목적으로 사용될 수 있다. 예를 들어, '제1구성요소'는 '제2구성요소'로 명명될 수 있고, 유사하게 '제2구성요소'도 '제1구성요소'로 명명될 수 있다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일 실시예를 상세히 설명하도록 한다.
도 2는 본 발명의 일 실시예에 따른 시스템(10)의 동작 구성도를 나타내며, 도 3은 본 발명의 일 실시예에 따른 클라이언트(100) 및 서버(200)의 블록 구성도를 나타낸다.
최근, 머신 러닝(machine leaning) 기술은 높은 수준의 정확도를 제공할 수 있을 만큼 개선되고 있으며, 그 분야 또한 영상, 음성, sequential data등 다양하게 확장되고 있다. 이러한 머신 러닝 기술의 발전에 따라 학습된 머신 러닝 모델의 배포를 지원하기 위한 기술도 급속도로 확장되고 있다.
가령, Google은 2017년도 후반에 TensorFlow Serving을 발표하여 자사의 Tensroflow로 학습된 머신 러닝 모델을 클라우드 등에 서비스 형태로 위치시키고, 분석 대상을 해당 서비스에 전송함으로써 분석 결과를 원격으로 제공받을 수 있는 서버-클라이언트 기반의 분석 서비스를 제시한 바 있다.
이러한 기술을 오픈 소스 진영의 지원을 받아 지속적으로 발전되고 있는데, 특히 Seldon의 경우 기 개발된 머신 러닝 모델에 대한 docker 컨테이너 변환 도구를 제공하고 있어 최근 많은 관심을 받고 있다. Seldon의 경우, 기 개발된 머신 러닝 모델을 seldon에서 제공하는 template에 맞추어 간단한 refactoring을 수행한 후 seldon에서 제공하는 툴에 입력하면 자동으로 클라우드에 배포 가능한 docker container를 생성해 주고 있으며, 이 과정에서 해당 머신 러닝 모델에 접근할 수 있는 RESTful 혹은 gRPC 기반의 인터페이스가 자동으로 생성되어 개발자들이 자신이 개발한 서비스를 매우 손쉽게 배포할 수 있는 방안을 제시하고 있다.
본 발명은 이러한 분석 서비스 제공 시 적응형 배치 프로세싱(adaptive batch processing)을 기반으로 해당 서비스를 제공함으로써, 서비스 성능의 향상을 도모하기 위한 기술을 제시하고자 한다.
즉, 본 발명의 일 실시예에 따른 시스템(10)은 적응형 배치 프로세싱(adaptive batch processing)에 따른 분석 서비스 제공을 위한 시스템으로서, 도 2에 도시된 바와 같이, 클라이언트(100) 및 서버(200)를 포함한다.
이때, 클라이언트(100)는 다수의 입력 데이터를 포함한 배치 데이터를 전송하여 해당 입력 데이터에 대한 분석을 요청한다. 또한, 서버(200)는 머신 러닝(machine leaning) 기법으로 학습된 모델을 저장하며, 해당 모델을 기반으로 클라이언트(100)로부터 수신된 배치 데이터에 대한 분석을 수행하여 그 분석 결과를 클라이언트(100)로 전송한다.
이러한 클라이언트(100) 및 서버(200)는 컴퓨팅(computing)이 가능한 전자 장치 또는 컴퓨팅 네트워크일 수 있다.
예를 들어, 전자 장치는 데스크탑 PC(desktop personal computer), 랩탑 PC(laptop personal computer), 태블릿 PC(tablet personal computer), 넷북 컴퓨터(netbook computer), 워크스테이션(workstation), PDA(personal digital assistant), 스마트폰(smartphone), 스마트패드(smartpad), 또는 휴대폰(mobile phone), 등일 수 있으나, 이에 한정되는 것은 아니다.
이러한 클라이언트(100) 및 서버(200)는, 도 1에 도시된 바와 같이, 입력부(110, 210), 통신부(120, 220), 디스플레이(130, 230), 메모리(140, 240) 및 제어부(150, 250)를 포함할 수 있다.
입력부(110, 210)는 사용자의 입력에 대응하여, 입력데이터를 발생시키며, 다양한 입력수단을 포함할 수 있다. 예를 들어, 입력부(110, 210)는 키보드(key board), 키패드(key pad), 돔 스위치(dome switch), 터치 패널(touch panel), 터치 키(touch key), 터치 패드(touch pad), 마우스(mouse), 메뉴 버튼(menu button) 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
통신부(120, 220)는 다른 장치와의 통신을 수행하는 구성이다. 즉, 클라이언트(100)의 통신부(120)는 서버(200)의 통신부(220)와 다양한 데이터를 송수신할 수 있다. 예를 들어, 통신부(120, 220)는 5G(5th generation communication), LTE-A(long term evolution-advanced), LTE(long term evolution), 블루투스, BLE(bluetooth low energe), NFC(near field communication), 와이파이(WiFi) 통신 등의 무선 통신을 수행하거나, 케이블 통신 등의 유선 통신을 수행할 수 있으나, 이에 한정되는 것은 아니다. 가령, 통신부(120, 220)는 모델에 대한 정보, 가용 자원량에 대한 정보, 배치 크기에 대한 정보, 배치 데이터, 분석 결과에 대한 정보 등을 서로 송수신할 수 있다.
디스플레이(130, 230)는 다양한 영상 데이터를 화면으로 표시하는 것으로서, 비발광형 패널이나 발광형 패널로 구성될 수 있다. 예를 들어, 디스플레이(130, 230)는 액정 디스플레이(LCD; liquid crystal display), 발광 다이오드(LED; light emitting diode) 디스플레이, 유기 발광 다이오드(OLED; organic LED) 디스플레이, 마이크로 전자기계 시스템(MEMS; micro electro mechanical systems) 디스플레이, 또는 전자 종이(electronic paper) 디스플레이 등을 포함할 수 있으나, 이에 한정되는 것은 아니다. 또한, 디스플레이(130, 230)는 입력부(110, 210)와 결합되어 터치 스크린(touch screen) 등으로 구현될 수 있다.
메모리(140, 240)는 클라이언트(100) 및 서버(200)의 동작에 필요한 각종 정보를 저장한다. 저장 정보로는 모델에 대한 정보, 가용 자원량에 대한 정보, 배치 크기에 대한 정보, 배치 데이터, 분석 결과에 대한 정보, 후술할 적응형 배치 프로세싱 방법에 관련된 프로그램 정보 등이 포함될 수 있으나, 이에 한정되는 것은 아니다. 예를 들어, 메모리(140, 240)는 그 유형에 따라 하드디스크 타입(hard disk type), 마그네틱 매체 타입(Magnetic media type), CD-ROM(compact disc read only memory), 광기록 매체 타입(Optical Media type), 자기-광 매체 타입(Magneto-optical media type), 멀티미디어 카드 마이크로 타입(Multimedia card micro type), 플래시 저장부 타입(flash memory type), 롬 타입(read only memory type), 또는 램 타입(random access memory type) 등을 포함할 수 있으나, 이에 한정되는 것은 아니다. 또한, 메모리(140, 240)는 그 용도/위치에 따라 캐시(cache), 버퍼, 주기억장치, 또는 보조기억장치이거나 별도로 마련된 저장 시스템일 수 있으나, 이에 한정되는 것은 아니다.
제어부(150, 250)는 클라이언트(100) 및 서버(200)의 다양한 제어 동작을 수행할 수 있다. 즉, 제어부(150, 250)는 후술할 적응형 배치 프로세싱 방법의 수행을 제어할 수 있으며, 클라이언트(100) 및 서버(200)의 나머지 구성, 즉 입력부(110, 210), 통신부(120, 220), 디스플레이(130, 230), 메모리(140, 240) 등의 동작을 제어할 수 있다. 예를 들어, 제어부(150, 250)는 하드웨어인 프로세서(processor) 또는 해당 프로세서에서 수행되는 소프트웨어인 프로세스(process) 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
도 4는 클라이언트(100)에서 제어부(150)의 블록 구성도를 나타내며, 도 5는 서버(200)에서 제어부(250)의 블록 구성도를 나타낸다.
도 4를 참조하면, 클라이언트(100)의 제어부(150)는 후술할 적응형 배치 프로세싱 방법의 수행을 제어하기 위해, 큐 생성부(151) 및 배치 생성부(152)를 포함하며, 배치 크기 계산부(153)를 더 포함할 수도 있다. 또한, 도 5를 참조하면, 서버(200)의 제어부(250)는 후술할 적응형 배치 프로세싱 방법의 수행을 제어하기 위해, 자원량 측정부(251) 및 모델 분석부(252)를 포함하며, 배치 크기 계산부(253)를 더 포함할 수도 있다.
후술할 적응형 배치 프로세싱 방법에서, 서버(200)의 배치 크기 계산부(253)가 동작하거나 클라이언트(100)의 배치 크기 계산부(153)가 동작하여 배치(batch) 크기를 계산할 수 있다. 이하, 서버(200)의 배치 크기 계산부(253)가 동작하여 배치 크기를 계산하는 경우를 “제1 실시예”로 지칭하며, 클라이언트(100)의 배치 크기 계산부(153)가 동작하여 배치 크기를 계산하는 경우를 “제2 실시예”로 지칭한다. 즉, 제1 실시예에서 서버(200)는 배치 크기 계산부(253)를 더 포함할 수 있으며, 제2 실시예에서 클라이언트(100)는 배치 크기 계산부(153)를 더 포함할 수 있다.
예를 들어, 큐 생성부(151), 배치 생성부(152) 및 배치 크기 계산부(153)는 제어부(150)의 하드웨어 구성이거나, 제어부(150)에서 수행되는 소프트웨어인 프로세스일 수 있으나, 이에 한정되는 것은 아니다. 또한, 자원량 측정부(251), 모델 분석부(252) 및 배치 크기 계산부(253)는 제어부(250)의 하드웨어 구성이거나, 제어부(250)에서 수행되는 소프트웨어인 프로세스일 수 있으나, 이에 한정되는 것은 아니다.
한편, 서버(200)에 기 저장된 모델은 학습 데이터를 통해 머신 러닝 기법(machine learning)에 따라 학습된 머신 러닝 모델이다. 가령, 학습 데이터는 입력 데이터 및 출력 데이터 쌍(데이터 셋)을 포함할 수 있다. 이때, 모델은 다수의 레이어(layer)를 포함하여, 입력 데이터와 출력 데이터의 관계에 대한 함수를 가진다. 즉, 모델에 입력 데이터가 입력되는 경우, 해당 함수에 따른 출력 데이터가 출력될 수 있다.
예를 들어, 모델에 적용된 머신 러닝 기법은 Artificial neural network, Boosting, Bayesian statistics, Decision tree, Gaussian process regression, Nearest neighbor algorithm, Support vector machine, Random forests, Symbolic machine learning, Ensembles of classifiers, 또는 Deep learning 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
특히, 모델이 딥 러닝(Deep learning) 기법에 의해 학습된 딥 러닝 모델일 경우, 입력 데이터와 출력 데이터 간의 관계를 다수의 층(레이어)으로 표현하며, 이러한 다수의 표현층을 “인공신경망(neural network)”라 지칭하기도 한다. 인공신경망 내의 각 레이어는 적어도 하나 이상의 필터로 이루어지며, 각 필터는 가중치(weight)의 매트릭스(matrix)를 가진다. 즉, 해당 필터의 매트릭스에서 각 원소는 가중치의 값에 해당할 수 있다.
예를 들어, 딥 러닝 기법은 Deep Neural Network(DNN), Convolutional Neural Network(CNN), Recurrent Neural Network(RNN), Restricted Boltzmann Machine(RBM), Deep Belief Network(DBN), Deep Q-Networks 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
이하, 본 발명에 따른 적응형 배치 프로세싱 방법에 대해 보다 상세하게 설명하도록 한다.
도 6은 본 발명의 일 실시예에 따른 적응형 배치 프로세싱 방법의 순서도를 나타낸다.
즉, 도 6을 참조하면, 본 발명의 일 실시예에 따른 적응형 배치 프로세싱 방법은 가용 자원량을 측정하는 단계(S101), 배치 크기를 계산하는 단계(S102), 배치 데이터를 생성하는 단계(S103) 및 모델을 기반으로 배치 데이터에 대한 분석을 수행하는 단계(S104)를 포함한다. 다만, 이러한 S101 내지 S104는 후술할 제1 또는 제2 실시예에 따라 그 수행 주체 및 전송 주체 등이 달라질 수 있다.
<제1 실시예>
S101에서, 서버(200)의 자원량 측정부(251)는 서버(200)의 가용 자원의 양(이하, “가용 자원량”이라 지칭함)을 측정한다. 이때, 가용 자원은 서버(200)에서 프로세서 또는 메모리(140)에서 현재 사용 가능한 남는 자원을 지칭한다. 즉, 가용 자원은 프로세서의 로드(load) 크기 및 메모리(140)의 여유 크기 등을 포함할 수 있다.
가령, 프로세서는 제어부(250)에 포함된 CPU 또는 GPU 등으로서, 그 이용률이 높을수록 프로세서의 로드 크기는 증가한다. 또한, 메모리(140)의 사용량이 높을수록 메모리(140)의 여유 크기는 감소한다. 이에 따라, 프로세서의 로드가 낮을수록 메모리(140)의 여유 클수록 가용 자원량은 증가한다.
다음으로, S102에서, 서버(200)의 배치 크기 계산부(253)는 S101에서 측정된 가용 자원량을 이용하여 배치(batch) 크기를 계산한다. 물론, 배치 크기 계산부(253)는 서버(200)의 가용 자원량 외에 클라이언트(100)에서 서버(200)로 기 전송된 입력 데이터(또는 배치 데이터)의 평균 크기도 함께 이용하여 배치 크기를 계산할 수도 있다.
가령, 배치 크기 계산부(253)는 S101에서 측정된 가용 자원량이 클수록 더 큰 배치 크기에 대한 정보를 도출할 수 있다. 또한, 배치 크기 계산부(253)는 기 전송된 입력 데이터(또는 배치 데이터)의 평균 크기가 클수록 더 큰 배치 크기에 대한 정보를 도출할 수 있다.
물론, S101에서 측정된 가용 자원량(I1)과 기 전송된 입력 데이터(또는 배치 데이터)의 평균 크기(I2)에 대해, 서로 다른 가중치를 두어 배치 크기를 계산할 수도 있다. 예를 들어, 배치 크기(B)는 다음의 식을 통해 도출될 수 있으나, 이에 한정되는 것은 아니다.
B = αA = α(w1I1 + w2I2)
이때, α는 A의 계수이며, A는 w1I1 + w2I2 이다. 또한, w1은 l1의 가중치(0<w1≤1)이며, w2는 l2의 가중치(0<w2≤1)이다.
이후, 서버(200)의 제어부(250)는 계산된 배치 크기에 대한 정보를 통신부(220)를 통해 클라이언트(100)로 전송한다. 이에 따라, 클라이언트(100)의 통신부(120)는 서버(200)로부터 해당 배치 크기에 대한 정보를 수신한다.
다음으로, S103에서, 클라이언트(100)의 큐 생성부(151)는 다수의 입력 데이터에 대한 큐(queue)를 생성한다. 이후, 클라이언트(100)의 배치 생성부(152)는 배치 데이터를 생성한다. 이때, 배치 생성부(152)는 서버(200)로부터 수신한 배치 크기에 대한 정보를 반영한 크기의 배치 데이터를 생성한다. 가령, 배치 생성부(152)는 다수의 입력 데이터를 포함하되, 배치 크기에 해당하는 크기의 배치 데이터를 생성하거나, 해당 크기보다 작은 크기의 배치 데이터를 생성할 수 있다.
특히, 배치 생성부(152)는 QoS(Quality of Service)를 반영한 크기의 배치 데이터를 생성할 수 있다. 가령, 배치 생성부(152)는 배치 크기에 해당하는 다수의 입력 데이터의 수집 시간이 분석에 요구되는 QoS(Quality of Service)의 지연 시간을 초과하는 경우, 그 배치 크기보다 적은 크기의 배치 데이터를 생성할 수 있다.
이후, 클라이언트(100)의 통신부(120)는 생성된 배치 데이터를 서버(20)로 전송한다. 이에 따라, 서버(200)의 통신부(220)는 클라이언트(100)로부터 해당 배치 데이터를 수신한다.
다음으로, S104에서, 서버(200)의 모델 분석부(252)는 수신된 배치 데이터에 대해 메모리(240)에 기 저장된 모델을 기반으로 한 분석을 수행한다. 즉, 모델 분석부(252)는 모델에 수신된 배치 데이터(다수의 입력 데이터)를 입력하여 그에 대한 결과 데이터(즉, 분석 결과)를 도출할 수 있다.
이후, 서버(200)의 제어부(250)는 도출된 분석 결과에 대한 정보를 통신부(220)를 통해 클라이언트(100)로 전송한다. 이에 따라, 클라이언트(100)의 통신부(120)는 서버(200)로부터 해당 분석 결과에 대한 정보를 수신한다.
<제2 실시예>
S101에서, 서버(200)의 자원량 측정부(251)는 서버(200)의 가용 자원량을 측정한다. 다만, 이러한 가용 자원량에 대한 상세한 내용은 제1 실시예에서 상술한 바와 같으므로, 이하 생략하도록 한다.
서버(200)의 제어부(250)는 측정된 가용 자원량에 대한 정보를 통신부(220)를 통해 클라이언트(100)로 전송한다. 이에 따라, 클라이언트(100)의 통신부(120)는 서버(200)로부터 해당 가용 자원량에 대한 정보를 수신한다.
다음으로, S102에서, 클라이언트(100)의 배치 크기 계산부(153)는 S101에서 측정되어 수신된 가용 자원량을 이용하여 배치(batch) 크기를 계산한다. 물론, 배치 크기 계산부(153)는 서버(200)의 가용 자원량 외에 클라이언트(100)에서 서버(200)로 기 전송된 입력 데이터(또는 배치 데이터)의 평균 크기도 함께 이용하여 배치 크기를 계산할 수도 있다. 다만, 이러한 배치 크기 계산부(153)의 동작 등에 관한 상세한 내용은 제1 실시예의 배치 크기 계산부(253)에 대해 상술한 바와 같으므로, 이하 생략하도록 한다.
다음으로, S103에서, 클라이언트(100)의 큐 생성부(151)는 다수의 입력 데이터에 대한 큐(queue)를 생성하며, 클라이언트(100)의 배치 생성부(152)는 배치 데이터를 생성한다. 다만, 이러한 S103에 대한 상세한 내용은 클라이언트(100)가 자체적으로 계산한 배치 크기를 이용하는 것 외에는 제1 실시예에서 상술한 바와 같으므로, 이하 생략하도록 한다.
이후, 클라이언트(100)의 통신부(120)는 생성된 배치 데이터를 서버(20)로 전송한다. 이에 따라, 서버(200)의 통신부(220)는 클라이언트(100)로부터 해당 배치 데이터를 수신한다.
다음으로, S104는 제1 실시예에서 상술한 바와 같으므로, 이하 생략하도록 한다.
상술한 바와 같이 구성되는 본 발명은 가용 자원의 측정을 통해 계산된 배치 크기에 맞는 배치 데이터의 분석이 가능하여, 보다 성능이 향상된 적응형 배치 프로세싱(adaptive batch processing) 기반의 분석 서비스를 제공할 수 있는 이점이 있다. 즉, 본 발명은 임의의 고정되어 있는 배치 크기가 아닌, 가용 자원에 최적화된 배치 크기를 측정할 수 있어, 자원 최적화와 머신 러닝 기반의 분석 서비스 성능의 향상이 가능한 이점이 있다.
본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되지 않으며, 후술되는 청구범위 및 이 청구범위와 균등한 것들에 의해 정해져야 한다.
10, 100: 클라이언트 20, 200: 서버
110, 210: 입력부 120, 220: 통신부
130, 230: 디스플레이 140, 240: 메모리
150, 250: 제어부 151: 큐 생성부
152: 배치 생성부 153, 252: 배치 크기 계산부
251: 자원량 측정부 253: 모델 분석부
110, 210: 입력부 120, 220: 통신부
130, 230: 디스플레이 140, 240: 메모리
150, 250: 제어부 151: 큐 생성부
152: 배치 생성부 153, 252: 배치 크기 계산부
251: 자원량 측정부 253: 모델 분석부
Claims (9)
- 머신 러닝(machine leaning) 기법으로 학습된 모델을 저장한 서버와 상기 서버에 접속하여 입력 데이터들의 묶음인 배치 데이터를 전송하면서 해당 배치 데이터에 대한 상기 모델 기반의 분석 결과를 요청하는 클라이언트를 각각 포함하는 시스템에 의해 서버-클라이언트 기반의 배치 분석 서비스를 제공하도록 수행되며, 상기 서버의 가용 자원 상태를 고려한 적응형 배치 분석 서비스를 제공하도록 수행되는 방법으로서,
상기 서버에서 상기 서버의 가용 자원의 양을 측정하는 단계;
상기 서버에서 측정된 상기 가용 자원의 양을 이용하여 배치(batch) 크기를 계산하고, 계산된 배치 크기에 대한 정보를 상기 클라이언트로 전송하는 단계;
상기 클라이언트에서 다수 입력 데이터의 큐(queue)를 생성하여 상기 전송된 정보를 반영한 크기의 배치 데이터를 생성하고, 생성된 상기 배치 데이터를 상기 서버로 전송하는 단계; 및
상기 서버에서 수신된 상기 배치 데이터에 대해 상기 모델을 기반으로 한 분석을 수행하는 단계;를 포함하며,
상기 배치 크기의 계산 시에 상기 서버의 가용 자원량(I1)과, 상기 클라이언트에서 상기 서버로 기 전송된 입력 데이터의 평균 크기(I2)를 각각 이용하여 상기 배치 크기를 계산하되, 하기 식에 따라 상기 I1과 상기 I2에 대해 서로 다른 가중치를 두어 상기 배치 크기를 계산하고,
(식) B = α(w1I1 + w2I2)
(단, B는 상기 배치 크기, α는 계수, w1은 상기 l1의 가중치로서 0<w≤1, w2는 상기 l2의 가중치로서 0<w2≤1)
상기 배치 데이터의 생성 시에 상기 배치 크기에 해당하는 다수 입력 데이터의 수집 시간이 분석에 요구되는 QoS(Quality of Service)의 지연 시간을 초과하는 경우, 상기 배치 크기보다 적은 크기의 배치 데이터를 생성하는 방법.
- 머신 러닝(machine leaning) 기법으로 학습된 모델을 저장한 서버와 상기 서버에 접속하여 입력 데이터들의 묶음인 배치 데이터를 전송하면서 해당 배치 데이터에 대한 상기 모델 기반의 분석 결과를 요청하는 클라이언트를 각각 포함하는 시스템에 의해 서버-클라이언트 기반의 배치 분석 서비스를 제공하도록 수행되며, 상기 서버의 가용 자원 상태를 고려한 적응형 배치 분석 서비스를 제공하도록 수행되는 방법으로서,
상기 서버에서 상기 서버의 가용 자원의 양을 측정하여 상기 클라이언트로 전송하는 단계;
상기 클라이언트에서 전송된 상기 가용 자원의 양을 이용하여 배치(batch) 크기를 계산하는 단계;
상기 클라이언트에서 다수 입력 데이터의 큐(queue)를 생성하여 상기 배치 크기를 반영한 크기의 배치 데이터를 생성하고, 생성된 상기 배치 데이터를 상기 서버로 전송하는 단계; 및
상기 서버에서 수신된 상기 배치 데이터에 대해 상기 모델을 기반으로 한 분석을 수행하는 단계;를 포함하며,
상기 배치 크기의 계산 시에 상기 서버의 가용 자원량(I1)과, 상기 클라이언트에서 상기 서버로 기 전송된 입력 데이터의 평균 크기(I2)를 각각 이용하여 상기 배치 크기를 계산하되, 하기 식에 따라 상기 I1과 상기 I2에 대해 서로 다른 가중치를 두어 상기 배치 크기를 계산하고,
(식) B = α(w1I1 + w2I2)
(단, B는 상기 배치 크기, α는 계수, w1은 상기 l1의 가중치로서 0<w≤1, w2는 상기 l2의 가중치로서 0<w2≤1)
상기 배치 데이터의 생성 시에 상기 배치 크기에 해당하는 다수 입력 데이터의 수집 시간이 분석에 요구되는 QoS(Quality of Service)의 지연 시간을 초과하는 경우, 상기 배치 크기보다 적은 크기의 배치 데이터를 생성하는 방법.
- 제1항 또는 제2항에 있어서,
상기 가용 자원량은 상기 서버의 프로세서 로드 크기 및 메모리 여유 크기를 포함하는 방법.
- 삭제
- 삭제
- 머신 러닝(machine leaning) 기법으로 학습된 모델을 저장한 서버와, 상기 서버에 접속하여 입력 데이터들의 묶음인 배치 데이터를 전송하면서 해당 배치 데이터에 대한 상기 모델 기반의 분석 결과를 요청하는 클라이언트를 포함하며, 서버-클라이언트 기반의 배치 분석 서비스를 제공하되 상기 서버의 가용 자원 상태를 고려한 적응형 배치 분석 서비스를 제공하는 시스템으로서,
상기 서버의 가용 자원량을 측정하는 자원량 측정부;
상기 가용 자원량을 이용하여 배치(batch) 크기를 계산하는 배치 크기 계산부;
상기 클라이언트에서 다수 입력 데이터의 큐(queue)를 생성하도록 상기 클라이언트에 포함된 큐 생성부;
상기 생성된 큐에서 상기 배치 크기를 반영한 배치 데이터를 생성하도록 상기 클라이언트에 포함된 배치 생성부; 및
상기 모델을 기반으로 상기 클라이언트에서 수신된 상기 배치 데이터에 대한 분석을 수행하도록 상기 서버에 포함된 모델 분석부;를 포함하며,
상기 배치 크기 계산부는 상기 서버의 가용 자원량(I1)과, 상기 클라이언트에서 상기 서버로 기 전송된 입력 데이터의 평균 크기(I2)를 각각 이용하여 상기 배치 크기를 계산하되, 하기 식에 따라 상기 I1과 상기 I2에 대해 서로 다른 가중치를 두어 상기 배치 크기를 계산하고,
(식) B = α(w1I1 + w2I2)
(단, B는 상기 배치 크기, α는 계수, w1은 상기 l1의 가중치로서 0<w≤1, w2는 상기 l2의 가중치로서 0<w2≤1)
상기 큐 생성부는 상기 배치 크기에 해당하는 다수 입력 데이터의 수집 시간이 분석에 요구되는 QoS(Quality of Service)의 지연 시간을 초과하는 경우, 상기 배치 크기보다 적은 크기의 배치 데이터를 생성하는 시스템.
- 제6항에 있어서,
상기 가용 자원은 상기 서버의 프로세서 로드 크기 및 메모리 여유 크기를 포함하는 시스템.
- 삭제
- 삭제
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210117458A KR102590993B1 (ko) | 2021-09-03 | 2021-09-03 | 적응형 배치 프로세싱 방법 및 시스템 |
PCT/KR2021/013486 WO2023033229A1 (ko) | 2021-09-03 | 2021-10-01 | 적응형 배치 프로세싱 방법 및 시스템 |
US18/443,680 US20240187312A1 (en) | 2021-09-03 | 2024-02-16 | Adaptive batch processing method and system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210117458A KR102590993B1 (ko) | 2021-09-03 | 2021-09-03 | 적응형 배치 프로세싱 방법 및 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20230034565A KR20230034565A (ko) | 2023-03-10 |
KR102590993B1 true KR102590993B1 (ko) | 2023-10-19 |
Family
ID=85412564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210117458A KR102590993B1 (ko) | 2021-09-03 | 2021-09-03 | 적응형 배치 프로세싱 방법 및 시스템 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240187312A1 (ko) |
KR (1) | KR102590993B1 (ko) |
WO (1) | WO2023033229A1 (ko) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10083395B2 (en) * | 2015-05-21 | 2018-09-25 | Google Llc | Batch processing in a neural network processor |
JP2019164793A (ja) * | 2018-03-19 | 2019-09-26 | エスアールアイ インターナショナル | ディープニューラルネットワークの動的適応 |
US20200125926A1 (en) * | 2018-10-23 | 2020-04-23 | International Business Machines Corporation | Dynamic Batch Sizing for Inferencing of Deep Neural Networks in Resource-Constrained Environments |
JP7379821B2 (ja) * | 2019-01-09 | 2023-11-15 | 日本電信電話株式会社 | 推論処理装置および推論処理方法 |
US11263052B2 (en) * | 2019-07-29 | 2022-03-01 | International Business Machines Corporation | Determining optimal compute resources for distributed batch based optimization applications |
-
2021
- 2021-09-03 KR KR1020210117458A patent/KR102590993B1/ko active IP Right Grant
- 2021-10-01 WO PCT/KR2021/013486 patent/WO2023033229A1/ko active Application Filing
-
2024
- 2024-02-16 US US18/443,680 patent/US20240187312A1/en active Pending
Non-Patent Citations (1)
Title |
---|
일본공개특허 제2020-112901호(2020.07.27.) 1부.* |
Also Published As
Publication number | Publication date |
---|---|
KR20230034565A (ko) | 2023-03-10 |
US20240187312A1 (en) | 2024-06-06 |
WO2023033229A1 (ko) | 2023-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220391771A1 (en) | Method, apparatus, and computer device and storage medium for distributed training of machine learning model | |
US20230334368A1 (en) | Machine learning platform | |
US20210201147A1 (en) | Model training method, machine translation method, computer device, and storage medium | |
US20200293838A1 (en) | Scheduling computation graphs using neural networks | |
KR20210090123A (ko) | 분산형 모델 트레이닝 방법, 관련 장치 및 컴퓨터 프로그램 | |
US11681914B2 (en) | Determining multivariate time series data dependencies | |
US20220147695A1 (en) | Model training method and apparatus, font library establishment method and apparatus, and storage medium | |
JP2018190396A (ja) | ネットワークレーティング予測エンジン | |
JP2021505993A (ja) | 深層学習アプリケーションのための堅牢な勾配重み圧縮方式 | |
CN109923558A (zh) | 混合专家神经网络 | |
US20210117718A1 (en) | Entropy Based Synthetic Data Generation For Augmenting Classification System Training Data | |
EP3688673A1 (en) | Neural architecture search | |
WO2022088082A1 (zh) | 基于缺陷检测的任务处理方法、装置及设备及存储介质 | |
US11741371B2 (en) | Automatically generating diverse text | |
US20220414661A1 (en) | Privacy-preserving collaborative machine learning training using distributed executable file packages in an untrusted environment | |
EP3607436B1 (en) | Disaggregating latent causes for computer system optimization | |
US20170295077A1 (en) | Optimal service provider selection | |
JP2023508076A (ja) | アプリケーション・ベースのプロファイリングを用いた機械学習ワークロードの弾力的な実行 | |
US20220405649A1 (en) | Quantum machine learning model feature space generation | |
KR102590993B1 (ko) | 적응형 배치 프로세싱 방법 및 시스템 | |
US20220180254A1 (en) | Learning robust predictors using game theory | |
US11574273B2 (en) | Systems and methods for automated evaluation of digital services | |
US20220147864A1 (en) | Game-theoretic invariant rationalization of machine-learning results | |
JP2022547998A (ja) | 対話システムのセマンティックパーサを訓練するための敵対的生成ネットワークの使用 | |
US20240104368A1 (en) | Reduction of data transmission and data storage using neural network technology |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |