Abstract:
- 약간의 사람 주석(annotated) 데이터를 활용해 지도학습(Supervised Fine-Tuning, 이하 SFT)된 언어 모델(LLM)을, 추가적인 사람 주석 데이터 없이도 스스로의 학습(“Self-Play”) 과정을 통해 강력한 모델로 발전시킬 수 있다는 내용을 다루고 있음.
- 대규모 언어 모델(LLM)을 발전시키기 위해선 사람이 주석한 예시(데이터)가 매우 중요하지만 사람이 주석한 데이터를 충분히 확보하기 어려울 때, 어떻게 모델의 성능을 더욱 끌어올릴 수 있는 방법을 다루기 위해서 SPIN(Self-Play fIne-tuNing)라는 아이디어를 제안
- SPIN(Self-Play fIne-tuNing)의 핵심 아이디어:
- SPIN은 기존에 사람 주석 데이터로 SFT가 한 번 이루어진 모델에서 출발:
- 몇 개의 데이터가 처음에 필요할까?
- 사람의 주석으로만 파인튜닝된 모델과 성능 차이는 얼마나 날까?
- 모델이 이전 단계(이전 버전)의 자신과 상호작용(“self-play”)하여 새로운 훈련 데이터를 생성하고, 이를 활용해 모델을 다시 학습:
- 결국에는 모델이 자신의 데이터를 스스로 생성하는거네.
- 자기 학습(Self-Training): 모델이 생성한 답변을 사람 주석 데이터와 구분하여, 올바른 분포(사람이 주석한 답변처럼 “좋은” 답변) 쪽으로 모델 파라미터를 조정:
- 모델이 생성한 데이터의 품질이 좋지 않다면 이를 어떻게 해결하는걸까
- 반복: 이 과정을 여러 번 반복하면서 모델이 점차적으로 성능을 높여감
- SPIN은 기존에 사람 주석 데이터로 SFT가 한 번 이루어진 모델에서 출발:
Introduction:
- LLM 은 대규모 사전학습(Pre-training) 후, 사람이 원하는 방식으로 모델의 행동을 개선하는 “정렬(alignment)” 단계를 수행함.
- 보통 두 가지 대표적인 정렬 방식이 있음:
- Supervised Fine-Tuning(SFT): 사람이 직접 작성한 예시(데모)를 가지고 모델을 미세 조정
- Reinforcement Learning from Human Feedback(RLHF): 사람이 준 선호도(피드백)를 보상으로 삼아 강화학습
- 문제는 이 과정에서 사람이 주석한 방대한 양의 데이터가 필요하다는 점.
- 이 논문은 추가 인간 주석 데이터 없이 LLM 개선하는 것을 다룸:
- 역사적 맥락: 부스팅(Boosting) & Self-Training 이라는 방법이 있었음.
- 머신러닝에서 약한 학습기를 반복적으로 학습하여 점차 강한 학습기를 만들자는 아이디어는 오래전부터 존재(부스팅 알고리즘, self-training)
- SPIN(Self-Play fIne-tuNing) 개념과 방법론:
- AlphaGo Zero, AlphaZero, TD-Gammon처럼 모델이 “자기 자신과 플레이(대결)하면서” 학습을 진화시키는 self-play 메커니즘을 LLM에 적용
- SPIN에서는 인간/고급 LLM(GPT-4 등)의 추가 주석 없이, 모델 자체가 스스로 문제를 만들어 내고, 다시 그 문제를 학습함.
- SPIN 의 핵심 절차:
- 이미 SFT로 한 번 학습된 LLM: P0 로 SFT 데이터셋의 문제(프롬프트)에 대해 답변을 생성(y')
- 그리고 사람 주석 데이터(y) 와 모델이 생성한 데이터(y') 를 가지고 사람 주석 데이터를 생성하는 쪽으로 확률 값을 올리고, 모델이 생성한 데이터y' 는 생성이 덜 되도록 확률값을 내리도록 학습을 함. 이렇게 되면 점점 사람이 생성한 데이터 분포쪽으로 가까워지게 출력이 된다.
- 딥러닝 레벨에서의 목표함수로 치면 사람이 생성한 데이터 쪽으로의 확률 값(logPo(y | x)) 를 증가시키고, 이전 모델이 출력한 확률 값(logPo(y' | x)) 은 내리는 거니 max (logPo(y | x) - logPo(y' | x)) 가 될거임. 손실함수는 이걸 이용해서 최소화 시키는 쪽으로 역전파될거고.
- 딥러닝 모델에서 “확률을 높이고/낮춘다" 는 의미는 결국 손실 함수를 해당 방향으로 정의해두고, 역전파를 통해 파라미터를 업데이트한다는 거임.
- 어떻게 보면 DPO 방식처럼 선호도를 기반으로 학습이 되는 거긴 함. 다만 DPO 는 일일히 쌍(pairwise) 기반의 데이터를 수집해야 하는 반면에, SPIN 은 기존 SFT에 있는 (x,y), 이전 모델 샘플 y' Synthetic Data for LLMs로도 가능함.
Related Work:
- Self-Play:
- Self-Play는 말 그대로 모델이 자기 자신과 대결하면서 학습하면서 개선하는 알고리즘을 말함.
- 여러 에이전트(혹은 자기 자신의 복제본)들이 상호작용하며 점진적으로 난이도를 높여나가, 스스로 성능을 개선하게 되는 것.
- AlphaGo Zero(Silver et al., 2017b): 바둑에서 인간 수준을 뛰어넘은 모델로, 사람이 제공해준 기보가 아니라 스스로 수를 두며 학습해 극적인 성능을 달성해나감.
- Synthetic Data for LLMs
- LLM의 지도학습(SFT)에서 인간이 직접 작성한 데이터는 품질이 높지만, 대량 확보가 비용·시간 측면에서 매우 어려움. 그래서 합성 데이터(LLM 이 생성한 데이터) 를 대안으로 쓰는 경우가 많음.
- 보편적으로 적용하는 방법은 고급 모델을 활용한 데이터 생성: GPT 시리즈(GPT-3.5, GPT-4 등)처럼 이미 성능이 뛰어난 모델로부터 데이터를 받아, 학습하려는 “하위 모델” 을 미세 조정하는거임:
- (이전 연구들: Chiang et al., 2023; Li et al., 2023 등)
- Josifoski et al: Exploiting asymmetry for synthetic training data generation: Synthie and the case of information extraction.
- Taori et al; Stanford alpaca: An instruction-following llama model
- Chiang et al; An open-source chatbot impressing gpt-4 with 90%* chatgpt quality, March 2023.
- Rephrasing, Augmentation: 이미 존재하는 데이터나 모델 응답을 재구성(rephrase)하거나 증강(augment)하여 더 효과적인 지도학습을 시도하는 방법도 있음.
- Yu et al., 2023; Bootstrap your own mathematical questions for large language models
- Liu et al., 2023: achieving> 80% on gsm8k with small language models
- 이 외의 추가 연구:
- Deng et al., Rephrase and respond: Let large language models ask better questions for themselves.
- Prasad et al., Rephrase, aug- ment, reason: Visual grounding of questions for vision 12 language models.
- 이건 Distillation (증류) 하는 방법과는 좀 차이가 있음. Distillation 은 교사 모델의 출력을 학생 모델이 모방하는 것임. 교사 모델의 로짓(softmax 확률 분포 등)에 대한 엔트로피나 MSE 손실을 최소화하는 식으로 학습하는 기법이다.
'Generative AI > Fine-tuning' 카테고리의 다른 글
Reinforced Self-Training (ReST) for Language Modeling (0) | 2025.01.22 |
---|---|
Magicoder: Empowering Code Generation with OSS-INSTRUCT (0) | 2025.01.22 |
WizardLM: Empowering Large Language Models toFollow Complex Instructions (0) | 2025.01.21 |
Fine-tuned Language Models are Zero-shot Learners (0) | 2025.01.20 |
SELF-INSTRUCT: Aligning Language Models with Self-Generated Instructions (0) | 2025.01.19 |