meta-pytorch/torchtune
PyTorch native post-training library
torchtune – 대규모 언어 모델 학습 및 파인튜닝을 위한 PyTorch 라이브러리
무엇인가요 – torchtune은 PyTorch 위에 구축된 오픈소스 Python 패키지입니다. 대규모 언어 모델(LLM)의 후학습 라이프사이클 전반에 걸쳐 사용 가능한 사전 구성된 레시피(설정 기반 스크립트)를 제공합니다: 교사 지도 파인튜닝, LoRA/QLoRA, 지식 증류, 인간 피드백 기반 강화학습(DPO, PPO, GRPO), 양자화 대응 학습, 추론/양자화. 이 라이브러리는 Llama 3.x, Llama 4, Gemma 2, Mistral, Phi, Qwen 2/2.5/3 등 수많은 최신 LLM 아키텍처의 가벼운 PyTorch 구현도 함께 제공합니다.
왜 중요한가요 – 현대 LLM을 학습하거나 적응시키는 것은 일반적으로 무거운 엔지니어링 작업입니다. 분산 학습, 메모리 절약 기술(활성화 체크포인트, 오프로딩, 8비트 옵티마이저), 모델 고유의 토크나이저 관리 등 여러 문제를 동시에 다뤄야 합니다. torchtune은 간단한 CLI(tune)와 YAML 설정 파일을 통해 이러한 문제를 추상화하여, 연구자와 엔지니어가 단일 GPU 또는 멀티노드 클러스터에서 단일 명령어로 실험을 시작할 수 있도록 합니다.
주요 기능(README에 기술됨)
- 레시피 기반 워크플로우 –
tune run <레시피> --config <yaml>로 전체 파인튜닝, LoRA/QLoRA, DPO, PPO, GRPO, KD, QAT 등을 실행합니다. 레시피 목록은tune ls로 확인 가능합니다. - 하드웨어에 따라 확장 가능 – 1GPU, 멀티GPU, 멀티노드 학습을 지원하며, CUDA, XPU, ROCm, Apple MPS, Ascend NPU에서 작동합니다.
- 메모리 효율 조절 옵션 – 패킹된 데이터셋, torch-compile, 청크 기반 크로스엔트로피, 활성화 체크포인트/오프로딩, 융합 옵티마이저 스텝, 8비트 AdamW, LoRA/QLoRA. README에는 Llama 3.2 3B의 메모리 대 대역폭에 대한 구체적인 표가 포함되어 있습니다.
- 모델 카탈로그 – 수십 가지 LLM 패밀리용 사전 구성된 모델 빌더와 설정 폴더(Llama 4, Llama 3.3 70B, Llama 3.2-Vision, Gemma 2, Phi 4, Qwen 3, Qwen 2.5 등).
- 에코시스템 통합 – Hugging Face Hub(가중치), Datasets(학습 데이터), LM-Eval Harness(평가), torch-ao(양자화), FSDP2(분산 학습), Weights & Biases/Comet(로그 기록), ExecuTorch(장치 내 추론).
- 설치 –
pip install torchtune(안정판)을 함께 설치하며, 해당하는 PyTorch/torchvision/torchao 버전과 일치해야 합니다. 나이트리 빌드도 제공됩니다. - 문서 및 커뮤니티 – 전체 문서는
pytorch.org/torchtune, 디스코드 커뮤니티, 인용 가이드 제공.
일반적인 워크플로우
- 모델 다운로드 (예:
tune download meta-llama/Meta-Llama-3.1-8B-Instruct) - 레시피 선택 – 예: 1GPU에서 LoRA를 위한
lora_finetune_single_device - 실행 –
tune run lora_finetune_single_device --config llama3_1/8B_lora_single_device - 확장 – 분산 실행 시
torchrun플래그를 앞에 붙이거나--nproc_per_node사용 - 사용자 정의 – 명령줄에서 설정 항목을 재정의하거나,
tune cp로 YAML을 로컬에 복사하여 편집
상태 – 프로젝트는 2025년에 개발이 중단되었으며 더 이상 유지보수되지 않지만, 누구나 안정적이고 PyTorch 기반의 LLM 파인튜닝 스택을 사용할 수 있는 코드베이스는 그대로 남아 있습니다.
위 정보는 리포지토리의 README에서 직접 가져왔으며, 외부 가정은 전혀 추가하지 않았습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트