---
title: "Llama 내부에서 발견된 ‘기하학 계산기’, 달력 계산도 덧셈 모듈로 푼다"
published: 2026-05-18T22:19:54.000Z
canonical: https://jeff.news/article/2928
---
# Llama 내부에서 발견된 ‘기하학 계산기’, 달력 계산도 덧셈 모듈로 푼다

Goodfire가 Llama 3.1 8B 내부에서 요일, 월, 숫자 덧셈을 함께 처리하는 공통 ‘덧셈 모듈’을 발견했다. 숫자를 직선이나 이진수처럼 표현하는 게 아니라 여러 개의 원형 푸리에 특징으로 표현하고, 각 원 위에서 모듈러 덧셈을 병렬로 수행한다는 게 핵심이다.

## Llama 안에서 ‘덧셈 모듈’을 찾았다는 얘기

- Goodfire가 Llama 3.1 8B 내부에서 꽤 노골적인 ‘기하학 계산기’를 찾아냄
  - 예를 들어 “8월에서 6개월 뒤는?” 같은 질문을 사람이 달력 원형 이미지를 떠올리듯 푸는 게 아니라, 모델은 내부적으로 August를 8로 바꾸고 8 + 6 = 14를 계산한 뒤 February로 되돌리는 식으로 처리하는 것으로 보임
  - 더 흥미로운 건 이 과정이 여러 번 추론 루프를 도는 게 아니라 네트워크의 단일 forward pass 안에서 일어난다는 점임

- 연구진이 주목한 곳은 Llama 3.1 8B의 18번째 레이어에 있는 공통 덧셈 모듈임
  - “7 + 9는?”, “금요일 이틀 뒤는?”, “8월에서 16개월 뒤는?”처럼 겉보기엔 다른 문제들이 같은 내부 메커니즘을 공유함
  - 훈련 중 파라미터 수는 제한돼 있으니, 모델 입장에선 비슷한 구조의 문제를 같은 회로로 재사용하는 게 효율적임

> [!IMPORTANT]
> 핵심은 LLM이 숫자, 요일, 월을 전부 똑같이 외운 게 아니라 ‘더하기 비슷한 구조’를 가진 문제를 하나의 내부 모듈로 재사용한다는 점임.

## 숫자를 직선이 아니라 여러 개의 원으로 표현함

- 이 연구에서 제일 맛있는 부분은 숫자 표현 방식임 — 모델이 숫자를 내부 자나 이진수처럼 다루지 않음
  - 대신 활성 공간 안의 여러 원형 특징으로 숫자를 표현함
  - 17이라는 숫자는 mod-2 원에서는 1, mod-5 원에서는 2, mod-10 원에서는 7, mod-100 원에서는 17 위치로 표현되는 식임

- 왜 굳이 mod-2, mod-5, mod-10 같은 작은 원까지 쓰는지는 아직 완전히 풀린 문제는 아님
  - 연구진은 큰 원이 정밀하지 않기 때문에 작은 주기의 특징이 16, 17, 18처럼 가까운 숫자를 구분하는 데 도움을 줄 수 있다고 봄
  - 이건 Weber의 법칙처럼 큰 값으로 갈수록 상대적 차이를 구분하기 어려워지는 현상과도 연결됨

- 이런 원형 표현은 뜬금없는 꼼수가 아니라 푸리에 분해(Fourier decomposition)에 가까운 수학적 표현임
  - 기존 연구들도 여러 대규모 언어 모델(LLM)에서 비슷한 원형 숫자 특징을 발견해왔음
  - Goodfire의 기여는 여기서 한 발 더 들어가, 그 표현 위에서 실제 계산이 어떻게 벌어지는지 보여준 데 있음

## 덧셈은 여러 작은 나머지 계산으로 쪼개짐

- 모델은 6 + 8 같은 계산을 하나의 큰 덧셈으로만 풀지 않고, 각 원 위의 작은 모듈러 덧셈으로 병렬 처리함
  - mod-2에서는 6 mod 2와 8 mod 2를 더해 0을 얻음
  - mod-5에서는 1 + 3 = 4를 얻음
  - mod-10에서는 6 + 8 = 14, 즉 4를 얻음

- 이 작은 결과들을 합치면 출력 쪽 원형 특징들이 숫자 14를 나타내게 됨
  - 요일과 월도 결국 순환 구조를 가진 개념이라 비슷한 방식으로 계산될 수 있음
  - “금요일 이틀 뒤”와 “8월에서 6개월 뒤”가 같은 회로를 타는 이유가 여기서 나옴

```mermaid
sequenceDiagram
participant 입력토큰 as 입력 토큰
participant 숫자표현 as 원형 숫자 표현
participant 덧셈모듈 as 18번째 레이어 덧셈 모듈
participant 출력표현 as 출력 원형 표현
participant 다음토큰 as 다음 토큰 예측
입력토큰->>숫자표현: 월·요일·숫자를 주기 좌표로 변환
숫자표현->>덧셈모듈: mod-2, mod-5, mod-10 특징 전달
덧셈모듈->>덧셈모듈: 각 주기에서 병렬 모듈러 덧셈
덧셈모듈->>출력표현: 합에 해당하는 원형 특징 생성
출력표현->>다음토큰: February 같은 답 토큰으로 연결
```

## 단순 시각화가 아니라, 조작하면 답이 바뀜

- 연구진은 이 원형 특징들이 그냥 보기 좋은 시각화 산물이 아니라 실제 계산 객체라는 점을 보이려 함
  - 덧셈 모듈의 출력 방향을 steering해서 “8월에서 16개월 뒤는?” 같은 질문의 downstream 예측이 바뀌는지 확인함
  - 내부 원형 표현을 밀었더니 모델의 월 예측도 같이 바뀌었다는 건 꽤 강한 인과 단서임

- 개별 뉴런 수준에서도 주기별 역할 분리가 보임
  - 어떤 뉴런은 mod-2 문제에, 어떤 뉴런은 mod-5 문제에 특화된 식으로 클러스터가 나뉨
  - 네 가지 서로 다른 작업에서도 비슷한 발화 패턴이 반복돼, 이 모듈이 특정 프롬프트 전용 꼼수가 아니라는 해석을 뒷받침함

- 결론은 신경망이 개념을 기하학적으로 저장만 하는 게 아니라, 그 기하학 위에서 계산한다는 것임
  - 표현(representation)과 계산(computation)을 같이 봐야 모델 행동, 일반화, 디버깅, 제어를 제대로 이해할 수 있다는 주장으로 이어짐
  - “LLM 내부를 알 수 없다”에서 멈추기엔, 이제 꽤 구체적인 회로 단위 사례들이 나오고 있음

---

## 기술 맥락

- 여기서 선택된 기술적 관점은 숫자를 스칼라 값이 아니라 여러 주기의 원형 특징으로 보는 방식이에요. 왜 중요하냐면 LLM 내부 표현을 직선 좌표처럼 상상하면 요일, 월, 숫자 계산이 같은 회로를 공유하는 이유를 설명하기 어렵거든요.

- Goodfire가 18번째 레이어의 덧셈 모듈을 추적한 이유는 “모델이 답을 맞혔다”보다 “어떤 중간 계산으로 맞혔는가”가 디버깅에 더 쓸모 있기 때문이에요. 특히 같은 모듈이 산술, 요일, 월 계산에 재사용된다면 특정 능력의 일반화가 어디서 나오는지 더 잘 볼 수 있어요.

- steering 실험이 중요한 건 활성 공간의 원형 구조가 단순한 해석 도구인지, 실제 추론에 쓰이는 부품인지 가르는 기준이 되기 때문이에요. 내부 표현을 조작했을 때 최종 토큰 예측이 같이 움직이면, 그 표현은 모델 행동에 연결된 계산 경로일 가능성이 커져요.

- 실무적으로는 아직 바로 제품 코드에 넣을 기술은 아니지만, 모델 제어와 안전성 쪽에선 꽤 큰 힌트예요. 잘못된 추론이나 특정 능력을 고치려면 프롬프트만 만질 게 아니라 내부 회로와 표현을 겨냥해야 할 수도 있거든요.

## 핵심 포인트

- Llama 3.1 8B의 18번째 레이어에서 여러 작업에 재사용되는 덧셈 모듈이 발견됨
- 숫자는 mod-2, mod-5, mod-10, mod-100 같은 여러 원형 특징으로 표현됨
- 월과 요일 같은 순환 개념도 내부적으로 숫자로 바꿔 덧셈한 뒤 다시 토큰 예측으로 연결됨
- 연구진은 steering으로 모듈 출력을 조작해 실제 예측이 바뀌는 인과 증거를 제시함

## 인사이트

이 글이 재밌는 건 ‘LLM이 계산을 잘한다’가 아니라, 계산을 어떤 내부 형상과 회로로 재사용하는지 꽤 구체적으로 보여준다는 점이다. 해석 가능성 연구가 시각화 수준을 넘어 디버깅과 제어 가능한 기계 이해로 가려면 이런 사례가 계속 쌓여야 한다.
