BitDelta开源项目教程
BitDelta 项目地址: https://gitcode.com/gh_mirrors/bi/BitDelta
1. 项目介绍
BitDelta是一个旨在减少GPU内存需求的开源项目,它通过将微调模型的权重变化压缩至1 bit,从而实现高效的模型多租户服务。这种技术不仅揭示了微调过程中信息添加的潜在冗余性,而且对于模型的存储和服务有着重要的意义。BitDelta能够将GPU内存需求减少10倍以上,这对于多租户环境下的生成延迟提升尤为关键。该项目已成功应用于Llama-2和Mistral模型家族,并在高达70B参数的模型上进行了验证,展现了在所有测试设置中极小的性能下降。
2. 项目快速启动
环境准备
首先,您需要克隆BitDelta仓库并设置环境:
git clone https://github.com/FasterDecoding/BitDelta.git
cd BitDelta
conda create -yn bitdelta python=3.9
conda activate bitdelta
pip install -e .
模型压缩示例
以下是一个模型压缩的示例,我们将使用lmsys/vicuna-7b-v1.5
模型和meta-llama/Llama-2-7b-hf
基础模型:
CUDA_VISIBLE_DEVICES=0,1 python \
bitdelta/train.py \
--base_model meta-llama/Llama-2-7b-hf \
--finetuned_model lmsys/vicuna-7b-v1.5 \
--save_dir $MODEL_SAVE_DIR \
--batch_size 4 \
--num_steps 200 \
--save_full_model True
请确保您已经设置了$MODEL_SAVE_DIR
变量,以指定压缩模型的保存目录。
性能验证
压缩完成后,您可以通过以下命令验证压缩模型的困惑度(Perplexity):
CUDA_VISIBLE_DEVICES=0 python \
bitdelta/eval_ppl.py \
--base_model meta-llama/Llama-2-7b-hf \
--dataset_name wikitext \
--subset wikitext-2-raw-v1 \
--save_dir $PPL_SAVE_DIR \
--num_eval_samples 100 \
--model_diff $MODEL_SAVE_DIR/diff.pt
确保您已经设置了$PPL_SAVE_DIR
变量,以指定困惑度结果的保存目录。
3. 应用案例和最佳实践
BitDelta项目的官方代码托管平台中提供了一个Gradio demo,展示了如何使用6个基于Mistral-7B模型的批量推理,同时只使用30GB的GPU内存。您可以参考demo/README.md
来设置和运行这个demo。
此外,项目中的scripts
目录包含了用于压缩您自己的模型的脚本。您可以参考这些脚本来实现模型的压缩和量化。
4. 典型生态项目
BitDelta作为一个优化模型存储和推理的开源项目,可以与多种机器学习和深度学习框架兼容。在生态系统中,您可以找到类似的项目,例如用于模型量化的ONNX Runtime,以及用于高效推理的TensorRT等。这些项目可以共同工作,以实现更高效的人工智能服务。
BitDelta 项目地址: https://gitcode.com/gh_mirrors/bi/BitDelta
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考