2026-05-10

딥러닝은 외과수술이 가능하다

신경망은 학습시키는 것이지, 고치는 것이 아니다. 우리는 보통 그렇게 생각한다.

답이 틀리면 더 학습. 값이 어긋나면 더 학습. 행동이 이상해도 더 학습. 수리의 도구는 항상 더 많은 데이터와 더 많은 계산이고, 변경의 단위는 늘 학습 한 번이며, 비용도 항상 크다고 가정된다.

이건 사실이라기보다 습관이다. 학습된 신경망에서 망가져 보이는 것 가운데 일부는 외과적으로 고칠 수 있다. 정확한 자리의 적은 파라미터를, 단 한 번의 패스로, 다른 어떤 것도 건드리지 않고.

한 사례를 보자.

알면서도 말하지 않는 모델

GPT-2 small. 1억 2,400만 파라미터. 이렇게 묻는다.

프랑스의 수도는 ___

답은 “the”.

여덟 나라의 수도 가운데 여섯 개를 틀린다. 프랑스, 일본, 독일, 중국, 러시아, 영국. 이탈리아와 스페인만 맞춘다. 보통이라면 *“이 모델은 잘 모르는구나”*로 끝나는 자리다.

그런데 신경망 안을 레이어 단위로 따라가 보면 이야기가 달라진다.

레이어헤드Paris logit”the” logit일어나는 일
L1–L6(전체)−16.5−7.6Paris 신호 없음
L7H4+3.1−0.2Paris가 처음 등장
L10H8+25.8−2.8Paris 신호가 자리 잡음
L11H0+11.2−1.6신호 보강
L12H0−29.3+149.9”the”가 모든 걸 뒤집음
최종−101.2−100.2”the”가 1.0 차이로 승
GPT-2 small 12 레이어 누적 logit 추적 — Paris vs the
레이어별 누적 logit. Paris 신호는 L10 부근에서 자리 잡지만, L12 H0에서 뒤집힌다.

L10 시점에서 Paris는 이미 +25.8로 뚜렷하게 잡혀 있다. 모델은 알고 있다. 두 레이어 뒤, 명사구를 “the”로 시작하는 데 특화된 한 헤드(L12 H0)가 등장한다. 이 녀석이 +149.9라는 압도적인 힘으로 그동안의 모든 신호를 뒤집어 버린다. Paris는 약 1.0 차이로 밀린다.

이건 라우팅 실패다. 지식이 없는 게 아니다. 답은 모델 안에 있었고, 그 답이 머무는 자리에서 출력으로 나가는 경로가 마지막 단계에서 끊긴 것뿐이다.

외과수술

라우팅이 문제라면 새로운 지식을 더할 필요가 없다. 이미 있는 신호가 뒤쪽의 덮어쓰기를 살아남도록 더 강하게 만들면 된다.

L10만 학습한다. 한 epoch. 정답을 향한 targeted loss. 무관한 데이터에는 output-matching loss로 일반 능력을 보존한다.

지표Δ
수도 정답2 / 88 / 8+6
일반 능력11 / 1511 / 150
부작용 패널2 / 102 / 100
Perplexity42.742.6−0.1
L10 외과수술 전후 — 수도 8개 정답 비교
전 (2/8), 후 (8/8). 이탈리아와 스페인은 원래 맞았고, 나머지 여섯 개를 수술이 고쳤다.

여섯 개가 전부 정답으로 바뀐다. 다른 어떤 것도 손상되지 않는다. 모델은 이제 Paris, Tokyo, Berlin, Beijing, Moscow, London을 답한다. 동시에 문장을 파싱하고, 프롬프트를 완성하고, 그전에 하던 일을 그대로 한다.

세 번 다시 확인하게 만든 디테일

L10에는 710만 파라미터가 있다. 그 전부를 만질 필요는 없다.

학습 대상파라미터결과
L10 전체7.1M8/8
Attention만 (FFN 동결)2.4M8/8
FFN만 (Attention 동결)4.7M8/8
Wv slice만 (Q, K, FFN 모두 동결)590K8/8

Wv slice는 value projection이다. c_attn.weight[:, 1536:2304] — 768×768 행렬. 59만 파라미터. 모델의 0.5%. Q와 K는 gradient-mask로 묶어 변경 없음을 확인했다. 수정된 slice의 ΔL2는 4.83, 가장 큰 변화도 0.027에 그친다.

이게 외과수술의 실제 모습이다. 모델의 0.5%를 한 번 손봐서, 여덟 개의 실패를 모두 바로잡는다. 다른 곳에 흠집 하나 없이.

네 가지 학습 설정 모두 L10 수술 후 수도 8/8 도달
네 가지 설정 (7.1M / 2.4M / 4.7M / 590K), 같은 결과 (8/8).

이게 아닌

지식을 새로 넣는 게 아니다. 모델은 이미 그 지식을 갖고 있었다. L10 H8가 Paris를 +25.8로 운반하는 장면이 그 증거다. 외과수술은 경로를 고칠 뿐, 데이터를 고치지 않는다. 모델이 정말로 모르는 사실이라면 다른 방법이 필요하다.

스케일 주장도 아니다. 이건 GPT-2 small이다. Llama-7B 정도, 혹은 그 이상에서 같은 패턴이 작동할지는 다음에 답해야 할 질문이지 지금 답해진 질문이 아니다. 라우팅과 저장의 구분이 큰 모델에서 갑자기 깨질 만한 이유는 보이지 않지만, 검증되기 전까지 보장되는 것은 아무것도 없다.

마법도 아니다. 진단이 정확했기 때문에 작동한 것이다. L10이 라우팅 병목이라는 사실 — 레이어별 logit을 따라가서 얻어낸 결론 — 없이는 정확한 편집 자체가 불가능하다. 개입이 작은 이유는 진단이 구체적이었기 때문이다.

무엇이 바뀌는가

딥러닝에서 수리의 표준 모델은 더 많은 학습이다. 모델이 어긋나면 fine-tune, 정렬 문제가 생기면 align, 새 데이터가 들어오면 continually pre-train. 변경의 단위는 늘 학습 한 번이다.

외과적 편집은 다른 단위를 제안한다. 정확한 변경, 정확한 자리, 한 번의 적용, 손상 없음.

학습의 대체가 아니라 보완이다. 적용할 자리가 분명하다.

  • 실패가 라우팅일 때 — 시스템에 답이 있는데 잘못된 출력이 나가는 경우 — 외과수술이 맞다.
  • 실패가 진짜 부재일 때 — 시스템이 답을 가진 적 없는 경우 — 학습이 맞다.
  • 실패가 정렬일 때 — 시스템의 목표가 잘못된 경우 — 외과수술은 아마 맞지 않다. 그래도 재학습을 가정하기 전에 라우팅 쪽을 먼저 의심해 볼 가치는 있다.

이 셋을 구분하는 일이 먼저다. 진단의 역할이 거기에 있다. 가중치를 읽어 각 헤드가 무얼 할 수 있는지 보고, 입력별 logit을 추적해 각 헤드가 실제로 무얼 했는지 본다. 이겨야 할 신호가 어디서 덮이는지를 짚어낸다.

이 패턴이 일반화된다면 — 정보를 보유하는 것과 전송하는 것의 구분은 어떤 스케일에서도 살아남을 만한 구분이니 — 모델 유지보수의 모습이 완전히 달라진다. *“어긋나면 재학습한다”*가 아니라 “실패를 진단하고, 그 레이어를 편집하고, 그대로 배포한다.”

다른 운영 규율이다. 정원을 가꾸기보다, 외과수술에 가깝다.

확신과 미확신

확신하는 것: GPT-2 small에서, 위에 설명한 진단 방법을 따르면, 틀렸던 여섯 개의 수도 답을 59만 파라미터 수정만으로 모두 바로잡을 수 있다. 일반 능력과 부작용 패널은 측정 노이즈 안에서 변하지 않는다. 수정된 가중치는 누구나 검증할 수 있게 공개되어 있다.

확신하지 못하는 것: 라우팅과 저장의 구분이 오늘날의 LLM에서 얼마나 넓게 적용되는지. 실세계의 실패 가운데 라우팅 실패가 차지하는 비율이 얼마나 되는지. 모델이 커질 때 편집의 크기가 얼마나 작게 유지되는지. 진단이 수천 개의 사실에 자동화로 잘 풀리는지.

이게 다음에 물어야 할 질문들이다. 첫 번째 답 — 외과수술이 가능하다는 것 — 은 이미 나왔다.


Source: paper9 — QKV Decomposition for Transformer XAI. Zenodo · HuggingFace (수정된 가중치 + 대시보드).