[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR20230104408A - Method and system for optimizing training model for target device - Google Patents

Method and system for optimizing training model for target device Download PDF

Info

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
Application number
KR1020210193801A
Other languages
Korean (ko)
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 KR1020210193801A priority Critical patent/KR20230104408A/en
Priority to PCT/KR2022/021603 priority patent/WO2023128654A1/en
Priority to JP2024538768A priority patent/JP2025502763A/en
Publication of KR20230104408A publication Critical patent/KR20230104408A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge 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

The present disclosure relates to a method for optimizing a learning model for a target apparatus and a system therefor. The method according to an embodiment of the present disclosure may comprise: a step in which a learning model generation apparatus generates a learning model by training, via training data, a network function based on a predetermined framework; a step in which the learning model generation apparatus encodes the learning model via a general-purpose encoding module to be applicable to a plurality of inference engines corresponding to a plurality of different driving environments or frameworks; a step in which the learning model generation apparatus transmits the encoded learning model to the target apparatus; a step in which the target apparatus acquires field data related to a process that has been applied; and a step in which the target apparatus performs, by using the field data, an inference based on the learning model via an inference engine suitable for a driving environment of the target apparatus from among the inference engines. According to the present invention, a learning model that is generated by a learning model generation apparatus can be converted to suit various driving environments of a target device.

Description

타겟 장치를 위한 학습 모델 최적화 방법 및 이를 위한 시스템{METHOD AND SYSTEM FOR OPTIMIZING TRAINING MODEL FOR TARGET DEVICE}Learning model optimization method for target device and system therefor {METHOD AND SYSTEM FOR OPTIMIZING TRAINING MODEL FOR TARGET DEVICE}

본 개시(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 model generating device 110 and a target device 120 .

실시예에서, 학습 모델 생성 장치(110)는 클라우드 서버일 수 있다.In an embodiment, the learning model generating device 110 may be a cloud server.

학습 모델 생성 장치(110)는 학습 모델을 생성하여, 타겟 장치(120)로 전달할 수 있다. 이를 위해, 학습 모델 생성 장치(110)는 학습 모델 생성 모듈을 포함할 수 있다. 학습 모델 생성 모듈은 소프트웨어 모듈일 수 있다.The learning model generating device 110 may generate a learning model and transmit it to the target device 120 . To this end, the learning model generating device 110 may include a learning model generating module. The learning model creation module may be a software module.

구체적으로, 학습 모델 생성 모듈은 소정의 프레임 워크(예를 들어, 텐서플로)에 기반하여 네트워크 함수를 생성하고, 외부로부터 학습 데이터가 입력되면, 이를 기초로 네트워크 함수에 대한 학습을 수행하며, 학습의 결과로서 학습 모델을 생성할 수 있다. 또한, 학습 모델 생성 모듈은 범용 인코딩 모듈을 통해 생성된 학습 모델을 복수의 구동 환경 및/또는 프레임 워크에서 구동 가능한 포맷으로 인코딩할 수 있다. 학습 모델은 인코딩된 파일 형태로 타겟 장치(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 target device 120 in the form of an encoded file.

또한, 실시예에서, 학습 모델 생성 장치(110)는 타겟 장치(120)로부터 전달되는 현장 데이터 및 이에 기초로 학습 모델이 출력한 출력 데이터를 이용하여 학습 모델을 재학습시킬 수 있다.Also, in an embodiment, the learning model generating device 110 may re-learn the learning model using field data transmitted from the target device 120 and output data output by the learning model based thereon.

타겟 장치(120)는 학습 모델을 디바이스 상에 구현하려는 대상 장치를 지칭하는 것으로서, 서버, PC, 스마트폰(Smartphone), 스마트패드(SmartPad), 태블릿 PC 등과 같은 모든 종류의 컴퓨팅 장치를 포함할 수 있다. 또한, 실시예에서, 타겟 장치(120)는 임베디드 환경에서 구동하는 IoT 단말, 엣지 디바이스, 임베디드 보드 등을 더 포함할 수 있다.The target device 120 refers to a target device for implementing a learning model on a device, and may include all types of computing devices such as a server, PC, smartphone, smartpad, tablet PC, and the like. there is. Also, in an embodiment, the target device 120 may further include an IoT terminal, an edge device, an embedded board, and the like that run in an embedded environment.

타겟 장치(120)는 학습 모델 생성 장치(110)로부터 인코딩된 학습 모델과 추론 모듈을 생성하기 위한 적어도 하나의 실행 코드, 프로그램, 라이브러리 등을 수신하고, 생성된 추론 모듈을 통해 학습 모델을 구동할 수 있다. 이때, 추론 모듈은 소프트웨어 모듈일 수 있다.The target device 120 receives at least one executable code, program, library, etc. for generating the learning model and reasoning module encoded by the learning model generating device 110, and drives the learning model through the generated reasoning module. can In this case, the reasoning module may be a software module.

추론 모듈은 상이한 구동 환경에 대응하는 복수의 추론 엔진과 적어도 하나의 버퍼(입력/출력 버퍼)를 포함할 수 있다. 추론 모듈은 타겟 장치(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 target device 120 and perform inference using field data acquired by the target device 120. .

이때, 학습 모델로 입력되는 현장 데이터와 학습 모델의 출력 데이터는 버퍼를 통해 소정의 자료 구조로 변환될 수 있다.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 model generation device 110 may generate the learning model 312 by inputting learning data to the network function 311 of the learning model generation module 310 to perform learning.

이때, 네트워크 함수(311)는 소정의 프레임 워크에 기반하여 생성된 것일 수 있다. 프레임 워크는 검증된 복수의 라이브러리와 모듈, 사전 학습이 완료된 알고리즘 등을 개발자가 용이하게 사용할 있도록 구성한 일종의 패키지를 지칭하는 것으로서, 예를 들어, 텐서플로(Tensorflow), 케라스(Keras), 파이토치(Pytorch), 카페(Caffe), MX넷(Mxnet) 등을 포함할 수 있으나, 이에 한정하는 것은 아니며, 네트워크 함수(311)의 생성을 위하여 다양한 프레임 워크가 이용될 수 있다.In this case, the network function 311 may be generated based on a predetermined framework. A framework refers to a kind of package that is configured so that developers can easily use a plurality of verified libraries and modules, pre-trained algorithms, etc. For example, Tensorflow, Keras, PyTorch (Pytorch), Caffe (Caffe), MXnet (Mxnet), etc. may be included, but not limited thereto, and various frameworks may be used to generate the network function 311.

실시예에서, 학습 모델 생성 모듈(310)은 텐서플로에 기반한 네트워크 함수를 이용하여 학습 모델(312)을 생성할 수 있다.In an embodiment, the learning model generation module 310 may generate the learning model 312 using a network function based on TensorFlow.

실시예에서, 학습 데이터는 복수의 이미지일 수 있다. 예를 들어, 학습 데이터는 제품의 생산, 제조, 가공 등과 같은 임의의 공정에서 획득(또는, 촬영)된 공정 이미지일 수 있으며, 검출 또는 판독하고자 하는 정답(레이블, 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 model generating device 110 may encode the learning model 312 through the universal encoding module 313 of the learning model generating module 310 . Through step S220, the learning model 312 may be converted into a format that can be run in a plurality of different driving environments and/or frameworks.

실시예에서, 인코딩 모듈(313)은 학습 모델(312)을 NNEF(Neural Network Exchange Format)나 ONNX(Open Neural Network Exchange) 등과 같은 신경망 데이터 포맷으로 변환할 수 있으나, 이에 한정하는 것은 아니다.In an embodiment, the encoding module 313 may convert the trained model 312 into a neural network data format such as Neural Network Exchange Format (NNEF) or Open Neural Network Exchange (ONNX), but is not limited thereto.

S230 단계에서, 학습 모델 생성 장치(110)는 인코딩된 학습 모델(312)을 타겟 장치(120)에 전달할 수 있다.In step S230 , the learning model generating device 110 may transfer the encoded learning model 312 to the target device 120 .

여기서, 타겟 장치(120)는 공정을 제어하거나, 공정 환경 내에서 특정한 데이터를 측정 또는 획득하여 이를 기초로 공정과 관련된 진단 또는 예측을 수행하기 위하여 구비된 것으로서, 학습 모델을 구동하여 추론을 수행하기 위한 추론 모듈(320)을 포함할 수 있다.Here, the target device 120 is provided to control a process or measure or acquire specific data within a process environment and perform diagnosis or prediction related to the process based on this, and perform inference by driving a learning model. It may include an inference module 320 for

S240 단계에서, 타겟 장치(120)는 공정과 관련된 현장 데이터를 획득할 수 있다. 예를 들어, 타겟 장치(120)는 일 구성으로 구비되거나, 이와 유, 무선 통신을 통해 연결된 센싱 장치(적어도 하나의 센서, 카메라 등)으로부터 현장 데이터를 획득할 수 있다.In step S240, the target device 120 may obtain field data related to the process. For example, the target device 120 may acquire field data from a sensing device (at least one sensor, camera, etc.) provided as one component or connected to the target device 120 through wired or wireless communication.

실시예에서, 현장 데이터는 적어도 하나의 이미지(예를 들어, 공정 이미지)일 수 있다.In an embodiment, the field data may be at least one image (eg, process image).

S250 단계에서, 타겟 장치(120)는 추론 모듈(320)을 통해 현장 데이터를 이용하여 추론을 수행할 수 있다.In step S250, the target device 120 may perform inference using field data through the inference module 320.

실시예에서, 추론 모듈(320)은 각각 상이한 구동 환경에 적합한 복수의 추론 엔진(321)을 포함하며, 탑재된 복수의 추론 엔진(321) 중 타겟 장치(120)의 구동 환경에 적합한 추론 엔진(321)을 통해 학습 모델(312)을 구동함으로써, 현장 데이터를 기초로 한 추론을 수행할 수 있다.In an embodiment, the inference module 320 includes a plurality of inference engines 321 suitable for different driving environments, and among the plurality of inference engines 321 installed, the inference engine suitable for the driving environment of the target device 120 ( By driving the learning model 312 through 321), it is possible to perform inference based on field data.

여기서, 구동 환경은 타겟 장치(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 target device 120 .

실시예에서, 운영체제에 의해 구분되는 구동 환경은, 리룩스(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 inference engine 321 may include a first inference engine suitable for a general-purpose GPU environment and/or an embedded environment, and a second inference engine suitable for a general-purpose CPU environment.

실시예에서, 추론 엔진(321)을 통해 구동되는 학습 모델(312)의 입력 데이터와 출력 데이터는 적어도 하나의 버퍼(322)를 통해 소정의 자료 구조로 변경될 수 있다.In an embodiment, input data and output data of the learning model 312 driven through the reasoning engine 321 may be changed into a predetermined data structure through at least one buffer 322 .

예를 들어, 버퍼(322)는 입력 버퍼와 출력 버퍼를 포함할 수 있으며, 타겟 장치(120)는 현장 데이터를 입력 버퍼에 할당하여, 학습 모델(312)의 구동에 적합한 자료 구조로 변경할 수 있으며, 학습 모델(312)의 추론 결과에 따라 생성된 출력 데이터를 출력 버퍼에 할당하여, 지정된 자료 구조로 변경할 수 있다. 자료 구조는 타겟 장치(120)가 해석 가능한 프로그램 언어에 대응하는 구조일 수 있다.For example, the buffer 322 may include an input buffer and an output buffer, and the target device 120 may allocate field data to the input buffer and change it into a data structure suitable for driving the learning model 312, , Output data generated according to the reasoning result of the learning model 312 may be allocated to an output buffer and changed to a designated data structure. The data structure may be a structure corresponding to a program language interpretable by the target device 120 .

도 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 method 400 are the same as steps S210 to S250 of the method 200 described above with reference to FIG. 2 , so duplicate descriptions will be omitted.

방법(400)은 학습 모델(313)을 재학습시키는 단계를 더 포함할 수 있다.Method 400 may further include retraining learned model 313 .

구체적으로, S460 단계에서, 타겟 장치(120)는 현장 데이터와 현장 데이터를 입력하여 추론 엔진(321) 및 학습 모델(313)을 통해 획득된 출력 데이터를 학습 모델 생성 장치(110)에 전달할 수 있으며, 학습 모델 생성 장치(110)는 수신한 현장 데이터 및 출력 데이터에 기초하여 학습 모델(313)을 재학습시킴으로써, 학습 모델(313)을 갱신할 수 있다.Specifically, in step S460, the target device 120 may input field data and field data and transmit output data obtained through the inference engine 321 and the learning model 313 to the learning model generating device 110, , The learning model generating device 110 may update the learning model 313 by retraining the learning model 313 based on the received field data and output data.

갱신된 학습 모델(313)은 범용 인코딩 모듈(313)을 통해 인코딩되어 타겟 장치(120)로 전송될 수 있다.The updated learning model 313 may be encoded through the universal encoding module 313 and transmitted to the target device 120 .

실시예에서, 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 device 500. can be saved.

프로세서(540)는 적어도 하나의 프로그램 및/또는 인스트럭션을 실행하여 장치(500)의 전반적인 동작을 제어할 수 있다. 프로세서(540)는 메모리(530)에 저장되는 하나 이상의 프로그램들을 실행할 수 있다. 프로세서(540)는 중앙 처리 장치(Central Processing Unit, CPU), 그래픽 처리 장치(Graphics Processing Unit, GPU) 또는 본 개시의 기술적 사상에 따른 방법들이 수행되는 전용의 프로세서를 의미할 수 있다.The processor 540 may control the overall operation of the device 500 by executing at least one program and/or instruction. Processor 540 may execute one or more programs stored in memory 530 . The processor 540 may refer to a central processing unit (CPU), a graphics processing unit (GPU), or a dedicated processor for performing methods according to the technical concept of the present disclosure.

실시예에서, 프로세서(540)는 적어도 하나의 프로그램 및/또는 인스트럭션에 기초하여 학습 모델 생성 모듈(310)을 생성할 수 있다. 학습 모델 생성 모듈(310)은 소프트웨어 모듈일 수 있다.In an embodiment, the processor 540 may generate the learning model generating module 310 based on at least one program and/or instruction. The learning model generation module 310 may be a software module.

실시예에서, 프로세서(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 device 600. can be saved.

프로세서(640)는 적어도 하나의 프로그램 및/또는 인스트럭션을 실행하여 장치(600)의 전반적인 동작을 제어할 수 있다. 프로세서(640)는 메모리(630)에 저장되는 하나 이상의 프로그램들을 실행할 수 있다. 프로세서(640)는 중앙 처리 장치(Central Processing Unit, CPU), 그래픽 처리 장치(Graphics Processing Unit, GPU) 또는 본 개시의 기술적 사상에 따른 방법들이 수행되는 전용의 프로세서를 의미할 수 있다.The processor 640 may control the overall operation of the device 600 by executing at least one program and/or instruction. Processor 640 may execute one or more programs stored in memory 630 . The processor 640 may mean a central processing unit (CPU), a graphics processing unit (GPU), or a dedicated processor on which methods according to the technical idea of the present disclosure are performed.

실시예에서, 프로세서(640)는 학습 모델 생성 장치로부터 전달받은 학습 모델, 적어도 하나의 프로그램 및/또는 인스트럭션에 기초하여 추론 모듈(320)을 생성할 수 있다. 추론 모듈(320)은 소프트웨어 모듈일 수 있다.In an embodiment, the processor 640 may generate the inference module 320 based on the learning model transmitted from the learning model generating device and at least one program and/or instruction. Inference module 320 may be a software module.

실시예에서, 프로세서(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 device 600 from among the inference engines using the field data. can do.

실시예에서, 프로세서(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 device 600 may further include a sensing unit and/or a photographing unit for acquiring field data. In this case, the sensing unit may be configured through at least one sensing module, and the photographing unit may be configured through a camera module.

본 개시의 실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 개시를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(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.
제 1 항에 있어서,
상기 구동 환경은 상기 타겟 장치의 운영체제 및 하드웨어 중 적어도 하나에 기초하여 구분되는, 방법.
According to claim 1,
The driving environment is divided based on at least one of an operating system and hardware of the target device.
제 2 항에 있어서,
상기 하드웨어에 의해 구분되는 상기 구동 환경은, 범용 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.
제 1 항에 있어서,
상기 학습 모델에 입력되는 상기 현장 데이터와 상기 학습 모델의 출력 데이터는 적어도 하나의 버퍼를 통해 소정의 자료 구조로 변경되는, 방법.
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.
제 4 항에 있어서,
상기 학습 모델 생성 장치가 상기 현장 데이터 및 상기 출력 데이터를 기초로 상기 학습 모델을 재학습시키는 단계를 더 포함하는, 방법.
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.
KR1020210193801A 2021-12-31 2021-12-31 Method and system for optimizing training model for target device KR20230104408A (en)

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)

* Cited by examiner, † Cited by third party
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

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