거대언어모델(LLM)을 다루는 엔지니어링 분야는 실험적인 스크립트의 산발적인 모음에서 벗어나, 이제는 엄격하고 다층적인 소프트웨어 스택으로 성숙했습니다. 2025년 말 현재, 이 생태계는 사전 학습(Pre-training), 사후 학습(Post-training/Fine-tuning), 그리고 추론(Inference/Deployment)이라는 뚜렷한 3단계 라이프사이클로 정의됩니다.
이 글에서는 각 단계를 지배하는 프레임워크에 대해 전문가 수준의 심층 분석을 제공합니다. NVIDIA의 거대한 Megatron-LM부터 ms-swift의 민첩한 범용성에 이르기까지, 각 도구에 내재된 아키텍처 결정, 하드웨어 최적화, 그리고 트레이드오프(trade-offs)를 분석합니다.
1부: 사전 학습(Pre-training) 프레임워크
사전 학습은 LLM 라이프사이클의 ‘열역학적 정점’이라 할 수 있습니다. 이 단계는 막대한 연산 요구량이 특징이며, 수천 개의 GPU에 걸쳐 모델 FLOPs 활용률(MFU)을 극대화하는 것이 핵심 엔지니어링 목표입니다. 이 카테고리의 프레임워크들은 Qwen 3나 DeepSeek-V3와 같은 거대한 MoE(Mixture-of-Experts) 아키텍처에 필요한 복잡한 분산 컴퓨팅의 안무를 지휘합니다.
1.1 텐서 병렬화의 거인: NVIDIA Megatron-LM
저장소: https://github.com/NVIDIA/Megatron-LM
Megatron-LM은 현존하는 가장 거대한 모델들을 위한 근본적인 레퍼런스 구현체로 자리 잡았습니다. NVIDIA가 개발한 이 도구는 사용자 친화적인 라이브러리라기보다는, 극초대규모(extreme-scale) 컴퓨팅을 위한 청사진에 가깝습니다. 그 아키텍처 철학은 개별 행렬 곱셈을 여러 GPU에 분할하여 노드 간 통신 지연을 최소화하는 기술인 텐서 병렬화(Tensor Parallelism, TP)에 중점을 둡니다.
스케일의 아키텍처
2025년의 Megatron-LM은 단순한 TP를 넘어 진화했습니다. Megatron Core (MCore)의 도입은 코드베이스를 모듈화하여 분산 처리 기초 요소(primitives)와 모델 정의를 분리한 중요한 리팩토링입니다. 이러한 변화는 Qwen 3에서 볼 수 있는 Dense-MoE 하이브리드와 같은 아키텍처의 복잡성 증가로 인해 필수적이었습니다.
중요한 혁신 중 하나는 컨텍스트 병렬화(Context Parallelism, CP)입니다. (Long-Context Qwen 변형 모델들에 의해) 컨텍스트 윈도우가 100만 토큰 이상으로 확장됨에 따라, 표준 시퀀스 병렬화(SP)만으로는 충분하지 않게 되었습니다. CP는 어텐션 연산 자체를 분할하여, 치명적인 통신 오버헤드 없이 키-값(KV) 캐시와 어텐션 점수를 여러 GPU에 분산시킬 수 있게 합니다.
하드웨어 공생: 트랜스포머 엔진 (Transformer Engine)
Megatron-LM의 지배력은 Transformer Engine (TE)에 의해 더욱 강화됩니다. TE는 NVIDIA Hopper 및 Blackwell 아키텍처에서 네이티브 FP8(8비트 부동 소수점) 학습을 가능하게 합니다. 텐서를 FP8과 BF16 간에 동적으로 캐스팅함으로써, TE는 Megatron-LM이 행렬 곱셈의 처리량을 두 배로 늘릴 수 있게 해줍니다.
1.2 메모리 최적화의 강자: Microsoft DeepSpeed
저장소: https://github.com/microsoft/DeepSpeed
Megatron-LM이 연산 병렬화에 집중한다면, 마이크로소프트의 DeepSpeed는 메모리 장벽(Memory Wall) 문제를 해결합니다. 핵심 기여 기술인 ZeRO(Zero Redundancy Optimizer)는 옵티마이저 상태, 그라디언트, 파라미터를 사용 가능한 모든 GPU에 분할 저장합니다.
MoE 시대: DeepSpeed-MoE
Qwen 3와 DeepSeek-V3가 헤비한 MoE 아키텍처를 채택함에 따라, 표준 데이터 병렬화는 비효율적이 되었습니다. 2025년 업데이트는 토큰을 각 전문가(expert)에게 라우팅하는 데 필요한 “all-to-all” 통신 기초 요소를 최적화하는 DeepSpeed-MoE에 집중되어 있습니다. 이는 전문가 병렬화(expert parallelism)의 오버헤드를 획기적으로 줄여줍니다.
1.3 미니멀리즘 도전자: Hugging Face Nanotron
저장소: https://github.com/huggingface/nanotron
Megatron-LM과 같은 프레임워크가 경직되어 감에 따라, 아키텍처를 빠르게 반복 실험해야 하는 연구자들을 위해 Nanotron이 등장했습니다. Nanotron의 철학은 “미니멀리즘 3D 병렬화”입니다. 깔끔한 Pythonic API를 통해 분산 처리 기초 요소(TP, PP, DP)를 노출시켜, 구형 프레임워크들의 “설정 지옥(config hell)”을 피합니다.
1.4 네이티브의 진화: PyTorch FSDP2 & Torchtitan
저장소: https://github.com/pytorch/torchtitan
PyTorch 팀은 FSDP2(Fully Sharded Data Parallel 2)를 통해 격차를 좁혔습니다. 기존 FSDP와 달리, FSDP2는 텐서 레벨(DTensor 활용)에서 샤딩을 관리하여 메모리 레이아웃을 세밀하게 제어할 수 있게 해줍니다. Torchtitan은 플래그십 구현체로서, 비동기 체크포인팅(Async Checkpointing)을 활용해 네이티브 PyTorch 구조만으로도 수천 개의 GPU로 확장 가능함을 증명하고 있습니다.
기술 비교 분석: 사전 학습
| 특징 | Megatron-LM | DeepSpeed | Nanotron | PyTorch FSDP2 |
|---|---|---|---|---|
| 주요 병렬화 | 텐서(TP) + 파이프라인(PP) | 데이터(ZeRO) + 파이프라인 | 3D (TP+PP+DP) | 샤딩 데이터 (ZeRO 스타일) |
| 상태 관리 | 복제(TP) / 분할(PP) | 분할 (ZeRO 1/2/3) | 하이브리드 | 파라미터별 샤딩 |
| MoE 지원 | 네이티브 (MCore) | DeepSpeed-MoE (최적화됨) | 기본 | DTensor를 통한 네이티브 지원 |
| 개발자 경험 | 높은 복잡도 / 경직됨 | 중간 복잡도 | 높은 개조 자유도 | 네이티브 / Pythonic |
| 최적 용도 | Qwen 3 / DeepSeek 사전학습 | 이기종 클러스터 | 연구 / 프로토타이핑 | 네이티브 PyTorch 사용자 |
2부: 사후 학습(Post-Training) 프레임워크
사후 학습(SFT 및 선호도 정렬)은 원석 같은 예측 엔진을 실제 제품으로 바꾸는 과정입니다. 2025년의 지형은 파라미터 효율적 미세 조정(PEFT)이 지배하고 있으며, 특히 Qwen과 DeepSeek의 특정 아키텍처를 지원하는 도구들로 대규모 이동이 일어나고 있습니다.
2.1 Qwen 스페셜리스트: ms-swift (ModelScope)
저장소: https://github.com/modelscope/ms-swift
Swift는 미세 조정 분야의 “맥가이버 칼(Swiss Army Knife)”로 급부상했습니다. 특히 Qwen 및 DeepSeek 생태계 내에서 작업하는 엔지니어들에게 필수적입니다. ModelScope 팀이 개발한 이 도구는 Qwen 3에서 발견되는 최신 아키텍처의 특이점들(예: tie-embedding 이슈, VLM의 동적 해상도 등)을 가장 강력하게 지원합니다.
“Tuners” 추상화
Swift는 표준 LoRA를 넘어선 고수준의 “Tuners” 추상화를 도입하여 Res-Tuning(비전-언어), NEFTune(노이즈 임베딩), LoRA+ 등을 지원합니다. 또한 Swift에서 미세 조정된 모델을 컨테이너화된 추론 엔진으로 원활하게 내보낼 수 있는 “Push-to-Deploy” 워크플로우를 갖춘 것이 특징입니다.
2.2 설정 엔진: Axolotl
저장소: https://github.com/axolotl-ai-cloud/axolotl
Axolotl은 프로덕션 파이프라인의 표준으로 남아 있습니다. 단일 YAML 설정 파일만으로 학습의 복잡성을 처리할 수 있게 해주는 통합 래퍼(wrapper) 역할을 합니다.
- 멀티패킹(Multipacking): Axolotl의 샘플 패킹 구현은 효율성에 매우 중요합니다. 시퀀스를 연결(concatenate)하여 GPU가 모든 토큰 위치에서 유의미한 그라디언트를 계산하도록 보장합니다.
- 2025 업데이트: Axolotl은 소비자용 하드웨어에서 70B 이상의 파라미터 모델을 돌릴 수 있도록 FSDP와 DeepSpeed Zero-3 백엔드를 완벽하게 지원합니다.
2.3 커널 최적화: Unsloth
저장소: https://github.com/unslothai/unsloth
Unsloth는 표준 PyTorch 트랜스포머 레이어 구현을 대체하기 위해 수작업으로 작성된 Triton 커널을 사용합니다. 역전파(backpropagation) 단계를 수동으로 유도하여 VRAM 사용량을 최대 60%까지 줄입니다. 이를 통해 단일 하이엔드 소비자용 GPU에서 Qwen-3-72B(양자화 버전)를 미세 조정할 수 있게 하여, 로컬 미세 조정의 대명사가 되었습니다.
2.4 통합 워크플로우: LLaMA-Factory
저장소: https://github.com/hiyouga/LLaMA-Factory
LLaMA-Factory는 100개 이상의 모델을 지원하는 범용 프레임워크입니다. 학습 지표를 실시간으로 시각화해주는 WebUI (LLaMA Board)로 유명합니다. GaLore(Gradient Low-Rank Projection) 및 DoRA와 같은 고급 어댑터를 구현했으며, SFT, DPO, PPO를 단일 그래픽 파이프라인으로 통합했습니다.
기술 비교 분석: 미세 조정
| 프레임워크 | 아키텍처 | 최적화 중점 | 최적 용도 | 인터페이스 |
|---|---|---|---|---|
| ms-swift | 네이티브 래퍼 | Qwen/DeepSeek 생태계 | 멀티모달 / 아시아 모델 | CLI / Python / UI |
| Axolotl | 래퍼 (HF/Peft) | 처리량 (멀티패킹) | 프로덕션 파이프라인 | YAML Config |
| Unsloth | 커널 교체 | VRAM / 속도 | 소비자용 하드웨어 | Python 라이브러리 |
| LLaMA-Factory | 래퍼 (통합형) | 알고리즘 다양성 | 실험 / UI | WebUI / CLI |
| HuggingFace TRL | 네이티브 라이브러리 | 정렬 (DPO/ORPO) | 연구 / 커스텀 RLHF | Python 라이브러리 |
3부: 추론 및 배포(Inference & Deployment) 프레임워크
추론 단계는 첫 토큰 생성 시간(TTFT)과 토큰 간 지연 시간(ITL)이라는 새로운 제약 조건을 도입합니다. 2025년의 지형은 긴 컨텍스트 상호작용에서 KV 캐시가 생성하는 “메모리 장벽”과의 전쟁입니다.
3.1 처리량의 표준: vLLM
저장소: https://github.com/vllm-project/vllm
vLLM은 KV 캐시 파편화 문제를 해결한 PagedAttention으로 현대적 서빙(serving)을 정의했습니다. 2025년 기능: 제한된 하드웨어에서 Qwen 3-72B를 실행하는 데 필수적인 FP8 KV 캐싱을 강력하게 지원합니다. 또한 추측 디코딩(Speculative Decoding)과 청크 프리필(Chunked Prefill)을 지원하여 긴 시스템 프롬프트 처리가 다른 요청의 생성을 지연시키지 않도록 보장합니다.
3.2 구조화된 스페셜리스트: SGLang
저장소: https://github.com/sgl-project/sglang
SGLang(Structured Generation Language)은 DeepSeek-V3에서 자주 볼 수 있는 복잡하고 에이전트 중심적인 워크플로우에 최적화되어 있습니다. KV 캐시를 위해 Radix Tree (RadixAttention)를 사용합니다.
- 메커니즘: 에이전트가 생각하고, 계획하고, 행동할 때 기록(history)을 재사용합니다. SGLang은 이러한 접두사(prefix)들을 트리 구조로 캐싱합니다.
- 성능: “추론 후 답변(Reason then Answer)” 루프에서 SGLang은 vLLM보다 최대 5배 높은 처리량을 달성합니다.
3.3 엔터프라이즈 컴파일러: NVIDIA TensorRT-LLM
저장소: https://github.com/NVIDIA/TensorRT-LLM
TensorRT-LLM은 컴파일러입니다. 모델을 특정 GPU(예: H100)에 최적화된 바이너리 엔진으로 컴파일합니다. 레이어를 공격적으로 융합(fusing)하며 Hopper GPU에서의 FP8 추론을 위한 최적의 기준(gold standard)입니다. 하지만 정적 컴파일이 필요하므로 어댑터를 동적으로 교체할 수 없다는 단점이 있습니다.
3.4 4비트 스피드스터: LMDeploy
저장소: https://github.com/InternLM/lmdeploy
LMDeploy는 TurboMind 엔진을 특징으로 합니다. W4A16(4비트 가중치, 16비트 활성화) 추론의 극한 최적화를 통해 차별화됩니다. 중국 모델 생태계(Qwen, DeepSeek, InternLM)에 고도로 최적화되어 있으며, 단일 사용자 지연 시간 시나리오에서 종종 vLLM을 능가합니다.
3.5 엣지의 민주화: llama.cpp
저장소: https://github.com/ggerganov/llama.cpp
데이터 센터가 vLLM으로 돌아간다면, llama.cpp는 소비자용 하드웨어, 특히 Apple Silicon에서의 고성능 추론을 홀로 민주화했습니다. “킬러 앱”은 효율적인 메모리 매핑과 이기종 컴퓨팅을 가능하게 하는 GGUF 파일 형식으로, 레이어를 CPU와 GPU 간에 매끄럽게 분할할 수 있게 해줍니다. “K-Quant”의 이점: llama.cpp는 중요한 가중치 행렬의 정밀도는 보존하고 나머지는 압축하는 정교한 양자화 방법(Q4_K_M 등)을 활용합니다. 이를 통해 DeepSeek-V3나 Qwen-3-Instruct와 같은 거대 모델을 MacBook Pro에서 로컬로 적절한 속도로 실행할 수 있게 하며, Ollama나 LM Studio 같은 로컬 AI 도구 생태계 전체를 뒷받침합니다.
기술 비교 분석: 추론
| 엔진 | 핵심 메커니즘 | 캐싱 전략 | 최적 사용 사례 | 양자화 중점 |
|---|---|---|---|---|
| vLLM | PagedAttention | 블록 테이블 | 일반 서빙 / 높은 QPS | AWQ / GPTQ / FP8 |
| SGLang | RadixAttention | Radix Tree (LRU) | 에이전트 / 추론 루프 | AWQ / FP8 |
| TensorRT-LLM | 컴파일러 / 퓨전 | 정적 할당 | 엔터프라이즈 / H100 클러스터 | FP8 / INT8 |
| LMDeploy | TurboMind | 영구 배치 (Persistent Batch) | Qwen 4비트 서빙 | AWQ / W4A16 |
| llama.cpp | GGUF / Metal | 선형 / Mmap | 엣지 / CPU / Apple Silicon | GGUF (K-Quants) |
4부: 스택의 미래
2025년 말의 트렌드는 경계의 붕괴입니다. 학습 프레임워크가 추론 기능을 추가하고(예: DeepSpeed-MII), 추론 엔진이 학습 기능을 추가하는 것을 목격하고 있습니다. 현재 추구하는 “성배(Holy Grail)”는 End-to-End FP8 파이프라인입니다. Qwen 3의 첫 사전 학습 단계부터 vLLM의 마지막 토큰 생성까지 모델을 FP8로 유지하여, 스택을 통합하고 지능 비용을 획기적으로 낮추는 것이 목표입니다. 2026년 엔지니어에게 선택은 전략적입니다:
- 기반(Foundation): Megatron-LM (스케일) 또는 DeepSpeed (이기종성).
- 정제(Refinement): ms-swift (Qwen/멀티모달) 또는 Axolotl (프로덕션 설정).
- 배포(Deployment): vLLM (일반 API) 또는 SGLang (에이전트/추론).
2025년 말의 LLM 스택은 도구들의 “캄브리아기 대폭발”을 지나 아키텍처 전문화로 정의되는 통합 단계로 접어들었습니다. 이 영역에서의 성공은 더 이상 맞춤형 분산 학습 루프를 작성하는 것이 아니라, 이러한 성숙한 프레임워크들의 오케스트레이션을 마스터하는 데 있습니다. 승리하는 엔지니어링 전략은 병목 현상에 맞는 올바른 도구를 선택하는 것입니다. 사전 학습의 연산 병목을 해결하기 위한 Megatron-Core, 사후 학습의 알고리즘적 뉘앙스를 다루기 위한 ms-swift/Axolotl, 그리고 추론의 메모리 대역폭 병목을 해결하기 위한 vLLM/SGLang. Qwen 3와 DeepSeek-V3 같은 모델들이 컨텍스트 길이와 논리의 한계를 밀어붙임에 따라, 이 계층들 사이의 마찰은 줄어들 것이며, 결국 인공지능을 위한 통합된 컴파일러 기반 OS가 탄생하게 될 것입니다.
