当前位置:   article > 正文

【大模型研究】(12):在autodl上,使用xinference部署qwen-chat大模型,支持函数调用,使用openai接口调用成功!xinference是国人开发的项目,大家一起支持下!_xinference 接口 openai调用

xinference 接口 openai调用

1,视频地址

https://www.bilibili.com/video/BV14t421W7jv/?vd_source=4b290247452adda4e56d84b659b0c8a2

【大模型研究】(12):在autodl上,使用xinference部署qwen-chat大模型,支持函数调用,使用openai接口调用成功!

2,关于函数调用

https://zhuanlan.zhihu.com/p/673584022

什么是函数调用(Function Calling)?
函数调用是 OpenAI GPT-4 和 GPT-3.5 Turbo 模型的高级特性,它使得模型能够根据用户指令决定是否调用相应的函数,以结构化的格式返回信息,而不是仅提供普通的文本回答。 这种整合了大型语言模型与外部工具及API的能力,显著增强了模型的应用潜力。

例如,要获取实时天气信息,ChatGPT 本身不具备实时数据;函数调用则开辟了一条通道,使得 AI 能够与外部系统互动,如接入信息检索系统、查询实时天气、执行代码等。 这使得基于大型语言模型的智能代理能够执行更为复杂的任务,大幅提升了模型的实用性和应用领域的广度。

在接下来的内容中,我们将演示如何利用 Xinference 在本地部署大语言模型 Qwen,并实现类似 OpenAI 的函数调用。此外,我们将评估 ChatGLM3 和 Qwen 在特定数据集上,函数调用的准确性, 并分析其出错的潜在原因。这些评估将帮助我们更深入地理解这些模型的能力和限制,为实际应用提供洞见。

3,Xinference 介绍和使用

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/

4,启动特别简单

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 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

然后启动qwen14b大模型

xinference launch --model-name qwen-chat --size-in-billions 7 --model-format pytorch --quantization 8-bit

  • 1
  • 2

5,使用 openapi 客户的调用

# 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'])
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49

经过测试,可以返回北京结果

6,总结

经过测试,目前支持函数调用的大模型是 chatglm3 和 qwen 大模型。
函数调用是非常有用,可以扩展去开发功能。
国人开发的项目,还是非常赞的!!!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/697878
推荐阅读
相关标签
  

闽ICP备14008679号