Robocikowo>ROBOCIKOWO
Trening

PPO

2017AktywnyOpublikowano: 10 maja 2026Aktualizacja: 10 maja 2026Opublikowany
Algorytm RL z rodziny policy gradient z clippingiem aktualizacji polityki. De facto standard w głębokim RL i podstawowy algorytm RL Fine-Tuning w RLHF.
Kluczowa innowacja
Wprowadzenie clippingu ratio prawdopodobieństw polityki w funkcji celu policy gradient, ograniczającego wielkość aktualizacji polityki w jednym kroku — daje stabilność TRPO przy znacząco prostszej implementacji opartej na pierwszego rzędu optymalizacji SGD.
Kategoria
Trening
Poziom abstrakcji
Pattern

Komponenty

Funkcja celu z clippingiem (PPO-Clip objective)Stabilizacja treningu policy gradient bez konieczności rozwiązywania ograniczonego problemu optymalizacji jak w TRPO.

Główna funkcja celu PPO: L^CLIP(θ) = E_t[ min(r_t(θ) · Â_t, clip(r_t(θ), 1−ε, 1+ε) · Â_t) ]. Operator min wybiera bardziej pesymistyczną wartość, tworząc dolną granicę funkcji celu i ograniczając wielkość pojedynczej aktualizacji polityki. ε ~ 0.1–0.2.

PPO-ClipWariant z clippingiem ratio prawdopodobieństw. Najczęściej stosowany w praktyce — InstructGPT, RLHF, OpenAI Baselines, Stable Baselines.
PPO-Penalty (Adaptive KL)Wariant z adaptacyjną karą KL: L^KLPEN(θ) = E_t[ r_t(θ) · Â_t − β · KL(π_θ_old, π_θ) ]. β jest dostosowywane dynamicznie do utrzymania KL w docelowym zakresie. Mniej powszechny w praktyce.

Oficjalna

Sieć aktora (polityka π_θ)Generowanie akcji optymalizowanych pod kątem maksymalizacji oczekiwanej skumulowanej nagrody.

Parametryzowana polityka π_θ(a|s) która mapuje stany na rozkłady prawdopodobieństwa nad akcjami. W zastosowaniach LLM polityką jest sam Transformer generujący tokeny: a = token, s = prefix kontekstu.

Sieć krytyka (value function V_φ)Redukcja wariancji estymatora gradientu polityki przez baseline subtraction.

Sieć estymująca wartość stanu V_φ(s) = E[R | s], wykorzystywana do obliczenia przewagi (advantage) Â_t. Trenowana przez minimalizację MSE względem zaobserwowanych zwrotów (returns) lub TD-target.

Generalized Advantage Estimation (GAE)Estymacja przewagi z kontrolą kompromisu bias-variance, kluczowa dla stabilności i jakości treningu PPO.

Estymator przewagi: Â_t^GAE(γ,λ) = Σ_{l=0}^∞ (γλ)^l δ_{t+l}, gdzie δ_t = r_t + γV(s_{t+1}) − V(s_t). Hiperparametr λ ∈ [0,1] kontroluje kompromis bias-variance: λ=0 → niska wariancja wysoki bias, λ=1 → wysoka wariancja niski bias.

Oficjalna

Implementacja

Pułapki implementacyjne
Brak normalizacji przewagi (advantage normalization)Wysoka

Pominięcie normalizacji estymatów przewagi (Â_t) w batchu prowadzi do niestabilności treningu — ratio · Â mogą eksplodować przy dużej skali nagród. Normalizacja: (Â − mean) / std w obrębie batcha jest standardową praktyką nieujętą wprost w oryginalnym paperze.

Rozwiązanie:Stosowanie normalizacji przewagi w każdym batchu przed obliczeniem L^CLIP. Większość nowoczesnych implementacji (stable-baselines3, CleanRL, TRL) robi to domyślnie.
Reward hacking w RLHFWysoka

PPO bez kary KL (lub ze zbyt niską β) może agresywnie eksploatować słabości modelu nagrody, generując odpowiedzi otrzymujące wysokie oceny ale niskiej rzeczywistej jakości. Klasyczny problem RL z wyuczonym modelem nagrody.

Rozwiązanie:Dodanie do funkcji celu kary KL: L = L^CLIP − β · KL(π_θ || π_ref). Monitorowanie KL podczas treningu. Wczesne zatrzymanie gdy KL przekracza próg. PPO-ptx (mieszanie z gradientami pretreningu).
Wysoka wrażliwość na hiperparametry i seedŚrednia

PPO jest znany z dużej wariancji wyników między różnymi seedami i hiperparametrami. Praca Henderson et al. „Deep RL that Matters" (2018) wykazała że ta sama implementacja PPO może dawać różniące się o 50% wyniki w zależności od seeda.

Rozwiązanie:Uśrednianie wyników z wielu seedów (3–10). Stosowanie sprawdzonych hiperparametrów dla danej domeny. Korzystanie z dobrze utrzymywanych implementacji (CleanRL, stable-baselines3).
Niedopasowane dzielenie wag actor-criticŚrednia

Gdy actor i critic dzielą wagi (typowe dla CNN/Transformer w grach Atari), funkcja celu krytyka może dominować nad gradientem polityki. Trzeba ostrożnie dobrać współczynnik c1 (zwykle 0.5).

Rozwiązanie:Stosowanie osobnych sieci aktor-krytyk gdy to możliwe. Tuning c1. Monitorowanie skali strat L^CLIP i L^VF.
Nieaktualne stare polityki w buforzeŚrednia

PPO jest on-policy — używanie próbek zebranych zbyt dawno (po wielu iteracjach optymalizacji) prowadzi do dryfu między π_θ_old a π_θ. Manifestuje się to przez ratio bardzo dalekie od 1, gdzie clipping wyłącza większość gradientu.

Rozwiązanie:Ograniczenie liczby epok PPO na batch (typowo 4–10). Monitorowanie frakcji clipowanych próbek (clipfrac). Reset bufora po każdej iteracji.

Ewolucja

Oryginalny paper · 2017 · arXiv:1707.06347 (OpenAI technical report) · John Schulman
Proximal Policy Optimization Algorithms
John Schulman, Filip Wolski, Prafulla Dhariwal, Alec Radford, Oleg Klimov
2015
Schulman et al. (Berkeley) wprowadzają TRPO
Punkt przełomowy

Trust Region Policy Optimization (arXiv:1502.05477) — bezpośredni poprzednik PPO. Optymalizuje funkcję celu surrogate z ograniczeniem KL przez ograniczony problem optymalizacji drugiego rzędu (conjugate gradient + line search). Skuteczny ale skomplikowany.

2017
Schulman et al. (OpenAI) publikują PPO
Punkt przełomowy

Praca arXiv:1707.06347 wprowadza PPO jako uproszczoną alternatywę dla TRPO. Zamiast ograniczonego problemu drugiego rzędu — clipping ratio prawdopodobieństw w funkcji celu. Pozwala używać standardowego SGD/Adam i jest zgodny z architekturami sieci dzielącymi parametry między actor i critic.

2019
OpenAI Five wygrywa z mistrzami świata Dota 2

OpenAI Five (system 5 sieci neuronowych trenowanych metodą PPO w skali ~10⁵ CPU + 256 GPU) wygrywa z drużyną OG, mistrzami świata Dota 2. Demonstracja skalowalności PPO do złożonych środowisk multi-agent z długim horyzontem czasowym.

2022
InstructGPT — PPO jako algorytm RL Fine-Tuning w RLHF
Punkt przełomowy

Ouyang et al. (2022) zastosowali PPO jako trzeci etap potoku RLHF dla GPT-3 z karą KL względem modelu SFT (PPO-ptx). Stało się to standardowym podejściem dla alignmentu LLM (ChatGPT, Claude, Gemini). PPO znalazło drugie życie poza klasyczną robotyką i grami.

2023
Engstrom et al. „37 implementation details of PPO"

Praca i blog post (ICLR 2020 Blog Track / The 37 Implementation Details of PPO, Huang et al.) systematyzujący 37 niedostatecznie udokumentowanych szczegółów implementacyjnych PPO (normalizacja przewagi, ortogonalna inicjalizacja, learning rate annealing, gradient clipping itd.) krytycznie wpływających na wyniki. Kluczowe dla reprodukowalności wyników PPO w społeczności.

Szczegóły techniczne

Hiperparametry (konfigurowalne osie)

Clip range (ε)Krytyczna

Hiperparametr clippingu ratio prawdopodobieństw w PPO-Clip. Określa o ile maksymalnie ratio może odchylić się od 1 (czyli od starej polityki) zanim gradient zostanie wyłączony.

0.2Wartość domyślna stosowana w oryginalnym paperze i w większości implementacji.
0.1Bardziej konserwatywna wartość — często stosowana w RLHF dla LLM aby ograniczyć drift od polityki SFT.
GAE λWysoka

Hiperparametr Generalized Advantage Estimation kontrolujący kompromis bias-variance estymatora przewagi.

0.95Typowa wartość dla zadań ciągłej kontroli (MuJoCo, robotyka).
0.97 – 1.0Stosowane w RLHF — bliska 1 wartość zwiększa wariancję, ale lepiej szacuje długie zwroty z modelu nagrody.
Discount factor (γ)Wysoka

Współczynnik dyskontowania przyszłych nagród. Określa horyzont planowania.

0.99Wartość standardowa dla większości zadań RL.
1.0Stosowane w RLHF gdy nagroda jest pojedyncza na końcu sekwencji (terminal reward).
Liczba epok PPO na batchWysoka

Ile razy ten sam batch danych jest używany do aktualizacji polityki przed zebraniem nowych rolloutów. Zbyt duża liczba prowadzi do przeoptymalizowania i niestabilności.

4Typowa wartość dla RLHF LLM, gdzie clipping zapobiega zbyt agresywnym aktualizacjom mimo wielokrotnego użycia batchu.
10Wartość z oryginalnego paperu PPO dla MuJoCo/Atari.
Współczynnik straty value (c1)Średnia

Waga straty MSE krytyka w łącznej funkcji celu. Łączna strata: L = L^CLIP − c1 · L^VF + c2 · S[π], gdzie S[π] to entropia polityki.

0.5 – 1.0Typowy zakres. Niższa wartość gdy actor i critic dzielą wagi.

Paradygmat wykonania

Tryb główny
dense

PPO sam w sobie jest algorytmem optymalizacji policy gradient — sieci aktora i krytyka mogą wykorzystywać dowolną architekturę (MLP, CNN, Transformer). W kontekście RLHF dla LLM aktor to gęsty Transformer, krytyk zwykle mniejsza sieć lub dodatkowa głowica nad bazowym Transformerem.

Wzorzec aktywacji
all_paths_active

Równoległość

Poziom równoległości
partially_parallel

Powszechnie stosuje się N równoległych aktorów zbierających rolloutu (np. vectorized environments w stable-baselines3, A3C-style worker pools). W RLHF dla LLM zrównoleglenie odbywa się przez DDP/FSDP/DeepSpeed na poziomie generowania odpowiedzi i obliczania gradientów.

Zakres
trainingacross_devices
Ograniczenia
!PPO wymaga zbierania nowych rolloutów z aktualnej polityki w każdej iteracji — nie można równolegle używać starszych próbek bez wprowadzenia biasu (off-policy correction).
!Kolejne iteracje PPO są sekwencyjne (każda wymaga aktualnej polityki z poprzedniej iteracji). W ramach iteracji można zrównoleglić zbieranie rolloutów (vectorized envs) i obliczenia gradientów (data parallelism).

Wymagania sprzętowe

Podstawowe

PPO dla głębokich sieci (zwłaszcza Transformer w RLHF) korzysta z efektywnych operacji GEMM na Tensor Cores. Generowanie rolloutów wymaga szybkiego forward pass; obliczanie gradientów to klasyczny backward pass. NVIDIA A100/H100 z dużą HBM (40–80 GB) standard dla RLHF z modelami 7B+.

Dobry fit

Klasyczny PPO dla MuJoCo/Atari może być efektywnie trenowany na CPU z vectorized environments (środowiska są tańsze niż obliczenia sieci). OpenAI Five wykorzystywało ~128k rdzeni CPU dla samego zbierania rolloutów + 256 GPU dla treningu.

Dobry fit

Implementowalne na TPU przez JAX/Flax (np. acme od DeepMind). Wykorzystywane w niektórych badaniach RL Google. Wymaga adaptacji pętli interakcji ze środowiskiem.