AutoDL+vllm部署Qwen2.5-7b

文摘   2025-01-01 06:30   中国香港  
首先强调一点,工作生产环境,无论你安装什么东西,都要记得activate 你的目标 Python 环境,在开始 pip install 大法!!这非常重要,不然你不小心把东西装到你们公司大佬的环境,搞出问题,就芭比Q了。
以下教程均以Ubuntu server系统为基础。


Anaconda扫盲
anaconda是Python虚拟环境的管理工具,你可以把它看做类似docker的镜像管理,都是虚拟的环境,安装的东西都是隔离的,避免引起冲突问题。
首先是安装,我们直接执行官方给出的安装指令即可,我这里装的是miniconda,如它的名字所示,它是基础版的Anaconda。
mkdir -p ~/miniconda3wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.shbash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3rm ~/miniconda3/miniconda.sh
source ~/miniconda3/bin/activate
conda init
记得最后执行了 init 之后关闭当前terminal重新打开才会生效。
conda 常用命令集合:
  • 列出当前创建的虚拟环境
conda env list
  • 创建一个虚拟环境:这里指定了name为qwen2.5-7b,并且基础的Python版本为python=3.10
conda create --name qwen2.5-7b python=3.10
  • 激活某个虚拟环境:这里激活了qwen2.5-7b环境
conda activate qwen2.5-7b
  • 退出某个虚拟环境
conda deactivate qwen2.5-7b
activate环境之后,terminal最前面会有对应的环境name
(qwen2.5-7b) root@autodl-container-9b4c40bda6-faa4bf01:~
到此为止,我们的虚拟环境qwen2.5-7b创建并且激活,就可以在当前环境下开心地安装package了!


前置工作
创建一个AutoDL(https://www.autodl.com/)账号,充值之后购买一个机器,我们将在这个机器上进行model 部署,就像下面的图片展示
注意,算力服务器的使用是按时间收费的,比如1个小时3块钱,你一旦开机就会进行计费,因此,当你使用的时候在界面上进行开机操作,当你训练完毕或者使用完毕之后,将机器关机!这非常重要。
下载Qwen/Qwen2.5-7B-Instruct模型
我们选择从modelscop下载,下载方式如下:
pip install modelscopemodelscope download --model Qwen/Qwen2.5-7B-Instruct --local_dir /root/autodl-tmp/Qwen/Qwen2.5-7B-Instruct
--model标识你要下载的模型,从modelscop复制即可
--local_dir标识下载的模型放到哪个路径下,自定义即可,下载后的文件如下:


部署开始
模型文件准备好之后,我们就可以开始准备部署了。
因为我们使用vllm部署,因此,我们需要先下载vllm,执行一下命令即可
pip install vllm
安装可能比较久,它会装很多依赖,完成之后,我们就可以开始部署了!执行一下命令
vllm serve Qwen/Qwen2.5-7B-Instruct --api-key pan-abc123 --download-dir ./Qwen/Qwen2.5-7B-Instruct --enable-auto-tool-choice --tool-call-parser hermes
  • --api-key:表示外部调用你的服务进行推理的时候的校验key,可以不填
  • --download-dir:表示我们要部署的model的文件地址,我们下载在哪个目录,写对应的目录即可,我当前的目录是
  • --enable-auto-tool-choice:表示开启function calling功能(这里就不解释function calling了,后面会有相关教程)
  • --tool-call-parser hermes:设置function calling的模板,这里使用hermes模板,这是Qwen官方推荐的(https://docs.vllm.ai/en/stable/usage/tool_calling.html)。

这是serve启动命令
如果看到以下输出则表示已经部署成功
可以看到它对外提供的api路径。
vllm是支持兼容OpenAI的接口的,然后Qwen系列也兼容了OpenAI相关的接口,因此你可以直接这样使用

def initialize_openai_client():    """初始化 OpenAI 客户端"""    return OpenAI( api_key='pan-abc123', base_url='http://localhost:8000/v1',)
client = initialize_openai_client()
def call_llm(messages, func_tools=None):    """通用 LLM 调用方法"""    response = client.chat.completions.create(        # 注意这里的model name和你vllm serve 后跟的name必须一致,它是按照那个执行model router的,不一致会404        model = 'Qwen/Qwen2.5-7B-Instruct',        temperature = 0.7,        top_p=0.8,        messages = messages,    )
    return response
如果有帮到你,点个赞吧。
参考链接:
https://qwen.readthedocs.io/zh-cn/latest/deployment/vllm.html
https://docs.vllm.ai/en/stable/usage/tool_calling.html

半夏决明
读书,摄影,随笔
 最新文章