본문 바로가기

AI agent & LLM

Transformer

Transformer Explainer

https://poloclub.github.io/transformer-explainer/
 

Transformer Explainer: LLM Transformer Model Visually Explained

An interactive visualization tool showing you how transformer models work in large language models (LLM) like GPT.

poloclub.github.io

 

Transformer Explainer: 브라우저에서 GPT-2를 해부해보는 시각화 도구

Georgia Tech Polo Club에서 만든 Transformer Explainer는 이런 장벽을 낮춰 주는 인터랙티브 웹 도구로, 브라우저 안에서 GPT‑2(small) 모델의 내부를 시각적으로 탐색할 수 있게 해줍니다.

Transformer의 세 가지 핵심 단계

이 페이지는 텍스트 생성용 Transformer를 세 단계로 나눠 설명합니다.

  • Embedding: 입력 문장을 토큰화한 뒤 각 토큰을 768차원 벡터로 바꾸고, 위치 정보를 더해 최종 임베딩을 만듭니다.
  • Transformer Block: 다중 헤드 Self‑Attention과 MLP가 여러 층 쌓여 토큰 표현을 점점 풍부하게 만드는 과정을 보여줍니다.
  • Output Probabilities: 마지막 토큰의 표현으로부터 50,257개 어휘에 대한 로짓과 확률을 계산해, 다음에 올 토큰을 예측합니다.

각 단계는 도식과 숫자로 시각화되어 있어서, 마우스로 요소를 가리키면서 토큰 임베딩, Q/K/V, 어텐션 헤드, MLP 확장(768→3072→768) 같은 세부 내용을 자연스럽게 따라가 볼 수 있습니다.

Self‑Attention과 샘플링 전략을 눈으로 보는 경험

Transformer Explainer의 핵심은 Self‑Attention을 “보이게” 만드는 부분입니다.

Q, K, V 행렬이 어떻게 만들어지는지, 마스크 적용과 소프트맥스 이후 각 토큰이 어디에 얼마나 집중하는지를 어텐션 맵과 함께 단계적으로 보여줍니다. 여러 개의 헤드를 좌우로 넘기며, 어떤 헤드는 짧은 문법 패턴에, 또 다른 헤드는 긴 범위의 의미 관계에 집중하는 모습을 직접 확인할 수 있습니다.

또한 출력 단계에서는 온도(temperature) 슬라이더와 Top‑k / Top‑p 라디오 버튼을 제공해, 온도를 낮췄을 때 얼마나 결정적이고 보수적인 분포가 되는지, 온도를 높이거나 Top‑k, Top‑p를 조정했을 때 분포가 어떻게 퍼지면서 창의적인 샘플이 나오는지를 확률 막대 차트를 통해 바로 비교할 수 있습니다.

브라우저에서 돌아가는 실시간 GPT‑2

흥미로운 점은 이 도구가 단순한 애니메이션이 아니라, 실제 GPT‑2(small) 모델을 브라우저에서 실행한다는 점입니다. Karpathy의 nanoGPT 기반 PyTorch 모델을 ONNX Runtime으로 변환해 클라이언트 측에서 추론을 수행하고, Svelte와 D3.js로 인터페이스와 시각화를 구성했습니다. 사용자가 텍스트를 입력하면, 관련 수치와 시각화가 실시간으로 업데이트되어 “지금 이 토큰이 어떤 경로를 통해 생성됐는지”를 바로 따라가 볼 수 있습니다.


 Illustrated Transformer

 

https://jalammar.github.io/illustrated-transformer/

 

The Illustrated Transformer

Discussions: Hacker News (65 points, 4 comments), Reddit r/MachineLearning (29 points, 3 comments) Translations: Arabic, Chinese (Simplified) 1, Chinese (Simplified) 2, French 1, French 2, Italian, Japanese, Korean, Persian, Russian, Spanish 1, Spanish 2,

jalammar.github.io

  

이 글은 트랜스포머 논문(Attention is All You Need)을 그림과 직관적인 설명으로 풀어쓴 시각화 튜토리얼입니다.

글의 목적과 특징

  • 기계번역 예시를 중심으로 트랜스포머가 입력 문장을 어떻게 받아서 다른 언어의 문장으로 바꾸는지 단계별로 설명합니다.
  • 수식·코드보다 도식, 상자 그림, 색깔 등을 많이 써서 비전공자도 개념을 잡기 쉽게 구성되어 있습니다.

다루는 핵심 내용

  • 인코더·디코더 스택 구조, 각 층에 있는 self-attention, feed-forward 네트워크, 잔차 연결과 layer norm의 역할을 설명합니다.
  • self-attention을 단어 수준 예시(“it”이 “animal”을 가리키는지 등)로 직관을 잡고, 이후 Query/Key/Value와 행렬 연산까지 연결해 줍니다.
  • multi-head attention, positional encoding(사인/코사인 기반), 마스킹된 디코더 self-attention, 마지막 linear + softmax로 단어를 뽑는 과정까지 전체 forward pass를 한 번에 조망해 줍니다.

최신 업데이트

  • 원 글을 바탕으로 한 LLM 책(Hands-On Large Language Models, LLM-book.com)과, 애니메이션으로 보강한 무료 숏 코스(“How Transformer LLMs Work”)가 소개되어 있어, 2018년 글을 최신 LLM 관점에서 확장해서 볼 수 있습니다.

Misture of Experts in Transformers 

 

https://huggingface.co/blog/moe-transformers

 

Mixture of Experts (MoEs) in Transformers

We’re on a journey to advance and democratize artificial intelligence through open source and open science.

huggingface.co

이 글은 최신 트랜스포머 기반 Mixture of Experts(MoE) 모델을 소개하고, Hugging Face transformers 라이브러리가 MoE를 1급 시민으로 지원하기 위해 내부를 어떻게 갈아엎었는지 설명하는 기술 블로그입니다.

글의 핵심 요약

  • 거대 Dense LLM은 성능은 좋지만, 학습·추론 비용과 메모리 한계 때문에 더 키우기 어려워졌고, 이를 해결하기 위해 MoE가 각광받고 있다는 배경을 설명합니다.
  • MoE는 일부 FFN 레이어를 여러 개의 expert 서브네트워크로 바꾸고, 토큰마다 라우터가 소수의 expert만 활성화해서, 총 파라미터 수는 크지만 실제로 쓰는 파라미터는 적은 구조를 만든다는 점을 강조합니다.
  • 예로 gpt-oss-20b 모델이 총 21B 파라미터지만 토큰당 3.6B 정도만 active라, Mac M3 Ultra에서 100 tok/s 이상 뽑히는 식의 직관적 계산과 실제 벤치 결과를 보여주며 MoE의 효율성을 설명합니다.

MoE가 왜 뜨는지

  • 같은 FLOPs 예산에서 MoE가 dense 모델보다 연산 효율이 더 좋고, 학습 커브도 더 빠르게 내려간다는 그래프(OLMoE 논문)들을 인용합니다.
  • 전문가 축(axis)을 기준으로 병렬화를 하기 쉬워 natural parallelization axis를 제공하고, Qwen 3.5, DeepSeek R1, Mixtral-8x7B 같은 최근 대형 공개·비공개 모델들이 MoE를 적극 채택 중이라고 정리합니다.

transformers 내부 개선: Weight Loading

  • 기존 dense 가정의 from_pretrained 파이프라인으로는, 수백 개 expert 텐서를 하나의 packed tensor로 합쳐야 하는 MoE에 비효율적이라는 문제를 짚습니다.
  • 이를 해결하기 위해 WeightConverter라는 추상화를 도입해서, 체크포인트를 단순 key‑copy가 아니라 “변환 파이프라인”으로 보고, MergeModulelist, SplitModulelist, Concatenate 등을 조합해 MoE용 커널이 원하는 layout으로 자동 변환하게 합니다.
  • 체크포인트 스캔을 1회로 줄이고, 비동기 로딩과 의존성 기반 스케줄링으로 메모리 피크를 낮추면서, v4와 v5 사이에 Qwen1.5‑110B-Chat 로딩 시간이 수십 초에서 10초대까지 줄어드는 벤치마크를 보여줍니다.

Expert Backend와 병렬화

  • MoE 레이어가 실제로 어떻게 expert를 라우팅·계산·집계할지를 모델 구현에서 분리하기 위해,  @use_experts_implementation 데코레이터 기반의 Expert Backend 시스템을 도입했다고 설명합니다.
  • 현재 세 가지 backend를 제공한다고 정리합니다:
    • eager: correctness/debug 용 단순 루프
    • batched_mm: torch.bmm로 expert별 weight를 복제해 배치 GEMM
    • grouped_mm: 토큰을 expert ID로 정렬한 뒤 torch._grouped_mm으로 큰 배치 GEMM (대규모 배치·메모리 제약에 유리)
  • 한편, 단일 GPU에 안 들어갈 수준의 거대 MoE를 위해 Expert Parallelism을 제공하고, 각 GPU가 일부 expert만 들고 처리한 뒤 all‑reduce로 결과를 합치는 구조(GroupedGemmParallel, RouterParallel)를 설명합니다.

MoE 학습 지원과 결론

  • 추론뿐 아니라 학습 측면에서도 MoE는 파라미터 수, 통신, 라우팅 불안정성 때문에 까다롭다고 짚고, Unsloth와 협업해 torch._grouped_mm와 Triton 커스텀 커널 + LoRA를 활용, v4 대비 최대 수십 배의 학습 속도 향상과 VRAM 절감, 컨텍스트 확장을 달성했다고 정리합니다.
  • 글은 “sparse 아키텍처가 계속 발전하는 만큼 transformers도 함께 진화하겠다”는 메시지와 함께, MoE 실험자/구현자의 피드백을 요청하며 마무리됩니다.

 

'AI agent & LLM' 카테고리의 다른 글

Gemini 3 Pro & Flash 비교 이해  (0) 2026.02.03
Gemini-cli  (0) 2025.07.05
Microsoft BitNet  (0) 2025.05.08