Pre-training of large language models — 사전학습
대형 언어 모델(LLM)의 사전학습(Pre-training) — 현대 대형 언어 모델 개발의 근본적인 단계로, 방대하고 다양한 비레이블 텍스트 데이터에 대해 모델을 학습시키는 과정이다. 이 과정을 통해 모델은 일반적인 언어 패턴, 세계 지식, 의미론적 관계를 습득하여 소위 파운데이션 모델(foundation model)을 형성하며, 이후 특정 과제 해결을 위해 적응시킬 수 있다.
사전학습이란?
사전학습(pre-training)은 LLM이 자기지도 학습(self-supervised learning) 방법을 사용하여 대규모 텍스트 데이터셋으로 학습되는 초기 훈련 단계를 의미한다. 이는 학습 신호(레이블)가 사람의 수동 레이블링 없이 데이터 자체에서 생성됨을 뜻한다.
이 단계의 주요 목표는 텍스트의 숨겨진 부분이나 미래 부분을 예측하는 것이다. 아키텍처에 따라 두 가지 주요 과제가 사용된다:
- 인과적 언어 모델링(Causal Language Modeling, CLM): 모델이 이전 모든 token을 바탕으로 시퀀스의 다음 단어(token)를 예측하도록 학습한다. 이 접근법은 GPT와 같은 생성 모델의 기반이 된다.
- 마스킹 언어 모델링(Masked Language Modeling, MLM): 모델이 주변의 양방향 문맥(좌우 단어)을 활용하여 텍스트에서 무작위로 "마스킹"(숨겨진) 된 단어를 복원하도록 학습한다. 이 방법은 BERT와 같은 모델에서 사용된다.
이러한 과제들 덕분에 모델은 예측을 성공적으로 수행하기 위해 통사론, 의미론, 세계에 대한 실질적 지식을 학습하게 된다.
사전학습을 위한 데이터
사전학습의 효과는 학습 데이터의 품질과 다양성에 크게 의존한다. 다음과 같은 주요 소스들이 활용된다:
- 웹 페이지: Common Crawl 및 C4와 같은 데이터셋은 인터넷의 "스냅샷"으로서 광범위한 주제, 문체, 언어를 제공한다.
- 도서: BookCorpus 및 The Pile과 같은 코퍼스는 장기적 의존성과 내러티브 이해에 유용한 구조화되고 일관된 텍스트를 제공한다.
- 대화 데이터: 포럼(예: Reddit) 및 소셜 네트워크의 데이터로, 모델이 비공식적 언어와 대화 패턴을 익히는 데 도움을 준다.
- 특화 데이터: 모델의 특정 능력 향상을 위한 학술 논문(arXiv), 프로그램 코드(GitHub 및 The Stack) 또는 다국어 텍스트.
데이터 분포 예시
각 모델은 서로 다른 소스 비율을 사용하며, 이는 최종 능력에 영향을 미친다:
- GPT-3 (1,750억 파라미터):** 도서 16%, 웹 페이지 84%.
- PaLM (5,400억 파라미터):** 도서 5%, 웹 페이지 14%, 대화 데이터 50%, 기타 31%.
- LLaMA (650억 파라미터):** 도서 5%, 웹 페이지 2%, 대화 데이터 87%.
이러한 분포는 데이터 선택이 모델의 목표에 따라 달라지는 전략적 결정임을 보여준다.
자주 사용되는 코퍼스
| 코퍼스 | 크기 | 소스 | 최종 업데이트 |
|---|---|---|---|
| BookCorpus | 5GB | 도서 | 2015년 12월 |
| Gutenberg | - | 도서 | 2021년 12월 |
| C4 | 800GB | Common Crawl | 2019년 4월 |
| CC-Stories-R | 31GB | Common Crawl | 2019년 9월 |
| CC-NEWS | 78GB | Common Crawl | 2019년 2월 |
| REALNEWS | 120GB | Common Crawl | 2019년 4월 |
| OpenWebText | 38GB | Reddit 링크 | 2023년 3월 |
| Pushshift.io | 2TB | Reddit 링크 | 2023년 3월 |
| Wikipedia | 21GB | 위키백과 | 2023년 3월 |
| The Pile | 800GB | 기타 | 2020년 12월 |
| ROOTS | 1.6TB | 기타 | 2022년 6월 |
학습 기법
LLM의 사전학습에는 상당한 컴퓨팅 자원이 필요하다. 이 과정을 관리하기 위해 다음과 같은 기법들이 적용된다:
- 분산 학습: 병렬 처리를 위해 여러 GPU 또는 TPU를 활용한다.
- 혼합 정밀도(Mixed Precision): 계산 속도를 높이고 메모리 사용량을 줄이기 위해 낮은 정밀도의 수치 포맷(예: 32비트 대신 16비트)을 사용한다.
- 그래디언트 체크포인팅(Gradient Checkpointing): 일부 중간 활성화 값을 저장하지 않고 재계산하여 메모리를 절약하는 기법.
- 모델 병렬화(Model Parallelism): 모델 자체를 여러 장치에 분산시킨다.
GPT-3와 같은 모델의 학습은 수천 개의 GPU에서 수개월이 걸릴 수 있다.
스케일링 법칙
OpenAI의 연구(Kaplan et al., 2020)와 같은 연구들은 언어 모델의 성능이 세 가지 요소의 증가에 따라 예측 가능하게 향상됨을 보여주었다:
- 모델 크기(파라미터 수).
- 데이터 양.
- 컴퓨팅 자원.
스케일링 법칙으로 알려진 이러한 경험적 관계는 개발자들이 더 크고 강력한 모델을 설계하고 학습할 때 컴퓨팅 예산을 최적으로 배분할 수 있도록 안내하는 지침이 된다.
과제와 성과
- 스케일링: 사전학습의 주요 성과는 최적의 성능을 달성하기 위해 모델 크기, 데이터, 컴퓨팅 간의 균형을 맞출 수 있다는 점이다.
- 데이터 품질: 학습 데이터의 청결성, 다양성, 편향 부재를 보장하는 것이 핵심 과제이다.
- 효율성: 지속적 사전학습 또는 더 효율적인 아키텍처와 같이 컴퓨팅 비용을 줄이기 위한 방법 개발.
- 다국어성: 여러 언어를 효과적으로 처리할 수 있는 모델 개발을 위해서는 데이터의 신중한 선별과 균형 조정이 필요하다.
같이 보기
- 대형 언어 모델
- BERT
- GPT