Lightning-AI/litgpt · 上手攻略
- 仓库:Lightning-AI/litgpt
- 链接:https://github.com/Lightning-AI/litgpt
- 分类:ai
- 作者:Tom
- 更新:2026-07-12
这是什么
LitGPT 是 Lightning AI 出品的开源 LLM 训练与推理框架,定位是「一站式解决从零预训练、微调到上线部署的全部流程」。核心设计理念是无抽象层、全部从零实现、代码可直接调试,不依赖 Transformers 库内部的复杂封装。它支持 20+ 主流大模型(MegaSauna 3、Qwen2.5、Phi-4、Llama 3/3.1/3.2/3.3、Gemma 2/3、R1 Distill 系列等),覆盖从 135M 到 405B 的参数规模。
从定位上看,它与 EleutherAI 的 GPT-NeoX、Hugging Face 的 PEFT 库同处 LLM 工程层,但 LitGPT 更强调开箱即用的端到端工作流,而非仅做某一步骤。
解决什么问题
在 LitGPT 出现之前,LLM 的下载、微调、推理、部署往往需要混用多个工具(llama.cpp、SGLang、vLLM、PEFT、HuggingFace Transformers……),版本不兼容、参数不统一、链路断裂。LitGPT 试图用一个统一的 CLI 覆盖全部阶段:
- 预训练:从随机权重或已有 checkpoint 起步,支持大规模分布式(FSDP)
- 持续预训练:在自己数据集上继续训练已有模型
- 微调:LoRA、QLoRA、Adapter 等主流轻量化微调方法
- 推理与服务:本地 serve、OpenAI 兼容 API、chat 界面
- 评测:内置评测基准对接
快速安装
# 最简安装(含 PyTorch 依赖)
pip install 'litgpt[extra]'
# 从源码安装(推荐,便于 debug)
git clone https://github.com/Lightning-AI/litgpt
cd litgpt
uv sync --all-extras # 或 pip install -e ".[extra,compiler,test]"
注意:需要 Python ≥3.10,PyTorch 2.0+。CUDA 版本建议 11.8 或 12.x。部分功能(如 Flash Attention)需要相应硬件支持。
核心用法
1. 查看支持的模型列表
litgpt download list
2. 下载并加载模型(Python API)
from litgpt import LLM
# 自动从 HuggingFace Hub 下载
llm = LLM.load("microsoft/phi-2")
# 生成文本
text = llm.generate("Fix the spelling: Every fall, the family goes to the mountains.")
print(text)
3. CLI 推理(快速尝鲜)
# 启动对话界面
litgpt chat meta-llama/Llama-3.2-3B-Instruct
# 推理一条 prompt
litgpt generate meta-llama/Llama-3.2-3B-Instruct --prompt "What is 2+2?"
4. 微调(LoRA 示例)
litgpt finetune meta-llama/Llama-3.2-3B-Instruct \
--method lora \
--data your_custom_dataset.jsonl \
--out_dir ./lora-output
版本注意:截至 2026-07,LoRA / QLoRA / Adapter 均已支持,方法名和参数名可能随版本更新,建议用
litgpt finetune --help确认最新参数。
5. 分布式训练(FSDP)
litgpt pretrain meta-llama/Llama-3.2-3B-Instruct \
--devices 8 \
--strategy fsdp
6. 多 GPU 张量并行(Python API)
from litgpt.api import LLM
llm = LLM.load("meta-llama/Meta-Llama-3.1-8B-Instruct", distribute=None)
llm.distribute(generate_strategy="tensor_parallel", devices=4)
print(llm.generate("What do llamas eat?"))
7. 部署为 OpenAI 兼容 API
litgpt serve meta-llama/Llama-3.2-3B-Instruct --port 8000
调用方式:
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model": "meta-llama/Llama-3.2-3B-Instruct", "messages": [{"role": "user", "content": "Hello!"}]}'
8. Benchmark 性能评估
from litgpt.api import LLM
llm = LLM.load("microsoft/phi-2")
text, bench = llm.benchmark(prompt="What do llamas eat?", top_k=1, stream=True)
print(bench)
# {'Tokens generated': 26,
# 'Seconds to first token': 0.65,
# 'Inference speed in tokens/sec': 17.62,
# 'Total GPU memory allocated in GB': 5.92}
典型适用场景
| 场景 | 推荐用法 |
|---|---|
| 快速本地尝鲜某个模型 | litgpt chat <model> 一行命令 |
| 在自有数据上微调小模型 | litgpt finetune --method lora |
| 多卡训练大模型 | FSDP 策略,多节点 litgpt pretrain |
| 量化推理降显存 | QLoRA 或 fp4/8/16/32 精度选项 |
| 搭建私有模型 API 服务 | litgpt serve 启动兼容 API |
| 对比不同模型推理速度 | Python API 的 .benchmark() 方法 |
坑与注意
- 首次下载耗时长:模型文件从 HuggingFace 下载,Phi-2 两块 safetensor 文件加起来约 5.5 GB,确保网络稳定。
- 多卡张量并行启动慢:Tensor Parallel 初次划分权重有显著开销,不适合交互式 Jupyter 场景;单卡或 Sequential 策略更适合迭代开发。
- CLI 和 Python API 版本同步:部分新方法(如某些 LoRA 变体)可能只先出现在 CLI 或只先出现在 Python API,读文档时注意区分。
- 自定义数据集格式:微调需要指定格式(通常是 JSONL),字段名需与 litgpt 的数据格式对齐,文档中有明确说明。
- 不支持 Windows 原生:GPU worker 仅支持 Linux,Windows 用户需用 WSL2。
- 许可证检查:使用 Llama 3/3.1 等模型需遵守 Meta 的许可协议,商用需注意许可证限制。
与同类对比
| 特性 | LitGPT | vLLM | SGLang | Transformers PEFT |
|---|---|---|---|---|
| 覆盖阶段 | 预训练→微调→推理→部署 | 推理加速为主 | 推理加速为主 | 微调为主 |
| 实现方式 | 从零实现,无隐藏抽象 | PagedAttention | RadixAttention | HF Trainer |
| 多模型支持 | 20+ | 主要 LLM | 主要 LLM | 所有 HF 模型 |
| 分布式训练 | FSDP 原生支持 | 不支持 | 不支持 | DDP/FSDP |
| CLI 友好度 | ⭐⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ |
| 上手难度 | 低(无抽象=代码可直接读) | 中 | 中 | 中 |
一句话:LitGPT 是目前最「一站式」的 LLM CLI 框架,零抽象设计让代码可调试性和可移植性远胜隐式封装;若只需要推理加速则选 vLLM/SGLang,需要完整训练链路且不想拼凑工具链时 LitGPT 是最优解。
一句话推荐结论
有本地 GPU、想快速跑通「下载→微调→部署」全流程的工程师,LitGPT 是当前最值得学的开源框架,无抽象设计让代码本身即文档。