Abstract:
- 이 논문의 핵심 아이디어는 간단히 말해, 문제 해결 능력을 갖춘 언어 모델을 더 잘 학습시키기 위해 인간이 만든 데이터에만 의존하지 않고, 모델이 스스로 만든 데이터를 활용하는 ‘자기 학습(self-training)’ 접근을 시도했다는 것임.
- 접근 방식: ReSTᴱᴹ(Self-training with feedback):
- 저자들은 모델 학습 시, 스칼라 형태의 피드백—즉, 정오(true/false)와 같은 이진 피드백—만 가능하다면, 인간 데이터를 넘어선 학습이 가능하다고 제안함
- 예시로 수학 문제 풀이에서는, 모델이 제출한 풀이가 정답인지(맞음/틀림) 바로 확인할 수 있음. 코드 작성 문제에서도 테스트 케이스를 통과했는지(맞음/틀림)로 확인할 수 있음.
- 구체적인 알고리즘(기대최대화, EM 기법 기반) 순서:
- (1) 현재 모델로부터 여러 답안을 생성하고, 정오 판별을 통해 ‘옳은 답변’만 걸러냄(필터링).
- (2) 걸러낸 답변들을 새로운 학습 데이터로 삼아 모델을 다시 미세조정(fine-tuning).
- (3) 이 과정을 여러 번 반복하면서 모델의 성능을 단계적으로 개선.
- ^틀린 답변을 내놓는 문제는 이후에 다시 풀어보는건가? 어케하는거?
- 결과는 다음과 같음:
- PaLM-2 모델에 적용하여 수학 문제(MATH) 및 코딩 문제(APPS) 벤치마크에서 실험을 진행함
- 단순히 인간 데이터로만 미세조정한 모델보다, ReSTᴱᴹ 기법을 쓴 모델이 훨씬 높은 성능을 보였으며, 특히 모델 크기가 클수록 이런 방식의 자기 학습이 성능 향상에 더욱 유리함을 확인.
- 이 결과는 “반드시 방대한 양의 인간 데이터가 아니더라도, 모델이 가진 자기 검증(정오 피드백) 능력을 활용해 계속해서 학습 데이터를 생성, 보완해 나가는 방식”이 효과적이라는 점을 시사함.
ReSTᴱᴹ:
- 핵심은 “(1) 모델이 현재의 정책으로 데이터를 생성(E-step), (2) 그 데이터를 사용해 모델을 최적화(M-step)” 하는 반복 구조를 갖춘다는 거임.
- EM 프레임워크:
- E-step: 이전 단계의 정책(언어 모델) p_{\theta_t}(\mathbf{y}|\mathbf{x})로부터 샘플을 생성하고, 그 샘플에 보상r을 반영해 새로운 분포 q_{t+1}(\mathbf{y}|\mathbf{x})를 형성합니다. 즉, “모델이 만든 응답 × 응답의 보상”으로 가중치를 부여하여 중요한(보상이 큰) 샘플이 더 많이 반영되도록 만듬. 즉 데이터를 새롭게 생성하는 모델은 성능이 점점 좋아지고 있음.
- M-step: 업데이트된 분포 q_{t+1}(\mathbf{y}|\mathbf{x})를 바탕으로, 정책 p_\theta(\mathbf{y}|\mathbf{x})와의 KL 발산을 최소화하도록 \theta를 조정합니다. 이는 “보상으로 가중치가 부여된 샘플”에 대해 Negative Log-Likelihood(음의 로그우도)를 최소화하는 것과 동일
- Algorithm 1 을 기반으로 좀 더 간단하게 설명:
- Generate (E-step):
- 입력 데이터셋 \mathcal{D}에서 문항 \mathbf{x}를 뽑은 뒤, 현재 모델 p_{\theta_i}로부터 여러 개의 출력을 샘플링하여 \mathbf{y}들을 생성합니다
- 생성된 (\mathbf{x}, \mathbf{y}) 쌍은 보상 함수 r(\mathbf{x}, \mathbf{y})—예컨대 정답 여부가 0/1로 주어지는 형태—로 평가됨.
- 이렇게 수집된 데이터셋 \mathcal{D}_i가 E-step의 결과물이 됩니다.
- Improve (M-Step)
- E-step에서 생성된 \mathcal{D}_i를 사용해, 보상으로 가중치가 부여된 최대우도 추정(ML) 방식을 취함.
- 논문에서는 “매번 모델이 지나치게 특정 태스크에 과적합되지 않도록, 항상 기존의 사전학습된 언어 모델(base model)에서부터 파인튜닝을 시작한다”는 점을 강조.
- 매번 파인튜닝을 하면 확실히 그 작업에 대해서는 특화되지만 일반화 능력은 떨어질 수 있음. (여기서는 이런 특화가 과적합이라고 하는듯)
- 이렇게해도 ReST 방법과 성능적으로는 차이가 없다라고 함. 오히려 전이학습면에서는 ReSTEM 모델이 더 낫다고.
- Generate (E-step):
- 이진 보상(binary reward) 환경에서의 구현:
- 마지막으로, 논문은 ReSTEM을 0 또는 1로만 제공되는 이진 보상에 초점을 맞춰서 설명
- 수학 문제나 코딩 문제처럼 “답이 맞으면 1, 틀리면 0”으로 피드백을 줄 수 있는 환경에서는, ReSTEM 알고리즘이 기존의 RL 파이프라인보다 단순하고 효율적으로 작동함을 강조합니다(예: 별도의 복잡한 보상 스케일링 없이 바로 정답만 확인).
- 여기서 성능 개선의 원인은 Generate 단계의 정책은 ‘이전 단계에 개선된 모델’ 이므로 다음 단계에서의 데이터 생성은 더 나은 데이터를 만들기 때문임.

연구 질문:
- 실험을 통해 아래 다섯 가지 질문에 답하고자 함:
- (1) 인간 데이터로만 파인튜닝(fine-tuning)한 모델과 비교했을 때, ReSTEM이 얼마나 효과적인가?
- (2) 최적의 성능을 내기 위해 몇 번의 반복(iterations)이 필요한가? 그리고 ReSTEM을 수행하면서 학습 데이터에 대한 과적합(overfitting)은 얼마나 빠르게 발생하는가?
- (3) ReSTEM이 도출하는 성능은 pass@k(k개 샘플 중 정답이 포함될 확률) 지표나 다수결 투표(majority voting) 방법 사용 시 어떤 변화가 있는가?
- (4) 특정 태스크(수학 문제 혹은 코딩 문제)로 학습한 후, 유사 태스크로 전이(transfer)할 때 성능 개선이 있는가? 그리고 베이스 모델(base model) 대비 다른 광범위 태스크들에서 성능이 떨어지지는 않는가?
- (5) ReSTEM을 통해 성능을 끌어올리는 데 필요한 입력 데이터 규모는 어느 정도인가? 한 번의 ReSTEM 반복으로도 충분한가?
- 학습 데이터셋(Training Datasets):
- 수학 문제: MATH 데이터셋 (Hendrycks et al., 2021b)
- 학습 문제: 7500개
- 답안이 맞는지(정답/오답)를 명확히 판별할 수 있음 → 이진 보상(binary reward)에 적합
- 코드 생성: APPS (Introductory) 데이터셋 (Hendrycks et al., 2021a)
- 학습 문제: 2342개
- 테스트 케이스 통과 여부로 코드 정답성을 판별 → 역시 이진 보상에 적합
- 두 데이터셋 모두 생성된 결과가 정답인지 아닌지 자동으로 판별할 수 있으므로, ReSTEM 활용에 최적화되어 있습니다.
- 수학 문제: MATH 데이터셋 (Hendrycks et al., 2021b)
- 구현 세부 사항(Implementation Details):
- 매 ReSTEM 반복마다, E-step에서 문제당 여러 해답을 생성:
- MATH: 문제당 32개 해답 샘플
- APPS: 문제당 64개 해답 샘플
- 샘플링 기법: Top-K 샘플링(K=40) + 온도(temperature)=0.7
- 불균형 완화: 쉬운 문제에서 정답이 너무 많이 쏟아져 데이터셋이 편중되는 것을 막기 위해, 문제당 최대 10개의 해답만 최종 파인튜닝에 사용
- Fine-tuning:
- few-shot prompt와 문제(입력)를 투입해서 출력을 평가
- 매 ReSTEM 반복마다, E-step에서 문제당 여러 해답을 생성:
- MATH vs. APPS에서의 ReSTEM 성능:
- MATH 데이터셋:
- 여러 번(여러 이터레이션)의 ReSTEM을 수행할수록 테스트 세트 성능이 계속 향상되고, 유사한 문제(GSM8K)로의 전이 성능도 좋아짐.
- 즉, 반복 학습을 거듭할 때마다 꾸준히 긍정적 효과가 나타남.
- APPS 데이터셋:
- 처음 한 번의 ReSTEM 이터레이션에서 성능 향상이 크게 발생하나, 추가 이터레이션에서는 오히려 성능이 떨어지는(회귀하는) 현상 발생.
- 전이 태스크(HumanEval)에서도 비슷한 경향으로 성능이 하락.
- MATH 데이터셋:
- Overfitting:
- ReSTEM 반복 횟수가 늘어날수록 학습 세트(train set) 성능은 선형적으로 계속 상승하지만 테스트 세트(test set) 성능은 그렇지 않음 → 오버피팅
- 여러 번(멀티 이터레이션) ReSTEM을 적용하면 학습 세트(train set)에 오버피팅(overfitting)될 가능성이 있다는 관측이 있음.
- MATH의 경우, 1회 이터레이션 이후 추가 이터레이션에서의 이득이 완만해지고, APPS의 경우, 2회차 이터레이션에서 성능이 오히려 떨어지는(회귀) 현상 관찰.
- 이 이유는 APPs 의 데이터 셋이 작다보니까 오버피팅이 더 빨리 일어나는거 아닌가? 추측
- ReSTEM 기법을 적용해 미세조정된 모델이 다양한 해답을 생성했을 때, 그 정답을 포함할 확률(Pass@K)과 다수결 투표(majority voting) 방식을 사용했을 때의 성능이 어떻게 달라지는지 다룸:
- 다수결 - Math 데이터셋: ReSTEM으로 파인튜닝된 PaLM 2-L 모델: 약 48.82% 정답률, 베이스 모델: 약 44.02% 정답률
- @PassK 에서는 더 큰 격차의 성능을 보여줌.
- 여러번 반복하면 오버피팅이 일어남. 차라리 한 번만(싱글 이터레이션) 적용하되, 더 많은 양의 모델 생성 데이터를 모아서 학습하면 어떨까?
- Hendrycks MATH에 대하여, 베이스 PaLM 2-L 모델로 3배 많은 솔루션을 한 번에 생성(즉, E-step 한 번으로 대규모 데이터 수집)한 뒤 파인튜닝.
- 반면, 여러 번의 ReSTEM 반복(2번째 이터레이션, 3번째 이터레이션)은 각각 41%, 41.9% 까지 성능을 끌어올림.
- 반복의 중요성에 대해 이야기하지만 한 두번의 반복 이후에 대량 데이터를 생성했다면 결과는 어떗을까?
'Generative AI > Fine-tuning' 카테고리의 다른 글
LIMA: Less Is More for Alignment (0) | 2025.01.22 |
---|---|
Scaling Relationship On Learning Mathematical Reasoning with Large Language Models (0) | 2025.01.22 |
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 |