KR20230104408A - Method and system for optimizing training model for target device - Google Patents
Method and system for optimizing training model for target device Download PDFInfo
- Publication number
- KR20230104408A KR20230104408A KR1020210193801A KR20210193801A KR20230104408A KR 20230104408 A KR20230104408 A KR 20230104408A KR 1020210193801 A KR1020210193801 A KR 1020210193801A KR 20210193801 A KR20210193801 A KR 20210193801A KR 20230104408 A KR20230104408 A KR 20230104408A
- Authority
- KR
- South Korea
- Prior art keywords
- learning model
- target device
- inference
- learning
- data
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000012549 training Methods 0.000 title abstract description 5
- 230000006870 function Effects 0.000 claims abstract description 22
- 230000008569 process Effects 0.000 claims abstract description 16
- 238000012545 processing Methods 0.000 claims description 13
- 238000005457 optimization Methods 0.000 claims description 5
- 238000004891 communication Methods 0.000 description 27
- 238000013528 artificial neural network Methods 0.000 description 12
- 238000004590 computer program Methods 0.000 description 10
- 238000003860 storage Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000011161 development Methods 0.000 description 7
- 238000013473 artificial intelligence Methods 0.000 description 5
- 238000013136 deep learning model Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000010267 cellular communication Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- APTZNLHMIGJTEW-UHFFFAOYSA-N pyraflufen-ethyl Chemical compound C1=C(Cl)C(OCC(=O)OCC)=CC(C=2C(=C(OC(F)F)N(C)N=2)Cl)=C1F APTZNLHMIGJTEW-UHFFFAOYSA-N 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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
- 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
-
- 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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
- Feedback Control In General (AREA)
Abstract
Description
본 개시(disclosure)의 기술적 사상은 타겟 장치를 위한 학습 모델 최적화 방법 및 시스템에 관한 것이다.The technical idea of the present disclosure relates to a method and system for optimizing a learning model for a target device.
최근 들어, 보안, 운송, 제조, 의료, 자율주행, 스마트 홈 등의 분야에 적용되는 컴퓨팅 장치, 특히, 임베디드 디바이스에 인공지능(AI) 기반의 기능 추가가 요구되고 있으나, 이러한 임베디드 디바이스 등에 인공 지능을 통해 형성된 딥러닝 모델을 효율적으로 탑재하기 위한 응용 프로그램 등의 개발 도구에 대한 개발은 아직까지는 미흡한 실정이다.Recently, artificial intelligence (AI)-based functions have been required to be added to computing devices, especially embedded devices, which are applied to fields such as security, transportation, manufacturing, medical care, autonomous driving, and smart home. The development of development tools such as application programs for efficiently loading deep learning models formed through this is still insufficient.
임베디드 디바이스 등을 위한 AI 기반 프로그램의 개발 효율성은 여전히 낮으며, 관련 분야의 발전을 저해하는 가장 큰 병목 현상으로 평가되고 있다. 특히, 기존에 도입된 AI용 개발 도구는 주로 서버 또는 클라우드 플랫폼 개발용으로 설계되어 있으며, IoT 장치 등의 임베디드 디바이스에 맞는 AI 개발 도구는 미비한 상황이다.The development efficiency of AI-based programs for embedded devices is still low, and it is evaluated as the biggest bottleneck hindering the development of related fields. In particular, previously introduced AI development tools are mainly designed for server or cloud platform development, and AI development tools suitable for embedded devices such as IoT devices are lacking.
더하여, 다양한 구동 환경을 가지는 임베디드 디바이스에 딥러닝 모델을 효과적으로 탑재하기 위해서는 다양한 최적화 과정이 필요로 하나, 종래의 도입된 기술만으로는 딥러닝 모델에 대한 최적의 동작을 보증하지 못한다는 한계를 가지고 있었다.In addition, various optimization processes are required to effectively mount deep learning models in embedded devices with various operating environments, but the conventionally introduced technology alone has limitations in that optimal operation of deep learning models cannot be guaranteed.
본 개시의 기술적 사상에 따른 타겟 장치를 위한 학습 모델 최적화 방법 및 시스템이 이루고자 하는 기술적 과제는, 타겟 장치의 다양한 구동 환경에 적합하게 학습 모델을 최적화하여 탑재할 수 있는 방법 및 그 시스템을 제공하는 데에 있다.A technical problem to be achieved by a learning model optimization method and system for a target device according to the technical idea of the present disclosure is to provide a method and system capable of optimizing and loading a learning model suitable for various driving environments of a target device. is in
본 개시의 기술적 사상에 따른 방법 및 시스템이 이루고자 하는 기술적 과제는 이상에서 언급한 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제는 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.Technical tasks to be achieved by the method and system according to the technical idea of the present disclosure are not limited to the tasks mentioned above, and other tasks not mentioned will be clearly understood by those skilled in the art from the following description.
본 개시의 기술적 사상에 의한 일 양태에 따르면, 타겟 장치를 위한 학습 모델 최적화 방법은, 학습 모델 생성 장치가 소정의 프레임 워크에 기반한 네트워크 함수를 학습 데이터를 통해 학습시켜 학습 모델을 생성하는 단계; 상기 학습 모델 생성 장치가 상기 학습 모델을 상이한 복수의 구동 환경 또는 프레임 워크에 대응하는 복수의 추론 엔진에 적용 가능하도록 범용 인코딩 모듈을 통해 인코딩하는 단계; 상기 학습 모델 생성 장치가 상기 인코딩된 학습 모델을 상기 타겟 장치에 전달하는 단계; 상기 타겟 장치가 적용된 공정과 관련되는 현장 데이터를 획득하는 단계; 및 상기 타겟 장치가 상기 현장 데이터를 이용하여 상기 추론 엔진 중 상기 타겟 장치의 구동 환경에 적합한 추론 엔진을 통해 상기 학습 모델에 기반한 추론을 수행하는 단계를 포함할 수 있다.According to one aspect of the technical concept of the present disclosure, a method for optimizing a learning model for a target device includes generating a learning model by learning a network function based on a predetermined framework through learning data by a learning model generating device; encoding, by the learning model generation device, the learning model through a general-purpose encoding module so as to be applicable to a plurality of inference engines corresponding to a plurality of different operating environments or frameworks; transmitting, by the learning model generating device, the encoded learning model to the target device; obtaining on-site data related to a process to which the target device is applied; and performing, by the target device, inference based on the learning model through an inference engine suitable for a driving environment of the target device among the inference engines using the field data.
예시적인 실시예에 따르면, 상기 구동 환경은 상기 타겟 장치의 운영체제 및 하드웨어 중 적어도 하나에 기초하여 구분될 수 있다.According to an exemplary embodiment, the driving environment may be classified based on at least one of an operating system and hardware of the target device.
예시적인 실시예에 따르면, 상기 하드웨어에 의해 구분되는 상기 구동 환경은, 범용 CPU(Central Processing Unit) 환경, 범용 GPU(Graphics Processing Unit) 환경 및 임베디드 환경 중 적어도 하나를 포함할 수 있다.According to an exemplary embodiment, the driving environment divided by the hardware may include at least one of a general-purpose CPU (Central Processing Unit) environment, a general-purpose GPU (Graphics Processing Unit) environment, and an embedded environment.
예시적인 실시예에 따르면, 상기 학습 모델에 입력되는 상기 현장 데이터와 상기 학습 모델의 출력 데이터는 적어도 하나의 버퍼를 통해 소정의 자료 구조로 변경될 수 있다.According to an exemplary embodiment, the field data input to the learning model and the output data of the learning model may be changed into a predetermined data structure through at least one buffer.
예시적인 실시예에 따르면, 상기 학습 모델 생성 장치가 상기 현장 데이터 및 상기 출력 데이터를 기초로 상기 학습 모델을 재학습시키는 단계를 더 포함할 수 있다.According to an exemplary embodiment, the learning model generation device may further include re-learning the learning model based on the field data and the output data.
본 개시의 기술적 사상에 의한 일 양태에 따르면, 타겟 장치를 위한 학습 모델 최적화 시스템은, 소정의 프레임 워크에 기반한 네트워크 함수를 학습 데이터를 통해 학습시켜 학습 모델을 생성하고, 상기 학습 모델 생성 장치가 상기 학습 모델을 상이한 복수의 구동 환경 또는 프레임 워크에 대응하는 복수의 추론 엔진에 적용 가능하도록 범용 인코딩 모듈을 통해 인코딩하며, 상기 학습 모델 생성 장치가 상기 인코딩된 학습 모델을 상기 타겟 장치에 전달하는 학습 모델 생성 장치; 및 공정과 관련되는 현장 데이터를 획득하고, 상기 현장 데이터를 이용하여 상기 추론 엔진 중 구동 환경에 적합한 추론 엔진을 통해 상기 학습 모델에 기반한 추론을 수행하는 상기 타겟 장치를 포함할 수 있다.According to one aspect of the technical concept of the present disclosure, a learning model optimization system for a target device generates a learning model by learning a network function based on a predetermined framework through learning data, and the learning model generating device A learning model in which a learning model is encoded through a general-purpose encoding module so as to be applicable to a plurality of inference engines corresponding to a plurality of different operating environments or frameworks, and the learning model generating device transmits the encoded learning model to the target device. generating device; and the target device that obtains field data related to a process and performs inference based on the learning model through an inference engine suitable for a driving environment among the inference engines using the field data.
본 개시의 기술적 사상에 의한 실시예들에 따르면, 학습 모델 생성 장치(서버)에서 생성된 학습모델을 타겟 장치의 다양한 구동 환경에 적합하게 변환 및 구동시킬 수 있다.According to embodiments according to the technical concept of the present disclosure, a learning model generated in a learning model generating device (server) can be converted and driven to be suitable for various driving environments of a target device.
본 개시의 기술적 사상에 따른 방법 및 이를 위한 시스템이 얻을 수 있는 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.Effects obtainable by the method and the system for the method according to the technical concept of the present disclosure are not limited to the above-mentioned effects, and other effects not mentioned above are based on common knowledge in the art to which the present disclosure belongs from the description below. It will be clearly understandable to those who have it.
본 개시에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 개시의 실시예에 따른 타겟 장치를 위한 학습 모델 최적화 시스템을 간략히 도시한 블록도이다.
도 2는 본 개시의 실시예에 따른 타겟 장치를 위한 학습 모델 최적화 방법을 설명하기 위한 흐름도이다.
도 3은 본 개시의 실시예에 따른 학습 모델 생성 장치의 학습 모델 생성 모듈과 타겟 장치의 추론 모듈의 구성을 개념적으로 도시한 블록도이다.
도 4는 본 개시의 실시예에 따른 타겟 장치를 위한 학습 모델 최적화 방법을 설명하기 위한 흐름도이다.
도 5는 본 개시의 실시예에 따른 학습 모델 생성 장치의 구성을 간략히 도시한 블록도이다.
도 6은 본 개시의 실시예에 따른 타겟 장치의 구성을 간략히 도시한 블록도이다.A brief description of each figure is provided in order to more fully understand the figures cited in this disclosure.
1 is a block diagram schematically illustrating a system for optimizing a learning model for a target device according to an embodiment of the present disclosure.
2 is a flowchart illustrating a method for optimizing a learning model for a target device according to an embodiment of the present disclosure.
3 is a block diagram conceptually illustrating configurations of a learning model generating module of a learning model generating device and an inference module of a target device according to an embodiment of the present disclosure.
4 is a flowchart illustrating a method for optimizing a learning model for a target device according to an embodiment of the present disclosure.
5 is a block diagram briefly illustrating the configuration of an apparatus for generating a learning model according to an embodiment of the present disclosure.
6 is a block diagram briefly illustrating the configuration of a target device according to an embodiment of the present disclosure.
본 개시의 기술적 사상은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 이를 상세히 설명하고자 한다. 그러나, 이는 본 개시의 기술적 사상을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 개시의 기술적 사상의 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Since the technical spirit of the present disclosure may be subject to various changes and may have various embodiments, specific embodiments are illustrated in the drawings and described in detail. However, this is not intended to limit the technical spirit of the present disclosure to specific embodiments, and should be understood to include all changes, equivalents, or substitutes included in the scope of the technical spirit of the present disclosure.
본 개시의 기술적 사상을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 본 개시의 설명 과정에서 이용되는 숫자(예를 들어, 제1, 제2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.In describing the technical idea of the present disclosure, if it is determined that a detailed description of a related known technology may unnecessarily obscure the subject matter of the present disclosure, the detailed description will be omitted. In addition, numbers (eg, first, second, etc.) used in the description process of the present disclosure are only identifiers for distinguishing one component from another component.
또한, 본 개시에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.In addition, in the present disclosure, when one component is referred to as "connected" or "connected" to another component, the one component may be directly connected or directly connected to the other component, but in particular Unless otherwise described, it should be understood that they may be connected or connected via another component in the middle.
또한, 본 개시에 기재된 "~부", "~기", "~자", "~모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 프로세서(Processor), 마이크로 프로세서(Micro Processer), 마이크로 컨트롤러(Micro Controller), CPU(Central Processing Unit), GPU(Graphics Processing Unit), APU(Accelerate Processor Unit), DSP(Digital Signal Processor), ASIC(Application Specific Integrated Circuit), FPGA(Field Programmable Gate Array) 등과 같은 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.In addition, terms such as "~ unit", "~ group", "~ character", and "~ module" described in the present disclosure mean a unit that processes at least one function or operation, which includes a processor, a micro Processor (Micro Processor), Micro Controller, CPU (Central Processing Unit), GPU (Graphics Processing Unit), APU (Accelerate Processor Unit), DSP (Digital Signal Processor), ASIC (Application Specific Integrated Circuit), FPGA (Field Programmable Gate Array) may be implemented by hardware or software or a combination of hardware and software.
그리고 본 개시에서의 구성부들에 대한 구분은 각 구성부가 담당하는 주기능 별로 구분한 것에 불과함을 명확히 하고자 한다. 즉, 이하에서 설명할 2개 이상의 구성부가 하나의 구성부로 합쳐지거나 또는 하나의 구성부가 보다 세분화된 기능별로 2개 이상으로 분화되어 구비될 수도 있다. 그리고 이하에서 설명할 구성부 각각은 자신이 담당하는 주기능 이외에도 다른 구성부가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성부 각각이 담당하는 주기능 중 일부 기능이 다른 구성부에 의해 전담되어 수행될 수도 있음은 물론이다.In addition, it is intended to make it clear that the classification of components in the present disclosure is merely a classification for each main function in charge of each component. That is, two or more components to be described below may be combined into one component, or one component may be divided into two or more for each more subdivided function. In addition, each component to be described below may additionally perform some or all of the functions of other components in addition to its main function, and some of the main functions of each component may be performed by other components. Of course, it may be dedicated and performed by .
본 개시의 실시예에 따른 방법은 연산 능력을 구비한 개인용 컴퓨터(Personal Computer), 워크스테이션(work station), 서버용 컴퓨터 장치 등에서 수행되거나 이를 위한 별도의 장치에서 수행될 수 있다. The method according to an embodiment of the present disclosure may be performed in a personal computer having computing capability, a workstation, a computer device for a server, or a separate device for this purpose.
또한, 방법은 하나 이상의 연산 장치들에서 수행될 수도 있다. 예를 들어, 본 개시의 실시예에 따른 방법 중 적어도 하나 이상의 단계들은 클라이언트 디바이스에서, 다른 단계들은 서버 디바이스에서 수행될 수 있다. 이러한 경우, 클라이언트 디바이스와 서버 디바이스는 네트워크로 연결되어 연산 결과를 송수신할 수 있다. 또는, 방법은 분산 컴퓨팅 기술에 의해 수행될 수도 있다.Also, the method may be performed on one or more computing devices. For example, at least one or more steps of a method according to an embodiment of the present disclosure may be performed by a client device and other steps may be performed by a server device. In this case, the client device and the server device may be connected through a network to transmit and receive calculation results. Alternatively, the method may be performed by distributed computing technology.
또한, 본 명세서에 걸쳐, 네트워크 함수는 신경망 네트워크 및/또는 뉴럴 네트워크(neural network)와 동일한 의미로 사용될 수 있다. 여기서, 뉴럴 네트워크(신경망)는 일반적으로 노드라 지칭될 수 있는 상호 연결된 계산 단위들의 집합으로 구성될 수 있고, 이러한 노드들은 뉴런으로 지칭될 수 있다. 뉴럴 네트워크는 일반적으로 복수의 노드들을 포함하여 구성된다. 뉴럴 네트워크를 구성하는 노드들은 하나 이상의 링크에 의해 상호 연결될 수 있다.Also, throughout this specification, a network function may be used interchangeably with a neural network and/or a neural network. Here, a neural network (neural network) may be composed of a set of interconnected computational units, which may be generally referred to as nodes, and these nodes may be referred to as neurons. A neural network is generally composed of a plurality of nodes. Nodes constituting a neural network may be interconnected by one or more links.
뉴럴 네트워크를 구성하는 노드들 중 일부는 최초 입력 노드로부터의 거리들에 기초하여 하나의 레이어(layer)를 구성할 수 있다. 예를 들어, 최초 입력 노드로부터 거리가 n인 노드들의 집합은 n 레이어를 구성할 수 있다.Some of the nodes constituting the neural network may form one layer based on distances from the first input node. For example, a set of nodes having a distance of n from the first input node may constitute n layers.
본 명세서에서 설명하는 뉴럴 네트워크는 입력 레이어와 출력 레이어 외에 복수의 히든 레이어를 포함하는 딥 뉴럴 네트워크(Deep Neural Network, DNN)를 포함할 수 있다.The neural network described in this specification may include a deep neural network (DNN) including a plurality of hidden layers in addition to an input layer and an output layer.
이하, 본 개시의 실시예들을 차례로 상세히 설명한다.Hereinafter, embodiments of the present disclosure will be described in detail in turn.
도 1은 본 개시의 실시예에 따른 타겟 장치를 위한 학습 모델 최적화 시스템을 간략히 도시한 블록도이다.1 is a block diagram schematically illustrating a system for optimizing a learning model for a target device according to an embodiment of the present disclosure.
시스템은 학습 모델 생성 장치(110)와 타겟 장치(120)를 포함할 수 있다.The system may include a learning
실시예에서, 학습 모델 생성 장치(110)는 클라우드 서버일 수 있다.In an embodiment, the learning
학습 모델 생성 장치(110)는 학습 모델을 생성하여, 타겟 장치(120)로 전달할 수 있다. 이를 위해, 학습 모델 생성 장치(110)는 학습 모델 생성 모듈을 포함할 수 있다. 학습 모델 생성 모듈은 소프트웨어 모듈일 수 있다.The learning
구체적으로, 학습 모델 생성 모듈은 소정의 프레임 워크(예를 들어, 텐서플로)에 기반하여 네트워크 함수를 생성하고, 외부로부터 학습 데이터가 입력되면, 이를 기초로 네트워크 함수에 대한 학습을 수행하며, 학습의 결과로서 학습 모델을 생성할 수 있다. 또한, 학습 모델 생성 모듈은 범용 인코딩 모듈을 통해 생성된 학습 모델을 복수의 구동 환경 및/또는 프레임 워크에서 구동 가능한 포맷으로 인코딩할 수 있다. 학습 모델은 인코딩된 파일 형태로 타겟 장치(120)로 전달될 수 있다.Specifically, the learning model generation module creates a network function based on a predetermined framework (eg, TensorFlow), and when learning data is input from the outside, performs learning on the network function based on this, and learning As a result, a learning model can be created. Also, the learning model creation module may encode the learning model generated through the general-purpose encoding module into a format that can be run in a plurality of driving environments and/or frameworks. The learning model may be delivered to the
또한, 실시예에서, 학습 모델 생성 장치(110)는 타겟 장치(120)로부터 전달되는 현장 데이터 및 이에 기초로 학습 모델이 출력한 출력 데이터를 이용하여 학습 모델을 재학습시킬 수 있다.Also, in an embodiment, the learning
타겟 장치(120)는 학습 모델을 디바이스 상에 구현하려는 대상 장치를 지칭하는 것으로서, 서버, PC, 스마트폰(Smartphone), 스마트패드(SmartPad), 태블릿 PC 등과 같은 모든 종류의 컴퓨팅 장치를 포함할 수 있다. 또한, 실시예에서, 타겟 장치(120)는 임베디드 환경에서 구동하는 IoT 단말, 엣지 디바이스, 임베디드 보드 등을 더 포함할 수 있다.The
타겟 장치(120)는 학습 모델 생성 장치(110)로부터 인코딩된 학습 모델과 추론 모듈을 생성하기 위한 적어도 하나의 실행 코드, 프로그램, 라이브러리 등을 수신하고, 생성된 추론 모듈을 통해 학습 모델을 구동할 수 있다. 이때, 추론 모듈은 소프트웨어 모듈일 수 있다.The
추론 모듈은 상이한 구동 환경에 대응하는 복수의 추론 엔진과 적어도 하나의 버퍼(입력/출력 버퍼)를 포함할 수 있다. 추론 모듈은 타겟 장치(120)의 운영체계 및/또는 하드웨어 등의 구동 환경에 적합한 추론 엔진을 통해 학습 모델을 구동하고, 타겟 장치(120)로 획득되는 현장 데이터를 이용하여 추론을 수행할 수 있다.The inference module may include a plurality of inference engines corresponding to different driving environments and at least one buffer (input/output buffer). The inference module may drive a learning model through an inference engine suitable for a driving environment such as an operating system and/or hardware of the
이때, 학습 모델로 입력되는 현장 데이터와 학습 모델의 출력 데이터는 버퍼를 통해 소정의 자료 구조로 변환될 수 있다.At this time, field data input to the learning model and output data of the learning model may be converted into a predetermined data structure through a buffer.
도 2는 본 개시의 실시예에 따른 타겟 장치를 위한 학습 모델 최적화 방법을 설명하기 위한 흐름도이고, 도 3은 본 개시의 실시예에 따른 학습 모델 생성 장치의 학습 모델 생성 모듈과 타겟 장치의 추론 모듈의 구성을 개념적으로 도시한 블록도이다.2 is a flowchart illustrating a method for optimizing a learning model for a target device according to an embodiment of the present disclosure, and FIG. 3 is a learning model generation module of a learning model generation device and an inference module of the target device according to an embodiment of the present disclosure. It is a block diagram conceptually showing the configuration of
S210 단계에서, 학습 모델 생성 장치(110)는 학습 모델 생성 모듈(310)의 네트워크 함수(311)에 학습 데이터를 입력하여 학습을 수행함으로써, 학습 모델(312)을 생성할 수 있다. In step S210 , the learning
이때, 네트워크 함수(311)는 소정의 프레임 워크에 기반하여 생성된 것일 수 있다. 프레임 워크는 검증된 복수의 라이브러리와 모듈, 사전 학습이 완료된 알고리즘 등을 개발자가 용이하게 사용할 있도록 구성한 일종의 패키지를 지칭하는 것으로서, 예를 들어, 텐서플로(Tensorflow), 케라스(Keras), 파이토치(Pytorch), 카페(Caffe), MX넷(Mxnet) 등을 포함할 수 있으나, 이에 한정하는 것은 아니며, 네트워크 함수(311)의 생성을 위하여 다양한 프레임 워크가 이용될 수 있다.In this case, the
실시예에서, 학습 모델 생성 모듈(310)은 텐서플로에 기반한 네트워크 함수를 이용하여 학습 모델(312)을 생성할 수 있다.In an embodiment, the learning
실시예에서, 학습 데이터는 복수의 이미지일 수 있다. 예를 들어, 학습 데이터는 제품의 생산, 제조, 가공 등과 같은 임의의 공정에서 획득(또는, 촬영)된 공정 이미지일 수 있으며, 검출 또는 판독하고자 하는 정답(레이블, label)에 대한 정보를 포함할 수 있다.In an embodiment, the training data may be a plurality of images. For example, the learning data may be a process image obtained (or photographed) in an arbitrary process such as production, manufacturing, processing, etc. of a product, and may include information on a correct answer (label) to be detected or read. can
S220 단계에서, 학습 모델 생성 장치(110)는 학습 모델 생성 모듈(310)의 범용 인코딩 모듈(313)을 통해 학습 모델(312)을 인코딩할 수 있다. S220 단계를 통해, 학습 모델(312)은 복수의 상이한 구동 환경 및/또는 프레임 워크에서 구동 가능한 포맷으로 변환될 수 있다.In step S220 , the learning
실시예에서, 인코딩 모듈(313)은 학습 모델(312)을 NNEF(Neural Network Exchange Format)나 ONNX(Open Neural Network Exchange) 등과 같은 신경망 데이터 포맷으로 변환할 수 있으나, 이에 한정하는 것은 아니다.In an embodiment, the
S230 단계에서, 학습 모델 생성 장치(110)는 인코딩된 학습 모델(312)을 타겟 장치(120)에 전달할 수 있다.In step S230 , the learning
여기서, 타겟 장치(120)는 공정을 제어하거나, 공정 환경 내에서 특정한 데이터를 측정 또는 획득하여 이를 기초로 공정과 관련된 진단 또는 예측을 수행하기 위하여 구비된 것으로서, 학습 모델을 구동하여 추론을 수행하기 위한 추론 모듈(320)을 포함할 수 있다.Here, the
S240 단계에서, 타겟 장치(120)는 공정과 관련된 현장 데이터를 획득할 수 있다. 예를 들어, 타겟 장치(120)는 일 구성으로 구비되거나, 이와 유, 무선 통신을 통해 연결된 센싱 장치(적어도 하나의 센서, 카메라 등)으로부터 현장 데이터를 획득할 수 있다.In step S240, the
실시예에서, 현장 데이터는 적어도 하나의 이미지(예를 들어, 공정 이미지)일 수 있다.In an embodiment, the field data may be at least one image (eg, process image).
S250 단계에서, 타겟 장치(120)는 추론 모듈(320)을 통해 현장 데이터를 이용하여 추론을 수행할 수 있다.In step S250, the
실시예에서, 추론 모듈(320)은 각각 상이한 구동 환경에 적합한 복수의 추론 엔진(321)을 포함하며, 탑재된 복수의 추론 엔진(321) 중 타겟 장치(120)의 구동 환경에 적합한 추론 엔진(321)을 통해 학습 모델(312)을 구동함으로써, 현장 데이터를 기초로 한 추론을 수행할 수 있다.In an embodiment, the
여기서, 구동 환경은 타겟 장치(120)의 운영체제(Operation System) 및 하드웨어(또는, 하드웨어 아키텍처) 중 적어도 하나에 기초하여 구분될 수 있다.Here, the driving environment may be classified based on at least one of an operating system (Operation System) and hardware (or hardware architecture) of the
실시예에서, 운영체제에 의해 구분되는 구동 환경은, 리룩스(linux) 환경 및 윈도우(window) 환경 중 적어도 하나를 포함할 수 있다. 다만, 이는 예시적인 것으로서, IOS, Android, Mac OS 등 다양한 운영체제에 따라 상이한 구동 환경이 정의될 수 있다.In an embodiment, the driving environment classified by operating system may include at least one of a Linux environment and a window environment. However, this is an example, and different driving environments may be defined according to various operating systems such as IOS, Android, and Mac OS.
또한, 실시예에서, 하드웨어에 의해 구분되는 구동 환경은, 범용 CPU(중앙 처리 장치, Central Processing Unit) 환경, 범용 GPU(그래픽 처리 장치, Graphics Processing Unit) 환경 및 임베디드 환경 중 적어도 하나를 포함할 수 있다. 다만, 이는 예시적인 것으로서, Nvidia, Jetson, Raspberry, ARM Cortex-A Family, Qcam Family, Hisilicon Family, X86-CPU, X86-GPU 등 다양한 하드웨어 아키텍처에 따라 상이한 구동 환경이 정의될 수 있다.Further, in an embodiment, the driving environment classified by hardware may include at least one of a general-purpose CPU (Central Processing Unit) environment, a general-purpose GPU (Graphics Processing Unit) environment, and an embedded environment. there is. However, this is an example, and different driving environments may be defined according to various hardware architectures such as Nvidia, Jetson, Raspberry, ARM Cortex-A Family, Qcam Family, Hisilicon Family, X86-CPU, and X86-GPU.
실시예에서, 추론 엔진(321)은 범용 GPU 환경 및/또는 임베디드 환경에 적합한 제 1 추론 엔진과 범용 CPU 환경에 적합한 제 2 추론 엔진을 포함할 수 있다.In an embodiment, the
실시예에서, 추론 엔진(321)을 통해 구동되는 학습 모델(312)의 입력 데이터와 출력 데이터는 적어도 하나의 버퍼(322)를 통해 소정의 자료 구조로 변경될 수 있다.In an embodiment, input data and output data of the
예를 들어, 버퍼(322)는 입력 버퍼와 출력 버퍼를 포함할 수 있으며, 타겟 장치(120)는 현장 데이터를 입력 버퍼에 할당하여, 학습 모델(312)의 구동에 적합한 자료 구조로 변경할 수 있으며, 학습 모델(312)의 추론 결과에 따라 생성된 출력 데이터를 출력 버퍼에 할당하여, 지정된 자료 구조로 변경할 수 있다. 자료 구조는 타겟 장치(120)가 해석 가능한 프로그램 언어에 대응하는 구조일 수 있다.For example, the
도 4는 본 개시의 실시예에 따른 타겟 장치를 위한 학습 모델 최적화 방법을 설명하기 위한 흐름도이다.4 is a flowchart illustrating a method for optimizing a learning model for a target device according to an embodiment of the present disclosure.
방법(400)에서 S410 단계 내지 S450 단계는 도 2를 참조하여 상술한 방법(200)의 S210 단계 내지 S250 단계와 동일하므로, 중복되는 설명은 생략하기로 한다.Steps S410 to S450 in the
방법(400)은 학습 모델(313)을 재학습시키는 단계를 더 포함할 수 있다.
구체적으로, S460 단계에서, 타겟 장치(120)는 현장 데이터와 현장 데이터를 입력하여 추론 엔진(321) 및 학습 모델(313)을 통해 획득된 출력 데이터를 학습 모델 생성 장치(110)에 전달할 수 있으며, 학습 모델 생성 장치(110)는 수신한 현장 데이터 및 출력 데이터에 기초하여 학습 모델(313)을 재학습시킴으로써, 학습 모델(313)을 갱신할 수 있다.Specifically, in step S460, the
갱신된 학습 모델(313)은 범용 인코딩 모듈(313)을 통해 인코딩되어 타겟 장치(120)로 전송될 수 있다.The updated
실시예에서, S460 단계는, 일정한 시간 간격에 따라 주기적으로 수행될 수 있다.In an embodiment, step S460 may be performed periodically according to a predetermined time interval.
도 5는 본 개시의 실시예에 따른 학습 모델 생성 장치의 구성을 간략히 도시한 블록도이다.5 is a block diagram briefly illustrating the configuration of an apparatus for generating a learning model according to an embodiment of the present disclosure.
통신부(510)는 외부와 데이터를 송, 수신할 수 있다. 통신부(510)는 유무선 통신부를 포함할 수 있다. 통신부(510)가 유선 통신부를 포함하는 경우, 통신부(510)는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 부가가치 통신망(Value Added Network; VAN), 이동 통신망(mobile radio communication network), 위성 통신망 및 이들의 상호 조합을 통하여 통신을 하게 하는 하나 이상의 구성요소를 포함할 수 있다. 또한, 통신부(510)가 무선 통신부를 포함하는 경우, 통신부(510)는 셀룰러 통신, 무선랜(예를 들어, 와이-파이(Wi-Fi)) 등을 이용하여 무선으로 데이터 또는 신호를 송수신할 수 있다. 실시예에서, 통신부는 프로세서(540)의 제어에 의해 외부 장치 또는 외부 서버와 데이터 또는 신호를 송수신할 수 있다. The communication unit 510 can transmit and receive data with the outside. The communication unit 510 may include a wired/wireless communication unit. When the communication unit 510 includes a wired communication unit, the communication unit 510 may include a local area network (LAN), a wide area network (WAN), a value added network (VAN), and a mobile communication network ( mobile radio communication network), a satellite communication network, and one or more components that enable communication through a mutual combination thereof. In addition, when the communication unit 510 includes a wireless communication unit, the communication unit 510 transmits and receives data or signals wirelessly using cellular communication, a wireless LAN (eg, Wi-Fi), and the like. can In an embodiment, the communication unit may transmit/receive data or signals with an external device or an external server under the control of the processor 540 .
입력부(520)는 외부의 조작을 통해 다양한 사용자 명령을 수신할 수 있다. 이를 위해, 입력부(520)는 하나 이상의 입력 장치를 포함하거나 연결할 수 있다. 예를 들어, 입력부(520)는 키패드, 마우스 등 다양한 입력을 위한 인터페이스와 연결되어 사용자 명령을 수신할 수 있다. 이를 위해, 입력부(520)는 USB 포트 뿐만 아니라 선더볼트 등의 인터페이스를 포함할 수도 있다. 또한, 입력부(520)는 터치스크린, 버튼 등의 다양한 입력 장치를 포함하거나 이들과 결합하여 외부의 사용자 명령을 수신할 수 있다.The input unit 520 may receive various user commands through external manipulation. To this end, the input unit 520 may include or connect one or more input devices. For example, the input unit 520 may be connected to various input interfaces such as a keypad and a mouse to receive user commands. To this end, the input unit 520 may include an interface such as a thunderbolt as well as a USB port. In addition, the input unit 520 may receive an external user command by including or combining various input devices such as a touch screen and buttons.
메모리(530)는 프로세서(540)의 동작을 위한 프로그램 및/또는 프로그램 명령을 저장할 수 있고, 입/출력되는 데이터들을 임시 또는 영구 저장할 수 있다. 메모리(530)는 플래시 메모리(flash memory) 타입, 하드디스크(hard disk) 타입, 멀티미디어 카드 마이크로(multimedia card micro) 타입, 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM), SRAM, 롬(ROM), EEPROM, PROM, 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.The memory 530 may store programs and/or program commands for operation of the processor 540 and may temporarily or permanently store input/output data. The memory 530 is a flash memory type, a hard disk type, a multimedia card micro type, a card type memory (eg SD or XD memory, etc.), RAM , SRAM, ROM (ROM), EEPROM, PROM, magnetic memory, a magnetic disk, it may include at least one type of storage medium.
또한, 메모리(530)는 다양한 네트워크 함수, 알고리즘, 라이브러리 등을 저장할 수 있으며, 장치(500)를 구동하고 제어하기 위한 다양한 데이터, 프로그램(하나 이상이 인스트럭션들), 어플리케이션, 소프트웨어, 명령, 코드 등을 저장할 수 있다.In addition, the memory 530 may store various network functions, algorithms, libraries, etc., various data, programs (one or more instructions), applications, software, commands, codes, etc. for driving and controlling the
프로세서(540)는 적어도 하나의 프로그램 및/또는 인스트럭션을 실행하여 장치(500)의 전반적인 동작을 제어할 수 있다. 프로세서(540)는 메모리(530)에 저장되는 하나 이상의 프로그램들을 실행할 수 있다. 프로세서(540)는 중앙 처리 장치(Central Processing Unit, CPU), 그래픽 처리 장치(Graphics Processing Unit, GPU) 또는 본 개시의 기술적 사상에 따른 방법들이 수행되는 전용의 프로세서를 의미할 수 있다.The processor 540 may control the overall operation of the
실시예에서, 프로세서(540)는 적어도 하나의 프로그램 및/또는 인스트럭션에 기초하여 학습 모델 생성 모듈(310)을 생성할 수 있다. 학습 모델 생성 모듈(310)은 소프트웨어 모듈일 수 있다.In an embodiment, the processor 540 may generate the learning
실시예에서, 프로세서(540)는 소정의 프레임 워크에 기반한 네트워크 함수를 학습 데이터를 통해 학습시켜 학습 모델을 생성하고, 상기 학습 모델 생성 장치가 상기 학습 모델을 상이한 복수의 구동 환경 또는 프레임 워크에 대응하는 복수의 추론 엔진에 적용 가능하도록 범용 인코딩 모듈을 통해 인코딩하며, 상기 인코딩된 학습 모델을 상기 타겟 장치에 전달할 수 있다.In an embodiment, the processor 540 generates a learning model by learning a network function based on a predetermined framework through training data, and the learning model generating device corresponds to a plurality of different driving environments or frameworks. encoding through a general-purpose encoding module so as to be applicable to a plurality of inference engines, and the encoded learning model may be delivered to the target device.
실시예에서, 프로세서(540)는 타겟 장치로부터 수신한 현장 데이터와 추론 엔진 및 학습 모델의 출력 데이터를 기초로 상기 학습 모델을 재학습시킬 수 있다.In an embodiment, the processor 540 may re-learn the learning model based on field data received from the target device and output data of the inference engine and the learning model.
도 6은 본 개시의 실시예에 따른 타겟 장치의 구성을 간략히 도시한 블록도이다.6 is a block diagram briefly illustrating the configuration of a target device according to an embodiment of the present disclosure.
통신부(610)는 외부로부터 데이터를 수신할 수 있다. 통신부(610)는 유무선 통신부를 포함할 수 있다. 통신부(610)가 유선 통신부를 포함하는 경우, 통신부(610)는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 부가가치 통신망(Value Added Network; VAN), 이동 통신망(mobile radio communication network), 위성 통신망 및 이들의 상호 조합을 통하여 통신을 하게 하는 하나 이상의 구성요소를 포함할 수 있다. 또한, 통신부(610)가 무선 통신부를 포함하는 경우, 통신부(610)는 셀룰러 통신, 무선랜(예를 들어, 와이-파이(Wi-Fi)) 등을 이용하여 무선으로 데이터 또는 신호를 송수신할 수 있다. 실시예에서, 통신부는 프로세서(640)의 제어에 의해 외부 장치 또는 외부 서버와 데이터 또는 신호를 송수신할 수 있다. The communication unit 610 may receive data from the outside. The communication unit 610 may include a wired/wireless communication unit. When the communication unit 610 includes a wired communication unit, the communication unit 610 may include a local area network (LAN), a wide area network (WAN), a value added network (VAN), and a mobile communication network ( mobile radio communication network), a satellite communication network, and one or more components that enable communication through a mutual combination thereof. In addition, when the communication unit 610 includes a wireless communication unit, the communication unit 610 transmits and receives data or signals wirelessly using cellular communication, a wireless LAN (eg, Wi-Fi), and the like. can In an embodiment, the communication unit may transmit/receive data or signals with an external device or an external server under the control of the processor 640 .
입력부(620)는 외부의 조작을 통해 다양한 사용자 명령을 수신할 수 있다. 이를 위해, 입력부(620)는 하나 이상의 입력 장치를 포함하거나 연결할 수 있다. 예를 들어, 입력부(620)는 키패드, 마우스 등 다양한 입력을 위한 인터페이스와 연결되어 사용자 명령을 수신할 수 있다. 이를 위해, 입력부(620)는 USB 포트 뿐만 아니라 선더볼트 등의 인터페이스를 포함할 수도 있다. 또한, 입력부(620)는 터치스크린, 버튼 등의 다양한 입력 장치를 포함하거나 이들과 결합하여 외부의 사용자 명령을 수신할 수 있다.The input unit 620 may receive various user commands through external manipulation. To this end, the input unit 620 may include or connect one or more input devices. For example, the input unit 620 may receive user commands by being connected to various input interfaces such as a keypad and a mouse. To this end, the input unit 620 may include an interface such as a thunderbolt as well as a USB port. In addition, the input unit 620 may receive an external user command by including or combining various input devices such as a touch screen and buttons.
메모리(630)는 프로세서(640)의 동작을 위한 프로그램 및/또는 프로그램 명령을 저장할 수 있고, 입/출력되는 데이터들을 임시 또는 영구 저장할 수 있다. 메모리(630)는 플래시 메모리(flash memory) 타입, 하드디스크(hard disk) 타입, 멀티미디어 카드 마이크로(multimedia card micro) 타입, 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM), SRAM, 롬(ROM), EEPROM, PROM, 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.The memory 630 may store programs and/or program commands for operation of the processor 640 and may temporarily or permanently store input/output data. The memory 630 is a flash memory type, a hard disk type, a multimedia card micro type, a card type memory (eg SD or XD memory, etc.), RAM , SRAM, ROM (ROM), EEPROM, PROM, magnetic memory, a magnetic disk, it may include at least one type of storage medium.
또한, 메모리(630)는 다양한 네트워크 함수, 알고리즘, 라이브러리 등을 저장할 수 있으며, 장치(600)를 구동하고 제어하기 위한 다양한 데이터, 프로그램(하나 이상이 인스트럭션들), 어플리케이션, 소프트웨어, 명령, 코드 등을 저장할 수 있다.In addition, the memory 630 may store various network functions, algorithms, libraries, etc., and various data, programs (one or more instructions), applications, software, commands, codes, etc. for driving and controlling the
프로세서(640)는 적어도 하나의 프로그램 및/또는 인스트럭션을 실행하여 장치(600)의 전반적인 동작을 제어할 수 있다. 프로세서(640)는 메모리(630)에 저장되는 하나 이상의 프로그램들을 실행할 수 있다. 프로세서(640)는 중앙 처리 장치(Central Processing Unit, CPU), 그래픽 처리 장치(Graphics Processing Unit, GPU) 또는 본 개시의 기술적 사상에 따른 방법들이 수행되는 전용의 프로세서를 의미할 수 있다.The processor 640 may control the overall operation of the
실시예에서, 프로세서(640)는 학습 모델 생성 장치로부터 전달받은 학습 모델, 적어도 하나의 프로그램 및/또는 인스트럭션에 기초하여 추론 모듈(320)을 생성할 수 있다. 추론 모듈(320)은 소프트웨어 모듈일 수 있다.In an embodiment, the processor 640 may generate the
실시예에서, 프로세서(540)는 공정과 관련되는 현장 데이터를 획득하고, 상기 현장 데이터를 이용하여 상기 추론 엔진 중 장치(600)의 구동 환경에 적합한 추론 엔진을 통해 상기 학습 모델에 기반한 추론을 수행할 수 있다.In an embodiment, the processor 540 obtains field data related to a process, and performs inference based on the learning model through an inference engine suitable for a driving environment of the
실시예에서, 프로세서(540)는 타겟 장치로부터 수신한 현장 데이터와 추론 엔진 및 학습 모델의 출력 데이터를 기초로 상기 학습 모델을 재학습시킬 수 있다.In an embodiment, the processor 540 may re-learn the learning model based on field data received from the target device and output data of the inference engine and the learning model.
한편, 도시되어 있지 않지만, 장치(600)는 현장 데이터를 획득하기 위한 센싱부 및/또는 촬영부를 더 포함할 수 있다. 이때, 센싱부는 적어도 하나의 센싱 모듈을 통해 구성되며, 촬영부는 카메라 모듈을 통해 구성될 수 있다. Meanwhile, although not shown, the
본 개시의 실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 개시를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.The method according to an embodiment of the present disclosure may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. Program commands recorded on the medium may be specially designed and configured for the present disclosure, or may be known and usable to those skilled in computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. - includes hardware devices specially configured to store and execute program instructions, such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of program instructions include high-level language codes that can be executed by a computer using an interpreter, as well as machine language codes such as those produced by a compiler.
또한, 개시된 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다.In addition, the method according to the disclosed embodiments may be provided by being included in a computer program product. Computer program products may be traded between sellers and buyers as commodities.
컴퓨터 프로그램 제품은 S/W 프로그램, S/W 프로그램이 저장된 컴퓨터로 읽을 수 있는 저장 매체를 포함할 수 있다. 예를 들어, 컴퓨터 프로그램 제품은 전자 장치의 제조사 또는 전자 마켓(예, 구글 플레이 스토어, 앱 스토어)을 통해 전자적으로 배포되는 S/W 프로그램 형태의 상품(예, 다운로더블 앱)을 포함할 수 있다. 전자적 배포를 위하여, S/W 프로그램의 적어도 일부는 저장 매체에 저장되거나, 임시적으로 생성될 수 있다. 이 경우, 저장 매체는 제조사의 서버, 전자 마켓의 서버, 또는 SW 프로그램을 임시적으로 저장하는 중계 서버의 저장매체가 될 수 있다.A computer program product may include a S/W program and a computer-readable storage medium in which the S/W program is stored. For example, a computer program product may include a product in the form of a S/W program (eg, a downloadable app) that is distributed electronically through a manufacturer of an electronic device or an electronic marketplace (eg, Google Play Store, App Store). there is. For electronic distribution, at least a part of the S/W program may be stored in a storage medium or temporarily generated. In this case, the storage medium may be a storage medium of a manufacturer's server, an electronic market server, or a relay server temporarily storing SW programs.
컴퓨터 프로그램 제품은, 서버 및 클라이언트 장치로 구성되는 시스템에서, 서버의 저장매체 또는 클라이언트 장치의 저장매체를 포함할 수 있다. 또는, 서버 또는 클라이언트 장치와 통신 연결되는 제 3 장치(예, 스마트폰)가 존재하는 경우, 컴퓨터 프로그램 제품은 제 3 장치의 저장매체를 포함할 수 있다. 또는, 컴퓨터 프로그램 제품은 서버로부터 클라이언트 장치 또는 제 3 장치로 전송되거나, 제 3 장치로부터 클라이언트 장치로 전송되는 S/W 프로그램 자체를 포함할 수 있다.A computer program product may include a storage medium of a server or a storage medium of a client device in a system composed of a server and a client device. Alternatively, if there is a third device (eg, a smart phone) that is communicatively connected to the server or the client device, the computer program product may include a storage medium of the third device. Alternatively, the computer program product may include a S/W program itself transmitted from the server to the client device or the third device or from the third device to the client device.
이 경우, 서버, 클라이언트 장치 및 제 3 장치 중 하나가 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 수행할 수 있다. 또는, 서버, 클라이언트 장치 및 제 3 장치 중 둘 이상이 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 분산하여 실시할 수 있다.In this case, one of the server, the client device and the third device may execute the computer program product to perform the method according to the disclosed embodiments. Alternatively, two or more of the server, the client device, and the third device may execute the computer program product to implement the method according to the disclosed embodiments in a distributed manner.
예를 들면, 서버(예로, 클라우드 서버 또는 인공 지능 서버 등)가 서버에 저장된 컴퓨터 프로그램 제품을 실행하여, 서버와 통신 연결된 클라이언트 장치가 개시된 실시예들에 따른 방법을 수행하도록 제어할 수 있다.For example, a server (eg, a cloud server or an artificial intelligence server) may execute a computer program product stored in the server to control a client device communicatively connected to the server to perform a method according to the disclosed embodiments.
이상에서 실시예들에 대하여 상세하게 설명하였지만 본 개시의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 개시의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 개시의 권리범위에 속한다.Although the embodiments have been described in detail above, the scope of the present disclosure is not limited thereto, and various modifications and improvements of those skilled in the art using the basic concepts of the present disclosure defined in the following claims are also within the scope of the present disclosure. belongs to
Claims (6)
학습 모델 생성 장치가 소정의 프레임 워크에 기반한 네트워크 함수를 학습 데이터를 통해 학습시켜 학습 모델을 생성하는 단계;
상기 학습 모델 생성 장치가 상기 학습 모델을 상이한 복수의 구동 환경 또는 프레임 워크에 대응하는 복수의 추론 엔진에 적용 가능하도록 범용 인코딩 모듈을 통해 인코딩하는 단계;
상기 학습 모델 생성 장치가 상기 인코딩된 학습 모델을 상기 타겟 장치에 전달하는 단계;
상기 타겟 장치가 적용된 공정과 관련되는 현장 데이터를 획득하는 단계; 및
상기 타겟 장치가 상기 현장 데이터를 이용하여 상기 추론 엔진 중 상기 타겟 장치의 구동 환경에 적합한 추론 엔진을 통해 상기 학습 모델에 기반한 추론을 수행하는 단계를 포함하는, 방법.A learning model optimization method for a target device,
generating a learning model by learning a network function based on a predetermined framework by a learning model generating device through learning data;
encoding, by the learning model generation device, the learning model through a general-purpose encoding module so as to be applicable to a plurality of inference engines corresponding to a plurality of different operating environments or frameworks;
transmitting, by the learning model generating device, the encoded learning model to the target device;
obtaining on-site data related to a process to which the target device is applied; and
And performing, by the target device, inference based on the learning model through an inference engine suitable for a driving environment of the target device among the inference engines using the field data.
상기 구동 환경은 상기 타겟 장치의 운영체제 및 하드웨어 중 적어도 하나에 기초하여 구분되는, 방법.According to claim 1,
The driving environment is divided based on at least one of an operating system and hardware of the target device.
상기 하드웨어에 의해 구분되는 상기 구동 환경은, 범용 CPU(Central Processing Unit) 환경, 범용 GPU(Graphics Processing Unit) 환경 및 임베디드 환경 중 적어도 하나를 포함하는, 방법.According to claim 2,
The driving environment distinguished by the hardware includes at least one of a general-purpose CPU (Central Processing Unit) environment, a general-purpose GPU (Graphics Processing Unit) environment, and an embedded environment.
상기 학습 모델에 입력되는 상기 현장 데이터와 상기 학습 모델의 출력 데이터는 적어도 하나의 버퍼를 통해 소정의 자료 구조로 변경되는, 방법.According to claim 1,
The field data input to the learning model and the output data of the learning model are changed into a predetermined data structure through at least one buffer.
상기 학습 모델 생성 장치가 상기 현장 데이터 및 상기 출력 데이터를 기초로 상기 학습 모델을 재학습시키는 단계를 더 포함하는, 방법.According to claim 4,
The method further comprising re-learning the learning model based on the field data and the output data by the learning model generating device.
소정의 프레임 워크에 기반한 네트워크 함수를 학습 데이터를 통해 학습시켜 학습 모델을 생성하고, 상기 학습 모델 생성 장치가 상기 학습 모델을 상이한 복수의 구동 환경 또는 프레임 워크에 대응하는 복수의 추론 엔진에 적용 가능하도록 범용 인코딩 모듈을 통해 인코딩하며, 상기 학습 모델 생성 장치가 상기 인코딩된 학습 모델을 상기 타겟 장치에 전달하는 학습 모델 생성 장치; 및
공정과 관련되는 현장 데이터를 획득하고, 상기 현장 데이터를 이용하여 상기 추론 엔진 중 구동 환경에 적합한 추론 엔진을 통해 상기 학습 모델에 기반한 추론을 수행하는 상기 타겟 장치를 포함하는, 시스템.A learning model optimization system for a target device,
A network function based on a predetermined framework is learned through learning data to generate a learning model, and the learning model generating device can apply the learning model to a plurality of inference engines corresponding to a plurality of different driving environments or frameworks. a learning model generating device that encodes through a general-purpose encoding module and transmits the encoded learning model to the target device; and
The system comprising: the target device that acquires field data related to a process and performs inference based on the learning model through an inference engine suitable for a driving environment among the inference engines using the field data.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210193801A KR20230104408A (en) | 2021-12-31 | 2021-12-31 | Method and system for optimizing training model for target device |
PCT/KR2022/021603 WO2023128654A1 (en) | 2021-12-31 | 2022-12-29 | Method for optimizing learning model for target apparatus and system therefor |
JP2024538768A JP2025502763A (en) | 2021-12-31 | 2022-12-29 | METHOD FOR OPTIMIZING LEARNING MODEL FOR TARGET DEVICE AND SYSTEM THEREFOR |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210193801A KR20230104408A (en) | 2021-12-31 | 2021-12-31 | Method and system for optimizing training model for target device |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230104408A true KR20230104408A (en) | 2023-07-10 |
Family
ID=86999669
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210193801A KR20230104408A (en) | 2021-12-31 | 2021-12-31 | Method and system for optimizing training model for target device |
Country Status (3)
Country | Link |
---|---|
JP (1) | JP2025502763A (en) |
KR (1) | KR20230104408A (en) |
WO (1) | WO2023128654A1 (en) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11443230B2 (en) * | 2018-01-26 | 2022-09-13 | Cisco Technology, Inc. | Intrusion detection model for an internet-of-things operations environment |
KR102530254B1 (en) * | 2019-11-21 | 2023-05-23 | 우상진 | Npu adaptable network platform for artificial intelligent contents service |
CN113849179A (en) * | 2020-06-28 | 2021-12-28 | 华为技术有限公司 | An artificial intelligence model publishing method and device |
CN112711423A (en) * | 2021-01-18 | 2021-04-27 | 深圳中兴网信科技有限公司 | Engine construction method, intrusion detection method, electronic device and readable storage medium |
KR102341827B1 (en) * | 2021-08-06 | 2021-12-21 | 주식회사 에너자이(ENERZAi) | Method for, device for, and system for generating an test bench |
-
2021
- 2021-12-31 KR KR1020210193801A patent/KR20230104408A/en unknown
-
2022
- 2022-12-29 WO PCT/KR2022/021603 patent/WO2023128654A1/en active Application Filing
- 2022-12-29 JP JP2024538768A patent/JP2025502763A/en active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2023128654A1 (en) | 2023-07-06 |
JP2025502763A (en) | 2025-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210390653A1 (en) | Learning robotic tasks using one or more neural networks | |
US10861225B2 (en) | Neural network processing for multi-object 3D modeling | |
US20190370647A1 (en) | Artificial intelligence analysis and explanation utilizing hardware measures of attention | |
US20190050729A1 (en) | Deep learning solutions for safe, legal, and/or efficient autonomous driving | |
CN112334918A (en) | deep learning system | |
US9330356B2 (en) | Apparatus and methods for developing parallel networks using a general purpose programming language | |
US11380086B2 (en) | Point cloud based 3D semantic segmentation | |
US20190049583A1 (en) | Encoding lidar signals to avoid interference | |
CN112099882B (en) | Service processing method, device and equipment | |
CN111738403B (en) | Neural network optimization method and related equipment | |
CN112099848B (en) | Service processing method, device and equipment | |
JP7332238B2 (en) | Methods and Apparatus for Physics-Guided Deep Multimodal Embedding for Task-Specific Data Utilization | |
WO2020083941A1 (en) | Method and system for a behavior generator using deep learning and an auto planner | |
KR20220164570A (en) | Edge server with deep learning accelerator and random access memory | |
Martinez‐Alpiste et al. | Smartphone‐based object recognition with embedded machine learning intelligence for unmanned aerial vehicles | |
KR20230048614A (en) | Systems, methods, and apparatus for image classification with domain invariant regularization | |
US10733481B2 (en) | Cloud device, terminal device, and method for classifying images | |
CN116597402A (en) | Scene perception method and related equipment thereof | |
US11972184B2 (en) | Method and system for designing a robotic system architecture with optimized system latency | |
Huang et al. | Real-time radar gesture classification with spiking neural network on SpiNNaker 2 prototype | |
Alqaisi et al. | Containerized computer vision applications on edge devices | |
KR20230104408A (en) | Method and system for optimizing training model for target device | |
Sarwar Murshed et al. | Efficient deployment of deep learning models on autonomous robots in the ROS environment | |
WO2024017282A1 (en) | Data processing method and device | |
CN117764190A (en) | Data processing method and device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20211231 |
|
PA0201 | Request for examination |
Patent event code: PA02012R01D Patent event date: 20220531 Comment text: Request for Examination of Application Patent event code: PA02011R01I Patent event date: 20211231 Comment text: Patent Application |
|
PG1501 | Laying open of application |