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