본문으로 건너뛰기

LLM의 토큰 복사를 드러내는 어텐션 시각화

어텐션 가중치와 Value Vector를 시각화해 LLM이 과거 토큰을 조합하고 복사하는 과정을 추적합니다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

Transformer 기반 LLM은 다음 토큰을 만들 때 모든 과거 토큰을 동일하게 반영하지 않고, Attention Mechanism으로 필요한 토큰에서 정보를 선택적으로 가져옵니다. 이 글의 브라우저 시각화는 Attention Weight와 Value Vector의 크기를 여러 Head와 Layer에 걸쳐 합산한 뒤 과거 토큰의 불투명도로 바꿔, 복사된 주소·날짜나 JavaScript 코드가 어떤 입력 토큰과 연결되는지 확인하게 합니다. 6억 개 파라미터의 작은 모델도 힌트를 받으면 기존 함수의 수정 부분을 제외한 코드를 거의 그대로 재현하며, 여러 문구에서 정보를 결합해 새 표현을 만들기도 합니다. 구현에는 React와 Transformers.js가 쓰였고, 내부 값을 노출하도록 수정한 ONNX 모델을 별도의 Hugging Face 저장소에 올려 브라우저에서 미리 생성한 프롬프트를 즉시 불러오도록 구성했습니다.

섹션별 상세

01
Transformer 기반 LLM은 다음 토큰을 생성할 때 이전 토큰 전체에 접근하지만, 각 토큰의 영향력을 동일하게 취급하지 않고 Attention Mechanism으로 선택합니다. 시각화는 특정 생성 토큰을 클릭하거나 마우스를 올렸을 때 관련된 과거 토큰을 불투명도로 구분합니다. 이를 통해 모델이 제한된 내부 상태에서 전체 문장을 다시 추측하기보다 필요한 입력 토큰을 직접 참고해 복사 오류 가능성을 낮추는 구조가 드러납니다.
02
이 시각화의 불투명도는 단일 Attention 값이 아니라 Attention Weight에 Value Vector의 크기를 반영한 값을 모든 Attention Head와 Layer에서 합산한 결과입니다. 가장 큰 값은 불투명도 1로 두고 나머지는 그 사이 값으로 보간해 한 과거 토큰의 영향력을 표현합니다. 여러 차원의 정보를 하나의 숫자로 압축했기 때문에 실제 모델 내부의 모든 관계를 보존하지는 않지만, 주소와 날짜처럼 입력에서 그대로 복사된 문자열의 원천 토큰이 두드러지는 패턴을 확인할 수 있습니다.
03
600 million parameters 규모의 작은 모델은 힌트를 제공받은 뒤 JavaScript 평균 함수에서 의도한 수정 부분을 제외한 나머지 코드를 거의 그대로 재현합니다. 이는 모델이 코드 전체를 매번 확률적으로 새로 작성하기보다 이전 토큰에 접근해 복사할 부분을 선택하는 과정을 관찰하게 합니다. 다만 모델이 코드의 문제를 스스로 찾아낸 것은 아니므로, 정확한 수정에는 외부 힌트가 필요합니다.
04
Office Move Summary 예시에서 생성된 문장 속 remain은 서로 다른 두 문구의 정보를 결합합니다. 모델은 기존 직원 출입 카드가 work한다는 표현과 회사 전화번호가 stay the same이라는 표현에서 정보를 가져와 Existing access cards and phone numbers remain이라는 문맥을 구성합니다. 하나의 출력 토큰이 단일 입력 구절을 복사하는 데 그치지 않고 여러 표현의 의미적 단서를 결합할 수 있다는 점이 이 사례에서 드러납니다.
05
구현은 React 앱에서 Transformers.js로 텍스트를 생성하지만, 시각화에 필요한 중간 값을 얻으려면 일반적인 생성 루프만으로는 부족합니다. ONNX 모델은 미리 정의된 출력 외의 내부 값을 쉽게 노출하지 않고 계산은 WASM에서 수행되므로, 작성자는 내부 값을 출력하도록 ONNX 파일을 수정한 별도 모델을 만들었습니다. 브라우저에서 수백 MB 규모 모델을 매번 내려받는 대기를 줄이기 위해 여러 프롬프트의 결과를 미리 생성하고 즉시 불러오는 방식도 함께 사용했습니다.

용어 해설

어텐션 메커니즘(Attention Mechanism)
Transformer 기반 LLM이 다음 토큰을 생성할 때 이전 토큰마다 얼마나 정보를 참고할지 정하는 메커니즘입니다. 각 Attention Head와 여러 Layer에서 계산한 가중치가 토큰 간 영향 관계를 형성하며, 모델이 긴 문맥에서 필요한 정보를 선택적으로 가져오게 합니다.
어텐션 가중치(Attention Weight)
특정 토큰이 다음 토큰 생성에 얼마나 크게 관여하는지를 나타내는 값입니다. 이 글의 시각화는 Attention Weight에 Value Vector의 크기를 곱한 뒤 모든 Head와 Layer의 값을 합산해 과거 토큰의 불투명도로 변환합니다.
Value 벡터(Value Vector)
Attention에서 다른 토큰으로 전달할 실제 정보를 담는 벡터입니다. 글의 시각화는 단순한 Attention Weight만 사용하지 않고 Value Vector의 크기까지 반영해 특정 과거 토큰이 생성 과정에 전달한 정보량을 하나의 수치로 근사합니다.
Transformers.js
브라우저와 JavaScript 환경에서 Transformer 모델을 실행하는 라이브러리입니다. 이 글에서는 텍스트 생성과 내부 값 추적에 사용되며, 일반적인 생성 루프보다 더 많은 중간 데이터를 확보하기 위해 별도의 생성 로직이 필요했습니다.
ONNX(onnx)
모델의 계산 그래프와 연산 구조를 저장하는 형식입니다. Transformers.js는 ONNX 파일 전체를 WASM에서 처리하므로 기본 출력으로 지정되지 않은 내부 값을 바로 꺼내기 어렵고, 글에서는 내부 값을 노출하도록 파일을 수정한 모델을 별도로 만들었습니다.

기술

  • Transformer
  • Attention Mechanism
  • React
  • Transformers.js
  • JavaScript
  • ONNX
  • WASM
  • Hugging Face

활용 사례

  • LLM의 토큰별 정보 참조 관계 시각화
  • LLM이 입력 문장을 복사하거나 여러 구절을 결합하는 과정 분석
  • 브라우저 기반 Transformer 텍스트 생성
  • JavaScript 코드 생성 과정에서 원본 토큰 추적
AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 09. 09.수집 2026. 09. 09.출처 타입 RSS

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.