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() 方法

坑与注意

  1. 首次下载耗时长:模型文件从 HuggingFace 下载,Phi-2 两块 safetensor 文件加起来约 5.5 GB,确保网络稳定。
  2. 多卡张量并行启动慢:Tensor Parallel 初次划分权重有显著开销,不适合交互式 Jupyter 场景;单卡或 Sequential 策略更适合迭代开发。
  3. CLI 和 Python API 版本同步:部分新方法(如某些 LoRA 变体)可能只先出现在 CLI 或只先出现在 Python API,读文档时注意区分。
  4. 自定义数据集格式:微调需要指定格式(通常是 JSONL),字段名需与 litgpt 的数据格式对齐,文档中有明确说明。
  5. 不支持 Windows 原生:GPU worker 仅支持 Linux,Windows 用户需用 WSL2。
  6. 许可证检查:使用 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 是当前最值得学的开源框架,无抽象设计让代码本身即文档。