
최근 한 개발자가 "10자리 수 두 개를 더하는 최소 트랜스포머"를 직접 설계해 공개하면서, 거대한 LLM이 아닌 '아주 작은 회로'로도 계산이 가능하다는 점이 화제가 됐습니다1. 이 글에서는 그 뉴스가 왜 의미 있는지 짚고, 트랜스포머가 덧셈을 배우는 방식(자리올림, 토큰, self-attention)과 함께 "작게 만들면 어디까지 믿을 수 있나"라는 현실적인 한계까지 정리해봅니다.
Minimal Transformer for 10-digit Addition이 흥미로운 이유
10자리 덧셈은 인간에게도 만만치 않습니다. 우리는 종이에 세로셈을 쓰거나 계산기를 켜죠. 그런데 트랜스포머는 원래 텍스트의 패턴을 다루는 모델인데, 이걸 '덧셈 전용'으로 극단적으로 줄이면 어떻게 될까요? 이번 사례가 재미있는 이유는 성능 자랑이라기보다, "트랜스포머가 실제로 어떤 최소 구성으로 '자리올림 규칙'을 흉내 낼 수 있는가"를 실험하는 데 가깝기 때문입니다1.
이런 미니 모델은 실무에서 바로 쓰기보다는, 해석 가능성(어떤 가중치가 어떤 역할을 하는지)과 아키텍처의 계산 능력을 이해하는 교육용·연구용 장난감으로 가치가 큽니다. '큰 모델이 왜 똑똑해 보이는지'를 뜯어보는 좋은 현미경 같은 느낌이랄까요.
10자리 덧셈을 토큰으로 바꾸면 '자리올림 게임'이 된다
컴퓨터에게 덧셈은 결국 자리값(place value)과 자리올림(carry)의 규칙을 처리하는 문제입니다. 10진수 숫자는 각 자리의 값이 10의 거듭제곱으로 의미가 갈리니, 같은 '7'이라도 일의 자리 7과 백만의 자리 7은 역할이 다릅니다23. 그래서 덧셈을 잘하려면 "각 자리에서 두 숫자를 더한 결과"뿐 아니라 "오른쪽 자리에서 올라온 carry"를 반영해야 합니다.
여기서 트랜스포머 관점으로 바꾸면, 입력은 보통 '문자 토큰'처럼 취급됩니다. 예를 들어 123... + 456... 같은 문자열을 숫자 토큰들의 시퀀스로 보고, 모델은 다음 토큰(결과의 각 자리)을 생성하도록 훈련됩니다. 문제는 carry가 '오른쪽에서 왼쪽으로' 전파된다는 점입니다. 즉, 어떤 자리의 정답은 자기 자리 숫자 2개만 보고는 결정할 수 없고, 오른쪽 자리에서 무슨 일이 있었는지를 알아야 합니다.
Self-attention이 덧셈에 필요한 이유(작지만 결정적)
트랜스포머의 본체는 self-attention입니다. 각 토큰이 "내 정답을 위해 누구를 참고해야 하지?"를 매번 다르게 정하는 장치죠4. 덧셈에서는 이 기능이 특히 직관적으로 드러납니다. 어떤 자리 토큰은 오른쪽 자리(혹은 여러 자리)의 상태를 참조해야 carry를 알 수 있으니까요.
흥미로운 포인트는, self-attention이 들어가면 모델이 입력에 따라 "참조 경로"를 바꿀 수 있다는 겁니다. 어떤 경우엔 carry가 길게 연쇄 전파되고(예: 999... + 1), 어떤 경우엔 거의 전파되지 않죠. 이때 작은 모델은 제한된 파라미터로 그 '연쇄 패턴'을 대충 흉내 내며 동작합니다. 그래서 잘 맞을 때는 놀랍도록 그럴듯하지만, 범위를 벗어나면 이상한 숫자를 내놓는 식의 실패도 쉽게 발생합니다. 실제로 10자리에 맞춰 훈련된 작은 모델은 11자리 입력에서 엉뚱한 값을 뱉을 수 있고, 실패 양상이 입력마다 깔끔한 규칙 없이 흔들린다는 지적도 나옵니다5.
10자리는 잘하는데 11자리에서 무너지는 이유: "일반화"의 벽
사람은 자릿수가 늘어나면 실수 확률이 서서히 늘어나는 경향이 있습니다. 반면 많은 신경망은 학습 분포 바깥(out-of-distribution)으로 나가면 성능이 '절벽처럼' 떨어지곤 합니다5. 10자리 덧셈 전용으로 맞춘 미니 트랜스포머는 특히 그렇습니다. 모델 내부에 "무한 자릿수에도 통하는 알고리즘"이 들어있다기보다, "10자리에서 자주 보이는 carry 패턴"을 압축해 저장한 쪽에 가깝기 때문입니다.
그래서 실전 팁은 단순합니다. 이런 미니 모델을 '정확한 계산기'로 기대하지 말고, 계산은 도구(파이썬, 계산기 호출)에게 맡기고 모델은 문제 이해·설명·검증 같은 역할을 하게 하는 편이 안정적입니다. 큰 LLM에서도 숫자 계산은 종종 도구 사용과 결합할 때 가장 강해집니다5.
시사점
미니 트랜스포머로 10자리 덧셈을 만든 소식은 "모델이 얼마나 작아질 수 있나"보다 "self-attention이 규칙 처리에 어떤 최소 기여를 하는가"를 보여준다는 점에서 의미가 큽니다1. 다만 이런 모델은 입력 길이나 형식이 조금만 바뀌어도 예측 불가능하게 무너질 수 있으니, 제품 기능으로 쓰기엔 위험합니다.
대신 학습용으로는 강력 추천입니다. 숫자 토큰화, 자리값, carry 전파를 데이터로 만들고, self-attention이 무엇을 참조하는지 시각화해보면 "트랜스포머가 규칙을 '이해'한다는 게 정확히 무슨 뜻인지" 감이 옵니다. 그리고 그 결론은 보통 이겁니다. 작게 만들수록 더 선명해지는 진실: 모델은 규칙을 '증명'하는 게 아니라, 규칙을 '압축'해 재현한다.
참고
1Building a Minimal Transformer for 10-digit Addition
4Transformer (deep learning) - Wikipedia
5Smallest transformer that can add two 10-digit numbers | Hacker News
이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.
