기본 콘텐츠로 건너뛰기

라벨이 distilbert인 게시물 표시

DistilBERT 기반 클래스들의 작업 유형 정리

DistilBERT 기반 클래스들의 작업 유형 정리 허깅 페이스의 Transformers 라이브러리는 DistilBERT 모델을 기반으로 구체적인 작업을 수행하도록 구현한 클래스들을 제공합니다. 이 문서에서는 이들의 작업 유형, 출력층, 그리고 손실함수들을 표로 정리하였습니다. 작업 구현 클래스 1. DistilBertForMaskedLM 작업 유형 출력층 손실함수 빈 칸의 단어 맞추기 vocab_transform activation vocab_layer_norm vocab_projector nn.CrossEntropyLoss 2. DistilBertForSequenceClassification 작업 유형 출력층 손실함수 점수 매기기 (예: 호감도) pre_classifer dropout classifer nn.MSELoss 한 개의 라벨 할당 (예: 감정 분석) pre_classifer dropout classifer nn.CrossEntropyLoss 여러 개의 라벨 할당 (예: 문서 태깅) pre_classifer dropout classifer nn.BCEWithLogitsLoss 3. DistilBertForTokenClassification 작업 유형 출력층 손실함수 토큰 분류 (예: 품사 태깅) dropout classifier nn.CrossEntropyLoss 4. DistilBertForQuestionAnswering 작업 유형 출력층 손실함수 추출적 질의응답 (지문에서 답 찾기) dropout qa_outputs nn.CrossEntropyLoss 5. DistilBertForMultipleChoice 작업 유형 출력층 손실함수 객관식 문제 풀이 pre_classifer dropout classifer nn.CrossEntropyLos...

DistilBERT + KorQuAD MLM 훈련 소요 시간 비교 (RTX 4090, T4, A100)

DistilBERT + KorQuAD MLM 훈련 소요 시간 비교 (RTX 4090, T4, A100) 개요 BERT 계열 언어 모델 중 하나인 DistilBERT( 논문 )로 미세 조정 훈련을 수행할 때 NVIDIA GPU 모델에 따라 훈련에 걸리는 시간이 어떻게 달라지는지 궁금했습니다. 실험에 사용한 모델과 데이터셋은 다음과 같습니다. 기본 모델: distilbert-base-multilingual-cased 데이터셋: KorQuAD 1.0 미세 조정 훈련은 아래의 작업을 목표로 하였습니다. Masked Language Model (MLM) (참고: Fine-tuning a masked language model ) 그리고 훈련 소요 시간 비교를 위해 사용한 NVIDIA GPU 모델은 아래 표와 같습니다. 모델 CUDA 코어 수 Tensor 코어 수 메모리 출시 시점 실험 머신 유형 RTX 4090 16,384개 512개 (4세대) 24GB GDDR6X 2022년 데스크톱 PC T4 2,560개 320개 (2세대) 16GB GDDR6 2018년 GCP의 VM 인스턴스 A100 (40GB 기준) 6,912개 432개 (3세대) 40GB HBM2 2020년 GCP의 VM 인스턴스 RTX 4090은 PC에 장착된 것으로, T4와 A100은 GCP의 VM 인스턴스에 연결된 것으로 사용해서 환경의 차이가 있고, 또한 소요 시간에 영향을 미치는 다른 요인들도 있긴 하지만 GPU 간 소요 시간 차이를 대략적으로 확인하는 데에는 중요한 요소가 아닌 것으로 간주하였습니다. 실험 결과 실험을 위해 사용한 파이썬 스크립트 파일은 여기 에 있습니다. 사전 작업: 파이썬 패키지 설치: pip install datasets transformers accelerate 스크립트 소스 코드에서 epochs 수정: epochs = 4.0 model....