수천 개의 GPU가 완벽한 조화를 이루며 윙윙거린다. 오늘날 가장 강력한 AI 모델을 훈련하기 위해 필요한 것은 바로 그것이다 — 최근까지도 엘리트 연구소들만이 다룰 수 있던 컴퓨팅 파워의 교향곡이다. 오픈소스는 이 풍경을 변화시켰지만, 완전히 바꾸지는 못했다. 그렇다, 당신은 최신 Llama나 DeepSeek 모델을 다운로드할 수 있다. 그렇다, 그들의 기술 및 실험 보고서를 읽을 수도 있다. 그러나 가장 어려운 부분 — 이러한 거대한 시스템을 훈련하기 위해 GPU를 조율하는 데 필요한 훈련 코드, 지식, 그리고 기술들 — 은 여전히 복잡성에 싸여 있고, 서로 단절된 논문들과 종종 비공개된 코드베이스 속에 흩어져 있다.

이 오픈소스 책은 그 상황을 바꾸기 위해 존재한다. 기초부터 시작하여, 우리는 대규모 언어 모델(LLM)의 훈련을 단일 GPU에서 수십, 수백, 심지어 수천 개의 GPU로 확장하는 데 필요한 지식을 안내할 것이다. 이 과정에서 이론은 실제 코드 예제와 재현 가능한 벤치마크를 통해 설명할 것이다.

이러한 모델을 훈련하는 데 사용되는 클러스터의 크기가 커짐에 따라, 데이터 병렬화, 텐서 병렬화, 파이프라인 병렬화, 컨텍스트 병렬화, 그리고 ZeRO 및 커널 퓨전과 같은 다양한 기술들이 개발되었다. 이 기술들은 GPU가 항상 최대한으로 활용되도록 보장한다. 이것은 훈련 시간을 크게 단축시키며, 이 값비싼 하드웨어를 가장 효율적으로 활용할 수 있게 해준다. 이러한 분산 훈련 기술은 초기 모델을 구축할 때뿐만 아니라, 대규모 모델을 특수한 데이터에 맞춰 파인튜닝할 때에도 필수적인 기술로 자리잡았다. 이러한 파인튜닝은 종종 최고의 성능을 만들어낸다. 이 책에서는 가장 단순한 것부터 가장 정교한 것까지 이 모든 기술들을 점진적으로 다루며, 각 기법이 어디서 비롯되었는지 이해할 수 있도록 하나의 일관된 이야기 흐름을 유지할 것이다.

우리는 당신이 현재의 LLM 아키텍처에 대한 기본적인 지식을 가지고 있고, 딥러닝 모델이 어떻게 훈련되는지 대략적으로 알고 있다고 가정할 것이다. 하지만 분산 훈련에는 생소할 수도 있다. 필요하다면, DeepLearning.ai의 훌륭한 강의나 PyTorch 튜토리얼에서 모델 훈련의 기초에 대한 정보를 얻을 수 있다. 이 책은 이전에 우리가 작성한 프리트레이닝용 데이터 처리에 대한 블로그 글(소위 “FineWeb 블로그 포스트”)에 이은 삼부작의 두 번째 편으로 볼 수 있다. 두 글을 모두 읽으면, 오늘날 고성능 LLM이 어떻게 구축되고 있는지를 완전히 이해하는 데 필요한 핵심 지식의 거의 전부를 갖추게 될 것이다. 다만, 그 레시피를 완성하는 데 필요한 비장의 소스 — 데이터 혼합과 아키텍처 선택에 관한 부분 — 만이 빠져 있을 것이다 (삼부작의 마지막 편을 기대하라…).

책은 다음 세 가지 일반적인 기반 위에 구성되어 있다.

  1. 이론과 개념에 대한 간단한 소개: 코드와 실험으로 들어가기 전에, 각 기법이 어떤 방식으로 작동하는지, 그리고 그 장점과 한계가 무엇인지 높은 수준에서 이해하길 바란다. 예를 들어, 언어 모델의 어떤 부분이 메모리를 소모하는지, 그리고 그것이 훈련 중 언제 발생하는지를 배우게 될 것이다. 또한, 모델을 병렬화하여 메모리 제약을 회피하고 GPU를 확장함으로써 throughput을 높이는 방법도 배우게 될 것이다. 그 결과, Transformer 모델의 메모리 사용 구조를 계산하는 아래 위젯이 어떻게 작동하는지도 이해할 수 있을 것이다.

image.png

  1. 명확한 코드 구현: 이론은 하나의 출발점일 뿐이며, 실제로 무언가를 구현할 때 수많은 예외 상황과 중요한 세부사항들이 드러난다. 그래서 가능한 경우 구현 레퍼런스를 함께 제공한다. 상황에 따라 다음 두 가지 코드 레퍼런스를 사용한다:
  1. 실제 훈련 효율 벤치마크: LLM 훈련을 실제로 어떻게 확장할지는 사용 중인 인프라(칩 종류, 인터커넥트 등)에 따라 달라지므로, 단일한 보편적 레시피를 제공할 수는 없다. 대신, 다양한 설정들을 벤치마킹하는 방법을 제공한다. 이것이 우리가 자체 클러스터에서 수행한 것이다. 우리는 512개의 GPU까지 활용하여 4,100회 이상의 분산 실험(테스트 러닝 포함 총 16,000회 이상)을 수행하며 가능한 분산 훈련 구조와 모델 크기들을 폭넓게 탐색했다.

보시다시피, 다루어야 할 내용이 매우 많다. 본격적인 분산 훈련의 현장으로 들어가기 전에, 이 책에서 다룰 도전 과제들을 간단히 고찰해보자.

고수준 개요

이 책에서 다루는 모든 기법들은 다음 세 가지 핵심 도전 과제 중 하나 또는 그 이상을 해결하는 것을 목표로 한다. 이들은 책 전반에서 반복해서 마주치게 될 것이다: