首先强调一点,工作生产环境,无论你安装什么东西,都要记得activate 你的目标 Python 环境,在开始 pip install 大法!!这非常重要,不然你不小心把东西装到你们公司大佬的环境,搞出问题,就芭比Q了。以下教程均以Ubuntu server系统为基础。
anaconda是Python虚拟环境的管理工具,你可以把它看做类似docker的镜像管理,都是虚拟的环境,安装的东西都是隔离的,避免引起冲突问题。首先是安装,我们直接执行官方给出的安装指令即可,我这里装的是miniconda,如它的名字所示,它是基础版的Anaconda。mkdir -p ~/miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
rm ~/miniconda3/miniconda.sh
source ~/miniconda3/bin/activate
conda init
记得最后执行了 init 之后关闭当前terminal重新打开才会生效。- 创建一个虚拟环境:这里指定了name为,并且基础的Python版本为。
- 激活某个虚拟环境:这里激活了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模型pip install modelscope
modelscope download --model Qwen/Qwen2.5-7B-Instruct --local_dir /root/autodl-tmp/Qwen/Qwen2.5-7B-Instruct
--model标识你要下载的模型,从modelscop复制即可--local_dir标识下载的模型放到哪个路径下,自定义即可,下载后的文件如下:
因为我们使用vllm部署,因此,我们需要先下载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)。
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 = '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.htmlhttps://docs.vllm.ai/en/stable/usage/tool_calling.html