lxxexxbxx/gemma3-4b-ko-rlaif-ppo
020
gemma3-4b-ko-rlaif-ppo
google/gemma-3-4b-it에 RLAIF(Reinforcement Learning from AI Feedback) 기반 PPO를 적용한 LoRA 어댑터
- 한국공학대학교 딥러닝응용 팀 프로젝트(2025-2) 중 PPO 트랙 단독 담당 산출물
- 목표: 4B 경량 모델 + 4-bit 양자화 환경에서 보상 기반 학습의 동작 여부 검증
- 결과: PPO 적용 후 baseline 대비 성능 하락. 원인을 보상 설계 및 데이터 가공 결함으로 분석
- 평가 결과와 한계 항목 반드시 참조
저장 구성
TRL AutoModelForCausalLMWithValueHead는 정책 모델과 가치 헤드가 백본 공유 → 두 가중치가 본 저장소에 함께 저장
- 보상 모델(Reward): 별도 저장소 → lxxexxbxx/gemma3-4b-ko-rlaif-reward
- 참조 모델(Reference): LoRA 어댑터 비활성화 상태의 base 모델로 대체 → 별도 저장 없음
학습 구성
- Base:
google/gemma-3-4b-it(4-bit 양자화, BitsAndBytes) - LoRA:
r=16,lora_alpha=32,lora_dropout=0.1 - Target modules:
q_proj,k_proj,v_proj,o_proj - Framework: TRL
PPOTrainer+ PEFT - 학습 데이터: RLAIF 500건 (TruthfulQA-ko 250 + KMMLU-QA 250)
- 환경: RunPod RTX 3090 / Google Colab A100
RLAIF 데이터 생성
- Gemini를 심판으로 사용
- 동일 질문에 대한 응답을 Chosen(사실적 답변) / Rejected(할루시네이션 답변)로 분류
- 선호 쌍(preference pair) 데이터셋 구성
사용 방법
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
base = AutoModelForCausalLM.from_pretrained(
"google/gemma-3-4b-it",
device_map="auto",
)
model = PeftModel.from_pretrained(base, "lxxexxbxx/gemma3-4b-ko-rlaif-ppo")
tokenizer = AutoTokenizer.from_pretrained("lxxexxbxx/gemma3-4b-ko-rlaif-ppo")
messages = [{"role": "user", "content": "질문을 입력하세요"}]
inputs = tokenizer.apply_chat_template(
messages, add_generation_prompt=True, return_tensors="pt"
).to(model.device)
outputs = model.generate(inputs, max_new_tokens=256)
print(tokenizer.decode(outputs[0][inputs.shape[-1]:], skip_special_tokens=True))- 가치 헤드까지 로드하려면
trl.AutoModelForCausalLMWithValueHead사용
평가 결과와 한계
평가 설계
- 평가셋: 50문항 (TruthfulQA-ko 25 + KMMLU-QA 25)
- 심판: Gemini 2.5 Flash,
temperature=0(학습 미사용 외부 LLM) - 지표: Accuracy / Conciseness 분리 채점, 각 10점 만점
원인 분석
1. 보상 해킹(Reward hacking)
- 보상 모델이 "모른다"는 응답보다 근거 없이 풍부한 설명에 높은 점수 부여
- 정책 모델이 해당 패턴 학습 → 할루시네이션 증가
2. 평가 데이터 가공 결함
- KMMLU 객관식 → QA 형식 변환 과정에서 논리적 불일치 발생
- 질문은 객관식 형태인데 정답으로는 보기 내용만 제공
- 모델이 존재하지 않는 보기를 생성해 답하고 0점 처리된 사례 다수
3. Base 모델의 낮은 점수(1.10)에 대하여
- 심판 기준: "정답의 핵심 언급 여부"
- Gemma3-4B 응답 특성: 마크다운 불릿 기반 장문 → 핵심 희석
- 결론: 본 수치는 모델 성능뿐 아니라 평가 설계의 한계를 함께 반영
관련 저장소
- 코드 · 데이터 · 상세 분석: github.com/lxxexxbxx/llm-rlhf-ppo
- 보상 모델: lxxexxbxx/gemma3-4b-ko-rlaif-reward
라이선스 및 출처
- Base 모델
google/gemma-3-4b-it의 Gemma Terms of Use 적용 - 학습 데이터: TruthfulQA 한국어 번역본, KMMLU (HAERAE-HUB)
- LoRA 어댑터만 배포, base 모델 가중치 재배포 없음
