google-bert/bert-base-uncased
google-bert/bert-base-uncased — 마스크드 언어 모델링으로 사전학습된 대표적 영문 인코더 모델
Google이 공개한 BERT의 base uncased 버전으로, 1억 1천만 개 파라미터를 가진 영문 사전학습 모델입니다. Masked Language Modeling(MLM)과 Next Sentence Prediction(NSP) 두 가지 목표로 자기지도학습되었으며, 분류·토큰 분류·질의응답 같은 다운스트림 태스크에 파인튜닝해 사용하도록 설계되었습니다. Hugging Face에서만 월 4,700만 회 이상 다운로드되는 사실상의 표준 인코더 모델입니다.
- 주제
본문
BERT(Bidirectional Encoder Representations from Transformers)는 Google이 2018년 발표한 논문 'BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding'에서 소개한 모델로, 이 페이지는 그중 base uncased 버전의 Hugging Face 모델 카드입니다. uncased는 입력에서 대소문자를 구분하지 않으며 액센트 표기도 제거한다는 뜻입니다. 원 저자 팀이 모델 카드를 작성하지 않아 Hugging Face 팀이 대신 작성했다는 점이 명시되어 있습니다.
사전학습 방식
BERT는 사람이 레이블을 달지 않은 raw 텍스트만으로 자기지도학습(self-supervised learning)되었습니다. 첫 번째 목표는 Masked Language Modeling(MLM)으로, 입력 문장의 15% 단어를 무작위로 마스킹한 뒤 이를 예측하도록 학습합니다. RNN처럼 단어를 순차적으로 보거나 GPT처럼 미래 토큰을 내부적으로 가리는 autoregressive 방식과 달리, 문장 전체를 한꺼번에 보므로 양방향 표현을 학습할 수 있습니다. 두 번째 목표는 Next Sentence Prediction(NSP)으로, 두 문장을 이어 붙여 입력한 뒤 실제로 원문에서 연속된 문장인지 여부를 예측합니다. 마스킹 세부 규칙은 다음과 같습니다. 전체 토큰의 15%를 마스킹 대상으로 하고, 그중 80%는 [MASK] 토큰으로, 10%는 무작위 다른 토큰으로 치환하며, 나머지 10%는 원래 토큰을 그대로 둡니다.
학습 데이터와 학습 설정
사전학습 데이터는 미출판 도서 11,038권으로 구성된 BookCorpus와 영문 Wikipedia(목록·표·헤더 제외)입니다. 텍스트는 소문자화되고 WordPiece 토크나이저로 분할되며 어휘 크기는 30,000입니다. 입력 형식은 '[CLS] Sentence A [SEP] Sentence B [SEP]'이고, 50% 확률로 실제 연속 문장 쌍이 사용되며 두 '문장'의 합산 길이는 512 토큰 미만으로 제한됩니다. 여기서 문장은 실제 한 문장보다 긴 연속 텍스트 span인 경우가 많습니다. 학습은 4개 Cloud TPU Pod 구성(총 16개 TPU 칩)에서 배치 크기 256으로 100만 스텝 동안 진행되었고, 90% 스텝은 시퀀스 길이 128, 나머지 10%는 512로 학습했습니다. 옵티마이저는 Adam(학습률 1e-4, β1=0.9, β2=0.999), weight decay 0.01, 1만 스텝 워밍업 후 선형 감소가 적용되었습니다.
모델 변형과 성능
BERT는 처음에 base(110M 파라미터)와 large(340M 파라미터), cased·uncased 조합으로 공개되었고, 이후 중국어·다국어 버전과 whole word masking을 적용한 large 모델 2종, 그리고 더 작은 모델 24개가 추가되었습니다. GLUE 테스트 기준으로 이 모델은 MNLI 84.6/83.4, QQP 71.2, QNLI 90.5, SST-2 93.5, CoLA 52.1, STS-B 85.8, MRPC 88.9, RTE 66.4, 평균 79.6점을 기록했습니다.
사용 방법과 용도
raw 모델 자체로는 fill-mask나 NSP에 쓸 수 있지만, 본래 용도는 다운스트림 태스크 파인튜닝입니다. transformers 파이프라인으로 pipeline('fill-mask', model='bert-base-uncased')를 호출하면 'Hello I'm a [MASK] model.' 같은 입력에 대해 'fashion model'(0.107), 'role model'(0.088) 등의 예측을 반환합니다. PyTorch에서는 BertTokenizer와 BertModel, TensorFlow에서는 TFBertModel로 특징 벡터를 추출할 수 있습니다. 문장 전체를 보고 판단하는 시퀀스 분류·토큰 분류·질의응답에 적합하며, 텍스트 생성에는 GPT-2 같은 모델을 써야 한다고 안내합니다.
편향 주의사항
모델 카드는 학습 데이터가 비교적 중립적이더라도 예측에 편향이 나타날 수 있음을 실례로 보여줍니다. 'The man worked as a [MASK].'에는 carpenter·waiter·barber·mechanic이 상위 예측으로 나오는 반면, 'The woman worked as a [MASK].'에는 nurse(0.22)·waitress·maid·prostitute가 나옵니다. 이 편향은 이 모델을 파인튜닝한 모든 버전에도 전이되므로 프로덕션 적용 시 별도의 편향 평가가 필요합니다.
원문: Hugging Face / 번역·요약: Trawling