Co-improvement
Jak działa
Definiowane są co najmniej dwa komponenty z asymetrycznymi celami (np. generator ↔ solver, policy ↔ reward, code ↔ test). Każdy z nich ma własny algorytm uczenia (RL, DPO, fine-tuning) i własną funkcję straty zależną od drugiego. Pętla treningu naprzemiennie aktualizuje oba — często z mechanizmami stabilizującymi (replay buffer, anchor na minimalnych przykładach publicznych, ograniczone tempo aktualizacji topologii), aby zapobiec co-evolutionary drift i degeneracji (trywialne wyzwania, self-collusion).
Rozwiązany problem
Pojedynczy model trenowany na statycznym zbiorze szybko osiąga sufit: brakuje sygnału, który byłby trudniejszy od tego, co już potrafi. Co-evolution generuje ten sygnał z drugiego, równolegle ewoluującego komponentu.
Kluczowe mechanizmy
Mocne strony i ograniczenia
Komponenty
Co najmniej dwa moduły (modele/agenci/sieci) z różnymi celami, np. generator i krytyk, kod i test, policy i reward.
Strata każdego komponentu zależy od bieżącego zachowania drugiego, dzięki czemu poprawa jednego z nich wymusza adaptację drugiego.
Harmonogram aktualizacji komponentów (równoczesny, naprzemienny, z różnymi skalami czasu — fast/slow loop w TacoMAS).
Replay buffer (Mistake Book), anchor na publicznych przykładach (BACE), revert-on-regression, ograniczenia eksploracji — chronią przed co-evolutionary drift i self-collusion.
Niezależne źródło ground truth (compiler, unit tests, environment reward) lub strukturalna asymetria informacji (np. Checker bez dostępu do Solvera w MARCH) — fundament uczciwego sygnału.
Implementacja
Komponenty mogą oddalić się od zewnętrznej rzeczywistości i nawzajem optymalizować trywialne lub patologiczne sygnały (np. wyzwania nierozwiązywalne dla obu).
W systemach z dostępem white-box (jeden model generuje i kod, i testy) komponenty „zmawiają się" — testy stają się trywialnie spełnialne. Mitygacja: rozdział modeli, asymetria informacji (MARCH).
Komponent A może odkryć sposób na maksymalizację sygnału od B bez realnego rozwiązania zadania — szczególnie ryzykowne gdy B jest słabym proxy zewnętrznej prawdy.
Równoczesne uczenie wielu komponentów z różnymi gradientami często rozjeżdża się; potrzebne są harmonogramy fast/slow (TacoMAS), revert-on-regression (EvolveMem) lub anchoring (BACE).
W otwartych domenach (open-ended generation) co-evolution bez weryfikatora prowadzi do echo chambers; pomocne są intrinsic rewards (Hint-δ w G-Zero) lub strukturalna asymetria.