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— 다지선다