You need to enable JavaScript to run this app.
导航
[模型组]Qwen-7B
最近更新时间:2024.06.07 10:16:43首次发布时间:2024.06.07 10:16:43

Qwen-7B 是一个官方模型组,它包含 3 个独立模型和 1 个 Ensemble 模型。Ensemble 模型将 3 个独立模型封装为一个工作流。本模型组允许您向一体机私有化部署 Qwen-7B 大模型,在边缘侧获取大模型服务。
Qwen-7B 是 Alibaba Cloud 推出的大型语言模型系列 Qwen(通义千问)的 7B 参数版本。Qwen-7B 是基于 Transformer 架构的语言模型,预训练数据包括大量的网络文本、书籍、代码等,覆盖了广泛的领域。这个模型已经开源,可以在多个平台上使用。更多信息,可以参考以下链接:

注意

边缘智能“官方 Qwen-7B 模型组”中提供了 Alibaba Cloud 的 Qwen-7B 大模型供您部署到您的计算环境中以提供推理服务。
版权许可
Alibaba Cloud 的 Qwen-7B 大模型受版权保护,其使用需遵循 Tongyi Qianwen LICENSE AGREEMENT 中的条款。在使用边缘智能“官方 Qwen-7B 模型组”前,请仔细阅读并理解上述许可协议的内容。

模型组基本信息

模型列表

本模型组包含 4 个模型。其中,Ensemble 模型中封装了其他模型,定义了模型组的整体工作流。使用过程中,您只需部署 Ensemble 模型,无需关注中间的处理过程。
下表罗列了本模型组包含的所有模型。您可以在边缘智能控制台的 官方模型 列表访问这些模型。

模型名称

模型基本信息

Qwen-7B-Chat PreProcess

图片

Qwen-7B-Chat LLM

图片

Qwen-7B-Chat PostProcess

图片

Qwen-7B-Chat

图片

Ensemble 模型输入

名称

类型

形状

说明

messages

STRING

1

构成对话的消息(message)列表。messges 采用符合 OpenAI - Create chat completion 接口调用要求的格式。支持 textimage_url 类型消息。

max_tokens

INT32

1

完成对话过程中可以生成的最大令牌数量。最大值为 8192。

top_p

FP32

1

top_p 用于控制模型选词的策略,详情参见 OpenAI 文档
使用说明:

  • 较高的 top_p 值(接近 1)意味着模型会考虑更多的词汇,生成的文本可能更加多样和新颖,但有时也可能减少一致性和相关性。
  • 较低的 top_p 值(远离 1)使得生成文本更加集中于高概率的词汇,通常会提高文本的连贯性和相关性,但可能牺牲创新性和多样性。

Ensemble 模型输出

名称

类型

形状

说明

text_output

STRING

1

LLM 响应的文本内容。

usage

STRING

1

完成此次请求的令牌使用统计数据。

Ensemble 模型版本

本模型提供一个可部署版本。
图片

版本名称

最大批处理大小

硬件架构要求

其他说明

3090_fp16_2k

取值范围:1~100。

只能部署到具有 RTX 3090 显卡的一体机上。

此版本包含 Qwen-7B 大模型文件。部署过程中涉及大模型文件的下载,部署用时较长。

部署模型服务

参考 部署模型服务进行模型服务的部署。在 部署模型服务 参数配置页面,修改以下配置:

说明

下表中未包含的配置项无需修改,统一使用默认值。

类型

配置项

说明

基本信息

节点

选择一个节点(一体机)。

服务名称

设置一个服务名称。该名称不能与节点上其他服务的名称重复。

模型信息

模型

选择 Qwen-7B-Chat

模型版本

选择 3090_fp16_2k

服务配置

HTTP端口

指定节点上的一个空闲端口。

GRPC端口

指定节点上的一个空闲端口。

OpenAI标准接口

该功能开启后,您可直接使用 OpenAI SDK 及其相关生态链工具调用模型服务。
要开启该功能,您需要指定节点上的一个空闲端口作为访问端口。

验证

完成模型服务部署后,您可以使用客户端脚本进行模型的调用。
以下是 Client 脚本的示例:

  • 直接调用

    import requests
    import json
    
    server = "<server_ip:port>" # 修改为模型服务的服务地址(可从模型服务详情中获取)
    model = "<model_service_name>" # 修改为模型服务的名称(可从模型服务详情中获取)
    
    url = "http://%s/v2/models/%s/generate" % (server, model)
    
    data = {
        "messages": json.dumps([
          {
            "role": "system",
            "content": [
              {
                "type": "text",
                "text": "You are a helpful assistant."
              }
            ]
          },
          {
            "role": "user",
            "content": [
              {
                "type": "text",
                "text": "请你说'是'"
              },
            ]
          }
        ]),
        "max_tokens": 500, # 设置最大输出 tokens 数量
        "top_p": 0.8, # 设置 top_p
    }
    
    response = requests.post(url, json=data)
    print(response.json())
    
  • 使用 OpenAI SDK 调用

    import argparse
    from openai import OpenAI
    
    def main():
        # 设置命令行参数解析
        parser = argparse.ArgumentParser(description='Connect to an OpenAI server with specified base URL.')
        parser.add_argument('--server', type=str, required=True, help='Server IP and port in the format ip:port')
        parser.add_argument('--apikey', type=str, default="apikey", help='Your Api Key')
    
        # 解析命令行参数
        args = parser.parse_args()
    
        # 构建完整的URL
        base_url = f"http://{args.server}/v1"
        
        # 创建OpenAI客户端实例
        client = OpenAI(
            base_url=base_url,
            api_key=args.apikey,
        )
        
        response = client.chat.completions.create(
            messages=[
                {
                    "role": "user",
                    "content": "天空为什么是蓝色?",
                }
            ],
            model="model",
            max_tokens=1000,
        )
    
        print(response)
    
    if __name__ == '__main__':
        main()