트랜스포머 모델의 어텐션 메커니즘을 시각화하다
Key Point
LLM이 토큰을 생성할 때 어떤 과거 정보를 참고하는지 처음으로 직관적으로 볼 수 있어, 언어 모델의 동작 원리를 이해하는 데 도움이 된다.
핵심 요약
- 트랜스포머 기반 LLM이 다음 토큰을 생성할 때 과거 토큰들로부터 얼마나 정보를 가져오는지 보여주는 인터랙티브 시각화 도구를 만들었다.
- 생성된 각 토큰을 클릭하면 영향을 미친 이전 토큰들이 투명도로 표시되며, 모든 어텐션 헤드와 레이어의 가중치를 집계하고 값 벡터 크기로 조정한 결과다.
- 예제에서 주소와 날짜처럼 그대로 복사되는 텍스트는 원본 데이터에서 높은 어텐션을 받으며, 작은 모델도 전체 함수 코드를 정확히 재현할 수 있는 이유를 보여준다.
- 구현은 Transformers.js로 만든 React 앱이지만, 어텐션 데이터를 추출하기 위해 맞춤형 생성 루프를 직접 구현했다.
- ONNX 파일의 내부 값에 접근하기 어려워 ONNX 파일을 수정해 필요한 데이터를 노출시키고, 이를 Hugging Face 저장소에 올려 브라우저에서 사용한다.