ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

self-llm 如何用 vLLM 部署 Kimi-K2.5 并调用 OpenAI 兼容接口

self-llm 如何用 vLLM 部署 Kimi-K2.5 并调用 OpenAI 兼容接口 self-llm 如何用 vLLM 部署 Kimi-K2.5 并调用 OpenAI 兼容接口【免费下载链接】self-llm《开源大模型食用指南》针对中国宝宝量身打造的基于Linux环境快速微调全参数/Lora、部署国内外开源大模型LLM/多模态大模型MLLM教程项目地址: https://gitcode.com/GitHub_Trending/se/self-llm在《开源大模型食用指南》(self-llm) 的 Kimi-K2.5 教程中部署目标是用 vLLM 把moonshotai/Kimi-K2.5加载为本地推理服务并在http://localhost:8000上暴露兼容OpenAI API协议的接口模型列表、completions、chat completions之后就可以用curl或 OpenAI Python SDK 发起请求。教程给出的基础环境为 Ubuntu 22.04、Python 3.12、CUDA 12.8、PyTorch 2.8.0并默认学习者已配好 PyTorch (CUDA) 环境未配置需先自行安装。准备环境先升级 pip、换源并安装modelscope与vllmpython -m pip install --upgrade pip pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple pip install modelscope pip install vllm注意pip config set这一条会持久修改本机全局 pip 索引配置改为清华源用于加速依赖下载不需要该来源的机器上执行前请知悉。如果本地环境配置遇到困难文档中提到项目团队在 AutoDL 平台准备了 Kimi-2.5 的环境镜像datawhalechina/self-llm/KIMI-2.5-vllm按源文档中的入口直接创建示例即可此处不再给出外部链接。下载 Kimi-K2.5 模型模型通过 ModelScope 的snapshot_download下载。新建model_download.py并写入from modelscope import snapshot_download model_dir snapshot_download(moonshotai/Kimi-K2.5, cache_dir/root/autodl-tmp, revisionmaster)然后在终端执行python model_download.py等待下载完成。文档明确要求把cache_dir修改为你自己的模型下载路径。需要说明源文档中下载脚本的示例路径是/root/autodl-tmp而后续服务启动命令使用的路径是/root/autodl-fs/moonshotai/Kimi-K2.5两处并不相同。后文所有命令与代码沿用了文档中的路径实际使用时请统一替换为你自己的模型目录。启动 vLLM 的 OpenAI 兼容服务KiMi-2.5 兼容 OpenAI API 协议可直接用 vLLM 创建 API 服务器。文档给出的启动命令VLLM_USE_MODELSCOPEtrue vllm serve /root/autodl-fs/moonshotai/Kimi-K2.5 -tp 8 --max_model_len 8192 --trust-remote-code --tool-call-parser kimi_k2 --reasoning-parser kimi_k2命令中的要素模型参数后面的路径示例为/root/autodl-fs/moonshotai/Kimi-K2.5本地模型路径替换为你实际下载的位置-tp 8张量并行规模与文档离线推理脚本中tensor_parallel_size8的用法对应--max_model_len 8192模型可处理的最大输入输出长度之和文档将其列为创建服务器时可指定的参数之一对应--max-model-len--trust-remote-code允许加载模型仓库中的自定义代码--tool-call-parser kimi_k2启用 Kimi 的工具调用解析是后文工具调用示例能工作的前提--reasoning-parser kimi_k2指定如何解析模型生成的推理内容。文档说明设置推理解析参数时该配置是必需的开启后响应会包含reasoning_content字段环境变量VLLM_USE_MODELSCOPEtrue让 vLLM 走 ModelScope 而非 HuggingFace 拉取资源。文档同时列出创建服务器时还可指定的参数--host和--port指定地址、--model指定模型名称、--chat-template指定聊天模板、--served-model-name指定服务模型名称、--enable-reasoning开启思考模式。服务默认在http://localhost:8000启动一次托管一个模型。模型加载完毕后终端出现服务成功启动的信息即表示部署完成下图为文档中的启动截图示例验证 OpenAI 兼容接口查看模型列表curl http://localhost:8000/v1/models文档示例返回节选permission数组已省略{ object: list, data: [ { id: /root/autodl-fs/moonshotai/Kimi-K2.5, object: model, created: 1770228068, owned_by: vllm, root: /root/autodl-fs/moonshotai/Kimi-K2.5, max_model_len: 8192 } ] }列表中能看到以模型路径命名的模型条目max_model_len与启动参数一致说明服务已按预期加载模型。测试 completions 接口curl http://localhost:8000/v1/completions \ -H Content-Type: application/json \ -d { model: /root/autodl-fs/moonshotai/Kimi-K2.5, prompt: 我想问你什么是深度学习算法\n, max_tokens: 1024, temperature: 0 }文档示例的返回是一个 JSON 对象choices[0].text为模型生成的正文示例中是关于深度学习算法的 Markdown 回答finish_reason为stopusage字段给出prompt_tokens、completion_tokens、total_tokens统计文档示例值为 9 / 343 / 352仅示例。用 OpenAI SDK 调用 Chat Completions新建 Python 脚本文档中运行文件名为vllm_openai_chat_completions.pyfrom openai import OpenAI openai_api_key sk-xxx # 随便填写只是为了通过接口参数校验 openai_api_base http://localhost:8000/v1 client OpenAI( api_keyopenai_api_key, base_urlopenai_api_base, ) chat_outputs client.chat.completions.create( model/root/autodl-fs/moonshotai/Kimi-K2.5, messages[ {role: user, content: 什么是大模型}, ] ) print(chat_outputs)python vllm_openai_chat_completions.py文档示例返回ChatCompletion对象其中message.content是最终答案reasoningreasoning_content字段是思考模式下的推理内容usage给出 token 统计。注意model参数要与/v1/models返回的id一致即你的实际模型路径。以上所有请求处理过程中API 后端都会打印对应的日志和统计信息下图为文档示例使用工具调用可选由于服务启动时带--tool-call-parser kimi_k2接口支持 tools 参数。源文档提供了完整示例脚本思路是在客户端定义add、mul、compare、count_letter_in_string四个 Python 函数及对应的tools定义第一次chat.completions.create让模型返回tool_calls本地执行函数并把结果以role: tool追加回messages第二次请求拿到最终答案。文档示例的两次测试问题为“strawberry 中有多少个 r”和“9.11 和 9.9 哪个小”示例输出为在字符串strawberry中字母r出现了3次。 9.11比9.9小。完整代码见 02-Kimi-2.5-vLLM 部署调用示例脚本中eval执行模型返回的参数仅建议在自己可控的本地环境用于演示。限制与说明文档示例的启动命令使用-tp 8即按多卡张量并行配置单卡或不同卡数的机器需要自行调整该参数文档未给出其他卡数配置。服务默认监听http://localhost:8000文档未给出对外网开放端口的操作如需远程调用先自行处理网络访问。离线推理不经过 API 服务的验证方式文档中用LLM类 apply_chat_template的脚本演示过模型响应由 \think... /输出文章输出文章self-llm 如何用 vLLM 部署 Kimi-K2.5 并调用 OpenAI 兼容接口在《开源大模型食用指南》(self-llm) 的 Kimi-K2.5 教程中要完成的任务是用 vLLM 把moonshotai/Kimi-K2.5加载为本地推理服务暴露兼容OpenAI API协议的接口模型列表、completions、chat completions然后用curl或 OpenAI Python SDK 发起请求。教程给出的基础环境为 Ubuntu 22.04、Python 3.12、CUDA 12.8、PyTorch 2.8.0并默认学习者已配好 PyTorch (CUDA) 环境未配置需先自行安装。准备环境先升级 pip、换源并安装modelscope与vllmpython -m pip install --upgrade pip pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple pip install modelscope pip install vllm其中pip config set会持久修改本机全局 pip 索引配置指向清华源以加速依赖下载执行前知悉这一副作用即可。如果本地环境配置遇到问题文档提到项目在 AutoDL 平台准备了 Kimi-2.5 的环境镜像datawhalechina/self-llm/KIMI-2.5-vllm可按源文档中的入口直接创建示例使用。下载 Kimi-K2.5 模型模型通过 ModelScope 的snapshot_download下载第一个参数为模型名称cache_dir为下载路径。新建model_download.pyfrom modelscope import snapshot_download model_dir snapshot_download(moonshotai/Kimi-K2.5, cache_dir/root/autodl-tmp, revisionmaster)在终端执行python model_download.py耐心等待下载完成。文档明确要求把cache_dir修改为你自己的模型下载路径。需要说明源文档中下载脚本示例用的路径是/root/autodl-tmp而服务启动命令使用的路径是/root/autodl-fs/moonshotai/Kimi-K2.5两处并不相同。后文所有命令与代码沿用文档原值实际使用时请统一替换为你实际下载后的模型目录。启动 vLLM 的 OpenAI 兼容服务Kimi-2.5 兼容 OpenAI API 协议可直接用 vLLM 创建 OpenAI API 服务器。文档给出的启动命令VLLM_USE_MODELSCOPEtrue vllm serve /root/autodl-fs/moonshotai/Kimi-K2.5 -tp 8 --max_model_len 8192 --trust-remote-code --tool-call-parser kimi_k2 --reasoning-parser kimi_k2命令要素说明紧跟vllm serve的路径示例/root/autodl-fs/moonshotai/Kimi-K2.5本地模型路径替换为你实际下载的位置-tp 8张量并行规模与文档离线推理脚本中tensor_parallel_size8的用法对应--max_model_len 8192模型可处理的最大输入输出长度之和--trust-remote-code允许加载模型仓库中的自定义代码--tool-call-parser kimi_k2启用 Kimi 的工具调用解析是后文工具调用示例能工作的前提--reasoning-parser kimi_k2指定如何解析模型生成的推理内容。文档说明开启思考模式--enable-reasoning时该参数是必需的推理模型会在输出中包含reasoning_content字段环境变量VLLM_USE_MODELSCOPEtrue让 vLLM 走 ModelScope 而非 HuggingFace 拉取资源。文档同时列出创建服务器时还可指定的参数--host和--port指定地址、--model指定模型名称、--chat-template指定聊天模板、--served-model-name指定服务模型名称、--enable-reasoning开启思考模式。服务默认在http://localhost:8000启动一次托管一个模型。模型加载完毕后终端出现服务成功启动的信息即表示部署完成下图为文档中的启动成功截图验证 OpenAI 兼容接口查看模型列表curl http://localhost:8000/v1/models文档示例返回节选permission数组已省略{ object: list, data: [ { id: /root/autodl-fs/moonshotai/Kimi-K2.5, object: model, created: 1770228068, owned_by: vllm, root: /root/autodl-fs/moonshotai/Kimi-K2.5, max_model_len: 8192 } ] }列表中能看到以模型路径命名的模型条目max_model_len与启动参数一致说明服务已按预期加载模型。测试 completions 接口curl http://localhost:8000/v1/completions \ -H Content-Type: application/json \ -d { model: /root/autodl-fs/moonshotai/Kimi-K2.5, prompt: 我想问你什么是深度学习算法\n, max_tokens: 1024, temperature: 0 }文档示例的返回是 JSON 对象choices[0].text为模型生成的正文示例中是关于深度学习算法的 Markdown 回答finish_reason为stopusage字段给出prompt_tokens、completion_tokens、total_tokens统计文档示例值为 9 / 343 / 352仅为示例输出。用 OpenAI SDK 调用 Chat Completions新建 Python 脚本文档中运行文件名为vllm_openai_chat_completions.pyfrom openai import OpenAI openai_api_key sk-xxx # 随便填写只是为了通过接口参数校验 openai_api_base http://localhost:8000/v1 client OpenAI( api_keyopenai_api_key, base_urlopenai_api_base, ) chat_outputs client.chat.completions.create( model/root/autodl-fs/moonshotai/Kimi-K2.5, messages[ {role: user, content: 什么是大模型}, ] ) print(chat_outputs)python vllm_openai_chat_completions.py文档示例返回ChatCompletion对象其中message.content是最终答案reasoningreasoning_content字段是思考模式下的推理内容usage给出 token 统计。注意model参数要与/v1/models返回的id一致即你的实际模型路径。以上所有请求处理过程中API 后端都会打印对应的日志和统计信息下图为文档示例使用工具调用可选由于服务启动时带--tool-call-parser kimi_k2接口支持tools参数。源文档提供了完整示例脚本在客户端定义add、mul、compare、count_letter_in_string四个函数及对应的tools定义第一次chat.completions.create让模型返回tool_calls本地执行函数并把结果以role: tool追加回messages第二次请求拿到最终答案。文档示例的两个测试问题为“strawberry 中有多少个 r”和“9.11 和 9.9 哪个小”示例输出为在字符串strawberry中字母r出现了3次。 9.11比9.9小。完整代码见 02-Kimi-2.5-vLLM 部署调用。该示例中用eval执行模型返回的函数参数只建议在自己可控的本地环境用于演示。限制与说明文档示例的启动命令使用-tp 8按多卡张量并行配置不同卡数的机器需要调整该参数文档未给出其他卡数的配置。服务默认监听http://localhost:8000文档未涉及对外网开放端口的操作远程调用需自行处理网络访问。若不走 API 服务而做离线推理源文档用LLM类 apply_chat_template的脚本演示过响应由\think与\endthink包裹的思考过程和最终答案两部分组成思考模式官方建议参数为temperature0.6、TopP0.95、TopK20、MinP0可按需查阅源文档。【免费下载链接】self-llm《开源大模型食用指南》针对中国宝宝量身打造的基于Linux环境快速微调全参数/Lora、部署国内外开源大模型LLM/多模态大模型MLLM教程项目地址: https://gitcode.com/GitHub_Trending/se/self-llm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表