Transformers에서 인간 수준 텍스트 생성을 위한 대조 검색
Hugging Face는 Contrastive Search를 도입했으며, 이는 신경망 텍스트 생성용 최첨단 디코딩 방법으로 이제 PyTorch와 TensorFlow 모두에서 transformers 라이브러리를 통해 사용할 수 있습니다. 대조 검색은 결정론적 디코딩과 확률적 디코딩 사이의 중요한 트레이드오프를 해결하여, 오프‑더‑쉘프 언어 모델이 그리디 검색에서 흔히 발생하는 반복이나 nucleus 샘플링에서 나타나는 일관성 결여 없이 인간 수준의 의미적으로 일관된 텍스트를 생성하도록 합니다.
문제: 모델 퇴화 vs. 의미적 일관성 결여
기존 디코딩 방법은 일반적으로 두 가지 범주로 나뉘며, 각각 텍스트 품질을 저하시킬 수 있는 고유한 결함을 가지고 있습니다:
결정론적 방법 (Greedy와 Beam Search)
결정론적 방법은 가장 높은 확률을 가진 다음 토큰을 선택합니다. 이는 종종 모델 퇴화로 이어져, 생성된 텍스트가 부자연스럽고 원치 않는 반복을 포함하게 됩니다. 예를 들어, GPT-2 Large 모델을 그리디 검색으로 사용할 경우 동일한 문장이 여러 번 반복되는 현상이 자주 발생합니다.
확률적 방법 (Top-k와 Nucleus Sampling)
확률적 방법은 반복을 피하기 위해 무작위성을 도입합니다. nucleus 샘플링(top-p)은 반복을 제거할 수 있지만, 종종 의미적 일관성을 유지하지 못합니다. 이로 인해 생성된 구절이 앞선 텍스트와 논리적으로 연결되지 않는 경우가 발생합니다. 온도를 낮추면 이를 완화할 수 있지만, 모델을 다시 그리디 검색 쪽으로 몰아가게 되어 반복과 일관성 결여 사이의 어려운 트레이드오프를 만들게 됩니다.
대조 검색 작동 방식
대조 검색은 모델 신뢰도와 퇴화 패널티를 함께 고려하여 토큰 선택을 최적화함으로써, 출력이 높은 확률을 가짐과 동시에 이전 컨텍스트와 차별화되도록 보장합니다.
디코딩 목표
접두사 $x_{<t}$가 주어졌을 때 다음 토큰 $x_{t}$를 선택할 때, 이 방법은 top‑k 예측 집합 ($V^{k}$)을 평가합니다. 선택은 두 가지 주요 요소에 기반합니다:
- Model Confidence: 언어 모델이 예측한 후보 토큰 $v$의 확률.
- Degeneration Penalty: 후보 $v$가 이전 컨텍스트 $x_{<t}$와 얼마나 구별되는지를 측정합니다. 이는 접두사와 $v$를 연결한 입력을 모델에 넣어 얻은 $v$의 토큰 표현과 컨텍스트에 이미 존재하는 모든 토큰들의 표현 사이의 최대 코사인 유사도로 계산됩니다.
이러한 요소들은 하이퍼파라미터 $\alpha$에 의해 균형을 맞춥니다. $\alpha = 0$이면 이 방법은 기본 그리디 검색으로 되돌아갑니다. $\alpha$가 클수록 기존 컨텍스트와 너무 유사한 토큰에 대한 패널티가 증가하여 반복을 방지합니다.
성능 및 시각적 증거
대조 검색은 문법적으로 유창하고 의미적으로 일관되며 사실에 기반한 텍스트를 생성합니다. GPT-2 Large와 Meta의 OPT‑1.3b를 사용한 테스트에서, 이 방법은 일관된 서사를 유지하고 그리디 검색에서 나타나는 반복 루프를 피하는 512 토큰까지의 장문 문서를 생성했습니다.
토큰 유사도 시각화
토큰 유사도 행렬에 대한 시각적 분석은 퇴화 패널티의 기술적 성공을 보여줍니다:
- Greedy Search: 대각선이 아닌 항목에서 높은 유사도 점수가 나타나 반복 토큰 및 패턴이 존재함을 나타냅니다.
- Contrastive Search: 높은 유사도 점수가 주로 대각선 항목에 나타나 퇴화 문제가 성공적으로 완화되었음을 확인합니다.
Transformers에서 구현
대조 검색은 transformers 라이브러리(버전 4.24.0 이상)에 통합되어 있습니다. 사용자는 다음 하이퍼파라미터를 지정하여 generate 메서드로 구현할 수 있습니다:
penalty_alpha: 퇴화 패널티의 중요성을 조절하는 $\alpha$ 하이퍼파라미터.top_k: 검색 중 고려할 상위 예측 개수.
GPT-2 모델에 대한 구현 예시:
output = model.generate(input_ids, penalty_alpha=0.6, top_k=4, max_length=512)
연구 기반
이 구현은 두 개의 주요 연구 논문을 기반으로 합니다:
- A Contrastive Framework for Neural Text Generation (NeurIPS 2022), 원래 프레임워크를 제안한 논문.
- Contrastive Search Is What You Need For Neural Text Generation (2022), 오프‑더‑쉘프 모델을 사용해 16개 언어에 걸쳐 방법의 효과를 입증한 논문.