MIT의 '가중치 공간 프로그래밍'을 직접 시도해봄: Claude가 Gemma 4 12B의 뉴런 8개를 수정해 이탈리아어 시제 번역 방식을 변경함
I tried MIT's "weight-space programming" on my own use case: Claude rewrote 8 neurons of Gemma 4 12B to change how it translates one Italian tense
핵심 요약
MIT의 가중치 편집 기법을 활용해 Gemma 4 모델의 특정 시제 번역 방식을 미세 조정 없이 성공적으로 개선함.
- 가중치 공간 프로그래밍 — 모델의 뉴런을 직접 수정해 특정 동작을 변경함
- 이탈리아어 시제 개선 — Claude를 사용해 Gemma 4의 시제 선택 로직을 정밀하게 수정함
- 효율적인 수정 — 119억 개의 파라미터 중 9만 2천 개만 수정하여 부작용을 최소화함
- 비교 결과 — 기존 파인튜닝이나 프롬프트 방식보다 특정 문맥에서 더 정확한 결과를 보임
어제 MIT CSAIL에서 GPT-6 Astra가 작은 모델의 가중치를 직접 수정하는 걸 보여줬음. Qwen3.5-0.8B의 뉴런 몇 개를 건드렸더니, 수학 문제 풀다가 무한 루프 돌던 게 멈추고 점수가 확 뛰더라. 학습 같은 건 아예 없었음.
나도 평소에 로컬 모델로 자주 하는 작업인 이탈리아어 번역에 똑같은 짓을 해보고 싶었음. Gemma 4가 좀 마음에 안 드는 버릇이 있거든. 예를 들어 이런 문장을 번역할 때,
He had been hiding in the attic for months when the soldiers found him.
이걸 «Si era nascosto in soffitta per mesi…»라고 번역함. 틀린 건 아닌데, 나는 «Si nascondeva in soffitta da mesi…»를 더 선호하거든. 이게 그들이 들이닥쳤을 때도 여전히 숨어 있었다는 느낌을 더 잘 살려주니까. 문제는 기간이 이미 끝난 경우(he had lived in Paris for ten years, but by 1990 he had moved back)에는 원래 시제를 써야 한다는 거지. 그러니까 "무조건 X 시제를 써라"가 아니라 "의미가 맞을 때만 써라"는 식의 정교함이 필요함.
그래서 Claude Opus 5.5한테 MIT가 쓴 거랑 똑같은 환경을 만들어줬음:
-
Gemma 가중치를 건드릴 수 있는 파이썬 커널
-
연습 문장으로 아이디어를 검증할 50번의 포워드 패스
-
그레디언트 계산이나 학습은 일절 없음
일단 Claude가 Gemma가 이미 '진행 중인 상태'랑 '이미 끝난 상태'의 차이를 알고 있는지부터 확인했음. 보니까 중간 레이어에 선형 프로브(linear probe)를 돌려보니 거의 완벽하게 구분하더라고. 그냥 동사 고를 때 그 정보를 안 쓰는 것뿐이었음. 그래서 Claude가 MLP 뉴런 8개를 수정해서 특정 문맥에서만 작동하는 스위치를 만들고, 내가 원하는 동사 형태로 살짝 밀어주게 만들었음. 11.9B 파라미터 중에서 92k개만 건드린 거니까, 대략 100 KB 정도 되는 diff 파일인 셈이지.
한 번도 본 적 없는 문장들에 대한 결과
아래 표는 기존 형태가 얼마나 남았는지, 제어 문장 중에서 잘못된 해석으로 넘어간 게 몇 개인지, 그리고 200개의 무관한 번역 문장 중 몇 개가 그대로 유지됐는지를 보여줌.
| Method | test 1 | test 2 (independent) | controls broken | unrelated unchanged |
|---|---|---|---|---|
| Gemma 4 12B | 26 % | 32 % | — | 200 |
| Preference in the system prompt | 4 % | 2 % | 49 | 82 |
| Classic "difference of means" ablation | 49 % | 75 % | 53 | 43 |
| LoRA fine-tune on the same data |

