Chciałem lepiej zrozumieć, jak działa RL na LLM. Więc napisałem prosty skrypt, aby nauczyć Nanochat dodawania pięciocyfrowych liczb. Byłem zaskoczony, jak szybko się nauczył. Aż spojrzałem na generacje modelu i zdałem sobie sprawę, że po prostu nauczył się zawsze wywoływać wbudowany interpreter Pythona 😂. Kod, który napisałem, jest bardzo podstawowy, minimalny i nieefektywny - jestem profesjonalnym podcasterem, dobrze? Ale może być pomocny, jeśli chcesz zobaczyć podstawy działania REINFORCE lub GRPO. Link do gista poniżej. Fundamentalnie, to nie jest takie skomplikowane: generuj wiele trajektorii na każdy prompt. Zaktualizuj swój model, aby zwiększyć prawdopodobieństwo próbkowania wszystkich tokenów w udanych trajektoriach.