TextGrad
Jak działa
1) Forward pass — system AI wykonuje obliczenia: prompt → wywołanie LLM → odpowiedź → kolejne kroki. Każda zmienna pośrednia jest opakowana w obiekt Variable. 2) Loss — funkcja straty wyrażona w języku naturalnym (np. „oceń, czy odpowiedź jest poprawna i kompletna”) zwraca krytykę. 3) Backward pass — model nauczycielski (typowo GPT-4 lub silniejszy) generuje gradient tekstowy: dla każdej zmiennej tworzy krytykę wskazującą, co należy poprawić, propagując informację wstecz przez graf obliczeniowy. 4) Optimizer step — TGD (Textual Gradient Descent) wykorzystuje gradient tekstowy do wygenerowania nowej wersji zmiennej (np. ulepszonego promptu lub kodu). Dostępne są warianty: vanilla TGD, TGD-Momentum, Constrained TGD oraz Batch TGD analogicznie do SGD/Adam w PyTorch. 5) Iteracja — cykl forward–backward–step powtarza się 5–50 razy aż do osiągnięcia satysfakcjonującej wartości straty.
Rozwiązany problem
Ręczne dostrajanie promptów, kodu i konfiguracji w złożonych systemach LLM jest pracochłonne, słabo powtarzalne i nie skaluje się na wielokrokowe pipeline'y agentowe. Klasyczne metody optymalizacji (gradient descent na wagach) nie mają zastosowania w warstwie aplikacyjnej, gdzie modele są używane jako czarne skrzynki przez API. TextGrad rozwiązuje ten problem, dostarczając abstrakcję analogiczną do autograd: zamiast gradientów numerycznych propaguje krytyki w języku naturalnym, co pozwala automatycznie ulepszać dowolny tekstowy artefakt (prompt, fragment kodu, rozwiązanie zadania) wobec zdefiniowanej funkcji straty.
Komponenty
Opakowanie dla tekstowej zmiennej (prompt, kod, odpowiedź). Przechowuje wartość (value) i gradient (krytykę). Analog `torch.Tensor` z `requires_grad=True`. Można oznaczyć jako trainable lub frozen.
Silnik modelu językowego wykorzystywany do wykonywania forward pass i generowania gradientów tekstowych. Typowo GPT-4-class (GPT-4o, Claude 3 Opus, Gemini 1.5 Pro). Jakość gradientów silnie zależy od mocy silnika.
Oficjalna
Funkcja straty wyrażona w języku naturalnym (np. „oceń poprawność matematyczną odpowiedzi i wskaż błędy”). Może być implementowana jako prompt do modelu nauczycielskiego, klasyfikator lub metryka skalarna z opisem.
Oficjalna
Textual Gradient Descent — optymalizator aktualizujący zmienne na podstawie gradientów tekstowych. Warianty: vanilla TGD, TGD-Momentum (akumulacja krytyk historycznych), Constrained TGD (z więzami formy), Batch TGD (agregacja gradientów z wielu próbek).
Oficjalna
Implementacja
TextGrad wymaga silnego modelu klasy GPT-4 jako nauczyciela. Typowa sesja 5–50 iteracji generuje koszt 10–100 USD na API. Słabsze silniki produkują niskiej jakości gradienty i sesja może się nie zbiec.
Funkcja straty w języku naturalnym musi być konkretna i jednoznaczna. Niejasne polecenia (np. „zrób to lepiej”) generują niespójne krytyki, a optymalizator oscyluje między rozwiązaniami zamiast się zbiegać.
Iteracyjna optymalizacja może prowadzić do nadmiernej specjalizacji promptu do konkretnych przykładów w zbiorze treningowym TextGrad, co pogarsza generalizację na nowych zadaniach.
Krytyki generowane przez LLM są stochastyczne — dwie sesje na tym samym wejściu mogą dać różne ścieżki optymalizacji i różne wyniki końcowe, co utrudnia debugowanie i reprodukowalność.
Sekwencyjne iteracje forward–backward–step na silnym LLM zajmują od kilku minut do godzin. TextGrad nie nadaje się do optymalizacji w czasie rzeczywistym ani do dużych przestrzeni wyszukiwania.
Ewolucja
Zespół Stanforda (Yuksekgonul, Zou i in.) publikuje pierwszą wersję frameworku TextGrad jako analog PyTorcha dla tekstu, z wynikami na GPQA, LeetCode Hard, planowaniu radioterapii i SMILES.
Otwarcie kodu na GitHub na licencji MIT, publikacja pakietu PyPI `textgrad`. Wsparcie dla OpenAI, Anthropic, Together AI i lokalnych modeli.
Wyniki TextGrad zostają opublikowane w czasopiśmie „Nature”, formalizując paradygmat tekstowej różniczkacji i potwierdzając przewagi nad Chain-of-Thought na GPQA (+5 p.p.) oraz LeetCode Hard (+20 p.p.).
Szczegóły techniczne
Hiperparametry (konfigurowalne osie)
Liczba pełnych cykli forward–backward–step. Typowo 5–50. Wyższa liczba zwiększa szansę poprawy, ale liniowo zwiększa koszt.
Wybór modelu pełniącego rolę nauczyciela. Wyniki w Nature uzyskano z GPT-4. Słabsze silniki (GPT-3.5, modele open-source < 70B) generują gorsze gradienty.
vanilla TGD, TGD-Momentum, Constrained TGD lub Batch TGD. Momentum redukuje oscylacje przy zaszumionych krytykach, Constrained wymusza format wyjścia.
Sformułowanie celu w języku naturalnym. Konkretność i poprawność loss decyduje o jakości optymalizacji — bezpośrednio kształtuje krytyki.
Paradygmat wykonania
Sparse w sensie kosztu obliczeń: w typowej iteracji aktywne są tylko wybrane fragmenty grafu obliczeniowego (ścieżki prowadzące do strat).
TextGrad nie wprowadza routingu w klasycznym sensie MoE. Każda zmienna ma jeden gradient generowany przez model nauczycielski w danej iteracji.
Równoległość
Forward pass i obliczanie strat dla różnych próbek w batchu są zrównoleglalne. Backward pass dla jednej próbki jest w dużej mierze sekwencyjny ze względu na zależności w grafie. Batch TGD pozwala zrównoleglić gradienty między próbkami.
Wymagania sprzętowe
TextGrad operuje na warstwie aplikacyjnej (API LLM) i nie wymaga konkretnego sprzętu po stronie użytkownika. Wymagania sprzętowe leżą po stronie infrastruktury dostawcy modelu nauczycielskiego.