Robocikowo>ROBOCIKOWO
Trening

TextGrad

2024AktywnyOpublikowano: 17 maja 2026Aktualizacja: 17 maja 2026Opublikowany
TextGrad to framework do automatycznej optymalizacji systemów AI (promptów, kodu, rozwiązań zadań) z wykorzystaniem tekstowych gradientów — naturalnojęzycznych krytyk generowanych przez LLM i propagowanych wstecz przez graf obliczeniowy, w analogii do PyTorch i automatycznej różniczkacji.
Kluczowa innowacja
Automatyczna optymalizacja systemów AI poprzez tekstowy gradient — naturalnojęzyczna informacja zwrotna generowana przez LLM, propagowana wstecz przez graf obliczeniowy złożony z promptów, wywołań modeli i odpowiedzi, analogicznie do autograd w PyTorch.
Kategoria
Trening
Poziom abstrakcji
Paradigm
Poziom operacji
Po-treningOrkiestracja
Zastosowania
Automatyczna optymalizacja promptów dla zadań rozumowaniaIteracyjne ulepszanie kodu i rozwiązań problemów programistycznychOptymalizacja planów leczenia radioterapiiOdkrywanie molekuł leków w reprezentacji SMILESTuning instrukcji systemowych dla agentów LLMOptymalizacja wieloetapowych pipeline'ów RAGGenerowanie i poprawa odpowiedzi na pytania naukowe (GPQA)

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

VariableReprezentacja optymalizowanej zmiennej w grafie

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.

LLM EngineBackbone obliczeniowy frameworku

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

Loss FunctionDefinicja celu optymalizacji

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

TGD OptimizerReguła aktualizacji zmiennych

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

Pułapki implementacyjne
Wysoki koszt silnika nauczycielskiegoWysoka

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.

Rozwiązanie:Używać modeli najwyższej klasy jako nauczyciela, ograniczać liczbę iteracji do absolutnego minimum, cache'ować forward passy dla niezmienionych części grafu, stosować Batch TGD do amortyzacji kosztu na wielu próbkach.
Słabo sformułowana funkcja stratyWysoka

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ć.

Rozwiązanie:Definiować loss jak rubrykę oceniającą z konkretnymi kryteriami (poprawność, kompletność, zwięzłość). Walidować loss na zbiorze przykładów referencyjnych przed pełną sesją.
Overfitting promptu do zbioru walidacyjnegoŚrednia

Iteracyjna optymalizacja może prowadzić do nadmiernej specjalizacji promptu do konkretnych przykładów w zbiorze treningowym TextGrad, co pogarsza generalizację na nowych zadaniach.

Rozwiązanie:Utrzymywać rozdzielne zbiory train/dev/test, monitorować stratę na zbiorze walidacyjnym, stosować early stopping po stagnacji metryki dev.
Niedeterminizm krytykŚrednia

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ść.

Rozwiązanie:Fixować seed silnika gdzie to możliwe, logować pełną historię krytyk i aktualizacji, uśredniać wyniki kilku sesji, używać niskiej temperatury (0.0–0.3) dla nauczyciela.
Wysoka latencja sesji optymalizacjiŚrednia

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.

Rozwiązanie:Wykonywać TextGrad offline w fazie projektowania systemu, zapisywać zoptymalizowane prompty/kod jako artefakty i wdrażać statycznie, używać Batch TGD do amortyzacji.

Ewolucja

Oryginalny paper · 2024 · Nature, 2024 (preprint arXiv 2406.07496) · Mert Yuksekgonul
TextGrad: Automatic „Differentiation” via Text
Mert Yuksekgonul, Federico Bianchi, Joseph Boen, Sheng Liu, Zhi Huang, Carlos Guestrin, James Zou
2024
Publikacja preprintu arXiv 2406.07496
Punkt przełomowy

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.

2024
Publikacja referencyjnej implementacji `zou-group/textgrad`

Otwarcie kodu na GitHub na licencji MIT, publikacja pakietu PyPI `textgrad`. Wsparcie dla OpenAI, Anthropic, Together AI i lokalnych modeli.

2024
Publikacja w „Nature”
Punkt przełomowy

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 iteracji optymalizacjiWysoka

Liczba pełnych cykli forward–backward–step. Typowo 5–50. Wyższa liczba zwiększa szansę poprawy, ale liniowo zwiększa koszt.

5Tani prompt-tuning
20Standardowy reżim
50Trudne zadania (LeetCode Hard, GPQA)
Silnik LLMKrytyczna

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.

GPT-4oDefault w pracy Nature 2024
Claude 3 OpusAlternatywa premium
Wariant optymalizatoraŚrednia

vanilla TGD, TGD-Momentum, Constrained TGD lub Batch TGD. Momentum redukuje oscylacje przy zaszumionych krytykach, Constrained wymusza format wyjścia.

vanillaPunkt startowy
momentumStabilniejsza konwergencja
Funkcja stratyKrytyczna

Sformułowanie celu w języku naturalnym. Konkretność i poprawność loss decyduje o jakości optymalizacji — bezpośrednio kształtuje krytyki.

Paradygmat wykonania

Tryb główny
sparse

Sparse w sensie kosztu obliczeń: w typowej iteracji aktywne są tylko wybrane fragmenty grafu obliczeniowego (ścieżki prowadzące do strat).

Wzorzec aktywacji
input_dependent
Mechanizm routingu

TextGrad nie wprowadza routingu w klasycznym sensie MoE. Każda zmienna ma jeden gradient generowany przez model nauczycielski w danej iteracji.

Równoległość

Poziom równoległości
partially_parallel

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.

Zakres
inference

Wymagania sprzętowe

Podstawowe

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.