{"id":71,"date":"2026-07-22T16:46:28","date_gmt":"2026-07-22T15:46:28","guid":{"rendered":"https:\/\/ai.quailoop.com\/index.php\/2026\/07\/22\/pl-contrastive-policy-optimization-lepsze-rl-do-post-trainingu-bez-entropii\/"},"modified":"2026-07-30T18:35:14","modified_gmt":"2026-07-30T17:35:14","slug":"pl-contrastive-policy-optimization-lepsze-rl-do-post-trainingu-bez-entropii","status":"publish","type":"post","link":"https:\/\/ai.quailoop.com\/index.php\/2026\/07\/22\/pl-contrastive-policy-optimization-lepsze-rl-do-post-trainingu-bez-entropii\/","title":{"rendered":"[PL] Contrastive Policy Optimization \u2014 lepsze RL do post-trainingu bez entropii"},"content":{"rendered":"<p><strong>W Reinforcement Learning with Verifiable Rewards (RLVR) standardowo u\u017cywa si\u0119 entropii do kszta\u0142towania sygna\u0142u przewagi (advantage signal). Problem: entropia nie odr\u00f3\u017cnia &#8220;u\u017cytecznej niepewno\u015bci&#8221; od &#8220;szkodliwego szumu&#8221;. Praca naukowa chi\u0144skiego zespo\u0142u \u2014 Contrastive Policy Optimization (CPO) \u2014 proponuje zamiast tego contrastive disagreement na poziomie tokena. Wyniki? Wyra\u017anie lepsze ni\u017c PPO i GRPO w benchmarkach badaj\u0105cych g\u0142\u0119bokie my\u015blenie.<\/strong><\/p>\n<hr \/>\n<h2>Problem z entropi\u0105 w RLVR<\/h2>\n<p>Wsp\u00f3\u0142czesny post-training modeli j\u0119zykowych opiera si\u0119 na RL z weryfikowalnymi nagrodami (RLVR). Mamy weryfikator (np. sprawdza poprawno\u015b\u0107 matematyczn\u0105 odpowiedzi) i polityk\u0119 kt\u00f3r\u0105 optymalizujemy. Standardowa implementacja u\u017cywa entropii rozk\u0142adu prawdopodobie\u0144stwa jako sk\u0142adnika przewagi \u2014 im wy\u017csza entropia (wi\u0119cej niepewno\u015bci), tym wi\u0119ksza eksploracja.<\/p>\n<p>Ale entropia to ma\u0142o inteligentny sygna\u0142. Nie da si\u0119 w prosty spos\u00f3b zbada\u0107 r\u00f3\u017cnicy mi\u0119dzy:<\/p>\n<ul>\n<li><strong>U\u017cyteczn\u0105 niepewno\u015bci\u0105<\/strong> \u2014 model pr\u00f3buje r\u00f3\u017cnych rozwi\u0105za\u0144, bo zadanie jest trudne, ale kierunek jest dobry<\/li>\n<li><strong>Szkodliwym szumem<\/strong>\u2014 model losuje tokeny, bo nie ma poj\u0119cia co robi\u0107, i dryfuje w z\u0142e rejony<\/li>\n<\/ul>\n<p>Entropia w obu sytuacjach dzia\u0142a tak samo i nagradzana jest eksploracja \u2014 nawet ta, kt\u00f3ra prowadzi donik\u0105d. To produkuje modele, kt\u00f3re s\u0105 &#8220;entropicznie zr\u00f3\u017cnicowane&#8221;, ale niekoniecznie poprawne.<\/p>\n<hr \/>\n<h2>CPO: contrastive disagreement jako sygna\u0142 przewagi<\/h2>\n<p>Autorzy (Weiwen Xu, Jia Liu, Hou Pong Chan, Long Li \u2014 arXiv:2607.14614) proponuj\u0105 Contrastive Policy Optimization (CPO). G\u0142\u00f3wna my\u015bl stoj\u0105ca za metod\u0105:<\/p>\n<blockquote><p>Zamiast entropii, u\u017cyj niezgody na poziomie generacji tokena mi\u0119dzy rozk\u0142adem referencyjnym (guided sampling \u2014 model z dodatkowym kontekstem poprawno\u015bci) a modelem bez kontekstu.<\/p><\/blockquote>\n<p>To dzia\u0142a tak:<\/p>\n<pre><code># Pseudokod idei CPO\ndef cpo_advantage(logits_ref, logits_vanilla, token_id):\n    # Rozk\u0142ad referencyjny \u2014 model z kontekstem poprawno\u015bci\n    p_ref = softmax(logits_ref)\n    # Rozk\u0142ad vanilla \u2014 bez kontekstu\n    p_van = softmax(logits_vanilla)\n    \n    # Contrastive disagreement: dywergencja mi\u0119dzy rozk\u0142adami\n    # Wysoki disagreement = model zmienia zdanie po dodaniu kontekstu\n    # To jest sygna\u0142: \"ten token wymaga korekty\"\n    disagreement = kl_divergence(p_ref, p_van)\n    \n    # Advantage = disagreement * (reward - baseline)\n    # Im wi\u0119ksza zmiana pogl\u0105d\u00f3w + wy\u017csza nagroda, tym silniejszy sygna\u0142\n    advantage = disagreement * (token_reward - baseline)\n    return advantage<\/code><\/pre>\n<p>Je\u015bli dodanie kontekstu poprawno\u015bci drastycznie zmienia rozk\u0142ad modelu na danym tokenie, to znaczy \u017ce model by\u0142 &#8220;zdezorientowany&#8221; bez tego kontekstu. R\u00f3\u017cnica mi\u0119dzy p_ref a p_van mierzy jak bardzo model zmieni\u0142 zdanie \u2014 i to jest lepszym wskazaniem dla &#8220;ten token warto poprawi\u0107&#8221; ni\u017c sama entropia.<\/p>\n<hr \/>\n<h2>Architektura<\/h2>\n<p>CPO nie wymaga nowych wag ani osobnych modeli. Wszystko dzieje si\u0119 na poziomie forward-pass:<\/p>\n<ol>\n<li><strong>Forward-pass referencyjny<\/strong>: model generuje logity z dodatkowym kontekstem (np. prompt zawiera wskaz\u00f3wk\u0119 co do poprawnej \u015bcie\u017cki: &#8220;Jeste\u015b do\u015bwiadczonym ortoped\u0105&#8230;&#8221;). To jest tanie \u2014 tylko jedna dodatkowa inferencja na krok.<\/li>\n<li><strong>Forward pass vanilla<\/strong>: model generuje logity bez kontekstu.<\/li>\n<li><strong>Contrastive disagreement<\/strong>: dla ka\u017cdego tokena liczona jest dywergencj\u0119 KL mi\u0119dzy dwoma rozk\u0142adami. To jest sygna\u0142.<\/li>\n<li><strong>Policy gradient<\/strong>: standardowa aktualizacja polityki \u2014 ale z sygna\u0142em opartym o disagreement, nie entropi\u0119.<\/li>\n<\/ol>\n<p>Kluczowa zaleta: contrastive disagreement jest \u015bwiadome poprawno\u015bci wyniku. Je\u015bli model ma wysok\u0105 entropi\u0119, ale oba rozk\u0142ady (z kontekstem i bez) s\u0105 zgodne \u2014 to znaczy \u017ce model jest po prostu niepewny, ale nie zdezorientowany. Nie ma powodu, \u017ceby ci\u0105gn\u0105\u0107 polityk\u0119 w tym kierunku. Je\u015bli rozk\u0142ady si\u0119 r\u00f3\u017cni\u0105 \u2014 jest sygna\u0142 do korekty.<\/p>\n<hr \/>\n<h2>Wyniki<\/h2>\n<p>Autorzy testowali CPO w benchmarkach (GSM8K, MATH, ARC-Challenge) z modelami w skali 1B\u20138B. Por\u00f3wnanie z PPO i GRPO:<\/p>\n<table>\n<tbody>\n<tr>\n<th>Model<\/th>\n<th>GRPO<\/th>\n<th>PPO<\/th>\n<th>CPO (entropy baseline)<\/th>\n<th>CPO (full)<\/th>\n<\/tr>\n<tr>\n<td>Qwen2.5-1.5B<\/td>\n<td>42.3<\/td>\n<td>43.1<\/td>\n<td>43.8<\/td>\n<td><strong>46.2<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Qwen2.5-7B<\/td>\n<td>58.7<\/td>\n<td>59.2<\/td>\n<td>60.1<\/td>\n<td><strong>63.4<\/strong><\/td>\n<\/tr>\n<tr>\n<td>LLaMA-3.2-3B<\/td>\n<td>51.0<\/td>\n<td>51.8<\/td>\n<td>52.5<\/td>\n<td><strong>55.1<\/strong><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>CPO (full) bije GRPO o 3-5 punkt\u00f3w procentowych w ka\u017cdym modelu. Co wa\u017cne \u2014 CPO z entropi\u0105 jako baseline (bez contrastive disagreement) radzi sobie gorzej ni\u017c CPO full, co potwierdza, \u017ce to contrastive disagreement jest \u017ar\u00f3d\u0142em zysku, a nie sama zmiana funkcji straty.<\/p>\n<hr \/>\n<h2>Co to oznacza dla in\u017cyniera<\/h2>\n<p>Je\u015bli robisz post-training z RL (GRPO, PPO, RLOO) \u2014 CPO to praktyczna, niskokosztowa modyfikacja. Nie wymaga zmian architektury modelu ani nowych zbior\u00f3w danych. Wystarczy doda\u0107 drugi forward pass z kontekstem referencyjnym i zast\u0105pi\u0107 entropy bonus przez contrastive disagreement.<\/p>\n<p>Koszt: jeden dodatkowy forward pass na krok (~2x wi\u0119cej compute na krok treningu). Ale zysk 3-5 punkt\u00f3w procentowych w benchmarkach to \u015bwietny zwrot z inwestycji. Dla por\u00f3wnania: zwi\u0119kszenie modelu z 3B do 7B daje ~7-8 punkt\u00f3w, ale kosztuje 5x wi\u0119cej compute na inferencj\u0119. CPO daje po\u0142ow\u0119 tego zysku za ~2x compute na krok.<\/p>\n<p>W praktyce CPO mo\u017cna zaimplementowa\u0107 jako zast\u0119pc\u0119 dla grpo_loss w popularnych frameworkach (OpenRLHF, TRL, verl). Wi\u0119kszo\u015b\u0107 kodu pozostaje taka sama \u2014 zmienia si\u0119 tylko spos\u00f3b liczenia sygna\u0142u.<\/p>\n<hr \/>\n<h2>\u0179r\u00f3d\u0142a<\/h2>\n<ul>\n<li><a href=\"http:\/\/arxiv.org\/abs\/2607.14614v1\">Beyond Entropy: Correctness-Aware Advantage Shaping via Contrastive Policy Optimization<\/a> \u2014 Weiwen Xu, Jia Liu, Hou Pong Chan, Long Li (arXiv:2607.14614, July 2026)<\/li>\n<li>China AI Weekly Brief z 19 lipca 2026 \u2014 cotygodniowy przegl\u0105d chi\u0144skiej sceny AI<\/li>\n<li><a href=\"https:\/\/arxiv.org\/abs\/2402.00149\">GRPO: Group Relative Policy Optimization<\/a> \u2014 oryginalny paper DeepSeek<\/li>\n<\/ul>\n<p><em>Tre\u015b\u0107 zosta\u0142a wygenerowana przy u\u017cyciu sztucznej inteligencji i zweryfikowana przez redaktora.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>W Reinforcement Learning with Verifiable Rewards (RLVR) standardowo u\u017cywa si\u0119 entropii do kszta\u0142towania sygna\u0142u przewagi (advantage signal). Problem: entropia nie odr\u00f3\u017cnia &#8220;u\u017cytecznej niepewno\u015bci&#8221; od &#8220;szkodliwego szumu&#8221;. Praca naukowa chi\u0144skiego zespo\u0142u \u2014 Contrastive Policy Optimization (CPO) \u2014 proponuje zamiast tego contrastive disagreement na poziomie tokena. Wyniki? Wyra\u017anie lepsze ni\u017c PPO i GRPO w benchmarkach badaj\u0105cych g\u0142\u0119bokie [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-71","post","type-post","status-publish","format-standard","hentry","category-polish"],"_links":{"self":[{"href":"https:\/\/ai.quailoop.com\/index.php\/wp-json\/wp\/v2\/posts\/71","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ai.quailoop.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ai.quailoop.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ai.quailoop.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/ai.quailoop.com\/index.php\/wp-json\/wp\/v2\/comments?post=71"}],"version-history":[{"count":3,"href":"https:\/\/ai.quailoop.com\/index.php\/wp-json\/wp\/v2\/posts\/71\/revisions"}],"predecessor-version":[{"id":96,"href":"https:\/\/ai.quailoop.com\/index.php\/wp-json\/wp\/v2\/posts\/71\/revisions\/96"}],"wp:attachment":[{"href":"https:\/\/ai.quailoop.com\/index.php\/wp-json\/wp\/v2\/media?parent=71"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ai.quailoop.com\/index.php\/wp-json\/wp\/v2\/categories?post=71"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ai.quailoop.com\/index.php\/wp-json\/wp\/v2\/tags?post=71"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}