BERT Transformers 사용 — 파이프라인과 모델

BERT Transformers 사용

사전훈련된 BERT는 Hugging Face Transformers에서 클래스·파이프라인으로 바로 쓸 수 있어요. 출시 시점에서 BERT는 OpenAI GPT·GPT-2 등과 형태가 다른 인코더 전용(Encoder-only) 모델로 분류되는 점을 이해하면 좋아요.

Transformers의 BERT 클래스

Hugging Face 문서의 model_doc/bert에는 모델 클래스가 정리돼 있는데, 대표적인 것들이 이래요.

  • BertModel — 기본 인코더 (임베딩·컨텍스트화된 표현)
  • BertForMaskedLM — 마스크된 언어 모델링
  • BertForSequenceClassification — 문장 분류
  • BertForTokenClassification — 토큰(개체명) 분류
  • BertForQuestionAnswering — 질의응답
  • BertTokenizer / BertTokenizerFast — WordPiece 토크나이저

모델들은 PreTrainedModel을 상속하고, PyTorch의 torch.nn.Module 서브클래스라 일반적인 PyTorch 사용법을 그대로 따라요.

파이프라인으로 빠르게

가장 쉬운 시작은 Hugging Face의 pipeline이에요. 라벨 없는 우선순위 문장을 예측하는 fill-mask 파이프라인으로 mask 토큰을 채워볼 수 있어요.

from transformers import pipeline

unmasker = pipeline("fill-mask", model="bert-base-uncased")
unmasker("The woman worked as a [MASK].")

파이프라인은 마스크된 위치에 가장 가능성 높은 토큰을 채워 넣어요. RAG나 시맨틱 검색에는 BertModel을 Sentence Transformers처럼 임베딩 추출에 쓰는 방식이 일반적이에요.

참고

  • BERT는 2018-10-11에 출시, Transformers에는 2020-11-16에 추가됐어요.
  • 모델명은 보통 bert-base-uncased, bert-base-cased, bert-large-uncased 등이에요.
  • 최신 Transformers는 PyTorch SDPA(스케일드 닷-프로덕트 어텐션)도 사용할 수 있어요.

더 알아보기