SuperAPI AI 工具集

implementing-llms-litgpt

智能体与模型

查看项目

更新于 10-30 06:48

技能介绍

用途

LitGPT 是 Lightning AI 维护的大语言模型工具集,提供 20 多个预训练模型架构的简洁实现和训练流程,可用于模型推理、微调、从零预训练和部署,也适合学习模型结构或做研究原型。

主要能力

  • 模型覆盖:支持 Llama、Gemma、Phi、Qwen、Mistral、Mixtral、Falcon 等 20 多个预训练架构。
  • 推理:通过 LLM.load() 加载模型并调用 generate(),支持普通生成和流式输出。
  • 微调:支持全量微调和 LoRA 微调,数据可使用 Alpaca 格式的 JSON。
  • 预训练:可从配置文件定义模型结构,支持单 GPU 和多 GPU(FSDP)。
  • 后处理:支持合并 LoRA 权重、按 bnb.nf4 等格式量化,以及转换为 GGUF。
  • 部署:可结合 FastAPI 封装生成接口。

使用方式

安装:

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
litgpt download microsoft/phi-2
litgpt download google/gemma-2b

模型保存到 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

训练结果默认保存到 out/finetune/。

合并 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 等参数用于 FSDP 训练。

适用场景

  • 学习或研究大模型架构与训练流程;
  • 在自定义数据集上做 LoRA 或全量微调;
  • 从零预训练小规模模型;
  • 将模型量化或转换为 GGUF 后部署;
  • 使用 Lightning 生态的团队。

限制与注意事项

  • 显存需求随模型和训练方式变化:Phi-2 推理约需 6GB,7B 模型 LoRA 微调约需 16GB,7B 全量微调需 40GB 以上,1B 预训练约需 24GB。
  • 每个模型通常需要 5 至 50GB 存储空间。
  • 硬件支持 NVIDIA CUDA 11.8+、AMD ROCm 和 Apple Silicon MPS。
  • 若需要更多微调特性或 YAML 配置,资料建议考虑 Axolotl/TRL;超 70B 模型高性能训练可考虑 Megatron-Core;最广模型支持可考虑 HuggingFace Transformers;仅推理可考虑 vLLM。
  • 显存不足时可改用 LoRA 或梯度累积;训练慢时可调整 micro-batch 与梯度累积组合。Flash Attention 在 Ampere 及以上 GPU 默认启用。