본문 바로가기

Contents61

[논문 리뷰] Distilling Linguistic Context for Language Model Compression 목적 💡 기존의 경량화는 단어 간 관계를 고려하지 않았고 단어가 model의 encoder layer를 통과하며 어떻게 변화하는지도 고려하지 않았음 기존 경량화: 단순히 학생 모델이 선생 모델의 weight를 따라가도록, logit 값을 따라가도록 학습 본 논문: logit 값을 따라갈 뿐만 아니라 단어 간 관계 및 단어가 encoder layer를 통과하며 어떻게 변하는지도 고려해서 학습 실험 방법 Model: Google’s Multi-lingual-BERT model Pre-train BERT 모델에 Distillation하여 경량화 된 BERT모델을 만들고 각 task datasets을 이용한 Fine-tuning 후 성능 비교 Pre-train distillation datasets: Engli.. 2022. 6. 23.
Knowledge Tracing datasets 데이터 이름 문제를 푼 수 학생 수 유형 수 nan 유형 ASSIST2009 401,756 개 4,217 명 110 skill_name 변수 = nan ASSIST2012 1,371,935 개 43,881 명 262 skill_id 변수 = nan ASSIST2015 708,631 개 19,917 명 100 sequence_id 변수에는 nan 없음 ASSIST2017 273,248 개 382 명 101 skill 변수에는 nan 없음 EdNet 131,441,538 개 784,309 명 188 EdNet/contents/questions.csv 데이터에서 tag 변수 = ‘-1’ 값이 nan Knowledge Tracing: A Survey paper link EduData repository →교육 .. 2022. 6. 23.
[SAINT+] Integrating Temporal Features for EdNet Correctness Prediction Riiid AI Research team 2021년 2월 1일 논문 발간 Overview 💡 SAINT와 거의 유사하지만 추가적인 정보(input data)가 더 들어가 성능을 약 1% 향상시킴 SAINT 모델 Overview와 같은 내용 SAINT 모델 이전에 어텐센을 적용한 모델(ex. SAKT model)은 input 데이터(ex. IRT)의 복잡한 관계를 반영하지 못했다. SAINT 모델은 input 데이터의 적절한 활용을 제안하여 EdNet 데이터 셋(=KT 모델 관련 밴치마크 데이터셋)에 대해 좋은 성능을 보였다. SAINT 모델이 input 데이터를 활용하는 방법은 다음과 같다. Encoder-Decoder transformer architecture 사용 인코더에서 문제 관련된 정보를 사용.. 2022. 6. 23.
[SAINT] Towards an Appropriate Query, Key, and Value Computation for Knowledge Tracing Riiid AI Research team 2020년 2월 14일 논문 발간 Overview 💡 어떤 학생이 문제를 푼 히스토리가 주어졌을 때, 모델은 새로운 문제를 학생이 맞출지 여부를 예측. 이때 모델(SAINT)은 transformer의 self-attention을 활용한다. SAINT 모델 이전에 어텐센을 적용한 모델(ex. SAKT model)은 input 데이터(ex. IRT)의 복잡한 관계를 반영하지 못했다. SAINT 모델은 input 데이터의 적절한 활용을 제안하여 EdNet 데이터 셋(=KT 모델 관련 밴치마크 데이터셋)에 대해 좋은 성능을 보였다. SAINT 모델이 input 데이터를 활용하는 방법은 다음과 같다. Encoder-Decoder transformer architecture.. 2022. 6. 23.
[SAKT] A Self-Attentive model for Knowledge Tracing 미네소타 대학 2019년 7월 16일 논문 발간 Overview 💡 Transformer의 attention mechanism에 착안하여, 학생의 과거 학습 기록과 주어진 문제간의 연관성을 계산하여 정오답을 예측하는 모델. - Knowledge concepts 간의 연관성을 이용 정오답을 예측하고자 하는 문제는 이전에 풀었던 문제들과 연관성을 고려하여 예측 가정: 5번 문제를 맞췄는지, 틀렸는지 예측하고자 할 때, 이전에 풀었던 문제들 중 4번 문제 및 2번 문제와 연관성이 크기 때문에 5번 문제에 대한 정오답 여부는 4번 문제와 2번 문제의 정오답 여부와 관련이 클 것이다. 이러한 개념을 Knowledge Concepts(a.k.a KCs)라고 함. SAKT 💡 Deep Knowledge Tracing.. 2022. 6. 22.
[창시모] Functools 의 Partial 이란? 출처: hamait 님의 tistory 모든 창작의 시작은 모방(a.k.a 창시모) 원본 글은 여기( link )를 참고하길 바란다. functools.partial 설명 하나 이상의 인수가 이미 채워진 함수의 새 버전을 만들기 위해 사용된다. 함수의 새 버전은 그 자체를 기술 하고 있다. Example 첫째, 지수를 명시적으로 수행하는 함수를 만든다고 하자. (파이썬의 내장된 pow () 함수와 비슷하다) def power(base, exponent): return base ** exponent 이제 정해진 지수 2와 3을 갖는 전용 사각형 및 큐브 함수를 원한다면 어떻게 될까? 이때 우리는 다음과 같이 할 수 있을 것이다. def square(base): return power(base, 2) def.. 2022. 6. 21.
[창시모] Pytorch Multi-GPU 정리 출처: better-tomorrow 님의 tistory 모든 창작의 시작은 모방(a.k.a 창시모)에서 나온다고 했었나..? 예전부터 Multi-GPU 용어 관련 정리를 해야겠다 생각했는데 마침 잘 정리된 글이 있어 모방한다. (말이 모방이지 사실 복붙이다...) 원본 글은 여기( link )를 참고하길 바란다. 용어 노드(node): 분산 처리에서는 GPU가 달려 있는 machine을 node라는 용어로 지칭 컴퓨터가 한 대 이면 node 1, 컴퓨터가 두 대 이면 node 2 World Size: 작업에 사용되는 프로세스들의 개수 (즉, 분산 처리에서 사용할 총 gpu 개수) RANK: Rank는 Data Distributed Parallel에서 가동되는 process ID Global Rank: 전.. 2022. 6. 20.
[경량화 패키지] TextBrewer 사용 후기 ※ Disiller.train() 🤔 TextBrewer를 사용한 경량화 학습 시 train 메서드의 인자는 다음과 같다. optimizer : 옵티마이저 dataloader : 데이터 로더 using PyTorch num_epochs : 학습할 epoch 설정 num_steps : 학습할 step 설정 callback : 학생 모델 검증 함수 batch_postprocessor : 후처리 (굳이 설정 안 해줘도 됨) scheduler_class : textbrewer에 있는 scheduler 함수 scheduler_args : scheduler_class 설정 용도 scheduler : 무시 max_grad_norm : gradient vanishing 방지를 위한 설정 🚫 주의 사항 num_steps.. 2022. 6. 17.
[경량화 패키지] TextBrewer 학습 Process Total loss 정의 KD loss : Knowledge Distillation loss로 학생 모델의 logits이 교사 모델의 logits 분포를 따라가도록 학습 HL loss : Hard Label로 학생 모델의 logits이 groud truth of label을 따라가도록 학습 Intermediate_losses : 학생 모델의 encoder layer 분포가 교사 모델의 encoder layer 분포를 따라가도록 학습 다양한 기능 제공 > 자세한 사항은 textbrewer docs 참고 KD loss 관련 기능 KD loss weight 설정 temperature 관련 Parameters loss type 관련 Parameters HL loss 관련 기능 (+ Inermediate_loss.. 2022. 6. 17.
[경량화 패키지] TextBrewer scripts info. Main scripts 🗂️TextBrewer |-🗂️src |-🗂️textbrewer |-📄configurations.py # teacher model 기반으로 Student model initial weight 값 설정 # DistillationConfig 의 input 으로 들어감 -IntermediateMatch(type:class) |-📄configurations.py # knowledge distillation 학습을 위한 hyperparameters setting -DistillationConfig(type:class) # distiller define & train script 나열(?)된 script |-📄distillers.py |-📄distiller_general.py -General.. 2022. 6. 17.
반응형