KR20200135117A - 압축 해제 장치 및 그 제어 방법 - Google Patents

압축 해제 장치 및 그 제어 방법 Download PDF

Info

Publication number
KR20200135117A
KR20200135117A KR1020190117081A KR20190117081A KR20200135117A KR 20200135117 A KR20200135117 A KR 20200135117A KR 1020190117081 A KR1020190117081 A KR 1020190117081A KR 20190117081 A KR20190117081 A KR 20190117081A KR 20200135117 A KR20200135117 A KR 20200135117A
Authority
KR
South Korea
Prior art keywords
matrix
pruning index
compression
quantization
pruning
Prior art date
Application number
KR1020190117081A
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 KR1020190140720A priority Critical patent/KR20200135126A/ko
Priority to EP20166954.6A priority patent/EP3742349A1/en
Priority to US16/854,285 priority patent/US10917121B2/en
Priority to PCT/KR2020/005269 priority patent/WO2020242057A1/en
Priority to CN202010435215.1A priority patent/CN111985632A/zh
Publication of KR20200135117A publication Critical patent/KR20200135117A/ko
Priority to US17/130,538 priority patent/US11595062B2/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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

압축 해제 장치가 개시된다. 본 압축 해제 장치는 압축 매트릭스가 입력되면, 랜덤 매트릭스에 기초하여 압축 매트릭스에 포함된 제1 개수 단위의 바이너리 데이터를 제1 개수보다 큰 제2 개수 단위의 바이너리 데이터로 변환하여, 압축 매트릭스의 압축이 해제된 양자화 매트릭스를 획득하는 양자화 매트릭스 획득 유닛, 제1 프루닝 인덱스 매트릭스 및 제2 프루닝 인덱스 매트릭스가 입력되면, 제1 프루닝 인덱스 매트릭스 및 제2 프루닝 인덱스 매트릭스에 기초하여 프루닝 인덱스 매트릭스를 획득하는 프루닝 인덱스 매트릭스 획득 유닛 및 프루닝 인덱스 매트릭스에 기초하여 양자화 매트릭스에 포함된 복수의 엘리먼트 중 일부를 0으로 변환하는 마스킹 유닛을 포함하며, 압축 매트릭스, 제1 프루닝 인덱스 매트릭스 및 제2 프루닝 인덱스 매트릭스는 인공지능 모델에 포함된 원본 매트릭스의 압축 과정에서 획득되며, 제1 프루닝 인덱스 매트릭스 및 제2 프루닝 인덱스 매트릭스는 원본 매트릭스가 팩토라이즈(factorize)되어 획득된 제1 매트릭스 및 제2 매트릭스 각각에 기초하여 획득될 수 있다.

Description

압축 해제 장치 및 그 제어 방법 { DECOMPRESSION APPARATUS AND CONTROL METHOD THEREOF }
본 개시는 딥러닝 등의 기계 학습 알고리즘을 활용하여 인간 두뇌의 인지, 판단 등의 기능을 모사하는 인공지능(Artificial Intelligence, AI) 시스템 및 그 응용 중 압축된 인공지능 모델의 압축을 해제하기 위한 압축 해제 장치 및 그 제어 방법에 대한 것이다.
근래에는 인간 수준의 지능을 구현하는 인공 지능 시스템이 다양한 분야에서 이용되고 있다. 인공 지능 시스템은 기존의 룰(rule) 기반 스마트 시스템과 달리 기계가 스스로 학습하고 판단하며 똑똑해지는 시스템이다. 인공 지능 시스템은 사용할수록 인식률이 향상되고 사용자 취향을 보다 정확하게 이해할 수 있게 되어, 기존 룰 기반 스마트 시스템은 점차 딥러닝 기반 인공 지능 시스템으로 대체되고 있다.
인공 지능 기술은 기계학습(예로, 딥러닝) 및 기계학습을 활용한 요소 기술들로 구성된다.
기계학습은 입력 데이터들의 특징을 스스로 분류/학습하는 알고리즘 기술이며, 요소기술은 딥러닝 등의 기계학습 알고리즘을 활용하여 인간 두뇌의 인지, 판단 등의 기능을 모사하는 기술로서, 언어적 이해, 시각적 이해, 추론/예측, 지식 표현, 동작 제어 등의 기술 분야로 구성된다.
인공 지능 기술이 응용되는 다양한 분야는 다음과 같다. 언어적 이해는 인간의 언어/문자를 인식하고 응용/처리하는 기술로서, 자연어 처리, 기계 번역, 대화시스템, 질의 응답, 음성 인식/합성 등을 포함한다. 시각적 이해는 사물을 인간의 시각처럼 인식하여 처리하는 기술로서, 객체 인식, 객체 추적, 영상 검색, 사람 인식, 장면 이해, 공간 이해, 영상 개선 등을 포함한다. 추론 예측은 정보를 판단하여 논리적으로 추론하고 예측하는 기술로서, 지식/확률 기반 추론, 최적화 예측, 선호 기반 계획, 추천 등을 포함한다. 지식 표현은 인간의 경험정보를 지식데이터로 자동화 처리하는 기술로서, 지식 구축(데이터 생성/분류), 지식 관리(데이터 활용) 등을 포함한다. 동작 제어는 차량의 자율 주행, 로봇의 움직임을 제어하는 기술로서, 움직임 제어(항법, 충돌, 주행), 조작 제어(행동 제어) 등을 포함한다.
최근 딥러닝 모델의 성능 저하를 최소화하면서 압축률을 높이기 위해 프루닝(pruning) 및 양자화가 이용되고 있다. 가령, 특정 값 이하인 weight가 0으로 프루닝된 weight matrix는 non-zero 값을 나타내는 제1 데이터 셋, 각 로우(row)의 non-zero weight의 수를 누적한 제2 데이터 및 각 non-zero값에 해당하는 column index를 저장한 제3 데이터로 구분될 수 있다. 이후, 제1 내지 제3 데이터가 양자화될 수 있다. 한편, weight matrix는 딥러닝 모델의 weight 파라미터를 matrix 형태로 표현한 것일 수 있다.
다만, 양자화된 데이터로부터 최초의 weight matrix를 복원하기 위해서는 양자화를 해제하고, 제1 내지 제3 데이터로부터 최초의 weight matrix를 복원하는 과정이 필요하다. 즉, 최초의 weight matrix를 복원하기 전까지는 양자화된 데이터를 복수의 그룹으로 구분한 후, 각 그룹을 병렬적으로 처리하는 것이 불가능하다.
그에 따라, 압축 과정에서 압축률을 높이면서도 정확도를 유지하고, 압축 해제 과정에서 병렬적인 처리를 통해 연산 속도를 확보하기 위한 연구가 활발하게 이루어지고 있다.
본 개시는 상술한 필요성에 따른 것으로, 본 개시의 목적은 가령, 음성 인식이나 객체 인식에서 메모리 사용량을 줄이고 고속 처리를 위해 데이터 용량이 축소된 인공지능 모델을 이용하며, 데이터 용량이 축소된 인공지능 모델의 압축을 해제하는 압축 해제 장치 및 그 제어 방법을 제공함에 있다.
이상과 같은 목적을 달성하기 위한 본 개시의 일 실시 예에 따른 전자 장치는 압축 매트릭스가 입력되면, 랜덤 매트릭스에 기초하여 상기 압축 매트릭스에 포함된 제1 개수 단위의 바이너리 데이터를 상기 제1 개수보다 큰 제2 개수 단위의 바이너리 데이터로 변환하여, 상기 압축 매트릭스의 압축이 해제된 양자화 매트릭스를 획득하는 양자화 매트릭스 획득 유닛, 제1 프루닝 인덱스 매트릭스 및 제2 프루닝 인덱스 매트릭스가 입력되면, 상기 제1 프루닝 인덱스 매트릭스 및 상기 제2 프루닝 인덱스 매트릭스에 기초하여 프루닝 인덱스 매트릭스를 획득하는 프루닝 인덱스 매트릭스 획득 유닛 및 상기 프루닝 인덱스 매트릭스에 기초하여 상기 양자화 매트릭스에 포함된 복수의 엘리먼트 중 일부를 0으로 변환하는 마스킹 유닛을 포함하며, 상기 압축 매트릭스, 상기 제1 프루닝 인덱스 매트릭스 및 상기 제2 프루닝 인덱스 매트릭스는 인공지능 모델에 포함된 원본 매트릭스의 압축 과정에서 획득되며, 상기 제1 프루닝 인덱스 매트릭스 및 상기 제2 프루닝 인덱스 매트릭스는 상기 원본 매트릭스가 팩토라이즈(factorize)되어 획득된 제1 매트릭스 및 제2 매트릭스 각각에 기초하여 획득될 수 있다.
또한, 상기 양자화 매트릭스 획득 유닛은 패치 정보가 입력되면, 상기 패치 정보에 기초하여 상기 양자화 매트릭스에 포함된 상기 복수의 엘리먼트 중 일부의 바이너리 데이터 값을 변경하고, 상기 패치 정보는 상기 원본 매트릭스의 압축 과정에서 발생되는 상기 양자화 매트릭스의 에러 정보를 포함할 수 있다.
그리고, 타 압축 매트릭스가 입력되면, 상기 랜덤 매트릭스에 기초하여 상기 타 압축 매트릭스에 포함된 상기 제1 개수 단위의 바이너리 데이터를 상기 제2 개수 단위의 바이너리 데이터로 변환하여, 상기 타 압축 매트릭스의 압축이 해제된 타 양자화 매트릭스를 획득하는 타 양자화 매트릭스 획득 유닛을 더 포함하고, 상기 마스킹 유닛은 상기 프루닝 인덱스 매트릭스에 기초하여 상기 타 양자화 매트릭스에 포함된 복수의 엘리먼트 중 일부를 0으로 변환하고, 상기 양자화 매트릭스 및 상기 타 양자화 매트릭스를 결합하여 각 엘리먼트가 복수의 바이너리 데이터를 포함하는 최종 양자화 매트릭스를 획득할 수 있다.
또한, 상기 압축 매트릭스, 상기 제1 프루닝 인덱스 매트릭스 및 상기 제2 프루닝 인덱스 매트릭스는 상기 원본 매트릭스가 인터리빙된 매트릭스의 압축 과정에서 획득되고, 상기 압축 해제 장치는 상기 최종 양자화 매트릭스에 대해 상기 인터리빙에 대응되는 디인터리빙을 수행하는 디인터리버를 더 포함할 수 있다.
그리고, 상기 양자화 매트릭스 획득 유닛은 상기 랜덤 매트릭스에 기초하여 각 입출력 단자가 연결된 복수의 XOR 게이트를 포함할 수 있다.
또한, 상기 프루닝 인덱스 매트릭스 획득 유닛은 상기 제1 프루닝 인덱스 매트릭스 및 상기 제2 프루닝 인덱스 매트릭스를 매트릭스 곱셈하여 상기 프루닝 인덱스 매트릭스를 획득할 수 있다.
그리고, 상기 압축 해제 장치는 프로세서의 외부 메모리로부터 상기 압축 매트릭스, 상기 제1 프루닝 인덱스 매트릭스 및 상기 제2 프루닝 인덱스 매트릭스를 입력받고, 상기 프로세서의 내부 메모리로 상기 양자화 매트릭스를 전송할 수 있다.
또한, 상기 압축 해제 장치는 프로세서 내에 구비되며, 상기 프로세서의 내부 메모리로부터 상기 압축 매트릭스, 상기 제1 프루닝 인덱스 매트릭스 및 상기 제2 프루닝 인덱스 매트릭스를 입력받고, 상기 프로세서에 포함된 연산 소자 유닛으로 상기 양자화 매트릭스를 전송하며, 상기 연산 소자 유닛은 매트릭스 형태로 배열된 복수의 연산 소자(Processing Element)를 포함할 수 있다.
그리고, 상기 압축 매트릭스, 상기 제1 프루닝 인덱스 매트릭스 및 상기 제2 프루닝 인덱스 매트릭스는 상기 원본 매트릭스가 열의 개수 및 행의 개수가 각각 동일하도록 분할된 복수의 서브 매트릭스 중 하나에 기초하여 획득될 수 있다.
한편, 본 개시의 일 실시 예에 따른 압축 해제 장치의 제어 방법은 압축 매트릭스가 입력되면, 랜덤 매트릭스에 기초하여 상기 압축 매트릭스에 포함된 제1 개수 단위의 바이너리 데이터를 상기 제1 개수보다 큰 제2 개수 단위의 바이너리 데이터로 변환하여, 상기 압축 매트릭스의 압축이 해제된 양자화 매트릭스를 획득하는 단계, 제1 프루닝 인덱스 매트릭스 및 제2 프루닝 인덱스 매트릭스가 입력되면, 상기 제1 프루닝 인덱스 매트릭스 및 상기 제2 프루닝 인덱스 매트릭스에 기초하여 프루닝 인덱스 매트릭스를 획득하는 단계 및 상기 프루닝 인덱스 매트릭스에 기초하여 상기 양자화 매트릭스에 포함된 복수의 엘리먼트 중 일부를 0으로 변환하는 단계를 포함하며, 상기 압축 매트릭스, 상기 제1 프루닝 인덱스 매트릭스 및 상기 제2 프루닝 인덱스 매트릭스는 인공지능 모델에 포함된 원본 매트릭스의 압축 과정에서 획득되며, 상기 제1 프루닝 인덱스 매트릭스 및 상기 제2 프루닝 인덱스 매트릭스는 상기 원본 매트릭스가 팩토라이즈(factorize)되어 획득된 제1 매트릭스 및 제2 매트릭스 각각에 기초하여 획득될 수 있다.
또한, 패치 정보가 입력되면, 상기 패치 정보에 기초하여 상기 양자화 매트릭스에 포함된 상기 복수의 엘리먼트 중 일부의 바이너리 데이터 값을 변경하는 단계를 더 포함하고, 상기 패치 정보는 상기 원본 매트릭스의 압축 과정에서 발생되는 상기 양자화 매트릭스의 에러 정보를 포함할 수 있다.
그리고, 타 압축 매트릭스가 입력되면, 상기 랜덤 매트릭스에 기초하여 상기 타 압축 매트릭스에 포함된 상기 제1 개수 단위의 바이너리 데이터를 상기 제2 개수 단위의 바이너리 데이터로 변환하여, 상기 타 압축 매트릭스의 압축이 해제된 타 양자화 매트릭스를 획득하는 단계를 더 포함하고, 상기 변환하는 단계는 상기 프루닝 인덱스 매트릭스에 기초하여 상기 타 양자화 매트릭스에 포함된 복수의 엘리먼트 중 일부를 0으로 변환하고, 상기 양자화 매트릭스 및 상기 타 양자화 매트릭스를 결합하여 각 엘리먼트가 복수의 바이너리 데이터를 포함하는 최종 양자화 매트릭스를 획득할 수 있다.
또한, 상기 압축 매트릭스, 상기 제1 프루닝 인덱스 매트릭스 및 상기 제2 프루닝 인덱스 매트릭스는 상기 원본 매트릭스가 인터리빙된 매트릭스의 압축 과정에서 획득되고, 상기 제어 방법은 상기 최종 양자화 매트릭스에 대해 상기 인터리빙에 대응되는 디인터리빙을 수행하는 단계를 더 포함할 수 있다.
그리고, 상기 양자화 매트릭스를 획득하는 단계는 상기 랜덤 매트릭스에 기초하여 각 입출력 단자가 연결된 복수의 XOR 게이트를 이용하여 상기 압축 매트릭스로부터 상기 양자화 매트릭스를 획득할 수 있다.
또한, 상기 프루닝 인덱스 매트릭스를 획득하는 단계는 상기 제1 프루닝 인덱스 매트릭스 및 상기 제2 프루닝 인덱스 매트릭스를 매트릭스 곱셈하여 상기 프루닝 인덱스 매트릭스를 획득할 수 있다.
그리고, 상기 양자화 매트릭스 및 상기 프루닝 인덱스 매트릭스를 획득하는 단계는 프로세서의 외부 메모리로부터 상기 압축 매트릭스, 상기 제1 프루닝 인덱스 매트릭스 및 상기 제2 프루닝 인덱스 매트릭스를 입력받고, 상기 제어 방법은 상기 프로세서의 내부 메모리로 상기 양자화 매트릭스를 전송하는 단계를 더 포함할 수 있다.
또한, 상기 압축 해제 장치는 프로세서 내에 구비되며, 상기 양자화 매트릭스 및 상기 프루닝 인덱스 매트릭스를 획득하는 단계는 상기 프로세서의 내부 메모리로부터 상기 압축 매트릭스, 상기 제1 프루닝 인덱스 매트릭스 및 상기 제2 프루닝 인덱스 매트릭스를 입력받고, 상기 제어 방법은 상기 프로세서에 포함된 연산 소자 유닛으로 상기 양자화 매트릭스를 전송하며, 상기 연산 소자 유닛은 매트릭스 형태로 배열된 복수의 연산 소자(Processing Element)를 포함할 수 있다.
그리고, 상기 압축 매트릭스, 상기 제1 프루닝 인덱스 매트릭스 및 상기 제2 프루닝 인덱스 매트릭스는 상기 원본 매트릭스가 열의 개수 및 행의 개수가 각각 동일하도록 분할된 복수의 서브 매트릭스 중 하나에 기초하여 획득될 수 있다.
한편, 본 개시의 일 실시 예에 따른 압축 해제 장치의 동작 방법을 실행하기 위한 프로그램이 저장된 비일시적 컴퓨터 판독가능 기록매체에 있어서, 상기 동작 방법은 압축 매트릭스가 입력되면, 랜덤 매트릭스에 기초하여 상기 압축 매트릭스에 포함된 제1 개수 단위의 바이너리 데이터를 상기 제1 개수보다 큰 제2 개수 단위의 바이너리 데이터로 변환하여, 상기 압축 매트릭스의 압축이 해제된 양자화 매트릭스를 획득하는 단계, 제1 프루닝 인덱스 매트릭스 및 제2 프루닝 인덱스 매트릭스가 입력되면, 상기 제1 프루닝 인덱스 매트릭스 및 상기 제2 프루닝 인덱스 매트릭스에 기초하여 프루닝 인덱스 매트릭스를 획득하는 단계 및 상기 프루닝 인덱스 매트릭스에 기초하여 상기 양자화 매트릭스에 포함된 복수의 엘리먼트 중 일부를 0으로 변환하는 단계를 포함하며, 상기 압축 매트릭스, 상기 제1 프루닝 인덱스 매트릭스 및 상기 제2 프루닝 인덱스 매트릭스는 인공지능 모델에 포함된 원본 매트릭스의 압축 과정에서 획득되며, 상기 제1 프루닝 인덱스 매트릭스 및 상기 제2 프루닝 인덱스 매트릭스는 상기 원본 매트릭스가 팩토라이즈(factorize)되어 획득된 제1 매트릭스 및 제2 매트릭스 각각에 기초하여 획득될 수 있다.
이상과 같은 본 개시의 다양한 실시 예에 따르면, 압축 해제 장치는 압축된 데이터로부터 프루닝 인덱스 매트릭스 및 양자화 매트릭스를 획득하여, 인공지능 모델에 포함된 원본 매트릭스를 획득할 수 있다.
도 1은 본 개시의 일 실시 예에 따른 전자 시스템을 설명하기 위한 도면이다.
도 2는 본 개시의 일 실시 예에 따른 압축 해제 장치의 구성을 나타내는 블럭도이다.
도 3a 내지 도 3d는 본 개시의 이해를 돕기 위한 압축 매트릭스, 제1 프루닝 인덱스 매트릭스 및 제2 프루닝 인덱스 매트릭스의 획득 방법을 간략히 설명하기 위한 도면들이다.
도 4는 본 개시의 이해를 돕기 위한 압축 매트릭스를 획득하는 방법을 설명하기 위한 도면이다.
도 5a 및 도 5b는 본 개시의 확장 실시 예에 따른 압축 해제 장치를 설명하기 위한 도면들이다.
도 6은 본 개시의 일 실시 예에 따른 원본 매트릭스를 설명하기 위한 도면이다.
도 7a 내지 도 7c는 본 개시의 일 실시 예에 따른 압축 매트릭스의 압축 해제 방법을 설명하기 위한 도면들이다.
도 8a 내지 도 8c는 본 개시의 일 실시 예에 따른 마스킹 유닛의 마스킹 동작을 설명하기 위한 도면들이다.
도 9는 본 개시의 일 실시 예에 따른 마스킹 유닛의 복수의 양자화 매트릭스를 병합하는 방법을 설명하기 위한 도면이다.
도 10은 본 개시의 일 실시 예에 따른 압축 해제 장치의 제어 방법을 설명하기 위한 흐름도이다.
도 11a 내지 도 11d는 본 개시의 일 실시 예에 따른 인공지능 모델의 학습 과정을 설명하기 위한 도면들이다.
도 12는 본 개시의 일 실시 예에 따른 학습 과정에서 프루닝을 수행하는 방법을 설명하기 위한 도면이다.
도 13은 본 개시의 일 실시 예에 따른 m의 값의 영향을 설명하기 위한 도면이다.
도 14a 및 도 14b는 본 개시의 일 실시 예에 따른 학습 속도 향상을 설명하기 위한 도면들이다.
이하에서는 첨부 도면을 참조하여 본 개시를 상세히 설명한다.
본 개시의 실시 예에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 개시의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 명세서에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
A 또는/및 B 중 적어도 하나라는 표현은 "A" 또는 "B" 또는 "A 및 B" 중 어느 하나를 나타내는 것으로 이해되어야 한다.
본 명세서에서 사용된 "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성되다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 명세서에서, 사용자라는 용어는 전자 장치를 사용하는 사람 또는 전자 장치를 사용하는 장치(예: 인공지능 전자 장치)를 지칭할 수 있다.
이하 첨부된 도면들을 참조하여 본 개시의 일 실시 예를 보다 상세하게 설명한다.
도 1은 본 개시의 일 실시 예에 따른 전자 시스템(1000)을 설명하기 위한 도면이다. 전자 시스템(1000)은 압축 장치(50) 및 압축 해제 장치(100)를 포함한다.
먼저, 압축 장치(50)는 인공지능 모델을 압축하는 장치일 수 있다. 예를 들어, 압축 장치(50)는 인공지능 모델에 포함된 원본 매트릭스(matrix)를 압축하는 장치로서, 서버, 데스크탑 PC, 노트북, 스마트폰, 태블릿 PC, TV, 웨어러블 기기 등에 메모리와 칩 사이에 존재하는 별도의 HW 형태로 구현될 수도 있고, SOC(System On Chip) 로 구현될 수도 있다. 또한 압축 장치(50)는 CPU, GPU, DSP, NPU등 칩 자체 등으로 구현될 수 있다. 또한, 인공지능 모델에는 복수의 원본 매트릭스가 포함될 수 있으며, 압축 장치(50)는 복수의 원본 매트릭스를 개별적으로 압축할 수 있다. 즉, 압축 장치(50)는 인공지능 모델을 압축하여 인공지능 모델의 데이터 크기를 줄일 수 있는 장치라면 어떠한 장치라도 무방하다. 여기서, 원본 매트릭스는 웨이트(weight) 매트릭스일 수 있다.
압축 장치(50)는 인공지능 모델에 포함된 원본 매트릭스를 프루닝(pruning)하여 원본 매트릭스에 포함된 각 엘리먼트(파라미터)의 프루닝 여부를 나타내는 프루닝 인덱스 매트릭스를 획득할 수 있다. 프루닝은 redundant한 웨이트를 제거하는 방법으로, 구체적으로 인공지능 모델에 포함된 원본 매트릭스에서 특정 엘리먼트(특정 딥러닝 파라미터)의 수치를 0으로 바꾸는 방법이다. 예를 들어, 압축 장치(50)는 m × n의 원본 매트릭스에 포함된 복수의 엘리먼트 중 기설정된 값 이하의 엘리먼트를 0으로 변경하여 m × n의 원본 매트릭스를 프루닝하고, m × n의 원본 매트릭스에 포함된 복수의 엘리먼트 각각이 프루닝 되었는지를 0 또는 1로 나타내는 m × n의 프루닝 인덱스 매트릭스를 획득할 수 있다.
그리고, 압축 장치(50)는 프루닝 인덱스 매트릭스를 제1 프루닝 인덱스 매트릭스 및 제2 프루닝 인덱스 매트릭스로 팩토라이즈(factorize)할 수 있다. 예를 들어, 압축 장치(50)는 m × n의 프루닝 인덱스 매트릭스를 m × t의 제1 프루닝 인덱스 매트릭스 및 t × n의 제2 프루닝 인덱스 매트릭스로 팩토라이즈할 수 있다. 여기서, t는 m 및 n 보다 작은 값일 수 있다. 팩토라이제이션 (factorization)은 일종의 인수분해로서, 매트릭스를 크기가 작은 두 개의 매트릭스로 분할하는 것을 의미하며, 가령 non-negative matrix factorization(NMF)와 같은 방법이 이용될 수 있다. 다만, 이에 한정되는 것은 아니며, 얼마든지 다양한 방법이 이용될 수 있으며, 제1 프루닝 인덱스 매트릭스 및 제2 프루닝 인덱스 매트릭스를 획득하는 구체적인 방법에 대하여는 후술한다.
압축 장치(50)는 인공지능 모델에 포함된 원본 매트릭스를 양자화(quantization)할 수 있다. 양자화란 데이터를 복수의 표본 값 중 하나로 변경하는 것을 의미하며, 복수의 표본 값들로 표현되기 때문에 전체 데이터 용량을 축소할 수 있으나, 변경된 표본 값과 최초 데이터의 차이만큼 오차가 발생하게 된다.
예를 들어, 압축 장치(50)는 인공지능 모델에 포함된 원본 매트릭스를 양자화하여 대표 값 매트릭스 및 바이너리 양자화 데이터를 포함하는 양자화 매트릭스를 획득할 수 있다. 여기서, 바이너리 양자화 데이터는 1bit로 표시되는 데이터를 의미하며, 대표 값 매트릭스 및 양자화 매트릭스를 획득하는 방법에 대하여는 후술한다. 다만, 이에 한정되는 것은 아니며, 양자화 방법은 얼마든지 다른 방법이 이용될 수도 있다.
그리고, 압축 장치(50)는 양자화 매트릭스를 양자화 매트릭스에 포함된 바이너리 데이터의 압축 대상 단위 및 압축 타겟 단위에 기초하여 크기가 결정된 랜덤 매트릭스를 획득할 수 있다. 여기서, 압축 대상 단위는 양자화 매트릭스에 포함된 바이너리 데이터 중 한 번에 압축하고자 하는 비트수를 의미하며, 압축 타겟 단위는 압축 대상 단위를 몇 개의 비트수로 압축할 것인지를 나타낸다.
예를 들어, 압축 장치(50)는 양자화 매트릭스에 포함된 바이너리 데이터의 압축 대상 단위인 7 비트를 및 압축 타겟 단위인 3 비트에 기초하여 7 × 3의 랜덤 매트릭스를 획득할 수 있다.
랜덤 매트릭스는 제1 타입의 엘리먼트 및 제2 타입의 엘리먼트를 포함하며, 랜덤 메트릭스에 포함된 제1 타입의 엘리먼트의 개수 및 랜덤 메트릭스에 포함된 제2 타입의 엘리먼트의 개수는 서로 동일할 수 있다. 예를 들어, 랜덤 매트릭스는 0 및 1을 포함하며, 0의 개수와 1의 개수는 동일할 수 있다. 다만, 이에 한정되는 것은 아니며, 랜덤 매트릭스에 포함된 엘리먼트의 개수가 홀수인 경우, 0의 개수와 1의 개수 간의 차이는 1일 수도 있다.
압축 장치(50)는 랜덤 매트릭스를 이용하여 양자화 매트릭스를 압축 매트릭스로 압축할 수 있다. 이때, 압축 장치(50)는 원본 매트릭스에 포함된 복수의 엘리먼트의 프루닝 여부에 기초하여 양자화 매트릭스로부터 압축 매트릭스를 획득할 수 있다. 또한, 압축 장치(50)는 압축 매트릭스의 생성 과정에서 패치 정보를 획득할 수 있다. 패치 정보는 압축 과정에서 발생되는 양자화 매트릭스의 에러 정보를 포함하며, 압축 매트릭스 및 패치 정보를 획득하는 방법에 대한 구체적인 설명은 후술한다.
이상과 같이 압축 장치(50)는 인공지능 모델에 포함된 원본 매트릭스를 제1 프루닝 인덱스 매트릭스, 제2 프루닝 인덱스 매트릭스, 압축 매트릭스 및 패치 정보로 압축할 수 있으며, 제1 프루닝 인덱스 매트릭스, 제2 프루닝 인덱스 매트릭스, 압축 매트릭스 및 패치 정보를 압축 해제 장치(100)로 제공할 수 있다.
압축 해제 장치(100)는 인공지능 모델의 압축을 해제하는 장치일 수 있다. 예를 들어, 압축 해제 장치(100)는 압축 장치(50)로부터 제공된 제1 프루닝 인덱스 매트릭스, 제2 프루닝 인덱스 매트릭스, 압축 매트릭스 및 패치 정보의 압축을 해제하여 인공지능 모델에 포함된 원본 매트릭스를 획득하는 장치로서, 서버, 데스크탑 PC, 노트북, 스마트폰, 태블릿 PC, TV, 웨어러블 기기 등에 메모리와 칩 사이에 존재하는 별도의 HW 형태로 구현될 수도 있고, SOC(System On Chip) 로 구현될 수도 있다. 또한 압축 해제 장치(100)는 CPU, GPU, DSP, NPU등 칩 자체 등으로 구현될 수 있다. 또한, 압축 해제 장치(100)는 회로 형태로 구현될 수도 있고, 칩 내부의 일 구성으로 구현될 수도 있다.
다만, 이에 한정되는 것은 아니며, 압축 해제 장치(100)는 압축 장치(50)로부터 제공된 제1 프루닝 인덱스 매트릭스, 제2 프루닝 인덱스 매트릭스, 압축 매트릭스 및 패치 정보의 압축을 해제하여 인공지능 모델에 포함된 원본 매트릭스를 획득할 수 있는 장치라면 어떠한 장치라도 무방하다.
도 2는 본 개시의 일 실시 예에 따른 압축 해제 장치(100)의 구성을 나타내는 블럭도이다. 도 2에 도시된 바와 같이, 압축 해제 장치(100)는 양자화 매트릭스 획득 유닛(110), 프루닝 인덱스 매트릭스 획득 유닛(120) 및 마스킹 유닛(130)을 포함한다.
양자화 매트릭스 획득 유닛(110)은 압축 장치(50)로부터 압축 매트릭스를 입력받고, 압축 매트릭스로부터 양자화 매트릭스를 획득할 수 있다.
양자화 매트릭스 획득 유닛(110)은 랜덤 매트릭스에 기초하여 압축 매트릭스에 포함된 제1 개수 단위의 바이너리 데이터를 제1 개수보다 큰 제2 개수 단위의 바이너리 데이터로 변환하여, 압축 매트릭스의 압축이 해제된 양자화 매트릭스를 획득할 수 있다. 예를 들어, 양자화 매트릭스 획득 유닛(110)은 랜덤 매트릭스에 기초하여 압축 매트릭스에 포함된 5개 단위의 바이너리 데이터를 9개 단위의 바이너리 데이터로 변환하여 양자화 매트릭스를 획득할 수 있다. 가령, 양자화 매트릭스 획득 유닛(110)은 5 × 5의 압축 매트릭스에 포함된 5개 단위의 바이너리 데이터를 9개 단위의 바이너리 데이터로 변환하여 5 × 9 또는 9 × 5의 양자화 매트릭스를 획득할 수 있다.
즉, 양자화 매트릭스 획득 유닛(110)에 5개의 바이너리 데이터가 입력되면 9개의 바이너리 데이터가 출력될 수 있으며, 좀더 구체적인 예로서 9 × 5의 랜덤 매트릭스와 5개의 바이너리 데이터의 곱을 통해 9개의 바이너리 데이터가 출력될 수 있다. 따라서, 25개의 엘리먼트를 갖는 압축 매트릭스가 45개의 엘리먼트를 갖는 양자화 매트릭스로 압축 해제될 수 있다. 여기서, 랜덤 매트릭스는 상술한 압축 장치(50)가 압축 매트릭스를 획득하는 과정에서 사용한 랜덤 매트릭스와 동일하다. 다만, 압축 과정에서 랜덤 매트릭스의 사용 방법과 압축 해제 과정에서 랜덤 매트릭스의 사용 방법은 서로 다를 수 있으며, 이에 대하여는 도면을 통해 후술한다.
압축 장치(50)와 관련하여 상술한 바와 같이, 랜덤 매트릭스는 압축 방법의 설계 과정에서 생성되는 매트릭스로서, 압축 대상 단위(제2 개수)와 압축 타겟 단위(제1 개수)의 곱만큼의 엘리먼트를 갖는 매트릭스일 수 있다.
양자화 매트릭스 획득 유닛(110)은 랜덤 매트릭스에 기초하여 각 입출력 단자가 연결된 복수의 XOR 게이트를 포함할 수 있다. 즉, 복수의 XOR 게이트는 입력된 랜덤 매트릭스와 바이너리 데이터의 곱이 출력되도록 각각의 입출력 단자가 연결될 수 있다.
한편, 양자화 매트릭스 획득 유닛(110)은 압축 장치(50)로부터 패치 정보가 입력되면, 패치 정보에 기초하여 양자화 매트릭스에 포함된 복수의 엘리먼트 중 일부의 바이너리 데이터 값을 변경할 수 있다. 예를 들어, 양자화 매트릭스 획득 유닛(110)은 양자화 매트릭스에 포함된 복수의 엘리먼트 중 패치 정보가 나타내는 엘리먼트의 값이 0이면 1로 변경하고, 1이면 0으로 변경할 수 있다. 패치 정보에 대한 구체적인 설명은 도면을 통해 후술한다.
프루닝 인덱스 매트릭스 획득 유닛(120)은 제1 프루닝 인덱스 매트릭스 및 제2 프루닝 인덱스 매트릭스가 입력되면, 제1 프루닝 인덱스 매트릭스 및 제2 프루닝 인덱스 매트릭스에 기초하여 프루닝 인덱스 매트릭스를 획득할 수 있다. 구체적으로, 제1 프루닝 인덱스 매트릭스 및 제2 프루닝 인덱스 매트릭스 각각은 바이너리 데이터를 포함하며, 프루닝 인덱스 매트릭스 획득 유닛(120)은 제1 프루닝 인덱스 매트릭스 및 제2 프루닝 인덱스 매트릭스를 매트릭스 곱셈 연산하여 프루닝 인덱스 매트릭스를 획득할 수 있다. 프루닝 인덱스 매트릭스 획득 유닛(120)은 제1 프루닝 인덱스 매트릭스 및 제2 프루닝 인덱스 매트릭스를 매트릭스 곱셈 과정에서 AND 게이트와 동일한 방식으로 바이너리 데이터 간의 곱셈 연산을 수행하고, XOR 게이트와 동일한 방식으로 곱셈 결과 간의 덧셈 연산을 수행할 수 있다. 프루닝 인덱스 매트릭스는 원본 매트릭스에 포함된 엘리먼트 각각의 프루닝 여부를 나타내는 바이너리 데이터를 포함할 수 있다.
여기서, 제1 프루닝 인덱스 매트릭스 및 제2 프루닝 인덱스 매트릭스는 인공지능 모델에 포함된 원본 매트릭스의 압축 과정에서 획득될 수 있다. 구체적으로, 제1 프루닝 인덱스 매트릭스 및 제2 프루닝 인덱스 매트릭스는 원본 매트릭스가 팩토라이즈(factorize)되어 획득된 제1 매트릭스 및 제2 매트릭스 각각에 기초하여 획득될 수 있다. 제1 프루닝 인덱스 매트릭스 및 제2 프루닝 인덱스 매트릭스는 각각은 제1 매트릭스 및 제2 매트릭스에 포함된 엘리먼트가 프루닝 되었는지를 나타내는 바이너리 데이터를 포함할 수 있다. 예를 들어, m × t의 제1 프루닝 인덱스 매트릭스는 m × t의 제1 매트릭스에 포함된 복수의 엘리먼트 중 0으로 변환된 엘리먼트의 위치를 0으로, m × t의 제1 매트릭스에 포함된 복수의 엘리먼트 중 0으로 변환되지 않은 엘리먼트의 위치를 1로서 포함할 수 있다.
다만, 이에 한정되는 것은 아니며, 0 및 1이 반대의 의미일 수도 있고, 0 및 1이 아닌 다른 값으로 프루닝 여부가 표현될 수도 있다. 또한, 어떤 엘리먼트가 프루닝 되었는지가 x, y 좌표로 표현될 수도 있다.
제1 프루닝 인덱스 매트릭스 및 제2 프루닝 인덱스 매트릭스로부터 프루닝 인덱스 매트릭스를 획득하는 동작 역시 압축 해제 동작일 수 있다. 예를 들어, m × t의 제1 프루닝 인덱스 매트릭스 및 t × n의 제2 프루닝 인덱스 매트릭스의 곱셈으로 m × n의 프루닝 인덱스 매트릭스가 획득될 수 있으며, 용량이 증가하게 된다. 좀더 구체적인 예를 들면, 제1 프루닝 인덱스 매트릭스가 100 × 3의 형태이고, 제2 프루닝 인덱스 매트릭스가 3 × 10의 형태이면, 프루닝 인덱스 매트릭스는 100 × 10의 형태일 수 있다. 그리고, 제1 프루닝 인덱스 매트릭스 및 제2 프루닝 인덱스 매트릭스는 총 100 × 3 + 3 × 10 = 330개의 엘리먼트를 포함하나, 프루닝 인덱스 매트릭스는 100 × 10 = 1000개의 엘리먼트를 포함하게 되어, 용량이 증가하게 된다. 즉, 프루닝 인덱스 매트릭스를 획득하는 동작은 압축을 해제하는 동작일 수 있다.
마스킹 유닛(130)은 프루닝 인덱스 매트릭스에 기초하여 양자화 매트릭스에 포함된 복수의 엘리먼트 중 일부를 0으로 변환할 수 있다. 즉, 마스킹 유닛(130)은 양자화 매트릭스에서 프루닝된 엘리먼트를 0으로 변환할 수 있다.
한편, 이상에서는 양자화 매트릭스 획득 유닛(110)이 하나인 것으로 설명하였으나, 이는 설명의 편의를 위한 것이다. 압축 해제 장치(100)는 타 압축 매트릭스가 입력되면, 랜덤 매트릭스에 기초하여 타 압축 매트릭스에 포함된 제1 개수 단위의 바이너리 데이터를 제2 개수 단위의 바이너리 데이터로 변환하여, 타 압축 매트릭스의 압축이 해제된 타 양자화 매트릭스를 획득하는 타 양자화 매트릭스 획득 유닛을 더 포함할 수 있다. 즉, 타 양자화 매트릭스 획득 유닛은 양자화 매트릭스 획득 유닛(110)과 동일한 구조이며, 압축 해제에 이용하는 랜덤 매트릭스도 동일하나, 압축 해제 대상에 차이가 있을 뿐이다.
압축 해제 대상은 원본 매트릭스에 포함된 복수의 엘리먼트의 비트 수에 따라 복수일 수 있다. 예를 들어, 원본 매트릭스에 포함된 복수의 엘리먼트가 2비트라고 하면, 양자화 과정에서 비트의 자릿수에 따라 원본 매트릭스는 두 개의 매트릭스로 구분될 수 있다. 예를 들어, 각 엘리먼트가 2비트인 m × n의 원본 매트릭스는 각 엘리먼트가 1비트인 m × n의 매트릭스 두 개로 구분될 수 있다. 압축 장치(50)는 두 개의 매트릭스 각각에 대하여 양자화를 수행할 수 있으며, 두 개의 압축 매트릭스가 획득될 수 있다. 이후, 양자화 매트릭스 획득 유닛(110)은 두 개의 압축 매트릭스 중 하나의 압축을 해제하고, 타 양자화 매트릭스 획득 유닛(110)은 두 개의 압축 매트릭스 중 다른 하나의 압축을 해제할 수 있다.
다만, 이에 한정되는 것은 아니며, 압축 해제 장치(100)는 압축 해제 유닛을 더 많이 포함할 수도 있다.
마스킹 유닛(130)은 프루닝 인덱스 매트릭스에 기초하여 타 양자화 매트릭스에 포함된 복수의 엘리먼트 중 일부를 0으로 변환하고, 양자화 매트릭스 및 타 양자화 매트릭스를 결합하여 각 엘리먼트가 복수의 바이너리 데이터를 포함하는 최종 양자화 매트릭스를 획득할 수 있다.
다만, 이에 한정되는 것은 아니며, 마스킹 유닛(130)은 양자화 매트릭스 및 타 양자화 매트릭스를 결합한 후, 프루닝 인덱스 매트릭스에 기초하여 결합된 양자화 매트릭스에 포함된 복수의 엘리먼트 중 일부를 0으로 변환할 수도 있다. 예를 들어, 마스킹 유닛(130)은 각 엘리먼트가 1비트인 m × n의 양자화 매트릭스 및 각 엘리먼트가 1비트인 m × n의 타 양자화 매트릭스를 결합하여 각 엘리먼트가 2비트인 m × n의 결합된 양자화 매트릭스를 획득한 후, 프루닝 인덱스 매트릭스에 기초하여 결합된 양자화 매트릭스에 포함된 복수의 엘리먼트 중 일부를 0으로 변환할 수도 있다.
한편, 이상에서는 압축 해제 장치(100)가 프루닝 인덱스 매트릭스 획득 유닛(120)을 포함하는 것으로 설명하였으나, 이에 한정되는 것은 아니다. 예를 들어, 압축 해제 장치(100)는 양자화 매트릭스 획득 유닛(110) 및 마스킹 유닛(130)만을 포함할 수도 있다. 이 경우, 압축 장치(50)는 프루닝 인덱스 매트릭스를 제1 프루닝 인덱스 매트릭스 및 제2 프루닝 인덱스 매트릭스로 분할하지 않고, 프루닝 인덱스 매트릭스 자체를 압축 해제 장치(100)로 제공할 수도 있다. 즉, 프루닝 인덱스 매트릭스의 팩토라이즈 여부는 선택적인 동작일 수도 있다.
이상에서는 압축 해제 장치(100)의 기본 동작을 설명하였으며, 이하에서는 먼저 압축 과정을 도면을 통해 간단히 설명한 후, 압축 해제 동작을 좀더 구체적으로 설명한다.
도 3a 내지 도 3d는 본 개시의 이해를 돕기 위한 압축 매트릭스, 제1 프루닝 인덱스 매트릭스 및 제2 프루닝 인덱스 매트릭스의 획득 방법을 간략히 설명하기 위한 도면들이다. 설명의 편의를 위하여 압축 장치(50)가 압축을 수행하는 것으로 설명한다.
도 3a는 인공지능 모델에 포함된 원본 매트릭스의 일 예를 나타내는 도면으로, 원본 매트릭스는 m × n의 형태일 수 있다. 예를 들어, 원본 매트릭스는 10000 × 8000의 형태일 수 있다. 그리고, 원본 매트릭스 내의 복수의 엘리먼트는 각각 32 비트일 수 있다. 즉, 원본 매트릭스는 32 비트인 엘리먼트를 10000 × 8000개 포함할 수 있다. 다만, 이에 한정되는 것은 아니며, 원본 매트릭스의 크기 및 각 엘리먼트의 비트수는 얼마든지 다를 수도 있다.
도 3b는 도 3a에 도시된 원본 매트릭스를 프루닝 및 양자화한 결과를 나타내는 도면이다.
압축 장치(50)는 제1 임계 값에 기초하여 원본 매트릭스에 포함된 복수의 엘리먼트 각각을 프루닝하고, 복수의 엘리먼트 각각의 프루닝 여부를 바이너리 데이터로 나타내는 프루닝 인덱스 매트릭스(310)를 획득할 수 있다.
예를 들어, 압축 장치(50)는 원본 매트릭스에 포함된 복수의 엘리먼트 중 30보다 작은 엘리먼트를 0으로 변환하고, 나머지 엘리먼트를 그대로 유지하는 방식으로 원본 매트릭스를 프루닝할 수 있다. 그리고, 압축 장치(50)는 복수의 엘리먼트 중 0으로 변환된 엘리먼트는 0으로, 나머지 엘리먼트는 1로 변환하여 프루닝 인덱스 매트릭스(310)를 획득할 수 있다. 즉, 프루닝 인덱스 매트릭스(310)는 원본 매트릭스와 크기가 동일하며, 0 또는 1을 포함할 수 있다.
그리고, 압축 장치(50)는 복수의 엘리먼트 중 프루닝에서 '0'으로 변환되지 않는 각각을 양자화할 수 있다. 예를 들어, 압축 장치(50)는 복수의 엘리먼트 중 프루닝에서 '0'으로 변환되지 않는 각각을 양자화하여 대표 값 매트릭스(330)와 바이너리 양자화된 데이터를 포함하는 양자화 매트릭스(320)를 획득할 수 있다.
압축 장치(50)는 도 3a의 원본 매트릭스에서 n 개의 엘리먼트를 하나의 대표 값을 이용하여 양자화할 수 있다. 그에 따라, 도 3b에서는 m 개의 엘리먼트를 포함하는 대표 값 매트릭스(330)를 도시하였다. 여기서, 하나의 대표 값으로 양자화되는 엘리먼트의 개수 n은 일 실시 예에 불과하며, 얼마든지 다른 값이 이용될 수도 있으며, 다른 값이 이용되면 대표 값 매트릭스(330)에 포함된 엘리먼트의 개수도 달라질 수 있다. 그리고, 압축 장치(50)는 바이너리 양자화된 데이터를 포함하는 양자화 매트릭스(320)를 획득할 수 있으며, 양자화 매트릭스(320)는 원본 매트릭스와 크기가 동일하며, 0 또는 1을 포함할 수 있다.
압축 장치(50)는 도 3c에 도시된 바와 같이, 랜덤 매트릭스에 기초하여 양자화 매트릭스(320)를 압축 매트릭스(10)로 압축할 수 있다. 압축 매트릭스(10)에 포함된 엘리먼트의 개수는 양자화 매트릭스(320)에 포함된 엘리먼트의 개수보다 적다. 압축 매트릭스(10)의 획득 방법에 대하여는 도 4에서 후술한다.
압축 장치(50)는 도 3d에 도시된 바와 같이, 프루닝 인덱스 매트릭스(310)를 제1 프루닝 인덱스 매트릭스(20-1) 및 제2 프루닝 인덱스 매트릭스(20-2)로 압축할 수 있다. 제1 프루닝 인덱스 매트릭스(20-1) 및 제2 프루닝 인덱스 매트릭스(20-2)의 곱은 프루닝 인덱스 매트릭스(310)와 매트릭스의 크기가 동일하나, 일부 값이 다를 수 있다. 다만, 정확도에 큰 영향이 없는 엘리먼트의 값이 다를 수 있으며, 압축 과정에서는 정확도를 향상시키기 위해 프루닝의 기준이 되는 임계 값을 변경해가며 제1 프루닝 인덱스 매트릭스(20-1) 및 제2 프루닝 인덱스 매트릭스(20-2)를 반복적으로 획득할 수 있다.
도 4는 본 개시의 이해를 돕기 위한 압축 매트릭스를 획득하는 방법을 설명하기 위한 도면이다.
도 4는 랜덤 매트릭스(A)를 이용하여 양자화 매트릭스에 포함된 기설정된 개수의 엘리먼트(B)를 x로 압축하는 방법을 도시하였다. 즉, 양자화 매트릭스에 포함된 9개의 바이너리 데이터는 5개의 바이너리 데이터로 압축될 수 있다. 이때, 9개의 바이너리 데이터 중 프루닝된 데이터는 -로서 표시되며, 압축 이후 복원될 필요가 없다. 즉, 도 4의 매트릭스 곱셈에 따라 9개의 방정식이 만들어질 수 있으나, -를 포함하는 방정식은 고려할 필요가 없다. 그에 따라, 양자화 매트릭스에 포함된 9개의 바이너리 데이터가 5개의 바이너리 데이터로 압축될 수 있다. 한편, 랜덤 매트릭스(A)와 x의 매트릭스 곱셈 방법에 대하여는 x의 값이 결정된 후, 검증하는 방법을 통해 후술한다.
한편, 도 4에 도시된 바와 같이, 프루닝된 데이터가 3개(x가 3개)인 경우, 5개의 바이너리 데이터로 나머지 6개의 방정식을 만족하지 못할 수 있다. 따라서, 압축 장치(50)는 5개의 바이너리 데이터로 성립하지 않는 방정식의 개수 정보 및 마지막 방정식(410)의 위치 정보를 패치 정보로 획득할 수 있다. 도 4의 10110은 압축된 5개의 바이너리 데이터를 나타내고, 01은 성립하지 않는 방정식의 개수 정보를 나타내며, 0110은 마지막 방정식(410)의 위치 정보일 수 있다. 여기서, 마지막 방정식(410)의 위치 정보는 프루닝되지 않은 데이터를 기준으로 여섯 번째 임을 나타내는 것으로 설명하였으나, 이에 한정되는 것은 아니다. 예를 들어, 마지막 방정식(410)의 위치 정보는 프루닝 여부와 무관하게 9개의 데이터를 기준으로 아홉 번째 임을 나타내도록 획득될 수도 있다.
한편, 압축 장치(50)는 랜덤 매트릭스(A)와 x의 매트릭스 곱셈 과정에서 AND 게이트와 동일한 방식으로 바이너리 데이터 간의 곱셈 연산을 수행하고, XOR 게이트와 동일한 방식으로 곱셈 결과 간의 덧셈 연산을 수행할 수 있다. 여기서, AND 게이트가 XOR 게이트보다 계산의 우선 순위가 높다. 설명의 편의를 위해, 도 4에서 도출된 x의 값인 10110을 이용하여 매트릭스 곱셈을 설명한다. A의 첫 번째 행과 x의 값인 10110의 매트릭스 곱셈은 프루닝에 따라 불필요한 데이터이므로 생략한다. A의 두 번째 행인 10010과 x의 값인 10110의 매트릭스 곱셈은 먼저, 각 자릿수 별로 AND 게이트와 동일한 방식으로 바이너리 데이터 간의 곱셈 연산이 수행된다. 즉, 1×1=1, 0×0=0, 0×1=0, 1×1=1, 0×0=0의 연산을 통해 1, 0, 0, 1, 0이 획득된다. 이후, 1, 0, 0, 1, 0이 XOR 게이트와 동일한 방식으로 덧셈 연산이 수행되어 최종적으로 0이 획득된다. 구체적으로, 첫 번째 및 두 번째 바이너리 데이터 1, 0의 덧셈 연산으로 1이 획득되고, 연산 결과 1과 세 번째 바이너리 데이터 0의 덧셈 연산으로 1이 획득되며, 누적 연산 과 1과 네 번째 바이너리 데이터 1의 덧셈 연산으로 0이 획득되며, 누적 연산 결과 0과 다섯 번째 바이너리 데이터 0의 덧셈 연산으로 최종적으로 0이 획득될 수 있다. 여기서, 연산 순서는 얼마든지 변경될 수 있으며, 연산 순서가 변경되더라도 최종 획득되는 값은 동일하다. 이러한 방식으로 A의 나머지 행과 10010 간의 매트릭스 곱셈이 수행될 수 있다.
다만, 상술한 바와 같이, 성립하지 않는 방정식(A의 마지막 행(410))이 있을 수 있으며, 이에 대한 연산 결과는 다음과 같다. A의 마지막 행인 00011과 x의 값인 10110의 매트릭스 곱셈은 먼저, 각 자릿수 별로 AND 게이트와 동일한 방식으로 바이너리 데이터 간의 곱셈 연산이 수행된다. 즉, 0×1=0, 0×0=0, 0×1=0, 1×1=1, 0×0=0의 연산을 통해 0, 0, 0, 1, 0이 획득된다. 이후, 0, 0, 0, 1, 0이 XOR 게이트와 동일한 방식으로 덧셈 연산이 수행되어 최종적으로 1이 획득된다. 구체적으로, 첫 번째 및 두 번째 바이너리 데이터 0, 0의 덧셈 연산으로 0이 획득되고, 연산 결과 0과 세 번째 바이너리 데이터 0의 덧셈 연산으로 0이 획득되며, 누적 연산 결과 0과 네 번째 바이너리 데이터 1의 덧셈 연산으로 1이 획득되며, 누적 연산 결과 1과 다섯 번째 바이너리 데이터 0의 덧셈 연산으로 최종적으로 1이 획득될 수 있다. 이는 최초의 B의 마지막 행의 값인 0과 일치하지 않으며, 압축 장치(50)는 이를 패치 정보로서 압축 해제 장치(100)로 제공하며, 압축 해제 장치(100)는 패치 정보에 기초하여 이를 보완할 수 있다. 즉, 압축 해제 장치(100)는 패치 정보에 기초하여 방정식이 성립하지 않는 행의 위치 정보를 획득하고, 랜덤 매트릭스(A)와 x의 매트릭스 곱셈 결과 중 위치 정보에 대응되는 행의 바이너리 데이터를 다른 바이너리 데이터로 변환할 수 있다. 도 4의 예에서는 압축 해제 장치(100)는 패치 정보에 기초하여 랜덤 매트릭스(A)와 x의 매트릭스 곱셈 결과 중 마지막 행의 값을 1에서 0으로 변환할 수 있다.
이상과 같이 압축 장치(50)는 원본 매트릭스로부터 압축 매트릭스, 제1 프루닝 인덱스 매트릭스, 제2 프루닝 인덱스 매트릭스 및 패치 정보를 획득할 수 있다.
도 5a 및 도 5b는 본 개시의 확장 실시 예에 따른 압축 해제 장치(100)를 설명하기 위한 도면들이다.
먼저, 도 5a에 도시된 바와 같이, 압축 해제 장치(100)는 복수의 D-Unit을 포함하며, 복수의 D-Unit 각각은 도 2에서 설명한 구성을 포함할 수 있다. 압축 해제 장치(100)는 외부 메모리(510), 복수의 디인터리버(520) 및 프로세서(530-1)를 더 포함할 수 있다.
외부 메모리(510)는 압축 장치(50)로부터 제공된 제1 프루닝 인덱스 매트릭스, 제2 프루닝 인덱스 매트릭스, 압축 매트릭스 및 패치 정보를 저장할 수 있다. 여기서, 외부 메모리(510)는 압축 장치(50)로부터 제1 프루닝 인덱스 매트릭스, 제2 프루닝 인덱스 매트릭스, 압축 매트릭스 및 패치 정보를 하나의 세트로서 수신할 수 있다. 즉, 외부 메모리(510)는 압축 장치(50)로부터 복수의 압축 데이터 세트를 수신할 수 있고, 복수의 압축 데이터 세트 각각은 제1 프루닝 인덱스 매트릭스, 제2 프루닝 인덱스 매트릭스, 압축 매트릭스 및 패치 정보를 포함할 수 있다.
이는 실제로 원본 매트릭스의 데이터가 매우 크기 때문이며, 예를 들어 압축 장치(50)는 도 6에 도시된 바와 같이, 원본 매트릭스를 복수의 서브 매트릭스로 분할하고, 복수의 서브 매트릭스 각각을 압축하여 복수의 압축 데이터 세트를 획득할 수도 있다.
예를 들어, 압축 장치(50)는 도 6에 도시된 바와 같이, 원본 매트릭스를 열의 개수 및 행의 개수가 각각 동일한 복수의 서브 매트릭스로 분할하고, 복수의 서브 매트릭스 각각을 압축하여 복수의 압축 데이터 세트를 획득할 수도 있다.
복수의 서브 매트릭스를 이용하는 이점은 m × n의 원본 매트릭스에서 m 또는 n 중 하나가 다른 하나보다 현저히 큰 경우에 있을 수 있다. 가령, 100 × 25의 원본 매트릭스를 100 × r의 제1 매트릭스 및 r × 25의 제2 매트릭스로 분할하는 경우, 일반적으로 r은 25보다 작은 수가 선택되며 압축률이 저하될 수 있다. 이 경우, 100 × 25의 원본 매트릭스를 25 × 25의 4개의 서브 매트릭스로 구분하고, 각각을 압축하는 경우 압축률이 개선될 수 있다. 또한, 원본 매트릭스를 복수의 서브 매트릭스로 분할하는 경우 압축 과정에서 계산량도 줄일 수 있다. 즉, skewed 형태의 매트릭스를 squared 형태의 서브 매트릭스로 분할한 후, 압축을 수행하는 것이 효율적일 수 있다.
외부 메모리(510)는 복수의 압축 데이터 세트 각각을 복수의 D-Unit으로 제공하여 병렬적으로 압축을 해제할 수 있다. 즉, 복수의 D-Unit이 병렬적으로 압축을 해제함에 따라 parallelism이 향상될 수 있다.
다만, 이에 한정되는 것은 아니며, 압축 해제 장치(100)는 도 6의 좌측 상단의 매트릭스가 압축된 데이터를 압축 해제하고, 도 6의 좌측 상단에서 우측으로 인접한 매트릭스가 압축된 데이터를 압축 해제하는 방식으로 순차적으로 압축된 데이터를 압축 해제할 수도 있다.
복수의 D-Unit 각각은 프로세서(530-1)의 내부 메모리(On-Chip Memory)로 양자화 매트릭스를 전송할 수 있다. 이때, 복수의 D-Unit 각각은 디인터리버(520)를 거쳐 양자화 매트릭스를 전송할 수도 있다.
디인터리버(520)의 동작을 설명하기 위해 먼저, 압축 장치(50)의 인터리빙(Interleaving) 동작을 설명한다. 압축 장치(50)는 도 6과 같이 분할된 복수의 서브 매트릭스 각각을 인터리빙할 수 있다. 인터리빙은 매트릭스에 포함된 데이터의 순서를 일정 단위로 재배열시키는 것을 의미한다. 압축 장치(50)는 인터리빙된 복수의 서브 매트릭스 각각을 압축하고, 복수의 압축 데이터 세트를 압축 해제 장치(100)로 제공할 수 있다.
디인터리버(520)는 압축 장치(50)의 인터리빙 동작에 대응될 수 있다. 즉, 디인터리버(520)는 인터리빙된 매트릭스를 디인터리빙하여 인터리빙되기 전의 매트릭스를 복원할 수 있다.
도 5a는 압축 해제 장치(100)가 복수의 디인터리버(520)를 포함하는 것으로 도시하였으나, 이에 한정되는 것은 아니다. 예를 들어, 압축 장치(50)는 복수의 서브 매트릭스 각각을 인터리빙하지 않고, 원본 매트릭스 자체를 인터리빙할 수도 있다. 이 경우, 압축 해제 장치(100)는 하나의 디인터리버를 포함할 수도 있다.
인터리빙 및 디인터리빙 동작이 추가됨에 따라 양자화 과정에서 압축률이 향상될 수 있다. 가령, 원본 매트릭스의 엘리먼트가 고르게 분포되지 않은 경우, 프루닝 인덱스 매트릭스가 1 또는 0이 연속됨에 따라 압축률 또는 정확도가 현저히 저하될 수 있다. 이 경우, 인터리버를 이용하여 압축 대상이 되는 매트릭스를 인터리빙하는 경우, 프루닝 인덱스 매트릭스의 randomness가 향상되어 압축률 및 정확도를 향상시킬 수 있다. 인터리버 및 디인터리버의 종류에는 특별한 제한이 없으며, 압축 해제 수행 속도와 randomness에 따라 다양한 디자인의 인터리버 및 디인터리버가 이용될 수 있다. 가령, turbo code에서 쓰이는 인터리버 및 디인터리버가 이용될 수도 있으며, 인터리버 및 디인터리버가 서로 대응된다면 특별한 제한은 없다.
한편, 복수의 D-Unit 각각은 프로세서의 외부 메모리로부터 제1 프루닝 인덱스 매트릭스, 제2 프루닝 인덱스 매트릭스, 압축 매트릭스 및 패치 정보를 입력받고, 프로세서(530-1)의 내부 메모리로 양자화 매트릭스를 전송할 수 있다. 이 경우, 내부 메모리는 압축이 해제된 데이터를 저장하기 때문에 용량이 큰 메모리가 필요하고, 전력 소모가 상당할 수 있다. 다만, 프로세서(530-1) 내부의 연산 소자 유닛에서 계산이 이루어지는 동안 압축을 해제할 수 있어 기존 하드웨어에 오버헤드를 주지 않고, 연산 소자 유닛의 연산 수행 시간에 대한 영향력이 더 작아질 수 있다. 여기서, 연산 소자 유닛은 매트릭스 형태로 배열된 복수의 연산 소자(Processing Element)를 포함할 수 있다. 또한, 외부 메모리(510)와 프로세서(530-1) 사이에 압축 해제 장치(100)가 배치될 수 있어 기존 accelerator 설계의 내용을 고치지 않고 마치 memory wrapper 형태로 설계가 가능할 수 있다. 이러한 구성은 압축이 해제된 전체 데이터를 반복하여 이용하는 CNN(Convolutional Neural Network)에 좀더 적합할 수 있다.
한편, 도 5b에 도시된 바와 같이, 압축 해제 장치(100)는 프로세서(530-2) 내에 복수의 D-Unit 및 복수의 디인터리버(520)를 포함하는 형태로 구현될 수도 있다. 여기서, 내부 메모리(On-Chip Memory)는 외부 메모리(510)으로부터 압축 매트릭스, 제1 프루닝 인덱스 매트릭스 및 제2 프루닝 인덱스 매트릭스를 입력받을 수 있다.
그리고, 복수의 D-Unit 각각은 프로세서(530-2)에 포함된 연산 소자 유닛(PE Array)으로 양자화 매트릭스를 전송할 수 있다.
이 경우, 복수의 D-Unit 각각은 프로세서(530-2)의 내부 메모리로부터 제1 프루닝 인덱스 매트릭스, 제2 프루닝 인덱스 매트릭스, 압축 매트릭스 및 패치 정보를 입력받고, 프로세서(530-2)에 포함된 연산 소자 유닛으로 양자화 매트릭스를 전송할 수 있다. 여기서, 연산 소자 유닛은 매트릭스 형태로 배열된 복수의 연산 소자를 포함할 수 있다. 이 경우, 내부 메모리는 압축이 해제된 일부 데이터만을 저장하고, 연산 소자 유닛이 데이터를 요구할 때마다 on-the-fly로 압축을 해제하기 때문에 용량이 작은 메모리를 이용할 수 있고, 전력 소모도 감소할 수 있다. 다만, 내부 메모리가 압축이 해제된 일부 데이터만을 저장하기 때문에 연산 소자 유닛이 데이터를 요구할 때마다 압축 해제 및 디인터리빙이 수행되어 레이턴시가 증가하고, 장기적으로 전력 소모가 증가할 수도 있다. 또한, 기존 accelerator의 내부에 복수의 D-Unit이 추가되어, 기존 설계를 많이 수정해야할 수도 있다. 이러한 구성은 압축이 해제된 일부 데이터를 일회적으로 이용하는 RNN(Recurrent neural network)에 좀더 적합할 수 있다.
이상과 같이 압축 과정에서 원본 매트릭스의 분할 및 인터리빙으로 인해 압축률 및 정확도가 향상되고, 복수의 D-Unit을 통해 병렬적으로 압축 해제를 수행할 수 있어 압축 해제를 효율적으로 수행할 수 있다.
이하에서는 도면을 통해 복수의 D-Unit 각각의 동작에 대해 좀더 구체적으로 설명한다.
도 7a 내지 도 7c는 본 개시의 일 실시 예에 따른 압축 매트릭스의 압축 해제 방법을 설명하기 위한 도면들이다.
도 7a는 9 × 5의 랜덤 매트릭스의 일 예를 나타내며, 압축 과정에서 9개 단위의 바이너리 데이터가 5개 단위의 바이너리 데이터로 변환되었음을 나타낸다.
양자화 매트릭스 획득 유닛(110)은 압축 방법의 설계 과정에서 이용된 랜덤 매트릭스를 이용하여 압축 매트릭스로부터 양자화 매트릭스를 획득할 수 있다.
양자화 매트릭스 획득 유닛(110)은 도 7b에 도시된 바와 같이, 랜덤 매트릭스에 기초하여 각 입출력 단자가 연결된 복수의 XOR 게이트를 포함할 수 있다.
양자화 매트릭스 획득 유닛(110)은 x0 부터 x4의 입력을 O1부터 O9로 출력할 수 있다. 가령, 양자화 매트릭스 획득 유닛(110)은 도 7c에 도시된 바와 같이, 압축 매트릭스(710)의 10110을 001111001로 변환할 수 있다.
그리고, 양자화 매트릭스 획득 유닛(110)은 패치 정보에 기초하여 001111001 중 일부 데이터의 값을 변경할 수 있다. 도 7c에서는 001111001 중 네 번째, 일곱 번째 데이터가 변경된 것으로 도시하였으며, 0은 1로, 1은 0으로 변경될 수 있다.
한편, 랜덤 매트릭스는 도 7b와 같이 복수의 XOR 게이트의 입출력 단자를 랜덤하게 배치하는 방법을 통해 생성할 수 있다. 즉, 압축 해제 과정을 복수의 XOR 게이트를 이용하여 먼저 설계하고, 설계 결과에 대응되는 랜덤 매트릭스를 압축 장치(50)로 제공하며, 압축 장치(50)는 랜덤 매트릭스에 기초하여 압축을 수행할 수도 있다.
다만, 이에 한정되는 것은 아니며, 복수의 XOR 게이트가 아닌 다른 소자를 이용하여 랜덤 매트릭스를 생성할 수도 있으며, 랜덤 매트릭스가 생성될 수 있다면 얼마든지 다른 방법이 이용될 수도 있다.
또는, 압축 과정에서 압축 장치(50)가 랜덤하게 랜덤 매트릭스를 생성하여 압축을 수행하고, 압축 해제 과정에서는 압축 장치(50)에서 생성된 랜덤 매트릭스에 대응되는 회로를 구성할 수도 있다.
한편, 랜덤 매트릭스의 사용 방법은 상술한 바와 같이, 압축 해제 과정에서는 랜덤 매트릭스와 제1 개수 단위의 바이너리 데이터를 곱하여 제1 개수보다 큰 제2 개수 단위의 바이너리 데이터를 획득하는 방식이 이용될 수 있다. 반면, 압축 과정에서는 도 4와 같이 랜덤 매트릭스를 이용한 방정식을 풀이하는 방식이 이용될 수 있다. 즉, 압축 과정 및 압축 해제 과정에서 모두 랜덤 매트릭스가 이용될 수 있으나, 그 사용 방법에는 차이가 있을 수 있다.
도 8a 내지 도 8c는 본 개시의 일 실시 예에 따른 마스킹 유닛(130)의 마스킹 동작을 설명하기 위한 도면들이다.
도 8a에 도시된 바와 같이, 압축 해제 장치(100)는 복수의 양자화 매트릭스 획득 유닛(110 ~ 110-n), 프루닝 인덱스 매트릭스 획득 유닛(120) 및 마스킹 유닛(130)을 포함할 수 있다. 복수의 양자화 매트릭스 획득 유닛(110 ~ 110-n)에 대하여는 도 9에서 설명한다.
마스킹 유닛(130)은 복수의 양자화 매트릭스 획득 유닛(110 ~ 110-n) 각각으로부터 각 엘리먼트가 1비트인 양자화 매트릭스를 수신하고, 프루닝 인덱스 매트릭스 획득 유닛(120)으로부터 프루닝 인덱스 매트릭스를 수신할 수 있다.
마스킹 유닛(130)은 도 8b에 도시된 바와 같이, 프루닝 인덱스 매트릭스에 기초하여 양자화 매트릭스에서 프루닝된 엘리먼트를 식별할 수 있다. 그리고, 마스킹 유닛(130)은 도 8c에 도시된 바와 같이, 식별된 엘리먼트를 0으로 변환할 수 있다.
도 9는 본 개시의 일 실시 예에 따른 마스킹 유닛(130)의 복수의 양자화 매트릭스를 병합하는 방법을 설명하기 위한 도면이다.
도 8a에 도시된 바와 같이, 압축 해제 장치(100)는 복수의 양자화 매트릭스 획득 유닛(110 ~ 110-n)을 포함할 수 있으며, 복수의 양자화 매트릭스 획득 유닛(110 ~ 110-n) 각각은 양자화 매트릭스를 마스킹 유닛(130)으로 전송할 수 있다.
도 9에서는 설명의 편의를 위해 마스킹 유닛(130)이 두 개의 양자화 매트릭스를 결합하는 것으로 설명한다.
마스킹 유닛(130)은 도 9에 도시된 바와 같이, 각 엘리먼트가 1비트인 양자화 매트릭스 및 각 엘리먼트가 1비트인 m × n의 타 양자화 매트릭스를 결합하여 각 엘리먼트가 2비트인 결합된 양자화 매트릭스를 획득할 수 있다.
마스킹 유닛(130)은 프루닝 인덱스 매트릭스에 기초하여 각 엘리먼트가 2비트인 결합된 양자화 매트릭스에서 프루닝된 엘리먼트를 0으로 변환할 수 있다.
다만, 이에 한정되는 것은 아니며, 마스킹 유닛(130)은 3개 이상의 양자화 매트릭스를 결합하여 결합된 양자화 매트릭스를 획득하고, 프루닝된 엘리먼트를 0으로 변환할 수도 있다.
도 10은 본 개시의 일 실시 예에 따른 압축 해제 장치의 제어 방법을 설명하기 위한 흐름도이다.
먼저, 압축 매트릭스가 입력되면, 랜덤 매트릭스에 기초하여 압축 매트릭스에 포함된 제1 개수 단위의 바이너리 데이터를 제1 개수보다 큰 제2 개수 단위의 바이너리 데이터로 변환하여, 압축 매트릭스의 압축이 해제된 양자화 매트릭스를 획득한다(S1010). 그리고, 제1 프루닝 인덱스 매트릭스 및 제2 프루닝 인덱스 매트릭스가 입력되면, 제1 프루닝 인덱스 매트릭스 및 제2 프루닝 인덱스 매트릭스에 기초하여 프루닝 인덱스 매트릭스를 획득한다(S1020). 그리고, 프루닝 인덱스 매트릭스에 기초하여 양자화 매트릭스에 포함된 복수의 엘리먼트 중 일부를 0으로 변환한다(S1030). 여기서, 압축 매트릭스, 제1 프루닝 인덱스 매트릭스 및 제2 프루닝 인덱스 매트릭스는 인공지능 모델에 포함된 원본 매트릭스의 압축 과정에서 획득되며, 제1 프루닝 인덱스 매트릭스 및 제2 프루닝 인덱스 매트릭스는 원본 매트릭스가 팩토라이즈(factorize)되어 획득된 제1 매트릭스 및 제2 매트릭스 각각에 기초하여 획득될 수 있다.
또한, 패치 정보가 입력되면, 패치 정보에 기초하여 양자화 매트릭스에 포함된 복수의 엘리먼트 중 일부의 바이너리 데이터 값을 변경하는 단계를 더 포함하고, 패치 정보는 원본 매트릭스의 압축 과정에서 발생되는 양자화 매트릭스의 에러 정보를 포함할 수 있다.
한편, 타 압축 매트릭스가 입력되면, 랜덤 매트릭스에 기초하여 타 압축 매트릭스에 포함된 제1 개수 단위의 바이너리 데이터를 제2 개수 단위의 바이너리 데이터로 변환하여, 타 압축 매트릭스의 압축이 해제된 타 양자화 매트릭스를 획득하는 단계를 더 포함하고, 변환하는 단계(S1030)는 프루닝 인덱스 매트릭스에 기초하여 타 양자화 매트릭스에 포함된 복수의 엘리먼트 중 일부를 0으로 변환하고, 양자화 매트릭스 및 타 양자화 매트릭스를 결합하여 각 엘리먼트가 복수의 바이너리 데이터를 포함하는 최종 양자화 매트릭스를 획득할 수 있다.
여기서, 압축 매트릭스, 제1 프루닝 인덱스 매트릭스 및 제2 프루닝 인덱스 매트릭스는 원본 매트릭스가 인터리빙된 매트릭스의 압축 과정에서 획득되고, 제어 방법은 최종 양자화 매트릭스에 대해 인터리빙에 대응되는 디인터리빙을 수행하는 단계를 더 포함할 수 있다.
한편, 양자화 매트릭스를 획득하는 단계(S1010)는 랜덤 매트릭스에 기초하여 각 입출력 단자가 연결된 복수의 XOR 게이트를 이용하여 압축 매트릭스로부터 양자화 매트릭스를 획득할 수 있다.
그리고, 프루닝 인덱스 매트릭스를 획득하는 단계(S1020)는 제1 프루닝 인덱스 매트릭스 및 제2 프루닝 인덱스 매트릭스를 매트릭스 곱셈하여 프루닝 인덱스 매트릭스를 획득할 수 있다.
한편, 양자화 매트릭스 및 프루닝 인덱스 매트릭스를 획득하는 단계(S1010, S1020)는 프로세서의 외부 메모리로부터 압축 매트릭스, 제1 프루닝 인덱스 매트릭스 및 제2 프루닝 인덱스 매트릭스를 입력받고, 제어 방법은 프로세서의 내부 메모리로 양자화 매트릭스를 전송하는 단계를 더 포함할 수 있다.
또는, 압축 해제 장치는 프로세서 내에 구비되며, 양자화 매트릭스 및 프루닝 인덱스 매트릭스를 획득하는 단계(S1010, S1020)는 프로세서의 내부 메모리로부터 압축 매트릭스, 제1 프루닝 인덱스 매트릭스 및 제2 프루닝 인덱스 매트릭스를 입력받고, 제어 방법은 프로세서에 포함된 연산 소자 유닛으로 양자화 매트릭스를 전송하며, 연산 소자 유닛은 매트릭스 형태로 배열된 복수의 연산 소자(Processing Element)를 포함할 수 있다.
한편, 압축 매트릭스, 제1 프루닝 인덱스 매트릭스 및 제2 프루닝 인덱스 매트릭스는 원본 매트릭스가 열의 개수 및 행의 개수가 각각 동일하도록 분할된 복수의 서브 매트릭스 중 하나에 기초하여 획득될 수 있다.
이상과 같은 본 개시의 다양한 실시 예에 따르면, 압축 해제 장치는 압축된 데이터로부터 프루닝 인덱스 매트릭스 및 양자화 매트릭스를 획득하여, 인공지능 모델에 포함된 원본 매트릭스를 획득할 수 있다.
한편, 도 1 내지 도 10에서는 데이터 용량이 축소된 인공지능 모델의 압축을 해제하는 방법을 설명하였다. 여기서, 데이터 용량이 축소된 인공지능 모델은 이미 학습이 완료된 인공지능 모델을 추가로 압축한 상태이며, 인공지능 모델에 포함된 복수의 레이어 별로 압축된 상태이다.
다만, 이에 한정되는 것은 아니며, 인공지능 모델의 학습 과정에서 압축을 추가로 수행할 수도 있다. 이하에서는 먼저, 인공지능 모델의 학습 과정에서 압축을 수행하는 방법을 설명하고, 이후, 이를 해제하는 방법을 도면을 통해서 설명한다.
도 11a 내지 도 11d는 본 개시의 일 실시 예에 따른 인공지능 모델의 학습 과정을 설명하기 위한 도면들이다. 설명의 편의를 위해 압축 장치(50)가 인공지능 모델을 학습하는 것으로 설명한다.
도 11a는 학습이 완료되기 전의 인공지능 모델의 일 예를 나타내는 도면으로, 인공지능 모델은 두 개의 원본 매트릭스 W12, W23을 포함하며, 압축 장치(50)는 Li-1의 입력값들을 W12에 입력하여 Li의 중간값을 획득하며, Li의 중간값들을 W23에 입력하여 Li+1의 최종값을 획득할 수 있다. 다만, 도 11a는 인공지능 모델을 매우 간략하게 도시한 것으로, 실제로는 도 11a보다 더 많은 매트릭스를 포함할 수 있다.
도 11b는 인공지능 모델에 포함된 원본 매트릭스의 일 예를 나타내는 도면으로, 도 3a에서의 설명과 동일하다. 다만, 도 3a의 원본 매트릭스는 학습이 완료된 상태이고, 도 11b의 원본 매트릭스는 학습이 완료되기 전일 수 있다.
도 11c는 도 11b에 도시된 원본 매트릭스를 양자화한 결과를 나타내는 도면이다.
압축 장치(50)는 원본 매트릭스에 포함된 복수의 엘리먼트 각각을 양자화하여 대표 값 매트릭스(1120) 및 바이너리 양자화된 데이터를 포함하는 양자화 매트릭스(1110)를 획득할 수 있다. 이때, 압축 장치(50)는 도 3b와는 달리 프루닝을 수행하지 않을 수 있다. 다만, 이에 한정되는 것은 아니며, 압축 장치(50)는 프루닝을 수행할 수도 있으며, 프루닝을 수행하는 방법에 대하여는 후술한다.
압축 장치(50)는 도 11d, 좌측의 양자화 매트릭스(1110)를 압축하여 도 11d, 우측의 압축 매트릭스(1110-1)를 획득할 수 있다. 압축 매트릭스(1110-1)에 포함된 엘리먼트의 개수는 양자화 매트릭스(1110)에 포함된 엘리먼트의 개수보다 적다.
압축 장치(50)는 도 7a와 같은 랜덤 매트릭스에 기초하여 양자화 매트릭스(1110)로부터 압축 매트릭스(1110-1)를 획득할 수 있다. 이러한 동작은 모두 인공지능 모델의 학습 과정에 포함되어 있다. 또한, 도 11b 내지 도 11d에서는 하나의 원본 매트릭스에 대하여만 설명하였으나, 인공지능 모델의 학습 과정에서는 인공지능 모델에 포함된 복수의 원본 매트릭스 전체가 도 11b 내지 도 11d와 같이 압축될 수 있다.
좀더 구체적으로 예를 들면, 도 11a의 W12는 양자화되고 도 11d의 우측과 같이 제1 랜덤 매트릭스에 기초하여 압축되어 Q12’으로서 저장된 상태일 수 있다. 또한, 도 11a의 W23은 양자화되고 도 11d의 우측과 같이 제2 랜덤 매트릭스에 기초하여 압축되어 Q23’으로서 저장된 상태일 수 있다. 압축 장치(50)는 Q12’을 제1 랜덤 매트릭스를 통해 압축을 해제하고, 양자화를 해제하여 W12를 획득하며, Q23’을 제2 랜덤 매트릭스를 통해 압축을 해제하고, 양자화를 해제하여 W23을 획득할 수 있다. 그리고, 압축 장치(50)는 W12 및 W23을 이용하여 feed forward 동작을 수행할 수 있다. 이때, 제1 랜덤 매트릭스 및 제2 랜덤 매트릭스는 도 7b와 같이 XOR 게이트로 구현될 수 있다. 즉, 압축 장치(50)는 Q12’을 제1 랜덤 매트릭스를 통해 압축을 해제하는 경우, 0 또는 1로 디지털화할 수 있다. 또한, 압축 장치(50)는 Q23’을 제2 랜덤 매트릭스를 통해 압축을 해제하는 경우, 0 또는 1로 디지털화할 수 있다.
이후, 압축 장치(50)는 backward 동작을 수행하여 인공지능 모델에 포함된 엘리먼트들을 업데이트할 수 있다. 다만, XOR 게이트를 이용하는 동작은 디지털 회로에 의한 동작으로 미분이 불가능하나, 업데이트 과정에서는 미분이 필요하다. 그에 따라, 압축 장치(50)는 XOR 게이트를 이용하는 동작을 하기의 수학식 1과 같이 미분이 가능한 형태로 변환하여 인공지능 모델을 학습할 수 있다. 입력값 중 0은 -1로 변환하여 수학식 1에 입력될 수 있다.
[수학식 1]
XOR(a, b) = (-1) × tanh(a) × tanh(b)
수학식 1은 입력값이 a, b인 경우를 나타내나, 실제로 입력값은 두 개가 아닐 수도 있다. 입력값은 랜덤 매트릭스의 크기, 하나의 로우에 포함된 1의 개수 등에 따라 달라질 수 있다. 그에 따라, 압축 장치(50)는 하기의 수학식 2와 같이 좀더 일반적인 수학식을 이용하여 인공지능 모델을 학습할 수 있다.
[수학식 2]
Figure pat00001
여기서, X는 XOR 게이트의 입력이며, m은 학습 속도를 조절하기 위한 변수로서, 각각은 하기와 같이 나타낼 수 있다. 도 12 및 도 13은 m의 값에 따른 출력을 나타내는 도면으로, 기울기가 변경됨에 따라 학습 속도가 달라질 수 있다. m의 값은 사용자에 의해 설정될 수 있다.
Figure pat00002
이상과 같이 압축 장치(50)는 XOR 게이트의 동작을 아날로그화하여 인공지능 모델의 학습에 이용할 수 있다. 즉, XOR 게이트의 입력값은 실수로서 저장된 상태이나, 압축 장치(50)는 추론(inference) 과정에서 XOR 게이트의 입력값 중 음수를 0으로 양수를 1로 변환하게 된다. 즉, 압축 장치(50)는 XOR 게이트의 입력값을 디지털화하여 XOR 게이트와 같은 디지털 회로를 이용함에 따른 오차를 연산하게 된다.
그리고, 압축 장치(50)는 backward 과정에서 full-precision 값을 유지하며, 미분이 가능한 형태의 수학식으로 내부 변수들을 업데이트할 수 있다. 즉, 압축 장치(50)는 압축의 해제 과정에서 XOR 게이트가 이용되더라도, 미분이 가능한 형태의 수학식을 이용함에 따라 XOR 게이트에 따른 동작을 인공지능 모델의 학습 과정에 포함시켜 학습을 진행할 수 있다.
한편, 인공지능 모델의 학습 과정에서 이용되는 loss 값은 하기의 수학식 3과 같다. 압축 장치(50)는 수학식 3과 같은 연산을 통해 인공지능 모델을 학습할 수 있다.
[수학식 3]
Figure pat00003
Figure pat00004
여기서,
Figure pat00005
는 -1과 1 사이의 값이므로,
Figure pat00006
는 점점 0에 가까워지게 된다. 즉, XOR 게이트의 입력의 개수 및 출력 개수가 많아질수록 학습이 어려워지게 된다. 그에 따라, 압축 장치(50)는 수학식 3에서 자기 자신(ex : i)의 미분은 tanh의 형태를 그대로 이용하고, 나머지(ex : j ≠ i)의 미분은 tanh를 sign으로 변환하여 인공지능 모델을 학습할 수도 있다. 이 경우, XOR 게이트의 입출력의 개수와 무관하게 backward path를 단순화할 수 있어 학습 속도가 향상될 수 있다. 도 14a는 수학식 3을 이용한 경우를 나타내며, 도 14b는 수학식 3의 일부 tanh를 sign으로 변환한 경우를 나타낸다. 학습이 진행될수록 도 14b와 같이 0과 1 값으로 명확하게 구별되며 학습 속도가 향상될 수 있다.
압축 장치(50)는 이상과 같이 학습이 완료되면, 인공지능 모델에 포함된 복수의 원본 매트릭스에 각각 대응되는 복수의 압축 매트릭스를 획득할 수 있다.
압축 장치(50)는 이상과 같이 XOR 게이트의 동작을 인공지능 모델에 포함시킨 상태로 학습을 수행할 수 있으며, 그에 따라 인공지능 모델의 정확도를 유지하면서도 높은 수준의 압축률을 확보할 수 있다. 또한, 프루닝 과정이 생략되고 패치 정보를 이용할 필요가 없어 연산 속도가 향상될 수 있다.
그리고, 도 1 내지 도 10의 경우, 일반적으로 프루닝 결과를 확인한 후, 랜덤 매트릭스의 크기가 결정될 수 있다. 반면에 XOR 게이트의 동작을 인공지능 모델에 포함시킨 상태로 학습하는 경우, 임의로 랜덤 매트릭스의 크기를 지정하여 프루닝이 없이도 fractional한 quantization bit 값을 설정할 수도 있다. 가령, 정수의 수가 아닌 0.7 bit quantization도 가능할 수 있다.
한편, 압축 장치(50)는 인공지능 모델에 포함된 복수의 원본 매트릭스에 각각 대응되는 복수의 랜덤 매트릭스를 이용할 수 있다. 가령, 압축 장치(50)는 인공지능 모델의 첫 번째 원본 매트릭스 및 마지막 원본 매트릭스에는 상대적으로 낮은 압축률의 압축을 수행하기 위한 랜덤 매트릭스를 이용하고, 인공지능 모델의 나머지 원본 매트릭스에는 상대적으로 높은 압축률의 압축을 수행하기 위한 랜덤 매트릭스를 이용할 수 있다.
이상과 같은 방법으로 압축이 이루어진 경우, 압축 해제 장치(100)는 도 2의 양자화 획득 매트릭스 유닛(110)만으로 압축을 해제할 수 있다. 구체적으로, 양자화 획득 매트릭스 유닛(110)은 압축 매트릭스가 입력되면, 대응되는 랜덤 매트릭스에 기초하여 압축 매트릭스에 포함된 제1 개수 단위의 바이너리 데이터를 제1 개수보다 큰 제2 개수 단위의 바이너리 데이터로 변환하여, 압축 매트릭스의 압축이 해제된 양자화 매트릭스를 획득할 수 있다. 따라서, 압축 해제 장치(100)는 양자화 획득 매트릭스 유닛(110)만을 포함할 수도 있다.
도 12는 본 개시의 일 실시 예에 따른 학습 과정에서 프루닝을 수행하는 방법을 설명하기 위한 도면이다. 도 11a 내지 도 11d에서는 프루닝을 생략하고, XOR 게이트를 이용한 양자화를 인공지능 모델에 포함시킨 학습 방법을 설명하였으나, 압축 장치(50)는 프루닝 및 XOR 게이트를 이용한 양자화를 인공지능 모델에 포함시켜 인공지능 모델을 학습할 수도 있다.
압축 장치(50)는 엘리먼트(weight) 하나마다 XOR 게이트 2개를 이용하여 프루닝을 반영할 수 있다. 예를 들어, 압축 장치(50)는 XOR 게이트 2개의 출력 (w, m)으로부터 최종 출력을 획득할 수 있다. w는 도 11a 내지 도 11d에서 설명한 XOR 게이트의 출력이고, m은 프루닝을 반영하기 위한 값일 수 있다. 가령, 압축 장치(50)는 (0, 0)이면 -1을 출력하고, (0, 1) 또는 (1, 0)이면 0을 출력하며, (1, 1)이면 +1을 출력할 수 있다.
압축 장치(50)는 (w + m) / 2와 같은 수식을 통해 w, m으로부터 3가지의 값을 출력할 수 있으며, 이를 위해 입력값이 0이면 -1로 변환하고, 1이면 +1로 변환하여 수식에 입력하게 된다.
압축 장치(50)는 도 11a 내지 도 11d에서 설명한 방법으로 w의 학습을 수행하게 되며, 중복되는 설명은 생략한다.
압축 장치(50)는 w의 값이 임계 값 이하이면, w의 값과 반대 부호의 값으로 m을 설정하여 w를 최종적으로 0으로 변환하여 출력할 수 있다. 또는, 압축 장치(50)는 w의 값이 임계 값을 초과하면, w의 값과 동일한 부호의 값으로 m을 설정하여 w를 최종적으로 +1 또는 -1로 변환하여 출력할 수 있다. 이러한 방법을 통해 임계 값 이하의 w를 0으로 변환하게 되어 프루닝하는 효과를 획득할 수 있다.
압축 장치(50)는 이상과 같이 학습이 완료되면, 인공지능 모델에 포함된 복수의 원본 매트릭스에 각각 대응되는 복수의 압축 매트릭스를 획득할 수 있다. 다만, 도 1 내지 도 10과는 달리 별도의 프루닝 인덱스 매트릭스가 생성되지 않는다.
압축 장치(50)는 이상과 같이 프루닝 및 XOR 게이트를 이용한 양자화를 인공지능 모델에 포함시켜 인공지능 모델을 학습을 수행할 수 있으며, 그에 따라 학습이 좀더 수월해지고, 정확도가 향상될 수도 있다
이상과 같은 방법으로 압축이 이루어진 경우에도, 압축 해제 장치(100)는 도 2의 양자화 획득 매트릭스 유닛만으로 압축을 해제할 수 있다. 다만, 이 경우 양자화 획득 매트릭스 유닛은 도 12의 m을 반영하기 위한 XOR 게이트를 더 포함할 수 있다.
도 11a 내지 도 14b의 압축 장치(50)의 동작 또는 압축 해제 장치(100)의 동작은 모바일 장치, 데스크탑 PC 등과 같은 전자 장치가 수행할 수도 있다. 예를 들어, 제1 전자 장치의 메모리는 학습이 완료되기 전의 인공지능 모델 및 학습 과정에 필요한 샘플 데이터를 저장하며, 제1 전자 장치의 프로세서는 메모리에 저장된 데이터를 도 11a 내지 도 14b와 같은 방법으로 학습하며, 동시에 압축을 수행할 수도 있다.
그리고, 제2 전자 장치의 메모리는 학습 및 압축이 완료된 인공지능 모델을 저장하며, 제2 전자 장치의 프로세서는 메모리에 저장된 데이터를 도 2의 양자화 획득 매트릭스 유닛과 같이 처리하여 압축을 해제할 수도 있다.
한편, 본 개시의 일시 예에 따르면, 이상에서 설명된 다양한 실시 예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media)에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들에 따른 전자 장치(예: 전자 장치(A))를 포함할 수 있다. 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접, 또는 프로세서의 제어 하에 다른 구성요소들을 이용하여 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
또한, 본 개시의 일 실시 예에 따르면, 이상에서 설명된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
또한, 본 개시의 일 실시 예에 따르면, 이상에서 설명된 다양한 실시 예들은 소프트웨어(software), 하드웨어(hardware) 또는 이들의 조합을 이용하여 컴퓨터(computer) 또는 이와 유사한 장치로 읽을 수 있는 기록 매체 내에서 구현될 수 있다. 일부 경우에 있어 본 명세서에서 설명되는 실시 예들이 프로세서 자체로 구현될 수 있다. 소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능과 같은 실시 예들은 별도의 소프트웨어 모듈들로 구현될 수 있다. 소프트웨어 모듈들 각각은 본 명세서에서 설명되는 하나 이상의 기능 및 동작을 수행할 수 있다.
한편, 상술한 다양한 실시 예들에 따른 기기의 프로세싱 동작을 수행하기 위한 컴퓨터 명령어(computer instructions)는 비일시적 컴퓨터 판독 가능 매체(non-transitory computer-readable medium)에 저장될 수 있다. 이러한 비일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 명령어는 특정 기기의 프로세서에 의해 실행되었을 때 상술한 다양한 실시 예에 따른 기기에서의 처리 동작을 특정 기기가 수행하도록 한다. 비일시적 컴퓨터 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 비일시적 컴퓨터 판독 가능 매체의 구체적인 예로는, CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등이 있을 수 있다.
또한, 상술한 다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
100 : 압축 해제 장치
110 : 양자화 매트릭스 획득 유닛
120 : 프루닝 인덱스 매트릭스 획득 유닛
130 : 마스킹 유닛

Claims (19)

  1. 압축 매트릭스가 입력되면, 랜덤 매트릭스에 기초하여 상기 압축 매트릭스에 포함된 제1 개수 단위의 바이너리 데이터를 상기 제1 개수보다 큰 제2 개수 단위의 바이너리 데이터로 변환하여, 상기 압축 매트릭스의 압축이 해제된 양자화 매트릭스를 획득하는 양자화 매트릭스 획득 유닛;
    제1 프루닝 인덱스 매트릭스 및 제2 프루닝 인덱스 매트릭스가 입력되면, 상기 제1 프루닝 인덱스 매트릭스 및 상기 제2 프루닝 인덱스 매트릭스에 기초하여 프루닝 인덱스 매트릭스를 획득하는 프루닝 인덱스 매트릭스 획득 유닛; 및
    상기 프루닝 인덱스 매트릭스에 기초하여 상기 양자화 매트릭스에 포함된 복수의 엘리먼트 중 일부를 0으로 변환하는 마스킹 유닛;을 포함하며,
    상기 압축 매트릭스, 상기 제1 프루닝 인덱스 매트릭스 및 상기 제2 프루닝 인덱스 매트릭스는, 인공지능 모델에 포함된 원본 매트릭스의 압축 과정에서 획득되며,
    상기 제1 프루닝 인덱스 매트릭스 및 상기 제2 프루닝 인덱스 매트릭스는,
    상기 원본 매트릭스가 팩토라이즈(factorize)되어 획득된 제1 매트릭스 및 제2 매트릭스 각각에 기초하여 획득된, 압축 해제 장치.
  2. 제1항에 있어서,
    상기 양자화 매트릭스 획득 유닛은,
    패치 정보가 입력되면, 상기 패치 정보에 기초하여 상기 양자화 매트릭스에 포함된 상기 복수의 엘리먼트 중 일부의 바이너리 데이터 값을 변경하고,
    상기 패치 정보는, 상기 원본 매트릭스의 압축 과정에서 발생되는 상기 양자화 매트릭스의 에러 정보를 포함하는, 압축 해제 장치.
  3. 제1항에 있어서,
    타 압축 매트릭스가 입력되면, 상기 랜덤 매트릭스에 기초하여 상기 타 압축 매트릭스에 포함된 상기 제1 개수 단위의 바이너리 데이터를 상기 제2 개수 단위의 바이너리 데이터로 변환하여, 상기 타 압축 매트릭스의 압축이 해제된 타 양자화 매트릭스를 획득하는 타 양자화 매트릭스 획득 유닛;을 더 포함하고,
    상기 마스킹 유닛은,
    상기 프루닝 인덱스 매트릭스에 기초하여 상기 타 양자화 매트릭스에 포함된 복수의 엘리먼트 중 일부를 0으로 변환하고, 상기 양자화 매트릭스 및 상기 타 양자화 매트릭스를 결합하여 각 엘리먼트가 복수의 바이너리 데이터를 포함하는 최종 양자화 매트릭스를 획득하는, 압축 해제 장치.
  4. 제3항에 있어서,
    상기 압축 매트릭스, 상기 제1 프루닝 인덱스 매트릭스 및 상기 제2 프루닝 인덱스 매트릭스는, 상기 원본 매트릭스가 인터리빙된 매트릭스의 압축 과정에서 획득되고,
    상기 압축 해제 장치는,
    상기 최종 양자화 매트릭스에 대해 상기 인터리빙에 대응되는 디인터리빙을 수행하는 디인터리버;를 더 포함하는, 압축 해제 장치.
  5. 제1항에 있어서,
    상기 양자화 매트릭스 획득 유닛은,
    상기 랜덤 매트릭스에 기초하여 각 입출력 단자가 연결된 복수의 XOR 게이트를 포함하는, 압축 해제 장치.
  6. 제1항에 있어서,
    상기 프루닝 인덱스 매트릭스 획득 유닛은,
    상기 제1 프루닝 인덱스 매트릭스 및 상기 제2 프루닝 인덱스 매트릭스를 매트릭스 곱셈하여 상기 프루닝 인덱스 매트릭스를 획득하는, 압축 해제 장치.
  7. 제1항에 있어서,
    상기 압축 해제 장치는,
    프로세서의 외부 메모리로부터 상기 압축 매트릭스, 상기 제1 프루닝 인덱스 매트릭스 및 상기 제2 프루닝 인덱스 매트릭스를 입력받고,
    상기 프로세서의 내부 메모리로 상기 양자화 매트릭스를 전송하는, 압축 해제 장치.
  8. 제1항에 있어서,
    상기 압축 해제 장치는, 프로세서 내에 구비되며,
    상기 프로세서의 내부 메모리로부터 상기 압축 매트릭스, 상기 제1 프루닝 인덱스 매트릭스 및 상기 제2 프루닝 인덱스 매트릭스를 입력받고,
    상기 프로세서에 포함된 연산 소자 유닛으로 상기 양자화 매트릭스를 전송하며,
    상기 연산 소자 유닛은,
    매트릭스 형태로 배열된 복수의 연산 소자(Processing Element)를 포함하는, 압축 해제 장치.
  9. 제1항에 있어서,
    상기 압축 매트릭스, 상기 제1 프루닝 인덱스 매트릭스 및 상기 제2 프루닝 인덱스 매트릭스는, 상기 원본 매트릭스가 열의 개수 및 행의 개수가 각각 동일하도록 분할된 복수의 서브 매트릭스 중 하나에 기초하여 획득된, 압축 해제 장치.
  10. 압축 해제 장치의 제어 방법에 있어서,
    압축 매트릭스가 입력되면, 랜덤 매트릭스에 기초하여 상기 압축 매트릭스에 포함된 제1 개수 단위의 바이너리 데이터를 상기 제1 개수보다 큰 제2 개수 단위의 바이너리 데이터로 변환하여, 상기 압축 매트릭스의 압축이 해제된 양자화 매트릭스를 획득하는 단계;
    제1 프루닝 인덱스 매트릭스 및 제2 프루닝 인덱스 매트릭스가 입력되면, 상기 제1 프루닝 인덱스 매트릭스 및 상기 제2 프루닝 인덱스 매트릭스에 기초하여 프루닝 인덱스 매트릭스를 획득하는 단계; 및
    상기 프루닝 인덱스 매트릭스에 기초하여 상기 양자화 매트릭스에 포함된 복수의 엘리먼트 중 일부를 0으로 변환하는 단계;를 포함하며,
    상기 압축 매트릭스, 상기 제1 프루닝 인덱스 매트릭스 및 상기 제2 프루닝 인덱스 매트릭스는, 인공지능 모델에 포함된 원본 매트릭스의 압축 과정에서 획득되며,
    상기 제1 프루닝 인덱스 매트릭스 및 상기 제2 프루닝 인덱스 매트릭스는,
    상기 원본 매트릭스가 팩토라이즈(factorize)되어 획득된 제1 매트릭스 및 제2 매트릭스 각각에 기초하여 획득된, 제어 방법.
  11. 제10항에 있어서,
    패치 정보가 입력되면, 상기 패치 정보에 기초하여 상기 양자화 매트릭스에 포함된 상기 복수의 엘리먼트 중 일부의 바이너리 데이터 값을 변경하는 단계;를 더 포함하고,
    상기 패치 정보는, 상기 원본 매트릭스의 압축 과정에서 발생되는 상기 양자화 매트릭스의 에러 정보를 포함하는, 제어 방법.
  12. 제10항에 있어서,
    타 압축 매트릭스가 입력되면, 상기 랜덤 매트릭스에 기초하여 상기 타 압축 매트릭스에 포함된 상기 제1 개수 단위의 바이너리 데이터를 상기 제2 개수 단위의 바이너리 데이터로 변환하여, 상기 타 압축 매트릭스의 압축이 해제된 타 양자화 매트릭스를 획득하는 단계;를 더 포함하고,
    상기 변환하는 단계는,
    상기 프루닝 인덱스 매트릭스에 기초하여 상기 타 양자화 매트릭스에 포함된 복수의 엘리먼트 중 일부를 0으로 변환하고, 상기 양자화 매트릭스 및 상기 타 양자화 매트릭스를 결합하여 각 엘리먼트가 복수의 바이너리 데이터를 포함하는 최종 양자화 매트릭스를 획득하는, 제어 방법.
  13. 제12항에 있어서,
    상기 압축 매트릭스, 상기 제1 프루닝 인덱스 매트릭스 및 상기 제2 프루닝 인덱스 매트릭스는, 상기 원본 매트릭스가 인터리빙된 매트릭스의 압축 과정에서 획득되고,
    상기 제어 방법은,
    상기 최종 양자화 매트릭스에 대해 상기 인터리빙에 대응되는 디인터리빙을 수행하는 단계;를 더 포함하는, 제어 방법.
  14. 제10항에 있어서,
    상기 양자화 매트릭스를 획득하는 단계는,
    상기 랜덤 매트릭스에 기초하여 각 입출력 단자가 연결된 복수의 XOR 게이트를 이용하여 상기 압축 매트릭스로부터 상기 양자화 매트릭스를 획득하는, 제어 방법.
  15. 제10항에 있어서,
    상기 프루닝 인덱스 매트릭스를 획득하는 단계는,
    상기 제1 프루닝 인덱스 매트릭스 및 상기 제2 프루닝 인덱스 매트릭스를 매트릭스 곱셈하여 상기 프루닝 인덱스 매트릭스를 획득하는, 제어 방법.
  16. 제10항에 있어서,
    상기 양자화 매트릭스 및 상기 프루닝 인덱스 매트릭스를 획득하는 단계는,
    프로세서의 외부 메모리로부터 상기 압축 매트릭스, 상기 제1 프루닝 인덱스 매트릭스 및 상기 제2 프루닝 인덱스 매트릭스를 입력받고,
    상기 제어 방법은,
    상기 프로세서의 내부 메모리로 상기 양자화 매트릭스를 전송하는 단계;를 더 포함하는, 제어 방법.
  17. 제10항에 있어서,
    상기 압축 해제 장치는, 프로세서 내에 구비되며,
    상기 양자화 매트릭스 및 상기 프루닝 인덱스 매트릭스를 획득하는 단계는,
    상기 프로세서의 내부 메모리로부터 상기 압축 매트릭스, 상기 제1 프루닝 인덱스 매트릭스 및 상기 제2 프루닝 인덱스 매트릭스를 입력받고,
    상기 제어 방법은,
    상기 프로세서에 포함된 연산 소자 유닛으로 상기 양자화 매트릭스를 전송하며,
    상기 연산 소자 유닛은,
    매트릭스 형태로 배열된 복수의 연산 소자(Processing Element)를 포함하는, 제어 방법.
  18. 제10항에 있어서,
    상기 압축 매트릭스, 상기 제1 프루닝 인덱스 매트릭스 및 상기 제2 프루닝 인덱스 매트릭스는, 상기 원본 매트릭스가 열의 개수 및 행의 개수가 각각 동일하도록 분할된 복수의 서브 매트릭스 중 하나에 기초하여 획득된, 제어 방법.
  19. 압축 해제 장치의 동작 방법을 실행하기 위한 프로그램이 저장된 비일시적 컴퓨터 판독가능 기록매체에 있어서,
    상기 동작 방법은,
    압축 매트릭스가 입력되면, 랜덤 매트릭스에 기초하여 상기 압축 매트릭스에 포함된 제1 개수 단위의 바이너리 데이터를 상기 제1 개수보다 큰 제2 개수 단위의 바이너리 데이터로 변환하여, 상기 압축 매트릭스의 압축이 해제된 양자화 매트릭스를 획득하는 단계;
    제1 프루닝 인덱스 매트릭스 및 제2 프루닝 인덱스 매트릭스가 입력되면, 상기 제1 프루닝 인덱스 매트릭스 및 상기 제2 프루닝 인덱스 매트릭스에 기초하여 프루닝 인덱스 매트릭스를 획득하는 단계; 및
    상기 프루닝 인덱스 매트릭스에 기초하여 상기 양자화 매트릭스에 포함된 복수의 엘리먼트 중 일부를 0으로 변환하는 단계;를 포함하며,
    상기 압축 매트릭스, 상기 제1 프루닝 인덱스 매트릭스 및 상기 제2 프루닝 인덱스 매트릭스는, 인공지능 모델에 포함된 원본 매트릭스의 압축 과정에서 획득되며,
    상기 제1 프루닝 인덱스 매트릭스 및 상기 제2 프루닝 인덱스 매트릭스는,
    상기 원본 매트릭스가 팩토라이즈(factorize)되어 획득된 제1 매트릭스 및 제2 매트릭스 각각에 기초하여 획득된, 기록 매체.
KR1020190117081A 2019-05-24 2019-09-23 압축 해제 장치 및 그 제어 방법 KR20200135117A (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020190140720A KR20200135126A (ko) 2019-05-24 2019-11-06 압축 해제 장치 및 그 제어 방법
EP20166954.6A EP3742349A1 (en) 2019-05-24 2020-03-31 Decompression apparatus and control method thereof
US16/854,285 US10917121B2 (en) 2019-05-24 2020-04-21 Decompression apparatus and control method thereof
PCT/KR2020/005269 WO2020242057A1 (en) 2019-05-24 2020-04-22 Decompression apparatus and control method thereof
CN202010435215.1A CN111985632A (zh) 2019-05-24 2020-05-21 解压缩设备及其控制方法
US17/130,538 US11595062B2 (en) 2019-05-24 2020-12-22 Decompression apparatus for decompressing a compressed artificial intelligence model and control method thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190060991 2019-05-24
KR20190060991 2019-05-24

Publications (1)

Publication Number Publication Date
KR20200135117A true KR20200135117A (ko) 2020-12-02

Family

ID=73791910

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190117081A KR20200135117A (ko) 2019-05-24 2019-09-23 압축 해제 장치 및 그 제어 방법

Country Status (1)

Country Link
KR (1) KR20200135117A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11568254B2 (en) 2019-01-21 2023-01-31 Samsung Electronics Co., Ltd. Electronic apparatus and control method thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11568254B2 (en) 2019-01-21 2023-01-31 Samsung Electronics Co., Ltd. Electronic apparatus and control method thereof

Similar Documents

Publication Publication Date Title
US11727276B2 (en) Processing method and accelerating device
Ravi Projectionnet: Learning efficient on-device deep networks using neural projections
US10025773B2 (en) System and method for natural language processing using synthetic text
US11595062B2 (en) Decompression apparatus for decompressing a compressed artificial intelligence model and control method thereof
US10474430B2 (en) Mixed-precision processing elements, systems, and methods for computational models
US11899744B2 (en) Apparatus and method of performing matrix multiplication operation of neural network
KR102629474B1 (ko) 데이터 압축 및 복원을 위한 전자 장치 및 그 압축 방법
US20220253672A1 (en) Sparse attention neural networks
US11544542B2 (en) Computing device and method
CN112384933A (zh) 编码器-解码器存储器增强神经网络架构
Ravi Efficient on-device models using neural projections
US10608664B2 (en) Electronic apparatus for compression and decompression of data and compression method thereof
JP7034336B2 (ja) データを処理するための方法、装置、および関連製品
KR20210045225A (ko) 뉴럴 네트워크에서 연산을 수행하는 방법 및 장치
EP3855388A1 (en) Image processing device and operation method thereof
CN114925320A (zh) 一种数据处理方法及相关装置
Du et al. Efficient network construction through structural plasticity
KR20210083624A (ko) 신경망의 데이터 입력 및 출력을 제어하는 제어 방법 및 장치
KR20200135117A (ko) 압축 해제 장치 및 그 제어 방법
CN112132281B (zh) 一种基于人工智能的模型训练方法、装置、服务器及介质
CN110728351A (zh) 数据处理方法、相关设备及计算机存储介质
Peres et al. Faster convolutional neural networks in low density fpgas using block pruning
US20190311302A1 (en) Electronic apparatus and control method thereof
Guo et al. Efficient convolutional networks learning through irregular convolutional kernels
CN114297022A (zh) 云环境异常检测方法、装置、电子设备和存储介质