RoBERTa 핵심 특징 — 토크나이저와 설정

RoBERTa 핵심 특징

RoBERTa를 쓰려면 바이트 레벨 BPE 토크나이저의 동작을 이해하는 게 좋아요. 또 모델 설정 클래스 RobertaConfig가 어떤 구조를 정의하는지 알고 있으면 여러 변형을 다루기 쉬워요.

출처: https://huggingface.co/docs/transformers/model_doc/roberta

바이트 레벨 BPE 토크나이저

RoBERTa 토크나이저는 Byte-Pair-Encoding(BPE) 기반이에요. 이 토크나이저는 공백을 토큰의 일부처럼 취급하도록 학습됐어요. 그래서 같은 단어라도 앞에 공백이 있으면 다른 토큰으로 인코딩돼요.

from transformers import RobertaTokenizer

tokenizer = RobertaTokenizer.from_pretrained("FacebookAI/roberta-base")
tokenizer("Hello world")["input_ids"]
# [0, 31414, 232, 2]

tokenizer(" Hello world")["input_ids"]
# [0, 20920, 232, 2]

아키텍처

RobertaModel은 BERT와 유사한 인코더 구조를 따르고, RobertaConfig가 이를 정의해요. 기본값으로 인스턴스화하면 FacebookAI/roberta-base와 같은 구성이 돼요.

from transformers import RobertaConfig, RobertaModel

configuration = RobertaConfig()
model = RobertaModel(configuration)

헤드별 모델 클래스

태스크마다 전용 헤드를 얹은 모델 클래스를 제공해요.

  • RobertaForMaskedLM — 마스크드 언어 모델링
  • RobertaForCausalLM — 디코더로 설정한 인과 언어 모델링
  • RobertaForSequenceClassification — 시퀀스 분류/회귀 (GLUE 등)
  • RobertaForTokenClassification — 토큰 분류
  • RobertaForQuestionAnswering — 질의응답
  • RobertaForMultipleChoice — 다지선다

더 알아보기