KR102631406B1 - 트랜스포머 뉴럴 네트워크 경량화를 위한 지식 증류 방법 및 이를 수행하기 위한 장치 - Google Patents

트랜스포머 뉴럴 네트워크 경량화를 위한 지식 증류 방법 및 이를 수행하기 위한 장치 Download PDF

Info

Publication number
KR102631406B1
KR102631406B1 KR1020200156143A KR20200156143A KR102631406B1 KR 102631406 B1 KR102631406 B1 KR 102631406B1 KR 1020200156143 A KR1020200156143 A KR 1020200156143A KR 20200156143 A KR20200156143 A KR 20200156143A KR 102631406 B1 KR102631406 B1 KR 102631406B1
Authority
KR
South Korea
Prior art keywords
network
teacher
student
student network
knowledge distillation
Prior art date
Application number
KR1020200156143A
Other languages
English (en)
Other versions
KR20220069225A (ko
Inventor
강유
조익현
Original Assignee
서울대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 서울대학교산학협력단 filed Critical 서울대학교산학협력단
Priority to KR1020200156143A priority Critical patent/KR102631406B1/ko
Publication of KR20220069225A publication Critical patent/KR20220069225A/ko
Application granted granted Critical
Publication of KR102631406B1 publication Critical patent/KR102631406B1/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
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Physics & Mathematics (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Feedback Control In General (AREA)
  • Medicines Containing Plant Substances (AREA)

Abstract

트랜스포머 뉴럴 네트워크(transformer neural network)를 적어도 하나를 포함하는 교사(teacher) 네트워크에서 지식증류(knowledge distillation)를 이용하여 트랜스포머 뉴럴 네트워크를 적어도 하나를 포함하는 학생(student) 네트워크를 학습시키는 방법은, 학습데이터에 의해 미리 학습이 된 상기 교사 네트워크의 결과값에 기초하여 상기 학생 네트워크를 초기화하는 PTP(Pretraining with Teacher's Predictions)방식으로 상기 학생 네트워크를 사전학습(pre-training)시키는 단계 및 상기 교사 네트워크에 지식증류 프로세스를 진행하여 상기 학생 네트워크를 학습시키는 단계를 포함한다.

Description

트랜스포머 뉴럴 네트워크 경량화를 위한 지식 증류 방법 및 이를 수행하기 위한 장치{KNOWLEDGE DISTILLATION METHOD FOR COMPRESSING TRANSFORMER NEURAL NETWORK AND APPARATUS THEREOF}
본 명세서에서 개시되는 실시예들은 트랜스포머 기반의 네트워크를 경량화하기 위해 지식증류 방법 및 장치에 관한 것으로, 보다 상세하게는 파라미터 효율성과 정확도를 높인 지식증류 방법 및 장치를 제공하는 방법 및 장치에 관한 것이다.
인공지능 분야에 버트(Bidirectional Encoder Representations from Transformers, BERT)가 등장하면서, 자연어 처리분야에서 거대한 모델들이 등장하기 시작하였다. 버트(BERT)는 트랜스포머(Transformer) 기반의 모델로, 자연어 처리에서도 컴퓨터 비전과 마찬가지로 거대한 모델의 사전학습(pre-training) 및 재학습(fine-tuning)이 가능해졌고, 다양한 문제들에서 뛰어난 성능을 보여주었다.
그러나 버트(BERT)의 단점은 모델이 매우 크고, BERT-base는 약 1.1억개의 파라미터를 사용하기 때문에 버트(BERT)를 사용하기 위해서는 매우 많은 양의 메모리가 필요한 것이였다.
따라서, 버트(BERT)의 모델 경량화(Model Compression)가 요구되었고, 본 발명은 자연어처리 분야에서 많이 쓰이는 트랜스포머(Transformer) 기반 모델, 특히 버트(BERT)에 대한 모델 경량화(Model Compression)에 대한 것이라고 할 수 있다.
버트(BERT)의 성능을 유지하면서, 모델 경량화를 하는 기술의 필요성이 대두되었다.
그 중 하나인, 지식증류(Knowledge Distillation, KD) 방법은 더 큰 교사 네트워크(teacher network)의 일반화 능력(generalization ability)을 일반적으로 훨씬 작은 학생 네트워크(student network)로 전송하여 학생 네트워크를 학습시킨다.
그러나, 버트(BERT)의 모델 경량화에 사용된 기존의 지식증류는 2가지 문제점이 존재하였다.
첫 번째, 학생 네트워크의 크기가 절대적으로 작아 모델 복잡성(model complexity)가 부족하였다.
두 번째, 학생 네트워크에서 초기 가이드(initial guide)의 부재로 인해, 학생 네트워크가 교사 네트워크의 성능을 충실히 흉내(imitate)하기엔 어려웠다.
따라서 상술된 문제점을 해결하기 위한 기술이 필요하게 되었다.
한편, 전술한 배경기술은 발명자가 본 발명의 도출을 위해 보유하고 있었거나, 본 발명의 도출 과정에서 습득한 기술 정보로서, 반드시 본 발명의 출원 전에 일반 공중에게 공개된 공지기술이라 할 수는 없다.
본 명세서에서 개시되는 실시예들은, 트랜스포머 기반의 네트워크를 경량화하기 위해 지식증류 방법 및 장치를 제시하는데 목적이 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서 일 실시예에 따르면, 트랜스포머 뉴럴 네트워크(transformer neural network)를 적어도 하나를 포함하는 교사(teacher) 네트워크에서 지식증류(knowledge distillation)를 이용하여 트랜스포머 뉴럴 네트워크를 적어도 하나를 포함하는 학생(student) 네트워크를 학습시키는 방법은, 학습데이터에 의해 미리 학습이 된 상기 교사 네트워크의 결과값에 기초하여 상기 학생 네트워크를 초기화하는 PTP(Pretraining with Teacher's Predictions)방식으로 상기 학생 네트워크를 사전학습(pre-training)시키는 단계; 및 상기 교사 네트워크에 지식증류 프로세스를 진행하여 상기 학생 네트워크를 학습시키는 단계를 포함할 수 있다.
다른 실시예에 따르면, 트랜스포머 뉴럴 네트워크(transformer neural network)를 적어도 하나를 포함하는 교사(teacher) 네트워크에서 지식증류(knowledge distillation)를 이용하여 트랜스포머 뉴럴 네트워크를 적어도 하나를 포함하는 학생(student) 네트워크를 학습시키는 지식증류장치는 지식증류를 수행하는 프로그램이 저장되는 저장부; 및 적어도 하나의 프로세서를 포함하는 제어부를 포함하며, 상기 제어부는, 학습데이터에 의해 미리 학습이 된 상기 교사 네트워크의 결과값에 기초하여 상기 학생 네트워크를 초기화하는 PTP(Pretraining with Teacher's Predictions)방식으로 상기 학생 네트워크를 사전학습(pre-training)시키며, 상기 교사 네트워크에 지식증류 프로세스를 진행하여 상기 학생 네트워크를 학습시킬 수 있다.
다른 실시예에 따르면, 컴퓨터에 지식증류 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체로서, 지식증류장치에서 수행되는 지식증류 방법은, 트랜스포머 뉴럴 네트워크(transformer neural network)를 적어도 하나를 포함하는 교사(teacher) 네트워크에서 지식증류(knowledge distillation)를 이용하여 트랜스포머 뉴럴 네트워크를 적어도 하나를 포함하는 학생(student) 네트워크를 학습시키는 방법에 있어서, 학습데이터에 의해 미리 학습이 된 상기 교사 네트워크의 결과값에 기초하여 상기 학생 네트워크를 초기화하는 PTP(Pretraining with Teacher's Predictions)방식으로 상기 학생 네트워크를 사전학습(pre-training)시키는 단계; 및 상기 교사 네트워크에 지식증류 프로세스를 진행하여 상기 학생 네트워크를 학습시키는 단계를 포함할 수 있다.
다른 실시에에 다르면, 지식증류장치에 의해 수행되며, 지식증류 방법을 수행하기 위해 기록매체에 저장된 컴퓨터프로그램으로서, 지식증류장치에서 수행되는 지식증류 방법은, 트랜스포머 뉴럴 네트워크(transformer neural network)를 적어도 하나를 포함하는 교사(teacher) 네트워크에서 지식증류(knowledge distillation)를 이용하여 트랜스포머 뉴럴 네트워크를 적어도 하나를 포함하는 학생(student) 네트워크를 학습시키는 방법에 있어서, 학습데이터에 의해 미리 학습이 된 상기 교사 네트워크의 결과값에 기초하여 상기 학생 네트워크를 초기화하는 PTP(Pretraining with Teacher's Predictions)방식으로 상기 학생 네트워크를 사전학습(pre-training)시키는 단계; 및 상기 교사 네트워크에 지식증류 프로세스를 진행하여 상기 학생 네트워크를 학습시키는 단계를 포함할 수 있다.
전술한 과제 해결 수단 중 어느 하나에 의하면, 학생 네트워크의 복잡도가 올라감으로써 학생 네트워크의 학습 성능이 향상될 수 있다.
또한, 기존에 존재하지 않았던 학생 네트워크의 초기화 작업을 제시하여, 학생 네트워크의 학습 성능이 향상될 수 있다. 따라서 네트워크의 경량화에도 불구하고, 교사 네트워크의 학습 성능을 유지할 수 있다.
개시되는 실시예들에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 개시되는 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 지식증류를 이용하여 DNN을 학습시키는 과정을 설명하기 위한 일 예시도를 나타낸 것이다.
도 2 는 일 실시예에 따른 지식증류장치의 구성을 도시한 블록도이다.
도3은 일 실시예에 따른 학생 네트워크를 학습시키기 위한 지식증류를 수행하는 방법을 설명하기 위한 순서도이다.
도 4는 일 실시예에 따른 PTP 방식을 학생 네트워크에 적용하는 예시도이다.
도 5는 일 실시예에 따른 PTP 라벨 부여 방식의 예시도이다.
도6은 일 실시예에 따른 학생 네트워크를 학습시키기 위한 지식증류를 수행하는 방법을 설명하기 위한 순서도이다.
도 7은 일 실시예에 따른 SPS 방식을 학생 네트워크에 적용하는 예시도이다.
아래에서는 첨부한 도면을 참조하여 다양한 실시예들을 상세히 설명한다. 아래에서 설명되는 실시예들은 여러 가지 상이한 형태로 변형되어 실시될 수도 있다. 실시예들의 특징을 보다 명확히 설명하기 위하여, 이하의 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 널리 알려져 있는 사항들에 관해서 자세한 설명은 생략하였다. 그리고, 도면에서 실시예들의 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 구성이 다른 구성과 "연결"되어 있다고 할 때, 이는 '직접적으로 연결'되어 있는 경우뿐 아니라, '그 중간에 다른 구성을 사이에 두고 연결'되어 있는 경우도 포함한다. 또한, 어떤 구성이 어떤 구성을 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한, 그 외 다른 구성을 제외하는 것이 아니라 다른 구성들을 더 포함할 수도 있음을 의미한다.
본 발명의 실시예에 따르면, DNN(Deep Neural network)를 학습시키기 위해서 지식증류(Knowledge Distillation, KD)를 이용한다. 지식증류는 더 큰 교사 네트워크(teacher network)의 일반화 능력(generalization ability)을 일반적으로 훨씬 작은 학생 네트워크(student network)로 전송하여 학생 네트워크를 학습시키는 방식을 말한다. 교사 네트워크는 하드 타겟(hard-target) 정보와 소프트 타겟(soft-target) 정보를 학생 네트워크(30)에 제공하여, 학생 네트워크가 유사하게 일반화하는 것을 학습할 수 있도록 한다.
본 발명에서, 지식증류의 방식을 사용하여 학습시키는 뉴럴 네트워크는 트랜스포머(transformer) 기반의 뉴럴 네트워크이며, 일실시예에 따르면, 버트(Bidirectional Encoder Representations from Transformers, BERT)일 수 있다. 이때, 트랜스포머는 seq2seq의 구조인 인코더-디코더를 따르며, RNN을 사용하지 않고 어텐션(Attention)만으로 구현한 모델이다.
이하 첨부된 도면을 참고하여 실시예들을 상세히 설명하기로 한다.
도 1은 지식증류를 이용하여 DNN을 학습하는 과정을 설명하기 위한 일 예시도를 나타낸 것이다.
도 1을 참조하면, 학생 모델을 SPS(Shuffled Parameter Sharing)방식을 적용하여 SPS 학생 모델로 변환하고, SPS 학생 모델을 PTP(Pretraining with Teacher's Predicitons)방식을 통하여 사전학습(pre-training)하고, PTP방식으로 사전학습된 SPS 학생 네트워크(30)를 지식증류를 이용하여 선생 네트워크를 모방하도록 학습시킨다. 학생 네트워크(30)에 적용된 SPS방식과 PTP방식의 구체적인 방법에 대해서는 아래에서 다른 도면들을 참조하여 자세하게 설명한다.
도 2는 일 실시예에 따른 지식증류장치(200)의 구성을 도시한 블록도이다.
도 2를 참조하면, 일 실시예에 따른 지식증류장치(200)는 입출력부(210), 저장부(220) 및 제어부(230)를 포함할 수 있다.
일 실시예에 따른 입출력부(210)는 사용자로부터 입력을 수신하기 위한 입력장치와, 작업의 수행 결과 또는 지식증류장치(200)의 상태 등의 정보를 표시하기 위한 출력장치를 포함할 수 있다. 예를 들어, 입출력부(210)는 데이터 처리의 명령을 수신하기 위한 입력부와 수신한 명령에 따라 처리된 결과를 출력하는 출력부를 포함할 수 있다. 일 실시예에 따르면 입출력부(210)는 키보드나 마우스, 터치패널 등의 사용자 입력수단과, 모니터나 스피커 등의 출력수단을 포함할 수 있다.
한편, 저장부(220)는 지식증류를 수행하여 학생 네트워크(30)를 학습시키기 위한 데이터를 저장할 수 있다. 가령, 뉴럴 네트워크(교사 네트워크(20), 학생 네트워크(30))를 학습시키기 위한 학습 데이터를 저장할 수 있고, 학생 네트워크(30)를 학습시키기 위한 지식증류에 필요한 교사 네트워크(20)의 출력 데이터를 저장할 수 있다. 또한, 학생 네트워크(30)를 학습시키기 위한 지식증류에 필요한 각종 데이터나 프로그램들을 저장할 수 있다.
그리고 제어부(230)는 뉴럴 네트워크 시스템(200)의 전체적인 동작을 제어하며, CPU 등과 같은 프로세서를 포함할 수 있다. 특히, 제어부(230)는 저장부(220)에 저장된 프로그램을 실행하거나 데이터를 읽어 학생 네트워크(30)를 학습시키기 위한 지식증류를 수행할 수 있다. 제어부(230)가 학생 네트워크(30)를 학습시키기 위한 지식증류를 수행하는 구체적인 방법에 대해서는 아래에서 다른 도면들을 참조하여 자세하게 설명한다.
이하에서는 학생 네트워크(30)를 학습시키기 위한 지식증류를 수행하는 구체적인 방법에 대해서 설명한다.
도3은 일 실시예에 따른 학생 네트워크(30)를 학습시키기 위한 지식증류를 수행하는 방법을 설명하기 위한 순서도이다.
도 3을 참조하면, 제어부(230)는 PTP방식으로 학생 네트워크(30)를 사전학습(pre-training)시킨다(S310). S310단계 이후에, 제어부(230)는 교사 네트워크(20)에 지식증류 프로세스를 진행하여 학생 네트워크(30)를 학습시킨다(S320).
PTP(Pretraining with Teacher's Predictions) 방식
여기서 PTP(Pretraining with Teacher's Predicitons)방식이란, 지식증류를 하기 전 학생 모델을 초기화시키는 방법이다. 일종의 지식증류에 '특화된' 초기화 방법이라고 볼 수 있다. PTP방식에 의해 학생 네트워크(30)는 다운스트림 테스크(downstream task)뿐만 아니라 교사 네트워크(20)에 대한 추가적인 지식을 습득할 수 있다.
도 4는 일 실시예에 따른 PTP 방식을 학생 네트워크(30)에 적용하는 예시도이다.
도 4를 참조하면, PTP방식은 다음과 같이 이루어진다. 제어부(230)는 학습데이터(10)를 교사 네트워크(20)에 입력하고, 교사 네트워크(20)의 결과값을 모은다. 이후, 제어부(230)는 교사 네트워크(20)의 결과값에 기초하여 정의된 컨피던스(confidence)에 기초하여 학습데이터(10)에 PTP라벨을 부여한다. 제어부(230)는 학습데이터(10)를 학생 네트워크(30)에 입력하여, 입력에 대응하는 PTP 라벨을 예측하도록 학생 네트워크(30)를 학습시킨다. 제어부(230)는 PTP 라벨을 예측하도록 학습된 학생 네트워크(30)를 지식증류 프로세스의 초기 상태로 사용한다.
컨피던스(confidence)는 다음과 같이 정의된다. 교사 네트워크(20)의 결과값 중 가장 큰 값을 컨피던스(confidence)로 한다.
도 5는 일 실시예에 따른 PTP 라벨 부여 방식의 예시도이다.
도 5에 도시된 PTP라벨 부여 방식을 구체적으로 살펴보면, 제어부는 교사 네트워크(20)가 입력데이터에 대해서 정답을 맞추는지 못 맞추는지로 먼저 나누고, 제어부는 각각의 경우 confidence의 크기가 t(하이퍼파라미터) 이상인지 아닌지에 따라 나누어 총 4종류의 라벨을 입력데이터에 부여하게 된다. 이때 하이퍼파라미터 t는 0.5와 1 사이의 값을 갖는 것이 바람직하다. 예를 들어, t가 0.6이고, 입력 x에 대한 교사 네트워크(20)의 결과값의 최대값이 0.7이고, 입력 x에 대하여 교사 네트워크(20)가 정답을 맞추었다고 가정하면, 제어부(230)는 입력 x에 대한 교사 네트워크(20)의 결과값의 최대값이 t보다 크므로 입력 x에 대하여 confidently correct 라벨을 부여할 수 있다.
PTP방식을 통해서 학생 네트워크(30)는 교사 네트워크(20)에 대한 추가적인 정보를 미리 얻을 수 있고, 지식 증류 프로세스가 교사 네트워크(20)의 지식을 학생 네트워크(30)에 주는 것이므로 교사 네트워크(20)에 대한 정보를 사전학습(pre-training)한 학생 네트워크(30)는 교사 네트워크(20)의 지식을 보다 더 효율적으로 받을 수 있다.
제어부(230)가 PTP 라벨을 이용하여 학생 네트워크(30)를 사전학습(pretraining)시키는 수식은 <수학식 1>과 같다.
[수학식 1]
여기서, 는 학생 네트워크의 파라미터를 의미하고, 는 학습 데이터를 의미하고, 는 학생 네트워크의 출력값, 는 소프트맥스(softmax) 함수를 의미하고, 는 PTP 라벨을 의미하고, 첨자 s는 학생 네트워크를 의미하고, 는 크로스엔트로피 손실(cross-entropy loss)을 의미할 수 있다.
PTP방식으로 학생 네트워크(30)의 사전학습이 완료되면, 제어부는 를 지식증류 시 학생 네트워크(30)의 초기 상태에 사용할 수 있다. 즉, 제어부는 학생 네트워크(30)의 파라미터가 인 상태로 지식증류 프로세스를 시작한다.
도 6을 참조하면, S310단계에서 PTP방식으로 학생 네트워크(30)를 사전학습(pre-training)시키는 과정은 다시 S601단계 내지 S602단계로 구분될 수 있다.
제어부(230)는 학생 네트워크(30)의 레이어에 SPS방식을 적용할 수 있다(S601).
SPS(Shuffled Parameter Sharing) 방식
여기서 SPS 방식이란, 파라미터의 수를 늘리지 않으면서 학생 네트워크(30)의 모델 복잡성(model complexity)를 높여주는 방법이다.
SPS 방식은 다음과 같이 이루어진다. 제어부(230)는 학생 네트워크(30)가 파라미터를 공유하는 복수의 레이어 쌍들을 포함하게 하고, 제어부는 학생 네트워크(30)를 학습시키는 단계에서 파라미터가 공유된 레이어 쌍을 두 그룹으로 분할한 후, 제 1레이어 그룹이 파라미터를 파라미터끼리 서로 뒤바꾸어 사용하게 하고, 제2레이어 그룹은 공유하는 파라미터를 그대로 사용하게 한다. 이때, 학습시키는 단계는 사전학습(pretraining)단계와 지식증류 시 학습단계를 포함한다.
도 7은 일 실시예에 따른 SPS 방식을 학생 네트워크(30)에 적용하는 예시도이다.
도 7을 참조하면, 학생 네트워크(30)에 총 3개의 레이어가 있음을 알 수 있다. 제어부(230)는 학생 네트워크(30)가 파라미터를 공유하는 복수의 레이어 쌍들을 포함하도록 레이어를 추가한다. 이때, 추가하는 레이어 개수는 기존 레이어와 꼭 같지 않아도 된다. 예를 들어, 학생 네트워크(30)에 총 6개의 레이어가 있을 때, 파라미터를 공유하는 3개의 레이어만 추가할 수도 있다.
도 7을 참조하면, 아래쪽 레이어 1과 위쪽 레이어 1은 파라미터를 서로 공유하고 있고, 마찬가지로 레이어2와 위쪽 레이어2 및 아래쪽 레이어3과 위쪽 레이어3도 파라미터를 서로 공유하고 있음을 알 수 있다. 제어부는 상단(upper) 레이어 1,2,3을 제1그룹, 바텀(bottom) 레이어 1,2,3을 제2그룹으로 분할한 후, 제1레이어 그룹이 파마미터 Q(Query), K(key)를 뒤바꾸어 사용하게 하고, 제2레이어 그룹은 파라미터 Q, K를 그대로 사용하게 할 수 있다.
이를 통해 학생 네트워크(30)는 더 높은 복잡도를 얻게 되고 따라서 학습의 성능(정확도)이 향상될 수 있다.
S601 단계 이후에, 제어부(230)는 PTP방식으로 SPS 학생 네트워크를 사전학습(pre-training)시킨다(S602).
제어부(230)는 기존 학생 네트워크(30)에 SPS방식을 적용하여 SPS 학생 네트워크(30)로 변환하고, SPS 학생 네트워크(30)에 PTP 방식으로 사전학습(pre-training)시킨다. SPS방식과 PTP방식을 적용한 학생 네트워크(30)는 기존의 학생 네트워크(30)보다 지식증류에 의한 학습의 성능(정확도)이 월등히 높다. 이때, SPS방식과 PTP방식은 서로 독립적인 방법이기 때문에 함께 적용했을 때 효과가 합해져서 더욱 큰 성능 향상을 얻을 수 있다.
S310단계 이후에, 제어부(230)는 교사 네트워크(20)에 지식증류 프로세스를 진행하여 학생 네트워크(30)를 학습시킨다(S320).
지식증류 프로세스를 진행하기 전에, 선생 네트워크는 학습데이터(10)로 충분히 학습되어야 한다. 예를 들어, 선생 네트워크는 12 layer Bert-base model일 수 있다.
학습된 선생 네트워크의 파라미터는 <수학식 2>와 같다.
[수학식 2]
여기서, 는 선생 네트워크의 파라미터를 의미하고, 는 소프트맥스 함수(softmax function)를 의미하고, 는 학습데이터(10)를 의미하고, 는 선생 네트워크의 결과값을 의미하고, 는 참 라벨(true labels)을 의미하고, 는 크로스엔트로피 손실(cross-entropy loss)을 의미할 수 있다. <수학식 2>는 손실 함수(Loss function)을 나타내는 <수학식 4>에서 사용될 수 있다.
지식증류 프로세스의 진행을 위해 사용되는 수식은 <수학식 3>와 <수학식 4>과 같다.
[수학식 3]
지식증류를 하기 위해 네트워크의 결과값은 <수학식 2>에 의해 소프트(soft)한 값으로 표현된다. T 는 교사 네트워크(20)의 출력값을 소프트하게 조절하는 스프트맥스함수의 온도를 의미할 수 있고, 는 네트워크의 출력값을 의미할 수 있다. <수학식 3>는 손실 함수(Loss function)을 나타내는 <수학식 4>에서 교사네트워크의 결과값을 소프트화하기 위해 사용될 수 있다.
[수학식 4]
은 지식증류하여 학생 네트워크를 학습시키기 위해 필요한 손실함수(Loss function)을 의미하고, 는 각각 교사 네트워크(20)와 학생 네크워크(32)의 결과값을 의미하고, 는 페이션트 지식증류(patient KD)에서 사용되는 특정 레이어의 지수를 의미하고, 는 학생 네트워크의 파라미터를 의미하고, 는 학습데이터(10)를 의미하고, 는 소프트맥스 함수(softmax function)를 의미하고, 는 참 라벨(true labels)을 의미하고, 는 크로스엔트로피 손실(cross-entropy loss)을 의미하고, 는 쿨백-라이블러 발산손실(Kullback-Leibler divergence loss)을 나타내고, 는 k번째 레이어의 아웃풋 로짓(output logits)을 의미할 수 있고, 는 하이퍼파라미터를 의미할 수 있다. 는 각각 수학식<2> 및 <3>에 의해 정의된다.
제어부(230)는 <수학식 4>의 손실함수를 통하여 학생 네트워크(30)를 학습시킨다.
또한, 명세서에 기재된 "…부", "…모듈" 의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
이상의 실시예들에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA(field programmable gate array) 또는 ASIC 와 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램특허 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다.
구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로부터 분리될 수 있다.
뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU 들을 재생시키도록 구현될 수도 있다.
도 3 내지 도 7을 통해 설명된 실시예들에 따른 지식증류 방법은 컴퓨터에 의해 실행 가능한 명령어 및 데이터를 저장하는, 컴퓨터로 판독 가능한 매체의 형태로도 구현될 수 있다. 이때, 명령어 및 데이터는 프로그램 코드의 형태로 저장될 수 있으며, 프로세서에 의해 실행되었을 때, 소정의 프로그램 모듈을 생성하여 소정의 동작을 수행할 수 있다. 또한, 컴퓨터로 판독 가능한 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터로 판독 가능한 매체는 컴퓨터 기록 매체일 수 있는데, 컴퓨터 기록 매체는 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함할 수 있다. 예를 들어, 컴퓨터 기록 매체는 HDD 및 SSD 등과 같은 마그네틱 저장 매체, CD, DVD 및 블루레이 디스크 등과 같은 광학적 기록 매체, 또는 네트워크를 통해 접근 가능한 서버에 포함되는 메모리일 수 있다.
또한 도 3 내지 도 7을 통해 설명된 실시예들에 따른 지식증류 방법은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 컴퓨터 프로그램(또는 컴퓨터 프로그램 제품)으로 구현될 수도 있다. 컴퓨터 프로그램은 프로세서에 의해 처리되는 프로그래밍 가능한 기계 명령어를 포함하고, 고레벨 프로그래밍 언어(High-level Programming Language), 객체 지향 프로그래밍 언어(Object-oriented Programming Language), 어셈블리 언어 또는 기계 언어 등으로 구현될 수 있다. 또한 컴퓨터 프로그램은 유형의 컴퓨터 판독가능 기록매체(예를 들어, 메모리, 하드디스크, 자기/광학 매체 또는 SSD(Solid-State Drive) 등)에 기록될 수 있다.
따라서 도 3 내지 도 7을 통해 설명된 실시예들에 따른 지식증류 방법은 상술한 바와 같은 컴퓨터 프로그램이 컴퓨팅 장치에 의해 실행됨으로써 구현될 수 있다. 컴퓨팅 장치는 프로세서와, 메모리와, 저장 장치와, 메모리 및 고속 확장포트에 접속하고 있는 고속 인터페이스와, 저속 버스와 저장 장치에 접속하고 있는 저속 인터페이스 중 적어도 일부를 포함할 수 있다. 이러한 성분들 각각은 다양한 버스를 이용하여 서로 접속되어 있으며, 공통 머더보드에 탑재되거나 다른 적절한 방식으로 장착될 수 있다.
여기서 프로세서는 컴퓨팅 장치 내에서 명령어를 처리할 수 있는데, 이런 명령어로는, 예컨대 고속 인터페이스에 접속된 디스플레이처럼 외부 입력, 출력 장치상에 GUI(Graphic User Interface)를 제공하기 위한 그래픽 정보를 표시하기 위해 메모리나 저장 장치에 저장된 명령어를 들 수 있다. 다른 실시예로서, 다수의 프로세서 및(또는) 다수의 버스가 적절히 다수의 메모리 및 메모리 형태와 함께 이용될 수 있다. 또한 프로세서는 독립적인 다수의 아날로그 및(또는) 디지털 프로세서를 포함하는 칩들이 이루는 칩셋으로 구현될 수 있다.
또한 메모리는 컴퓨팅 장치 내에서 정보를 저장한다. 일례로, 메모리는 휘발성 메모리 유닛 또는 그들의 집합으로 구성될 수 있다. 다른 예로, 메모리는 비휘발성 메모리 유닛 또는 그들의 집합으로 구성될 수 있다. 또한 메모리는 예컨대, 자기 혹은 광 디스크와 같이 다른 형태의 컴퓨터 판독 가능한 매체일 수도 있다.
그리고 저장장치는 컴퓨팅 장치에게 대용량의 저장공간을 제공할 수 있다. 저장 장치는 컴퓨터 판독 가능한 매체이거나 이런 매체를 포함하는 구성일 수 있으며, 예를 들어 SAN(Storage Area Network) 내의 장치들이나 다른 구성도 포함할 수 있고, 플로피 디스크 장치, 하드 디스크 장치, 광 디스크 장치, 혹은 테이프 장치, 플래시 메모리, 그와 유사한 다른 반도체 메모리 장치 혹은 장치 어레이일 수 있다.
상술된 실시예들은 예시를 위한 것이며, 상술된 실시예들이 속하는 기술분야의 통상의 지식을 가진 자는 상술된 실시예들이 갖는 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 상술된 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 명세서를 통해 보호받고자 하는 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태를 포함하는 것으로 해석되어야 한다.
10: 학습데이터 20: 교사 네트워크
30: 학생 네트워크 200: 지식증류장치
210: 입출력부 220: 저장부
230: 제어부

Claims (10)

  1. 제어부를 갖는 지식증류장치에 의한, 트랜스포머 뉴럴 네트워크(transformer neural network)를 적어도 하나를 포함하는 교사(teacher) 네트워크에서 지식증류(knowledge distillation)를 이용하여 트랜스포머 뉴럴 네트워크를 적어도 하나를 포함하는 학생(student) 네트워크를 학습시키는 방법에 있어서,
    상기 제어부가 상기 학생 네트워크의 공유 파라미터를 뒤바꾸는 SPS(Shuffled Parameter Sharing)방식을 적용하여 변환하고, 학습데이터에 의해 미리 학습이 된 상기 교사 네트워크의 결과값에 기초하여 상기 학생 네트워크를 초기화하는 PTP(Pretraining with Teacher's Predictions)방식으로 상기 학생 네트워크를 사전학습(pre-training)시키는 단계; 및
    상기 제어부가 상기 교사 네트워크에 지식증류 프로세스를 진행하여 상기 학생 네트워크를 학습시키는 단계를 포함하며,
    상기 학생 네트워크를 사전학습시키는 단계는,
    상기 학생 네트워크가 파라미터를 공유하는 복수의 레이어 쌍들을 포함하게 하는 단계; 및
    상기 파라미터가 공유된 레이어 쌍 중 제1레이어는 공유하는 파라미터인 쿼리(Query) 파라미터와 키(Key) 파라미터를 서로 뒤바꾸고, 제2레이어는 상기 쿼리(Query) 파라미터와 키(Key) 파라미터를 그대로 사용하는 상기 SPS(Shuffled Parameter Sharing)방식을 상기 학생 네트워크에 적용하는 단계를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 학생 네트워크를 사전학습(pre-training)시키는 단계는,
    상기 학습데이터를 상기 교사 네트워크에 입력하고, 상기 교사 네트워크의 결과값을 모으는 단계;
    상기 교사 네트워크의 결과값에 기초하여 정의된 컨피던스(confidence)에 기초하여 학습데이터에 PTP 라벨을 부여하는 단계; 및
    상기 학습데이터를 상기 학생 네트워크에 입력하여, 입력에 대응하는 PTP라벨을 예측하도록 학생 네트워크를 학습시키는 단계를 더 포함하는, 방법.
  3. 제2항에 있어서,
    상기 컨피던스는,
    상기 교사 네트워크의 결과값 중 가장 큰 값을 의미하는, 방법.
  4. 삭제
  5. 트랜스포머 뉴럴 네트워크(transformer neural network)를 적어도 하나를 포함하는 교사(teacher) 네트워크에서 지식증류(knowledge distillation)를 이용하여 트랜스포머 뉴럴 네트워크를 적어도 하나를 포함하는 학생(student) 네트워크를 학습시키는 지식증류장치에 있어서,
    지식증류를 수행하는 프로그램이 저장되는 저장부; 및
    적어도 하나의 프로세서를 포함하는 제어부를 포함하며,
    상기 제어부는,
    상기 학생 네트워크의 공유 파라미터를 뒤바꾸는 SPS(Shuffled Parameter Sharing)방식을 적용하여 변환하고, 학습데이터에 의해 미리 학습이 된 상기 교사 네트워크의 결과값에 기초하여 상기 학생 네트워크를 초기화하는 PTP(Pretraining with Teacher's Predictions)방식으로 상기 학생 네트워크를 사전학습(pre-training)시키며,
    상기 교사 네트워크에 지식증류 프로세스를 진행하여 상기 학생 네트워크를 학습시키며,
    상기 제어부는,
    상기 학생 네트워크가 파라미터를 공유하는 복수의 레이어 쌍들을 포함하게 하고,
    상기 파라미터가 공유된 레이어 쌍 중 제1레이어는 공유하는 파라미터인 쿼리(Query) 파라미터와 키(Key) 파라미터를 서로 뒤바꾸고, 제2레이어는 쿼리(Query) 파라미터와 키(Key) 파라미터를 그대로 사용하는 상기 SPS(Shuffled Parameter Sharing)방식을 상기 학생 네트워크에 적용하는, 장치.
  6. 제5항에 있어서,
    상기 제어부는,
    상기 학습데이터를 상기 교사 네트워크에 입력하고, 상기 교사 네트워크의 결과값을 모으며,
    상기 교사 네트워크의 결과값에 기초하여 정의된 컨피던스(confidence)에 기초하여 학습데이터에 PTP 라벨을 부여하며,
    상기 학습데이터를 상기 학생 네트워크에 입력하여 입력에 대응하는 PTP라벨을 예측하도록 학생 네트워크를 학습시키는, 장치.
  7. 제6항에 있어서,
    상기 컨피던스는,
    상기 교사 네트워크의 결과값 중 가장 큰 값을 의미하는, 장치.
  8. 삭제
  9. 컴퓨터에 제1항에 기재된 방법을 실행시키기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체.
  10. 지식증류장치에 의해 수행되며, 제1항에 기재된 방법을 수행하기 위해 매체에 저장된 컴퓨터 프로그램.
KR1020200156143A 2020-11-20 2020-11-20 트랜스포머 뉴럴 네트워크 경량화를 위한 지식 증류 방법 및 이를 수행하기 위한 장치 KR102631406B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200156143A KR102631406B1 (ko) 2020-11-20 2020-11-20 트랜스포머 뉴럴 네트워크 경량화를 위한 지식 증류 방법 및 이를 수행하기 위한 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200156143A KR102631406B1 (ko) 2020-11-20 2020-11-20 트랜스포머 뉴럴 네트워크 경량화를 위한 지식 증류 방법 및 이를 수행하기 위한 장치

Publications (2)

Publication Number Publication Date
KR20220069225A KR20220069225A (ko) 2022-05-27
KR102631406B1 true KR102631406B1 (ko) 2024-01-30

Family

ID=81796596

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200156143A KR102631406B1 (ko) 2020-11-20 2020-11-20 트랜스포머 뉴럴 네트워크 경량화를 위한 지식 증류 방법 및 이를 수행하기 위한 장치

Country Status (1)

Country Link
KR (1) KR102631406B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117437411A (zh) * 2022-07-11 2024-01-23 北京字跳网络技术有限公司 语义分割模型训练方法、装置、电子设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102570278B1 (ko) * 2017-07-31 2023-08-24 삼성전자주식회사 교사 모델로부터 학생 모델을 트레이닝하는데 사용되는 학습 데이터를 생성하는 장치 및 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Zhenzhong Lan et al., "ALBERT: A LITE BERT FOR SELF-SUPERVISED LEARNING OF LANGUAGE REPRESENTATIONS," arXiv:1909.11942v6 [cs.CL] 9 Feb 2020 (2020.02.09.)*

Also Published As

Publication number Publication date
KR20220069225A (ko) 2022-05-27

Similar Documents

Publication Publication Date Title
US11551705B2 (en) Systems and methods for machine-generated avatars
KR102211939B1 (ko) 질의 응답 장치 및 방법
US11350169B2 (en) Automatic trailer detection in multimedia content
KR102199285B1 (ko) 딥러닝 신경망의 압축 방법 및 이를 수행하기 위한 장치
EP3855388A1 (en) Image processing device and operation method thereof
KR102631406B1 (ko) 트랜스포머 뉴럴 네트워크 경량화를 위한 지식 증류 방법 및 이를 수행하기 위한 장치
US20190294969A1 (en) Generation of neural network containing middle layer background
CN116363560A (zh) 一种视频掩码自编码方法及系统
KR102559036B1 (ko) 음수값을 갖는 활성화 함수에서 제로 스키핑을 제공하는 방법 및 장치
CN117610608B (zh) 基于多阶段特征融合的知识蒸馏方法、设备及介质
KR20220092043A (ko) 파라미터의 민감도에 기초하여 복수의 트랜스포머 인코더 레이어를 양자화하는 방법 및 장치
US11568303B2 (en) Electronic apparatus and control method thereof
KR102576699B1 (ko) 지식 증류를 통한 그래프 합성곱 신경망 모델의 압축 방법 및 이를 수행하기 위한 장치
JP7041239B2 (ja) 深層距離学習方法およびシステム
CN116013274A (zh) 语音识别的方法、装置、计算机设备和存储介质
KR102595095B1 (ko) 유아-모사 베이지안 학습 방법 및 이를 수행하기 위한 컴퓨팅 장치
KR20230109931A (ko) 비디오 스토리 질의 응답을 위한 트랜스포머 모델을 구축하는 장치 및 방법
KR102675490B1 (ko) 다수준 등장인물 주의집중을 통한 비디오 스토리 이해 방법 및 이를 수행하기 위한 컴퓨팅 장치
KR20220074143A (ko) 정규화를 위해 트랜스포머 뉴럴 네트워크의 어텐션 헤드를 프루닝하는 방법 및 이를 수행하기 위한 장치
KR20220169778A (ko) 프로그램 코드 처리 장치 및 방법
KR20220075964A (ko) 훈련용 데이터에 대한 라벨링을 수행하기 위한 방법 및 장치
KR20230012785A (ko) 비디오 스토리 질의응답을 위한 트랜스포머 모델을 구축하는 방법 및 이를 수행하기 위한 컴퓨팅 장치
JP7394118B2 (ja) 質疑応答装置及び方法
KR102689365B1 (ko) 뉴럴 네트워크 장치 및 그 장치에서의 러닝 방법
KR102560188B1 (ko) 멀티모달 인공지능 에이전트를 이용하여 강화학습을 수행하는 방법 및 이를 수행하기 위한 컴퓨팅 장치

Legal Events

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