Transformers와 Tokenizers를 사용하여 처음부터 언어 모델 학습시키기

Hugging Face는 transformerstokenizers 라이브러리를 사용하여 새로운 언어 모델을 처음부터 학습시키는 방법을 보여주는 상세한 기술 가이드를 공개했습니다. 에스페란토(Esperanto) 언어를 위한 "EsperBERTo"라는 작은 RoBERTa 스타일의 모델을 생성함으로써, 이 가이드는 데이터셋 수집부터 다운스트림 태스크 미세 조정(fine-tuning)까지의 엔드 투 엔드 파이프라인을 설명합니다.

모델 아키텍처 및 사양

EsperBERTo는 대규모 컴퓨팅 리소스 없이 처음부터 학습시키는 것의 타당성을 보여주기 위해 "작은" 모델로 설계되었습니다. 아키텍처는 다음과 같이 구성됩니다:

  • Parameters: 84 million
  • Layers: 6
  • Hidden Size: 768
  • Attention Heads: 12

이 구성은 DistilBERT의 아키텍처를 반영합니다. 모델은 데이터셋 내에서 무작위로 마스킹된 토큰을 예측하도록 학습하는 Masked Language Modeling (MLM)을 사용하여 학습됩니다.

학습 파이프라인

1. 데이터셋 확보

EsperBERTo의 학습 코퍼스는 약 3 GB의 텍스트로 구성됩니다. 데이터는 두 가지 주요 컬렉션에서 가져왔습니다:

  • OSCAR corpus: 필터링된 Common Crawl 웹 덤프에서 파생된 이 다국어 코퍼스의 에스페란토 부분입니다.
  • Leipzig Corpora Collection: OSCAR 데이터를 보완하기 위해 뉴스, 문학, Wikipedia에서 가져온 다양한 텍스트를 포함하는 서브 코퍼스입니다.

2. 토크나이저 학습

Hugging Face는 GPT-2에서 사용되는 것과 유사한 바이트 수준의 Byte-pair encoding (BPE) 토크나이저를 사용하며, 어휘 사전(vocabulary) 크기는 52,000입니다.

바이트 수준 BPE 방식의 주요 기술적 장점은 다음과 같습니다:

  • <unk> 토큰 제거: 토크나이저가 단일 바이트 알파벳을 기반으로 어휘 사전을 구축하기 때문에 모든 단어를 토큰으로 분해할 수 있습니다.
  • 언어 최적화: 에스페란토를 위한 네이티브 토크나이저를 학습시키면 방언(diacritics) (예: ĉ, ĝ, ĥ, ĵ, ŝ, 및 ŭ)을 네이티브하게 인코딩할 수 있습니다.
  • 효율성: 가이드에 따르면 에스페란토 코퍼스에 대해 인코딩된 시퀀스의 평균 길이는 사전 학습된 GPT-2 토크나이저를 사용하는 것보다 약 30% 더 짧습니다.

3. 언어 모델 사전 학습

모델은 transformers 라이브러리의 run_language_modeling.py 스크립트를 사용하여 학습됩니다. 체크포인트가 아닌 처음부터 학습시키기 위해 --model_name_or_path 인자를 None으로 설정합니다.

학습 하이퍼파라미터:

  • Learning Rate: 1e-4
  • Epochs: 5
  • Batch Size: 16 per GPU
  • Seed: 42
  • Model Type: RoBERTa

4. 검증 및 테스트

Hugging Face는 모델이 언어적 패턴을 학습했는지 확인하기 위해 FillMaskPipeline을 사용합니다. 이를 통해 사용자는 <mask> 토큰이 포함된 시퀀스를 입력하고 가장 확률이 높은 완성형을 관찰할 수 있습니다. 예를 들어, "La suno ."라는 프롬프트는 가장 높은 예측값으로 "brilis" (빛났다)를 결과로 내놓았으며, 이는 모델이 기본적인 구문 및 문법을 파악하고 있음을 확인시켜 줍니다.

다운스트림 태스크 미세 조정

사전 학습이 완료되면 모델은 품사(Part-of-speech, POS) 태깅을 위해 미세 조정됩니다. 에스페란토는 단어의 어미가 일반적으로 문법적 품사를 나타내는 매우 규칙적인 언어이므로, 이 작업은 토큰 분류(token classification) 문제로 취급됩니다.

CoNLL-2003 형식의 주석이 달린 에스페란토 POS 태그 데이터셋을 사용하여, 모델은 run_ner.py 스크립트를 통해 미세 조정되었습니다. 이 과정은 GPU당 배치 사이즈 64로 3 에포크 동안 학습하는 것을 포함하며, 그 결과 대명사, 동사, 명사, 형용사를 성공적으로 분류했습니다.

커뮤니티 공유 및 배포포

Hugging Face는 transformers-cli upload 명령어를 통해 학습된 모델을 공유하는 것을 권합니다장. Hugging Face는 모델 배포를 위한 권장 사항으로 다음과 같은 내용을 상세히 기술한 모델 카드(README.md)를 제공하는 것을 포함합니다:

  • Model description
  • Training parameters (dataset, preprocessing, and hyperparameters)
  • Evaluation results
  • Intended uses and limitations

Sources