TECH 으로 돌아가기
TECH HACKER NEWS 오늘 9분 읽기 26 READS

트랜스포머를 회로처럼 뜯어보기: 어텐션 헤드가 실제로 뭘 하는지 수식으로 설명한 논문

5년 전 논문이 왜 지금 다시 읽히나

2021년 12월, Anthropic이 ‘A Mathematical Framework for Transformer Circuits’라는 논문을 공개했어요. 트랜스포머 모델 안에서 어텐션 헤드들이 정확히 무슨 계산을 하는지, 그걸 사람이 읽을 수 있는 ‘회로’ 단위로 분해해서 설명하려는 시도였는데요. 요즘 LLM 내부를 들여다보는 연구, 그러니까 ‘기계적 해석 가능성(Mechanistic Interpretability)’이라고 부르는 분야가 있잖아요. 이 분야의 출발점 같은 논문이라서, LLM이 어떻게 생각하는지 궁금해진 분들은 결국 이 글로 돌아오게 돼요.

이게 뭐냐면, 신경망을 블랙박스가 아니라 전자회로처럼 취급하자는 거예요. 회로도를 보면 어떤 부품이 어떤 신호를 받아서 어디로 보내는지 따라갈 수 있잖아요. 트랜스포머도 그렇게 부품별로 따라가 보자는 거죠.

잔차 스트림: 모든 레이어가 공유하는 게시판

논문에서 가장 먼저 잡는 개념이 ‘잔차 스트림(residual stream)’이에요. 트랜스포머는 레이어를 쌓아 올린 구조인데, 각 레이어는 입력을 통째로 바꾸는 게 아니라 원래 값에 자기 결과를 ‘더해서’ 넘겨요. 그러니까 처음 임베딩부터 마지막 출력까지 쭉 흐르는 하나의 벡터 통로가 있고, 어텐션 헤드와 MLP는 거기서 정보를 읽고, 계산한 결과를 다시 거기에 써넣는 구조인 거죠.

비유하자면 회사 공용 게시판 같은 거예요. 각 팀(레이어)이 게시판을 읽고 자기 메모를 붙여 놓으면, 다음 팀은 그 게시판 전체를 보고 일해요. 중요한 건 덧셈이라는 점인데요. 덧셈은 순서를 바꿔도 되고 분리도 되니까, ‘최종 출력 = 임베딩의 기여 + 헤드1의 기여 + 헤드2의 기여 + ...’ 처럼 각 부품의 기여를 따로 떼어서 볼 수 있어요. 이게 이 논문 전체를 관통하는 트릭이에요.

어텐션 헤드를 두 개의 회로로 쪼개기

논문은 일부러 MLP를 뺀 ‘어텐션만 있는’ 작은 모델(0층, 1층, 2층)을 분석해요. 복잡한 걸 다 넣으면 아무것도 안 보이니까, 가장 단순한 형태부터 완전히 이해하자는 전략이죠.

여기서 핵심 발견이 하나 나와요. 어텐션 헤드 하나는 사실 서로 독립적인 두 회로의 조합이라는 거예요.

우리가 보통 Q, K, V, O를 네 개의 별도 행렬로 배우잖아요. 근데 실제로 의미가 있는 건 곱해진 두 덩어리뿐이고, 개별 행렬은 그냥 구현상의 분해라는 거예요. ‘누굴 볼지’와 ‘뭘 가져올지’가 완전히 분리돼 있다는 게 이해의 출발점이 돼요.

0층, 1층, 2층에서 각각 무슨 일이 생기나

0층 모델은 임베딩에서 바로 출력으로 가요. 그러면 할 수 있는 게 ‘이 토큰 다음엔 보통 이 토큰이 온다’는 바이그램 통계뿐이에요. 실제로 학습된 가중치를 풀어보면 딱 그렇게 나와요.

1층 모델은 여기에 ‘스킵 트라이그램’이 붙어요. 이게 뭐냐면, 멀리 떨어진 앞 토큰 하나와 현재 토큰을 보고 다음 토큰을 맞히는 패턴이에요. 예를 들어 앞쪽에 ‘keep’이 있고 지금 ‘in’이 나왔으면 다음에 ‘mind’를 올리는 식이죠. 논문은 학습된 헤드의 QK, OV 행렬을 풀어서 이런 규칙들을 표로 뽑아내는데, 마치 정규식 목록처럼 읽혀요. 다만 이 구조엔 한계가 있어서, ‘keep ... in mind’와 ‘keep ... at bay’를 배우면 ‘keep ... in bay’ 같은 이상한 조합도 같이 올라가는 버그 현상까지 수식으로 설명해요.

2층 모델부터 진짜 재밌어져요. 헤드끼리 ‘합성(composition)’이 가능해지거든요. 1층 헤드가 잔차 스트림에 써넣은 결과를 2층 헤드가 Q, K, V 중 어디로 읽느냐에 따라 Q-합성, K-합성, V-합성으로 구분해요. 그리고 K-합성으로 만들어지는 대표적인 회로가 바로 ‘인덕션 헤드(induction head)’예요.

인덕션 헤드가 하는 일은 ‘[A][B] ... [A]’ 패턴을 보면 다음에 [B]를 예측하는 거예요. 1층의 ‘이전 토큰 헤드’가 각 위치에 ‘내 바로 앞 토큰이 뭐였는지’를 적어 두면, 2층 헤드는 ‘지금 토큰과 같은 토큰이 앞에 나왔을 때 그 다음에 뭐가 왔었지?’를 찾아서 복사하는 식이죠. 처음 보는 이름이나 단어를 문서 안에서 반복해 쓰는 능력, 즉 인컨텍스트 러닝의 가장 원시적인 형태가 이 두 헤드짜리 회로에서 나온다는 걸 보여준 거예요.

이후 연구와 업계 흐름

이 논문 이후 흐름이 쭉 이어져요. 2022년엔 ‘인덕션 헤드가 인컨텍스트 러닝의 핵심’이라는 후속 논문이 나왔고, ‘중첩(superposition)’ 문제, 그러니까 뉴런 하나가 여러 의미를 겹쳐 담는 현상을 다룬 토이 모델 연구가 나왔어요. 2023년엔 희소 오토인코더(SAE)로 뉴런 대신 ‘특징(feature)’을 뽑는 방법이 나왔고, 2024년엔 실제 상용 모델에서 수백만 개 특징을 추출해서 특정 특징을 키우면 모델 성격이 바뀌는 걸 보여줬죠. 2025년엔 ‘어트리뷰션 그래프’로 모델이 답을 만드는 경로 자체를 추적하는 단계까지 왔어요.

경쟁 진영도 비슷한 길을 가요. Google DeepMind는 오픈 모델 Gemma용 SAE 세트인 Gemma Scope를 공개했고, OpenAI도 GPT-4 특징 추출 연구를 냈어요. 학계에선 Neel Nanda가 만든 TransformerLens 라이브러리가 사실상 표준 도구가 됐는데, 이 라이브러리의 ‘훅(hook)’ 구조 자체가 이 논문의 잔차 스트림 관점을 그대로 코드로 옮긴 거예요.

한국 개발자에게 주는 시사점

당장 서비스에 쓰는 기술은 아니에요. 하지만 LLM을 다루는 분이라면 배워둘 가치가 커요. 프롬프트가 왜 먹히는지, 퓨샷 예시가 왜 효과 있는지 같은 질문에 ‘인덕션 헤드’ 같은 구체적인 답을 갖게 되거든요. 그리고 이 논문의 분석은 2층짜리 장난감 모델로 하는 거라서, 비싼 GPU 없이도 코랩에서 따라 할 수 있어요. TransformerLens 튜토리얼에 이 논문 내용을 재현하는 노트북이 있으니 거기서 시작하면 돼요.

논문이 좀 길고 수식이 많은데, 잔차 스트림은 덧셈 게시판, 헤드는 QK와 OV 두 회로, 인덕션은 복사 회로. 이 세 가지만 잡고 읽으면 훨씬 수월해요.

정리

한 줄 요약: 트랜스포머를 회로로 분해하면 어텐션 헤드는 ‘누굴 볼지’와 ‘뭘 가져올지’ 두 회로로 쪼개지고, 헤드 두 개만 합쳐도 인컨텍스트 러닝의 씨앗인 인덕션 헤드가 만들어진다.

여러분은 LLM 내부를 이해하는 게 실무에서 얼마나 필요하다고 보세요? 프롬프트 엔지니어링이나 파인튜닝할 때 이런 지식이 실제로 도움이 된 경험이 있으신지 궁금해요.


🔗 출처: Hacker News

SOURCE · HACKER NEWS
원문 전체 보기 → https://transformer-circuits.pub/2021/framework/index.html
SHARE
NEXT · CHOOSE

변화를 읽었다면,
내가 만들 수익 구조를 고릅니다.

정보를 더 모으는 데서 멈추지 않고, 광고·외주·판매·중개·구독 중 내 상황에 맞는 출발점을 정해보세요.

21가지 수익 구조 살펴보기
처리 중...