Przejdź do głównej treści

Programowanie w przestrzeni wag: jak LLM-y odczytują i edytują wagi sieci neuronowych

Programowanie w przestrzeni wag pozwala LLM-owi odczytywać i edytować wagi sieci bez treningu. Eksperymenty MIT z GPT-6 Astra: wyniki, ograniczenia i ich znaczenie.
Tom Farnschläder
Tom Farnschläder

Utwórz bezpłatne konto

Ćwicz i monitoruj swoje postępy.

Kontynuuj z GoogleKontynuując, akceptujesz nasz Warunki użytkowania, nasz Polityka prywatności i że Twoje dane są przechowywane w USA.

Programowanie w przestrzeni wag to metoda, w której uniwersalny duży model językowy (LLM) odczytuje surowe wagi sieci neuronowej oraz edytuje lub zapisuje je bezpośrednio na podstawie celu opisanego zwykłym językiem, bez spadku wzdłuż gradientu i bez pętli treningowej. W poście na blogu opublikowanym 2 listopada 2026 r. czterech badaczy z MIT CSAIL donosi, że GPT-6 Astra już to potrafi: zmienił 0,016% wag Qwen3.5-0.8B i podniósł jego wynik w MATH-500 z 7,9% do 48,1%.

Autorami są Rikiya Takehi, Jayden Teoh, Alex Zhang i Omar Khattab, pierwszy autor oryginalnej pracy DSPy. Wyniki są wstępne i pochodzą z jednego LLM-a, ale zespół opublikował wszystkie użyte prompty, odpowiedzi i ewaluacje.

W tym artykule omówię, czym jest programowanie w przestrzeni wag, co pokazały eksperymenty, gdzie ta metoda się załamuje i co to oznacza dla twojej pracy. Jeśli potrzebujesz przypomnienia o modelu dokonującym edycji, zajrzyj do naszego przewodnika po GPT-6 Astra.

Czym jest programowanie w przestrzeni wag?

Programowanie w przestrzeni wag to praktyka proszenia LLM-a o bezpośrednie odczytanie, naprawę lub zapisanie wag sieci neuronowej na podstawie specyfikacji w języku naturalnym, czasem bez jakiejkolwiek informacji zwrotnej ze środowiska. LLM ustala, co każda część sieci oblicza lub powinna obliczać, i odpowiednio ustawia liczby.

To inna ścieżka niż ta, którą zwykle powstają wagi. Dziś wagi pochodzą ze spadku wzdłuż gradientu z optymalizatorami jak Adam czy Muon, z sieci trenowanych do generowania wag innych sieci lub z kompilatorów, które zamieniają programy formalne w sieci. W podejściu MIT GPT-6 Astra nie pisze pętli treningowej. Rozumuje o wagach tak, jak inżynier rozumuje o kodzie.

LLM-y już optymalizują prompty, programy i kod treningowy. Autorzy argumentują, że ta optymalizacja oparta na rozumowaniu sięga teraz samych wag.

Co pokazali badacze z MIT

Osiem eksperymentów dzieli się na trzy grupy: odczytywanie wag, ich naprawianie i pisanie ich od zera. Większość używa małych sieci, których wagi mieszczą się w oknie kontekstu Astry jako tekst; w większych dodano piaskownicę Pythona, a w części budżet przebiegów w przód.

GPT-6 Astra odczytywał, naprawiał, pisał i ulepszał sieci bez treningu

Odczytywanie wag sieci

Zespół wytrenował cztery polityki metodą proksymalnej optymalizacji polityki (PPO), standardowym algorytmem uczenia ze wzmocnieniem dla agentów gier, na gridowych wersjach Breakout, Pong, Pac-Man i Freeway, wszystkie o tej samej architekturze z 17 253 wagami. Bez listy gier Astra nazwała poprawną grę dla każdej z 4 sieci, odczytując wskazówki, jak wagi pierwszej warstwy agenta Breakout leżące wzdłuż dolnego rzędu, gdzie znajduje się paletka.

Nastąpiły dwie trudniejsze wersje:

  • Modele dyfuzyjne: Na podstawie wag 3 małych DDPM-ów, bez dozwolonego przebiegu w przód, Astra wskazała, który generuje koła, kwadraty lub trójkąty. Narysowała je jako kontury, choć modele tworzą wypełnione kształty, co sugeruje, że czytała geometrię wag zamiast symulować sieć.
  • Modele językowe: Mając tylko 4 środkowe bloki transformera 7,2‑milionowych modeli znakowych, Astra nazwała język treningowy (Python, japoński romaji lub angielski) dla wszystkich 3, w obu próbach. Znalazła też każdą głowicę kopiującą, zwaną też głowicą indukcyjną, i żadnej innej nie nazwała taką. Nasz przewodnik po wielogłowej uwadze wyjaśnia, co robią te głowice.

Naprawa zepsutej polityki

Polityka PPO trenowana przez 1 miliard kroków na poziomie z autem i rampą w środowisku Kinetix jechała prosto na rampę i za każdym razem się zatrzymywała. Mając 171 664 wagi, opis sceny i jedno nagrane podejście, Astra wyjaśniła porażkę i w jednej odpowiedzi bez narzędzi zapisała poprawkę. Edycja zmieniła 3,5% wag i podniosła skuteczność z 0% do 100% w 1 024 epizodach.

Poprawka jest czytelna: mała dodatkowa ścieżka, która cofa auto, a potem wyłącza się, gdy auto minie pas.

Pisanie sieci od zera

Dla trzech gier MinAtar Astra dostała zasady, kod źródłowy i sieć wypełnioną zerami, po czym zapisała każdą wagę jako tekst w jednej odpowiedzi, bez danych, gradientów ani narzędzi. Wszystkie trzy sieci pokonały agentów PPO trenowanych przez 100 milionów kroków.

GraPPO, 100M krokówPPO, 500M krokówAstra, one shot
Breakout15,825,3517,4
Seaquest5,688,953,1
Asterix25,855,253,2

Breakout odbiega, bo Astra zapisała go jako program: pierwsza warstwa oblicza, gdzie spadnie piłka, druga przesuwa tam paletkę. Sieć Go 9x9 z 1 480 274 wagami, zapisana w piaskownicy Pythona, pokonała równie dużą sieć PPO trenowaną na 20 milionach gier, gdy Astra miała 50 przebiegów w przód do testów.

Usuwanie pętli rozumowania w Qwen3.5-0.8B

Najbardziej praktyczny wynik celuje w znaną wadę. Karta modelu Qwena ostrzega, że Qwen3.5-0.8B ma skłonność do pętli rozumowania, a w testach MIT 93,0% jego odpowiedzi w MATH-500 dobijało do limitu 32 768 tokenów. Pracując w jądrze Pythona z 50 przebiegami w przód na zadaniach treningowych z GSM8K i MATH, Astra przypisała pętle do jednego kierunku zapisanego przez MLP warstw 15 i 19 i odjęła go od 64 kolumn wyjściowych w każdej.

Zedytowane wagi
0,016%
131 072 z 0,8 miliarda
MATH-500
7,9% → 48,1%
Wersja bazowa vs. edytowana
GSM8K
13,8% → 67,1%
Wersja bazowa vs. edytowana
IFEval
21,0% → 62,3%
Podążanie za instrukcjami

Odsetek odpowiedzi dochodzących do limitu tokenów spadł do 33,1%, a ponieważ pętle nie są specyficzne dla matematyki, poprawiło się też podążanie za instrukcjami. Budżet miał znaczenie: przy 10 lub 25 przebiegach w przód pętle ledwo znikały. Ahsen Khaliq z Hugging Face odtworzył z logów zedytowany checkpoint i ponownie uruchomił MATH-500 z tymi samymi ustawieniami, uzyskując 51,0%.

Gdzie programowanie w przestrzeni wag zawodzi

Zawodzi tam, gdzie problem nie jest pojedynczą, lokalną usterką w wagach. Autorzy raportują dwie wyraźne porażki i obie są pouczające.

  • Serwilizm był niewidoczny w wagach. Mając uczciwy i serwilistyczny fine-tuning Gemma 3 270M, Astra nie potrafiła ich odróżnić tylko po wagach w żadnej z czterech prób. Gdy zobaczyła ich wzorce uwagi, wskazała serwilistę we wszystkich trzech parach.
  • Gemma 3 270M nie poprawiła się w matematyce. Gemma rzadko wpada w pętle, więc nie było jednej usterki do usunięcia, a najlepsza edycja podniosła MATH-500 z 6,8% do 7,7%. Jak ujęli to autorzy, edycja wag może usunąć przeszkodę ukrywającą zdolność, ale nie doda zdolności, której model nie miał.

Szersze zastrzeżenia: każdy eksperyment używa jednego LLM-a, największa sieć ma 0,8 miliarda wag, a to wpis blogowy z wczesnymi wynikami, nie recenzowana publikacja. Autorzy mówią, że wciąż budują benchmark dla tego zadania.

Co to oznacza dla praktyków danych i AI

Dla praktyków programowanie w przestrzeni wag to dziś sygnał badawczy, ale jeszcze nie narzędzie. Warto teraz śledzić dwie jego części.

Pierwsza to interpretowalność. Metody atrybucji jak SHAP wyjaśniają model przez jego wejścia, a mechanistyczna interpretowalność potrzebuje do tego wyspecjalizowanych narzędzi. Astra odzyskała głowice indukcyjne znaną metodą mnożenia macierzy, której badacze jej nie wspominali. Jeśli to się utrzyma w większych modelach, „zapytać model froniterowy, co robi ta warstwa” stanie się pierwszym krokiem przed cięższymi narzędziami.

Druga to celowana naprawa. Gdy mały model ma jedną wąską porażkę, jak pętle Qwena, zwykłą poprawką jest dostrojenie na nowych danych. Edycja 131 072 wag pozostawia resztę modelu nietkniętą, co — jak twierdzą autorzy — unika katastrofalnego zapominania, do którego może prowadzić fine-tuning. Traktowałbym to jako hipotezę: wynik Gemmy pokazuje, że edycja działa tylko wtedy, gdy da się znaleźć pojedynczego winowajcę. Szersza lista życzeń autorów — od audytu modeli pod kątem backdoorów bez ich uruchamiania po oduczanie zdolności bez danych — nie została jeszcze pokazana.

Jak samemu wypróbować programowanie w przestrzeni wag

Najprościej przetestować programowanie w przestrzeni wag, odtwarzając jeden z eksperymentów: logi zawierają dokładne prompty, jakie dostała Astra, a GPT-6 Astra jest dostępny jako gpt-6-astra w OpenAI API, w Amazon Bedrock i w płatnych planach ChatGPT. Eksperyment 1, nazwanie gry na podstawie wag polityki, to najłatwiejszy start:

  1. Pobierz logi. Sklonuj repozytorium lm_understand-logs. Każdy folder eksperymentu ma plik README mapujący każdą liczbę z wpisu do odpowiedniego pliku.

  2. Wybierz eksperyment bez narzędzi. W eksperymentach 1, 2, 4 i 5 Astra nie miała żadnych narzędzi, więc pojedynczy prompt odtwarza każdy przebieg. W Eksperymencie 1 każdy folder przebiegu ma prompt.txt z opisem sieci, pytaniem i wszystkimi 17 253 wagami jako tekst.

  3. Wyślij tak, jak zrobili to autorzy. Wywoływali gpt-6-astra przez Codex CLI (codex exec, prompt na stdin) z wyłączonymi wszystkimi wbudowanymi narzędziami, przy wysokim wysiłku rozumowania dla Eksperymentu 1. Reszta konfiguracji jest w harness/codex_config.toml, ale jego domyślne to gpt-6-luna przy medium wysiłku, więc ustaw model i wysiłek rozumowania przy każdym wywołaniu, jak zrobili to autorzy.

  4. Porównaj odpowiedzi. Każdy folder przebiegu zawiera też answer.md Astry, a eval/ trzyma ocenę i klucz odpowiedzi.

Jedno uruchomienie zużyło około 73 700 tokenów wejściowych i mniej niż 2 000 wyjściowych, więc przy cenach API 10$ i 50$ za milion tokenów, jedno odtworzenie kosztuje poniżej 1$. Eksperymenty z piaskownicą Pythona (3, 6, 7 i 8) wymagają harness/sandbox.py autorów i znacznie więcej tur, więc odpowiednio zaplanuj budżet.

Jeśli wolisz nic nie uruchamiać, zedytowany Qwen3.5-0.8B jest na Hugging Face na licencji Apache-2.0, z haszami 2 zmienionych tensorów na karcie modelu. Space na Hugging Face pozwala wpisać zadanie i zobaczyć, jak model bazowy wpada w pętlę, podczas gdy edytowany je rozwiązuje.

Na koniec

Programowanie w przestrzeni wag pokazuje, że model graniczny potrafi odczytywać i edytować wagi sieci neuronowych przez rozumowanie, przynajmniej dla małych sieci i pojedynczych, lokalnych usterek. Poprawka Qwena to wynik, który przyciągnie uwagę — i słusznie, częściowo dlatego, że Hugging Face odtworzył ją w ciągu jednego dnia.

O większych roszczeniach jestem ostrożniejszy. Jeden model, małe sieci i brak benchmarku to słaba podstawa dla tezy autorów, że „nasze wagi sieci neuronowych wkrótce będą natywnie optymalizowane przez LLM-y”. Mimo to porażki są raportowane równie starannie co sukcesy, a to sprawia, że traktuję te sukcesy poważniej.

Jeśli chcesz lepiej zrozumieć wewnętrzne mechanizmy transformera, które te edycje celują, polecam naszą ścieżkę Developing Large Language Models.

FAQs

Czym jest programowanie w przestrzeni wag?

Programowanie w przestrzeni wag to metoda, w której uniwersalny LLM odczytuje surowe wagi sieci neuronowej oraz bezpośrednio je edytuje lub zapisuje na podstawie celu w języku naturalnym, bez spadku wzdłuż gradientu i bez pętli treningowej. Termin pochodzi z wpisu na blogu z listopada 2026 r. autorstwa badaczy MIT CSAIL: Rikiya Takehi, Jayden Teoh, Alex Zhang i Omar Khattab, którzy przetestowali to z GPT-6 Astra.

Czy LLM-y mogą bezpośrednio edytować wagi sieci neuronowych?

Tak, przynajmniej dla małych sieci. W eksperymentach MIT CSAIL GPT-6 Astra zedytował 3,5% wag nieskutecznej polityki sterowania, podnosząc skuteczność z 0% do 100%, oraz zedytował 0,016% wag Qwen3.5-0.8B, by ograniczyć jego pętle rozumowania — odsetek odpowiedzi dochodzących do limitu tokenów spadł z 93% do 33%. Nie zadziałało tam, gdzie nie było pojedynczej usterki do usunięcia, jak w błędach matematycznych Gemma 3 270M.

Jak GPT-6 Astra poprawił Qwen3.5-0.8B bez treningu?

Astra prześledził pętle rozumowania Qwen3.5-0.8B do jednego kierunku zapisanego przez MLP warstw 15 i 19, a następnie odjął go od 64 kolumn wyjściowych w każdej, zmieniając 131 072 wagi. Przy 50 przebiegach w przód na zadaniach treningowych wynik MATH-500 wzrósł z 7,9% do 48,1%, GSM8K z 13,8% do 67,1%, a IFEval z 21,0% do 62,3%.

Czy programowanie w przestrzeni wag zastępuje dostrajanie (fine-tuning)?

Jeszcze nie. Zadziałał w przypadku pojedynczej, lokalnej usterki, jak pętle rozumowania Qwena, ale nie potrafił dodać zdolności, których model nie miał, i został przetestowany tylko z jednym LLM-em na sieciach do 0,8 miliarda wag. Na razie dostrajanie pozostaje praktycznym sposobem zmiany zachowania modelu.

Czy mogę sam spróbować programowania w przestrzeni wag?

Możesz obejrzeć i przetestować wyniki bez dostępu do GPT-6 Astra. Badacze opublikowali pełne logi eksperymentów na GitHubie, zedytowany Qwen3.5-0.8B jest na Hugging Face na licencji Apache-2.0, a Space na Hugging Face pozwala porównać model bazowy i edytowany na twoich zadaniach.

Tom Farnschläder

Autor

Tom Farnschläder

Tom jest redaktorem ds. data science w DataCamp. Pisze i redaguje tutoriale o AI, porównuje nowe wydania LLM i tworzy przepływy pracy zasilane przez AI. Wcześniej pracował w obszarze data science w Deutsche Telekom. Po pracy prognozuje wyniki meczów piłkarskich z wykorzystaniem uczenia maszynowego.

Tematy