PyTorch 예비 훈련 Bert 모델 의 예시

본 고 는 다음 과 같은 내용 을 소개 한다.
1.transformers 프레임 워 크 를 사용 하여 예비 훈련 을 하 는 bert-base 모델;
2.개발 플랫폼 은 구 글 의 Colab 플랫폼 을 사용 하고 성 매수 GPU 를 가속 화 합 니 다.
3.datasets 모듈 을 사용 하여 IMDB 영상 평가 데 이 터 를 훈련 데이터 로 다운로드 합 니 다.
트랜스 포 머 모듈 안내
transformers 프레임 워 크 는 Huggingface 오픈 소스 의 깊이 있 는 학습 프레임 워 크 로 거의 모든 Transformer 구조의 예비 훈련 모델 을 지원 합 니 다.사용 이 매우 편리 하 다.본 고 는 이 구 조 를 바탕 으로 예비 훈련 모델 의 사용 을 시도 하고 간단 하고 사용 하기 쉽다.
bert-large 모델 을 미리 훈련 하려 고 했 는데 colab 에 GPU 메모리 가 부족 해서 base 버 전 만 사용 할 수 있 었 습 니 다.colab 를 열 고 GPU 가속 을 설정 한 다음 코드 를 소개 합 니 다.
코드 구현
우선 데이터 다운로드 모듈 과 transformers 패 키 지 를 설치 합 니 다.

pip install datasets
pip install transformers
datasets 를 사용 하여 IMDB 데 이 터 를 다운로드 하고 DatasetDict 형식의 데 이 터 를 되 돌려 줍 니 다.되 돌아 오 는 데 이 터 는 텍스트 형식 이 므 로 인 코딩 이 필요 합 니 다.다음은 tokenizer 를 사용 하여 인 코딩 을 진행 합 니 다.

from datasets import load_dataset

imdb = load_dataset('imdb')
print(imdb['train'][:3]) #    3     
다음은 tokenizer 와 모델 을 불 러 옵 니 다.transformers 에서 AutoModel ForSequence Classification,AutoTokenizer 를 가 져 와 모델 과 tokenizer 를 만 듭 니 다.

from transformers import AutoModelForSequenceClassification, AutoTokenizer

model_checkpoint = "bert-base-uncased"

tokenizer = AutoTokenizer.from_pretrained(model_checkpoint)
model = AutoModelForSequenceClassification.from_pretrained(model_checkpoint, num_labels=2)
원본 데 이 터 를 인 코딩 하고 일괄(batch)

def preprocessing_func(examples):
  return tokenizer(examples['text'], 
           padding=True,
           truncation=True, max_length=300)

batch_size = 16

encoded_data = imdb.map(preprocessing_func, batched=True, batch_size=batch_size)
위 에서 인 코딩 데 이 터 를 얻 었 습 니 다.매번 16 으로 설정 한 다음 에 훈련 할 매개 변 수 를 지정 해 야 합 니 다.훈련 매개 변 수 는 transformers 가 제시 한 인터페이스 류 Training Arguments 를 사용 하고 모델 의 훈련 은 Trainer 를 사용 할 수 있 습 니 다.

from transformers import Trainer, TrainingArguments

args = TrainingArguments(
  'out',
  per_device_train_batch_size=batch_size,
  per_device_eval_batch_size=batch_size,
  learning_rate=5e-5,
  evaluation_strategy='epoch',
  num_train_epochs=10,
  load_best_model_at_end=True,
)

trainer = Trainer(
  model,
  args=args,
  train_dataset=encoded_data['train'],
  eval_dataset=encoded_data['test'],
  tokenizer=tokenizer
)
훈련 모형 은 트 레이 너 대상 의 트 레이 닝 방법 을 사용한다.

trainer.train()

평가 모델 은 trainer 대상 의 evaluate 방법 을 사용 합 니 다.

trainer.evaluate()
총결산
본 고 는 transformers 프레임 워 크 를 바탕 으로 이 루어 진 bert 예비 훈련 모델 을 소개 했다.이 프레임 워 크 는 매우 우호 적 인 인 인 터 페 이 스 를 제공 하여 독자 들 이 각종 예비 훈련 모델 을 시도 하 는 데 편리 하도록 한다.또한 datasets 는 NLP 를 배 울 수 있 는 여러 가지 문 제 를 많이 제공 합 니 다.게다가 구 글 이 제공 하 는 colab 환경 은 데이터 다운로드 와 예비 훈련 모델 다운로드 가 매우 빠 르 기 때문에 독자 들 이 스스로 단약 을 제련 하 는 것 을 권장 합 니 다데이터 세트
이상 은 PyTorch 예비 훈련 Bert 모델 의 예제 에 대한 상세 한 내용 입 니 다.PyTorch 예비 훈련 Bert 모델 에 관 한 자 료 는 다른 관련 글 을 주목 하 세 요!

좋은 웹페이지 즐겨찾기