使用vLLM运行微调后的Gemma-2
使用vLLM运行微调后的Gemma-2-2b-it的详细步骤
在这里分享一下我运行微调后的Gemma-2-2b-it模型并使用vLLM的步骤,希望对其他人有所帮助。本文将详细介绍安装过程、环境配置以及常见问题的解决方法。
安装和验证vLLM
首先,确保安装并验证vLLM的版本是0.5.3。
安装vLLM:
1
pip install vllm==0.5.3
验证安装:
1
2
3import vllm
print(vllm.__version__)
# 输出: 0.5.3
安装Flashinfer
按照以下步骤安装Flashinfer,并确保您的torch版本和CUDA兼容性。
检查torch版本和CUDA兼容性:
1
2
3import torch
print(torch.__version__) # 应输出: 2.3.1+cu121
print(torch.version.cuda) # 应输出: 12.1安装Flashinfer:
根据文档,Gemma运行在版本0.08。vLLM需要FlashInfer v0.0.8(请参阅vLLM版本和Flashinfer文档中关于Gemma 2的部分)。1
!pip install flashinfer==0.0.8 -i https://flashinfer.ai/whl/cu121/torch2.3/
更新环境中的VLLM后端变量
确保设置Flashinfer为vLLM的注意力机制后端:
1 | import os |
测试vLLM
以下是使用vLLM生成文本的测试代码:
1 | from vllm import LLM, SamplingParams |
通过上述步骤,您应该能够成功运行微调后的Gemma-2-2b-it模型。
常见错误及解决方法
在运行过程中,可能会遇到以下常见错误:
RuntimeError:
CHECK_EQ(paged_kv_indptr.size(0), batch_size + 1) failed. 1 vs 257
- 原因:Flashinfer版本错误。
- 解决方法:请确保安装了正确版本的Flashinfer。
TypeError:
'NoneType' object is not callable
- 原因:没有安装Flashinfer。
- 解决方法:按照上述步骤安装Flashinfer。
ValueError:
Please use Flashinfer backend for models with logits_soft_cap (i.e., Gemma-2). Otherwise, the output might be wrong. Set Flashinfer backend by export VLLM_ATTENTION_BACKEND=FLASHINFER.
- 原因:未设置Flashinfer后端。
- 解决方法:设置环境变量
VLLM_ATTENTION_BACKEND
为FLASHINFER
。
通过上述详细步骤和解决方法,您应该能够成功运行并调试微调后的Gemma-2-2b-it模型。如果您在任何一步遇到问题,请参考相应的文档或在社区中寻求帮助。