KR20230102665A - 딥러닝 네트워크 양자화 처리 방법 및 시스템 - Google Patents

딥러닝 네트워크 양자화 처리 방법 및 시스템 Download PDF

Info

Publication number
KR20230102665A
KR20230102665A KR1020210192988A KR20210192988A KR20230102665A KR 20230102665 A KR20230102665 A KR 20230102665A KR 1020210192988 A KR1020210192988 A KR 1020210192988A KR 20210192988 A KR20210192988 A KR 20210192988A KR 20230102665 A KR20230102665 A KR 20230102665A
Authority
KR
South Korea
Prior art keywords
data
quantization
deep learning
convolution operation
learning network
Prior art date
Application number
KR1020210192988A
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 KR1020210192988A priority Critical patent/KR20230102665A/ko
Priority to PCT/KR2021/020322 priority patent/WO2023128024A1/ko
Publication of KR20230102665A publication Critical patent/KR20230102665A/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/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • G06F17/153Multidimensional correlation or convolution
    • 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

Landscapes

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

Abstract

딥러닝 네트워크 양자화 처리 방법 및 시스템이 제공된다. 본 발명의 실시예에 따른 딥러닝 네트워크 양자화 처리 방법은, 양자화 처리 시스템이, 양자화된 액티베이션(Activation) 및 가중치(Weight)를 기반으로 양자화된 네트워크의 컨벌루션(Convolution) 연산을 수행하는 단계; 및 양자화 처리 시스템이, 다음 레이어의 입력 액티베이션을 생성하기 위해, 컨벌루션 연산 결과의 재-양자화를 수행하는 단계;를 포함하고, 이때, 컨벌루션 연산을 수행하는 단계는, 기설정된 클리핑 범위(Clipping range) 밖의 데이터 중 필요 데이터를 기설정된 클리핑 범위 안으로 들어오도록 수정하고, 재-양자화를 수행하는 단계는, 수정된 데이터를 처리하여 원래 데이터를 획득한다. 이에 의해, 클리핑 범위(Clipping range) 밖의 데이터 중 필요 데이터를 수정하고, 수정된 데이터를 처리하여 원래 데이터를 획득함으로써, 딥러닝 추론 속도을 향상시키고, 학습 후 양자화 수행 시 발생하는 성능 열화 최소화할 수 있다.

Description

딥러닝 네트워크 양자화 처리 방법 및 시스템{Method and system for deep learning network quantization processing}
본 발명은 딥러닝 네트워크를 통해 데이터를 처리하는 방법 및 시스템에 관한 것으로, 더욱 상세하게는 딥러닝 네트워크를 통해 데이터를 처리를 수행함에 있어 딥러닝 추론 속도 향상 및 네트워크 파라미터 크기 감소를 위한 네트워크 경량화 기술 중 양자화 처리 방법 및 시스템에 관한 것이다.
딥러닝 네트워크는 파라미터의 크기 및 연산량으로 인해 다양한 경량화 알고리즘이 도입되고 있다.
대표적인 경량화 알고리즘인 양자화 기술의 경우 하드웨어 딥러닝 가속기에서의 네트워크 동작을 위해서는 필수적으로 사용되는 기술로, 양자화 과정을 통해 딥러닝 네트워크 파라미터의 크기를 줄이고 부동소수점 연산을 정수 연산으로 대체하여 수행함으로써 연산 복잡도를 낮추는 것이 가능하다.
딥러닝 네트워크 파라미터 크기 및 연산량을 줄이기 위해 경량화 알고리즘 도입 외 네트워크 자체의 구조를 머신러닝을 통해 도출해 내는 등 인공신경망 내 연산을 최소화하면서 기존 성능을 유지하도록 하는 연구가 진행 중이나 이러한 경량 네트워크의 경우 학습 후 양자화 기술 적용 시 내부 데이터의 비 균일한 특성으로 인해 양자화 과정 중 성능이 크게 떨어지는 것이 보고되어 있으며, 이러한 문제를 해결하기 위해 데이터 특성에 맞는 다양한 양자화 범위 클리핑(clipping) 알고리즘이 도입되고 있다.
하지만 양자화 범위의 설정 방식에 따라 필요한 데이터가 버려지거나 과도한 범위로 인한 양자화 정밀도 하락으로 인한 성능 열화가 발생하는 문제가 있다.
양자화 과정에서 발생하는 성능 하락 문제를 해결하기 위해 학습 과정에서 양자화를 고려하는 방식인 양자화 인식 훈련(Quantization Aware Training, QAT) 기술이 도입되고 있으나 양자화 옵션/조건에 따라 전체 학습 과정을 처음부터 다시 수행해야 하는 문제가 있어 알고리즘의 테스트/도입에 많은 시간이 소요된다는 문제가 있다.
또한 기학습된 인공신경망 네트워크 만을 전달받아 하드웨어 가속기 등에 포팅하고자 하는 경우 네트워크에 대한 재-학습이 불가능하므로 양자화 인식 훈련 방식의 양자화가 불가능하다는 문제가 있다.
본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 본 발명의 목적은, 클리핑 범위(Clipping range) 밖의 데이터 중 필요 데이터를 수정하고, 수정된 데이터를 처리하여 원래 데이터를 획득함으로써, 딥러닝 추론 속도을 향상시키고, 학습 후 양자화 수행 시 발생하는 성능 열화 최소화할 수 있는 양자화 처리 방법 및 시스템을 제공함에 있다.
그리고 본 발명의 다른 목적은, 하드웨어 구조를 고려하여, 최소한의 연산 오버헤드만을 필요로 하는 연산 구조로 구현되는 양자화 처리 방법 및 시스템을 제공함에 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른, 딥러닝 네트워크 양자화 처리 방법은, 양자화 처리 시스템이, 양자화된 액티베이션(Activation) 및 가중치(Weight)를 기반으로 양자화된 네트워크의 컨벌루션(Convolution) 연산을 수행하는 단계; 및 양자화 처리 시스템이, 다음 레이어의 입력 액티베이션을 생성하기 위해, 컨벌루션 연산 결과의 재-양자화를 수행하는 단계;를 포함하고, 이때, 컨벌루션 연산을 수행하는 단계는, 기설정된 클리핑 범위(Clipping range) 밖의 데이터 중 필요 데이터를 기설정된 클리핑 범위 안으로 들어오도록 수정하고, 재-양자화를 수행하는 단계는, 수정된 데이터를 처리하여 원래 데이터를 획득한다.
또한, 컨벌루션 연산을 수행하는 단계는, 양자화된 액티베이션 및 가중치를 읽어들여 곱셈 연산 및 덧셈 연산을 통한 최종 단일 결과를 생성하되, 곱셈 연산 후 기설정된 클리핑 범위 밖의 데이터 중 필요 데이터를 대상으로 필요 데이터가 기설정된 클리핑 범위 안으로 들어오도록 하는 연산을 수행할 수 있다.
그리고 컨벌루션 연산을 수행하는 단계는, 기설정된 클리핑 범위 안으로 들어오도록 하는 연산을 수행하고자 하는 필요 데이터의 위치 정보를 필요 데이터와 분리하여 저장할 수 있다.
또한, 컨벌루션 연산을 수행하는 단계는, 필요 데이터의 위치 정보를 저장하기 위해, 데이터 크기의 마스크(Mask) 또는 필요 데이터의 좌표값을 저장할 수 있다.
그리고 컨벌루션 연산을 수행하는 단계는, 추가 하드웨어 연산 오버헤드를 최소화하기 위해, 필요 데이터가 기설정된 클리핑 범위 안으로 들어오도록 하는 경우, 시프트 연산만을 수행할 수 있다.
또한, 컨벌루션 연산을 수행하는 단계는, 시프트 연산을 수행하여, 필요 데이터를 수정하는 경우, 수정된 데이터의 값 및 수행된 시프트 연산에 대한 정보를 포함하는 범위 외 데이터 처리 정보를 생성하고, 이때, 재-양자화를 수행하는 단계는, 생성된 범위 외 데이터 처리 정보를 이용하여 수정된 데이터를 원래 데이터로 복원할 수 있다.
그리고 재-양자화를 수행하는 단계는, 수정된 데이터의 위치 정보를 통해 현재 곱해지는 액티베이션 값이 재-양자화의 수행 전 수정된 값인 것으로 확인되는 경우, 수행된 시프트 연산의 반대 연산을 통하여 양자화 전 원래 데이터를 획득할 수 있다.
한편, 본 발명의 다른 실시예에 따른, 딥러닝 네트워크 양자화 처리 시스템은, 양자화된 액티베이션(Activation) 및 가중치(Weight)를 기반으로 양자화된 네트워크의 컨벌루션(Convolution) 연산을 수행하되, 기설정된 클리핑 범위(Clipping range) 밖의 데이터 중 필요 데이터를 기설정된 클리핑 범위 안으로 들어오도록 수정하는 컨벌루션 연산 모듈; 및 다음 레이어의 입력 액티베이션을 생성하기 위해, 컨벌루션 연산 결과의 재-양자화를 수행하되, 수정된 데이터가 확인되면, 수정된 데이터를 처리하여 원래 데이터를 획득하는 재-양자화 모듈;를 포함한다.
이상 설명한 바와 같이, 본 발명의 실시예들에 따르면, 클리핑 범위(Clipping range) 밖의 데이터 중 필요 데이터를 수정하고, 수정된 데이터를 처리하여 원래 데이터를 획득함으로써, 딥러닝 추론 속도을 향상시키고, 학습 후 양자화 수행 시 발생하는 성능 열화 최소화할 수 있다.
더불어, 하드웨어 구조를 고려하여, 최소한의 연산 오버헤드만을 필요로 하는 연산 구조로 구현되어, 기존 하드웨어 가속기 내 곱셈기의 변화 없이 인덱스 데이터 및 단순 연산(shift) 모듈만을 추가함으로써 최소한의 연산 추가를 통해 양자화를 수행할 수 있다.
도 1은, 본 발명의 일 실시예에 따른 딥러닝 네트워크 양자화 처리 시스템의 설명에 제공된 도면,
도 2는, 본 발명의 일 실시예에 따른 프로세서의 상세 설명에 제공된 도면,
도 3은, 본 발명의 일 실시예에 따른 딥러닝 네트워크 양자화 처리 방법의 설명에 제공된 도면,
도 4는, 본 발명의 일 실시예에 따른 클리핑 범위(Clipping range) 밖의 데이터 중 필요 데이터(범위 외 데이터)를 수정하는 과정의 설명에 제공된 도면,
도 5는, 본 발명의 일 실시예에 따른 범위 외 데이터를 처리하는 과정의 설명에 제공된 도면,
도 6은, 본 발명의 일 실시예에 따른 컨벌루션 연산을 수행하는 과정의 상세 설명에 제공된 도면,
도 7은, 종래의 양자화 방법에 따른 데이터 양자화의 설명에 제공된 도면,
도 8은, 종래의 양자화 방법에 따라 양자화된 데이터의 컨벌루션 연산을 수행하는 과정의 상세 설명에 제공된 도면,
도 9는, 본 발명의 일 실시예에 따른 데이터 양자화의 설명에 제공된 도면, 그리고
도 10은, 본 발명의 일 실시예에 따른 양자화된 데이터의 컨벌루션 연산을 수행하는 과정의 상세 설명에 제공된 도면이다.
이하에서는 도면을 참조하여 본 발명을 보다 상세하게 설명한다.
도 1은, 본 발명의 일 실시예에 따른 딥러닝 네트워크 양자화 처리 시스템의 설명에 제공된 도면이다.
본 실시예에 따른 딥러닝 네트워크 양자화 처리 시스템은, 클리핑 범위(Clipping range) 밖의 데이터 중 필요 데이터를 수정하고, 수정된 데이터를 처리하여 원래 데이터를 획득함으로써, 딥러닝 추론 속도을 향상시키고, 학습 후 양자화 수행 시 발생하는 성능 열화 최소화할 수 있다.
더불어, 본 딥러닝 네트워크 양자화 처리 시스템은, 하드웨어 구조를 고려하여, 최소한의 연산 오버헤드만을 필요로 하는 연산 구조로 구현되어, 기존 하드웨어 가속기 내 곱셈기의 변화 없이 인덱스 데이터 및 단순 연산(shift) 모듈만을 추가함으로써 최소한의 연산 추가를 통해 양자화를 수행할 수 있다.
이를 위해, 딥러닝 네트워크 양자화 처리 시스템은, 통신부(100), 프로세서(200) 및 저장부(300)를 포함할 수 있다.
통신부(100)는, 외부 기기 또는 서버와 네트워크로 연결되어, 프로세서(200)가 동작함에 있어 필요한 데이터를 송수신할 수 있다.
저장부(300)는, 프로세서(200)가 동작함에 있어 필요한 프로그램 및 데이터를 저장하는 저장 매체이다.
프로세서(200)는, 양자화된 액티베이션(Activation) 및 가중치(Weight)를 기반으로 양자화된 네트워크의 컨벌루션(Convolution) 연산을 수행하고, 다음 레이어의 입력 액티베이션을 생성하기 위해, 컨벌루션 연산 결과의 재-양자화를 수행할 수 있다.
이때, 프로세서(200)는, 컨벌루션 연산을 수행하는 과정에서, 기설정된 클리핑 범위(Clipping range) 밖의 데이터 중 필요 데이터를 기설정된 클리핑 범위 안으로 들어오도록 수정할 수 있다.
그리고 프로세서(200)는, 재-양자화를 수행하는 과정에서, 수정된 데이터를 처리하여 원래 데이터를 획득할 수 있다.
도 2는, 본 발명의 일 실시예에 따른 프로세서(200)의 상세 설명에 제공된 도면이다.
도 2를 참조하면, 프로세서(200)는, 컨벌루션 연산 모듈(210) 및 재-양자화 모듈(220)을 포함할 수 있다.
컨벌루션 연산 모듈(210)은, 양자화된 액티베이션(Activation) 및 가중치(Weight)를 기반으로 양자화된 네트워크의 컨벌루션(Convolution) 연산을 수행할 수 있으며, 컨벌루션 연산을 수행하는 과정에서, 기설정된 클리핑 범위(Clipping range) 밖의 데이터 중 필요 데이터를 기설정된 클리핑 범위 안으로 들어오도록 수정할 수 있다.
예를 들면, 컨벌루션 연산 모듈(210)은, 양자화된 액티베이션 및 가중치를 읽어들여 곱셈 연산 및 덧셈 연산을 통한 최종 단일 결과를 생성하되, 곱셈 연산 후 기설정된 클리핑 범위 밖의 데이터 중 필요 데이터를 대상으로 필요 데이터가 기설정된 클리핑 범위 안으로 들어오도록 하는 연산을 수행할 수 있다.
재-양자화 모듈(220)은, 다음 레이어의 입력 액티베이션을 생성하기 위해, 컨벌루션 연산 결과의 재-양자화를 수행할 수 있으며, 재-양자화를 수행하는 과정에서, 수정된 데이터를 처리하여 원래 데이터를 획득할 수 있다.
예를 들면, 재-양자화 모듈(220)은, 수정된 데이터의 위치 정보를 통해 현재 곱해지는 액티베이션 값이 재-양자화의 수행 전 수정된 값인 것으로 확인되는 경우, 수행된 시프트 연산의 반대 연산을 통하여 양자화 전 원래 데이터를 획득할 수 있다.
컨벌루션 연산 모듈(210) 및 재-양자화 모듈(220)에 대한 더욱 상세한 설명은 도 3 내지 도 10을 참조하여 후술하기로 한다.
도 3은, 본 발명의 일 실시예에 따른 딥러닝 네트워크 양자화 처리 방법의 설명에 제공된 도면이다.
본 실시예에 따른 딥러닝 네트워크 양자화 처리 방법은, 도 1 내지 도 2를 참조하여 전술한 딥러닝 네트워크 양자화 처리 시스템에 의해 실행될 수 있다.
도 3을 참조하면, 딥러닝 네트워크 양자화 처리 방법은, 컨벌루션 연산 모듈(210)을 이용하여 양자화된 액티베이션 및 가중치를 기반으로 양자화된 네트워크의 컨벌루션 연산을 수행할 수 있다.
구체적으로, 딥러닝 네트워크 양자화 처리 방법은, 양자화된 액티베이션 및 가중치를 읽어들여 곱셈 연산을 수행하되(S310), 곱셈 연산 후 기설정된 클리핑 범위 밖의 데이터 중 필요 데이터를 대상으로 필요 데이터가 기설정된 클리핑 범위 안으로 들어오도록 하는 연산을 수행하고(S320), 이후 덧셈 연산을 수행하여 최종 단일 결과를 생성할 수 있다(S330).
그리고 딥러닝 네트워크 양자화 처리 방법은, 재-양자화 모듈(220)을 이용하여 컨벌루션 연산 결과의 재-양자화를 수행하고, 이 과정에서, 수정된 데이터를 처리하여 원래 데이터를 획득할 수 있다(S340).
도 4는, 본 발명의 일 실시예에 따른 클리핑 범위(Clipping range) 밖의 데이터 중 필요 데이터(범위 외 데이터)를 수정하는 과정의 설명에 제공된 도면이다.
도 4를 참조하면, 종래의 양자화 방법(일반적인 양자화 방법)은, 기설정된 클리핑 알고리즘을 이용하여 데이터의 클리핑 범위를 설정하고, 클리핑된 데이터를 양자화 비트에 따른 데이터 범위에 맞게 변환하여 높은 정밀도의 데이터를 양자화된 데이터로 나타낼 수 있다.
이때, 양자화에 사용된 스케일 값을 저장하고, 추후 역-양자화가 필요한 경우 해당 스케일 값을 통해 기존 정밀도의 데이터를 복원해 낸다.
이러한 종래의 양자화 방법은, 모든 데이터를 양자화된 값으로 나타내려고 하는 경우, 양자화 후 데이터의 세밀한 표현이 어려워 양자화 오류가 증가하는 문제가 발생할 수 있다.
도 4에 예시된 바와 같이 만약 7165 값을 양자화된 범위로 나타내고자 하는 경우, 불필요하게 넓은 범위를 -127~128 사이의 값으로 맵핑하게 되어 양자화된 값들의 오차가 증가하게 된다.
따라서, 종래의 양자화 방법에서는 일반적으로 이상점(outlier)이라고 불리는 값이 클리핑 시 제거되며, 제거 후 데이터의 최소/최대 값을 도출하여 최종 양자화 범위를 도출하게 된다.
반면에, 본 딥러닝 네트워크 양자화 처리 방법은, 추가적인 연산 모듈 사용을 통해 해당 이상점의 데이터를 보존하면서, 추가적인 하드웨어 연산 복잡도를 최소화할 수 있다.
도 5는, 본 발명의 일 실시예에 따른 범위 외 데이터를 처리하는 과정의 설명에 제공된 도면이다.
도 5를 참조하면, 본 딥러닝 네트워크 양자화 처리 방법은, 클리핑 범위가 결정되면(S510), 결정된 클리핑 범위(Clipping range) 밖의 데이터 중 필요 데이터를 선택하고(S520), 선택된 필요 데이터(=범위 외 데이터)의 데이터 값을 수정하여 수정된 데이터 값이 클리핑 범위 안으로 들어오도록 할 수 있다(S530).
이때, 딥러닝 네트워크 양자화 처리 방법은, 클리핑 범위 안으로 들어오도록 하는 연산을 수행하고자 하는 필요 데이터의 위치 정보를 필요 데이터와 분리하여 저장할 수 있다(S540).
예를 들면, 딥러닝 네트워크 양자화 처리 방법은, 필요 데이터의 위치 정보를 저장하기 위해, 데이터 크기의 마스크(Mask) 또는 필요 데이터의 좌표 값을 저장하되, 데이터 크기의 마스크 또는 필요 데이터의 좌표 값을 필요 데이터와 분리하여 저장할 수 있다.
그리고 딥러닝 네트워크 양자화 처리 방법은, 전술한 바와 같이 컨벌루션 연산이 수행된 이후, 컨벌루션 연산 결과의 재-양자화를 수행하면서, 데이터 값이 수정된 수정 데이터(=필요 데이터=범위 외 데이터)를 처리하여 원래 데이터를 획득할 수 있다(S550).
도 6은, 본 발명의 일 실시예에 따른 컨벌루션 연산을 수행하는 과정의 상세 설명에 제공된 도면이다.
도 6을 참조하면, 딥러닝 네트워크 양자화 처리 방법은, 양자화된 액티베이션 및 가중치를 읽어들여 곱셈 연산을 수행하되(S610), 곱셈 연산 후 기설정된 클리핑 범위 밖의 데이터 중 필요 데이터를 대상으로 필요 데이터가 기설정된 클리핑 범위 안으로 들어오도록 하는 연산을 수행할 수 있다(S620).
구체적으로, 딥러닝 네트워크 양자화 처리 방법은, 컨벌루션 연산을 수행하는 과정에서 필요 데이터가 기설정된 클리핑 범위 안으로 들어오도록 하는 연산 수행 시, 필요 데이터가 기설정된 클리핑 범위 안으로 들어오도록 하는 수정 작업 중 시프트 연산만을 수행함으로써, 추가 하드웨어 연산 오버헤드를 최소화할 수 있다.
그리고 딥러닝 네트워크 양자화 처리 방법은, 수정된 데이터 값의 경우, 추후 레이어에서의 컨볼루션 연산 시 데이터 위치에 대한 정보를 통해 값 보정이 일어나며, 해당 과정을 통해 양자화 에러를 최소화하는 연산이 수행될 수 있다.
또한, 딥러닝 네트워크 양자화 처리 방법은, 재-양자화를 수행하는 과정에서, 수정된 데이터의 위치 정보를 통해 현재 곱해지는 액티베이션 값이 재-양자화의 수행 전 수정된 값인 것으로 확인되는 경우, 수행된 시프트 연산의 반대 연산을 통하여 양자화 전 원래 데이터를 획득할 수 있다.
이후, 딥러닝 네트워크 양자화 처리 방법은, 덧셈 연산을 통해 값이 누적되며(S630), 커널(kernel) 내 모든 가중치에 대한 연산이 완료된 경우 최종 컨벌루션 결과를 도출할 수 있다(S640).
도 7은, 종래의 양자화 방법에 따른 데이터 양자화의 설명에 제공된 도면이고, 도 8은, 종래의 양자화 방법에 따라 양자화된 데이터의 컨벌루션 연산을 수행하는 과정의 상세 설명에 제공된 도면이다.
종래의 양자화 방법에서는 네트워크 수행 전 클리핑 방식이 미리 정의되며, 해당 방식을 통해 양자화 수행 시 높은 정밀도의 데이터가 목표로 하는 양자화 비트의 정밀도 데이터로 변환된다.
도 7에서는 클리핑 알고리즘으로 인해 -5000 ~ 5000이 클리핑 범위로 설정되었으며, 이로 인해 '7165'와 같은 이상점의 경우, 설정된 클리핑 알고리즘에 의해 양자화 범위 최대 값인 '127'로 맵핑된다.
즉, 해당 데이터가 원래 의미하는 값은 양자화 범위 기준 182에 해당하는 값이나, 서명된(signed) 8 비트 양자화 범위로 인해 '127'로 클리핑 되었으며, 해당 값이 가중치와 곱해짐으로써 양자화 에러를 증폭시키는 원인이 된다.
도 8은, 도 7 과정에서 양자화된 데이터의 컨벌루션 연산 과정 예시를 나타낸다. 182에 상응하는 데이터로 양자화되어야 했으나 '127'로 양자화된 값은 (3) 연산을 통해 가중치 값인 '114'와 곱해짐으로써 대략 (182 - 127) * 114 수준의 양자화 에러를 발생시키게 된다.
도 9는, 본 발명의 일 실시예에 따른 데이터 양자화의 설명에 제공된 도면이고, 도 10은, 본 발명의 일 실시예에 따른 양자화된 데이터의 컨벌루션 연산을 수행하는 과정의 상세 설명에 제공된 도면이다.
본 딥러닝 네트워크 양자화 처리 방법은, 이상점 중 필요 데이터로서, 양자화 에러를 유발할 것으로 예상되는 값인 '7165'가 선택된다고 가정하면, 해당 데이터를 라이트 시프트 1 연산을 수행함으로써 양자화 범위 내 값인 '3582'로 값을 수정할 수 잇다.
이때, 딥러닝 네트워크 양자화 처리 방법은, 시프트 연산을 수행하여, 필요 데이터를 수정하는 경우, 수정된 데이터의 값 및 수행된 시프트 연산에 대한 정보를 포함하는 범위 외 데이터 처리 정보를 생성하고, 해당 데이터가 수정된 데이터임을 나타내기 위해 해당 데이터의 위치를 나타내는 정보를 별도로 저장할 수 있다.
그리고 생성된 범위 외 데이터 처리 정보는, 재-양자화를 수행하는 과정에서 수정된 데이터를 원래 데이터로 복원하는데 이용될 수 있다.
도 10을 참조하면, '91' 값은 도 9의 과정에서 라이트 시프트 1 연산이 수행된 값이므로, 딥러닝 네트워크 양자화 처리 방법은, 정확한 컨벌루션 연산 결과의 획득을 위해 (3)의 곱셈 연산 후, (3)'의 래프트 시프트 1 연산을 수행할 수 있다.
그리고 딥러닝 네트워크 양자화 처리 방법은, 상기 래프트 시프트 연산을 수행하는 과정에서 이미 저장된 데이터 위치 정보를 활용하며, 해당 데이터가 수정된 데이터일 때 곱셈 연산 후 시프트 연산을 수행하도록 할 수 있다.
이를 통해, 양자화 스케일을 통해 변환되는 값인 182에 해당하는 값을 가중치와 곱해주는 효과를 얻을 수 있다.
한편, 본 실시예에 따른 장치와 방법의 기능을 수행하게 하는 컴퓨터 프로그램을 수록한 컴퓨터로 읽을 수 있는 기록매체에도 본 발명의 기술적 사상이 적용될 수 있음은 물론이다. 또한, 본 발명의 다양한 실시예에 따른 기술적 사상은 컴퓨터로 읽을 수 있는 기록매체에 기록된 컴퓨터로 읽을 수 있는 코드 형태로 구현될 수도 있다. 컴퓨터로 읽을 수 있는 기록매체는 컴퓨터에 의해 읽을 수 있고 데이터를 저장할 수 있는 어떤 데이터 저장 장치이더라도 가능하다. 예를 들어, 컴퓨터로 읽을 수 있는 기록매체는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광디스크, 하드 디스크 드라이브, 등이 될 수 있음은 물론이다. 또한, 컴퓨터로 읽을 수 있는 기록매체에 저장된 컴퓨터로 읽을 수 있는 코드 또는 프로그램은 컴퓨터간에 연결된 네트워크를 통해 전송될 수도 있다.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
100 : 통신부
200 : 프로세서
210 : 컨벌루션 연산 모듈
220 : 재-양자화 모듈
300 : 저장부

Claims (8)

  1. 양자화 처리 시스템이, 양자화된 액티베이션(Activation) 및 가중치(Weight)를 기반으로 양자화된 네트워크의 컨벌루션(Convolution) 연산을 수행하는 단계; 및
    양자화 처리 시스템이, 다음 레이어의 입력 액티베이션을 생성하기 위해, 컨벌루션 연산 결과의 재-양자화를 수행하는 단계;를 포함하고,
    컨벌루션 연산을 수행하는 단계는,
    기설정된 클리핑 범위(Clipping range) 밖의 데이터 중 필요 데이터를 기설정된 클리핑 범위 안으로 들어오도록 수정하고,
    재-양자화를 수행하는 단계는,
    수정된 데이터를 처리하여 원래 데이터를 획득하는 것을 특징으로 하는 딥러닝 네트워크 양자화 처리 방법.
  2. 청구항 1에 있어서,
    컨벌루션 연산을 수행하는 단계는,
    양자화된 액티베이션 및 가중치를 읽어들여 곱셈 연산 및 덧셈 연산을 통한 최종 단일 결과를 생성하되,
    곱셈 연산 후 기설정된 클리핑 범위 밖의 데이터 중 필요 데이터를 대상으로 필요 데이터가 기설정된 클리핑 범위 안으로 들어오도록 하는 연산을 수행하는 것을 특징으로 하는 딥러닝 네트워크 양자화 처리 방법.
  3. 청구항 2에 있어서,
    컨벌루션 연산을 수행하는 단계는,
    기설정된 클리핑 범위 안으로 들어오도록 하는 연산을 수행하고자 하는 필요 데이터의 위치 정보를 필요 데이터와 분리하여 저장하는 것을 특징으로 하는 딥러닝 네트워크 양자화 처리 방법.
  4. 청구항 3에 있어서,
    컨벌루션 연산을 수행하는 단계는,
    필요 데이터의 위치 정보를 저장하기 위해, 데이터 크기의 마스크(Mask) 또는 필요 데이터의 좌표값을 저장하는 것을 특징으로 하는 딥러닝 네트워크 양자화 처리 방법.
  5. 청구항 3에 있어서,
    컨벌루션 연산을 수행하는 단계는,
    추가 하드웨어 연산 오버헤드를 최소화하기 위해, 필요 데이터가 기설정된 클리핑 범위 안으로 들어오도록 하는 경우, 시프트 연산만을 수행하는 것을 특징으로 하는 딥러닝 네트워크 양자화 처리 방법.
  6. 청구항 5에 있어서,
    컨벌루션 연산을 수행하는 단계는,
    시프트 연산을 수행하여, 필요 데이터를 수정하는 경우, 수정된 데이터의 값 및 수행된 시프트 연산에 대한 정보를 포함하는 범위 외 데이터 처리 정보를 생성하고,
    재-양자화를 수행하는 단계는,
    생성된 범위 외 데이터 처리 정보를 이용하여 수정된 데이터를 원래 데이터로 복원하는 것을 특징으로 하는 딥러닝 네트워크 양자화 처리 방법.
  7. 청구항 6에 있어서,
    재-양자화를 수행하는 단계는,
    수정된 데이터의 위치 정보를 통해 현재 곱해지는 액티베이션 값이 재-양자화의 수행 전 수정된 값인 것으로 확인되는 경우, 수행된 시프트 연산의 반대 연산을 통하여 양자화 전 원래 데이터를 획득하는 것을 특징으로 하는 딥러닝 네트워크 양자화 처리 방법.
  8. 양자화된 액티베이션(Activation) 및 가중치(Weight)를 기반으로 양자화된 네트워크의 컨벌루션(Convolution) 연산을 수행하되, 기설정된 클리핑 범위(Clipping range) 밖의 데이터 중 필요 데이터를 기설정된 클리핑 범위 안으로 들어오도록 수정하는 컨벌루션 연산 모듈; 및
    다음 레이어의 입력 액티베이션을 생성하기 위해, 컨벌루션 연산 결과의 재-양자화를 수행하되, 수정된 데이터가 확인되면, 수정된 데이터를 처리하여 원래 데이터를 획득하는 재-양자화 모듈;를 포함하는 딥러닝 네트워크 양자화 처리 시스템.
KR1020210192988A 2021-12-30 2021-12-30 딥러닝 네트워크 양자화 처리 방법 및 시스템 KR20230102665A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020210192988A KR20230102665A (ko) 2021-12-30 2021-12-30 딥러닝 네트워크 양자화 처리 방법 및 시스템
PCT/KR2021/020322 WO2023128024A1 (ko) 2021-12-30 2021-12-30 딥러닝 네트워크 양자화 처리 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210192988A KR20230102665A (ko) 2021-12-30 2021-12-30 딥러닝 네트워크 양자화 처리 방법 및 시스템

Publications (1)

Publication Number Publication Date
KR20230102665A true KR20230102665A (ko) 2023-07-07

Family

ID=86999334

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210192988A KR20230102665A (ko) 2021-12-30 2021-12-30 딥러닝 네트워크 양자화 처리 방법 및 시스템

Country Status (2)

Country Link
KR (1) KR20230102665A (ko)
WO (1) WO2023128024A1 (ko)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102415214B1 (ko) * 2017-12-22 2022-06-30 서울대학교산학협력단 이상치를 고려한 뉴럴네트워크 가속 방법 및 장치
JP7045947B2 (ja) * 2018-07-05 2022-04-01 株式会社日立製作所 ニューラルネットワークの学習装置および学習方法
US20200364552A1 (en) * 2019-05-13 2020-11-19 Baidu Usa Llc Quantization method of improving the model inference accuracy
EP3998554A4 (en) * 2019-06-12 2023-11-15 Shanghai Cambricon Information Technology Co., Ltd METHOD FOR DETERMINING QUANTIZATION PARAMETERS IN A NEURONAL NETWORK AND ASSOCIATED PRODUCTS

Also Published As

Publication number Publication date
WO2023128024A1 (ko) 2023-07-06

Similar Documents

Publication Publication Date Title
CN111126558B (zh) 一种卷积神经网络计算加速方法及装置、设备、介质
TWI796286B (zh) 一種機器學習系統的訓練方法和訓練系統
WO2017219991A1 (zh) 适用于模式识别的模型的优化方法、装置及终端设备
CN111758104B (zh) 适合于硬件实现的神经网络参数优化方法、神经网络计算方法和装置
CN112508125A (zh) 一种图像检测模型的高效全整数量化方法
CN110929564B (zh) 基于对抗网络的指纹模型生成方法以及相关装置
CN109034384B (zh) 一种数据处理方法和装置
CN111950715A (zh) 基于自适应动态移位的8位整型全量化推理方法及装置
KR102505946B1 (ko) 인공신경망 모델 학습 방법 및 시스템
KR20230102665A (ko) 딥러닝 네트워크 양자화 처리 방법 및 시스템
US11514320B2 (en) Arithmetic processing apparatus, control method, and non-transitory computer-readable recording medium having stored therein control program
US20070223590A1 (en) System, apparatus, method, and computer program product for processing an integer transform
JP4194433B2 (ja) 尤度算出装置および方法
CN111767980B (zh) 模型优化方法、装置及设备
CN106970852A (zh) 闪存错误控制电路及其方法
CN114358280A (zh) 数据处理方法、装置、电子设备及计算机可读存储介质
KR20220016682A (ko) 데이터 라벨을 자동 교정하는 음성 인식 시스템 및 방법
US11811427B2 (en) Information processing apparatus, method of processing information, and non-transitory computer-readable storage medium for storing information processing program
CN115147669B (zh) 基于视觉转换器模型的图像处理方法、训练方法和设备
WO2021082851A1 (zh) 一种神经网络模型的量化方法、装置及计算机可读存储介质
CN113298248B (zh) 一种针对神经网络模型的处理方法、装置以及电子设备
US20230344972A1 (en) Information processing method and information processing system
CN113255576B (zh) 人脸识别方法及装置
CN116205275A (zh) 量化参数模型的训练方法及装置、电子设备、存储介质
KR101987592B1 (ko) 문법 모델의 정확도 향상 방법 및 이를 수행하는 장치들