SlideShare uma empresa Scribd logo
1 de 18
Baixar para ler offline
Enliple배 언어모델 튜닝 대회
KorQuAD 1.0 모델 학습 및 튜닝
부산대학교 전기전자컴퓨터공학과
조상현(delosycho@gmail.com)
목차
참가 배경
제약 사항
실험 방법
실험 결과
결론 및 느낀점
2
참가 배경
KorQuAD 2.0 페이지를 접속하다가 업데이트 된 배너를 발견하게 되
었고 늦게나마 대회에 참가하게 되었다
3
조금만 더 일찍 봤다면 ㅠㅠ
제약 사향
이번 대회의 모델 튜닝을 위한 제약 사항은 다음과 같았다
- 모델 학습을 위한 짧은 준비기간
- 대회에서 제공되는 경량화 모델을 이용(12 Layer, 256 Hidden Size)
이전에는 Tensorflow만을 실험에 사용해왔기에 짧은 시간으로 모델을 튜닝하
고 다양한 하이퍼 파라미터를 돌려보기에는 시간이 빠듯했다
그렇기에 성능을 높이는 것 보다는 현재 상황에서 해볼 수 있는 실험이 무엇인
가 고민을 하게 되었다
3
제약 사향
대회에서 함께 제공되는 Large 모델의 경우 너무 많은 GPU Memory를 요구하
기 때문에 직접 학습을 시켜볼 엄두를 내지 못하였다.
그러던 중 대회 소스코드를 제공하는 Github에서 감사하게도 KorQuAD 1.0에
학습을 시킨 Large 모델을 함께 배포하는 것을 보았고, 기왕이면 모두 활용하
면 좋겠다고 생각하여, Large Model을 Teacher Model로 설정하여 대회 참가
를 위한 모델에 Knowledge Distillation을 적용하는 방향으로 성능을 개선해보
기로 하였다.
3
Kor_pretrain_LM 깃헙
제약 사향
본 대회를 위해 튜닝한 부분
-distillation을 위한 Loss 변형
-Large Model에서 soft label 생성
대회에서 제공된 부분을 그대로 사용
-KorQuAD 데이터 전처리 및 정답추론
(Random Seed는 기본 코드에서 설정된 값을 그대로 사용하였다)
3
실험 방법
우선 Distillation을 위한 Soft Label을 얻기 위해 학습 데이터에 Large Model을 실행시키
고 출력 값을 Numpy로 저장하였다.
Tokenizing은 Large 모델의 Vocab을 사용하는 Tokenizer를 이용하였으며, Token을 ids
로 convert할 때에는 Large와 Small 두 모델의 Vocab을 모두 이용하여 각각 저장하도록
하였다.
저장되어야 할 데이터 목록은 아래와 같다.
- Start/End Soft Label
- Start/End Hard Label
- Segments, Mask
- Token ids(Large Model Vocab), Token ids(Small Model Vocab)
3
실험 방법
Large Model과 Small Model의 Vocab은 구성에 차이가 존재하기 때문에 Bert_Tokenizer로 토큰화를 했
을 때 다른 결과가 나온다.
그리고 이로 인해서 다른 Vocab의 Tokenizer에서 생성된 토큰에 convert_tokens_to_ids 함수를 적용하
면 vocab의 차이로 인해서 [UNK] 토큰이 생기는 경우가 생긴다. (paragraph당 2~3개 토큰)
이를 노이즈로 생각하고 실험을 진행해보았고 평가 결과, 이로 인한 문제가 성능에 큰 하락을 일으키진 않
았다.
예문: “김철수와 김영희는 부리나케 집으로 갔다”
Samll Model Tokenizer: ['김', '##철수', '##와', '김영', '##희', '##는', '부리', '##나', '##케', '집', '##으로', '갔', '##다']
Large Model Tokenizer: ['김철', '##수', '##와', '김영희', '##는', '부리', '##나', '##케', '집', '##으로', '갔', '##다']
3
Tokenizing 과정에서의 문제
실험 방법
모델의 경우, 큰 변형은 하지 않고 이전 히든 레이어를 활용하거나, 추가적인
Transformer 레이어를 추가하는 등의 변형을 적용해보았다.
3
모델 변형
Transformer
Transformer
Transformer
Transformer
…
…
Transformer
Concat Hidden
Start End
Transformer
Transformer
Transformer
…
…
Concat Hidden
Transformer
Start End
Transformer
Transformer
Transformer
Transformer
Start End
…
실험 방법
Distillation에서는 Loss를 설정하는 것이 중요하며, Loss에서 설정 할 수 있는 파라미터는
크게 T(Temperature), a(Alpha)이다.
Temperature가 높을수록 더 soft한 라벨에 학습이 되도록 하며, Alpha 값은 soft label의
Loss와 hard label의 Loss 중 어느 것을 더 많이 적용하여 학습할 것인지를 설정하는
Weight 값이다.
3
Loss 함수
연구 개요
본 실험에서 Distillation을 적용하는 방법으로 3가지로 분류하여 실험
을 진행하였다.
3
Distillation 방법
Soft Label
Training
Hard Label
Training
Soft Label
Training
Hard Label
Training
Soft Label
Training
Evaluation
Evaluation
Evaluation
a: 1.0
a: 0
a: 1.0
(1)
(2)
(3)
여기서 2번의 경우, Hard Label로 학습 할 때 학습률을 1e-5로 작게 설정하여 학습을 했다.
a: 0.5 a: 0.5
실험 결과 3
Distillation에 따른 결과
방법 T F1
1 2.5 88.68
2 2.5 88.71
3 2.5 88.31
1 3.5 89.75
2 3.5 89.89
3 3.5 88.95
1 5.0 89.12
2 5.0 89.45
3 5.0 88.93
실험 결과, T를 3.5로 설정하고
Soft Label로 학습한 후에 작은
학습률로 Hard Label로 학습한
방법의 성능이 가장 좋았다.
그 이유는 Soft Label을 얻는 과정에서
Vocab의 차이로 생기는 [UNK] 토큰으로
인한 노이즈가 영향이 있을 것이라고
생각한다.
(%, dev)
실험 결과 3
모델 변형에 따른 결과
모델 변형 F1
Original 88.21
concat 87.98
layer+ 88.25
concat + layer+ 88.32
단순하게 최종 레이어와 이전 2개의
레이어를 concat 했을 때는 기존보다
오히려 성능이 감소하는 것을 보였다.
추가적인 Transformer Layer를 붙였을
때는 성능이 오르긴 했지만 매우 적은
수준이였으며, Concat된 벡터에 추가적인
레이어를 붙였을 때는 소폭 성능이 상승했지만
더 많은 파라미터를 사용한 것에 비해
큰 상승이 존재하진 않았다
최종 레이어와 이전 레이어를 concat한 것을 conat, 추가적인 레이어를 추가한
것을 Layer+로 표기하였다.
실험 결과 3
모델 변형에 따른 결과
모델 변형 방법 F1
Original 1 88.75
concat 1 88.49
layer+ 1 88.97
concat + layer+ 1 89.32
Original 2 89.50
concat 2 89.27
layer+ 2 89.56
concat + layer+ 2 90.00
Distillation과 추가적인 레이어를 함께
적용했을 때는 기존보다 성능 상승의
폭이 좀 더 컸으나, 여전히 더 많은
파라미터를 사용하는 것이 비해 만족할
수준은 아니였다.
(%, dev, T=3.5)
결론 및 느낀점
Large Model을 Teacher Model로 설정하고 Knowledge Distillation을 적용하는 실험을
진행했다. 모델의 변형없이 적용했을 때 F1 1.3%의 향상을 보였다. Transformer의 최종 레
이어와 이전 레이어 2개를 concat하여 추가적인 레이어를 적용했을 때 F1 1.8% 향상되어
가장 높은 성능을 보였다.
교사와 학생 모델의 Vocab이 조금씩 다르다면 2번의 distillation 방법으로 노이즈로 인한
에러를 다소 감소 할 수 있을 것으로 생각된다. 또한 T의 경우 학생 모델의 Bias/Variance
의 영향도 존재했다.
(본 실험에서는 Variance가 높을수록 높은 T가 좋은 성능을 보였다)
3
결론 및 느낀점
이전 다른 실험에서 vocab이 완전히 같은 Mecab-base 모델과 Mecab-small 모델을
distillation 했을 때는 1번 distillation 방법이 가장 높은 성능을 보였었다. 또한 단순하게
모델을 변형하거나 입력을 그대로 사용하는 것이 아니라 추가적인 feature (개체명, 품사
등…)을 추가로 적용했을 때 distillation의 효과가 컸었다.
대회를 늦게 알게 되어서 촉박하게 준비하여 feature를 추가하여 모델을 학습해보지 못한
것이 많이 아쉬우며, 비록 대회는 끝났지만 이후에 모델을 학습하여 실제 성능을 평가해보
고자 한다.
좋은 대회를 통하여 전부터 미루고 있던 PyTorch를 빠르게 공부하여 사용해볼 수 있어서
좋았으며, 어렵게 생각했던 KorQuAD 제출을 직접 해볼 수 있어서 좋은 경험이었다.
3
참고 문헌 17
Sun, Siqi, et al. "Patient knowledge distillation for bert model
compression." arXiv preprint arXiv:1908.09355 (2019).
Turc, Iulia, et al. "Well-read students learn better: On the
importance of pre-training compact models." arXiv preprint
arXiv:1908.08962 (2019).
https://light-tree.tistory.com/196
https://jamiekang.github.io/2017/05/21/distilling-the-
knowledge-in-a-neural-network/
https://blog.lunit.io/2018/03/22/distilling-the-knowledge-in-a-
neural-network-nips-2014-workshop/
감사합니다

Mais conteúdo relacionado

Mais procurados

Transfer learning usage
Transfer learning usageTransfer learning usage
Transfer learning usageTae Young Lee
 
Improving Language Understanding by Generative Pre-Training
Improving Language Understanding by Generative Pre-TrainingImproving Language Understanding by Generative Pre-Training
Improving Language Understanding by Generative Pre-Trainingpko89403
 
carrier of_tricks_for_image_classification
carrier of_tricks_for_image_classificationcarrier of_tricks_for_image_classification
carrier of_tricks_for_image_classificationLEE HOSEONG
 
"Learning From Noisy Large-Scale Datasets With Minimal Supervision" Paper Review
"Learning From Noisy Large-Scale Datasets With Minimal Supervision" Paper Review"Learning From Noisy Large-Scale Datasets With Minimal Supervision" Paper Review
"Learning From Noisy Large-Scale Datasets With Minimal Supervision" Paper ReviewLEE HOSEONG
 
Machine Learning Foundations (a case study approach) 강의 정리
Machine Learning Foundations (a case study approach) 강의 정리Machine Learning Foundations (a case study approach) 강의 정리
Machine Learning Foundations (a case study approach) 강의 정리SANG WON PARK
 
Reinforcement learning
Reinforcement learningReinforcement learning
Reinforcement learningTae Young Lee
 
FixMatch: Simplifying Semi-Supervised Learning with Consistency and Confidence
FixMatch: Simplifying Semi-Supervised Learning with Consistency and ConfidenceFixMatch: Simplifying Semi-Supervised Learning with Consistency and Confidence
FixMatch: Simplifying Semi-Supervised Learning with Consistency and ConfidenceSungchul Kim
 
boosting 기법 이해 (bagging vs boosting)
boosting 기법 이해 (bagging vs boosting)boosting 기법 이해 (bagging vs boosting)
boosting 기법 이해 (bagging vs boosting)SANG WON PARK
 
Siamese neural networks for one shot image recognition paper explained
Siamese neural networks for one shot image recognition paper explainedSiamese neural networks for one shot image recognition paper explained
Siamese neural networks for one shot image recognition paper explainedtaeseon ryu
 
PR-203: Class-Balanced Loss Based on Effective Number of Samples
PR-203: Class-Balanced Loss Based on Effective Number of SamplesPR-203: Class-Balanced Loss Based on Effective Number of Samples
PR-203: Class-Balanced Loss Based on Effective Number of SamplesSunghoon Joo
 
"simple does it weakly supervised instance and semantic segmentation" Paper r...
"simple does it weakly supervised instance and semantic segmentation" Paper r..."simple does it weakly supervised instance and semantic segmentation" Paper r...
"simple does it weakly supervised instance and semantic segmentation" Paper r...LEE HOSEONG
 
Intriguing properties of contrastive losses
Intriguing properties of contrastive lossesIntriguing properties of contrastive losses
Intriguing properties of contrastive lossestaeseon ryu
 
Deep neural networks for You-Tube recommendations
Deep neural networks for You-Tube recommendationsDeep neural networks for You-Tube recommendations
Deep neural networks for You-Tube recommendationsseungwoo kim
 
통신사 고객 이탈분석
통신사 고객 이탈분석통신사 고객 이탈분석
통신사 고객 이탈분석DataScienceLab
 
악플분류 모델링 프로젝트
악플분류 모델링 프로젝트악플분류 모델링 프로젝트
악플분류 모델링 프로젝트DataScienceLab
 
13.앙상블학습
13.앙상블학습13.앙상블학습
13.앙상블학습Minchul Jung
 
"Google Vizier: A Service for Black-Box Optimization" Paper Review
"Google Vizier: A Service for Black-Box Optimization" Paper Review"Google Vizier: A Service for Black-Box Optimization" Paper Review
"Google Vizier: A Service for Black-Box Optimization" Paper ReviewLEE HOSEONG
 
PR-339: Maintaining discrimination and fairness in class incremental learning
PR-339: Maintaining discrimination and fairness in class incremental learningPR-339: Maintaining discrimination and fairness in class incremental learning
PR-339: Maintaining discrimination and fairness in class incremental learningSunghoon Joo
 
Automated program corrector for programming assignments using Deep Learning
Automated program corrector for programming assignments using Deep LearningAutomated program corrector for programming assignments using Deep Learning
Automated program corrector for programming assignments using Deep LearningSoo Kim
 

Mais procurados (20)

Transfer learning usage
Transfer learning usageTransfer learning usage
Transfer learning usage
 
Improving Language Understanding by Generative Pre-Training
Improving Language Understanding by Generative Pre-TrainingImproving Language Understanding by Generative Pre-Training
Improving Language Understanding by Generative Pre-Training
 
carrier of_tricks_for_image_classification
carrier of_tricks_for_image_classificationcarrier of_tricks_for_image_classification
carrier of_tricks_for_image_classification
 
"Learning From Noisy Large-Scale Datasets With Minimal Supervision" Paper Review
"Learning From Noisy Large-Scale Datasets With Minimal Supervision" Paper Review"Learning From Noisy Large-Scale Datasets With Minimal Supervision" Paper Review
"Learning From Noisy Large-Scale Datasets With Minimal Supervision" Paper Review
 
Machine Learning Foundations (a case study approach) 강의 정리
Machine Learning Foundations (a case study approach) 강의 정리Machine Learning Foundations (a case study approach) 강의 정리
Machine Learning Foundations (a case study approach) 강의 정리
 
Reinforcement learning
Reinforcement learningReinforcement learning
Reinforcement learning
 
FixMatch: Simplifying Semi-Supervised Learning with Consistency and Confidence
FixMatch: Simplifying Semi-Supervised Learning with Consistency and ConfidenceFixMatch: Simplifying Semi-Supervised Learning with Consistency and Confidence
FixMatch: Simplifying Semi-Supervised Learning with Consistency and Confidence
 
boosting 기법 이해 (bagging vs boosting)
boosting 기법 이해 (bagging vs boosting)boosting 기법 이해 (bagging vs boosting)
boosting 기법 이해 (bagging vs boosting)
 
Siamese neural networks for one shot image recognition paper explained
Siamese neural networks for one shot image recognition paper explainedSiamese neural networks for one shot image recognition paper explained
Siamese neural networks for one shot image recognition paper explained
 
PR-203: Class-Balanced Loss Based on Effective Number of Samples
PR-203: Class-Balanced Loss Based on Effective Number of SamplesPR-203: Class-Balanced Loss Based on Effective Number of Samples
PR-203: Class-Balanced Loss Based on Effective Number of Samples
 
"simple does it weakly supervised instance and semantic segmentation" Paper r...
"simple does it weakly supervised instance and semantic segmentation" Paper r..."simple does it weakly supervised instance and semantic segmentation" Paper r...
"simple does it weakly supervised instance and semantic segmentation" Paper r...
 
Intriguing properties of contrastive losses
Intriguing properties of contrastive lossesIntriguing properties of contrastive losses
Intriguing properties of contrastive losses
 
Deep neural networks for You-Tube recommendations
Deep neural networks for You-Tube recommendationsDeep neural networks for You-Tube recommendations
Deep neural networks for You-Tube recommendations
 
통신사 고객 이탈분석
통신사 고객 이탈분석통신사 고객 이탈분석
통신사 고객 이탈분석
 
악플분류 모델링 프로젝트
악플분류 모델링 프로젝트악플분류 모델링 프로젝트
악플분류 모델링 프로젝트
 
광고 CTR 예측
광고 CTR 예측광고 CTR 예측
광고 CTR 예측
 
13.앙상블학습
13.앙상블학습13.앙상블학습
13.앙상블학습
 
"Google Vizier: A Service for Black-Box Optimization" Paper Review
"Google Vizier: A Service for Black-Box Optimization" Paper Review"Google Vizier: A Service for Black-Box Optimization" Paper Review
"Google Vizier: A Service for Black-Box Optimization" Paper Review
 
PR-339: Maintaining discrimination and fairness in class incremental learning
PR-339: Maintaining discrimination and fairness in class incremental learningPR-339: Maintaining discrimination and fairness in class incremental learning
PR-339: Maintaining discrimination and fairness in class incremental learning
 
Automated program corrector for programming assignments using Deep Learning
Automated program corrector for programming assignments using Deep LearningAutomated program corrector for programming assignments using Deep Learning
Automated program corrector for programming assignments using Deep Learning
 

Semelhante a Enliple korquad challenge

위성관측 데이터 활용 강수량 산출 AI 경진대회 1위 수상작
위성관측 데이터 활용 강수량 산출 AI 경진대회 1위 수상작위성관측 데이터 활용 강수량 산출 AI 경진대회 1위 수상작
위성관측 데이터 활용 강수량 산출 AI 경진대회 1위 수상작DACON AI 데이콘
 
프로젝트 Xxx에 적용하고 싶은 개발방법
프로젝트 Xxx에 적용하고 싶은 개발방법프로젝트 Xxx에 적용하고 싶은 개발방법
프로젝트 Xxx에 적용하고 싶은 개발방법도형 임
 
Devon 2011-b-5 효과적인 레거시 코드 다루기
Devon 2011-b-5 효과적인 레거시 코드 다루기Devon 2011-b-5 효과적인 레거시 코드 다루기
Devon 2011-b-5 효과적인 레거시 코드 다루기Daum DNA
 
Denoising auto encoders(d a)
Denoising auto encoders(d a)Denoising auto encoders(d a)
Denoising auto encoders(d a)Tae Young Lee
 
Chapter 11 Practical Methodology
Chapter 11 Practical MethodologyChapter 11 Practical Methodology
Chapter 11 Practical MethodologyKyeongUkJang
 
지혜의 공간 10호
지혜의 공간 10호지혜의 공간 10호
지혜의 공간 10호Seon Hong Kim
 
Refactoring tutorial
Refactoring tutorialRefactoring tutorial
Refactoring tutorialBingu Shim
 
Legacy code refactoring video rental system
Legacy code refactoring   video rental systemLegacy code refactoring   video rental system
Legacy code refactoring video rental systemJaehoon Oh
 
DevRookie 리펙터링.pptx
DevRookie 리펙터링.pptxDevRookie 리펙터링.pptx
DevRookie 리펙터링.pptxMUUMUMUMU
 
2021-11-16 모두콘 딥러닝 경량화 발표
2021-11-16 모두콘 딥러닝 경량화 발표2021-11-16 모두콘 딥러닝 경량화 발표
2021-11-16 모두콘 딥러닝 경량화 발표JongkukLim
 
초보개발자의 TDD 체험기
초보개발자의 TDD 체험기초보개발자의 TDD 체험기
초보개발자의 TDD 체험기Sehun Kim
 
Clean code chapter9
Clean code chapter9Clean code chapter9
Clean code chapter9ukjinkwoun
 
Image Deep Learning 실무적용
Image Deep Learning 실무적용Image Deep Learning 실무적용
Image Deep Learning 실무적용Youngjae Kim
 
Refactoring tutorial 1주차[refactoring 개요]
Refactoring tutorial 1주차[refactoring 개요]Refactoring tutorial 1주차[refactoring 개요]
Refactoring tutorial 1주차[refactoring 개요]bbongcsu
 
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)SangIn Choung
 
코드 테스트와 커버리지 관련 설문 및 개선계획수립 in 2018
코드 테스트와 커버리지 관련 설문 및 개선계획수립 in 2018코드 테스트와 커버리지 관련 설문 및 개선계획수립 in 2018
코드 테스트와 커버리지 관련 설문 및 개선계획수립 in 2018SangIn Choung
 

Semelhante a Enliple korquad challenge (18)

위성관측 데이터 활용 강수량 산출 AI 경진대회 1위 수상작
위성관측 데이터 활용 강수량 산출 AI 경진대회 1위 수상작위성관측 데이터 활용 강수량 산출 AI 경진대회 1위 수상작
위성관측 데이터 활용 강수량 산출 AI 경진대회 1위 수상작
 
PaLM Paper Review
PaLM Paper ReviewPaLM Paper Review
PaLM Paper Review
 
프로젝트 Xxx에 적용하고 싶은 개발방법
프로젝트 Xxx에 적용하고 싶은 개발방법프로젝트 Xxx에 적용하고 싶은 개발방법
프로젝트 Xxx에 적용하고 싶은 개발방법
 
Devon 2011-b-5 효과적인 레거시 코드 다루기
Devon 2011-b-5 효과적인 레거시 코드 다루기Devon 2011-b-5 효과적인 레거시 코드 다루기
Devon 2011-b-5 효과적인 레거시 코드 다루기
 
Denoising auto encoders(d a)
Denoising auto encoders(d a)Denoising auto encoders(d a)
Denoising auto encoders(d a)
 
Chapter 11 Practical Methodology
Chapter 11 Practical MethodologyChapter 11 Practical Methodology
Chapter 11 Practical Methodology
 
지혜의 공간 10호
지혜의 공간 10호지혜의 공간 10호
지혜의 공간 10호
 
Refactoring tutorial
Refactoring tutorialRefactoring tutorial
Refactoring tutorial
 
Legacy code refactoring video rental system
Legacy code refactoring   video rental systemLegacy code refactoring   video rental system
Legacy code refactoring video rental system
 
DevRookie 리펙터링.pptx
DevRookie 리펙터링.pptxDevRookie 리펙터링.pptx
DevRookie 리펙터링.pptx
 
2021-11-16 모두콘 딥러닝 경량화 발표
2021-11-16 모두콘 딥러닝 경량화 발표2021-11-16 모두콘 딥러닝 경량화 발표
2021-11-16 모두콘 딥러닝 경량화 발표
 
초보개발자의 TDD 체험기
초보개발자의 TDD 체험기초보개발자의 TDD 체험기
초보개발자의 TDD 체험기
 
Clean code chapter9
Clean code chapter9Clean code chapter9
Clean code chapter9
 
Image Deep Learning 실무적용
Image Deep Learning 실무적용Image Deep Learning 실무적용
Image Deep Learning 실무적용
 
Refactoring tutorial 1주차[refactoring 개요]
Refactoring tutorial 1주차[refactoring 개요]Refactoring tutorial 1주차[refactoring 개요]
Refactoring tutorial 1주차[refactoring 개요]
 
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
 
GoogLenet
GoogLenetGoogLenet
GoogLenet
 
코드 테스트와 커버리지 관련 설문 및 개선계획수립 in 2018
코드 테스트와 커버리지 관련 설문 및 개선계획수립 in 2018코드 테스트와 커버리지 관련 설문 및 개선계획수립 in 2018
코드 테스트와 커버리지 관련 설문 및 개선계획수립 in 2018
 

Último

(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?Jay Park
 
데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법JMP Korea
 
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP Korea
 
공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화JMP Korea
 
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP Korea
 
JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP Korea
 
JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP Korea
 
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석JMP Korea
 

Último (8)

(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
 
데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법
 
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
 
공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화
 
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
 
JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!
 
JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례
 
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
 

Enliple korquad challenge

  • 1. Enliple배 언어모델 튜닝 대회 KorQuAD 1.0 모델 학습 및 튜닝 부산대학교 전기전자컴퓨터공학과 조상현(delosycho@gmail.com)
  • 2. 목차 참가 배경 제약 사항 실험 방법 실험 결과 결론 및 느낀점 2
  • 3. 참가 배경 KorQuAD 2.0 페이지를 접속하다가 업데이트 된 배너를 발견하게 되 었고 늦게나마 대회에 참가하게 되었다 3 조금만 더 일찍 봤다면 ㅠㅠ
  • 4. 제약 사향 이번 대회의 모델 튜닝을 위한 제약 사항은 다음과 같았다 - 모델 학습을 위한 짧은 준비기간 - 대회에서 제공되는 경량화 모델을 이용(12 Layer, 256 Hidden Size) 이전에는 Tensorflow만을 실험에 사용해왔기에 짧은 시간으로 모델을 튜닝하 고 다양한 하이퍼 파라미터를 돌려보기에는 시간이 빠듯했다 그렇기에 성능을 높이는 것 보다는 현재 상황에서 해볼 수 있는 실험이 무엇인 가 고민을 하게 되었다 3
  • 5. 제약 사향 대회에서 함께 제공되는 Large 모델의 경우 너무 많은 GPU Memory를 요구하 기 때문에 직접 학습을 시켜볼 엄두를 내지 못하였다. 그러던 중 대회 소스코드를 제공하는 Github에서 감사하게도 KorQuAD 1.0에 학습을 시킨 Large 모델을 함께 배포하는 것을 보았고, 기왕이면 모두 활용하 면 좋겠다고 생각하여, Large Model을 Teacher Model로 설정하여 대회 참가 를 위한 모델에 Knowledge Distillation을 적용하는 방향으로 성능을 개선해보 기로 하였다. 3 Kor_pretrain_LM 깃헙
  • 6. 제약 사향 본 대회를 위해 튜닝한 부분 -distillation을 위한 Loss 변형 -Large Model에서 soft label 생성 대회에서 제공된 부분을 그대로 사용 -KorQuAD 데이터 전처리 및 정답추론 (Random Seed는 기본 코드에서 설정된 값을 그대로 사용하였다) 3
  • 7. 실험 방법 우선 Distillation을 위한 Soft Label을 얻기 위해 학습 데이터에 Large Model을 실행시키 고 출력 값을 Numpy로 저장하였다. Tokenizing은 Large 모델의 Vocab을 사용하는 Tokenizer를 이용하였으며, Token을 ids 로 convert할 때에는 Large와 Small 두 모델의 Vocab을 모두 이용하여 각각 저장하도록 하였다. 저장되어야 할 데이터 목록은 아래와 같다. - Start/End Soft Label - Start/End Hard Label - Segments, Mask - Token ids(Large Model Vocab), Token ids(Small Model Vocab) 3
  • 8. 실험 방법 Large Model과 Small Model의 Vocab은 구성에 차이가 존재하기 때문에 Bert_Tokenizer로 토큰화를 했 을 때 다른 결과가 나온다. 그리고 이로 인해서 다른 Vocab의 Tokenizer에서 생성된 토큰에 convert_tokens_to_ids 함수를 적용하 면 vocab의 차이로 인해서 [UNK] 토큰이 생기는 경우가 생긴다. (paragraph당 2~3개 토큰) 이를 노이즈로 생각하고 실험을 진행해보았고 평가 결과, 이로 인한 문제가 성능에 큰 하락을 일으키진 않 았다. 예문: “김철수와 김영희는 부리나케 집으로 갔다” Samll Model Tokenizer: ['김', '##철수', '##와', '김영', '##희', '##는', '부리', '##나', '##케', '집', '##으로', '갔', '##다'] Large Model Tokenizer: ['김철', '##수', '##와', '김영희', '##는', '부리', '##나', '##케', '집', '##으로', '갔', '##다'] 3 Tokenizing 과정에서의 문제
  • 9. 실험 방법 모델의 경우, 큰 변형은 하지 않고 이전 히든 레이어를 활용하거나, 추가적인 Transformer 레이어를 추가하는 등의 변형을 적용해보았다. 3 모델 변형 Transformer Transformer Transformer Transformer … … Transformer Concat Hidden Start End Transformer Transformer Transformer … … Concat Hidden Transformer Start End Transformer Transformer Transformer Transformer Start End …
  • 10. 실험 방법 Distillation에서는 Loss를 설정하는 것이 중요하며, Loss에서 설정 할 수 있는 파라미터는 크게 T(Temperature), a(Alpha)이다. Temperature가 높을수록 더 soft한 라벨에 학습이 되도록 하며, Alpha 값은 soft label의 Loss와 hard label의 Loss 중 어느 것을 더 많이 적용하여 학습할 것인지를 설정하는 Weight 값이다. 3 Loss 함수
  • 11. 연구 개요 본 실험에서 Distillation을 적용하는 방법으로 3가지로 분류하여 실험 을 진행하였다. 3 Distillation 방법 Soft Label Training Hard Label Training Soft Label Training Hard Label Training Soft Label Training Evaluation Evaluation Evaluation a: 1.0 a: 0 a: 1.0 (1) (2) (3) 여기서 2번의 경우, Hard Label로 학습 할 때 학습률을 1e-5로 작게 설정하여 학습을 했다. a: 0.5 a: 0.5
  • 12. 실험 결과 3 Distillation에 따른 결과 방법 T F1 1 2.5 88.68 2 2.5 88.71 3 2.5 88.31 1 3.5 89.75 2 3.5 89.89 3 3.5 88.95 1 5.0 89.12 2 5.0 89.45 3 5.0 88.93 실험 결과, T를 3.5로 설정하고 Soft Label로 학습한 후에 작은 학습률로 Hard Label로 학습한 방법의 성능이 가장 좋았다. 그 이유는 Soft Label을 얻는 과정에서 Vocab의 차이로 생기는 [UNK] 토큰으로 인한 노이즈가 영향이 있을 것이라고 생각한다. (%, dev)
  • 13. 실험 결과 3 모델 변형에 따른 결과 모델 변형 F1 Original 88.21 concat 87.98 layer+ 88.25 concat + layer+ 88.32 단순하게 최종 레이어와 이전 2개의 레이어를 concat 했을 때는 기존보다 오히려 성능이 감소하는 것을 보였다. 추가적인 Transformer Layer를 붙였을 때는 성능이 오르긴 했지만 매우 적은 수준이였으며, Concat된 벡터에 추가적인 레이어를 붙였을 때는 소폭 성능이 상승했지만 더 많은 파라미터를 사용한 것에 비해 큰 상승이 존재하진 않았다 최종 레이어와 이전 레이어를 concat한 것을 conat, 추가적인 레이어를 추가한 것을 Layer+로 표기하였다.
  • 14. 실험 결과 3 모델 변형에 따른 결과 모델 변형 방법 F1 Original 1 88.75 concat 1 88.49 layer+ 1 88.97 concat + layer+ 1 89.32 Original 2 89.50 concat 2 89.27 layer+ 2 89.56 concat + layer+ 2 90.00 Distillation과 추가적인 레이어를 함께 적용했을 때는 기존보다 성능 상승의 폭이 좀 더 컸으나, 여전히 더 많은 파라미터를 사용하는 것이 비해 만족할 수준은 아니였다. (%, dev, T=3.5)
  • 15. 결론 및 느낀점 Large Model을 Teacher Model로 설정하고 Knowledge Distillation을 적용하는 실험을 진행했다. 모델의 변형없이 적용했을 때 F1 1.3%의 향상을 보였다. Transformer의 최종 레 이어와 이전 레이어 2개를 concat하여 추가적인 레이어를 적용했을 때 F1 1.8% 향상되어 가장 높은 성능을 보였다. 교사와 학생 모델의 Vocab이 조금씩 다르다면 2번의 distillation 방법으로 노이즈로 인한 에러를 다소 감소 할 수 있을 것으로 생각된다. 또한 T의 경우 학생 모델의 Bias/Variance 의 영향도 존재했다. (본 실험에서는 Variance가 높을수록 높은 T가 좋은 성능을 보였다) 3
  • 16. 결론 및 느낀점 이전 다른 실험에서 vocab이 완전히 같은 Mecab-base 모델과 Mecab-small 모델을 distillation 했을 때는 1번 distillation 방법이 가장 높은 성능을 보였었다. 또한 단순하게 모델을 변형하거나 입력을 그대로 사용하는 것이 아니라 추가적인 feature (개체명, 품사 등…)을 추가로 적용했을 때 distillation의 효과가 컸었다. 대회를 늦게 알게 되어서 촉박하게 준비하여 feature를 추가하여 모델을 학습해보지 못한 것이 많이 아쉬우며, 비록 대회는 끝났지만 이후에 모델을 학습하여 실제 성능을 평가해보 고자 한다. 좋은 대회를 통하여 전부터 미루고 있던 PyTorch를 빠르게 공부하여 사용해볼 수 있어서 좋았으며, 어렵게 생각했던 KorQuAD 제출을 직접 해볼 수 있어서 좋은 경험이었다. 3
  • 17. 참고 문헌 17 Sun, Siqi, et al. "Patient knowledge distillation for bert model compression." arXiv preprint arXiv:1908.09355 (2019). Turc, Iulia, et al. "Well-read students learn better: On the importance of pre-training compact models." arXiv preprint arXiv:1908.08962 (2019). https://light-tree.tistory.com/196 https://jamiekang.github.io/2017/05/21/distilling-the- knowledge-in-a-neural-network/ https://blog.lunit.io/2018/03/22/distilling-the-knowledge-in-a- neural-network-nips-2014-workshop/