SuperAPI AI 工具集

model-architecture-litgpt

智能体与模型

查看项目

更新于 11-04 01:41

技能介绍

LitGPT 是 Lightning AI 提供的开源大语言模型工具,主打“干净、可读的 LLM 实现”与生产级训练工作流。它内置 20 多个预训练模型架构,涵盖 Llama、Gemma、Phi、Qwen、Mistral、Mixtral、Falcon 等系列。

用途

LitGPT 面向需要理解或训练大语言模型的开发者与研究者。它既可用于加载预训练模型做推理,也可用于在自有数据上微调、从零预训练新模型,以及将模型导出部署。

主要能力

  • 提供 20 多个预训练 LLM 实现,代码清晰可读。
  • 支持加载模型并生成文本,可设置 max_new_tokens、temperature 等参数,支持流式与批量推理。
  • 支持全量微调与 LoRA 微调,LoRA 可配置 rank、alpha、dropout 以及作用层(query、key、value、projection、mlp、head)。
  • 支持从零预训练,可配置模型架构(block_size、vocab_size、n_layer、n_head、n_embd 等),并支持多 GPU 的 FSDP 训练。
  • 支持模型量化(如 bnb.nf4、bnb.nf4-dq)、转换为 GGUF 格式,以及通过 FastAPI 部署推理接口。
  • 提供训练日志与 TensorBoard 监控。

使用方式

安装:

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

合并 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 使用 FSDP:

litgpt pretrain \
  --config config/pythia-1b.yaml \
  --data.data_dir data/pretrain \
  --devices 8 \
  --train.max_tokens 100_000_000_000

量化与转换:

litgpt convert_lit_checkpoint \
  out/phi2-lora/final \
  --dtype bfloat16 \
  --quantize bnb.nf4
python scripts/convert_lit_checkpoint.py \
  --checkpoint_path out/phi2-lora/final \
  --output_path models/phi2.gguf \
  --model_name microsoft/phi-2

API 部署示例:

from fastapi import FastAPI
from litgpt import LLM

app = FastAPI()
llm = LLM.load("out/phi2-lora/final")

@app.post("/generate")
def generate(prompt: str, max_tokens: int = 100):
    result = llm.generate(
        prompt,
        max_new_tokens=max_tokens,
        temperature=0.7
    )
    return {"response": result}

运行:uvicorn api:app --host 0.0.0.0 --port 8000

适用场景

  • 想理解 LLM 架构、需要清晰可读代码的学习与研究场景。
  • 需要生产级训练配方进行微调或预训练。
  • 原型验证新模型想法。
  • Lightning 生态用户。

限制与替代

  • 若需要更多微调功能与 YAML 配置,可考虑 Axolotl/TRL。
  • 若追求 70B 以上模型的极致性能,可考虑 Megatron-Core。
  • 若需要最广泛的模型支持,可考虑 HuggingFace Transformers。
  • 若仅做推理,可考虑 vLLM。

硬件要求

  • GPU:NVIDIA(CUDA 11.8+)、AMD(ROCm)、Apple Silicon(MPS)。
  • 内存:推理(Phi-2)约 6GB;LoRA 微调(7B)约 16GB;全量微调(7B)40GB+;预训练(1B)约 24GB。
  • 存储:每个模型约 5-50GB,取决于模型大小。

常见问题

  • 微调时内存不足:改用 LoRA,或启用梯度累积(--train.gradient_accumulation_iters)。
  • 训练太慢:在兼容硬件上 Flash Attention 默认启用;可使用更小 micro-batch 并累积。
  • 模型无法加载:用 litgpt download list 检查模型名,必要时先下载,并确认 checkpoints/ 目录。
  • LoRA 适配器过大:降低 lora_r,或减少应用层。

资源

  • GitHub:https://github.com/Lightning-AI/litgpt
  • 文档:https://lightning.ai/docs/litgpt
  • 教程:https://lightning.ai/docs/litgpt/tutorials

关于具体收费、价格与商业授权信息,资料中暂未提供。