KR20200093093A - 분산 추론 시스템 및 이의 동작 방법 - Google Patents

분산 추론 시스템 및 이의 동작 방법 Download PDF

Info

Publication number
KR20200093093A
KR20200093093A KR1020190002344A KR20190002344A KR20200093093A KR 20200093093 A KR20200093093 A KR 20200093093A KR 1020190002344 A KR1020190002344 A KR 1020190002344A KR 20190002344 A KR20190002344 A KR 20190002344A KR 20200093093 A KR20200093093 A KR 20200093093A
Authority
KR
South Korea
Prior art keywords
machine learning
learning model
end device
inference
reasoning
Prior art date
Application number
KR1020190002344A
Other languages
English (en)
Inventor
이장수
김병덕
김영민
김우석
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020190002344A priority Critical patent/KR20200093093A/ko
Priority to US16/530,549 priority patent/US11838835B2/en
Publication of KR20200093093A publication Critical patent/KR20200093093A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/30Services specially adapted for particular environments, situations or purposes
    • H04W4/38Services specially adapted for particular environments, situations or purposes for collecting sensor information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • G06N5/043Distributed expert systems; Blackboards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • G06V10/95Hardware or software architectures specially adapted for image or video understanding structured as a network, e.g. client-server architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/70Services for machine-to-machine communication [M2M] or machine type communication [MTC]

Abstract

본 발명은 분산 추론 시스템 및 이의 동작 방법에 관한 것이다. 본 발명의 실시예에 따른 분산 추론 시스템은 엔드 디바이스 및 서버를 포함한다. 엔드 디바이스는 상태 정보를 생성하고, 제1 기계 학습 모델에 기초하여 타겟 데이터에 대응되는 추론 결과를 생성한다. 서버는 추론 결과를 포함하는 훈련 데이터 셋 및 상태 정보에 기초하여 제2 기계 학습 모델을 생성하고, 추론 결과의 정확도를 계산한다. 서버는 추론 결과의 정확도에 기초하여 제2 기계 학습 모델을 엔드 디바이스로 전달한다. 본 발명에 따르면, 엔드 디바이스들 각각의 상태 정보를 고려하여 기계 학습 모델을 생성하고, 분산 추론 요청을 스케줄링 함으로써, 분산 추론 시스템의 성능, 안정성, 및 속도가 향상될 수 있다.

Description

분산 추론 시스템 및 이의 동작 방법{DISTRIBUTED INFERENCE SYSTEM AND OPERATING METHOD OF THE SAME}
본 발명은 인공 지능 시스템에 관한 것으로, 좀 더 상세하게는 분산 추론 시스템 및 이의 동작 방법에 관한 것이다.
최근에는 다양한 분야에서 인공 지능(Artificial Intelligence, AI) 기술이 활용되고 있다. 특히, 사물 인터넷(Internet of Things, IoT) 시스템과 같이, 다양한 디바이스들의 정보를 처리하는 네트워크 시스템에서 인공 지능 기술이 응용될 수 있다. 예를 들어, 사물 인터넷 시스템은 가전제품, 모바일 장치, 또는 컴퓨터 장치와 같은 다양한 디바이스들을 포함할 수 있고, 디바이스들 각각으로부터 센싱 또는 생성된 데이터를 분석하여, 사용자에 서비스를 제공할 수 있다.
인공 지능 시스템은 센싱 또는 생성된 데이터로부터 축적된 지식에 기초하여, 새로운 정보를 추론할 수 있다. 추론 결과에 기초하여, 디바이스들은 현재의 목적에 부합한 행동을 수행하고, 사용자에 서비스를 제공할 수 있다. 다수의 클라이언트들 및 서버를 포함하는 분산 추론 시스템은 구성요소들 각각에 대응되는 분산 추론을 수행할 수 있다. 이러한 분산 추론 시스템의 성능을 향상시키기 위한 요구가 제기되고 있다.
본 발명은 디바이스들의 상태를 고려하여 기계 학습 모델을 생성함으로써, 추론 능력을 개선하고, 시스템의 안정성 및 속도를 향상시키는 분산 추론 시스템 및 이의 동작 방법을 제공할 수 있다.
본 발명의 실시예에 따른 분산 추론 시스템은 엔드 디바이스 및 서버를 포함한다. 엔드 디바이스는 상태 정보를 생성하고, 제1 기계 학습 모델에 기초하여 타겟 데이터에 대응되는 추론 결과를 생성한다. 서버는 추론 결과를 포함하는 훈련 데이터 셋 및 상태 정보에 기초하여 제2 기계 학습 모델을 생성하고, 추론 결과의 정확도를 계산하고, 정확도에 기초하여 제2 기계 학습 모델을 엔드 디바이스로 전달한다.
본 발명의 실시예에 따른 분산 추론 시스템의 동작 방법은, 엔드 디바이스의 상태 정보를 서버로 전달하는 단계; 엔드 디바이스가 제1 기계 학습 모델에 기초하여 타겟 데이터의 추론을 수행하는 단계; 서버가 타겟 데이터의 추론 결과에 기초하여 제2 기계 학습 모델의 생성을 결정하는 단계; 서버가 상태 정보에 기초하여 제2 기계 학습 모델을 생성하는 단계; 및 엔드 디바이스가 제1 기계 학습 모델을 제2 기계 학습 모델로 갱신하는 단계를 포함한다.
본 발명의 실시 예에 따르면, 엔드 디바이스들 각각의 상태 정보를 고려하여 기계 학습 모델을 생성하고, 분산 추론 요청을 스케줄링함으로써, 분산 추론 시스템의 성능, 안정성, 및 속도가 향상될 수 있다.
도 1은 본 발명의 실시예에 따른 분산 추론 시스템의 예시적인 블록도이다.
도 2는 도 1의 엔드 디바이스 및 서버를 구체적으로 도시한 블록도이다.
도 3은 도 2의 분산 추론 시스템의 동작 방법을 설명하기 위한 순서도이다.
도 4는 도 3의 S110 단계에 대응되는 동작을 설명하기 위한 분산 추론 시스템의 블록도이다.
도 5는 도 4의 분산 추론 시스템의 동작 방법을 설명하기 위한 순서도이다.
도 6은 도 3의 S130 단계에 대응되는 동작을 설명하기 위한 분산 추론 시스템의 블록도이다.
도 7은 도 6의 분산 추론 시스템의 동작 방법을 설명하기 위한 순서도이다.
도 8은 도 3의 S140 단계에 대응되는 동작을 설명하기 위한 분산 추론 시스템의 블록도이다.
도 9 및 도 10는 도 8의 분산 추론 시스템의 동작 방법을 설명하기 위한 순서도이다.
도 11은 도 3의 S150 단계에 대응되는 동작을 설명하기 위한 분산 추론 시스템의 블록도이다.
도 12는 도 11의 분산 추론 시스템의 동작 방법을 설명하기 위한 순서도이다.
도 13은 도 1 또는 도 2의 엔드 디바이스의 예시적인 블록도이다.
도 14는 도 1 또는 도 2의 서버의 예시적인 블록도이다.
아래에서는, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재된다.
도 1은 본 발명의 실시예에 따른 분산 추론 시스템의 예시적인 블록도이다. 분산 추론 시스템(100)은 디바이스들 사이의 유선 또는 무선 통신을 통하여 데이터를 처리하는 다양한 종류의 시스템을 포함할 수 있다. 예를 들어, 분산 추론 시스템(100)은 IoT(Internet of Things) 시스템, USN(Ubiquitous Sensor Network) 시스템, MTC(Machine Type Communications) 시스템, MOC(Machine Oriented Communication) 시스템, M2M(Machine to Machine) 통신 시스템 또는 D2D(Device to Device) 통신 시스템 시스템을 포함할 수 있다. 도 1을 참조하면, 분산 추론 시스템(100)은 클라이언트(110), 게이트웨이 장치(120), 및 서버(130)를 포함할 수 있다.
클라이언트(110)는 복수의 엔드 디바이스들(111~11n)을 포함할 수 있다. 예를 들어, 복수의 엔드 디바이스들(111~11n) 각각은 IoT 장치일 수 있다. 복수의 엔드 디바이스들(111~11n) 각각은 센서를 포함할 수 있고, 센서를 통하여 데이터를 센싱하고 수집할 수 있다. 수집된 데이터는 유선 또는 무선 통신 방식으로 외부로 송신될 수 있다. 또한, 복수의 엔드 디바이스들(111~11n)은 외부로부터 유선 또는 무선 통신 방식으로 엔드 디바이스의 동작을 위한 정보를 수신할 수 있다.
복수의 엔드 디바이스들(111~11n) 각각은 저장된 기계 학습 모델에 기초하여 추론을 수행할 수 있다. 일례로, 제1 엔드 디바이스(111)는 카메라를 통하여 얼굴을 인식하기 위한 이미지를 센싱하고, 기계 학습 모델을 이용하여 등록된 사람인지 추론할 수 있다. 이러한 기계 학습 모델은 서버(130)로부터 제공될 수 있다. 제1 엔드 디바이스(111)는 추론에 실패한 경우, 서버(130)에 추론을 요청할 수 있고, 서버(130)로부터 추론 결과를 수신하거나, 새로운 기계 학습 모델을 수신할 수 있다.
복수의 엔드 디바이스들(111~11n) 각각은 상태(status) 정보를 수집할 수 있다. 상태 정보는 엔드 디바이스의 종류 또는 용도에 관한 정보, 리소스 또는 전력과 같은 엔드 디바이스 내부의 상태에 관한 정보, 위치 또는 온도와 같은 엔드 디바이스 주위의 상태에 관한 정보, 또는 수집된 센싱 데이터(타겟 데이터)의 종류에 관한 정보 등을 포함할 수 있다. 상태 정보는 복수의 엔드 디바이스들(111~11n) 각각의 특성 및 현재 상황 등을 나타내는 지표일 수 있다. 복수의 엔드 디바이스들(111~11n) 각각은 수집된 상태 정보를 서버(130)로 송신할 수 있다.
게이트웨이 장치(120)는 복수의 엔드 디바이스들(111~11n) 각각으로부터 수신된 센싱 데이터 또는 상태 정보 등을 서버(130)로 전달할 수 있다. 게이트웨이 장치(120)는 서버(130)로부터 수신된 추론 결과, 기계 학습 모델, 또는 엔드 디바이스의 동작을 위한 정보 등을 복수의 엔드 디바이스들(111~11n)에 전달할 수 있다. 게이트웨이 장치(120)는 유선 또는 무선 통신을 통하여 서버(130)와 통신할 수 있다. 도 1에 도시된 바와 달리, 게이트웨이 장치(120)는 복수의 엔드 디바이스들(111~11n) 중 하나에 포함될 수 있다.
서버(130)는 복수의 엔드 디바이스들(111~11n) 각각으로부터 수신된 센싱 데이터(타겟 데이터) 또는 상태 정보 등을 분석할 수 있다. 또한, 서버(130)는 복수의 엔드 디바이스들(111~11n) 각각의 추론 요청에 응답하여 타겟 데이터에 대한 추론을 수행할 수 있다. 서버(130)는 저장된 기계 학습 모델에 기초하여 추론을 수행할 수 있다. 이러한 기계 학습 모델은 상태 정보에 기초하여 엔드 디바이스의 상태에 최적화되도록 미리 생성될 수 있다. 미리 생성된 기계 학습 모델은 엔드 디바이스의 상태 변화를 능동적으로 반영하므로, 엔드 디바이스에 적응적일 수 있다. 생성된 기계 학습 모델은 복수의 엔드 디바이스들(111~11n) 각각으로 송신될 수 있다.
서버(130)는 상태 정보에 기초하여 복수의 엔드 디바이스들(111~11n)의 우선순위를 설정할 수 있다. 서버(130)는 상태 정보를 분석하여, 긴급한 데이터 처리가 요구되는 엔드 디바이스의 우선순위를 높게 설정할 수 있다. 서버(130)는 우선순위에 따라, 추론 요청을 스케줄링할 수 있다. 따라서, 복수의 엔드 디바이스들(111~11n) 각각의 요구 사항에 맞는 데이터 처리가 가능하며, 분산 추론 시스템(100)의 요구 사항에 맞는 성능이 확보될 수 있다. 구체적인 내용은 후술된다.
도 2는 도 1의 엔드 디바이스 및 서버를 구체적으로 도시한 블록도이다. 도 2를 참조하면, 분산 추론 시스템(200)은 엔드 디바이스(210) 및 서버(230)를 포함할 수 있다. 도 2의 엔드 디바이스(210)는 도 1의 복수의 엔드 디바이스들(111~11n) 중 하나에 대응된다. 도 2의 서버(230)는 도 1의 서버(130)에 대응된다. 도 2에 도시된 블록들은 하드웨어로 구현되거나, 펌웨어, 소프트웨어, 또는 이의 조합으로 구현될 수 있다. 일례로, 소프트웨어 (또는 펌웨어)는 엔드 디바이스(210) 또는 서버(230)에 포함되는 메모리(미도시)에 로딩되어, 프로세서(미도시)에 의하여 실행될 수 있다.
엔드 디바이스(210)는 에이전트(211), 추론 엔진(212) (이하, 제1 추론 엔진), 수신기(213), 및 기계 학습 모델 관리기(214)를 포함할 수 있다. 엔드 디바이스(210)에 포함된 구성들의 구체적인 구현례는 도 13에서 예시적으로 후술된다.
에이전트(211)는 엔드 디바이스(210)의 목적에 맞는 작업을 수행하도록 엔드 디바이스(210)의 동작을 제어할 수 있다. 예를 들어, 엔드 디바이스(210)가 스마트 자동차(smart car)에 포함되는 경우, 에이전트(211)는 스마트 자동차의 위치(지역), 속도, 및 주위의 상황을 고려하여 주행을 제어할 수 있다. 이를 위하여, 에이전트(211)는 엔드 디바이스(210)의 상태 정보를 수집할 수 있다. 상태 정보는 서버(230)로 전달될 수 있다.
제1 추론 엔진(212)은 엔드 디바이스(210)의 목적에 맞는 작업을 수행하기 위하여, 타겟 데이터에 대한 추론을 수행할 수 있다. 제1 추론 엔진(212)은 엔드 디바이스(210)에 저장된 기계 학습 모델에 기초하여, 타겟 데이터의 추론 결과를 생성할 수 있다. 여기에서, 타겟 데이터는 엔드 디바이스(210)의 다음 행동을 위하여, 기계 학습 모델에 입력되는 데이터일 수 있다. 타겟 데이터는 엔드 디바이스(210)에 포함된 센서(미도시)로부터 생성된 센싱 데이터를 포함할 수 있다. 예를 들어, 엔드 디바이스(210)가 보안 시스템에 포함되고, 기계 학습 모델이 미리 등록된 사람들의 얼굴 인식을 위한 모델일 수 있다. 이 경우, 타겟 데이터는 엔드 디바이스(210)의 카메라로부터 생성된 이미지 데이터를 포함할 수 있다. 에이전트(211)는 카메라의 동작을 제어할 수 있고, 카메라의 동작에 따라 생성된 이미지 데이터는 제1 추론 엔진(212)에 입력될 수 있다.
제1 추론 엔진(212)은 추론 결과에 기초하여, 서버(230)로 추론 요청을 송신할 수 있다. 제1 추론 엔진(212)이 기계 학습 모델을 이용한 추론에 실패한 경우, 추론 요청이 추론 결과 및 타겟 데이터와 함께 서버(230)로 송신될 수 있다. 서버(230)는 추론 요청에 응답하여, 타겟 데이터에 대한 추론을 수행하거나, 새로운 기계 학습 모델을 엔드 디바이스(210)로 송신할 수 있다. 일례로, 상술된 보안 시스템에서 제1 추론 엔진(212)이 등록된 사람이 아닌 것으로 인식한 경우, 추론이 실패한 것으로 판단될 수 있고, 추론 요청이 서버(230)로 송신될 수 있다.
제1 추론 엔진(212)이 기계 학습 모델을 이용한 추론에 성공한 경우, 추후의 기계 학습 모델을 갱신하는데 활용되도록, 히트 데이터(hit data)가 추론 결과 및 타겟 데이터와 함께 서버(230)로 송신될 수 있다. 히트 데이터는 추론의 성공을 나타내는 정보일 수 있다. 일례로, 상술된 보안 시스템에서 제1 추론 엔진(212)이 등록된 사람 중 하나로 인식한 경우, 추론이 성공한 것으로 판단될 수 있다. 제1 추론 엔진(212)은 타겟 데이터에 대응되는 이미지 데이터, 인식된 사람에 대응되는 추론 결과, 및 히트 데이터를 서버(230)로 송신할 수 있다. 송신된 데이터는 서버(230)에서 향상된 성능을 갖는 기계 학습 모델을 생성하기 위한 훈련 데이터로 활용될 수 있다.
수신기(213)는 엔드 디바이스(210)에 저장된 기계 학습 모델의 추론 정확도가 기준 범위(기준 정확도)를 만족시키지 못하는 경우, 서버(230)로부터 새로운 기계 학습 모델을 수신할 수 있다. 새로운 기계 학습 모델은 기계 학습 모델 관리기(214)에 전달될 수 있다. 도시된 바와 달리, 수신기(213)는 기계 학습 모델 관리기(214)와 통합될 수 있다.
기계 학습 모델 관리기(214)는 새로운 기계 학습 모델을 갱신할 수 있다. 기계 학습 모델 관리기(214)는 엔드 디바이스(210)에 저장된 기존의 기계 학습 모델을 삭제하고, 새로운 기계 학습 모델을 업데이트할 수 있다. 기계 학습 모델을 저장하기 위한 메모리(미도시)의 잔여 공간에 기초하여, 기계 학습 모델 관리기(214)는 수신기(213)에 의한 새로운 기계 학습 모델의 수신 시점을 결정할 수 있다. 일례로, 기계 학습 모델의 사이즈가 잔여 공간보다 작은 경우, 새로운 기계 학습 모델이 수신된 후 기존의 기계 학습 모델이 삭제될 수 있다. 반면, 기계 학습 모델의 사이즈가 잔여 공간보다 큰 경우, 기존의 기계 학습 모델이 삭제된 후 새로운 기계 학습 모델이 수신될 수 있다. 이 경우, 실시간 추론을 위하여, 제1 추론 엔진(212)에서 예정된 추론을 서버(230)로 넘길(offload) 수 있다.
서버(230)는 에이전트 관리기(231), 디바이스 관리기(232), 훈련 데이터베이스(233), 추론 엔진(234) (이하, 제2 추론 엔진), 훈련 모듈(235), 캐싱 모듈(236), 및 송신기(237)를 포함할 수 있다. 서버(230)에 포함된 구성들의 구체적인 구현례는 도 14에서 예시적으로 후술된다.
에이전트 관리기(231)는 에이전트(211)로부터 상태 정보를 수신하고, 상태 정보에 기초하여 에이전트(211)를 제어 및 관리할 수 있다. 에이전트 관리기(231)는 수신된 상태 정보에 기초하여, 엔드 디바이스(210)가 등록된 디바이스인지 판단할 수 있다. 등록되지 않은 경우, 에이전트 관리기(231)는 엔드 디바이스(210)를 등록할 수 있다. 또한, 에이전트 관리기(231)는 상태 정보에 기초하여 에이전트(211)의 현재 상태에 대응되는 매뉴얼 정보를 생성할 수 있다. 매뉴얼 정보는 엔드 디바이스(210)의 행동 지침을 나타내는 정보일 수 있다. 예를 들어, 엔드 디바이스(210)의 배터리가 부족하거나, 슬립(sleep) 모드가 긴 경우, 에이전트 관리기(231)는 상태 정보의 수집 및 전송 주기를 증가시키도록 매뉴얼 정보를 에이전트(211)에 전달할 수 있다.
디바이스 관리기(232)는 엔드 디바이스(210) 및 이의 상태를 관리할 수 있다. 디바이스 관리기(232)는 에이전트 관리기(231)로부터 상태 정보를 수신할 수 있다. 디바이스 관리기(232)는 상태 정보에 기초하여 엔드 디바이스(210)의 등급(grade)을 결정할 수 있다. 여기에서, 등급은 엔드 디바이스(210)에 요구되는 엔드 디바이스의 상태를 구분하는 지표일 수 있다. 예를 들어, 디바이스 관리기(232)는 상태 정보의 분석 결과, 사용자의 생명과 직결되는 등 추론 요청이 매우 위급한 경우, 엔드 디바이스(210)에 가장 높은 등급을 부여할 수 있다. 예를 들어, 디바이스 관리기(232)는 상태 정보의 분석 결과, 이용 빈도가 낮고 유휴 시간(idle time)에 추론을 수행하여도 무방한 경우, 엔드 디바이스(210)에 가장 낮은 등급을 부여할 수 있다.
디바이스 관리기(232)로부터 생성된 등급은 에이전트 관리기(231)로 전달될 수 있다. 에이전트 관리기(231)는 엔드 디바이스의 등급에 기초하여, 매뉴얼 정보를 생성할 수 있다. 이를 위하여, 에이전트 관리기(231)는 등급에 대응되는 행동 지침을 미리 설정할 수 있다. 에이전트(211)는 매뉴얼 정보에 기초하여, 엔드 디바이스(210)의 동작 모드를 변경할 수 있다.
디바이스 관리기(232)는 복수의 엔드 디바이스들 각각의 등급에 기초하여, 엔드 디바이스의 우선순위를 설정할 수 있다. 서버(230)에 추론 요청이 수신되는 경우, 설정된 우선순위에 기초하여, 추론 요청이 스케줄링 될 수 있다. 따라서, 긴급한 상태의 엔드 디바이스에 대응되는 데이터가 우선적으로 처리될 수 있다. 디바이스 관리기(232)는 설정된 우선순위를 제2 추론 엔진(234)으로 전달할 수 있고, 제2 추론 엔진(234)은 우선순위에 기초하여 엔드 디바이스들의 추론 순서를 결정할 수 있다.
디바이스 관리기(232)는 상태 정보에 기초하여, 엔드 디바이스에 대응되는 기계 학습 모델을 생성하기 위한 훈련 데이터 셋의 인덱스를 생성할 수 있다. 예를 들어, 디바이스 관리기(232)는 상태 정보로부터 센싱 데이터(타겟 데이터)의 종류를 인식할 수 있고, 타겟 데이터의 종류에 대응되는 인덱스를 생성할 수 있다. 이러한 인덱스는 훈련 데이터베이스(233)에 제공될 수 있다.
훈련 데이터베이스(233)는 훈련 데이터 셋을 관리하기 위하여, 서버(230)에 구현될 수 있다. 예를 들어, 훈련 데이터베이스(233)는 스토리지(미도시)와 같은 서버(230)의 저장 매체에 구현될 수 있다. 타겟 데이터는 디바이스 관리기(232)로부터 제공된 인덱스에 대응되도록 그룹화되어, 훈련 데이터베이스(233)에 저장될 수 있다.
훈련 데이터 셋에 추론 결과의 정확도(accuracy)가 반영될 수 있다. 추론 결과의 정확도는 제1 추론 엔진(212) 또는 제2 추론 엔진(234)의 추론 결과 또는 히트 데이터에 기초하여 계산될 수 있다. 예를 들어, 훈련 데이터 셋은 추론 결과, 히트 데이터, 히트 데이터에 기초한 히트율, 또는 계산된 정확도를 포함할 수 있다. 추론 결과의 정확도는 타겟 데이터의 중요도를 판단하는 지표일 수 있다. 정확도가 반영됨으로써, 어떠한 타겟 데이터가 추론 결과의 정확도의 향상에 기여하였는지 통계적으로 나타날 수 있다. 기계 학습 모델의 생성 과정에서, 추론 결과의 정확도에 기초하여, 훈련 데이터 셋의 일부가 선택되거나 가중될 수 있다.
제2 추론 엔진(234)은 엔드 디바이스(210)의 추론 요청에 응답하여, 타겟 데이터에 대한 추론을 수행할 수 있다. 제2 추론 엔진(234)은 훈련 모듈(235)로부터 생성되고 캐싱 모듈(236)에 저장된 기계 학습 모델에 기초하여, 타겟 데이터의 추론 결과를 생성할 수 있다. 타겟 데이터는 제1 추론 엔진(212)으로부터 제공될 수 있다. 추론 결과 및 히트 데이터는 기계 학습 모델의 훈련을 위하여, 훈련 데이터베이스(233)에 제공될 수 있다.
제2 추론 엔진(234)은 제1 추론 엔진(212)의 추론 결과의 정확성을 계산할 수 있다. 일례로, 정확성은 추론 결과의 히트율, 즉 성공 빈도에 기초하여 계산될 수 있다. 일례로, 정확성은 추론 결과와 이미 알고 있는 참값을 비교함으로써 계산될 수 있다. 추론 결과의 정확성은 새로운 기계 학습 모델의 생성 또는 훈련을 위하여, 훈련 데이터베이스(233)에 제공될 수 있다.
또한, 추론 결과의 정확성은 새로운 기계 학습 모델의 생성여부를 결정하기 위하여 디바이스 관리기(232)에 제공될 수 있다. 디바이스 관리기(232)는 정확성이 기준 범위를 만족하는지 판단함으로써, 기계 학습 모델의 생성여부를 결정할 수 있다. 기준 범위는 엔드 디바이스(210)의 정상 동작을 위하여 요구되는 추론 정확도의 범위일 수 있다. 일례로, 디바이스 관리기(232)는 정확성이 기준 범위를 만족하지 않는 경우, 훈련 모듈(235)에 기계 학습 모델의 생성을 명령할 수 있다.
아울러, 디바이스 관리기(232)는 상태 정보와 함께 추론 결과의 정확성에 기초하여, 엔드 디바이스(210)의 등급 또는 우선순위를 설정할 수 있다. 예를 들어, 제1 추론 엔진(212)에 의한 추론 결과의 정확성이 기준 범위에 현저히 미치지 못하여 엔드 디바이스(210)의 정상 동작이 기대되기 어려운 경우, 데이터 처리의 긴급이 요구되는 것으로 판단할 수 있다. 이 경우, 디바이스 관리기(232)는 해당 엔드 디바이스(210)의 등급 또는 우선순위를 이전에 설정된 등급 또는 우선순위보다 더 높게 설정할 수 있다.
훈련 모듈(235)은 디바이스 관리기(232)의 명령에 응답하여, 새로운 기계 학습 모델을 생성할 수 있다. 훈련 모듈(235)은 상태 정보 및 훈련 데이터 셋에 기초하여 기계 학습 모델을 생성할 수 있다. 훈련 모듈(235)은 디바이스 관리기(232)로부터 상태 정보를 수신할 수 있고, 훈련 데이터베이스(233)로부터 훈련 데이터 셋을 수신할 수 있다. 훈련 모듈(235)은 상태 정보에 기초하여, 엔드 디바이스(210)의 현재 상태에 최적화된 기계 학습 모델을 생성할 수 있다. 훈련 모듈(235)은 훈련 데이터 셋에 기초하여 기계 학습 모델을 학습 또는 훈련시킬 수 있다.
캐싱 모듈(236)은 훈련 모듈(235)로부터 생성된 기계 학습 모델을 유지 및 관리하도록 구현될 수 있다. 예를 들어, 캐싱 모듈(236)은 캐시 메모리(미도시)와 같은 서버(230)의 저장 매체에 구현될 수 있다. 캐싱 모듈(236)은 훈련 모듈(235)로부터 새로운 기계 학습 모델을 수신할 수 있다. 새로운 기계 학습 모델이 이전에 캐싱 모듈(236)에 저장된 모델과 다른 경우, 이전의 모델은 삭제되고, 새로운 기계 학습 모델이 캐싱 모듈(236)에 저장될 수 있다.
송신기(237)는 새로운 기계 학습 모델을 캐싱 모듈(236)로부터 수신할 수 있다. 송신기(237)는 수신기(213)로 새로운 기계 학습 모델을 송신할 수 있다. 송신기(237)는 새로운 기계 학습 모델을 엔드 디바이스(210)로 송신하기 전에, 기계 학습 모델 관리기(214)가 새로운 기계 학습 모델의 수신 시점을 결정할 수 있도록, 기계 학습 모델의 사이즈 정보를 엔드 디바이스(210)로 송신할 수 있다.
도 3은 도 2의 분산 추론 시스템의 동작 방법을 설명하기 위한 순서도이다. 도 3은 도 2의 서버(230)에서 생성된 새로운 기계 학습 모델을 엔드 디바이스(210)에 업데이트하는 방법을 도시한다. 도 3의 방법은 도 2의 분산 추론 시스템(200)을 이용하여 수행될 수 있다. 설명의 편의상, 도 2의 도면 부호를 참조하여 도 3이 설명된다.
S110 단계에서, 서버(230)는 상태 정보에 기초하여 엔드 디바이스(210)를 등록할 수 있다. 서버(230)는 엔드 디바이스(210)로부터 상태 정보를 수신하고, 상태 정보에 포함된 엔드 디바이스의 종류에 관한 정보 등을 분석할 수 있다. 서버(230)는 상태 정보에 대응되는 엔드 디바이스(210)의 등록여부를 판단하고, 등록되지 않은 경우, 엔드 디바이스(210)를 등록할 수 있다. 서버(230)는 상태 정보에 기초하여 엔드 디바이스(210)의 등급 및 우선순위를 계산할 수 있다.
S120 단계에서, 엔드 디바이스(210)는 센싱 데이터(타겟 데이터)를 수집할 수 있다. 엔드 디바이스(210)에 포함된 센서를 통하여 센싱 데이터가 수집될 수 있다.
S130 단계에서, 엔드 디바이스(210)는 저장된 기계 학습 모델에 기초하여 센싱 데이터에 대한 추론을 수행할 수 있다. 센싱 데이터에 대한 추론이 성공한 경우, 제1 추론 엔진(212)은 추론 결과, 센싱 데이터, 및 히트 데이터를 제2 추론 엔진(234)으로 전달할 수 있다. 센싱 데이터에 대한 추론이 실패한 경우, 제1 추론 엔진(212)은 추론 결과, 센싱 데이터, 및 추론 요청을 제2 추론 엔진(234)으로 전달할 수 있다.
S140 단계에서, 서버(230)는 엔드 디바이스(210)에 새로운 기계 학습 모델이 요구되는지 판단할 수 있다. 서버(230)는 엔드 디바이스(210)의 추론 결과의 정확도를 계산할 수 있다. 계산 결과, 정확도가 기준 범위를 만족하지 않는 경우, 서버(230)는 엔드 디바이스(210)에 새로운 기계 학습 모델이 요구되는 것으로 판단할 수 있다. 이 경우, S150 단계로 진행된다. 추론 결과의 정확도가 기준 범위를 만족하는 경우, S120 단계로 진행되고, 엔드 디바이스(210)에 저장된 기계 학습 모델이 유지될 수 있다.
S150 단계에서, 서버(230)는 새로운 기계 학습 모델을 엔드 디바이스(210)에 업데이트할 수 있다. 새로운 기계 학습 모델은 상태 정보 및 이전에 전달된 추론 결과들 및 센싱 데이터에 기초하여 사전에 훈련 및 생성될 수 있다. 엔드 디바이스(210)는 새로운 기계 학습 모델을 저장하고, 기존의 기계 학습 모델을 삭제할 수 있다.
도 4는 도 3의 S110 단계에 대응되는 동작을 설명하기 위한 분산 추론 시스템의 블록도이다. 도 4를 참조하면, 분산 추론 시스템(200_1)은 엔드 디바이스(210_1) 및 서버(230_1)를 포함한다. 엔드 디바이스(210_1)는 에이전트(211_1)를 포함한다. 서버(230_1)는 에이전트 관리기(231_1), 디바이스 관리기(232_1), 및 훈련 데이터베이스(233_1)를 포함한다. 도 4는 S110 단계에 대응되는 동작을 수행하는 도 2의 일부 구성들의 데이터 전달 관계를 구체적으로 도시한 것으로 이해될 수 있다.
에이전트(211_1)는 엔드 디바이스(210_1)의 상태 정보(DS)를 수집 또는 생성하고, 에이전트 관리기(231_1)로 상태 정보(DS)를 전달할 수 있다. 에이전트 관리기(231_1)는 상태 정보(DS)에 기초하여 엔드 디바이스(210_1)의 등록여부를 판단할 수 있다. 에이전트 관리기(231_1)는 상태 정보(DS)를 디바이스 관리기(232_1)로 전달할 수 있다.
디바이스 관리기(232_1)는 상태 정보(DS)를 분석하여 엔드 디바이스(210_1)의 등급(GR)을 설정하고, 등급(GR)에 기초하여 엔드 디바이스(210_1)의 우선순위를 설정할 수 있다. 엔드 디바이스(210_1)의 우선순위는 복수의 엔드 디바이스들의 추론 요청들을 스케줄링하는데 이용될 수 있다. 디바이스 관리기(232_1)는 등급(GR)을 에이전트 관리기(231_1)로 전달할 수 있다. 에이전트 관리기(231_1)는 수신된 등급(GR)에 따라 설정된 매뉴얼 정보(DM)를 에이전트(211_1)에 전달할 수 있다. 에이전트(211_1)는 매뉴얼 정보(DM)에 따라 엔드 디바이스(210_1)의 동작 모드를 변경할 수 있다.
디바이스 관리기(232_1)는 새로운 기계 학습 모델을 훈련 및 생성하기 위한 훈련 데이터 셋(TD)을 생성하고 관리할 수 있다. 디바이스 관리기(232_1)는 상태 정보(DS)에 기초하여, 훈련 데이터 셋(TD)의 인덱스를 생성할 수 있다. 훈련 데이터 셋(TD)은 훈련 데이터베이스(233_1)로 전달될 수 있다. 추후, 새로운 기계 학습 모델이 생성될 때, 디바이스 관리기(232_1)는 상태 정보(DS)를 제공함으로써, 엔드 디바이스(210_1)의 현재 상태가 반영된 적응적 기계 학습 모델이 생성될 수 있다.
도 5는 도 4의 분산 추론 시스템의 동작 방법을 설명하기 위한 순서도이다. 도 5는 도 4의 에이전트(211_1), 에이전트 관리기(231_1), 및 디바이스 관리기(232_1)의 동작을 도시한다. 설명의 편의상, 도 4의 도면 부호를 참조하여 도 5가 설명된다.
S210 단계에서, 에이전트(211_1)는 상태 정보(DS)를 에이전트 관리기(231_1)로 전달한다. 상술하였듯이, 상태 정보(DS)는 식별 정보와 같은 엔드 디바이스의 종류 또는 용도에 관한 정보를 포함할 수 있다. 상태 정보(DS)는 리소스 또는 전력 상태 정보와 같은 엔드 디바이스 내부의 상태에 관한 정보를 포함할 수 있다. 상태 정보(DS)는 위치 정보와 같은 엔드 디바이스 주위의 상태에 관한 정보를 포함할 수 있다. 상태 정보(DS)는 이미지 또는 음성과 같은 센싱 데이터(타겟 데이터)의 종류에 관한 정보를 포함할 수 있다.
S220 단계에서, 에이전트 관리기(231_1)는 상태 정보(DS)를 해석 및 분석할 수 있다. 에이전트 관리기(231_1)는 상태 정보(DS)에 기초하여, 엔드 디바이스(210_1)가 등록되었는지 판단할 수 있다. 일례로, 에이전트 관리기(231_1)는 상태 정보(DS)에 포함된 엔드 디바이스(210_1)의 식별 정보가 에이전트 관리기(231_1)의 디바이스 리스트 테이블에 존재하는지 판단할 수 있다. 식별 정보가 존재하지 않는 경우, S225 단계가 진행된다. 이 경우, 에이전트 관리기(231_1)는 디바이스 리스트 테이블에 엔드 디바이스(210_1)를 등록할 수 있다. 식별 정보가 존재하는 경우, 에이전트 관리기(231_1)는 엔드 디바이스(210_1)가 이미 등록된 것으로 판단하고, S230 단계가 진행된다.
S230 단계에서, 에이전트 관리기(231_1)는 상태 정보(DS)의 변화가 존재하는지 판단할 수 있다. 일례로, 에이전트 관리기(231_1)는 이전에 에이전트(211_1)로부터 전달된 상태 정보와 현재의 상태 정보(DS)를 비교할 수 있다. 상태 정보(DS)의 변화가 존재하지 않는 경우, S235 단계가 진행된다. 이 경우, 에이전트 관리기(231_1)는 엔드 디바이스(210_1)가 현재의 상태를 유지하여도 무방하다고 판단할 수 있다. 따라서, 에이전트 관리기(231_1)는 별도의 과정을 수행하지 않거나, 처리 안함 메지시를 에이전트(211_1)에 전달할 수 있다. 에이전트(211_1)는 엔드 디바이스(210_1)의 동작 모드를 유지할 수 있다.
상태 정보(DS)의 변화가 존재하거나, 엔드 디바이스(210_1)가 처음 등록된 경우, S240 단계가 진행된다. 이 경우, 에이전트 관리기(231_1)는 엔드 디바이스(210_1)의 동작을 변경 또는 제어하기 위하여, 상태 정보(DS)를 디바이스 관리기(232_1)에 전달할 수 있다.
S250 단계에서, 디바이스 관리기(232_1)는 엔드 디바이스(210_1)의 등급(GR)을 생성할 수 있다. 이를 위하여, 디바이스 관리기(232_1)는 상태 정보(DS)를 해석 및 분석할 수 있다. 디바이스 관리기(232_1)는 상태 정보(DS) 및 관리되는 훈련 데이터 셋에 기초하여, 등급(GR)을 계산할 수 있다. 관리되는 훈련 데이터 셋은 이전 추론 결과의 정확도를 포함할 수 있고, 훈련 데이터베이스(233_1)에 저장될 수 있다.
예시적으로, 등급(GR)은 위험 등급, 시간 임계적(time critical) 등급, 정확도 보증 등급, 효율 등급, 노멀 등급, 및 중요하지 않은 등급으로 구분될 수 있다. 위험 등급은 엔드 디바이스(210_1)의 상태 또는 추론 요청이 사용자의 신변에 직결될 정도로 긴급한 경우 설정될 수 있다. 시간 임계적 등급은 마감 시한이 존재하는 등 빠른 추론 요청이 요구되는 경우 설정될 수 있다. 정확도 보증 등급은 추론 정확도가 정상 동작이 어려울 정도로 기준 범위를 벗어난 경우 설정될 수 있다. 효율 등급은 엔드 디바이스(210_1)의 저장 공간 등을 고려할 때, 빨리 처리할수록 효율성이 높아지는 경우 설정될 수 있다. 노멀 등급은 상술된 경우들에 해당되지 않는 일반적인 경우 설정될 수 있다. 중요하지 않은 등급은 이용 빈도가 낮고 유휴 시간(idle time)에 추론을 수행하여도 무방한 경우 설정될 수 있다.
S250 단계에서, 디바이스 관리기(232_1)는 엔드 디바이스(210_1)에 대응되는 훈련 데이터 셋(TD)을 생성할 수 있다. 디바이스 관리기(232_1)는 상태 정보(DS)에 포함된 타겟 데이터에 관한 정보에 기초하여 훈련 데이터 셋(TD)의 인덱스를 생성할 수 있다. 디바이스 관리기(232_1)는 타겟 데이터, 추론 결과, 히트 데이터 등을 더 수신함으로써, 훈련 데이터 셋(TD)을 생성 및 변경할 수 있다. 디바이스 관리기(232_1)는 어떠한 타겟 데이터가 추론 결과의 정확도 향상에 기여하였는지 판단하고, 이를 훈련 데이터 셋(TD)에 반영하여 관리할 수 있다. 훈련 데이터 셋(TD)은 훈련 데이터베이스(233_1)에 저장될 수 있다. 도 5 와 달리, 훈련 데이터 셋(TD)은 S240 단계 이후에 다른 시점에 생성될 수 있다. 예를 들어, 훈련 데이터 셋(TD)은 S290 단계 이후에 생성될 수도 있다.
S260 단계에서, 디바이스 관리기(232_1)는 계산된 등급(GR)을 에이전트 관리기(231_1)로 전달할 수 있다. 에이전트 관리기(231_1)는 등급(GR)에 기초하여, 매뉴얼 정보(DM)를 생성할 수 있다. 에이전트 관리기(231_1)는 등급(GR)에 따른 행동 지침을 미리 설정할 수 있다. 예를 들어, 에이전트 관리기(231_1)는 엔드 디바이스(210_1)의 배터리가 부족한 경우 설정되는 등급(GR)을 수신할 수 있다. 이 경우, 에이전트 관리기(231_1)는 엔드 디바이스(210_1)의 정보의 수집 주기 또는 전송 주기를 증가하도록 매뉴얼 정보(DM)를 생성할 수 있다.
S270 단계에서, 에이전트 관리기(231_1)는 생성된 매뉴얼 정보(DM)를 에이전트(211_1)로 전달할 수 있다. 에이전트(211_1)는 매뉴얼 정보(DM)에 기초하여, 엔드 디바이스(210_1)의 동작 모드를 변경할 수 있다. 상태 정보(DS)에 따라, 실시간으로 엔드 디바이스(210_1)의 행동 지침이 제공되므로, 엔드 디바이스(210_1)의 안정성이 향상될 수 있다.
S280 단계에서, 디바이스 관리기(232_1)는 엔드 디바이스(210_1)의 우선순위를 계산하기 위하여, 동일한 등급(GR)의 엔드 디바이스가 존재하는지 판단할 수 있다. 일례로, 디바이스 관리기(232_1)는 상태 관리 테이블에 동일한 등급의 엔드 디바이스가 존재하는지 검색할 수 있다. 동일한 등급의 엔드 디바이스가 존재하는 경우, S285 단계가 진행된다.
S285 단계에서, 디바이스 관리기(232_1)는 동일한 등급 내의 엔드 디바이스들의 우선순위를 계산할 수 있다. 일례로, 디바이스 관리기(232_1)는 상태 정보(DS)를 다시 분석하여 우선순위를 계산할 수 있다. 일례로, 디바이스 관리기(232_1)는 상태 정보의 다른 지표 또는 추론 결과의 정확도 등을 추가적으로 고려하여 동일한 등급 내의 엔드 디바이스들의 우선순위를 계산할 수 있다.
S290 단계에서, 디바이스 관리기(232_1)는 다른 등급의 엔드 디바이스들의 우선순위를 계산할 수 있다. 예를 들어, 상술된 바와 같이, 등급(GR)이 위험 등급, 시간 임계적(time critical) 등급, 정확도 보증 등급, 효율 등급, 노멀 등급, 및 중요하지 않은 등급 등으로 구분되는 경우, 순서대로 우선순위가 설정될 수 있다. 즉, 위험 등급에 가장 높은 우선순위가 부여되고, 중요하지 않은 등급에 가장 낮은 우선순위가 부여될 수 있다. 엔드 디바이스(210_1)의 우선순위는 추론 요청을 스케줄링하는데 이용될 수 있다. 따라서, 엔드 디바이스(210_1)의 상태에 따라 능동적으로 데이터가 처리될 수 있고, 엔드 디바이스(210_1)의 안정성이 향상될 수 있다.
도 6은 도 3의 S130 단계에 대응되는 동작을 설명하기 위한 분산 추론 시스템의 블록도이다. 도 6을 참조하면, 분산 추론 시스템(200_2)은 엔드 디바이스(210_2) 및 서버(230_2)를 포함한다. 엔드 디바이스(210_2)는 에이전트(211_2) 및 제1 추론 엔진(212_2)을 포함한다. 서버(230_2)는 에이전트 관리기(231_2), 디바이스 관리기(232_2), 및 제2 추론 엔진(234_2)을 포함한다. 도 6은 S130 단계에 대응되는 동작을 수행하는 도 2의 일부 구성들의 데이터 전달 관계를 구체적으로 도시한 것으로 이해될 수 있다.
도 4에서 설명한 바와 같이, 에이전트(211_2)는 상태 정보(DS)를 에이전트 관리기(231_2)로 전달하고, 에이전트 관리기(231_2)는 상태 정보(DS)를 디바이스 관리기(232_2)로 전달할 수 있다. 디바이스 관리기(232_2)는 상태 정보(DS)에 기초하여 엔드 디바이스(210_2)의 등급(GR)을 설정하고, 등급(GR)을 에이전트 관리기(231_2)로 전달할 수 있다. 디바이스 관리기(232_2)는 등급(GR)에 기초하여 엔드 디바이스(210_2)의 우선순위(DP)를 계산할 수 있다. 디바이스 관리기(232_2)는 우선순위(DP)를 제2 추론 엔진(234_2)로 전달할 수 있다.
제1 추론 엔진(212_2)는 엔드 디바이스(210_2)에 저장된 기계 학습 모델에 기초하여, 타겟 데이터의 추론을 수행할 수 있다. 추론이 성공한 경우, 제1 추론 엔진(212_2)은 추론 결과, 타겟 데이터, 및 히트 데이터를 서버(230_2)에 전달할 수 있다. 추론 결과, 타겟 데이터, 및 히트 데이터는 새로운 기계 학습 모델을 훈련 및 생성하는데 사용될 수 있다. 또한, 제1 추론 엔진(212_2)은 추론 결과를 에이전트(211_2)에 전달할 수 있다. 에이전트(211_2)는 추론 결과에 기초하여, 엔드 디바이스(210_2)를 제어할 수 있다.
제1 추론 엔진(212_2)의 추론이 실패한 경우, 제1 추론 엔진(212_2)은 제2 추론 엔진(234_2)에 추론 요청(Ireq)을 전달할 수 있다. 제1 추론 엔진(212_2)은 추론 요청(Ireq)과 함께, 타겟 데이터 및 추론 결과를 제2 추론 엔진(234_2)으로 전달할 수 있다. 제2 추론 엔진(234_2)은 추론 요청(Ireq)에 응답하여, 타겟 데이터의 추론을 수행할 수 있다. 제2 추론 엔진(234_2)의 추론 결과(IR)는 추론 엔진(212_2)에 전달될 수 있고, 에이전트(211_2)에 전달될 수 있다.
제2 추론 엔진(234_2)은 엔드 디바이스(210_2)의 우선순위(DP)에 기초하여 추론 요청(Ireq)을 스케줄링할 수 있다. 복수의 엔드 디바이스들로부터 추론 요청들이 수신된 경우, 제2 추론 엔진(234_2)은 우선순위(DP)에 따라 순차적으로 추론을 수행할 수 있다. 다만, 이에 제한되지 않고, 제2 추론 엔진(234_2)은 추론 요청(Ireq)을 수신한 순서대로 추론을 진행하되, 높은 우선순위(DP)의 엔드 디바이스(210_2)의 작업이 제한될 때에 한하여 추론 순서를 우선순위(DP)를 참조하여 변경할 수 있다.
도 7은 도 6의 분산 추론 시스템의 동작 방법을 설명하기 위한 순서도이다. 도 7은 도 6의 제1 추론 엔진(212_2), 제2 추론 엔진(234_2), 및 디바이스 관리기(232_2)의 동작을 도시한다. 설명의 편의상, 도 6의 도면 부호를 참조하여 도 7이 설명된다.
S310 단계에서, 디바이스 관리기(232_2)는 복수의 엔드 디바이스들의 우선순위(DP) (이하, 디바이스 우선순위)를 제2 추론 엔진(234_2)으로 전달한다. 디바이스 우선순위(DP)는 복수의 엔드 디바이스들 각각의 상태 정보에 기초하여 생성될 수 있다. 도 5에서 설명한 바와 같이, 디바이스 관리기(232_2)는 복수의 엔드 디바이스들 각각의 상태 정보에 기초하여 등급들을 생성하고, 등급들에 기초하여 디바이스 우선순위(DP)를 생성할 수 있다.
S320 단계에서, 제2 추론 엔진(234_2)은 디바이스 우선순위(DP) 기반의 스케줄링을 수행할 수 있다. 원칙적으로, 제2 추론 엔진(234_2)은 디바이스 우선순위(DP)에 따라 대기열(waiting queue)에 존재하는 추론 요청(Ireq)을 스케줄링할 수 있다.
S330 단계에서, 제1 추론 엔진(212_2)은 예시적으로 추론 요청(Ireq)에 우선순위 (이하, 추론 요청 우선순위)를 설정할 수 있다. S335 단계에서, 제1 추론 엔진(212_2)은 추론 요청(Ireq)을 제2 추론 엔진(234_2)으로 전달할 수 있다. 일례로, 제1 추론 엔진(212_2)은 추론 요청(Ireq)과 함께 추론 요청 우선순위를 제2 추론 엔진(234_2)으로 전달할 수 있다.
S330 및 S335 단계가 진행된 경우, S340 단계에서, 제2 추론 엔진(234_2)은 추론 요청(Ireq)에 대응되는 추론 요청 우선순위와 디바이스 우선순위(DP)를 비교할 수 있다. 추론 요청 우선순위와 디바이스 우선순위(DP)가 동일한 경우, 디바이스 우선순위(DP) 기반의 스케줄링에 기초하여, 추론 요청(Ireq)이 처리될 수 있다. 추론 요청 우선순위와 디바이스 우선순위(DP)가 서로 다른 경우, S345 단계가 진행된다. 이 경우, 제2 추론 엔진(234_2)은 제1 추론 엔진(212_2)으로부터 제공된 추론 요청 우선순위를 기반으로 추론 요청(Ireq)을 스케줄링할 수 있다.
S350 단계에서, 제2 추론 엔진(234_2)은 우선순위가 동일한 추론 요청이 존재하는지 판단할 수 있다. 여기에서, 우선순위는 디바이스 우선순위(DP) 또는 추론 요청 우선순위일 수 있다. 우선순위가 동일한 추론 요청이 존재하는 경우, 추론 요청들 사이의 우선순위를 결정하기 위하여, S355 단계가 진행된다. S355 단계에서, 제2 추론 엔진(234_2)은 선입선출(FIFO) 기반으로 추론 요청(Ireq)을 처리할 수 있다. 우선순위가 동일한 추론 요청이 존재하지 않는 경우, S360 단계가 진행된다.
S360 단계에서, 제2 추론 엔진(234_2)은 현재 처리 중인 추론 요청(Ireq)보다 높은 우선순위를 갖는 추론 요청이 존재하는지 판단할 수 있다. 일례로, 스케줄링된 추론 요청(Ireq)에 따라 제1 엔드 디바이스의 타겟 데이터에 대한 추론을 수행 중에, 제2 엔드 디바이스의 추론 요청이 제2 추론 엔진(234_2)으로 전달될 수 있다. 제2 엔드 디바이스의 상태 정보(DS)에 기초하여, 제2 엔드 디바이스는 디바이스 관리기(232_2)에 의하여 위험 등급으로 판단될 수 있다. 이 경우, 현재 처리 중인 추론 요청(Ireq)보다 높은 우선순위를 갖는 추론 요청이 존재할 수 있고, S365 단계가 진행될 수 있다.
S365 단계에서, 제2 추론 엔진(234_2)은 추론 요청(Ireq)의 대기에 따라, 높은 우선순위의 엔드 디바이스의 요구 사항이 만족될 수 없는지 판단할 수 있다. 예를 들어, 배터리가 대기 시간 동안 전력을 공급할 수 없는 경우, 엔드 디바이스의 요구사항이 만족될 수 없을 수 있다. 이 경우, S370 단계가 진행된다. 높은 우선순위의 엔드 디바이스의 요구 사항이 만족될 수 있는 경우, S380 단계가 진행된다.
S370 단계에서, 제2 추론 엔진(234_2)은 현재 처리 중인 추론을 중지할 수 있다. 제2 추론 엔진(234_2)은 높은 우선순위의 추론 요청(Ireq)이 우선적으로 처리되도록 추론 요청(Ireq)을 다시 스케줄링할 수 있다. 중지된 추론 요청(Ireq)은 해당 엔드 디바이스의 요구 사항이 만족될 수 있도록 다시 스케줄링될 수 있다.
S380 단계에서, 최종 스케줄링 결과에 기초하여, 엔드 디바이스(210_2)에 대응되는 타겟 데이터의 추론이 수행될 수 있다. 제2 추론 엔진(234_2)은 서버(230_2)에 저장된 기계 학습 모델에 기초하여, 타겟 데이터의 추론을 수행할 수 있다. 제2 추론 엔진(234_2)은 엔드 디바이스의 상태를 반영하여 추론 요청(Ireq)을 처리하므로, 긴급한 추론 요청(Ireq)을 실시간으로 처리할 수 있다. 이에 따라, 분산 추론 시스템(200_2)의 체감 품질(QoE)이 향상될 수 있다.
S390 단계에서, 제2 추론 엔진(234_2)은 추론 결과(IR)를 제1 추론 엔진(212_2)으로 전달할 수 있다. 또한, 제2 추론 엔진(234_2)은 새로운 기계 학습 모델을 생성 및 훈련하기 위하여 추론 결과(IR) 및 타겟 데이터를 디바이스 관리기(232_2)로 전달할 수 있다.
도 8은 도 3의 S140 단계에 대응되는 동작을 설명하기 위한 분산 추론 시스템의 블록도이다. 도 8을 참조하면, 분산 추론 시스템(200_3)은 엔드 디바이스(210_3) 및 서버(230_3)를 포함한다. 엔드 디바이스(210_3)는 에이전트(211_3), 제1 추론 엔진(212_3), 및 수신기(213_3)를 포함한다. 서버(230_3)는 에이전트 관리기(231_3), 디바이스 관리기(232_3), 훈련 데이터베이스(233_3), 제2 추론 엔진(234_3), 훈련 모듈(235_3), 캐싱 모듈(236_3), 및 송신기(237_3)를 포함한다. 도 8은 S140 단계에 대응되는 동작을 수행하는 도 2의 일부 구성들의 데이터 전달 관계를 구체적으로 도시한 것으로 이해될 수 있다.
서버(230_3)는 제1 추론 엔진(212_3)의 추론 결과에 기초하여 새로운 기계 학습 모델을 생성하기 위한 훈련 데이터 셋(TD)을 훈련 데이터베이스(233_3)에 축적하할 수 있다, 서버(230_3)는 훈련 데이터 셋(TD) 및 상태 정보(DS)에 기초하여, 기계 학습 모델을 사전에 훈련 및 생성할 수 있다. 또한, 서버(230_3)는 제1 추론 엔진(212_3)의 추론 결과에 기초하여 엔드 디바이스(210_3)에 저장된 기계 학습 모델의 생성을 결정할 수 있다. 이하 도 8에서, 기계 학습 모델을 사전에 훈련 및 생성하는 단계와 기계 학습 모델을 갱신하는 단계가 설명된다.
도 4 및 도 6에서 설명한 바와 같이, 에이전트(211_3)는 상태 정보(DS)를 에이전트 관리기(231_3)로 전달하고, 에이전트 관리기(231_3)는 상태 정보(DS)를 디바이스 관리기(232_3)로 전달할 수 있다. 디바이스 관리기(232_3)는 상태 정보(DS)를 고려하여 훈련 데이터 셋(TD)을 생성할 수 있다. 훈련 데이터 셋(TD)은 훈련 데이터베이스(233_3)로 전달된다.
제1 추론 엔진(212_3)은 엔드 디바이스(210_3)에 저장된 기계 학습 모델에 기초하여 타겟 데이터의 추론을 수행한다. 추론이 성공한 경우, 제1 추론 엔진(212_3)은 타겟 데이터, 제1 추론 결과(IR1), 및 히트 데이터(Hit)를 제2 추론 엔진(234_3)으로 전달할 수 있다. 타겟 데이터, 제1 추론 결과(IR1), 및 히트 데이터(Hit)는 훈련 데이터베이스(233_3)로 전달될 수 있고, 디바이스 관리기(232_3)의 제어 하에 타겟 데이터, 제1 추론 결과(IR1), 및 히트 데이터(Hit)가 훈련 데이터 셋(TD)에 포함될 수 있다. 히트 데이터(Hit)의 빈도에 따른 히트율 또는 추론 결과의 정확도(AC)는 훈련 데이터 셋(TD)에 포함될 수 있다. 이에 따라, 자주 사용되는 타겟 데이터가 훈련 데이터 셋(TD)에 나타날 수 있고, 기계 학습 모델의 훈련 시에, 이러한 타겟 데이터가 선택 또는 가중될 수 있다.
제1 추론 엔진(212_3)의 추론이 실패한 경우, 제1 추론 엔진(212_3)은 타겟 데이터, 제1 추론 결과(IR1), 및 추론 요청(Ireq)을 제2 추론 엔진(234_3)으로 전달할 수 있다. 제2 추론 엔진(234_3)은 추론 요청(Ireq)에 응답하여, 제2 추론 결과(IR2)를 생성할 수 있다. 제2 추론 결과(IR2)는 제1 추론 엔진(212_3)으로 전달될 수 있다. 또한, 제2 추론 결과(IR2) 및 타겟 데이터는 훈련 데이터베이스(233_3)로 전달되고, 훈련 데이터 셋(TD)에 포함될 수 있다.
제2 추론 엔진(234_3)은 제1 추론 결과(IR1)의 정확도(AC)를 계산할 수 있다. 계산된 정확도(AC)는 디바이스 관리기(232_3)로 전달될 수 있다. 정확도(AC)가 엔드 디바이스(210_3)에 대응되는 기준 범위를 만족하지 않는 경우, 디바이스 관리기(232_3)는 훈련 모듈(235_3)에 새로운 기계 학습 모델의 생성을 명령할 수 있다.
훈련 모듈(235_3)은 명령에 응답하여, 새로운 기계 학습 모델(MD)을 생성할 수 있다. 훈련 모듈(235_3)은 상태 정보(DS) 및 훈련 데이터 셋(TD)에 기초하여 기계 학습 모델(MD)을 훈련 및 생성할 수 있다. 상술한 바와 같이, 훈련 모듈(235_3)은 훈련 데이터 셋(TD)에 포함된 히트율 등을 참조하여, 타겟 데이터를 선택 또는 가중할 수 있다.
훈련 모듈(235_3)은 상태 정보(DS)에 기초하여 엔드 디바이스(210_3)에 적합한 모델 알고리즘을 선택할 수 있다. 일례로, 훈련 모듈(235_3)은 상태 정보(DS)에 포함된 배터리 정보에 기초하여, 에너지 소모를 감소시키기 위한 적은 연산 과정을 갖는 알고리즘을 선택하여 기계 학습 모델(MD)을 생성할 수 있다. 일례로, 훈련 모듈(235_3)은 상태 정보(DS)에 포함된 저장 공간 정보에 기초하여, 저장 공간에 맞는 사이즈의 훈련 데이터 셋(TD)을 선택하거나, 모델 알고리즘을 선택할 수 있다. 또한, 훈련 모듈(235_3)은 계산된 정확도(AC)를 더 고려하여 기계 학습 모델(MD)을 생성할 수 있다.
새로운 기계 학습 모델(MD)은 캐싱 모듈(236_3)에 업데이트될 수 있다. 캐싱 모듈(236_3)은 새로운 기계 학습 모델(MD)뿐만 아니라, 기존에 가장 높은 정확도 또는 성능을 갖는 기계 학습 모델을 함께 관리할 수 있다. 새로운 기계 학습 모델(MD)은 송신기(237_3)를 통하여 엔드 디바이스(210_3)의 수신기(213_3)로 전달될 수 있다.
도 9는 도 8의 분산 추론 시스템의 동작 방법을 설명하기 위한 순서도이다. 도 9는 도 8의 제1 추론 엔진(212_3), 제2 추론 엔진(234_3), 및 훈련 데이터베이스(233_3)의 동작을 도시한다. 도 9는 새로운 기계 학습 모델을 생성하기 위하여, 엔드 디바이스들로부터 타겟 데이터 및 추론 결과 등을 수집하는 과정을 도시한 것으로 이해될 것이다. 설명의 편의상, 도 8의 도면 부호를 참조하여 도 9가 설명된다.
S410 단계에서, 제1 추론 엔진(212_3)은 엔드 디바이스(210_3)에 저장된 기계 학습 모델에 기초하여 타겟 데이터의 추론을 수행한다. S420 단계에서, 제1 추론 엔진(212_3)은 추론의 성공여부를 판단한다. 추론이 성공한 경우 (즉, inference hit), S425 단계로 진행된다. 이 경우, 제1 추론 결과(IR1), 타겟 데이터, 및 히트 데이터(Hit)는 제2 추론 엔진(234_3)을 통하여, 훈련 데이터베이스(233_3)로 전달된다. 훈련 데이터베이스(233_3)로 전달된 정보는 새로운 기계 학습 모델(MD)을 생성하기 위하여 관리될 수 있다. 추론이 실패한 경우, S430 단계가 진행된다.
S430 단계에서, 제1 추론 결과(IR), 타겟 데이터, 및 추론 요청(Ireq)이 제2 추론 엔진(234_3)으로 전달된다. S440 단계에서, 제2 추론 엔진(234_3)은 추론 요청(Ireq)에 응답하여, 타겟 데이터의 추론을 수행한다. 제2 추론 엔진(234_3)은 서버(230_3)에 저장된 기계 학습 모델에 기초하여 타겟 데이터의 추론을 수행한다.
S445 단계에서, 추론에 따른 제2 추론 결과(IR2)는 엔드 디바이스(210_3)의 다음 동작을 위하여, 제1 추론 엔진(212_3)으로 전달될 수 있다. S450 단계에서, 제2 추론 결과(IR2), 타겟 데이터, 및 히트 데이터(Hit)는 훈련 데이터베이스(233_3)로 전달될 수 있다. 훈련 데이터베이스(233_3)로 전달된 정보는 새로운 기계 학습 모델(MD)을 생성하기 위하여 관리될 수 있다. 아울러, 제2 추론 엔진(234_3)은 제1 추론 결과(IR1)의 정확도(AC)를 계산할 수 있다. 정확도(AC)는 엔드 디바이스(210_3)에 저장된 기계 학습 모델의 갱신을 판단하는데 사용될 수 있다.
도 10은 도 8의 분산 추론 시스템의 동작 방법을 설명하기 위한 순서도이다. 도 10은 도 9에서 수집된 타겟 데이터 및 추론 결과 등을 바탕으로, 새로운 기계 학습 모델을 생성하는 과정을 도시한 것으로 이해될 것이다. 설명의 편의상 도 8의 도면 부호를 참조하여 도 10이 설명된다.
S510 단계에서, 서버(230_3)는 엔드 디바이스(210_3)에 의한 제1 추론 결과(IR1)의 정확도(AC)를 계산할 수 있다. 제1 추론 결과(IR1)의 정확도(AC)는 제2 추론 엔진(234_3)에서 계산될 수 있다. 일례로, 정확도(AC)는 제1 추론 결과(IR1)와 제2 추론 결과(IR2)의 비교에 기초하여 계산될 수 있으나, 이에 제한되지 않는다. 예를 들어, 정확도(AC)는 기설정된 참값과 제1 추론 결과(IR1)의 비교를 통하여 계산될 수 있다. 또는, 정확도(AC)는 추론 결과의 히트율 즉, 성공 빈도에 기초하여 계산될 수 있다. 계산된 정확도(AC)는 디바이스 관리기(232_3)로 전달될 수 있다.
S520 단계에서, 서버(230_3)는 계산된 정확도(AC)가 기준 범위를 만족하는지 판단할 수 있다. 기준 범위는 엔드 디바이스(210_3)의 정상 동작을 위하여 요구되는 추론 정확도의 범위일 수 있다. 이러한 판단은 디바이스 관리기(232_3)에서 수행될 수 있다. 기준 범위를 만족하는 경우, 현재 엔드 디바이스(210_3)에 저장된 기계 학습 모델을 변경할 필요가 없으므로, 기계 학습 모델을 갱신하는 동작을 수행하지 않을 수 있다. 기준 범위를 만족하지 않는 경우, S530 단계가 진행된다.
S530 단계에서, 서버(230_3)는 상태 정보(DS) 및 훈련 데이터 셋(TD)을 수집할 수 있다. 서버(230_3)는 엔드 디바이스(210_3)로부터 상태 정보(DS)를 수신할 수 있다. 훈련 모듈(235_3)은 디바이스 관리기(232_3)를 통하여, 상태 정보(DS)를 수신할 수 있다. 또한, 훈련 모듈(235_3)은 훈련 데이터베이스(233_3)에 축적된 훈련 데이터 셋(TD)을 수신할 수 있다.
S540 단계에서, 서버(230_3)는 최적의 기계 학습 모델이 이미 존재하는지 판단할 수 있다. 예를 들어, 훈련 모듈(235_3)은 엔드 디바이스(210_3)로 업데이트되지 않은 이전에 생성된 기계 학습 모델이 존재하는지 캐시 모듈(236_3)을 검색할 수 있다. 기계 학습 모델이 존재하는 경우, S570 단계가 진행된다. 기계 학습 모델이 존재하지 않는 경우, S550 단계가 진행된다.
S550 단계에서, 서버(230_3)는 새로운 기계 학습 모델(MD)을 생성한다. 훈련 모듈(235_3)은 수집된 상태 정보(DS) 및 훈련 데이터 셋(TD)에 기초하여, 현재 엔드 디바이스(210_3)의 상태에 적응적인 기계 학습 모델(MD)을 생성할 수 있다. S560 단계에서, 생성된 기계 학습 모델(MD)은 캐싱 모듈(236_3)에 업데이트될 수 있다.
S570 단계에서, 서버(230_3)는 캐싱 모듈(236_3)에 업데이트된 기계 학습 모델(MD)을 엔드 디바이스(210_3)로 전달할 수 있다. 업데이트 기계 학습 모델은 S550 단계에서 생성된 기계 학습 모델(MD)이거나, S540 단계에서 기생성된 검색된 기계 학습 모델일 수 있다. 기계 학습 모델(MD)은 송신기(237_3)를 통하여, 엔드 디바이스(210_3)의 수신기(213_3)로 전달될 수 있다.
도 11은 도 3의 S150 단계에 대응되는 동작을 설명하기 위한 분산 추론 시스템의 블록도이다. 도 11을 참조하면, 분산 추론 시스템(200_4)은 엔드 디바이스(210_4) 및 서버(230_4)를 포함한다. 엔드 디바이스(210_4)는 제1 추론 엔진(212_4), 수신기(213_4), 및 기계 학습 모델 관리기(214_4)를 포함한다. 서버(230_4)는 제2 추론 엔진(234_4) 및 송신기(237_4)를 포함한다. 도 11은 S150 단계에 대응되는 동작을 수행하는 도 2의 일부 구성들의 데이터 전달 관계를 구체적으로 도시한 것으로 이해될 수 있다.
도 8에서 설명한 바와 같이, 송신기(237_4)는 수신기(213_4)로 기계 학습 모델(MD)을 전달할 수 있다. 다만, 송신기(237_4)는 기계 학습 모델(MD)을 송신하기 전에, 기계 학습 모델(MD)의 사이즈 정보(MS)를 수신기(213_4)로 송신할 수 있다. 수신기(213_4)는 수신된 사이즈 정보(MS)를 기계 학습 모델 관리기(214_4)로 전달할 수 있다.
기계 학습 모델 관리기(214_4)는 엔드 디바이스(210_4)의 현재 메모리(미도시) 또는 스토리지(미도시)의 잔여 공간과 사이즈 정보(MS)를 비교할 수 있다. 기계 학습 모델(MD)의 사이즈가 잔여 공간보다 작은 경우, 엔드 디바이스(210_4)는 수신기(213_4)를 통하여 기계 학습 모델(MD)을 수신할 수 있다. 이후에, 기계 학습 모델 관리기(214_4)는 기존의 기계 학습 모델을 삭제할 수 있다.
기계 학습 모델(MD)의 사이즈가 잔여 공간보다 큰 경우, 기계 학습 모델(MD)은 엔드 디바이스(210_4)의 메모리 또는 스토리지에 저장될 수 없다. 기계 학습 모델 관리기(214_4)는 제1 추론 엔진(212_4)에서 추론 대기중인 모든 타겟 데이터를 추론 요청들(Ireq)과 함께 제2 추론 엔진(234_4)으로 전달하도록, 제1 추론 엔진(212_4)를 제어할 수 있다. 그리고, 기계 학습 모델 관리기(214_4)는 기존의 기계 학습 모델을 삭제한다. 이후에, 엔드 디바이스(210_4)는 수신기(213_4)를 통하여 기계 학습 모델(MD)을 수신할 수 있다. 따라서, 기계 학습 모델(MD)의 갱신에 따른 추론 지연이 감소하고, 데이터의 처리 속도가 개선될 수 있다.
도 12는 도 11의 분산 추론 시스템의 동작 방법을 설명하기 위한 순서도이다. 도 12는 서버로부터 생성된 기계 학습 모델의 사이즈에 따라 기계 학습 모델을 갱신하는 동작을 도시한다. 설명의 편의상, 도 11의 도면 부호를 참조하여, 도 12가 설명된다.
S610 단계에서, 수신기(213_4)는 기계 학습 모델(MD)의 사이즈 정보(MS)를 수신한다. 사이즈 정보(MS)는 기계 학습 모델 관리기(214_4)로 전달될 수 있다.
S620 단계에서, 기계 학습 모델 관리기(214_4)는 엔드 디바이스(210_4)에서 기계 학습 모델(MD)을 저장하기 위한 잔여 공간이 기계 학습 모델(MD)을 저장하기에 충분한지 판단할 수 있다. 충분한 잔여 공간이 확보되는 경우, S650 단계가 진행되어, 기계 학습 모델(MD)이 서버(230_4)로부터 수신될 수 있다. 충분한 잔여 공간이 확보되지 않는 경우, S630 단계가 진행된다.
S630 단계에서, 기계 학습 모델 관리기(214_4)는 제1 추론 엔진(212_4)에서 대기중인 모든 타겟 데이터를 추론 요청들(Ireq)과 함께 제2 추론 엔진(234_4)으로 넘기도록, 제1 추론 엔진(212_4)을 제어할 수 있다. 즉, 기존의 기계 학습 모델이 삭제되고 새로운 기계 학습 모델(MD)이 업데이트된 후에, 추론을 수행함으로써 발생되는 시간 지연이 감소할 수 있다.
S640 단계에서, 기계 학습 모델 관리기(214_4)는 엔드 디바이스(210_4)에 저장된 기존의 기계 학습 모델을 삭제할 수 있다. 그리고, S650 단계에서, 기계 학습 모델 관리기(214_4)는 새로운 기계 학습 모델(MD)을 서버(230_4)로부터 수신하도록, 수신기(213_4)를 제어할 수 있다. 즉, 기계 학습 모델 관리기(214_4)는 사이즈 정보(MS)에 기초하여, 기계 학습 모델(MD)의 수신 시점을 결정할 수 있다.
S660 단계에서, 제1 추론 엔진(212_4)은 새로운 기계 학습 모델(MD)에 기초하여, 타겟 데이터에 대한 추론을 수행할 수 있다. 기계 학습 모델 관리기(214_4)는 제1 추론 엔진(212_4)에 새로운 기계 학습 모델(MD)이 업데이트됨을 알려줄 수 있다.
S670 단계에서, 기계 학습 모델 관리기(214_4)는 기존의 기계 학습 모델이 존재하는지 판단할 수 있다. 만약, S620 단계에서 곧바로 S650 단계로 진행한 경우, 기존의 기계 학습 모델이 존재할 수 있다. 이 경우, S680 단계가 진행되고, 기존의 기계 학습 모델은 삭제될 수 있다.
도 13은 도 1 또는 도 2의 엔드 디바이스의 예시적인 블록도이다. 예시적으로, 엔드 디바이스(300)는 IoT 장치일 수 있다. 도 13을 참조하면, 엔드 디바이스(300)는 어플리케이션 프로세서(310), 센서(320), 메모리(330), 스토리지(340), 모뎀(350), 및 디스플레이(360)를 포함할 수 있다. 엔드 디바이스(300)의 구성은 예시적인 것으로, 엔드 디바이스(300)의 목적에 따라 다른 입출력 장치 또는 모듈들이 제공될 수 있다.
어플리케이션 프로세서(310)는 엔드 디바이스(300)의 전반적인 동작 및 엔드 디바이스(300)의 구성들의 동작을 제어하고, 운영체제 (OS; Operating System)를 구동시킬 수 있다. 예시적으로, 어플리케이션 프로세서(310)는 엔드 디바이스(300)에 포함된 구성 요소들을 제어하는 컨트롤러들, 인터페이스들, 그래픽 엔진 등을 포함할 수 있다. 어플리케이션 프로세서(310)는 시스템-온-칩(SoC; System-on-Chip)으로 제공될 수 있다.
어플리케이션 프로세서(310)는 메모리(330)에 로드되는 에이전트(331), 추론 엔진(332), 및 기계 학습 모델 관리기(334)를 실행할 수 있다. 에이전트(331), 추론 엔진(332), 및 기계 학습 모델 관리기(334)는 도 2의 에이전트(211), 추론 엔진(212), 및 기계 학습 모델 관리기(214)에 대응될 수 있다.
어플리케이션 프로세서(310)의 실행에 따라, 에이전트(331)는 상태 정보를 수집할 수 있다. 수집된 상태 정보는 모뎀(350)을 통하여, 서버로 전달될 수 있다. 에이전트(331)의 실행에 따라, 엔드 디바이스(300)의 동작 모드가 변경될 수 있다. 추론 엔진(332)의 실행에 따라, 타겟 데이터에 대한 추론이 수행될 수 있다. 추론 결과 및 타겟 데이터는 모뎀(350)을 통하여 서버로 전달될 수 있다. 기계 학습 모델 관리기(333)의 실행에 따라, 서버로부터 제공된 기계 학습 모델의 수신 시점이 결정되고, 기계 학습 모델이 관리될 수 있다.
센서(320)는 어플리케이션 프로세서(310)의 제어 하에, 외부의 정보를 센싱하여, 타겟 데이터를 생성할 수 있다. 타겟 데이터는 추론 엔진(332)에 입력될 수 있다. 예를 들어, 센서(320)는 이미지를 감지하는 이미지 센서, 생체 신호를 감지하는 바이오 센서, 조도 센서, 음향 센서, 가속도 센서 등을 포함할 수 있다. 또한, 센서(320)는 추론을 위한 타겟 데이터 이외에, 엔드 디바이스(300) 외부의 상태를 센싱할 수 있다. 이 경우, 센서(320)는 상태 정보의 일부를 생성할 수 있다.
메모리(330)는 엔드 디바이스(300)의 주기억 장치로 사용될 수 있다. 예를 들어, 메모리(330)에 어플리케이션 프로세서(310)에 의하여 처리되는 다양한 데이터 및 프로세서 코드들이 로드될 수 있다. 메모리(330)는 DRAM (Dynamic RAM), SRAM (Static RAM), PRAM (Phase-change RAM), MRAM (Magnetic RAM), FeRAM (Ferroelectric RAM), RRAM (Resistive RAM) 등을 포함할 수 있다.
스토리지(340)는 엔드 디바이스(300)의 보조기억장치로 사용될 수 있다. 예를 들어, 어플리케이션 프로세서(310)에 의해 실행되는 운영 체제 또는 다양한 어플리케이션들의 소스 코드들, 운영 체제 또는 어플리케이션들에 의해 장기적인 저장을 목적으로 생성되는 다양한 데이터가 스토리지(340)에 저장될 수 있다. 스토리지(340)는 플래시 메모리, PRAM (Phase-change RAM), MRAM (Magnetic RAM), FeRAM (Ferroelectric RAM), RRAM (Resistive RAM) 등을 포함할 수 있다.
모뎀(350)은 외부 장치, 예를 들어 서버와 유선 또는 무선 통신을 수행하도록 구성된다. 모뎀(350)은 서버로부터 기계 학습 모델, 추론 결과, 매뉴얼 정보 등을 수신할 수 있고, 서버에 타겟 데이터, 추론 결과, 상태 정보 등을 송신할 수 있다. 모뎀(350)은 LTE, 이더넷, 와이파이, 블루투스 등과 같은 다양한 표준들 중 적어도 하나를 구현하도록 구성될 수 있다.
디스플레이(360)는 에이전트(331)에 의하여 결정된 동작 모드 또는 추론 엔진(332)에 의한 추론 결과에 기초하여, 이미지를 표시할 수 있다. 예를 들어, 추론 결과 외부인의 침입이 예측되는 경우, 디스플레이(360)는 경고 메시지를 표시할 수 있다. 디스플레이(360)는 LCD (Liquid Crystal Display), OLED (Organic Light Emitting Diode), AMOLED (Active Matrix OLED), 플렉서블 디스플레이, 전자잉크 등을 포함할 수 있다.
도 14는 도 1 또는 도 2의 서버의 예시적인 블록도이다. 예시적으로, 서버(400)는 클라우드 서버일 수 있다. 도 14를 참조하면, 서버(400)는 프로세서(410), 모뎀(420), 메모리(430), 스토리지(440), 입출력 장치(450), 및 버스(460)를 포함할 수 있다. 서버(400)의 구성은 예시적인 것으로, 서버(400)의 목적에 따라 다른 장치 또는 모듈들이 제공될 수 있다.
프로세서(410)는 서버(400)의 전반적인 동작 및 서버(400)의 구성들의 동작을 제어할 수 있다. 프로세서(410)는 모뎀(420)을 통하여 외부의 복수의 엔드 디바이스들과 통신할 수 있다. 프로세서(410)는 메모리(430)를 사용하여 서버(400)를 제어할 수 있다. 프로세서(410)는 메모리(430)에 로드되는 에이전트 관리기(431), 디바이스 관리기(432), 추론 엔진(433), 훈련 모듈(434), 및 캐싱 모듈(435)을 실행할 수 있다.
에이전트 관리기(431)의 실행에 따라, 엔드 디바이스의 동작을 제어하기 위한 매뉴얼 정보가 생성될 수 있다. 디바이스 관리기(432)의 실행에 따라, 엔드 디바이스들 사이의 우선순위가 결정되고, 새로운 기계 학습 모델의 생성이 결정될 수 있다. 추론 엔진(433)의 실행에 따라, 타겟 데이터의 추론이 수행되고, 추론 결과의 정확도가 계산될 수 있다. 훈련 모듈(434)의 실행에 따라, 기계 학습 모델이 생성될 수 있다. 캐싱 모듈(435)에 생성된 기계 학습 모델이 업데이트될 수 있다.
모뎀(420)은 외부 장치, 예를 들어 복수의 엔드 디바이스들과 유선 또는 무선 통신을 수행하도록 구성된다. 모뎀(420)은 엔드 디바이스에 기계 학습 모델, 추론 결과, 매뉴얼 정보 등을 송신신할 수 있고, 엔드 디바이스로부터 타겟 데이터, 추론 결과, 상태 정보 등을 송신할 수 있다.
메모리(430)는 서버(400)의 주기억 장치로 사용될 수 있으며, 프로세서(410)에 의하여 처리되는 다양한 데이터 및 프로세서 코드들이 메모리(430)에 로드될 수 있다.
스토리지(440)는 서버(400)의 보조기억장치로 사용될 수 있으며, 프로세서(410)에 의해 실행되는 운영 체제 또는 다양한 어플리케이션들의 소스 코드들, 운영 체제 또는 어플리케이션들에 의해 장기적인 저장을 목적으로 생성되는 다양한 데이터가 저장될 수 있다. 또한, 스토리지(440)에 도 2의 훈련 데이터베이스(223)가 구현될 수 있다.
입출력 장치(450)는 터치패드, 키패드, 입력 버튼, 마우스 등과 같은 입력 수단 및 디스플레이, 스피커 등과 같은 출력 수단을 포함할 수 있다.
버스(460)는 서버(400)의 구성 요소들 사이에서 통신 경로를 제공한다. 버스(460)는 서버(400)에 이용되는 다양한 유형의 통신 포맷을 지원하도록 구성될 수 있다.
위에서 설명한 내용은 본 발명을 실시하기 위한 구체적인 예들이다. 본 발명에는 위에서 설명한 실시 예들뿐만 아니라, 단순하게 설계 변경하거나 용이하게 변경할 수 있는 실시 예들도 포함될 것이다. 또한, 본 발명에는 상술한 실시 예들을 이용하여 앞으로 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다.
100, 200: 분산 추론 시스템 210, 300: 엔드 디바이스
211: 에이전트 212: 추론 엔진
213: 수신기 214: 기계 학습 모델 관리기
230, 400: 서버 231: 에이전트 관리기
232: 디바이스 관리기 233: 훈련 데이터베이스
234: 추론 엔진 235: 훈련 모듈
236: 캐싱 모듈 237: 송신기

Claims (10)

  1. 상태 정보를 생성하고, 제1 기계 학습 모델에 기초하여 타겟 데이터에 대응되는 추론 결과를 생성하는 엔드 디바이스; 및
    상기 추론 결과를 포함하는 훈련 데이터 셋 및 상기 상태 정보에 기초하여 제2 기계 학습 모델을 생성하고, 상기 추론 결과의 정확도를 계산하고, 상기 정확도에 기초하여 상기 제2 기계 학습 모델을 상기 엔드 디바이스로 전달하는 서버를 포함하는 분산 추론 시스템.
  2. 제1 항에 있어서,
    상기 서버는,
    상기 상태 정보에 기초하여 상기 엔드 디바이스를 등록하는 에이전트 관리기; 및
    상기 상태 정보에 기초하여 상기 엔드 디바이스의 등급을 생성하고, 상기 등급에 기초하여 상기 엔드 디바이스의 우선순위를 계산하는 디바이스 관리기를 포함하는 분산 추론 시스템.
  3. 제2 항에 있어서,
    상기 에이전트 관리기는 상기 등급에 기초하여 상기 엔드 디바이스의 동작을 제어하기 위한 매뉴얼 정보를 생성하는 분산 추론 시스템.
  4. 제2 항에 있어서,
    상기 서버는 상기 엔드 디바이스의 추론 요청에 응답하여, 상기 타겟 데이터의 추론을 수행하는 추론 엔진을 더 포함하되,
    상기 추론 요청은 상기 엔드 디바이스의 상기 우선순위에 기초하여 스케줄링되는 분산 추론 시스템.
  5. 제4 항에 있어서,
    상기 엔드 디바이스는 상기 추론 요청의 우선순위를 설정하고, 상기 추론 요청의 상기 우선순위에 따라 상기 추론 요청을 상기 추론 엔진으로 전달하고,
    상기 추론 엔진은 상기 추론 요청의 상기 우선순위와 상기 엔드 디바이스의 상기 우선순위가 다른 경우, 상기 추론 요청의 상기 우선순위에 기초하여 상기 추론 요청을 스케줄링하는 분산 추론 시스템.
  6. 제4 항에 있어서,
    상기 추론 엔진은 상기 추론 요청에 대응되는 상기 우선순위보다 높은 우선순위가 존재하는 경우, 상기 높은 우선순위에 대응되는 엔드 디바이스의 상태 정보에 기초하여 상기 타겟 데이터의 상기 추론을 정지하는 분산 추론 시스템.
  7. 분산 추론 시스템의 동작 방법에 있어서,
    엔드 디바이스의 상태 정보를 서버로 전달하는 단계;
    상기 엔드 디바이스가 제1 기계 학습 모델에 기초하여 타겟 데이터의 추론을 수행하는 단계;
    상기 서버가 상기 타겟 데이터의 추론 결과에 기초하여 제2 기계 학습 모델의 생성을 결정하는 단계;
    상기 서버가 상기 상태 정보에 기초하여 상기 제2 기계 학습 모델을 생성하는 단계; 및
    상기 엔드 디바이스가 상기 제1 기계 학습 모델을 상기 제2 기계 학습 모델로 갱신하는 단계를 포함하는 단계를 포함하는 방법.
  8. 제7 항에 있어서,
    상기 제2 기계 학습 모델의 생성을 결정하는 단계는,
    상기 추론 결과의 정확도를 계산하는 단계;
    상기 정확도가 기준 범위인지 판단하는 단계; 및
    기생성된 기계 학습 모델이 상기 서버의 캐싱 모듈에 존재하는지 판단하는 단계를 포함하는 방법.
  9. 제7 항에 있어서,
    상기 제1 기계 학습 모델을 상기 제2 기계 학습 모델로 갱신하는 단계는,
    상기 제2 기계 학습 모델의 사이즈 정보를 상기 엔드 디바이스로 전달하는 단계; 및
    상기 사이즈 정보에 기초하여, 상기 제2 기계 학습 모델의 수신 시점을 결정하는 단계를 포함하는 방법.
  10. 제9 항에 있어서,
    상기 사이즈 정보가 상기 엔드 디바이스의 잔여 공간보다 큰 경우, 상기 엔드 디바이스는 상기 서버에 추론 요청을 전달하고 상기 제1 기계 학습 모델을 삭제한 후, 상기 제2 기계 학습 모델을 수신하고,
    상기 사이즈 정보가 상기 엔드 디바이스의 잔여 공간보다 작은 경우, 상기 엔드 디바이스는 상기 제2 기계 학습 모델을 수신한 후, 상기 제1 기계 학습 모델을 삭제하는 방법.
KR1020190002344A 2019-01-08 2019-01-08 분산 추론 시스템 및 이의 동작 방법 KR20200093093A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190002344A KR20200093093A (ko) 2019-01-08 2019-01-08 분산 추론 시스템 및 이의 동작 방법
US16/530,549 US11838835B2 (en) 2019-01-08 2019-08-02 Distributed inference system and operating method of the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190002344A KR20200093093A (ko) 2019-01-08 2019-01-08 분산 추론 시스템 및 이의 동작 방법

Publications (1)

Publication Number Publication Date
KR20200093093A true KR20200093093A (ko) 2020-08-05

Family

ID=71403925

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190002344A KR20200093093A (ko) 2019-01-08 2019-01-08 분산 추론 시스템 및 이의 동작 방법

Country Status (2)

Country Link
US (1) US11838835B2 (ko)
KR (1) KR20200093093A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022039494A1 (ko) * 2020-08-20 2022-02-24 삼성전자 주식회사 단말의 모델을 갱신하는 서버 및 그 동작 방법
WO2022114489A1 (ko) * 2020-11-30 2022-06-02 라온피플 주식회사 딥러닝 지원 디바이스 및 딥러닝 지원 방법

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11871244B2 (en) 2020-02-27 2024-01-09 CACI, Inc.—Federal Primary signal detection using distributed machine learning in multi-area environment
CN115989481A (zh) * 2020-07-10 2023-04-18 松下知识产权经营株式会社 信息处理装置、信息处理方法以及程序
WO2022028663A1 (en) * 2020-08-03 2022-02-10 Nokia Solutions And Networks Oy Distributed training in communication networks
US20220044101A1 (en) * 2020-08-06 2022-02-10 Micron Technology, Inc. Collaborative sensor data processing by deep learning accelerators with integrated random access memory
US11720417B2 (en) 2020-08-06 2023-08-08 Micron Technology, Inc. Distributed inferencing using deep learning accelerators with integrated random access memory
JP7074166B2 (ja) * 2020-08-07 2022-05-24 トヨタ自動車株式会社 サーバ、車両の制御装置、および車両の機械学習システム
EP4206987A4 (en) * 2020-10-09 2023-10-18 Huawei Technologies Co., Ltd. METHOD AND DEVICE FOR MODEL EVALUATION
US11726999B1 (en) * 2021-06-14 2023-08-15 Amazon Technologies, Inc. Obtaining inferences to perform access requests at a non-relational database system
WO2023041144A1 (en) * 2021-09-14 2023-03-23 Nokia Technologies Oy Triggering user equipment-side machine learning model update for machine learning-based positioning
CN116708126A (zh) * 2022-02-22 2023-09-05 中兴通讯股份有限公司 Ai推理方法、系统和计算机可读存储介质

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5787446A (en) * 1995-08-03 1998-07-28 International Business Machines Corporation Sub-volume with floating storage space
US6393386B1 (en) 1998-03-26 2002-05-21 Visual Networks Technologies, Inc. Dynamic modeling of complex networks and prediction of impacts of faults therein
US6912515B2 (en) 2001-06-04 2005-06-28 Xerox Corporation Method and system for algorithm synthesis in problem solving
US7409423B2 (en) 2001-06-28 2008-08-05 Horvitz Eric J Methods for and applications of learning and inferring the periods of time until people are available or unavailable for different forms of communication, collaboration, and information access
US7617042B2 (en) 2006-06-30 2009-11-10 Microsoft Corporation Computing and harnessing inferences about the timing, duration, and nature of motion and cessation of motion with applications to mobile computing and communications
US7802083B2 (en) * 2006-12-20 2010-09-21 Intel Corporation Utilization based installation on a computing system
US7953946B2 (en) * 2007-04-16 2011-05-31 Microsoft Corporation Controlled anticipation in creating a shadow copy
US8270411B1 (en) * 2009-12-11 2012-09-18 Sprint Communications Company L.P. Bandwidth allocation based on dormancy transitions
US9491187B2 (en) * 2013-02-15 2016-11-08 Qualcomm Incorporated APIs for obtaining device-specific behavior classifier models from the cloud
KR101446099B1 (ko) 2013-03-04 2014-10-07 서울대학교산학협력단 스마트 단말을 이용한 안정적인 사용자의 이동 경로 실시간 예측 방법 및 그 시스템
US9742869B2 (en) * 2013-12-09 2017-08-22 Nvidia Corporation Approach to adaptive allocation of shared resources in computer systems
US20150324686A1 (en) 2014-05-12 2015-11-12 Qualcomm Incorporated Distributed model learning
WO2015175730A1 (en) 2014-05-13 2015-11-19 Nant Vision, Inc. Augmented reality content rendering via albedo models, systems and methods
US20160379134A1 (en) 2015-06-24 2016-12-29 International Business Machines Corporation Cluster based desktop management services
WO2017018936A1 (en) * 2015-07-24 2017-02-02 Voxp Pte Ltd System and method for relaying information
US11087234B2 (en) 2016-01-29 2021-08-10 Verizon Media Inc. Method and system for distributed deep machine learning
KR101752488B1 (ko) 2016-06-24 2017-07-11 주식회사 삼진엘앤디 사물 인터넷 환경에서 온톨로지 기반의 상황인지 서비스를 제공하기 위한 시스템, 방법 및 컴퓨터 판독 가능한 기록 매체
WO2018026380A1 (en) * 2016-08-05 2018-02-08 Intel Corporation Systems and methods for data service request classification and routing
US11455549B2 (en) 2016-12-08 2022-09-27 Disney Enterprises, Inc. Modeling characters that interact with users as part of a character-as-a-service implementation
US10944683B1 (en) * 2017-05-25 2021-03-09 Amazon Technologies, Inc. Hybrid queue system for request throttling
US11108575B2 (en) * 2017-07-26 2021-08-31 Amazon Technologies, Inc. Training models for IOT devices
CN109392103B (zh) * 2017-08-04 2020-08-28 大唐移动通信设备有限公司 一种资源分配方法及装置
US20190156246A1 (en) * 2017-11-21 2019-05-23 Amazon Technologies, Inc. Generating and deploying packages for machine learning at edge devices
US10805179B2 (en) * 2017-12-28 2020-10-13 Intel Corporation Service level agreement-based multi-hardware accelerated inference
WO2019232466A1 (en) * 2018-06-01 2019-12-05 Nami Ml Inc. Machine learning model re-training based on distributed feedback
US10749815B2 (en) * 2018-06-29 2020-08-18 Intel Corporation Technologies for context-aware dynamic bandwidth allocation
US10990850B1 (en) * 2018-12-12 2021-04-27 Amazon Technologies, Inc. Knowledge distillation and automatic model retraining via edge device sample collection

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022039494A1 (ko) * 2020-08-20 2022-02-24 삼성전자 주식회사 단말의 모델을 갱신하는 서버 및 그 동작 방법
WO2022114489A1 (ko) * 2020-11-30 2022-06-02 라온피플 주식회사 딥러닝 지원 디바이스 및 딥러닝 지원 방법
KR20220075965A (ko) * 2020-11-30 2022-06-08 라온피플 주식회사 딥러닝 지원 디바이스 및 딥러닝 지원 방법

Also Published As

Publication number Publication date
US11838835B2 (en) 2023-12-05
US20200219015A1 (en) 2020-07-09

Similar Documents

Publication Publication Date Title
KR20200093093A (ko) 분산 추론 시스템 및 이의 동작 방법
US8700931B2 (en) Method and system for managing power of a mobile device
CN104145510B (zh) 用于使网络连接的能量高效最大化的方法和设备
US20190174514A1 (en) Systems and methods for providing resource analysis for autonomous mobility on demand
JP4517866B2 (ja) センサデータ処理方式
WO2021217942A1 (zh) 基于边缘网关的水下自组织网络的任务迁移方法及系统
CN1930897A (zh) 用于与移动终端关联的短程通信收发器的直观能量管理的方法、设备和计算机程序产品
US11829910B1 (en) Systems and methods for matching transportation requests over extended batching windows
CN103404193A (zh) 调校数据传输以优化为通过无线网络的传输建立的连接
JP6720866B2 (ja) 情報処理装置、情報提示方法、およびプログラム
JP2019038048A (ja) ロボット調達装置、及びロボット調達方法
CN114330722B (zh) 推理实现方法、网络、电子设备及存储介质
US11790289B2 (en) Systems and methods for managing dynamic transportation networks using simulated future scenarios
JP2023162429A (ja) ネットワーク配達サービスを実行するコンピュータシステム
US11904717B2 (en) Intelligent preconditioning for high voltage electric vehicle batteries
CN105338008A (zh) 一种用于物联网的设备调度方法、设备与系统
Mu et al. Deep reinforcement learning based adaptive threshold multi-tasks offloading approach in mec
EP3373608B1 (en) Method and apparatus for acquiring resources
KR20190134907A (ko) 해양 데이터 수집 장치, 해상 IoT 기기 및 해양 데이터 전송 방법
US20200359265A1 (en) Methods and apparatus for coordination of network traffic between wireless network devices and computing platforms
US20220292414A1 (en) Dynamic invitation transmission and presentation mode determination for a network-based service
US20210342760A1 (en) Systems and methods for utilizing constrained modes of transportation
WO2022177665A1 (en) Distributed virtual data tank for cross service quota management
CN114253604A (zh) 基于ros2提高机器人计算性能的方法以及机器人
KR102537219B1 (ko) 배터리 중심의 모바일 로봇 귀소 알고리즘 제공방법