LitGPT 是 Lightning AI 提供的开源大语言模型工具,主打“干净的 LLM 实现”,提供 20 多个预训练模型架构的清晰可读代码,以及可直接用于生产的训练工作流。
一、用途 LitGPT 用于实现和训练大语言模型,覆盖从模型加载、文本生成,到微调、预训练、量化与部署的完整链路。它适合希望理解 LLM 架构、需要生产级训练配方、用于教育或研究、进行新模型想法原型验证,以及已在使用 Lightning 生态的用户。
二、主要能力
- 模型支持:内置 20 多个预训练架构,包括 Llama、Gemma、Phi、Qwen、Mistral、Mixtral、Falcon 等。
- 推理生成:可通过 LLM.load 加载模型并生成文本,支持单次生成、流式输出与批量推理。
- 微调:支持全量微调与 LoRA 微调。LoRA 可配置秩(r)、缩放(alpha)、dropout,以及是否作用于 query、key、value、projection、mlp、head 等层。
- 预训练:支持从零预训练,可配置模型架构(层数、头数、嵌入维度、block size、vocab size 等),并支持单 GPU 与多 GPU(FSDP)训练。
- 模型转换与部署:支持量化(如 bnb.nf4、bnb.nf4-dq)、转换为 GGUF(供 llama.cpp 使用)、合并 LoRA 权重,以及通过 FastAPI 提供推理 API。
三、使用方式 安装:pip install 'litgpt[extra]' 加载与生成示例: from litgpt import LLM llm = LLM.load("microsoft/phi-2") result = llm.generate("What is the capital of France?", max_new_tokens=50, temperature=0.7) print(result) 列出可用模型:litgpt download list 下载模型:litgpt download meta-llama/Meta-Llama-3-8B(模型保存到 checkpoints/ 目录) 全量微调:litgpt finetune meta-llama/Meta-Llama-3-8B --data JSON --data.json_path data/my_dataset.json --train.max_steps 1000 --train.learning_rate 2e-5 --train.micro_batch_size 1 --train.global_batch_size 16 LoRA 微调:litgpt finetune_lora microsoft/phi-2 --data JSON --data.json_path data/my_dataset.json --lora_r 16 --lora_alpha 32 --lora_dropout 0.05 --train.max_steps 1000 --train.learning_rate 1e-4 合并 LoRA 权重:litgpt merge_lora out/phi2-lora/final --out_dir out/phi2-merged 预训练:litgpt pretrain --config config/pythia-160m.yaml --data.data_dir data/pretrain --train.max_tokens 10_000_000_000;多 GPU 可加 --devices 8。 数据集格式:支持 Alpaca 格式(instruction、input、output 字段的 JSON 数组)。
四、适用场景
- 学习与理解 LLM 架构;
- 在自定义数据集上做全量或 LoRA 微调;
- 在领域数据上从零预训练;
- 将模型量化、转换为 GGUF 或通过 API 部署;
- 在 Lightning 生态内进行模型原型开发。
五、限制与注意事项
- 硬件要求:GPU 支持 NVIDIA(CUDA 11.8+)、AMD(ROCM)、Apple Silicon(MPS)。内存方面,Phi-2 推理约 6GB,7B 模型 LoRA 微调约 16GB,7B 全量微调需 40GB+,1B 预训练约 24GB;每个模型存储约 5-50GB。
- 若需更多微调特性或 YAML 配置,可考虑 Axolotl/TRL;追求 70B 以上模型的最大性能可考虑 Megatron-Core;需要最广模型支持可用 HuggingFace Transformers;仅做推理可用 vLLM。
- 常见问题:显存不足时可改用 LoRA 或开启梯度累积;训练过慢可启用 Flash Attention(Ampere 及以上 GPU 默认开启)或使用更小 micro-batch 加梯度累积;模型无法加载时可用 litgpt download list 检查模型名并确认 checkpoints 目录;LoRA 适配器过大时可降低秩或减少作用层。
- 官方资源:GitHub https://github.com/Lightning-AI/litgpt ,文档 https://lightning.ai/docs/litgpt ,教程 https://lightning.ai/docs/litgpt/tutorials 。
- 具体版本、参数与功能可能随安装版本变化,使用前应以所安装版本的官方文档为准。