赞
踩
https://www.bilibili.com/video/BV14t421W7jv/?vd_source=4b290247452adda4e56d84b659b0c8a2
【大模型研究】(12):在autodl上,使用xinference部署qwen-chat大模型,支持函数调用,使用openai接口调用成功!
https://zhuanlan.zhihu.com/p/673584022
什么是函数调用(Function Calling)?
函数调用是 OpenAI GPT-4 和 GPT-3.5 Turbo 模型的高级特性,它使得模型能够根据用户指令决定是否调用相应的函数,以结构化的格式返回信息,而不是仅提供普通的文本回答。 这种整合了大型语言模型与外部工具及API的能力,显著增强了模型的应用潜力。
例如,要获取实时天气信息,ChatGPT 本身不具备实时数据;函数调用则开辟了一条通道,使得 AI 能够与外部系统互动,如接入信息检索系统、查询实时天气、执行代码等。 这使得基于大型语言模型的智能代理能够执行更为复杂的任务,大幅提升了模型的实用性和应用领域的广度。
在接下来的内容中,我们将演示如何利用 Xinference 在本地部署大语言模型 Qwen,并实现类似 OpenAI 的函数调用。此外,我们将评估 ChatGLM3 和 Qwen 在特定数据集上,函数调用的准确性, 并分析其出错的潜在原因。这些评估将帮助我们更深入地理解这些模型的能力和限制,为实际应用提供洞见。
https://github.com/xorbitsai/inference
文档地址:
https://inference.readthedocs.io/zh-cn/latest/
Xinference 是一个专为大型语言模型(LLM)、语音识别模型和多模态模型设计的开源模型推理平台,支持私有化部署。 它提供多种灵活的 API 和接口,包括 RPC、与 OpenAI API 兼容的 RESTful API、CLI 和 WebUI,并集成了 LangChain、LlamaIndex 和 Dify 等第三方开发者工具,便于模型的集成和开发。Xinference 支持多种推理引擎(如 Transformers、vLLM 和 GGML),并适用于不同硬件环境, Xinference 还支持分布式多机部署,能够在多个设备或机器间高效分配模型推理任务,满足多模型和高可用的部署需要。
接下来,我们将以 Qwen-14B 模型为例,介绍使用 Xinference 部署和运行模型的方法,并且展示一个使用函数调用来完成的天气
国人开发的项目
公司主页在这里:https://xorbits.cn/
pip3 install "xinference[all]"
export XINFERENCE_MODEL_SRC=modelscope
export XINFERENCE_HOME=/root/autodl-tmp
# 首先启动 xinference-local :
xinference-local --host 0.0.0.0 --port 9997
然后启动qwen14b大模型
xinference launch --model-name qwen-chat --size-in-billions 7 --model-format pytorch --quantization 8-bit
# encoding:utf-8
import openai
import json
client = openai.OpenAI(
base_url="http://127.0.0.1:9997/v1",
)
messages = [
{"role": "system", "content": "你是一个有用的助手。不要对要函数调用的值做出假设。"},
{"role": "user", "content": "北京 现在的天气怎么样?"}
]
tools = [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "获取当前天气",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "城市,例如北京",
},
"format": {
"type": "string",
"enum": ["celsius", "fahrenheit"],
"description": "使用的温度单位。从所在的城市进行推断。",
},
},
"required": ["location", "format"],
},
},
}
]
chat_completion = client.chat.completions.create(
model="chatglm3",
messages=messages,
tools=tools,
temperature=0.7
)
func_name = chat_completion.choices[0].message.tool_calls[0].function.name
print('func_name', func_name)
func_args = chat_completion.choices[0].message.tool_calls[0].function.arguments
func_args_dict = json.loads(func_args)
print('func_args', func_args_dict['location'])
经过测试,可以返回北京结果
经过测试,目前支持函数调用的大模型是 chatglm3 和 qwen 大模型。
函数调用是非常有用,可以扩展去开发功能。
国人开发的项目,还是非常赞的!!!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。