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๋Š” ์ •์ฑ… ๋ชจ๋ธ๊ณผ ๊ฐ€์น˜ ํ—ค๋“œ๊ฐ€ ๋ฐฑ๋ณธ ๊ณต์œ  โ†’ ๋‘ ๊ฐ€์ค‘์น˜๊ฐ€ ๋ณธ ์ €์žฅ์†Œ์— ํ•จ๊ป˜ ์ €์žฅ

ํŒŒ์ผ ์—ญํ•  ํฌ๊ธฐ
adapter_model.safetensors ์ •์ฑ… ๋ชจ๋ธ(Policy) LoRA ์–ด๋Œ‘ํ„ฐ 131 MB
pytorch_model.bin ๊ฐ€์น˜ ํ—ค๋“œ(Value head, v_head) ๊ฐ€์ค‘์น˜ 7 kB
adapter_config.json LoRA ์„ค์ • 1 kB
tokenizer.json / tokenizer_config.json / chat_template.jinja ํ† ํฌ๋‚˜์ด์ € 33 MB
  • ๋ณด์ƒ ๋ชจ๋ธ(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์  ๋งŒ์ 
๊ตฌ์„ฑ Accuracy Conciseness Accuracy = 0
Base Gemma3-4B 1.10 1.68 44 / 50
+ PPO (๋ณธ ๋ชจ๋ธ) 0.78 0.82 46 / 50

์›์ธ ๋ถ„์„

1. ๋ณด์ƒ ํ•ดํ‚น(Reward hacking)

  • ๋ณด์ƒ ๋ชจ๋ธ์ด "๋ชจ๋ฅธ๋‹ค"๋Š” ์‘๋‹ต๋ณด๋‹ค ๊ทผ๊ฑฐ ์—†์ด ํ’๋ถ€ํ•œ ์„ค๋ช…์— ๋†’์€ ์ ์ˆ˜ ๋ถ€์—ฌ
  • ์ •์ฑ… ๋ชจ๋ธ์ด ํ•ด๋‹น ํŒจํ„ด ํ•™์Šต โ†’ ํ• ๋ฃจ์‹œ๋„ค์ด์…˜ ์ฆ๊ฐ€

2. ํ‰๊ฐ€ ๋ฐ์ดํ„ฐ ๊ฐ€๊ณต ๊ฒฐํ•จ

  • KMMLU ๊ฐ๊ด€์‹ โ†’ QA ํ˜•์‹ ๋ณ€ํ™˜ ๊ณผ์ •์—์„œ ๋…ผ๋ฆฌ์  ๋ถˆ์ผ์น˜ ๋ฐœ์ƒ
  • ์งˆ๋ฌธ์€ ๊ฐ๊ด€์‹ ํ˜•ํƒœ์ธ๋ฐ ์ •๋‹ต์œผ๋กœ๋Š” ๋ณด๊ธฐ ๋‚ด์šฉ๋งŒ ์ œ๊ณต
  • ๋ชจ๋ธ์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๋ณด๊ธฐ๋ฅผ ์ƒ์„ฑํ•ด ๋‹ตํ•˜๊ณ  0์  ์ฒ˜๋ฆฌ๋œ ์‚ฌ๋ก€ ๋‹ค์ˆ˜

3. Base ๋ชจ๋ธ์˜ ๋‚ฎ์€ ์ ์ˆ˜(1.10)์— ๋Œ€ํ•˜์—ฌ

  • ์‹ฌํŒ ๊ธฐ์ค€: "์ •๋‹ต์˜ ํ•ต์‹ฌ ์–ธ๊ธ‰ ์—ฌ๋ถ€"
  • Gemma3-4B ์‘๋‹ต ํŠน์„ฑ: ๋งˆํฌ๋‹ค์šด ๋ถˆ๋ฆฟ ๊ธฐ๋ฐ˜ ์žฅ๋ฌธ โ†’ ํ•ต์‹ฌ ํฌ์„
  • ๊ฒฐ๋ก : ๋ณธ ์ˆ˜์น˜๋Š” ๋ชจ๋ธ ์„ฑ๋Šฅ๋ฟ ์•„๋‹ˆ๋ผ ํ‰๊ฐ€ ์„ค๊ณ„์˜ ํ•œ๊ณ„๋ฅผ ํ•จ๊ป˜ ๋ฐ˜์˜

๊ด€๋ จ ์ €์žฅ์†Œ

๋ผ์ด์„ ์Šค ๋ฐ ์ถœ์ฒ˜

  • Base ๋ชจ๋ธ google/gemma-3-4b-it์˜ Gemma Terms of Use ์ ์šฉ
  • ํ•™์Šต ๋ฐ์ดํ„ฐ: TruthfulQA ํ•œ๊ตญ์–ด ๋ฒˆ์—ญ๋ณธ, KMMLU (HAERAE-HUB)
  • LoRA ์–ด๋Œ‘ํ„ฐ๋งŒ ๋ฐฐํฌ, base ๋ชจ๋ธ ๊ฐ€์ค‘์น˜ ์žฌ๋ฐฐํฌ ์—†์Œ
Downloads last month
22
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for lxxexxbxx/gemma3-4b-ko-rlaif-ppo

Adapter
(494)
this model