Search

KR-102960728-B1 - APPARATUS AND METHOD FOR OPTIMIZING ARTIFICIAL INTELLIGENCE BASED MODEL

KR102960728B1KR 102960728 B1KR102960728 B1KR 102960728B1KR-102960728-B1

Abstract

컴퓨팅 디바이스에 의해 수행되는, 인공지능 기반의 모델을 최적화하기 위한 방법이 개시된다.

Inventors

  • 최신국
  • 백종원

Assignees

  • 주식회사 노타

Dates

Publication Date
20260506
Application Date
20250224

Claims (20)

  1. 컴퓨팅 디바이스에 의해 수행되는, 인공지능 기반의 모델을 최적화(optimization)하기 위한 방법으로서, 인공지능 기반의 모델에 대응되는 모델 정보를 획득하고 그리고 상기 모델이 실행될 타겟 디바이스에 대응되는 타겟 디바이스 정보를 획득하는 단계; 상기 모델 정보에 기초하여, 상기 모델에 포함된 연산자들을 그룹화함으로써, 상기 모델에 대응되는 연산자들의 블록(block)을 획득하는 단계; 및 블록 풀 내의 블록들 중에서 상기 타겟 디바이스 정보를 필터링 기준(filtering criteria)으로 이용하여 결정된 적어도 하나의 후보 블록과 상기 모델에 대응되는 연산자들의 블록들 간의 비교에 기초하여, 상기 모델에 대응되는 연산자들의 블록들 중 적어도 하나를 상기 적어도 하나의 후보 블록으로 변경함으로써, 상기 모델이 상기 타겟 디바이스에 대응되도록 상기 모델의 적어도 일부를 변경하는 단계; 를 포함하는, 방법.
  2. 제 1 항에 있어서, 상기 연산자들의 블록들 각각은, 상기 모델의 기능을 달성하기 위해 필수적으로 사용되는 연산자들을 포함하며, 그리고 상기 연산자들의 블록들 각각은, 연산자를 나타내는 노드(node)와 연산자들 간의 연결을 나타내는 엣지(edge)를 포함하는 구조를 가지는, 방법.
  3. 제 1 항에 있어서, 상기 모델에 대응되는 상기 연산자들의 블록을 획득하는 단계는, 상기 모델 정보를 파싱함으로써 상기 모델을 구성하는 연산자들을 결정하고, 그리고 상기 연산자들을 하나 이상의 블록들로 그룹화함으로써 상기 모델을 상기 연산자들의 블록 단위로 재구성하는, 방법.
  4. 제 1 항에 있어서, 상기 모델이 상기 타겟 디바이스에 대응되도록 상기 모델의 적어도 일부를 변경하는 단계는, 상기 모델에 대응되는 연산자의 블록들 중 적어도 하나를 상기 적어도 하나의 후보 블록으로 대체함으로써 상기 모델이 상기 타겟 디바이스에 대응되도록 상기 모델의 구조를 변경하는, 방법.
  5. 제 1 항에 있어서, 상기 블록 풀 내의 블록들 중에서 상기 필터링 기준을 이용하여 상기 연산자들의 블록과의 비교 대상이 되는 상기 적어도 하나의 후보 블록을 결정하는 단계; 를 더 포함하고, 그리고 상기 필터링 기준은, 상기 모델 정보 및 상기 타겟 디바이스 정보의 조합에 기초하여 결정되는, 방법.
  6. 제 5 항에 있어서, 상기 필터링 기준은, 상기 블록 풀 내에서의 사전 저장된 복수의 블록들 중에서 상기 모델을 구성하는 상기 연산자들의 블록들 각각의 입력 크기 또는 출력 크기와 대응되는 입력 크기 또는 출력 크기를 가지는 블록을 후보 블록으로서 결정하기 위한 제 1 필터링 기준을 포함하는, 방법.
  7. 제 5 항에 있어서, 상기 필터링 기준은, 상기 블록 풀 내에서의 사전 저장된 복수의 블록들 중에서 상기 타겟 디바이스에서 지원하는 연산자들로만 이루어진 블록을 상기 후보 블록으로서 결정하기 위한 제 2 필터링 기준을 포함하는, 방법.
  8. 제 1 항에 있어서, 상기 모델에 대응되는 연산자들의 블록을 획득하는 단계는, 사전 정의된 연산자들의 집합에 대응되는 참조(reference) 블록 및 사용자 정의에 따른 연산자들의 집합에 대응되는 커스텀(custom) 블록을 포함하는 상기 블록 풀 내의 블록들 중에서, 상기 모델 정보에 대응되는 연산자들을 커버하기 위한 연산자들의 블록을 결정하는 단계; 를 포함하며, 그리고 상기 연산자들의 블록들 중 하나의 블록은 상기 모델을 구성하는 연산자들의 부분집합(subset)에 대응되는, 방법.
  9. 제 1 항에 있어서, 상기 비교는, 상기 적어도 하나의 후보 블록에 대한 상기 타겟 디바이스에서의 제 1 성능과 상기 연산자들의 블록들에 대한 상기 타겟 디바이스에서의 제 2 성능 간의 비교를 포함하는, 방법.
  10. 제 9 항에 있어서, 상기 제 1 성능 및 상기 제 2 성능은, 상기 타겟 디바이스에서 예상되는 블록 레이턴시(latency), 상기 타겟 디바이스에서 예상되는 블록 정확도(accuracy) 또는 상기 타겟 디바이스에서 예상되는 블록 전력 소비량(power consumption) 중 적어도 하나를 포함하는, 방법.
  11. 제 1 항에 있어서, 상기 모델의 적어도 일부를 변경하는 단계는: 상기 모델의 타입을 부동 소수점(floating point) 타입 또는 정수(integer) 타입 중 적어도 하나로 변경하는 방식을 이용하여, 상기 모델을 양자화하는 단계; 를 포함하며, 그리고 상기 양자화하는 단계는: 최적화의 대상인 상기 연산자들의 블록들 각각이 혼합 정밀화(mixed precision)를 지원하는지 여부를 결정하는 단계; 및 상기 혼합 정밀화를 지원하는 연산자들의 블록에서 중 양자화 에러(quantization error)가 제 1 값인 연산자는 부동 소수점 타입을 갖도록 유지하고 그리고 상기 양자화 에러가 제 2 값인 연산자는 정수 타입으로 양자화를 수행하는 단계; 를 포함하며, 상기 제 1 값이 상기 제 2 값 보다 큰, 방법.
  12. 컴퓨팅 디바이스에 의해 수행되는, 인공지능 기반의 모델을 최적화(optimization)하기 위한 방법으로서, 인공지능 기반의 모델에 대응되는 모델 정보를 획득하고 그리고 상기 모델이 실행될 타겟 디바이스에 대응되는 타겟 디바이스 정보를 획득하는 단계; 상기 모델 정보에 기초하여, 하나 이상의 연산자들을 그룹화함으로써, 상기 모델에 대응되는 연산자들의 블록을 획득하는 단계; 상기 타겟 디바이스 정보를 필터링 기준(filtering criteria)으로 이용하여 결정된 적어도 하나의 후보 블록과 상기 모델에 대응되는 연산자들의 블록들 간의 비교에 기초하여, 상기 모델에 대응되는 연산자들의 블록들 중 적어도 하나를 상기 적어도 하나의 후보 블록으로 변경함으로써, 상기 모델이 상기 타겟 디바이스에 대응되도록 상기 모델의 적어도 일부를 변경하는 단계; 상기 변경된 모델을 상기 타겟 디바이스에서 지원 가능한 런타임을 갖도록 컨버팅(converting)하는 단계; 상기 컨버팅된 모델을 상기 타겟 디바이스에서 실행시킴에 따라 생성되는 벤치마크 결과를 획득하는 단계; 상기 타겟 디바이스에 대응되는 제 1 제약 조건 또는 사용자에 의해 설정된 제 2 제약 조건 중 적어도 하나의 제약 조건을 상기 벤치마크 결과가 충족시키는지 여부를 결정하는 단계; 및 상기 벤치마크 결과가 상기 적어도 하나의 제약 조건을 충족시키지 않는다고 결정되는 경우, 상기 모델이 상기 타겟 디바이스에 대응되도록 상기 모델의 적어도 일부를 변경하는 단계를 재수행할 것을 결정하는 단계; 를 포함하는, 방법.
  13. 컴퓨팅 디바이스에 의해 수행되는, 인공지능 기반의 모델을 최적화(optimization)하기 위한 방법으로서, 인공지능 기반의 모델에 대응되는 모델 정보를 획득하고 그리고 상기 모델이 실행될 타겟 디바이스에 대응되는 타겟 디바이스 정보를 획득하는 단계; 상기 모델 정보에 기초하여, 하나 이상의 연산자들을 그룹화함으로써, 상기 모델에 대응되는 연산자들의 블록을 획득하는 단계; 및 상기 타겟 디바이스 정보를 필터링 기준(filtering criteria)으로 이용하여 결정된 적어도 하나의 후보 블록과 상기 모델에 대응되는 연산자들의 블록들 간의 비교에 기초하여, 상기 모델에 대응되는 연산자들의 블록들 중 적어도 하나를 상기 적어도 하나의 후보 블록으로 변경함으로써, 상기 모델이 상기 타겟 디바이스에 대응되도록 상기 모델의 적어도 일부를 변경하는 단계; 를 포함하며, 그리고 상기 연산자들의 블록 또는 상기 후보 블록은, 사전 정의된 연산자들의 집합에 대응되는 참조 블록 또는 사용자 정의에 따른 연산자들의 집합에 대응되는 커스텀 블록을 포함하는 블록 풀로부터 선택 가능하며, 상기 블록 풀 내에서의 블록들 각각은, 블록의 특성 또는 상기 블록 내의 연산자들의 특성을 나타내는 메타데이터로서 정의되고, 상기 메타데이터는, 상기 블록 내의 연산자들의 순서, 연산자들 각각의 타입, 연산자들 각각의 입력 데이터 정보, 연산자들 각각의 출력 데이터 정보 및 연산자들 각각에 대한 제약(constraint)를 포함하며, 그리고 상기 모델의 적어도 일부를 변경하는 단계는, 상기 메타데이터에 기초하여 상기 모델의 변경의 정량적인 레벨 또는 상기 모델의 변경의 방식을 가변하는 방식으로, 상기 모델이 상기 타겟 디바이스에 대응되도록 상기 모델의 적어도 일부를 변경하는 단계; 를 포함하는, 방법.
  14. 삭제
  15. 제 1 항에 있어서, 상기 모델의 적어도 일부를 변경하는 단계는, 블록 또는 블록 내의 연산자에 대한 압축, 경량화 및 양자화 중 적어도 하나를 연산자들의 블록 단위로 수행하는 단계를 포함하는, 방법.
  16. 제 1 항에 있어서, 상기 모델의 적어도 일부를 변경하는 단계는, 상기 모델에 대응되는 상기 연산자들의 블록들 중 적어도 하나를 상기 타겟 디바이스에서 실행가능한 대체 연산자들로 구성된 상기 적어도 하나의 후보 블록으로 변경함으로써, 상기 모델이 상기 타겟 디바이스에 대응되도록 상기 모델의 적어도 일부를 변경하는 단계; 를 포함하는, 방법.
  17. 제 16 항에 있어서, 상기 타겟 디바이스에서 지원 가능한 연산자들 중에서, 연산자의 수학적 연산 결과, 연산자의 입력 크기, 연산자의 출력 크기, 연산자의 입력값, 연산자의 출력값, 및 연산자의 이전 혹은 이후 연산자들 간의 관계에 기초하여 상기 대체 연산자들이 결정되는, 방법.
  18. 제 16 항에 있어서, 상기 타겟 디바이스에서 지원 가능한 연산자들 중에서, 상기 모델에 포함된 연산자와 동일하지는 않지만 상기 모델에 포함된 연산자가 수행하는 기능을 동일하게 수행하는 연산자, 또는 상기 모델에 포함된 연산자에서 입력 또는 출력되는 데이터의 형상과 정량적으로 치환가능한 형상의 데이터를 갖는 연산자가 상기 대체 연산자들로 결정되는, 방법.
  19. 컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램으로서, 상기 컴퓨터 프로그램은, 적어도 하나의 프로세서에 의해 실행 시, 상기 적어도 하나의 프로세서로 하여금 인공지능 기반의 모델을 최적화하기 위한 동작을 수행하도록 허용하여, 상기 동작은: 인공지능 기반의 모델에 대응되는 모델 정보를 획득하고 그리고 상기 모델이 실행될 타겟 디바이스에 대응되는 타겟 디바이스 정보를 획득하는 동작; 상기 모델 정보에 기초하여, 상기 모델에 포함된 연산자들을 그룹화함으로써, 상기 모델에 대응되는 연산자들의 블록을 획득하는 동작; 및 블록 풀 내의 블록들 중에서 상기 타겟 디바이스 정보를 필터링 기준으로 이용하여 결정된 적어도 하나의 후보 블록과 상기 모델에 대응되는 연산자들의 블록들 간의 비교에 기초하여, 상기 모델에 대응되는 연산자들의 블록들 중 적어도 하나를 상기 적어도 하나의 후보 블록으로 변경함으로써, 상기 모델이 상기 타겟 디바이스에 대응되도록 상기 모델의 적어도 일부를 변경하는 동작; 을 포함하는, 컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
  20. 컴퓨팅 디바이스로서, 적어도 하나의 프로세서; 및 메모리; 를 포함하며, 상기 적어도 하나의 프로세서는: 인공지능 기반의 모델에 대응되는 모델 정보를 획득하고 그리고 상기 모델이 실행될 타겟 디바이스에 대응되는 타겟 디바이스 정보를 획득하는 동작; 상기 모델 정보에 기초하여, 상기 모델에 포함된 연산자들을 그룹화함으로써, 상기 모델에 대응되는 연산자들의 블록을 획득하는 동작; 및 블록 풀 내의 블록들 중에서 상기 타겟 디바이스 정보를 필터링 기준으로 이용하여 결정된 적어도 하나의 후보 블록과 상기 모델에 대응되는 연산자들의 블록들 간의 비교에 기초하여, 상기 모델에 대응되는 연산자들의 블록들 중 적어도 하나를 상기 적어도 하나의 후보 블록으로 변경함으로써, 상기 모델이 상기 타겟 디바이스에 대응되도록 상기 모델의 적어도 일부를 변경하는 동작; 을 수행하는, 컴퓨팅 디바이스.

Description

인공지능 기반의 모델을 최적화하기 위한 방법 및 장치 {APPARATUS AND METHOD FOR OPTIMIZING ARTIFICIAL INTELLIGENCE BASED MODEL} 본 개시내용은 인공지능 기술에 관한 것으로 보다 구체적으로 인공지능 기반의 모델의 최적화 기술에 관한 것이다. 인공지능 기술의 발전으로 인해, 다양한 형태의 인공지능 기반의 모델이 개발되고 있다. 다양한 인공지능 기반의 모델들을 처리하기 위한 연산 자원에 대한 요구 또한 증가하고 있으며, 관련 산업 내에서도 새로운 능력을 가지는 하드웨어들의 개발이 지속적으로 이루어지고 있다. 개인용 컴퓨터, 스마트폰, 자동차, 웨어러블 장치 및 로봇 등과 같은 네트워크 상에서의 단말들에서 직접적인 연산이 이루어질 수 있는 엣지(edge) 인공지능에 대한 수요가 증가함에 따라, 하드웨어 리소스를 고려한 인공지능 기반의 모델에 대한 연구가 이루어지고 있다. 이처럼 엣지 인공지능 기술의 발전과 함께 인공지능 기술 분야에서 하드웨어에 대한 중요성이 커짐에 따라, 인공지능 기반 솔루션을 개발하고 런칭하기 위해서는, 인공지능 기반의 모델 뿐만 아니라 인공지능 기반의 모델이 실행될 다양한 하드웨어에 대한 충분한 지식 또한 함께 요구된다. 예를 들어, 특정 도메인에서 뛰어난 성능을 가지는 모델이 존재하더라도, 이러한 모델에 대한 추론 성능이 모델이 실행될 하드웨어 별로 상이할 수 있다. 특정 도메인에서 최적의 성능을 보유한 모델이 서비스가 제공될 특정 하드웨어에서 지원되지 않는 상황 또한 존재할 수 있다. 이에 따라, 제공하고자 하는 서비스에 적합한 인공지능 기반의 모델과 인공지능 기반의 모델에 적합한 하드웨어를 함께 결정하기 위해서는 인공지능 기술과 하드웨어 기술에 대한 높은 수준의 배경 지식과 방대한 양의 리소스가 요구될 수 있다. 도 1은 본 개시내용의 일 실시예에 따른 컴퓨팅 디바이스의 블록 구성도를 개략적으로 도시한다. 도 2는 본 개시내용의 일 실시예에 따른 인공지능 기반의 모델의 예시적인 구조를 도시한다. 도 3은 본 개시내용의 일 실시예에 따른 모델의 최적화 방법을 예시적으로 도시한다. 도 4는 본 개시내용의 일 실시예에 따른 모델의 최적화 방법을 예시적으로 도시한다. 도 5는 본 개시내용의 일 실시예에 따라 연산자 및 블록의 변경 방법을 예시적으로 도시한다. 도 6은 본 개시내용의 일 실시예에 따라 블록의 변경 방법을 예시적으로 도시한다. 도 7은 본 개시내용의 일 실시예에 따른 블록의 구조를 예시적으로 도시한다. 도 8은 본 개시내용의 일 실시예에 따른 모델의 최적화 방법을 예시적으로 도시한다. 도 9는 본 개시내용의 일 실시예에 따른 블록의 변경 방법을 예시적으로 도시한다. 도 10은 본 개시내용의 일 실시예에 따른 블록의 정의 방법을 예시적으로 도시한다. 도 11은 본 개시내용의 일 실시예에 따른 블록의 메타데이터를 예시적으로 도시한다. 도 12는 본 개시내용의 일 실시예에 따른 컴퓨팅 환경의 개략도이다. 다양한 실시예들이 도면을 참조하여 설명된다. 본 명세서에서, 다양한 설명들이 본 개시내용의 이해를 제공하기 위해서 제시된다. 본 개시내용의 실시를 위한 구체적인 내용을 설명하기에 앞서, 본 개시내용의 기술적 요지와 직접적 관련이 없는 구성에 대해서는 본 발명의 기술적 요지를 흩뜨리지 않는 범위 내에서 생략하였음에 유의하여야 할 것이다. 또한, 본 명세서 및 청구범위에 사용된 용어 또는 단어는 발명자가 자신의 발명을 최선의 방법으로 설명하기 위해 적절한 용어의 개념을 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야 할 것이다. 본 명세서에서 사용되는 용어 "모델", "시스템" 및/또는 “모듈” 등은, 컴퓨터-관련 엔티티, 하드웨어, 펌웨어, 소프트웨어, 소프트웨어 및 하드웨어의 조합, 또는 소프트웨어의 실행을 지칭하며 그리고 상호 교환 가능하게 사용될 수 있다. 예를 들어, 모듈은 프로세서상에서 실행되는 처리과정(procedure), 프로세서, 객체, 실행 스레드, 프로그램, 애플리케이션 및/또는 컴퓨팅 장치일 수 있지만, 이들로 제한되는 것은 아니다. 하나 이상의 모듈은 프로세서 및/또는 실행 스레드 내에 상주할 수 있다. 모듈은 하나의 컴퓨터 내에 로컬화 될 수 있다. 하나의 모듈이 2개 이상의 컴퓨터들 사이에 분배될 수 있다. 또한, 이러한 모듈들은 그 내부에 저장된 다양한 데이터 구조들을 갖는 다양한 컴퓨터 판독가능한 매체로부터 실행할 수 있다. 모듈들은 예를 들어 하나 이상의 데이터 패킷들을 갖는 신호(예를 들면, 로컬 시스템, 분산 시스템에서 다른 컴포넌트와 상호작용하는 하나의 컴포넌트로부터의 데이터 및/또는 신호를 통해 다른 시스템과 인터넷과 같은 네트워크를 통해 전송되는 데이터)에 따라 로컬 및/또는 원격 처리들을 통해 통신할 수 있다. 더불어, 용어 "또는"은 배타적 "또는"이 아니라 내포적 "또는"을 의미하는 것으로 의도된다. 즉, 달리 특정되지 않거나 문맥상 명확하지 않은 경우에, "X는 A 또는 B를 이용한다"는 자연적인 내포적 치환 중 하나를 의미하는 것으로 의도된다. 즉, X가 A를 이용하거나; X가 B를 이용하거나; 또는 X가 A 및 B 모두를 이용하는 경우, "X는 A 또는 B를 이용한다"가 이들 경우들 어느 것으로도 적용될 수 있다. 또한, 본 명세서에 사용된 "및/또는" 그리고 “적어도 하나” 라는 용어는 열거된 관련 아이템들 중 하나 이상의 아이템의 가능한 모든 조합을 지칭하고 포함하는 것으로 이해되어야 한다. 예를 들어, "A 또는 B 중 적어도 하나" 또는 “A 및 B 중 적어도 하나” 라는 용어는, "A만을 포함하는 경우", "B 만을 포함하는 경우", "A와 B의 구성으로 조합된 경우"를 의미하는 것으로 해석되어야 한다. 또한, "포함한다" 및/또는 "포함하는"이라는 용어는, 해당 특징 및/또는 구성요소가 존재함을 의미하는 것으로 이해되어야 한다. 다만, "포함한다" 및/또는 "포함하는"이라는 용어는, 하나 이상의 다른 특징, 구성요소 및/또는 이들의 그룹의 존재 또는 추가를 배제하지 않는 것으로 이해되어야 한다. 또한, 달리 특정되지 않거나 단수 형태를 지시하는 것으로 문맥상 명확하지 않은 경우에, 본 명세서와 청구범위에서 단수는 일반적으로 "하나 또는 그 이상"을 의미하는 것으로 해석되어야 한다. 당업자들은 추가적으로 여기서 개시된 실시예들과 관련되어 설명된 다양한 예시적인 논리적 구성요소들이 하드웨어, 컴퓨터 소프트웨어, 또는 양쪽 모두의 조합들로 구현될 수 있음을 인식해야 한다. 제시된 실시예들에 대한 설명은 본 개시의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 이용하거나 또는 실시할 수 있도록 제공된다. 이러한 실시예들에 대한 다양한 변형들은 본 개시의 기술 분야에서 통상의 지식을 가진 자에게 명백할 것이다. 여기에 정의된 일반적인 원리들은 본 개시의 범위를 벗어남이 없이 다른 실시예들에 적용될 수 있다. 그리하여, 본 발명은 여기에 제시된 실시예 들로 한정되는 것이 아니다. 본 발명은 여기에 제시된 원리들 및 신규한 특징들과 일관되는 최광의의 범위에서 해석되어야 할 것이다. 본 개시내용에서의 제 1, 제 2, 또는 제 3 과 같이 제 N 으로 표현되는 용어들은 적어도 하나의 엔티티들을 구분하기 위해 사용된다. 예를 들어, 제 1 과 제 2로 표현된 엔티티들은 서로 동일하거나 또는 상이할 수 있다. 예를 들어, 제 1-1과 제 1-2로 표현된 엔티티들은 제 1로 표현된 엔티티들의 하위 엔티티를 나타낼 수 있다. 본 개시내용에서 사용되는 용어 "모델"은 인공지능 기반의 모델, 인공지능 모델, 연산 모델, 신경망, 네트워크 함수 및 뉴럴 네트워크(neural network)을 포괄하는 의미로 사용될 수 있다. 일 실시예에서, 모델은, 모델 파일, 모델의 식별정보, 모델의 실행환경, 모델의 런타임 및/또는 모델의 프레임워크를 의미할 수 있다. 본 개시내용에서 사용되는 용어 "디바이스"는 모델이 실행될 하드웨어 또는 하드웨어 식별 정보에 대응될 수 있다. 추가적인 예시로, 디바이스는 모델이 실행될 하드웨어 또는 하드웨어 식별 정보에 대응될 수 있다. 이러한 하드웨어는 물리적 하드웨어, 가상 하드웨어, 외부에서 네트워크 접근이 불가능한 하드웨어, 외부에서 확인이 불가능한 하드웨어 및/또는 클라우드 내에서 확인되는 하드웨어를 포괄하는 의미로 사용될 수 있다. 예를 들어, 본 개시내용에서의 디바이스는 RaspberryPi, Coral, Jetson-Nano, AVH RasberryPi 및 Mobile 등과 같은 다양한 형태의 하드웨어를 포함할 수 있다. 본 개시내용에서 사용되는 용어 "벤치마크(benchmark)"는 모델을 디바이스에서 실행하는 또는 테스트하는 동작, 또는 모델의 디바이스에 대한 성능을 측정하는 동작을 의미할 수 있다. 추가적인 실시예에서, 벤치마크는 모델을 디바이스에서 실행시켰을 때의 예측되는 예상 성능을 획득하는 동작을 의미할 수도 있다. 본 개시내용에서의 벤치마크 결과 또는 벤치마크 결과 정보는 벤치마크에 따라 획득되는 정보 또는 벤치마크에 따라 획득되는 정보를 가공한 정보를 포함할 수 있다. 본 개시내용에서의, 벤치마크 예측 결과 또는 벤치마크 예측 결과 정보는 모델을 디바이스에 실행되었을 때 예측되는 벤치마크 결과를 의미할 수 있다. 예를 들어, 벤치마크 예측 결과는 모델을 디바이스에 실행시키지 않고(즉, 성능을 측정하지 않고) 획득되는 벤치마크 결과에 대응될 수 있다. 본 개시내용에서의 연산자(operator)는 모델을 구성하는 컴포넌트를 의미하도록 사용될 수 있다. 예를 들어, 하나의 모델에는 복수의 연산자들이 포함될 수 있다. 예를 들어, 이러한 복수의 연산자들은 엣지를 통해 서로 연결될 수 있다. 이러한 복수의 연산자들의 연산을 통해 모델의 동작이 수행될 수 있다. 예를 들어, 연산자는 모델의 노드 또는 레이어(layer)와 상호 교환 가능하게 사용될 수 있다. 일례로, Convolutional Layer가 인공지능 모델 내에서의 연산자에 대한 일례가 될 수 있다. 본 개시내용에서의 블록(block)은 하나 이상의 연산자들의 집합 또는 조합에 대응될 수 있다. 블록은 연산자들을