Skip to main content

Transformer 완벽 이해 가이드 — 구조부터 LLM Serving까지

· 43 min read
Jinwoong Kim
Technologist and Cloud Consultant

해당 포스팅은 현재 재직중인 회사에 관련이 없고, 개인 역량 개발을 위한 스터디 자료로 활용할 예정입니다.

인터랙티브 실습: Transformer Explainer (Georgia Tech) 참고: Hands-On LLM Serving and Optimization (O'Reilly 2026) GPT-2 (small, 124M params) 기준

이 글은 두 파트로 구성된다. Part 1에서는 GPT-2를 기준으로 Transformer의 동작 원리를 하나의 예시 문장("The cat sat on the")이 입력부터 다음 단어 예측까지 거치는 전체 경로를 따라가며 설명한다. Embedding, Self-Attention, MLP, Output 각 단계에서 데이터가 어떤 형태로 변환되는지를 코드와 함께 추적한다. Part 2에서는 학습된 모델을 실제로 서빙할 때의 문제 — Auto-Regressive 생성의 비효율, KV Cache 메모리 관리, Prefill/Decode 병목 — 를 다루고, Continuous Batching, PagedAttention, Quantization, Speculative Decoding 등 주요 최적화 기법과 vLLM/TensorRT-LLM 같은 서빙 프레임워크를 정리한다.

분산 학습 클러스터 — HyperPod vs ParallelCluster vs EKS

· 17 min read
Jinwoong Kim
Technologist and Cloud Consultant

해당 포스팅은 현재 재직중인 회사에 관련이 없고, 개인 역량 개발을 위한 스터디 자료로 활용할 예정입니다.

시리즈의 마지막 편이다. 지금까지 분산 학습의 내용들을 정리해봤다.

  • 1편·2편: 네트워크(EFA)로 노드 간 통신을 빠르게
  • 3편: 스토리지(FSx/EFS/S3)로 데이터·체크포인트 공급
  • 4편: 관측으로 병목 찾기

그런데 마지막 질문이 남는다.

"이 많은 노드를 어떻게 하나의 학습 잡으로 묶어서 돌리지?"

노드 수십 대에 일일이 SSH로 들어가 EFA를 켜고 FSx를 마운트하고 mpirun을 칠 수는 없다. 프로비저닝·스케줄링·장애 복구를 대신 해주는 오케스트레이션 계층이 필요하다. 이 글에서는 AWS의 세 가지 방식을 비교한다.

분산 학습 성능 디버깅 - GPU·네트워크·스토리지 병목 찾기

· 15 min read
Jinwoong Kim
Technologist and Cloud Consultant

해당 포스팅은 현재 재직중인 회사에 관련이 없고, 개인 역량 개발을 위한 스터디 자료로 활용할 예정입니다.

앞의 세 편에서 분산 학습의 두 인프라 병목을 다뤘다. 네트워크(EFA)로 노드 간 통신을 빠르게 하고 스토리지(FSx/EFS/S3)로 데이터 공급을 풀었다. 그런데 막상 학습을 돌리면 이런 상황을 마주한다.

"GPU를 여러 장 붙였는데 왜 기대만큼 안 빨라지지?"

분산 학습에서 성능이 안 나오는 이유는 대부분 한 곳의 병목이다. 문제는 그 한 곳이 컴퓨트(GPU)인지 통신(네트워크·NCCL)인지 데이터(스토리지·로더)인지 눈에 잘 안 보인다는 것. 이 글에서는 그 범인을 가려내는 관측·프로파일링 방법을 다룬다.

분산 학습을 위한 AWS 공유 스토리지 - FSx for Lustre vs EFS vs S3(Mountpoint)

· 28 min read
Jinwoong Kim
Technologist and Cloud Consultant

해당 포스팅은 현재 재직중인 회사에 관련이 없고, 개인 역량 개발을 위한 스터디 자료로 활용할 예정입니다.

지난 두 편에서 노드 간 네트워크(EFA)를 다뤘다. 빠르게 대화하는 건 해결했는데, 분산 학습에는 또 하나의 큰 질문이 남아 있다.

"그 많은 노드가 학습 데이터와 체크포인트를 어디서 같이 읽고 쓰지?"

노드가 2대일 때는 각 노드에 데이터를 복사해도 되지만, 수십~수백 노드로 스케일하면 그건 불가능하다. 공유 스토리지가 필요하다. AWS에서 선택지는 크게 세 가지다.

  1. FSx for Lustre - HPC용 고성능 병렬 파일시스템
  2. EFS (Elastic File System) - 범용 NFS
  3. Mountpoint for Amazon S3 - S3를 POSIX 파일시스템처럼 마운트

이 글에서는 각각의 특성을 분산 학습 관점에서 비교하고, 언제 뭘 쓰면 되는지 정리한다.

AWS EFA 직접 써보기 — 멀티노드 통신

· 21 min read
Jinwoong Kim
Technologist and Cloud Consultant

해당 포스팅은 현재 재직중인 회사에 관련이 없고, 개인 역량 개발을 위한 스터디 자료로 활용할 예정입니다.

지난 글 일반 InfiniBand vs AWS EFA에서는 EFA가 무엇인지, InfiniBand와 어떻게 다른지를 정리했다. EFA가 빠른 이유(커널 TCP/IP 스택을 우회하는 OS bypass, 패킷을 여러 경로로 분산 전송하는 SRD)까지는 개념으로 짚었다.

그런데 개념을 알았다고 손이 움직이는 건 아니다. "그래서 EFA를 실제로 어떻게 켜고 쓰는데?" 이 글은 그 질문에 답한다. EFA를 켠 인스턴스 2대를 띄우고, 노드 간 통신이 진짜로 EFA를 타는지 확인한 뒤, NCCL 벤치마크로 성능까지 측정하는 과정을 처음부터 끝까지 따라가 본다.