
RihpigGPT-6 Astra는 아무런 학습 없이 Qwen3.5-0.8B의 MATH-500 점수를 7.9%에서 48.1%로 끌어올렸습니다. 모델의 가중치를 읽고, 모델이 사고 과정에서 루프에...
GPT-6 Astra는 아무런 학습 없이 Qwen3.5-0.8B의 MATH-500 점수를 7.9%에서 48.1%로 끌어올렸습니다. 모델의 가중치를 읽고, 모델이 사고 과정에서 루프에 빠지게 만드는 하나의 방향을 찾아낸 뒤, 두 개의 MLP 레이어에서 그 방향을 빼냈습니다. 이 편집은 131,072개의 가중치, 즉 모델의 0.016%에만 손을 댔습니다. 이 수치는 MIT CSAIL 연구자 네 명이 11월 2일에 올린 글에서 나온 것이며, 편집된 모델이 공개되어 있으므로 직접 확인할 수 있습니다.
아래 내용: 가중치 공간 프로그래밍이 무엇인지, Astra가 무엇을 바꿨는지, 이 방법이 어디서 작동을 멈추는지, 그리고 코딩 에이전트로 두 모델을 Apidog CLI를 사용해 비교하는 방법을 다룹니다.
가중치 공간 프로그래밍은 범용 LLM이 신경망의 가중치를 직접 읽고 쓰는 것으로, 평범한 언어로 된 목표에 따라 진행되며 경사 하강법도, 학습 루프도 없습니다. 모델은 네트워크의 각 부분이 무엇을 계산하는지 추론한 다음, 프로그래머가 소스 코드를 편집하듯 손으로 숫자를 바꿉니다.
이 용어는 Rikiya Takehi, Jayden Teoh, Alex Zhang, Omar Khattab이 2026년 11월 2일에 발표한 Sparks of Weight-Space Programming에서 나왔습니다. 저자들은 모든 결과를 "매우 초기 단계"라고 부르며, 여러 결과는 한 번 또는 몇 번의 실행에서 나온 것입니다. 편집을 수행하는 모델에 대한 배경은 GPT-6 Astra 실전 리뷰를 참고하세요.
핵심 결과는 실험 8입니다. 연구자들은 GPT-6 Astra에게 가중치를 편집해서 Qwen3.5-0.8B의 수학 실력을 향상시키라고 요청했습니다. 무슨 일이 있었는지 단계별로 살펴보겠습니다:
down_proj의 출력 열 64개에서 그 방향을 빼냈습니다. 이는 8억 개 중 131,072개의 가중치입니다.Hugging Face 모델 카드에 따르면, 이 두 개의 down_proj 텐서만 베이스 Qwen/Qwen3.5-0.8B 체크포인트와 다르며, 재구성된 각 텐서는 저자들이 평가한 것과 sha256으로 검증되었습니다. 편집된 모델은 Apache 2.0으로 배포됩니다.
여기의 모든 수치는 저자들의 글에서 가져온 것입니다(사고 켜짐, 최대 32,768 토큰, 문제당 여러 샘플). "토큰 한도 도달"은 MATH-500 답변 중 토큰이 바닥난 비율입니다.
| Qwen3.5-0.8B | MATH-500 | GSM8K | IFEval | 토큰 한도 도달 |
|---|---|---|---|---|
| 베이스 | 7.9% | 13.8% | 21.0% | 93.0% |
| 편집됨, 순전파 10회 | 12.3% | 25.7% | 49.0% | 87.2% |
| 편집됨, 순전파 25회 | 14.1% | 25.1% | 39.9% | 86.4% |
| 편집됨, 순전파 50회 | 48.1% | 67.1% | 62.3% | 33.1% |
데모 Space에서 문제를 입력하고 두 모델이 답하는 모습을 볼 수 있습니다.
저자들은 핵심 결과보다 더 중요한 대조 실험을 진행했습니다. 좀처럼 루프에 빠지지 않는 모델인 Gemma 3 270M에 같은 접근법을 시도했습니다(답변의 8.5%가 한도에 도달한 반면, Qwen은 93%였습니다).
| Gemma 3 270M | MATH-500 |
|---|---|
| 베이스 | 6.8% |
| 최선의 편집 (순전파 25회) | 7.7% |
Gemma의 오류는 잘못된 산술 같은 평범한 것들이었고, 꺼버릴 만한 단일 구성 요소가 없었습니다. 저자들의 결론은 이렇습니다: 편집은 능력을 가리고 있던 장애물을 제거했지만, 모델에게 없던 능력을 더해주지는 못했습니다. Qwen은 이미 많은 답을 도출할 수 있었습니다. 다만 그것을 끝마치지 못했을 뿐입니다.
그러므로 이것은 "학습은 끝났다"가 아닙니다. 한 곳에 존재하는 하나의 실패를 프런티어 모델이 찾아내 제거한 것입니다.
실험 8은 여덟 개 중 하나입니다. 나머지는 훨씬 작은 네트워크를 사용합니다:
전체 실험 로그에는 모든 프롬프트, Astra의 추론 요약, 실행한 모든 코드가 포함되어 있습니다.
가장 깔끔한 테스트는 두 체크포인트를 동일한 OpenAI 호환 API 뒤에 서빙하고 같은 프롬프트를 보내는 것입니다. vLLM은 모델당 명령 하나로 이를 수행합니다:
vllm serve Qwen/Qwen3.5-0.8B --port 8001 \
--served-model-name qwen --max-model-len 34816 --gpu-memory-utilization 0.45
vllm serve RikiyaT/Qwen3.5-0.8B-weight-space-programming --port 8002 \
--served-model-name qwen --max-model-len 34816 --gpu-memory-utilization 0.45
두 서버 모두 qwen이라는 이름에 응답하므로, 하나의 요청 본문이 어느 포트에서든 작동합니다. --max-model-len 34816은 모델 카드의 예시와 일치합니다.
각 요청은 저자들의 샘플링 설정을 그대로 따르고 사고를 켭니다:
{
"model": "qwen",
"messages": [{"role": "user", "content": "{{question}}\nPlease reason step by step, and put your final answer within \\boxed{}."}],
"temperature": 0.6,
"top_p": 0.95,
"top_k": 20,
"presence_penalty": 1.5,
"max_tokens": 32768,
"chat_template_kwargs": {"enable_thinking": true}
}
마지막 \boxed{} 값이 답이며, finish_reason은 모델이 멈췄는지(stop) 아니면 토큰이 바닥났는지(length)를 알려줍니다. length로 끝났다면 루프입니다.
GPU를 돌리기 싫다면, 같은 방식으로 GPT-6 Astra API를 테스트하거나, 무료 Qwen3.5 Ollama 설정으로 소형 Qwen 모델들을 로컬에서 비교할 수 있습니다.
스무 개의 긴 생성 결과를 손으로 채점하는 일은 코딩 에이전트에게 맡길 일입니다. Apidog CLI는 에이전트에게 환경, 테스트 시나리오, 데이터 기반 실행 및 리포트를 제공하며, 여러분의 컴퓨터에서 실행되므로 localhost 엔드포인트가 작동합니다.
설치하고 에이전트에게 스킬을 부여하세요:
npm install -g apidog-cli@latest
apidog login --with-token <YOUR_TOKEN>
npx -y skills add https://apidog.com # pick your agent when prompted
그런 다음 Claude Code, Codex, Cursor 또는 OpenCode에 프롬프트 하나를 주세요:
In Apidog project <id>, create two environments: qwen-base at http://localhost:8001
and qwen-edited at http://localhost:8002. Create a test scenario that POSTs to
/v1/chat/completions with the body in request.json, using {{question}} from the
first 10 GSM8K test questions in gsm8k-10.csv. Assert that the last \boxed{} value
equals {{answer}} and that choices[0].finish_reason is not "length". Run it against
both environments and give me a table: correct answers and length finishes per model.
에이전트는 페이로드 스키마를 읽고 JSON을 검증한 다음, 다음 명령들을 실행합니다:
apidog environment create qwen-base --project <id> --base-url http://localhost:8001
apidog environment create qwen-edited --project <id> --base-url http://localhost:8002
apidog cli-schema get test-scenario-create
apidog cli-schema validate test-scenario-create --file scenario.json
apidog test-scenario create --project <id> --file scenario.json
apidog run -t <scenarioId> --project <id> -e <baseEnvId> \
-d gsm8k-10.csv --timeout-request 1800000 -r cli,json --out-file qwen-base
apidog run -t <scenarioId> --project <id> -e <editedEnvId> \
-d gsm8k-10.csv --timeout-request 1800000 -r cli,json --out-file qwen-edited
-d는 각 CSV 행을 하나의 반복으로 공급합니다. --timeout-request는 밀리초 단위이며, 루프에 빠진 답변은 32,768 토큰을 다 태우는 데 몇 분이 걸릴 수 있습니다. -r cli,json은 요약을 출력하고 에이전트가 비교할 수 있는 JSON 리포트를 작성합니다. 10개의 질문은 GSM8K 테스트 분할에서 가져온 것입니다.
여러분의 실행이 저자들의 것과 비슷하다면, 대부분의 베이스 답변이 finish_reason 검증에 실패하고 대부분의 편집된 답변이 통과할 것입니다. 10개의 질문은 스모크 테스트이지 벤치마크가 아니므로, 격차를 점수가 아닌 신호로 취급하세요. --upload-report를 추가하면 앱에서 실행 결과를 볼 수 있으며, 모든 플래그는 apidog run 명령 참조에서 확인하세요.
같은 시나리오는 어떤 모델 교체에도 회귀 테스트로 사용할 수 있습니다; Apidog CLI CI/CD 가이드에서 -r junit 설정을 보여줍니다.
finish_reason 검사가 이를 잡아냅니다.에이전트 작업에 쓸 GPT-6 등급을 고르시나요? GPT-6 Luna vs Sol vs Astra를 참고하세요.
GPT-6 Astra가 Qwen3.5-0.8B를 학습시켰나요? 아닙니다. 저자들은 경사 하강법도 학습 루프도 허용하지 않았습니다. Astra는 파이썬 세션에서 가중치를 편집했고, 10회, 25회 또는 50회의 순전파를 통해서만 모델을 관찰했습니다.
편집으로 가중치가 얼마나 바뀌었나요? 131,072개의 가중치로, 저자들은 이를 모델의 0.016%라고 밝혔습니다. 변경 사항은 15번과 19번 레이어의 MLP에 있는 down_proj 행렬에 있으며, 각각 출력 열 64개입니다.
편집된 모델을 구할 수 있나요? 네, Hugging Face에 RikiyaT/Qwen3.5-0.8B-weight-space-programming으로 Apache 2.0 하에 공개되어 있으며, 변경된 두 텐서의 해시와 독립적인 재실행 결과(MATH-500에서 51.0%)도 함께 제공됩니다.
수학 점수가 왜 이렇게 크게 뛰었나요? 베이스 모델이 루프에 빠졌기 때문입니다. MATH-500에서 답변의 93.0%가 32,768 토큰 한도에 도달했습니다. 편집으로 이것이 33.1%로 줄어, 모델이 이미 도출할 수 있었던 답을 끝마치게 되었습니다. 새로운 수학을 배운 것이 아닙니다.
가중치 공간 프로그래밍은 어떤 모델에서나 작동하나요? 저자들 스스로 말하기를 아직 아닙니다. 좀처럼 루프에 빠지지 않는 Gemma 3 270M에서는 최선의 편집이 MATH-500을 6.8%에서 7.7%로 옮겼을 뿐입니다. 저자들은 자신들의 모든 결과를 매우 초기 단계라고 부릅니다.
코드를 작성하지 않고 편집된 모델을 테스트할 수 있나요? 네. Hugging Face 데모 Space가 여러분이 입력한 문제에 대해 두 모델을 실행합니다. 반복 가능한 확인을 원한다면, 위에 나온 대로 vLLM과 Apidog CLI를 사용하세요.