본문 바로가기

Contents77

[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.
[경량화 패키지] TextBrewer란? Simple info of Textbrewer lib. 💡 모델 경량화를 위한 함수를 제공해주는 scripts BERT 모델 뿐만 아니라 다양한 모델(ex. GPT, LSTM, etc...) 경량화 가능 Teacher & Student 모델 구조가 달라도 경량화 가능 (ex. Teacher: BERT, Student: LSTM) 다양한 loss function이 있고 사용자가 loss를 append할 수 있도록 코드 구성 Workflow Stage 1: Preparation: 교사 모델 선택 학생 모델 정의 학습 준비 (데이터, optim, lr_scheduler, etc...) Stage 2: Distillation with TextBrewer: TraningConfig 및 DistillationCon.. 2022. 6. 17.
반응형