본문 바로가기

python22

[Code review] Sentence-Transformers 상세 기능 Sentence-Transformers (UKPlab) Sentence embedding 관련 패키지 리서치 중 Sentence-Transformers Github 코드를 자세히 살펴볼 기회가 생겼다. 해당 패키지의 구조부터 자세한 상세 기능, 그리고 BERT 모델 사용 시 HuggingFace Transformers 와의 호환성까지 살펴보려 한다. Gihub Link Documents Link Sentence-Transformers > Loss BatchAllTripletLoss BatchHardSoftMarginTripletLoss BatchHardTripletLoss BatchSemiHardTripletLoss ContrastiveLoss 두 emb. vector 간 거리(유클리드, 코사인, 맨하탄.. 2022. 7. 8.
[Code review] Sentence-Transformers 검증 및 예측 Process Sentence-Transformers (UKPlab) Sentence embedding 관련 패키지 리서치 중 Sentence-Transformers Github 코드를 자세히 살펴볼 기회가 생겼다. 해당 패키지의 구조부터 자세한 상세 기능, 그리고 BERT 모델 사용 시 HuggingFace Transformers 와의 호환성까지 살펴보려 한다. Gihub Link Documents Link Sentence-Transformers > eval process Data read - Eval datasets format에 맞춰 read Model load - Sentence_Transformers로 학습된 모델 불러오기 - 만약 Sentence_Transformers로 학습되지 않았다면 Eval 불가능 E.. 2022. 7. 6.
[Code review] Sentence-Transformers 학습 Process Sentence-Transformers (UKPlab) Sentence embedding 관련 패키지 리서치 중 Sentence-Transformers Github 코드를 자세히 살펴볼 기회가 생겼다. 해당 패키지의 구조부터 자세한 상세 기능, 그리고 BERT 모델 사용 시 HuggingFace Transformers 와의 호환성까지 살펴보려 한다. Gihub Link Documents Link Sentence-Transformers > train process DataLoader - InputExample class 사용하여 생성 - 생성한 객체를 list로 감싼 뒤, PyTorch DataLoader에 인자로 넣어 사용 Model definition - models 폴더에서 model 구조 선택 - .. 2022. 7. 5.
[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.
반응형