KR20230059435A - 뉴럴 네트워크의 압축 장치 및 방법 - Google Patents

뉴럴 네트워크의 압축 장치 및 방법 Download PDF

Info

Publication number
KR20230059435A
KR20230059435A KR1020210143629A KR20210143629A KR20230059435A KR 20230059435 A KR20230059435 A KR 20230059435A KR 1020210143629 A KR1020210143629 A KR 1020210143629A KR 20210143629 A KR20210143629 A KR 20210143629A KR 20230059435 A KR20230059435 A KR 20230059435A
Authority
KR
South Korea
Prior art keywords
neural network
delta
weight
weights
task
Prior art date
Application number
KR1020210143629A
Other languages
English (en)
Inventor
장준우
신재강
김이섭
최승규
Original Assignee
삼성전자주식회사
한국과학기술원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사, 한국과학기술원 filed Critical 삼성전자주식회사
Priority to KR1020210143629A priority Critical patent/KR20230059435A/ko
Priority to US17/892,481 priority patent/US20230130779A1/en
Publication of KR20230059435A publication Critical patent/KR20230059435A/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/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/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • 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
    • G06N3/0495Quantised networks; Sparse networks; Compressed networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Feedback Control In General (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

뉴럴 네트워크의 압축 장치 및 방법이 개시된다. 일 실시 예에 따른 뉴럴 네트워크(neural network)의 압축 방법은 사전 학습된(pre-trained) 제1 뉴럴 네트워크를 파인튜닝(fine-tuning)하여 제2 뉴럴 네트워크를 획득하는 단계, 제1 뉴럴 네트워크의 가중치와 제2 뉴럴 네트워크의 가중치의 차이에 대응하는 델타 가중치를 획득하는 단계, 델타 가중치를 압축하는 단계, 압축된 델타 가중치 및 제1 뉴럴 네트워크의 가중치에 기초한, 압축된 제2 뉴럴 네트워크를 재학습시키는 단계, 및 압축된 제2 뉴럴 네트워크의 재학습에 따라 갱신된 델타 가중치를 인코딩하여 저장하는 단계를 포함할 수 있다.

Description

뉴럴 네트워크의 압축 장치 및 방법{METHOD AND APPARATUS FOR COMPRESSING A NEURAL NETWORK}
아래의 개시는 뉴럴 네트워크의 압축 장치 및 방법에 관한 것이다.
딥러닝 기술의 발달로 다양한 컴퓨터 비전(computer vision; CV) 태스크(task)를 처리하기 위한 알고리즘이 DNN으로 대체되고 있으며, 이와 함께 DNN을 활용한 어플리케이션(application)이 다각화 되고 있다. CV를 위한 DNN 모델은 하나의 태스크를 처리하기 위한 방향으로 학습된다. 이미지 분류(classification)를 예로 들면, DNN 모델은 모든 객체의 클래스를 분류하기 위한 범용적인 모델(universal model)로써 학습되는 것이 아니라, 특정 목적을 위해 선별된 클래스의 집합을 분류하기 위해, 즉 하나의 특정 태스크를 수행하기 위해 학습되며, 이렇게 학습된 모델은 태스크 별 모델(task-specific model)이라고 지칭된다. 일반적으로, 태스크 별 모델의 학습은 대규모 학습 데이터를 이용한 사전 학습 과정을 거친 베이스 모델(base model)을 특정 태스크로 파인 튜닝(fine-tuning) 하는 전이 학습(transfer learning)을 통해 이루어질 수 있다. 이 경우 태스크의 개수의 증가에 따라, 태스크 별 모델의 개수 혹은 파라미터의 크기가 선형적으로 증가하게 되어, 복수의 태스크 별 모델을 효율적으로 저장 및 로딩하기 위한 기술이 요구되고 있다.
아래 실시 예들을 통해 파인튜닝을 통해 태스크 별 모델을 위한 추가적인 MAC 연산(multiply-accumulate operation)을 유발하거나 태스크 별 모델의 파라미터를 충분히 줄이지 못하는 한계를 해결할 수 있다.
아래 실시 예들을 통해 다량의 태스크를 수행하는 딥러닝 모델의 요구에 대응하기 위한 효율적인 다중 태스크 러닝(many-task learning) 기법을 제공할 수 있다.
일 실시 예에 따른 뉴럴 네트워크의 압축 방법은 특정 목적을 위한 학습 데이터에 기초하여, 사전 학습된 제1 뉴럴 네트워크를 파인튜닝(fine-tuning)하여 제2 뉴럴 네트워크를 획득하는 단계; 상기 제1 뉴럴 네트워크의 가중치와 상기 제2 뉴럴 네트워크의 가중치의 차이에 대응하는 델타 가중치를 획득하는 단계; 상기 델타 가중치를 압축하는 단계; 상기 압축된 델타 가중치 및 상기 제1 뉴럴 네트워크의 가중치에 기초하여 갱신된 제2 뉴럴 네트워크를 재학습시키는 단계; 및 상기 제2 뉴럴 네트워크의 재학습에 따라 갱신된 상기 델타 가중치를 인코딩하여 저장하는 단계를 포함한다.
상기 갱신된 상기 델타 가중치를 인코딩하여 저장하는 단계는 상기 제2 네트워크에 관하여 미리 설정된 정확도 기준에 기초하여, 상기 제2 뉴럴 네트워크의 재학습의 종료 여부를 결정하는 단계; 및 상기 제2 뉴럴 네트워크의 재학습을 종료하는 것으로 결정함에 따라, 상기 제2 뉴럴 네트워크의 재학습에 따라 갱신된 상기 델타 가중치를 인코딩하여 저장하는 단계를 포함할 수 있다.
상기 뉴럴 네트워크의 압축 방법은 상기 제2 뉴럴 네트워크의 재학습을 종료하지 않는 것으로 결정함에 따라, 상기 델타 가중치를 압축하는 단계, 및 상기 압축된 델타 가중치 및 상기 제1 뉴럴 네트워크의 가중치에 기초하여 갱신된 제2 뉴럴 네트워크를 재학습시키는 단계를 반복하여 수행하는 단계를 더 포함할 수 있다.
상기 델타 가중치를 인코딩하여 저장하는 단계는 상기 델타 가중치 중 0이 아닌 델타 가중치의 위치 정보를 포함하는 메타 데이터로 상기 델타 가중치를 인코딩하는 단계; 및 상기 메타 데이터를 상기 제2 뉴럴 네트워크에 대응하여 저장하는 단계를 포함할 수 있다.
상기 델타 가중치를 압축하는 단계는 상기 델타 가중치 중 미리 정해진 임계치 이하인 가중치를 0으로 변경하는 프루닝(pruning)을 수행하는 단계를 포함할 수 있다.
상기 델타 가중치를 압축하는 단계는 상기 델타 가중치를 미리 정해진 비트 수로 줄이는 양자화(quantization)을 수행하는 단계를 포함할 수 있다.
상기 뉴럴 네트워크의 압축 방법은 상기 인코딩되어 저장된 델타 가중치 및 상기 제1 네트워크의 가중치에 기초하여, 상기 특정 목적을 수행하도록 학습된 상기 제2 뉴럴 네트워크를 획득하는 단계를 더 포함할 수 있다.
일 실시 예에 따른 뉴럴 네트워크의 압축 방법은 복수의 목적들을 위한 복수의 학습 데이터 세트들 각각에 대응하여, 사전 학습된 베이스 모델을 파인튜닝함으로써, 복수의 태스크 별 모델들을 획득하는 단계; 상기 복수의 태스크 별 모델들 각각에 대응하여, 상기 베이스 모델의 가중치와 해당 태스크 별 모델의 가중치의 차이에 대응하는 델타 가중치를 획득하는 단계; 및 상기 해당 태스크 별 모델에 대응하여 미리 설정된 기준에 기초하여, 상기 획득된 델타 가중치를 압축하는 단계; 및 상기 복수의 태스크 별 모델들에 대응하는 상기 압축된 델타 가중치들에 기초하여, 상기 복수의 태스크 별 모델들을 압축하여 저장하는 단계를 포함한다.
상기 획득된 델타 가중치를 압축하는 단계는 상기 델타 가중치 중 미리 정해진 임계치 이하인 가중치를 0으로 변경하는 프루닝(pruning)을 수행하는 단계를 포함할 수 있다.
상기 획득된 델타 가중치를 압축하는 단계는 상기 델타 가중치를 미리 정해진 비트 수로 줄이는 양자화(quantization)을 수행하는 단계를 포함할 수 있다.
상기 복수의 태스크 별 모델들을 압축하여 저장하는 단계는 상기 복수의 태스크 별 모델들 각각에 대응하여, 해당 태스크 별 모델에 대응하는 상기 압축된 델타 가중치 및 상기 베이스 모델의 가중치에 기초하여 갱신된 상기 해당 태스크 별 모델을 재학습시키는 단계; 및 상기 재학습에 따라 갱신된 상기 해당 태스크 별 모델에 대응하는 델타 가중치를 인코딩하여 저장하는 단계를 포함할 수 있다.
상기 델타 가중치를 인코딩하여 저장하는 단계는 상기 델타 가중치 중 0이 아닌 델타 가중치의 위치 정보를 포함하는 메타 데이터로 상기 델타 가중치를 인코딩하는 단계; 및 상기 메타 데이터를 상기 해당 태스크 별 모델에 대응하여 저장하는 단계를 포함할 수 있다.
상기 미리 설정된 기준은 프루닝 비율(pruing ratio)에 관한 기준 및 양자화 비트수(bit-width)에 관한 기준 중 적어도 하나를 포함할 수 있다.
일 실시 예에 따른 뉴럴 네트워크의 압축 장치는 특정 목적을 위한 학습 데이터에 기초하여, 사전 학습된 제1 뉴럴 네트워크를 파인튜닝(fine-tuning)하여 제2 뉴럴 네트워크를 획득하고, 상기 제1 뉴럴 네트워크의 가중치와 상기 제2 뉴럴 네트워크의 가중치의 차이에 대응하는 델타 가중치를 획득하고, 상기 델타 가중치를 압축하고, 상기 압축된 델타 가중치 및 상기 제1 뉴럴 네트워크의 가중치에 기초하여 갱신된 제2 뉴럴 네트워크를 재학습시키며, 상기 제2 뉴럴 네트워크의 재학습에 따라 갱신된 상기 델타 가중치를 인코딩하여 저장하는, 적어도 하나의 프로세서를 포함한다.
상기 프로세서는, 상기 갱신된 상기 델타 가중치를 인코딩하여 저장함에 있어서, 상기 제2 네트워크에 관하여 미리 설정된 정확도 기준에 기초하여, 상기 제2 뉴럴 네트워크의 재학습의 종료 여부를 결정하며, 상기 제2 뉴럴 네트워크의 재학습을 종료하는 것으로 결정함에 따라, 상기 제2 뉴럴 네트워크의 재학습에 따라 갱신된 상기 델타 가중치를 인코딩하여 저장할 수 있다.
상기 프로세서는, 상기 제2 뉴럴 네트워크의 재학습을 종료하지 않는 것으로 결정함에 따라, 상기 델타 가중치를 압축하는 단계, 및 상기 압축된 델타 가중치 및 상기 제1 뉴럴 네트워크의 가중치에 기초하여 갱신된 제2 뉴럴 네트워크를 재학습시키는 단계를 반복하여 수행할 수 있다.
일 실시 예에 따른 뉴럴 네트워크의 압축 장치는 복수의 목적들을 위한 복수의 학습 데이터 세트들 각각에 대응하여, 사전 학습된 베이스 모델을 파인튜닝함으로써, 복수의 태스크 별 모델들을 획득하고, 상기 복수의 태스크 별 모델들 각각에 대응하여, 상기 베이스 모델의 가중치와 해당 태스크 별 모델의 가중치의 차이에 대응하는 델타 가중치를 획득하고, 상기 해당 태스크 별 모델에 대응하여 미리 설정된 기준에 기초하여, 상기 획득된 델타 가중치를 압축하며, 상기 복수의 태스크 별 모델들에 대응하는 상기 압축된 델타 가중치들에 기초하여, 상기 복수의 태스크 별 모델들을 압축하여 저장하는, 적어도 하나의 프로세서를 포함한다.
상기 프로세서는, 상기 획득된 델타 가중치를 압축함에 있어서, 상기 델타 가중치 중 미리 정해진 임계치 이하인 가중치를 0으로 변경하는 프루닝을 수행할 수 있다.
상기 획득된 델타 가중치를 압축함에 있어서, 상기 델타 가중치를 미리 정해진 비트 수로 줄이는 양자화를 수행할 수 있다.
도 1은 일 실시 예에 따른 뉴럴 네트워크의 압축 방법의 동작 흐름도이다.
도 2는 일 실시 예에 따른 델타 가중치를 획득하는 방법을 설명하기 위한 도면이다.
도 3은 일 실시 예에 따른 델타 가중치를 압축하는 방법을 설명하기 위한 도면이다.
도 4는 일 실시 예에 따른 델타 가중치를 인코딩하여 저장하는 방법을 설명하기 위한 도면이다.
도 5는 일 실시 예에 따른 제2 뉴럴 네트워크의 재학습 과정 및 델타 가중치의 압축 과정은 반복적으로 수행하는 동작을 설명하기 위한 도면이다.
도 6은 일 실시 예에 따른 베이스 모델로부터 획득된 복수의 태스크 별 모델에 대응하는 뉴럴 네트워크의 압축 방법의 동작 흐름도이다.
도 7은 일 실시 예에 따른 장치의 구성의 예시도이다.
도 8은 일 실시 예에 따른 뉴럴 네트워크의 압축 방법을 수행하는 모델의 하드웨어의 구조를 예시한 도면이다.
도 9는 일 실시 예에 따른 뉴럴 네트워크의 압축 방법을 수행하는 모델의 하드웨어의 구조를 예시한 도면이다.
이하, 실시예들을 첨부된 도면들을 참조하여 상세하게 설명한다. 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고, 이에 대한 중복되는 설명은 생략하기로 한다.
도 1은 일 실시 예에 따른 뉴럴 네트워크의 압축 방법의 동작 흐름도이다.
도 1을 참조하면, 일 실시 예에 따른 뉴럴 네트워크(neural network)의 압축 방법은 사전 학습된(pre-trained) 제1 뉴럴 네트워크를 파인튜닝(fine-tuning)하여 제2 뉴럴 네트워크를 획득하는 단계(110), 제1 뉴럴 네트워크의 가중치와 제2 뉴럴 네트워크의 가중치의 차이에 대응하는 델타 가중치를 획득하는 단계(120), 델타 가중치를 압축하는 단계(130), 압축된 델타 가중치 및 제1 뉴럴 네트워크의 가중치에 기초한, 압축된 제2 뉴럴 네트워크를 재학습시키는 단계(140), 및 압축된 제2 뉴럴 네트워크의 재학습에 따라 갱신된 델타 가중치를 인코딩하여 저장하는 단계(140)를 포함할 수 있다.
일 실시 예에 따른 단계(110)는 특정 목적을 위한 학습 데이터에 기초하여, 사전 학습된 제1 뉴럴 네트워크를 파인튜닝하여 제2 뉴럴 네트워크를 획득하는 단계를 포함할 수 있다. 제1 뉴럴 네트워크는 사전 학습된 베이스 모델(base-model)에 해당할 수 있다. 제2 뉴럴 네트워크는 제1 뉴럴 네트워크를 특정 태스크로 파인튜닝하여 획득된 네트워크로, 태스크 별 모델(task-specific model)에 해당할 수 있다. 제2 뉴럴 네트워크는 제1 뉴럴 네트워크의 가중치가 특정 목적을 위한 학습 데이터에 기초하여 파인튜닝된 가중치를 포함할 수 있다.
일 실시 예에 따르면, 파인튜닝은 특정 목적을 위한 학습 데이터에 기초하여, 사전 학습된 제1 뉴럴 네트워크를 새로 학습시키는 동작을 포함할 수 있다. 일 예로, 파인튜닝 시 제1 뉴럴 네트워크의 일부 레이어가 교체될 수 있으며, 일부 레이어가 교체된 제1 뉴럴 네트워크를 새로 학습시켜 제2 뉴럴 네트워크가 획득될 수 있다. 또 일 예로, 파인튜닝 시 제1 뉴럴 네트워크의 일부 레이어를 새로 학습시킬 수도 있고, 전체 레이어를 새로 학습시킬 수도 있다. 파인튜닝에 이용되는 특정 목적을 위한 학습 데이터는 제1 뉴럴 네트워크의 학습에 이용된 학습 데이터와 적어도 일부가 다를 수 있다.
일 실시 예에 따른 단계(120)는 제1 뉴럴 네트워크의 가중치와 제2 뉴럴 네트워크의 가중치의 차이에 대응하는 델타 가중치를 획득하는 단계를 포함할 수 있다. 일 예로, 델타 가중치는 파인튜닝으로 획득된 제2 뉴럴 네트워크의 가중치에서 제1 뉴럴 네트워크의 가중치를 뺀 값으로 획득될 수 있다.
예를 들어, 도 2를 참조하면, 가중치(210)를 포함하는 제1 뉴럴 네트워크를 파인튜닝하여, 변경된 가중치(220)를 포함하는 제2 뉴럴 네트워크가 획득될 수 있다. 제2 뉴럴 네트워크의 가중치(220)는 제1 뉴럴 네트워크의 가중치(210)와 델타 가중치(230)로 분리될 수 있으며, 제2 뉴럴 네트워크의 가중치(220)에서 제1 뉴럴 네트워크의 가중치(210)를 뺀 값이 델타 가중치(230)로 획득될 수 있다.
일 실시 예에 따른 단계(130)는 델타 가중치의 크기를 줄이기 위하여 압축 기법을 이용하여 델타 가중치를 압축하는 단계를 포함할 수 있다. 일 예로, 델타 가중치를 압축하는 단계(130)는 델타 가중치 중 미리 정해진 임계치 이하인 가중치를 0으로 변경하는 프루닝(pruning)을 수행하는 단계를 포함할 수 있다. 프루닝은 미리 설정된 프루닝 비율(pruning ratio)에 기초하여 수행될 수 있다. 또 일 예로, 델타 가중치를 압축하는 단계(130)는 델타 가중치를 미리 정해진 비트 수(bit-width)로 줄이는 양자화(quantization)을 수행하는 단계를 포함할 수 있다.
일 실시 예에 따르면, 델타 가중치를 압축하는 단계(130)는 델타 가중치 중 미리 정해진 임계치 이하인 가중치를 0으로 변경하는 프루닝을 수행하는 단계 및 프루닝에 기초한 0이 아닌 델타 가중치를 미리 정해진 비트 수로 줄이는 양자화를 수행하는 단계를 포함할 수 있다. 예를 들어, 도 3을 참조하면, 델타 가중치(230)는 프루닝을 통해 미리 정해진 임계치 이하인 가중치는 0으로 변경됨으로써, 압축된 델타 가중치(231)가 획득될 수 있다. 프루닝을 통해 압축된 델타 가중치(231)는 0이 아닌 가중치를 미리 정해진 비트 수로 줄이는 양자화를 통해 압축된 델타 가중치(232)가 획득될 수 있다.
일 실시 예에 따른 단계(140)는 압축된 델타 가중치 및 제1 뉴럴 네트워크의 가중치에 기초하여 갱신된 제2 뉴럴 네트워크를 재학습시키는 단계를 포함할 수 있다. 제1 뉴럴 네트워크의 가중치와 압축된 델타 가중치를 합함으로써, 가중치가 갱신된 제2 뉴럴 네트워크가 획득될 수 있다. 갱신된 제2 뉴럴 네트워크는 특정 목적을 위한 학습 데이터에 기초하여 재학습될 수 있다. 특정 목적을 위한 학습 데이터는 단계(110)에서 제1 뉴럴 네트워크의 파인튜닝에 이용된 학습 데이터에 대응될 수 있다. 재학습 과정에 의해 제2 뉴럴 네트워크의 가중치는 갱신될 수 있다.
일 실시 예에 따르면, 재학습에 의해 제2 뉴럴 네트워크의 0이 아닌 델타 가중치가 갱신될 수 있다. 다시 말해, 제2 뉴럴 네트워크의 가중치 중 제1 뉴럴 네트워크의 가중치와 동일한 가중치는 재학습에 의해 갱신되지 않고, 제1 뉴럴 네트워크의 가중치와 동일하지 않은, 다시 말해 0이 아닌 델타 가중치는 재학습에 의해 갱신되어 값이 변경될 수 있다.
일 실시 예에 따른 단계(150)에서 갱신된 델타 가중치는 단계(140)에 의해 갱신된 제2 뉴럴 네트워크의 가중치와 제1 뉴럴 네트워크의 가중치의 차이에 기초하여 획득될 수 있다. 재학습 과정에 의해 제2 뉴럴 네트워크의 가중치가 변경될 수 있으므로, 델타 가중치 역시 변경될 수 있다. 갱신된 델타 가중치는 인코딩되어 저장될 수 있다.
일 실시 예에 따르면, 델타 가중치를 인코딩하여 저장하는 단계(150)는 델타 가중치 중 0이 아닌 델타 가중치의 위치 정보를 포함하는 메타 데이터로 델타 가중치를 인코딩하는 단계 및 메타 데이터를 제2 뉴럴 네트워크에 대응하여 저장하는 단계를 포함할 수 있다. 메타 데이터는 델타 가중치 중 0이 아닌 델타 가중치의 위치 정보와 그 값을 포함하는 데이터로, 0을 포함하는 모든 델타 가중치에 비해 용량이 작은 데이터에 해당할 수 있다. 모든 델타 가중치가 저장되는 대신, 델타 가중치가 인코딩되어 저장됨으로써, 델타 가중치를 저장하기 위하여 요구되는 메모리의 용량이 감소될 수 있다.
예를 들어, 도 4를 참조하면, 델타 가중치의 압축에 의해 압축된 델타 가중치(232) 및 제1 뉴럴 네트워크의 가중치(210)에 기초하여 갱신된 제2 뉴럴 네트워크가 획득될 수 있으며, 갱신된 제2 뉴럴 네트워크의 재학습 과정에 의해 갱신된 델타 가중치(233)가 획득될 수 있다. 갱신된 델타 가중치(233) 중 0이 아닌 델타 가중치의 위치 정보를 포함하는 메타 데이터(240)로 델타 가중치(233)가 인코딩될 수 있다. 메타 데이터(240)는 0이 아닌 델타 가중치의 위치 정보 뿐 아니라 0이 아닌 델타 가중치의 값을 포함할 수 있다.
일 실시 예에 따르면, 제2 네트워크에 관하여 미리 설정된 정확도 기준에 기초하여, 제2 뉴럴 네트워크의 재학습 과정 및 델타 가중치의 압축 과정은 반복적으로 수행될 수 있다.
예를 들어, 도 5를 참조하면, 일 실시 예에 따른 갱신된 델타 가중치를 인코딩하여 저장하는 단계(150)는 제2 네트워크에 관하여 미리 설정된 정확도 기준에 기초하여, 제2 뉴럴 네트워크의 재학습의 종료 여부를 결정하는 단계(510)를 더 포함할 수 있다. 정확도 기준은 제2 뉴럴 네트워크의 출력과 정답 데이터의 차이에 기초한 기준을 포함할 수 있다. 재학습은 델타 가중치의 압축으로 인한 제2 뉴럴 네트워크의 추론 결과의 오류를 보정하기 위한 것으로, 미리 설정된 제2 뉴럴 네트워크의 정확도 기준이 충족되는 경우 재학습을 종료하는 것으로 결정될 수 있다. 다시 말해, 제2 뉴럴 네트워크의 재학습을 종료하는 것으로 결정함에 따라, 제2 뉴럴 네트워크의 재학습에 따라 갱신된 델타 가중치를 인코딩하여 저장하는 단계(150)를 포함할 수 있다. 제2 뉴럴 네트워크의 재학습을 종료하지 않는 것으로 결정함에 따라, 델타 가중치를 압축하는 단계(130), 압축된 델타 가중치 및 제1 뉴럴 네트워크의 가중치에 기초하여 갱신된 제2 뉴럴 네트워크를 재학습시키는 단계(140)를 반복하여 수행하는 단계를 더 포함할 수 있다.
일 실시 예에 따른 뉴럴 네트워크의 압축 방법은 인코딩하여 저장된 델타 가중치 및 제1 뉴럴 네트워크의 가중치에 기초하여, 특정 목적을 수행하도록 학습된 제2 뉴럴 네트워크를 획득하는 단계를 더 포함할 수 있다. 다시 말해, 메모리에 제2 뉴럴 네트워크 전체가 저장되어 있지 않더라도, 저장된 제2 뉴럴 네트워크에 대응하는 델타 가중치의 인코딩 데이터와 제1 뉴럴 네트워크의 가중치로부터 제2 뉴럴 네트워크가 획득될 수 있다.
도 6은 일 실시 예에 따른 베이스 모델로부터 획득된 복수의 태스크 별 모델에 대응하는 뉴럴 네트워크의 압축 방법의 동작 흐름도이다.
도 6을 참조하면, 일 실시 예에 따른 뉴럴 네트워크의 압축 방법은 사전 학습된 베이스 모델을 파인튜닝함으로써, 복수의 태스크 별 모델들을 획득하는 단계(610), 복수의 태스크 별 모델들 각각에 대응하여, 델타 가중치를 획득하는 단계(620), 복수의 태스크 별 모델들 각각에 대응하여 획득된 델타 가중치를 압축하는 단계(630), 및 복수의 태스크 별 모델들에 대응하는 압축된 델타 가중치들에 기초하여, 복수의 태스크 별 모델들을 압축하여 저장하는 단계(640)를 포함할 수 있다.
일 실시 예에 따른 단계(610)는 복수의 목적들을 위한 복수의 학습 데이터 세트들 각각에 대응하여, 사전 학습된 베이스 모델을 파인튜닝함으로써, 복수의 태스크 별 모델들을 획득하는 단계를 포함할 수 있다. 하나의 베이스 모델을 서로 다른 학습 데이터 세트로 파인튜닝함으로써, 서로 다른 목적의 태스크를 수행하도록 학습된 복수의 태스크 별 모델들이 획득될 수 있다. 베이스 모델은 상술한 제1 뉴럴 네트워크에 대응될 수 있으며, 태스크 별 모델은 상술한 제2 뉴럴 네트워크에 대응될 수 있다.
일 실시 예에 따르면, 복수의 태스크 별 네트워크들 각각에 대응하여, 델타 가중치의 획득 단계(620) 및 압축 단계(630)에 따른 동작이 수행될 수 있다.
일 실시 예에 따른 단계(620)는 복수의 태스크 별 모델들 각각에 대응하여, 베이스 모델의 가중치와 해당 태스크 별 모델의 가중치의 차이에 대응하는 델타 가중치를 획득하는 단계를 포함할 수 있다. 다시 말해, 도 1에서 상술한 델타 가중치를 획득하는 단계(120)에 따른 동작을 복수의 태스크 별 모델들 각각에 대응하여 수행하는 단계에 해당할 수 있다.
일 실시 예에 따른 단계(630)는 복수의 태스크 별 모델들 각각에 대응하여, 해당 태스크 별 모델에 대응하여 미리 설정된 기준에 기초하여, 획득된 델타 가중치를 압축하는 단계를 포함할 수 있다. 미리 설정된 기준은 델타 가중치의 압축 정도에 관한 기준으로, 예를 들어 프루닝 비율(pruing ratio)에 관한 기준 및 양자화 비트수(bit-width)에 관한 기준 중 적어도 하나를 포함할 수 있다. 일 실시 예에 따른 단계(630)는 도 1에서 상술한 델타 가중치를 압축하는 단계(130)에 따른 동작을 복수의 태스크 별 모델들 각각에 대응하여 수행하는 단계에 해당할 수 있다. 일 예로, 일 실시 예에 따른 단계(630)는 델타 가중치 중 미리 정해진 임계치 이하인 가중치를 0으로 변경하는 프루닝을 수행하는 단계를 포함할 수 있다. 또 일 예로, 일 실시 예에 따른 단계(630)는 델타 가중치를 미리 정해진 비트 수로 줄이는 양자화를 수행하는 단계를 포함할 수 있다
일 실시 예에 따른 단계(640)는 복수의 태스크 별 모델들 각각에 대응하여, 해당 태스크 별 모델에 대응하는 압축된 델타 가중치 및 베이스 모델의 가중치에 기초하여 갱신된 해당 태스크 별 모델을 재학습시키는 단계 및 재학습에 따라 갱신된 해당 태스크 별 모델에 대응하는 델타 가중치를 인코딩하여 저장하는 단계를 포함할 수 있다. 다시 말해, 일 실시 예에 따른 단계(640)는 도 1에서 상술한 갱신된 제2 뉴럴 네트워크를 재학습시키는 단계(140) 및 제2 뉴럴 네트워크의 재학습에 따라 갱신된 델타 가중치를 인코딩하여 저장하는 단계(150)에 따른 동작을 제2 뉴럴 네트워크에 대응되는 복수의 태스크 별 모델들 각각에 대응하여 수행하는 단계에 해당할 수 있다.
상술한 바와 같이, 일 실시 예에 따르면, 태스크 별 모델에 관하여 미리 설정된 정확도 기준에 기초하여, 태스크 별 모델의 재학습 과정 및 델타 가중치의 압축 과정은 반복적으로 수행될 수 있다.
일 실시 예에 따르면, 재학습에 따라 갱신된 해당 태스크 별 모델에 대응하는 델타 가중치를 인코딩하여 저장하는 단계는 델타 가중치 중 0이 아닌 델타 가중치의 위치 정보를 포함하는 메타 데이터로 델타 가중치를 인코딩하는 단계 및 메타 데이터를 해당 태스크 별 모델에 대응하여 저장하는 단계를 포함할 수 있다. 다시 말해, 태스크 별 모델 전체가 저장되는 대신, 태스크 별 모델에 대응하는 델타 가중치를 인코딩한 데이터가 저장될 수 있다.
도 7은 일 실시 예에 따른 장치의 구성의 예시도이다.
도 7을 참조하면, 장치(700)는 프로세서(701), 메모리(703) 및 입출력 장치(705)를 포함한다. 장치(700)는 예를 들어, 사용자 디바이스(예: 스마트폰, 퍼스널 컴퓨터, 태블릿 PC 등), 서버를 포함할 수 있다.
일실시예에 따른 장치(700)는 상술한 뉴럴 네트워크의 압축 방법을 수행하는 장치를 포함할 수 있다. 프로세서(701)는 도 1 내지 도 6을 통하여 전술한 적어도 하나의 방법을 수행할 수 있다. 일 예로, 프로세서(701)는 도 1을 통해 상술한 뉴럴 네트워크의 압축 방법의 동작을 수행할 수 있다. 도 1을 통해 상술한 뉴럴 네트워크의 압축 방법의 동작을 수행하기 위한 하드웨어의 구조는 이하의 도 8을 통해 상술한다. 또 일 예로, 프로세서(701)는 도 6을 통해 상술한 베이스 모델로부터 획득된 복수의 태스크 별 모델에 대응하는 뉴럴 네트워크의 압축 방법의 동작을 수행할 수 있다. 도 6을 통해 상술한 뉴럴 네트워크의 압축 방법의 동작을 수행하기 위한 하드웨어의 구조는 이하의 도 9를 통해 상술한다.
일 실시 예에 따른 메모리(703)는 뉴럴 네트워크의 압축 방법과 관련된 정보를 저장할 수 있으며, 뉴럴 네트워크의 압축 방법을 수행하기 위하여 필요한 데이터 및/또는 뉴럴 네트워크의 압축 방법을 수행하여 생성된 데이터를 저장할 수 있다. 예를 들어, 메모리(703)는 베이스 모델 혹은 제1 뉴럴 네트워크의 가중치를 저장할 수 있으며, 제2 뉴럴 네트워크에 대응하는 델타 데이터의 인코딩된 데이터를 저장할 수 있다. 메모리(703)는 휘발성 메모리 또는 비휘발성 메모리일 수 있다.
일 측에 따른 장치(700)는 입출력 장치(705)를 통하여 외부 장치(예를 들어, 퍼스널 컴퓨터 또는 네트워크)에 연결되고, 데이터를 교환할 수 있다. 예를 들어, 장치(700)는 입출력 장치(705)를 통해 음성 신호를 수신할 수 있으며, 음성 신호의 음성 인식된 결과로 음성 신호에 대응하는 텍스트 데이터를 출력할 수 있다.
일 실시 예에 따르면, 메모리(703)는 상술한 뉴럴 네트워크의 압축 방법이 구현된 프로그램을 저장할 수 있다. 프로세서(701)는 메모리(703)에 저장된 프로그램을 실행하고, 장치(700)를 제어할 수 있다. 프로세서(701)에 의하여 실행되는 프로그램의 코드는 메모리(703)에 저장될 수 있다.
도 8은 일 실시 예에 따른 뉴럴 네트워크의 압축 방법을 수행하는 모델의 하드웨어의 구조를 예시한 도면이다.
도 8을 참조하면, 일 실시 예에 따른 뉴럴 네트워크의 압축 방법을 수행하는 모델(이하, 모델로 지칭)(800)은 제1 뉴럴 네트워크 혹은 베이스 모델(이하에서, 베이스 모델로 지칭)의 파인튜닝을 수행하기 위한 모듈(이하, 파인튜닝 모듈로 지칭)(810), 파인튜닝으로 획득된 제2 뉴럴 네트워크 혹은 태스크 별 모델(이하에서, 태스크 별 모델로 지칭)의 델타 가중치를 압축하기 위한 모듈(이하, 압축 모듈로 지칭)(820) 및 태스크 별 모델의 재학습을 수행하기 위한 모듈(이하, 재학습 모듈로 지칭)(830)을 포함할 수 있다. 도 8에 도시된 모듈들(810, 820, 830)의 구성은 모델(800)에서 수행되는 논리적 동작에 따라 임의로 구분한 것으로, 모델(800)의 구조를 한정하기 위한 것은 아니다. 도 7에서 상술한 바와 같이, 모델(800)에서 수행되는 뉴럴 네트워크의 압축 방법에 관한 동작은 적어도 하나의 프로세서에 의해 수행될 수 있다.
일 실시 예에 따르면, 파인튜닝 모듈(810)은 사전 학습된 베이스 모델(801) 및 특정 목적을 위한 학습 데이터(802)를 입력 받아, 학습 데이터(802)에 기초하여 베이스 모델(801)을 파인튜닝하여 태스크 별 모델을 출력하는 모듈에 해당할 수 있다. 파인튜닝 모듈(810)은 태스크 별 모델의 가중치를 베이스 모델의 가중치와 델타 가중치로 분리하여 출력할 수 있다.
일 실시 예에 따르면, 압축 모듈(820)은 태스크 별 모델의 델타 가중치를 입력 받아, 델타 가중치의 압축을 수행하여, 압축된 델타 가중치를 출력하는 모듈에 해당할 수 있다. 압축 모듈(820)은 압축 정도에 관하여 미리 설정된 기준을 입력 받을 수 있으며, 예를 들어, 미리 설정된 기준에 포함된 프루닝 비율 기준에 기초하여 델타 가중치를 프루닝하여 압축할 수도 있고, 미리 설정된 기준에 포함된 양자화 비트 수 기준에 기초하여 델타 가중치를 양자화하여 압축할 수도 있다.
일 실시 예에 따르면, 재학습 모듈(830)은 압축된 델타 가중치 및 베이스 모델의 가중치에 기초하여 갱신된 태스크 별 모델을 미리 설정된 정확도 기준을 충족시키기 위해 재학습시키는 모듈에 해당할 수 있다. 재학습 모듈(830)에서 출력된 태스크 별 모델의 델타 가중치는 다시 압축 모듈(820)에 입력되어 압축 정도에 관하여 미리 설정된 기준에 기초하여 압축될 수 있으며, 압축된 델타 가중치 및 베이스 모델의 가중치에 기초하여 갱신된 태스크 별 모델은 다시 재학습 모듈(830)에 입력될 수 있다.
일 실시 예에 따르면, 재학습에 따라 미리 설정된 정확도 기준을 충족한 태스크 별 모델(840)의 델타 가중치의 인코딩 데이터가 출력될 수 있으며, 모델(800)의 출력인 인코딩 데이터는 데이터베이스에 저장될 수 있다. 일 예로, 모델(800)에서 출력된 인코딩 데이터 및 베이스 모델(801)에 기초하여 태스크 별 모델(840)이 획득될 수 있다. 보다 구체적으로, 인코딩 데이터에 기초하여 태스크 별 모델(840)에 대응하는 델타 가중치가 복원될 수 있으며, 델타 가중치 및 베이스 모델(801)의 가중치를 합하여 태스크 별 모델(840)이 복원될 수 있다. 태스크 별 모델(840)은 특정 장치에서 구현될 수 있다.
도 9는 일 실시 예에 따른 뉴럴 네트워크의 압축 방법을 수행하는 모델의 하드웨어의 구조를 예시한 도면이다.
도 9를 참조하면, 일 실시 예에 따른 모델(900)은 베이스 모델(901) 및 복수의 학습 데이터 세트들(902)을 입력 받아, 복수의 태스크 별 모델들에 대응하는 델타 데이터의 인코딩 데이터인 복수의 메타 데이터 세트들(903)을 출력할 수 있다. 도 9에 도시된 모델(900)의 구조는 도 8에서 상술한 모델(800)의 구조에 대응될 수 있다.
일 실시 예에 따른 모델(900)에서 출력된 복수의 태스크 별 모델들에 대응하는 델타 데이터의 인코딩 데이터인 복수의 메타 데이터 세트들(903)은 데이터베이스(910)에 저장될 수 있다. 데이터베이스(910)는 베이스 모델(901)을 저장할 수 있다. 데이터베이스(910)에 저장된 복수의 메타 데이터 세트들(903)은 태스크 별 모델을 구현하는 다른 서버 혹은 사용자 디바이스에 로딩될 수 있으며, 베이스 모델(910)의 가중치에 기초하여 태스크 별 모델로 복원될 수 있다.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 저장할 수 있으며 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
위에서 설명한 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 또는 복수의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 이를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (20)

  1. 특정 목적을 위한 학습 데이터에 기초하여, 사전 학습된 제1 뉴럴 네트워크를 파인튜닝(fine-tuning)하여 제2 뉴럴 네트워크를 획득하는 단계;
    상기 제1 뉴럴 네트워크의 가중치와 상기 제2 뉴럴 네트워크의 가중치의 차이에 대응하는 델타 가중치를 획득하는 단계;
    상기 델타 가중치를 압축하는 단계;
    상기 압축된 델타 가중치 및 상기 제1 뉴럴 네트워크의 가중치에 기초하여 갱신된 제2 뉴럴 네트워크를 재학습시키는 단계; 및
    상기 제2 뉴럴 네트워크의 재학습에 따라 갱신된 상기 델타 가중치를 인코딩하여 저장하는 단계
    를 포함하는,
    뉴럴 네트워크의 압축 방법.
  2. 제1항에 있어서,
    상기 갱신된 상기 델타 가중치를 인코딩하여 저장하는 단계는
    상기 제2 뉴럴 네트워크에 관하여 미리 설정된 정확도 기준에 기초하여, 상기 제2 뉴럴 네트워크의 재학습의 종료 여부를 결정하는 단계; 및
    상기 제2 뉴럴 네트워크의 재학습을 종료하는 것으로 결정함에 따라, 상기 제2 뉴럴 네트워크의 재학습에 따라 갱신된 상기 델타 가중치를 인코딩하여 저장하는 단계
    를 포함하는,
    뉴럴 네트워크의 압축 방법.
  3. 제2항에 있어서,
    상기 제2 뉴럴 네트워크의 재학습을 종료하지 않는 것으로 결정함에 따라,
    상기 델타 가중치를 압축하는 단계, 및 상기 압축된 델타 가중치 및 상기 제1 뉴럴 네트워크의 가중치에 기초하여 갱신된 제2 뉴럴 네트워크를 재학습시키는 단계를 반복하여 수행하는 단계
    를 더 포함하는,
    뉴럴 네트워크의 압축 방법.
  4. 제1항에 있어서,
    상기 델타 가중치를 인코딩하여 저장하는 단계는
    상기 델타 가중치 중 0이 아닌 델타 가중치의 위치 정보를 포함하는 메타 데이터로 상기 델타 가중치를 인코딩하는 단계; 및
    상기 메타 데이터를 상기 제2 뉴럴 네트워크에 대응하여 저장하는 단계
    를 포함하는,
    뉴럴 네트워크의 압축 방법.
  5. 제1항에 있어서,
    상기 델타 가중치를 압축하는 단계는
    상기 델타 가중치 중 미리 정해진 임계치 이하인 가중치를 0으로 변경하는 프루닝(pruning)을 수행하는 단계
    를 포함하는,
    뉴럴 네트워크의 압축 방법.
  6. 제1항에 있어서,
    상기 델타 가중치를 압축하는 단계는
    상기 델타 가중치를 미리 정해진 비트 수로 줄이는 양자화(quantization)을 수행하는 단계
    를 포함하는,
    뉴럴 네트워크의 압축 방법.
  7. 제1항에 있어서,
    인코딩되어 저장된 상기 델타 가중치 및 상기 제1 뉴럴 네트워크의 가중치에 기초하여, 상기 특정 목적을 수행하도록 학습된 상기 제2 뉴럴 네트워크를 획득하는 단계
    를 더 포함하는,
    뉴럴 네트워크의 압축 방법.
  8. 복수의 목적들을 위한 복수의 학습 데이터 세트들 각각에 대응하여, 사전 학습된 베이스 모델을 파인튜닝함으로써, 복수의 태스크 별 모델들을 획득하는 단계;
    상기 복수의 태스크 별 모델들 각각에 대응하여,
    상기 베이스 모델의 가중치와 해당 태스크 별 모델의 가중치의 차이 에 대응하는 델타 가중치를 획득하는 단계; 및
    상기 해당 태스크 별 모델에 대응하여 미리 설정된 기준에 기초하여, 상기 획득된 델타 가중치를 압축하는 단계; 및
    상기 복수의 태스크 별 모델들에 대응하는 상기 압축된 델타 가중치들에 기초하여, 상기 복수의 태스크 별 모델들을 압축하여 저장하는 단계
    를 포함하는,
    뉴럴 네트워크의 압축 방법.
  9. 제8항에 있어서,
    상기 획득된 델타 가중치를 압축하는 단계는
    상기 델타 가중치 중 미리 정해진 임계치 이하인 가중치를 0으로 변경하는 프루닝(pruning)을 수행하는 단계
    를 포함하는,
    뉴럴 네트워크의 압축 방법.
  10. 제8항에 있어서,
    상기 획득된 델타 가중치를 압축하는 단계는
    상기 델타 가중치를 미리 정해진 비트 수로 줄이는 양자화(quantization)을 수행하는 단계
    를 포함하는,
    뉴럴 네트워크의 압축 방법.
  11. 제8항에 있어서,
    상기 복수의 태스크 별 모델들을 압축하여 저장하는 단계는
    상기 복수의 태스크 별 모델들 각각에 대응하여,
    해당 태스크 별 모델에 대응하는 상기 압축된 델타 가중치 및 상기 베이스 모델의 가중치에 기초하여 갱신된 상기 해당 태스크 별 모델을 재학습시키는 단계; 및
    상기 재학습에 따라 갱신된 상기 해당 태스크 별 모델에 대응하는 델타 가중치를 인코딩하여 저장하는 단계
    를 포함하는,
    뉴럴 네트워크의 압축 방법.
  12. 제11항에 있어서,
    상기 델타 가중치를 인코딩하여 저장하는 단계는
    상기 델타 가중치 중 0이 아닌 델타 가중치의 위치 정보를 포함하는 메타 데이터로 상기 델타 가중치를 인코딩하는 단계; 및
    상기 메타 데이터를 상기 해당 태스크 별 모델에 대응하여 저장하는 단계
    를 포함하는,
    뉴럴 네트워크의 압축 방법.
  13. 제8항에 있어서,
    상기 미리 설정된 기준은
    프루닝 비율(pruing ratio)에 관한 기준 및 양자화 비트수(bit-width)에 관한 기준 중 적어도 하나를 포함하는,
    뉴럴 네트워크의 압축 방법.
  14. 하드웨어와 결합되어 제1항 내지 제13항 중 어느 하나의 항의 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램.
  15. 특정 목적을 위한 학습 데이터에 기초하여, 사전 학습된 제1 뉴럴 네트워크를 파인튜닝(fine-tuning)하여 제2 뉴럴 네트워크를 획득하고,
    상기 제1 뉴럴 네트워크의 가중치와 상기 제2 뉴럴 네트워크의 가중치의 차이에 대응하는 델타 가중치를 획득하고,
    상기 델타 가중치를 압축하고,
    상기 압축된 델타 가중치 및 상기 제1 뉴럴 네트워크의 가중치에 기초하여 갱신된 제2 뉴럴 네트워크를 재학습시키며,
    상기 제2 뉴럴 네트워크의 재학습에 따라 갱신된 상기 델타 가중치를 인코딩하여 저장하는,
    적어도 하나의 프로세서
    를 포함하는,
    뉴럴 네트워크 압축 장치.
  16. 제15항에 있어서,
    상기 프로세서는,
    상기 갱신된 상기 델타 가중치를 인코딩하여 저장함에 있어서,
    상기 제2 뉴럴 네트워크에 관하여 미리 설정된 정확도 기준에 기초하여, 상기 제2 뉴럴 네트워크의 재학습의 종료 여부를 결정하며,
    상기 제2 뉴럴 네트워크의 재학습을 종료하는 것으로 결정함에 따라, 상기 제2 뉴럴 네트워크의 재학습에 따라 갱신된 상기 델타 가중치를 인코딩하여 저장하는,
    뉴럴 네트워크 압축 장치.
  17. 제16항에 있어서,
    상기 프로세서는,
    상기 제2 뉴럴 네트워크의 재학습을 종료하지 않는 것으로 결정함에 따라,
    상기 델타 가중치를 압축하는 단계, 및 상기 압축된 델타 가중치 및 상기 제1 뉴럴 네트워크의 가중치에 기초하여 갱신된 제2 뉴럴 네트워크를 재학습시키는 단계를 반복하여 수행하는,
    뉴럴 네트워크 압축 장치.
  18. 복수의 목적들을 위한 복수의 학습 데이터 세트들 각각에 대응하여, 사전 학습된 베이스 모델을 파인튜닝함으로써, 복수의 태스크 별 모델들을 획득하고,
    상기 복수의 태스크 별 모델들 각각에 대응하여,
    상기 베이스 모델의 가중치와 해당 태스크 별 모델의 가중치의 차이 에 대응하는 델타 가중치를 획득하고,
    상기 해당 태스크 별 모델에 대응하여 미리 설정된 기준에 기초하여, 상기 획득된 델타 가중치를 압축하며,
    상기 복수의 태스크 별 모델들에 대응하는 상기 압축된 델타 가중치들에 기초하여, 상기 복수의 태스크 별 모델들을 압축하여 저장하는,
    적어도 하나의 프로세서
    를 포함하는,
    뉴럴 네트워크의 압축 장치.
  19. 제18항에 있어서,
    상기 프로세서는,
    상기 획득된 델타 가중치를 압축함에 있어서,
    상기 델타 가중치 중 미리 정해진 임계치 이하인 가중치를 0으로 변경하는 프루닝을 수행하는,
    뉴럴 네트워크 압축 장치.
  20. 제18항에 있어서,
    상기 획득된 델타 가중치를 압축함에 있어서,
    상기 델타 가중치를 미리 정해진 비트 수로 줄이는 양자화를 수행하는,
    뉴럴 네트워크 압축 장치.

KR1020210143629A 2021-10-26 2021-10-26 뉴럴 네트워크의 압축 장치 및 방법 KR20230059435A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020210143629A KR20230059435A (ko) 2021-10-26 2021-10-26 뉴럴 네트워크의 압축 장치 및 방법
US17/892,481 US20230130779A1 (en) 2021-10-26 2022-08-22 Method and apparatus with neural network compression

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210143629A KR20230059435A (ko) 2021-10-26 2021-10-26 뉴럴 네트워크의 압축 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20230059435A true KR20230059435A (ko) 2023-05-03

Family

ID=86057103

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210143629A KR20230059435A (ko) 2021-10-26 2021-10-26 뉴럴 네트워크의 압축 장치 및 방법

Country Status (2)

Country Link
US (1) US20230130779A1 (ko)
KR (1) KR20230059435A (ko)

Also Published As

Publication number Publication date
US20230130779A1 (en) 2023-04-27

Similar Documents

Publication Publication Date Title
US11657254B2 (en) Computation method and device used in a convolutional neural network
CN111652367B (zh) 一种数据处理方法及相关产品
KR102608467B1 (ko) 뉴럴 네트워크의 경량화 방법, 이를 이용한 인식 방법, 및 그 장치
US10789734B2 (en) Method and device for data quantization
TWI791610B (zh) 對人工神經網路及浮點神經網路進行量化的方法及裝置
KR102562320B1 (ko) 비트 연산 기반의 뉴럴 네트워크 처리 방법 및 장치
CN105960647B (zh) 紧凑人脸表示
EP3907601A1 (en) Accelerating neural networks with low precision-based multiplication and exploiting sparsity in higher order bits
EP3766021B1 (en) Cluster compression for compressing weights in neural networks
KR102153192B1 (ko) 시뮬레이션-가이드된 반복적 프루닝을 사용하는 효율적인 네트워크 압축
CN114207625A (zh) 用于性能优化的分布式深度学习的系统感知选择性量化
US20220076095A1 (en) Multi-level sparse neural networks with dynamic rerouting
US20230004790A1 (en) Neural network accelerator and operating method thereof
US11531695B2 (en) Multiscale quantization for fast similarity search
CN111950712A (zh) 模型网络参数处理方法、设备及可读存储介质
KR20230059435A (ko) 뉴럴 네트워크의 압축 장치 및 방법
US20220405561A1 (en) Electronic device and controlling method of electronic device
US10938412B2 (en) Decompression of model parameters using functions based upon cumulative count distributions
CN113168590A (zh) 有损恢复的有损显著性压缩
KR20230059457A (ko) 다중 태스크를 처리하는 프로세싱 장치
KR102539643B1 (ko) 하드웨어 특성을 이용하여 뉴럴 네트워크 모델을 경량화하는 방법 및 장치
KR20230116583A (ko) 뉴럴 네트워크 제어 방법 및 장치
KR20230066700A (ko) 딥러닝 가속장치를 위한 적응적 파라미터 생성 장치 및 방법
Wei et al. Building a Compact MQDF Classifier by Sparse Coding and Vector Quantization Technique
EP3767548A1 (en) Delivery of compressed neural networks

Legal Events

Date Code Title Description
A201 Request for examination