KR102644593B1 - 지능형 디바이스 개발을 위한 ai 분화 기반의 하드웨어 정보에 최적의 지능형 소프트웨어 개발도구 - Google Patents

지능형 디바이스 개발을 위한 ai 분화 기반의 하드웨어 정보에 최적의 지능형 소프트웨어 개발도구 Download PDF

Info

Publication number
KR102644593B1
KR102644593B1 KR1020210162280A KR20210162280A KR102644593B1 KR 102644593 B1 KR102644593 B1 KR 102644593B1 KR 1020210162280 A KR1020210162280 A KR 1020210162280A KR 20210162280 A KR20210162280 A KR 20210162280A KR 102644593 B1 KR102644593 B1 KR 102644593B1
Authority
KR
South Korea
Prior art keywords
model
software
differentiation
intelligent
target device
Prior art date
Application number
KR1020210162280A
Other languages
English (en)
Other versions
KR20230076937A (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 KR1020210162280A priority Critical patent/KR102644593B1/ko
Priority to US17/542,545 priority patent/US11941376B2/en
Publication of KR20230076937A publication Critical patent/KR20230076937A/ko
Application granted granted Critical
Publication of KR102644593B1 publication Critical patent/KR102644593B1/ko

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
    • G06N3/0985Hyperparameter optimisation; Meta-learning; Learning-to-learn
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • 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
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • 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
    • G06N3/096Transfer learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Stored Programmes (AREA)

Abstract

지능형 소프트웨어 제공 방법이 개시된다. 본 명세서는, 미리 훈련된 AI 모델 및 상기 AI 모델의 메타정보에 기초하여 최적 AI 모델을 요청할 수 있고, AI 모델을 복수의 분화(differentiation) 수준에 따라 복수의 AI 분화 모델을 생성함으로써, 상기 요청에 응답하여 지능형 디바이스에 최적화된 AI 모델을 손쉽게 제공할 수 있다.

Description

지능형 디바이스 개발을 위한 AI 분화 기반의 하드웨어 정보에 최적의 지능형 소프트웨어 개발도구{An AI differentiation based HW-optimized Intelligent Software Development Tools for Developing Intelligent Devices}
본 명세서는 지능형 디바이스에 최적의 소프트웨어를 개발하기 위한 도구 및 방법에 관한 것이다.
IoT 및 지능형 반도체 기술의 발전에 따라 스스로 판단하고 제어하는 온 디바이스(On Device) AI 기반의 지능형 디바이스 개발에 대한 관심이 증대되고 있다. 그 중에서 엣지 디바이스(Edge Device)는 IoT 서비스의 종단 노드의 기기 장치를 의미하며 데이터 프로세싱을 중앙집중식 클라우드가 아닌 종단노드에서 수행함으로써, 데이터 통신으로 인한 지연 시간을 줄이고 클라우드 운영 및 통신에 필요한 비용을 절감시키며 데이터 유출 문제를 완화할 수 있는 이점에 있다.
특히, 지능형 디바이스는 이러한 엣지 디바이스의 장점과 더불어 센서 데이터를 자체적으로 분석하여 기기 장치 내/외부 상태를 인지/판단하고, 적절한 제어를 수행함으로써, 지능적인 IoT 서비스를 실시간으로 제공할 수 있다.
기존에 개발된 다수의 AI 모델들은 일반적으로 고성능 GPU를 포함한 높은 컴퓨팅 자원을 요구하며 AI 모델이 탑재되는 디바이스의 하드웨어 특성을 고려하여 개발되지 않으므로, 특정 디바이스에 탑재되는 지능형 소프트웨어에 그대로 적용될 경우 하드웨어 자원 제약으로 인해 안정적이고 최적화된 동작을 기대하기 어렵다.
또한, 특정 기능의 지능형 디바이스에 최적화된 소프트웨어 개발을 위해서는 지능형 소프트웨어에 포함된 AI 모델들의 최적화를 수행하기 위한 AI 최적화 기술에 대한 전문지식이 요구되기도 한다.
전술한 문제로 인해, 개발 대상 지능형 디바이스에 적합한 지능형 소프트웨어 개발을 위해서는 지능형 디바이스의 하드웨어 사양에 기초하여 지능형 소프트웨어의 목표 성능을 최대한 달성할 수 있도록 탑재되는 모델의 크기와, 연산량, 정확도를 모두 고려하여 최적의 AI 모델들을 구성할 필요가 있다.
전술한 문제를 해결하기 위해 본 명세서의 일 실시예는 AI 최적화 기술에 대한 전문지식이 미흡한 사용자도 손쉽게 지능형 소프트웨어 개발이 가능한 AI 분화 기반의 하드웨어 최적 지능형 소프트웨어 개발 도구 및 방법을 제공하는 것을 목적으로 한다.
또한, 본 명세서의 일 실시예는 다양한 지능형 디바이스에서 동작 가능한 하나 이상의 AI 모델들로 구성되는 지능형 소프트웨어를 간편한 방법으로 구현 가능한 AI 분화 기반의 하드웨어 최적 지능형 소프트웨어 개발 도구 및 방법을 제공하는 것을 목적으로 한다.
본 명세서가 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 이하의 발명의 상세한 설명으로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 명세서의 일 실시예에 따른 지능형 소프트웨어 제공 방법은, 미리 훈련된 AI 모델 및 상기 AI 모델의 메타정보를 입력받는 단계; 상기 AI 모델을 복수의 분화(differentiation) 수준에 따라 복수의 AI 분화 모델을 생성하는 단계; 분화전 AI 모델 정보에 기초하여 상기 AI 분화 모델에 대한 프로파일링 동작을 수행하는 단계; 상기 AI 모델의 메타정보, 상기 AI 분화 모델, 상기 디바이스의 하드웨어 사양 및 상기 프로파일 정보를 포함하는 AI 모델 데이터를 저장부에 저장하는 단계; 및 타겟 디바이스의 요구사항을 입력받고, 상기 저장부에 저장된 AI 모델 데이터 중 상기 요구사항을 만족하는 제1 모델을 선택하여 상기 타겟 디바이스로 전달하는 단계;를 포함한다.
상기 지능형 소프트웨어 제공 방법은, 타겟 디바이스의 소프트웨어 요구사항 및 하드웨어 사양을 포함하는 소프트웨어 메타정보를 입력받는 단계; 상기 저장부에 저장된 AI 모델 데이터 중 상기 소프트웨어 메타정보를 만족하는 제1 AI 모델을 선택하는 단계; 상기 소프트웨어 메타정보에 포함된 소프트웨어 로직과 상기 제1 AI 모델을 결합하여 상기 타겟 디바이스용 소프트웨어를 결합하는 단계; 및 상기 결합된 소프트웨어를 상기 타겟 디바이스에서 실행 가능하도록 실행파일로 변환하여 상기 타겟 디바이스에 전달하는 단계;를 더 포함할 수 있다.
상기 프로파일링 동작을 수행하는 단계는, 상기 AI 분화 모델의 정확도, 미리 등록된 디바이스의 하드웨어 사양에 따른 실행시간, 자원사용량을 포함하는 프로파일 정보를 생성할 수 있다.
상기 미리 훈련된 AI 모델은 디바이스의 하드웨어 사양에 비종속적이며, 상기 AI 모델의 메타정보는, 상기 AI 모델의 기능, 크기 및 정확도를 포함할 수 있다.
상기 분화 수준은, 미리 정해진 분화 범위 및 분화 개수의 정보를 포함할 수 있다.
또한, 상기 분화 범위 및 분화 개수 등의 분화 수준은 상기 AI 모델을 등록하는 사용자에 의해 미리 설정될 수 있다.
상기 분화 수준은, 상기 AI 모델의 경량화 또는 중량화 중 어느 하나를 포함하되,
상기 경량화는 가지치기(Pruning), 이진화(Binarization), 양자화(Quantization), 지식 증류(Knowledge Distillation), 뉴럴 아키텍처 검색(Neural Archtecture Search) 또는 AutoML 중 적어도 하나를 포함하고, 상기 중량화는, 지식 증류(Knowledge Distillation), 뉴럴 아키텍처 검색(Neural Archtecture Search) 또는 AutoML 중 적어도 하나를 포함할 수 있다.
상기 지능형 소프트웨어 제공 방법은, 상기 저장부에 저장된 상기 복수의 AI 분화 모델 중 상기 지능형 디바이스의 하드웨어 사양을 만족시키는 모델이 존재하지 않는 경우, 상기 지능형 디바이스의 하드웨어 사양에 따른 특정 요구사항 및 제약사항에 따른 분화 요청을 수신하고, 상기 분화 요청에 따라 상기 AI 모델을 분화시키는 단계;를 더 포함할 수 있다.
본 명세서의 일 실시예에 따른 지능형 소프트웨어 제공 시스템은, 미리 훈련된 AI 모델 및 상기 AI 모델의 메타정보를 입력받아 AI 모델을 관리하는 AI 모델 관리 장치; 및 타겟 디바이스가 등록되면, 상기 타겟 디바이스의 소프트웨어 요구사항 및 하드웨어 사양을 포함하는 소프트웨어 메타정보에 기초하여 상기 AI 모델 관리 장치를 통해 관리되는 AI 모델 중 상기 소프트웨어 메타정보를 만족시키는 제1 AI 모델을 선택하고, 상기 타겟 디바이스에서 실행 가능하도록 패키징하여 상기 타겟 디바이스로 전달하는 소프트웨어 개발 장치;를 포함하고, 상기 AI 모델 관리 장치는, 상기 AI 모델을 복수의 분화(differentiation) 수준에 따라 복수의 AI 분화 모델을 생성하는 AI 모델 분화부; 분화전 AI 모델 정보에 기초하여 상기 AI 분화 모델에 대한 프로파일링 동작을 수행하는 AI 모델 프로파일러; 및 상기 AI 모델의 메타정보, 상기 AI 분화 모델, 상기 디바이스의 하드웨어 사양 및 상기 프로파일 정보를 포함하는 AI 모델 데이터를 저장하는 AI 모델 저장부;를 포함할 수 있다.
상기 소프트웨어 개발 장치는, 상기 저장부에 저장된 AI 모델 데이터 중 상기 소프트웨어 메타정보를 만족하는 제1 AI 모델을 선택하는 소프트웨어 분석부; 상기 소프트웨어 메타정보에 포함된 소프트웨어 로직과 상기 제1 AI 모델을 결합하여 상기 타겟 디바이스용 소프트웨어를 결합하는 소프트웨어 결합부; 및 상기 결합된 소프트웨어를 상기 타겟 디바이스에서 실행 가능하도록 실행파일로 변환하여 소프트웨어 패키징부;를 포함할 수 있다.
본 명세서의 일 실시예에 따르면, AI 최적화 기술에 대한 전문지식이 미흡한 사용자도 손쉽게 지능형 소프트웨어 개발이 가능하다.
또한, 본 명세서의 일 실시예는 다양한 지능형 디바이스 동작 가능한 하나 이상의 AI 모델들로 구성되는 지능형 소프트웨어를 간편한 방법으로 구현 가능하다.
또한, 본 명세서의 일 실시예는 지능형 소프트웨어 개발기능과, AI 모델 관리기능을 분리 운영함으로써, 지능형 디바이스 개발자와 AI 모델 개발자 상호 간 전문 지식에 비종속적으로 각 프로그램 및 기술을 개발할 수 있도록 지원함으로써, 전문지식 습득에 필요한 시간 및 비용을 최소화함으로써, 업무 효율성을 극대화할 수 있다.
본 명세서에서 얻을 수 있는 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 명세서에 관한 이해를 돕기 위해 상세한 설명의 일부로 포함되는, 첨부 도면은 본 명세서에 대한 실시예를 제공하고, 상세한 설명과 함께 본 명세서의 기술적 특징을 설명한다.
도 1은 본 명세서의 일 실시예에 따라 지능형 소프트웨어가 제공되는 지능형 디바이스의 블록도이다.
도 2는 본 명세서의 일 실시예에 따른 지능형 소프트웨어 제공 방법을 구현하기 위한 시스템을 설명하기 위한 도면이다.
도 3은 본 명세서의 일 실시예에 따라 AI 분화 모델의 생성을 설명하기 위한 도면이다.
도 4는 본 명세서의 일 실시예 따라 지능형 소프트웨어 제공 방법의 흐름도이다.
도 5는 본 명세서의 일 실시예에 따라 지능형 소프트웨어 제공 방법의 흐름도의 다른 예이다.
본 명세서에 관한 이해를 돕기 위해 상세한 설명의 일부로 포함되는, 첨부 도면은 본 발명에 대한 실시예를 제공하고, 상세한 설명과 함께 본 발명의 기술적 특징을 설명한다.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 출원에서, "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
도 1은 본 명세서의 일 실시예에 따라 지능형 소프트웨어가 제공되는 지능형 디바이스의 블록도이다. 상기 지능형 디바이스는 AI 장치(10)로 호칭하기로 한다.
도 1을 살펴보면, AI 장치(10)는 AI 프로세싱을 수행할 수 있는 AI 모듈을 포함하는 전자 기기 또는 AI 모듈을 포함하는 서버 등을 포함할 수 있다.
AI 장치(10)는 AI 프로세싱 결과를 직접 이용하는 클라이언트 디바이스이거나, AI 프로세싱 결과를 다른 기기에 제공하는 클라우드 환경의 디바이스일 수도 있다. AI 장치(10)는 신경망을 학습할 수 있는 컴퓨팅 장치로서, 서버, 데스크탑 PC, 노트북 PC, 태블릿 PC 등과 같은 다양한 전자 장치로 구현될 수 있다.
AI 장치(10)는 AI 프로세서(11), 메모리(15) 및/또는 통신부(17)를 포함할 수 있다.
AI 프로세서(11)는 메모리(15)에 저장된 프로그램을 이용하여 신경망을 학습할 수 있다. 특히, AI 프로세서(11)는 AI 장치(10)의 동작을 위해 신경망을 학습할 수 있다. 여기서, AI 장치(10)의 동작을 위한 신경망 인간의 뇌 구조를 컴퓨터 상에서 모의하도록 설계될 수 있으며, 인간의 신경망의 뉴런(neuron)을 모의하는, 가중치를 갖는 복수의 네트워크 노드들을 포함할 수 있다. 복수의 네트워크 모드들은 뉴런이 시냅스(synapse)를 통해 신호를 주고 받는 뉴런의 시냅틱 활동을 모의하도록 각각 연결 관계에 따라 데이터를 주고 받을 수 있다. 여기서 신경망은 신경망 모델에서 발전한 딥러닝 모델을 포함할 수 있다. 딥러닝 모델에서 복수의 네트워크 노드들은 서로 다른 레이어에 위치하면서 연결 관계에 따라 데이터를 주고 받을 수 있다. 신경망 모델의 예는 심층 신경망(DNN, deep neural networks), 합성곱 신경망(CNN, convolutional deep neural networks), 순환 신경망(RNN, Recurrent Boltzmann Machine), 제한 볼츠만 머신(RBM, Restricted Boltzmann Machine), 심층 신뢰 신경망(DBN, deep belief networks), 심층 Q-네트워크(Deep Q-Network)와 같은 다양한 딥 러닝 기법들을 포함하며, 컴퓨터비젼, 음성인식, 자연어처리, 음성/신호처리 등의 분야에 적용될 수 있다.
한편, 전술한 바와 같은 기능을 수행하는 프로세서는 범용 프로세서(예를 들어, CPU)일 수 있으나, 인공지능 학습을 위한 AI 전용 프로세서(예를 들어, GPU)일 수 있다.
메모리(15)는 AI 장치(10)의 동작에 필요한 각종 프로그램 및 데이터를 저장할 수 있다. 메모리(15)는 비 휘발성 메모리, 휘발성 메모리, 플래시 메모리(flash-memory), 하드디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SDD) 등으로 구현할 수 있다. 메모리(15)는 AI 프로세서(11)에 의해 액세스되며, AI 프로세서(11)에 의한 데이터의 독취/기록/수정/삭제/갱신 등이 수행될 수 있다. 또한, 메모리(15)는 본 발명의 일 실시예에 따른 데이터 분류/인식을 위한 학습 알고리즘을 통해 생성된 신경망 모델(예를 들어, 딥 러닝 모델(16))을 저장할 수 있다.
한편, AI 프로세서(11)는 데이터 분류/인식을 위한 신경망을 학습하는 데이터 학습부(12)를 포함할 수 있다. 데이터 학습부(12)는 데이터 분류/인식을 판단하기 위하여 어떤 학습 데이터를 이용할지, 학습 데이터를 이용하여 데이터를 어떻게 분류하고 인식할지에 관한 기준을 학습할 수 있다. 데이터 학습부(12)는 학습에 이용될 학습 데이터를 획득하고, 획득된 학습데이터를 딥러닝 모델에 적용함으로써, 딥러닝 모델을 학습할 수 있다.
데이터 학습부(12)는 적어도 하나의 하드웨어 칩 형태로 제작되어 AI 장치(10)에 탑재될 수 있다. 예를 들어, 데이터 학습부(12)는 인공지능(AI)을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 범용 프로세서(CPU) 또는 그래픽 전용 프로세서(GPU)의 일부로 제작되어 AI 장치(10)에 탑재될 수도 있다. 또한, 데이터 학습부(12)는 소프트웨어 모듈로 구현될 수 있다. 소프트웨어 모듈(또는 인스트럭션(instruction)을 포함하는 프로그램 모듈)로 구현되는 경우, 소프트웨어 모듈은 컴퓨터로 읽을 수 있는 판독 가능한 비일시적 판독 가능 기록 매체(non-transitory computer readable media)에 저장될 수 있다. 이 경우, 적어도 하나의 소프트웨어 모듈은 OS(Operating System)에 의해 제공되거나, 애플리케이션에 의해 제공될 수 있다.
데이터 학습부(12)는 학습 데이터 획득부(13) 및 모델 학습부(14)를 포함할 수 있다.
학습 데이터 획득부(13)는 데이터를 분류하고 인식하기 위한 신경망 모델에 필요한 학습 데이터를 획득할 수 있다.
모델 학습부(14)는 획득된 학습 데이터를 이용하여, 신경망 모델이 소정의 데이터를 어떻게 분류할지에 관한 판단 기준을 가지도록 학습할 수 있다. 이 때 모델 학습부(14)는 학습 데이터 중 적어도 일부를 판단 기준으로 이용하는 지도 학습(supervised learning)을 통하여, 신경망 모델을 학습시킬 수 있다. 또는 모델 학습부(14)는 지도 없이 학습 데이터를 이용하여 스스로 학습함으로써, 판단 기준을 발견하는 비지도 학습(unsupervised learning)을 통해 신경망 모델을 학습시킬 수 있다. 또한, 모델 학습부(14)는 학습에 따른 상황 판단의 결과가 올바른지에 대한 피드백을 이용하여 강화 학습(reinforcement learning)을 통하여, 신경망 모델을 학습시킬 수 있다. 또한, 모델 학습부(14)는 오류 역전파법(error back-propagation) 또는 경사 하강법(gradient decent)을 포함하는 학습 알고리즘을 이용하여 신경망 모델을 학습시킬 수 있다.
신경망 모델이 학습되면, 모델 학습부(14)는 학습된 신경망 모델을 메모리에 저장할 수 있다. 모델 학습부(14)는 학습된 신경망 모델을 AI 장치(10)와 유선 또는 무선 네트워크로 연결된 서버의 메모리에 저장할 수도 있다.
데이터 학습부(12)는 인식 모델의 분석 결과를 향상시키거나, 인식 모델의 생성에 필요한 리소스 또는 시간을 절약하기 위해 학습 데이터 전처리부(미도시) 및 학습 데이터 선택부(미도시)를 더 포함할 수도 있다.
학습 데이터 전처리부는 획득된 데이터가 상황 판단을 위한 학습에 이용될 수 있도록, 획득된 데이터를 전처리할 수 있다. 예를 들어, 학습 데이터 전처리부는, 모델 학습부(24)가 이미지 인식을 위한 학습을 위하여 획득된 학습 데이터를 이용할 수 있도록, 획득된 데이터를 기 설정된 포맷으로 가공할 수 있다.
또한, 학습 데이터 선택부는, 학습 데이터 획득부(23)에서 획득된 학습 데이터 또는 전처리부에서 전처리된 학습 데이터 중 학습에 필요한 데이터를 선택할 수 있다.선택된 학습 데이터는 모델 학습부(14)에 제공될 수 있다.
또한, 데이터 학습부(12)는 신경망 모델의 분석 결과를 향상시키기 위하여 모델 평가부(미도시)를 더 포함할 수도 있다.
모델 평가부는, 신경망 모델에 평가 데이터를 입력하고, 평가 데이터로부터 출력되는 분석 결과가 소정 기준을 만족하지 못하는 경우, 모델 학습부(12)로 하여금 다시 학습하도록 할 수 있다. 이 경우, 평가 데이터는 인식 모델을 평가하기 위한 기 정의된 데이터일 수 있다. 일 예로, 모델 평가부는 평가 데이터에 대한 학습된 인식 모델의 분석 결과 중, 분석 결과가 정확하지 않은 평가 데이터의 개수 또는 비율이 미리 설정되 임계치를 초과하는 경우, 소정 기준을 만족하지 못한 것으로 평가할 수 있다.
통신부(17)는 AI 프로세서(11)에 의한 AI 프로세싱 결과를 외부 전자 기기로 전송할 수 있다. 예를 들어, 외부 전자 기기는 감시카메라, 블루투스 장치, 자율주행 차량, 로봇, 드론, AR 기기, 모바일 기기, 가전 기기 등을 포함할 수 있다.
한편, 도 1에 도시된 AI 장치(10)는 AI 프로세서(11)와 메모리(15), 통신부(17) 등으로 기능적으로 구분하여 설명하였지만, 전술한 구성요소들이 하나의 모듈로 통합되어 AI 모듈로 호칭될 수도 있음을 밝혀둔다.
본 명세서는 감시용 카메라, 자율주행 차량, 사용자 단말기 및 서버 중 하나 이상이 인공 지능(Artificial Intelligence) 모듈, 로봇, 증강현실(Augmented Reality, AR) 장치, 가상 현실(Virtual reality, VT) 장치, 5G 서비스와 관련된 장치 등과 연계될 수 있다.
상기 도 1에 도시된 AI 장치(10)는 이하 도 2에서 AI 모델(20)을 생성하는 장치 및/또는 타겟 지능형 디바이스(30)의 일 구성이 될 수 있음은 물론이다. 여기서 타겟 지능형 디바이스(30)에 저장된 학습 모델(딥러닝 모델, 16)은 지능형 디바이스 자체적으로 학습시킨 모델일 수도 있고, 외부 서버로부터 전달받은 학습 모델일 수도 있다.
도 2는 본 명세서의 일 실시예에 따른 지능형 소프트웨어 제공 방법을 구현하기 위한 시스템을 설명하기 위한 도면이다. 도 3은 본 명세서의 일 실시예에 따라 AI 분화 모델의 생성을 설명하기 위한 도면이다.
도 2를 참조하면, 본 명세서의 일 실시예에 따른 지능형 소프트웨어 제공 시스템은, AI 모델 관리 장치(100), 소프트웨어 개발장치(200)를 포함할 수 있다. 상기 시스템을 통한 소프트웨어 제공을 위해 타겟 지능형 디바이스(30)가 등록될 수 있다.
상기 소프트웨어 개발장치(200)는 등록된 상기 타겟 지능형 디바이스(30)에 설치될 최적의 지능형 소프트웨어를 AI 모델 관리 장치(100)에서 선택하고, 선택된 소프트웨어를 타겟 지능형 디바이스(30)에 구동 될 수 있도록 한다.
이를 위해 상기 AI 모델 관리 장치(100)는 지능형 소프트웨어 개발 지원을 위해 AI 모델에 대한 저장, 갱신, 검색 기능을 제공할 수 있다. 상기 AI 모델 관리 장치(100)는 클라우드 컴퓨팅 장치, 네트워크에 포함된 서버, 엣지(Edge) 컴퓨팅 디바이스 등으로 구현될 수 있으며, AI 모델 관리 장치(100)는 전술한 장치 들에 한정되지 않고 다양하게 변경되어 구현될 수 있다.
소프트웨어 개발장치(200)는 타겟 지능형 디바이스(30)의 소프트웨어 메타정보를 기반으로 적어도 하나의 AI 모델이 포함된 지능형 소프트웨어를 개발하는 장치일 수 있다.
AI 모델 관리 장치(100)는 AI 모델 관리부(110), 최적 AI 모델 분화부(120), AI 모델 프로파일러(130), AI 모델 저장부(140)를 포함할 수 있다.
AI 모델 관리 장치(100)는 AI 전문가가 하드웨어에 관계없이 영상처리, 음성인식, 자연어 처리 등을 포함하는 다양한 목적을 위해 개발한 AI 모델(20)을 컴퓨팅 자원이 제약된 다양한 지능형 디바이스에 적합하게 활용할 수 있도록 최적 AI 모델을 분화하여 생성하고 관리한다.
AI 모델 관리부(100)는 AI 모델의 저장, 갱신, 검색 기능을 수행할 수 있다. AI 모델 관리부(100)는 AI 전문가들에 의해 개발되어 등록된 AI 모델을 관리한다. AI 모델 관리부(100)는 소프트웨어 개발장치(200)로부터 타겟 지능형 디바이스(30)의 메타정보에 기초하여 타겟 지능형 디바이스(30)에 최적화된 AI 모델을 선택 요청 및 제공 요청을 수신할 수 있다.
최적 AI 모델 분화부(120)는 AI 전문가가 AI 모델 관리부(100)를 통해 등록한 AI 모델을 다수의 AI 모델로 분화시킬 수 있다. 여기서 AI 분화 모델은, 하드웨어의 사양을 고려하지 않고 개발된 AI 모델을 특정 지능형 디바이스의 하드웨어 제약사항(예를 들어, 메모리 크기, CPU/GPU 사양 등) 등이 존재하는 지능형 소프트웨어에 적합한 최적화된 형태로 분화시키는 동작을 의미할 수 있다.
일 실시예에 따라, 도 3을 참조하면, AI 모델 분화는 AI 모델 분화 수준에 따라 다수의 AI 모델로 분화될 수 있다. AI 모델 분화 수준은 도 3에 도시된 바와 같이, AI 모델 관리부(110)에서 분화 범위와 분화 개수에 따라 미리 저장할 수 있다. 여기서 상기 분화 범위 및/또는 분화 개수는 AI 모델(40)을 등록하는 사용자에 의해 설정될 수 있다. AI 모델의 분화는 등록된 AI 모델(40)을 기준(100%)으로, 100% 이하에 해당하는 분화 수준의 AI 모델(41,42)은 가지치기(Pruning), 이진화(Binarization), 양자화(Quantization), 지식 증류(Knowledge Distillation), 뉴럴 아키텍처 검색(Neural Archtecture Search) 및 AutoML 등을 포함한 경량화 기법을 통해 분화될 수 있다. 또한, 100% 이상에 해당하는 분화 수준의 AI 모델(50)은 지식 증류(Knowledge Distillation), 뉴럴 아키텍처 검색(Neural Archtecture Search) 및 AutoML 등을 포함한 AI 모델의 중량화를 통해 분화될 수 있다. 전술한 경량화 기법 또는 중량화 기법은 예시적인 것이며 한정적인 것이 아니다.
AI 모델은 특정 기능을 수행하기 위해 훈련된 것으로서, 학습 데이터의 양에 따라 학습 모델의 크기, 연산량 등이 달라질 수 있다. 예를 들어, 이미지 분류(Image Classification)에서 높은 정확도를 달성하고자 하는 경우, 학습 데이터의 양이 충분히 많은 경우 AI 모델의 크기를 크게 만들어 정확도를 향상시킬 수 있다. 그러나, 학습 데이터의 양이 적은 경우 과적합(Over-fitting)을 방지하기 위해 AI 모델의 크기를 상대적으로 작게 만들어 정확도를 향상시킬 수 있다. 이와 같이, 개발이 완료된 AI 모델은 특정 목적, 주어진 상황(데이터)에서는 최적의 효과를 발휘할 수 있지만, 적용되는 디바이스의 하드웨어 사양이 달라져 AI 모델 구현에 있어서 하드웨어 제약사항이 존재하는 경우, 최적의 효과를 발휘하지 못할 수도 있다.
예를 들어, 학습 데이터가 많아서 높은 정확도를 달성하기 위해 큰 사이즈로 개발된 AI 모델은 타겟 디바이스의 하드웨어 제약사항이 존재할 경우, 연산 지연이 발생하거나, 메모리 제약사항으로 인해 AI 모델의 활용 자체가 불가능할 수도 있다. 이 경우, AI 모델의 경량화가 필요할 수 있다. 또한, 예를 들어, 과적합 방지를 위해 사이즈가 작게 개발된 AI 모델은 특정 산업에서 학습 데이터가 충분히 확보되어 더 높은 정확도를 달성할 수 있음에도 불구하고 작게 개발된 AI 모델의 표현력 부족으로 인해 충분한 성능을 발휘하지 못할 수 있다. 이 경우, AI 모델의 중량화가 필요할 수 있다.
AI 모델의 경량화는 크게 별도의 학습이 필요하지 않은 경량화 기법과, 추가적인 튜닝(학습)이 필요한 경량화 기법으로 구분될 수 있다. 학습이 필요하지 않은 경우, 가지치기, 이진화, 양자화 기법이 해당되며, 이와 같은 기법의 특징은 경량화 수준이 높아질수록 정확도가 떨어지는 특징이 있다. 반대로 추가적인 튜닝이 필요한 경량화 기법은 지식 증류, 뉴럴 아키텍처 검색 및 AutoML이 해당되며, 이러한 기법의 특징은 기 개발된 AI 모델을 대상으로 새로운 구조의 AI 모델을 생성함으로써, 학습 데이터를 활용한 모델 튜닝이 필요할 수 있다. 그리고, 지식 증류, 뉴럴 아키텍처 검색 및 AutoML 등이 포함되는 AI 모델의 중량화는 새로운 파라미터가 추가됨에 따라 반드시 해당 파라미터들을 학습 데이터를 통해 튜닝(학습) 시킬 필요가 있다.
여기서 최적 AI 모델 분화부(120)에서 AI 모델의 분화는, 하드웨어 사양에 관계없이 미리 정해진 분화 수준에 따라 AI 모델의 분화가 이루어질 수도 있다. 다만, 하드웨어 사향에 관계없이 분화가 이루어짐으로 인해, AI 모델 관리 장치(100)에 저장된 분화된 AI 모델 중 등록되는 타겟 디바이스의 하드웨어 제약사항에 최적화된 모델이 존재하지 않을 수 있다. 이 경우, 소프트웨어 개발장치(도 2의 200)에서 지능형 소프트웨어를 분석하는 과정에서 도출된 소프트웨어 요구사항 및 하드웨어 제약사항에 따른 최적 AI 모델을 주문형(On-Demand)으로 분화할 수도 있다.
AI 모델 프로파일러(130)는 AI 분화 모델들에 대한 성능을 분석하여 정확도, 실행시간, 자원 사용량을 포함하는 프로파일 정보를 생성할 수 있다. AI 모델 프로파일러는 소프트웨어 개발장치(200)에서 분석된 소프트웨어 요구사항 및 하드웨어 제약사항에 따른 최적의 AI 분화 모델을 선택하기 위해, AI 분화 모델들에 대한 정확도, 지능형 디바이스별 처리 속도(실행 시간) 및 자원 사용량 등과 같은 프로파일 정보가 필요하다.
AI 분화 모델들은 분화 이전의 원본 AI 모델 대비, 테스트 데이터셋에 대한 정확도가 달라지므로, 상기 원본 AI 모델 개발과정에서 이용한 데이터셋에 대한 정확도 평가를 통해 정확도를 새롭게 도출할 필요가 있다. AI 분화 모델들은 경량화 또는 중량화에 따라 모델의 크기, 연산량이 상이해질 수 있다. 또한, AI 분화 모델들은 동일한 수준의 분화모델이라도 처리 속도 및 자원 사용량 등과 같은 프로파일 정보는 타겟 디바이스의 하드웨어 사양에 따라 달라질 수 있다. 따라서, 이러한 프로파일 정보는 AI 분화 모델들을 타겟 지능형 디바이스들에 대해 평가하여 도출될 수 있다.
AI 모델 저장부(140)는 상기 생성된 프로파일 정보를 분화된 최적의 AI 모델들과 함께 저장한다.
소프트웨어 개발장치(200)는 AI 모델 저장부(140)에 저장된 최적 AI 모델(AI 분화 모델들)을 포함하는 AI 모델들 중 특정 지능형 디바이스에 최적화된 지능형 소프트웨어를 간편하게 구성할 수 있다.
지능형 소프트웨어에 대한 소프트웨어 요구사항(41), 타겟 지능형 디바이스의 하드웨어 제약사항(42) 정보가 포함된 소프트웨어 메타 정보(40)가 타겟 지능형 디바이스(30)의 등록과 함께 소프트웨어 개발장치(200)에 입력될 수 있다.
소프트웨어 분석부(210)는 상기 소프트웨어 메타정보(40)에 기초하여 AI 모델 관리 장치(100)로부터 최적 AI 모델들을 선택하고 전달(예를 들어, 다운로드) 받을 수 있다.
소프트웨어 결합부(220)는 다운로드한 최적 AI 모델들을 등록된 타겟 지능형 디바이스에 이용되는 소프트웨어 로직과 함께 결합할 수 있다. 예를 들어, 타겟 지능형 디바이스가 객체를 인식하여 트래킹하는 기능을 수행하는 경우, 소프트웨어 개발장치(200)는 AI 모델 관리장치(100)에서 최적화된 객체 인식 모델, 객체를 트래킹하는 모델들이 선택할 수 있으며, 소프트웨어 결합부(220)는 상기 타겟 지능형 디바이스에 이용되는 소프트웨어 로직에 포함된 함수에 상기 선택된 AI 모델들을 삽입할 수 있다.
소프트웨어 패키징부(230)는 소프트웨어 종속성 및 AI 모델 종속성 라이브러리와 결합된 지능형 소프트웨어를 기반으로 타겟 지능형 디바이스(30)에서 동작 가능한 실행파일로 변환하여 타겟 지능형 디바이스(30)에 전달할 수 있다.
도 4는 본 명세서의 일 실시예 따라 지능형 소프트웨어 제공 방법의 흐름도이다.
도 2에서 AI 모델 관리 장치(100)와 소프트웨어 개발 장치(200)로 구분하여 AI 모델의 등록, 분화, 검색 기능은 AI 모델 관리 장치(100)에서 수행하는 것으로 설명하였으며, 타겟 지능형 디바이스(30)의 메타 정보에 기초하여 지능형 소프트웨어 요구사항을 분석하고 AI 모델 관리 장치(100)로부터 최적 AI 분화 모델을 제공받는 기능은 소프트웨어 개발장치(200)에서 수행하는 것으로 설명하였다. 나아가 도 2는 설명의 편의를 위해 AI 모델 관리 장치(100) 및 소프트웨어 개발 장치(200) 각각의 하부 기능 블록에 대하여 설명하였으나, 이하 도 4 및 도 5에서 본 명세서의 일 실시예에 다른 지능형 소프트웨어 제공 방법의 흐름에 대한 설명의 편의를 위해 AI 모델 관리부(110), 최적 AI 모델 분화부(120), AI 모델 프로파일러(130), AI 모델 저장부(140)에서 수행되는 각 동작은 AI 모델 관리 장치(100)에서 수행하는 것으로 가정한다. 소프트웨어 개발장치(200)도 마찬가지이다. 다만, 도 2에서 AI 모델 관리 장치(100), 소프트웨어 개발장치(200) 각각의 동작은 독립된 모듈로 제공되거나, 하나의 모듈로 제공되어 하나의 프로세서 또는 각각의 프로세서에서 해당 동작이 수행되도록 설계될 수 있음은 물론이다.
도 4를 참조하면, AI 모델 관리 장치(100)는, 미리 훈련된 AI 모델 및 상기 AI 모델의 메타정보를 입력받을 수 있다(S400). 상기 미리 훈련된 AI 모델은 타겟 지능형 디바이스 사양에 종속되지 않는 모델일 수 있다. 상기 AI 모델의 메타 정보는 상기 AI 모델을 설명하는 정보일 수 있다. 상기 AI 모델의 메타 정보는 AI 모델의 분류 카테고리(예를 들어, 이미지 분류, 객체 인식, 화자 인식, 음성 인식 등), 모델 크기, 정확도 정보 등을 포함할 수 있다. 상기 타겟 지능형 디바이스는 엣지형 디바이스일 수 있다.
AI 모델 관리 장치(100)는 상기 AI 모델을 복수의 분화(differentiation) 수준에 따라 복수의 AI 분화 모델을 생성할 수 있다(S410). 도 3의 설명에서 설명한 바와 같이, 분화 수준(범위, 개수 등)은 사용자에 의해 미리 설정되거나, 등록된 타겟 지능형 디바이스의 사양에 최적화되도록 설정될 수도 있다. 타겟 디바이스의 사양에 따라 분화되는 경우 분화되는 AI 모델의 크기 및 연산량은 등록된 지능형 디바이스의 최대 사향을 초과하지 않으며, 타겟 디바이스에서 2개 이상의 AI 모델이 동지에 동작하는 지능형 소프트웨어 개발을 지원하기 위해, 기 설정된 1개 이상의 최적화 수준에 따라 생성될 수 있다.
AI 모델 관리 장치(100)는 분화전 AI 모델 정보에 기초하여 상기 AI 분화 모델에 대한 프로파일링 동작을 수행할 수 있다(S420). AI 모델 프로파일러는 분류 카테고리 별 평가 데이터 셋을 활용하여 분화된 최적 AI 모델들에 대한 정확도를 평가하고, 등록된 타겟 지능형 디바이스의 하드웨어 사양에 따른 실행시간 및 자원 사용량을 분석하여 최적 AI 모델 별, 및 하드웨어 사양 별 프로파일을 생성하게 된다.
AI 모델 관리 장치(100)는 상기 AI 모델의 메타정보, 상기 AI 분화 모델, 상기 디바이스의 하드웨어 사양 및 상기 프로파일 정보를 포함하는 AI 모델 데이터를 저장부에 저장할 수 있다(S430). 저장부에 저장되는 파일은 AI 메타정보, 분화(경량 또는 중량 AI 모델, 하드웨어 사양정보, 프로파일을 포함할 수 있다.
한편, AI 모델 관리 장치(100)는 타겟 디바이스의 요구사항을 입력받고, 상기 저장부에 저장된 AI 모델 데이터 중 상기 요구사항을 만족하는 제1 모델을 선택하여 상기 타겟 디바이스로 전달할 수 있다.
도 5는 본 명세서의 일 실시예에 따라 지능형 소프트웨어 제공 방법의 흐름도의 다른 예이다. 도 5는 소프트웨어 개발 장치(100)에서 수행되는 동작을 설명한다.
소프트웨어 개발 장치(200)는 타겟 디바이스의 소프트웨어 요구사항 및 하드웨어 사양을 포함하는 소프트웨어 메타정보를 입력받을 수 있다(S500). 여기서 소프트웨어 요구사항은 지능형 소프트웨어에 포함되는 AI 모델들에 대한 목표 정확도 수준, 추론 속도, 우선순위, 지능형 소프트웨어 로직 및 전체 실행시간, 정밀도를 포함할 수 있다. 여기서 상기 지능형 소프트웨어는 최적 AI 모델이 결합되기 전, 타겟 지능형 디바이스에 탑재되어 구동되는 소프트웨어를 의미할 수 있다. 또한, 상기 하드웨어 사항은 타겟 지능형 디바이스의 CPU, GPU, 메모리 사양을 포함할 수 있다.
소프트웨어 개발 장치(200)는 상기 저장부에 저장된 AI 모델 데이터 중 상기 소프트웨어 메타정보를 만족하는 제1 AI 모델을 선택할 수 있다(S510). 소프트웨어 개발 장치(200)는 AI 모델 관리 장치(100) 내에서 사용 가능한 AI 모델 데이터 리스트로부터 상기 소프트웨어 메타정보를 만족하는 최적의 AI 모델을 선택하여 다운로드 받을 수 있다.
소프트웨어 개발 장치(100)는 상기 소프트웨어 메타정보에 포함된 소프트웨어 로직과 상기 제1 AI 모델을 결합하여 상기 타겟 디바이스용 소프트웨어를 생성할 수 있다(S520). 여기서 상기 소프트웨어 메타정보는 상기 타겟 지능형 디바이스용 지능형 소프트웨어 개발자가 작성한 소프트웨어 메타정보로서, 상기 소프트웨어 메타정보는 소프트웨어 로직을 포함하고, 상기 로직에 다운로드 받은 AI 모델들을 결합함으로써, 타겟 지능형 디바이스에서 이용 가능한 지능형 소프트웨어를 조립하게 된다.
소프트웨어 개발 장치(100)는 상기 결합된 소프트웨어를 상기 타겟 디바이스에서 실행 가능하도록 실행파일로 변환하여 상기 타겟 디바이스에 전달할 수 있다(S530)
이상, 지능형 디바이스 개발을 위한 AI 분화 기법에 기초한 하드웨어 최적화된 지능형 소프트웨어를 개발하는 도구 및 방법에 대하여 설명하였다. 본 명세서의 실시예에 의하면, 지능형 소프트웨어 메타정보에 따른 최적 AI 모델을 선택해서 타겟 디바이스에 적합한 지능형 소프트웨어 실행파일을 생성함으로써, 지능형 디바이스용 소프트웨어 개발자로 하여금 인공지능 및 AI 경량화(중량화)에 대한 전문지식이 미흡하더라도 하나 이상의 AI 기능이 포함된 지능형 소프트웨어를 쉽게 개발할 수 있다.
본 명세서에 개시되는 AI 모델 관리 장치(100)는 Python의 pip(Python Package Index)와 node.js의 npm(Node Package Manager)와 유사하게, 지능형 소프트웨어 개발을 위한 인공지능 모델을 소프트웨어 라이브러리 형태로 관리 및 공유함으로써 다양한 지능형 IoT 서비스를 지원하는 지능형 소프트웨어 개발이 용이해짐에 따라 지능형 디바이스 용 지능형 소프트웨어 개발 시장 성장의 원동력으로 작용할 수 있다.
또한, 본 명세서에 개시되는 소프트웨어 개발장치(200)는 AI 모델 관리 장치(100)와 분리 운영될 수 있으며, 이로 인해, 지능형 디바이스 개발자와 AI 소프트웨어 개발자 상호간 전문지식에 종속되지 않을 수 채 각 프로그램 및 기술을 개발할 수 있게 지원함으로써, 전문지식 습득에 필요한 시간 및 비용을 최소화하여 업무 효율성을 증대시킬 수 있다.
전술한 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
100: AI 모델 관리 장치 200: 소프트웨어 개발장치

Claims (9)

  1. 미리 훈련된 AI 모델 및 상기 AI 모델의 메타정보를 입력받는 단계;
    상기 AI 모델을 복수의 분화(differentiation) 수준에 따라 복수의 AI 분화 모델을 생성하는 단계;
    분화전 AI 모델 정보에 기초하여 상기 AI 분화 모델에 대한 프로파일링 동작을 수행하는 단계;
    상기 AI 모델의 메타정보, 상기 AI 분화 모델, 타겟 디바이스의 하드웨어 사양 및 상기 프로파일링 동작에 따른 프로파일 정보를 포함하는 AI 모델 데이터를 저장부에 저장하는 단계; 및
    상기 타겟 디바이스의 요구사항을 입력받고, 상기 저장부에 저장된 AI 모델 데이터 중 상기 요구사항을 만족하는 제1 모델을 선택하여 상기 타겟 디바이스로 전달하는 단계;
    를 포함하는 지능형 소프트웨어 제공 방법.
  2. 제 1 항에 있어서,
    상기 타겟 디바이스의 소프트웨어 요구사항 및 하드웨어 사양을 포함하는 소프트웨어 메타정보를 입력받는 단계;
    상기 저장부에 저장된 AI 모델 데이터 중 상기 소프트웨어 메타정보를 만족하는 제1 AI 모델을 선택하는 단계;
    상기 소프트웨어 메타정보에 포함된 소프트웨어 로직과 상기 제1 AI 모델을 결합하여 상기 타겟 디바이스용 소프트웨어를 생성하는 단계; 및
    상기 결합된 소프트웨어를 상기 타겟 디바이스에서 실행 가능하도록 실행파일로 변환하여 상기 타겟 디바이스에 전달하는 단계;
    를 더 포함하는 지능형 소프트웨어 제공 방법.
  3. 제 1 항에 있어서,
    상기 프로파일링 동작을 수행하는 단계는,
    상기 AI 분화 모델의 정확도, 미리 등록된 디바이스의 하드웨어 사양에 따른 실행시간, 자원사용량을 포함하는 상기 프로파일 정보를 생성하는 것을 특징으로 하는 지능형 소프트웨어 제공 방법.
  4. 제 1 항에 있어서,
    상기 미리 훈련된 AI 모델은 상기 타겟 디바이스의 하드웨어 사양에 비종속적이며, 상기 AI 모델의 메타정보는, 상기 AI 모델의 기능, 크기 및 정확도를 포함하는 것을 특징으로 하는 지능형 소프트웨어 제공 방법.
  5. 제 1 항에 있어서,
    상기 분화 수준은, 미리 정해진 분화 범위 및 분화 개수의 정보를 포함하는 것을 특징으로 하는 지능형 소프트웨어 제공 방법.
  6. 제 5 항에 있어서,
    상기 분화 수준은,
    상기 AI 모델의 경량화 또는 중량화 중 어느 하나를 포함하되,
    상기 경량화는 가지치기(Pruning), 이진화(Binarization), 양자화(Quantization), 지식 증류(Knowledge Distillation), 뉴럴 아키텍처 검색(Neural Archtecture Search) 또는 AutoML 중 적어도 하나를 포함하고,
    상기 중량화는, 지식 증류(Knowledge Distillation), 뉴럴 아키텍처 검색(Neural Archtecture Search) 또는 AutoML 중 적어도 하나를 포함하는 것을 특징으로 하는 지능형 소프트웨어 제공 방법.
  7. 제 5 항에 있어서,
    상기 저장부에 저장된 상기 복수의 AI 분화 모델 중 상기 타겟 디바이스의 하드웨어 사양을 만족시키는 모델이 존재하지 않는 경우, 상기 타겟 디바이스의 하드웨어 사양에 따른 특정 요구사항 및 제약사항에 따른 분화 요청을 수신하고, 상기 분화 요청에 따라 상기 AI 모델을 분화시키는 단계;
    를 더 포함하는 것을 특징으로 하는 지능형 소프트웨어 제공 방법.
  8. 미리 훈련된 AI 모델 및 상기 AI 모델의 메타정보를 입력받아 AI 모델을 관리하는 AI 모델 관리 장치; 및
    타겟 디바이스가 등록되면, 상기 타겟 디바이스의 소프트웨어 요구사항 및 하드웨어 사양을 포함하는 소프트웨어 메타정보에 기초하여 상기 AI 모델 관리 장치를 통해 관리되는 AI 모델 중 상기 소프트웨어 메타정보를 만족시키는 제1 AI 모델을 선택하고, 상기 타겟 디바이스에서 실행 가능하도록 패키징하여 상기 타겟 디바이스로 전달하는 소프트웨어 개발 장치;를 포함하고,
    상기 AI 모델 관리 장치는,
    상기 AI 모델을 복수의 분화(differentiation) 수준에 따라 복수의 AI 분화 모델을 생성하는 AI 모델 분화부;
    분화전 AI 모델 정보에 기초하여 상기 AI 분화 모델에 대한 프로파일링 동작을 수행하는 AI 모델 프로파일러; 및
    상기 AI 모델의 메타정보, 상기 AI 분화 모델, 상기 디바이스의 하드웨어 사양 및 상기 프로파일링 동작에 따른 프로파일 정보를 포함하는 AI 모델 데이터를 저장하는 AI 모델 저장부;
    를 포함하는 것을 특징으로 하는 지능형 소프트웨어 제공 시스템.
  9. 제 8 항에 있어서,
    상기 소프트웨어 개발 장치는,
    상기 저장부에 저장된 AI 모델 데이터 중 상기 소프트웨어 메타정보를 만족하는 제1 AI 모델을 선택하는 소프트웨어 분석부;
    상기 소프트웨어 메타정보에 포함된 소프트웨어 로직과 상기 제1 AI 모델을 결합하여 상기 타겟 디바이스용 소프트웨어를 결합하는 소프트웨어 결합부; 및
    상기 결합된 소프트웨어를 상기 타겟 디바이스에서 실행 가능하도록 실행파일로 변환하여 소프트웨어 패키징부;
    를 포함하는 것을 특징으로 하는 지능형 소프트웨어 제공 시스템.
KR1020210162280A 2021-11-23 2021-11-23 지능형 디바이스 개발을 위한 ai 분화 기반의 하드웨어 정보에 최적의 지능형 소프트웨어 개발도구 KR102644593B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020210162280A KR102644593B1 (ko) 2021-11-23 2021-11-23 지능형 디바이스 개발을 위한 ai 분화 기반의 하드웨어 정보에 최적의 지능형 소프트웨어 개발도구
US17/542,545 US11941376B2 (en) 2021-11-23 2021-12-06 AI differentiation based HW-optimized intelligent software development tools for developing intelligent devices

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210162280A KR102644593B1 (ko) 2021-11-23 2021-11-23 지능형 디바이스 개발을 위한 ai 분화 기반의 하드웨어 정보에 최적의 지능형 소프트웨어 개발도구

Publications (2)

Publication Number Publication Date
KR20230076937A KR20230076937A (ko) 2023-06-01
KR102644593B1 true KR102644593B1 (ko) 2024-03-07

Family

ID=86383799

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210162280A KR102644593B1 (ko) 2021-11-23 2021-11-23 지능형 디바이스 개발을 위한 ai 분화 기반의 하드웨어 정보에 최적의 지능형 소프트웨어 개발도구

Country Status (2)

Country Link
US (1) US11941376B2 (ko)
KR (1) KR102644593B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230142231A (ko) * 2022-04-01 2023-10-11 한국전자통신연구원 신경망 응용 개발 장치 및 방법
KR102666578B1 (ko) * 2023-10-12 2024-05-16 주식회사 알티스트 Trosar 플랫폼 기반의 빌드 환경 구성 방법
CN117807425B (zh) * 2024-03-01 2024-05-10 创略智造(河北)工业设计有限公司 一种智能数据分析方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180089592A1 (en) 2016-09-27 2018-03-29 Clarifai, Inc. Artificial intelligence development via user-selectable/connectable model representations
JP2020129368A (ja) 2019-02-07 2020-08-27 エーオー カスペルスキー ラボAO Kaspersky Lab 検索条件に基づいてユーザを識別してターゲティングするシステムおよび方法
WO2021161429A1 (ja) 2020-02-12 2021-08-19 日本電信電話株式会社 プログラム生成装置、プログラム生成方法及びプログラム
JP2021521505A (ja) 2018-05-07 2021-08-26 グーグル エルエルシーGoogle LLC 包括的機械学習サービスを提供するアプリケーション開発プラットフォームおよびソフトウェア開発キット

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11774944B2 (en) * 2016-05-09 2023-10-03 Strong Force Iot Portfolio 2016, Llc Methods and systems for the industrial internet of things
CN106096727B (zh) * 2016-06-02 2018-12-07 腾讯科技(深圳)有限公司 一种基于机器学习的网络模型构造方法及装置
US11030484B2 (en) * 2019-03-22 2021-06-08 Capital One Services, Llc System and method for efficient generation of machine-learning models
CN114610271A (zh) * 2020-11-25 2022-06-10 共达地创新技术(深圳)有限公司 Ai模型的定制方法、电子设备及计算机可读存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180089592A1 (en) 2016-09-27 2018-03-29 Clarifai, Inc. Artificial intelligence development via user-selectable/connectable model representations
JP2021521505A (ja) 2018-05-07 2021-08-26 グーグル エルエルシーGoogle LLC 包括的機械学習サービスを提供するアプリケーション開発プラットフォームおよびソフトウェア開発キット
JP2020129368A (ja) 2019-02-07 2020-08-27 エーオー カスペルスキー ラボAO Kaspersky Lab 検索条件に基づいてユーザを識別してターゲティングするシステムおよび方法
WO2021161429A1 (ja) 2020-02-12 2021-08-19 日本電信電話株式会社 プログラム生成装置、プログラム生成方法及びプログラム

Also Published As

Publication number Publication date
KR20230076937A (ko) 2023-06-01
US20230161568A1 (en) 2023-05-25
US11941376B2 (en) 2024-03-26

Similar Documents

Publication Publication Date Title
KR102644593B1 (ko) 지능형 디바이스 개발을 위한 ai 분화 기반의 하드웨어 정보에 최적의 지능형 소프트웨어 개발도구
US10628527B2 (en) Automatically cross-linking application programming interfaces
US20200265301A1 (en) Incremental training of machine learning tools
KR102535411B1 (ko) 메트릭 학습 기반의 데이터 분류와 관련된 장치 및 그 방법
JP2020091922A (ja) 畳み込みニューラルネットワークにおける構造学習
US20200242736A1 (en) Method for few-shot unsupervised image-to-image translation
EP4163833A1 (en) Deep neural network model design enhanced by real-time proxy evaluation feedback
US20200042419A1 (en) System and method for benchmarking ai hardware using synthetic ai model
KR20190029083A (ko) 신경망 학습 방법 및 이를 적용한 장치
KR102293791B1 (ko) 반도체 소자의 시뮬레이션을 위한 전자 장치, 방법, 및 컴퓨터 판독가능 매체
US20240177017A1 (en) System and method for continuous integration and deployment of service model using deep learning framework
KR20230065038A (ko) 쿼리 기반 데이터베이스 연동 딥러닝 분산 시스템 및 그 방법
Galeone Hands-on neural networks with TensorFlow 2.0: understand TensorFlow, from static graph to eager execution, and design neural networks
Chidambaram et al. An integration of archerfish hunter spotted hyena optimization and improved ELM classifier for multicollinear big data classification tasks
US11461662B1 (en) Compilation time reduction for memory and compute bound neural networks
US20220383073A1 (en) Domain adaptation using domain-adversarial learning in synthetic data systems and applications
EP3971782A2 (en) Neural network selection
KR20230038136A (ko) 가지치기 기반 심층 신경망 경량화에 특화된 지식 증류 방법 및 시스템
KR102700884B1 (ko) 인공지능 모델 기반 음원 채널 별 유통 및 마케팅 자동화를 통한 음원 콘텐츠 엑셀러레이팅 플랫폼 서비스 제공 방법, 장치 및 시스템
EP3923208B1 (en) Automated hardware resource optimization
US12026078B1 (en) Device and method for providing benchmark result of artificial intelligence based model
US20240289585A1 (en) Device and method for providing benchmark result of artificial intelligence based model
US11790398B2 (en) Classification and prediction of online user behavior using HMM and LSTM
KR102429832B1 (ko) 네트워크 환경 분석 기반 원격 접속 서비스 제공 방법
US20240289247A1 (en) Device and method for providing benchmark result of artificial intelligence based model

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant