Lit-LLaMA 开源项目使用教程
1. 项目介绍
Lit-LLaMA 是一个基于 nanoGPT 的 LLaMA 语言模型独立实现,完全开源并遵循 Apache 2.0 许可证。该项目支持 flash attention、Int8 和 GPTQ 4bit 量化、LoRA 和 LLaMA-Adapter 微调、预训练等功能。Lit-LLaMA 旨在提供一个简单、正确、优化且开源的 LLaMA 模型实现,适用于消费级硬件或大规模部署。
2. 项目快速启动
2.1 克隆项目
首先,克隆 Lit-LLaMA 项目到本地:
git clone https://github.com/Lightning-AI/lit-llama.git
cd lit-llama
2.2 安装依赖
安装项目所需的依赖:
pip install -e ".[all]"
2.3 下载模型权重
如果还没有模型权重,可以参考项目提供的指南进行下载。
2.4 运行推理
使用以下命令运行推理,生成文本预测:
python generate.py --prompt "Hello, my name is"
该命令将运行 7B 模型,并需要大约 26 GB 的 GPU 内存(A100 GPU)。
2.5 量化模型
如果 GPU 内存有限,可以启用量化功能:
python generate.py --quantize llm int8 --prompt "Hello, my name is"
3. 应用案例和最佳实践
3.1 文本生成
Lit-LLaMA 可以用于生成各种类型的文本,如故事、对话、摘要等。通过调整 --prompt
参数,可以引导模型生成不同风格的文本。
3.2 微调模型
项目提供了 LoRA 和 Adapter 微调脚本,可以对预训练模型进行指令微调。以下是使用 LoRA 进行微调的示例:
python finetune/lora.py
3.3 预训练
如果需要对模型进行预训练,可以使用项目提供的预训练脚本,基于 RedPajama 数据集进行训练:
python pretrain.py
4. 典型生态项目
4.1 Lit-GPT
Lit-GPT 是 Lit-LLaMA 的继任项目,提供了更新的 LLaMA 2 权重和 Open LLaMA 权重。如果需要使用 LLaMA 2 或 Open LLaMA 权重,可以参考 Lit-GPT 项目。
4.2 nanoGPT
nanoGPT 是 Lit-LLaMA 的基础实现,提供了简洁的 GPT 模型实现。Lit-LLaMA 在此基础上进行了扩展和优化。
4.3 bitsandbytes
bitsandbytes 是一个用于量化和压缩模型的库,Lit-LLaMA 使用了该库进行 Int8 和 GPTQ 4bit 量化。
4.4 LoRA
LoRA 是一种参数高效的微调方法,Lit-LLaMA 提供了 LoRA 微调脚本,可以对模型进行高效的指令微调。
4.5 LLaMA-Adapter
LLaMA-Adapter 是一种适配器微调方法,Lit-LLaMA 提供了相应的微调脚本,可以对模型进行适配器微调。