Ringkasan eksekutif

Saya baru baca paper dari tim MIT CSAIL (Takehi, Teoh, Zhang, Khattab, dirilis 2 November 2026) yang mengklaim LLM frontier seperti GPT-6 "Astra" bisa langsung membaca dan menulis bobot neural network lain, tanpa gradient descent atau training loop. Mereka menyebut ini "Weight-Space Programming", dan yang paling bikin saya berhenti sejenak adalah Astra bisa memperbaiki bug reasoning di Qwen3.5-0.8B hanya dengan mengubah 0.016% dari bobotnya.

Masalah yang diselesaikan

Selama ini kalau mau mengoptimasi sesuatu yang bukan teks (misalnya bobot neural network), kita terjebak di optimizer simbolik seperti Adam atau Muon, karena manusia tidak bisa "ngoprek" bobot secara manual seperti ngoprek kode. LLM sudah lama dipakai untuk optimasi artefak teks (prompt, hyperparameter, kode training), tapi bobot float mentah dianggap wilayah yang tidak bisa disentuh lewat penalaran bahasa natural. Paper ini menunjukkan asumsi itu mulai goyah: Astra bisa menebak game apa yang dipelajari sebuah policy PPO, bentuk apa yang digambar diffusion model, bahkan bahasa apa yang dipelajari language model kecil — semuanya cuma dari deretan angka bobot, tanpa menjalankan forward pass.

Fitur utama dan contoh kode

Ada tiga kemampuan yang mereka uji:

  1. Membaca bobot — diberi bobot mentah MLP 500→32→32→5 yang dilatih PPO untuk salah satu dari empat game grid (Breakout, Pong, Pac-Man, Freeway), Astra menebak game yang benar untuk keempatnya, tanpa pernah dikasih tahu daftar pilihannya. Bahkan ketika layer input/output dihapus dan Astra hanya diberi 4 blok transformer tengah dari language model karakter 7.2M parameter, dia tetap bisa menebak bahasa (Python code, romaji Jepang, atau Inggris) dan mengidentifikasi semua "copying head" (induction head) di 24 attention head yang ada.
  1. Menulis bobot dari nol — untuk tiga game MinAtar (Breakout, Seaquest, Asterix), Astra menulis bobot network 600→32→32→6 langsung sebagai teks, tanpa data, loss, gradient, atau tool apa pun, dan network hasilnya mengungguli PPO yang dilatih 100 juta langkah di ketiga game. Untuk Go papan 9×9 (network 243→512×6→82, 1.480.274 bobot, semua mulai dari nol), dengan budget 0 forward pass saja network-nya sudah menang lebih dari separuh pertandingan melawan PPO kecil; dengan 50 forward pass, dia mengalahkan PPO setara yang dilatih 20 juta game.
  1. Memperbaiki bobot yang rusak — ini yang paling relevan buat kerja sehari-hari. Qwen3.5-0.8B (thinking on, 24 layer, 0.8 miliar bobot) punya masalah reasoning loop yang sudah diperingatkan di model card-nya sendiri (85 dari 96 jawaban awal mentok di limit token 32.768). Astra melacak loop ini ke satu arah di MLP layer 15 dan 19, lalu mengurangi arah itu dari 64 kolom output di tiap layer — total hanya 131.072 dari 0.8 miliar bobot (0.016%). Hasilnya: MATH-500 naik dari 7.9% ke 48.1%, GSM8K dari 13.8% ke 67.1%, dan IFEval (instruction following, bukan math) dari 21.0% ke 62.3% — padahal fix ini tidak ditarget ke IFEval sama sekali. Rasio jawaban yang mentok loop turun dari 93% ke 33.1%, dengan budget 50 forward pass untuk eksplorasi.

Penting dicatat: trik ini gagal total di Gemma 3 270M yang jarang loop (cuma 8.5% jawabannya mentok limit). Astra hanya menemukan error aritmatika biasa tanpa satu komponen tunggal yang bisa dimatikan, dan editnya sendiri diakui tidak signifikan (<1 poin MATH-500).

Sumber tidak memberi API atau kode nyata untuk ini — semuanya lewat prompt natural language ke Astra plus sandbox Python untuk forward pass terbatas. Jadi saya buat ilustrasi sederhana (bukan dari paper) untuk menggambarkan bentuk interaksinya:

# ILUSTRASI, bukan kode dari paper — hanya menggambarkan alur kerjanya
import numpy as np

def load_weights(path):
    return np.load(path, allow_pickle=True).item()

weights = load_weights("qwen3.5-0.8b.npz")

prompt = f"""
Ini adalah bobot mentah model bahasa 0.8B parameter.
Model ini sering terjebak reasoning loop pada soal matematika.
Tanpa gradient descent atau training, identifikasi arah di
MLP layer 15 dan 19 yang menyebabkan loop, lalu kembalikan
delta bobot (sebagai array numpy) untuk 64 kolom output tiap layer.

Bobot layer 15 (MLP.down_proj): {weights['layers.15.mlp.down_proj']}
Bobot layer 19 (MLP.down_proj): {weights['layers.19.mlp.down_proj']}
"""

# delta_15, delta_19 = astra_edit_weights(prompt)  # panggilan konseptual ke LLM
# weights['layers.15.mlp.down_proj'] -= delta_15
# weights['layers.19.mlp.down_proj'] -= delta_19

Dampak dan catatan upgrade

Ini masih riset awal ("sparks of", kata mereka sendiri), bukan produk atau library yang bisa diinstal — jadi jangan harap ada pip package besok. Tidak ada training loop yang diizinkan di semua eksperimen ini, hanya reasoning plus (di eksperimen lanjutan) sejumlah forward pass terbatas lewat sandbox Python. Yang menurut saya paling actionable buat tim yang mengelola model kecil sejenis Qwen3.5-0.8B: kalau model kalian juga sering kena reasoning loop seperti yang diperingatkan di model card Qwen, target fix seperti ini (satu arah di beberapa layer MLP) bisa jadi alternatif debugging yang jauh lebih murah daripada retraining penuh — tapi hasilnya tidak generalisasi otomatis ke semua jenis masalah matematika (lihat kegagalan di Gemma 3 270M). Buat yang tertarik ke interpretability, eksperimen attention-pattern untuk mendeteksi model sycophantic (dua fine-tune Gemma 3 270M) juga menarik: Astra gagal total hanya dari bobot mentah, tapi berhasil 3 dari 3 pasang begitu diberi akses ke pola attention.

---

Pertama diumumkan di Hacker News front page. Baca sumber aslinya untuk detail lengkap.

Baca juga