20/09/17 DevC Seongnam Opening Event
https://festa.io/events/1158
SLU? BERT? Distillation? 그게 뭔데… 어떻게 하는 건데… (feat. PyTorch)
본 talk에서는 음성으로부터 intent를 추출하는 SLU task에 BERT와 같은 pretrained langauge model을 적용하는 과정에서 직접적으로 적용하는 것의 난점과 knowledge distillation으로써 이를 해결하는 과정에 대해 다룹니다.
기계번역은 하나의 언어로 기술된 문서를 다른 언어로 자동으로 번역하기 위한 제반 기술을 의미한다. 통상적으로 규칙 기반 기계번역(RBMT: Rule based machine translation)과 통계 기반 기계번역(SBMT: Statistical based machine translation), 그리고 규칙과 통계 기반 기술을 병합한 하이브리드 기계 번역으로 크게 나눌 수 있습니다. 하지만 알고리즘 측면에서 본다면 직접 방식, 중간언어 방식, 통계기반 , 하이브리드 번역 등으로 좀 더 세부적으로 나누어질 수 있다
인간이 사용하는 자연어(natural language)를 컴퓨터를 이용하여 처리하고자 하는 연구는 규칙 기반의 접근법(rule based approach)과 통계 기반의 접근법(statistics based approach)으로 나눌 수 있다. 통계 기반 접근법은 사람이 실제로 사용하는 많은 데이타로부터 확률정보 및 통계 정보를 추출하여 이를 통해 여러 언어현상을 규명하고자 하는 코퍼스 기반 접근법(corpus based approach)라고도 한다.
기계번역은 하나의 언어로 기술된 문서를 다른 언어로 자동으로 번역하기 위한 제반 기술을 의미한다. 통상적으로 규칙 기반 기계번역(RBMT: Rule based machine translation)과 통계 기반 기계번역(SBMT: Statistical based machine translation), 그리고 규칙과 통계 기반 기술을 병합한 하이브리드 기계 번역으로 크게 나눌 수 있습니다. 하지만 알고리즘 측면에서 본다면 직접 방식, 중간언어 방식, 통계기반 , 하이브리드 번역 등으로 좀 더 세부적으로 나누어질 수 있다
인간이 사용하는 자연어(natural language)를 컴퓨터를 이용하여 처리하고자 하는 연구는 규칙 기반의 접근법(rule based approach)과 통계 기반의 접근법(statistics based approach)으로 나눌 수 있다. 통계 기반 접근법은 사람이 실제로 사용하는 많은 데이타로부터 확률정보 및 통계 정보를 추출하여 이를 통해 여러 언어현상을 규명하고자 하는 코퍼스 기반 접근법(corpus based approach)라고도 한다.
코어닷 기술 세미나 2018
Session #3 : 도승헌 (코어닷투데이 개발자)
LDA와 3개월 함께한 자연어처리 시행착오기
16:00 ~ 16:50
한국어 자연어 처리를 하면서 알아야 할 최소한의 지식을 전달합니다. 전처리부터 토픽모델링까지 3개월간 동거동락한 Gensim 라이브러리의 비밀을 알려드립니다.
- 자연어 처리의 기본 이론
- 토픽 모델링과 LDA
- Gensim을 이용한 매우 쉬운 자연어 처리
https://coredottoday.github.io/2018/10/15/Coredot-기술-세미나/
AI/Machine Learning의 한 분야인 Natural Language Processing (NLP)에 대해서 발표를 할 예정입니다. NLP는 한국어로 “자연어 처리”로서 Computer Vision 및 Image Processing에서 “언어적 문맥” 이해와 “그 처리”는 상당히 중요한 역할을 차지합니다. Image/Video를 Language화하여 처리하는 다양한 알고리즘이 존재하며 CVPR/ICCV의 학회에서도 핫한 분야 중 하나입니다. 대표적인 분야는 Image/Video Captioning, Description 및 Visual Q&A 등이 있습니다.
그 중에서도 핵심 Background가 되는 Word2Vec에 대해서 소개하고자 합니다. Word2Vec은 언어처리 뿐만 아니라 Generative Model과도 연관성이 높다는 것이 특징이며. NLP의 모든 분야에서의 핵심 이론으로 보시면 되겠습니다.
코어닷 기술 세미나 2018
Session #3 : 도승헌 (코어닷투데이 개발자)
LDA와 3개월 함께한 자연어처리 시행착오기
16:00 ~ 16:50
한국어 자연어 처리를 하면서 알아야 할 최소한의 지식을 전달합니다. 전처리부터 토픽모델링까지 3개월간 동거동락한 Gensim 라이브러리의 비밀을 알려드립니다.
- 자연어 처리의 기본 이론
- 토픽 모델링과 LDA
- Gensim을 이용한 매우 쉬운 자연어 처리
https://coredottoday.github.io/2018/10/15/Coredot-기술-세미나/
AI/Machine Learning의 한 분야인 Natural Language Processing (NLP)에 대해서 발표를 할 예정입니다. NLP는 한국어로 “자연어 처리”로서 Computer Vision 및 Image Processing에서 “언어적 문맥” 이해와 “그 처리”는 상당히 중요한 역할을 차지합니다. Image/Video를 Language화하여 처리하는 다양한 알고리즘이 존재하며 CVPR/ICCV의 학회에서도 핫한 분야 중 하나입니다. 대표적인 분야는 Image/Video Captioning, Description 및 Visual Q&A 등이 있습니다.
그 중에서도 핵심 Background가 되는 Word2Vec에 대해서 소개하고자 합니다. Word2Vec은 언어처리 뿐만 아니라 Generative Model과도 연관성이 높다는 것이 특징이며. NLP의 모든 분야에서의 핵심 이론으로 보시면 되겠습니다.
Assessing How Users Display Self-Disclosure and Authenticity in Conversation with Human-Like Agents: A Case Study of Luda Lee (presented at AACL-IJCNLP 2022)
2. • Introduction
• Spoken language understanding
• Pretrained language models
• Knowledge distillation
• Takeaways – Thank you PyTorch!
Contents
3. Introduction
조원익
B.S. in EE/Mathematics (SNU, ’10~’14)
Ph.D. student (SNU ECE, ’14 Autumn~)
Academic background
EE folk interested in mathematics
Speech processing lab
Currently studying on
Computational linguistics / Spoken language processing
연사 소개
9. Spoken language understanding
1. 화자의 발화 (utterance)
2. 발화의 전사 (transcription)
3. 전사된 텍스트의 이해 (natural language understanding)
전통적인 ‘음성언어이해’
장점?
텍스트 기반의 정확한 추론!
10. Spoken language understanding
1. 화자의 발화 (utterance)
2. 발화의 전사 (transcription)
3. 전사된 텍스트의 이해 (natural language understanding)
전통적인 ‘음성언어이해’
장점?
텍스트 기반의 정확한 추론!
단점?
전사 과정의 오류 전파!
14. Spoken language understanding
기존의 SLU dataset들이 널리 활용되지 못했던 점을 보완
Ex 1) ATIS (비행 예약 데이터셋; 유료)
Ex 2) Google Speech Command (적은 데이터 양)
Fluent Speech Commands
15. Spoken language understanding
모든 baseline code가 PyTorch로!
https://github.com/lorenlugosch/end-to-end-SLU
예시)
Fluent Speech Commands
19. Pretrained language models
Pretrained language model
BERT를 위시한 Sesame street 패거리, 그들은 누구인가?
언어 모델이란?
- Modeling structure itself
- Assigning probability to
word sequence
- Prediction
ex1) "지금 내 눈 앞에서 당장 !! "
ex2) "나 지금 너무 추워 "
>> " "
20. Pretrained language models
Pretrained language model
BERT를 위시한 Sesame street 패거리, 그들은 누구인가?
어떤 task를 하고 싶은데 이러한 ‘경향성’을 해당 dataset
안에서만 파악하는 것은 쉽지 않다…
어…
‘사랑해’?"지금 내 눈 앞에서 당장 !! "
21. Pretrained language models
Pretrained language model
BERT를 위시한 Sesame street 패거리, 그들은 누구인가?
어떤 언어 모델을 ‘미리 학습시켜’ 두는것!
- How?
답은
‘사라져’!"지금 내 눈 앞에서 당장 !! "
22. Pretrained language models
Pretrained language model
사실 word2vec, GloVe, fastText … 모두 다 Pretrained LM 이었다
어떤 언어 모델을 ‘미리 학습시켜’ 두는것!
예컨대, word2vec 에서는 …
“You shall know a word by the company it keeps”
(J. R. Firth 1957:11)
23. Pretrained language models
Pretrained language model
사실 word2vec, GloVe, fastText … 모두 다 Pretrained LM 이었다
이 때의 문제점: ‘Context’ 안에서 달라지는 단어들의
의미를 반영하기 어렵다!
지금 내 눈앞에서 당장 사라져 !!
vs.
눈은 살아 있다. 떨어진 눈은 살아 있다. 마당 위에 떨어진 눈은 살아 있다.
24. Pretrained language models
Pretrained language model
비슷한 structure의 LM 학습이지만, 이러한 문제를 해결하고자 나온
Deep contextualized
word representation
지금 내 눈앞에서 당장 사라져 !!
vs.
눈은 살아 있다. 떨어진 눈은 살아 있다. 마당 위에 떨어진 눈은 살아 있다.
25. Pretrained language models
Pretrained language model
이후 무수한 contextual word embedding 모델들의 등장이 …
Bidirectional encoder representations from Transformers (BERT)
27. Pretrained language models
Bidirectional encoder representations from Transformers
최종 output 𝑇1 ~ 𝑇 𝑁:
각 𝑇는 임베딩 𝐸에 해당하면서도
contextual한 정보를 포함하는 어떤
vector로 표현된다!
>> 어떤 입력 문장에 대한 ‘유용한’
문장 단위 사전학습 결과를 얻을 수
있음
>> Transformer, 그리고 deep한 구조의
특성 상 엄청난 computation과
데이터를 필요로 함
그래서 다 이런 것을 학습해서
공개해 주셨다… (but for PyTorch?)
28. Pretrained language models
Bidirectional encoder representations from Transformers
For PyTorch? Well-known Hugging Face ‘Transformers’ wrapper!
- TF로 제공되던 모델들을 PyTorch에서 쓸 수 있게 함
- 손쉬운 로딩 및 Fine-tuning
- 다양한 모델들을 비슷한 방식으로 테스트 가능
32. Pretrained language models
방법 1. ASR output을 활용
ASR output이 항상 옳을 것이라 기대하기 어렵다!
그래서 텍스트로 훈련해서 좋은 성능을 얻었는데, 이걸 어떻게 써먹을 것인가…?
해당 데이터셋을 활용, phoneme
posterior-based pretrained LM을
구현한 Wang et al. (2020)의 실험 결과
– FSC는 ASR 측면에서는 쉽지 않은
task일 수 있다
33. Pretrained language models
그래서 텍스트로 훈련해서 좋은 성능을 얻었는데, 이걸 어떻게 써먹을 것인가…?
방법 1. ASR output을 활용
ASR output이 항상 옳을 것이라 기대하기 어렵다!
방법 2. ASR pretrained module의 뒷단에 붙여서 활용?
NN 학습이 윗쪽만 freeze시키는 방식으로 되기 어렵다
초기 구상 아키텍쳐
(weight가 꼬임!)
36. Knowledge distillation
입력 input
출력 output
모델링: input > output 이 될
수 있게 하는 ‘큰’ weight set
(weight ~ trainable param.)
Neural network 기반 학습의 주요 구성 요소
어떻게?
Weight가 update될 수 있도록
출력 layer ‘뒤’로 어떤 정보를
Back propagate한다.
어떤 정보?
Loss
(Weight 기반의 예측과
어떤 target과의 gap)
37. Knowledge distillation
Neural network 기반 학습의 주요 구성 요소
어떤 정보?
Loss
(Weight 기반의 예측과
어떤 target과의 gap)
어떤 gap?
Target이 무엇이냐에 따라 (Task마다) 다르다!
- Categorical target ~ Cross-entropy loss (분류)
- Non-categorical ~ Mean square error loss (회귀)
- … (다양한 task에서 다양하게 정의 가능)
Loss = f (answer, inference)
38. Knowledge distillation
그런데 이 ‘loss’에 다른 것을 사용해볼 수도 있다?
가지고 있는 데이터를 이용해
혼자 익히는 모델 (독학)
>> 배우기에 시간이 걸림
여기에 어떤 다른 모델의 inference를
추가적으로 배워볼 수 있다면?
힘들다…
Loss = f (answer, inference)
Loss1 = f answer, inferences
Loss2 = g inferences , inferencet
39. Knowledge distillation
Distillation as a teacher-student learning
teacher (t)
Loss1 = f answer, inferences
Loss2 = g inferences , inferencet
student (s)
𝑇𝑜𝑡𝑎𝑙 𝐿𝑜𝑠𝑠 = 𝐿𝑜𝑠𝑠1 + 𝐿𝑜𝑠𝑠2
Distilled knowledge
Cross-entropy
Mean square/average error
답지를 알려주는 것 (Loss1) 과의 차이:
어떤 ‘사고과정’을 전달해 줄 수 있다!
40. Knowledge distillation
일반적으로는 teacher과 student의 구조/입출력이 같다!
(text / image / speech …)
왜 하나?
- Student가 더 빠르고
효율적으로 배울 수 있게
- Size가 작은 모델도 큰 모델만큼
정확히 동작할 수 있게
(distillation for model compression)
41. Knowledge distillation
입출력이 다를 수도 있다! 이른바 Cross-modality
Speech와 text는 조금 더 특별하다
서로 다른 modality
- Analog vs. Digital
- Audio vs. Unicode
- Frame vs. Token
42. Knowledge distillation
입출력이 다를 수도 있다! 이른바 Cross-modality
Speech와 text는 조금 더 특별하다
서로 다른 modality
- Analog vs. Digital
- Audio vs. Unicode
- Frame vs. Token
그렇지만 ‘거의’ 같은 내용을 전달할 수 있다!
몇 개 가져가
Should I take some?
How many should I take?
You can take some?
왜 ‘거의’?
일단 지금 하는 FSC task에서는
이 내용은 생각하지 않기로 하자!
43. Knowledge distillation
입출력이 다를 수도 있다! 이른바 Cross-modality
Modality가 달라도 같은 내용을 전달할 수 있다면?
+ 목적으로 하는 task도 같다면?
>> 다루는 입력 데이터가 달라도
distillation을 할 수 있지 않을까?
e.g., Speech translation
44. Knowledge distillation
입출력이 다를 수도 있다! 이른바 Cross-modality
Modality가 달라도 같은 내용을 전달할 수 있다면?
+ 목적으로 하는 task도 같다면?
>> 다루는 입력 데이터가 달라도
distillation을 할 수 있지 않을까?
e.g., Speech translation
Spoken language understanding
Accepted at Interspeech 2020!
46. Knowledge distillation
Cross-modal knowledge distillation
- Distillation 자체도 성공적; Distillation을 사용하지 않은
기존의 학습에 비해 성능 향상
- 다른 성능 개선 방법인 phoneme posterior
-based BERT model의 성능을 상회
47. Knowledge distillation
Cross-modal knowledge distillation
- 특히 data가 부족할 수 있는 speech의 경우
해당 방법으로 이득을 볼 수 있을 것!
- KD loss의 weight, 그리고 scheduling 등에
영향을 받을 수 있음 (덜 heuristic하게?)
48. Takeaways
SLU? Spoken language understanding (음성/인식된 음성의 이해)
BERT? 유용한 ‘문장 표현 도구’ (word2vec의 ‘문장’ 버전)
Distillation? 학습을 보다 쉽게 인도해 주는 것 (T-S의 입력이 달라도 가능)
SLU? BERT? Distillation? 그게 뭔데… 어떻게 하는 건데… (feat. PyTorch)
모두 PyTorch로 쉽게 코딩할 수 있었다!
고마워요 PyTorch! 고마워요 Hugging Face!