Spre deosebire de RLHF tradițional care folosește modele de recompensă subiective, GRPO funcționează cel mai eficient cu funcții de recompensă deterministe bazate pe reguli clare:
import re
# 1. Recompensă pentru respectarea formatului de gândire ...
def format_reward_func(prompts, completions, **kwargs):
pattern = r"^.*? \s*.*? $"
rewards = []
for completion in completions:
match = re.search(pattern, completion, re.DOTALL)
rewards.append(1.0 if match else 0.0)
return rewards
# 2. Recompensă pentru corectitudinea rezultatului matematic
def correctness_reward_func(prompts, completions, answer, **kwargs):
rewards = []
for completion, target in zip(completions, answer):
# Extrage rezultatul din tagul
m = re.search(r"(.*?) ", completion)
ans = m.group(1).strip() if m else ""
rewards.append(2.0 if ans == str(target).strip() else 0.0)
return rewards
Aceste funcții se transmit listate în reward_funcs=[format_reward_func, correctness_reward_func].
Întrebări & Exemple practice:
Definirea Funcțiilor de Recompensă Bazate pe Reguli (Reward Functions)Ai o întrebare despre Definirea Funcțiilor de Recompensă Bazate pe Reguli (Reward Functions) sau ai descoperit un truc, prompt sau fragment de cod util? Distribuie-l cu ceilalți membri ai comunității!
Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau resurse pentru această pagină. Dacă ai testat un prompt sau ai un snippet util, adaugă-l mai jos pentru comunitate.