2026.03.12·

Semantic Drift 이야기를 읽고 나서야 납득이 갔다

AILLM코딩
LLM Semantic Drift 개념도
LLM의 의미적 드리프트 모니터링 개념

흥미로운 글을 읽었다. AI로 코딩할 때 왜 "그럴듯한 코드인데 실행하면 여기저기 터지는" 현상이 반복되는지, 그리고 그 근본 원인이 무엇인지 새로운 시각으로 짚는다.

문제: Semantic Drift (의미적 드리프트)

AI가 생성한 코드에서 버그가 발견되면 수정을 요청한다. 그런데 수정할수록 다른 곳에서 새로운 오류가 터진다. 이걸 의미적 드리프트(Semantic Drift)라고 부른다. 버그가 한 군데에 그치지 않고 코드베이스 전반에 산재한다. 하나를 고치면 다른 곳이 깨지는 연쇄 반응이 일어난다.

핵심 원인은 LLM이 평평한(유클리드) 임베딩 공간에서 동작한다는 점이다. 이 공간에서는 "정답으로 가는 경로"와 "버그로 가는 경로"의 비용이 동일하다. 모델 입장에서는 두 경로를 구분할 인센티브가 없다.

해결 아이디어: 임베딩 공간에 곡률 부여

모델을 재학습하거나 파인튜닝하는 대신 임베딩 공간 자체에 곡률에너지 지형(Lyapunov cost field)을 부여하자고 제안한다.

"버그로 향하는 경로"를 비싸게, "정답으로 향하는 경로"를 싸게 만드는 것이 핵심이다.

메커니즘: 추론 시 렌즈(Lens) 보정

추론 시점에 임베딩을 한 번 보정하는 렌즈를 추가한다.

  • 업데이트 규칙: Δx = − G⁻¹ ∇C
  • C(x): 실패/위험(버그, 보안 취약점 등)에 높은 에너지를 부여하는 비용 함수
  • G(x): 공간의 메트릭으로, "잘못된 방향 이동"을 비싸게 만드는 곡률

이 구조에서 에러 연쇄 경로는 정답 경로 대비 5~7배 비용이 커진다고 주장한다. 측지선(geodesic)과 어트랙터(attractor) 개념을 활용해서 사후 필터링이 아니라생성 이전부터 잘못된 경로가 불리해지도록 유도한다는 점이 흥미롭다.

운영 관점

거대 모델은 동결 상태로 두고 수 MB~10MB 정도의 가벼운 렌즈만 주기적으로 업데이트한다. 재학습 대비 비용과 시간이 크게 절감된다. 기저 모델을 건드리지 않으니 회귀 위험도 낮다.

느낀 점

아직 이론적인 제안 단계이지만 "왜 AI가 코드를 고칠수록 더 꼬이는가"에 대한 설명이 납득이 갔다. 평평한 임베딩 공간에서는 정답과 오답의 경로 비용이 같다는 관점이 특히 인상적이었다. 실제 도구로 구현된다면 AI 코딩의 신뢰도가 한 단계 올라갈 수 있을 것 같다.