ChatGLM-6B 部署与使用指南

ChatGLM-6B 是清华大学与智谱 AI 开源的一款对话语言模型,基于 General Language Model (GLM) 架构,参数达到 62 亿,因其卓越的语言理解与生成能力,受到广泛关注。

一、在 DAMODEL 上部署 ChatGLM-6B

DAMODEL(丹摩智算)为 AI 提供强大的算力和基础设施支持。

1.1 实例创建

进入 DAMODEL 控制台,选择资源中的 GPU 云实例,然后点击“创建实例”。

image-20240923131320316

配置付费模式为按量付费,选择 NVIDIA GeForce RTX 4090 GPU,具有 60GB 内存和 24GB 显存。继续配置 50GB 的数据硬盘,选择 PyTorch 1.13.1 镜像启动。创建密钥对,完成实例创建。

image-20240923131454352

image-20240923131510147

1.2 模型准备

启动实例后,打开终端,使用 git 克隆 ChatGLM-6B 项目。如果 GitHub 连接不畅,

image-20240923132251865可选择其他站点或离线下载。

git clone https://gitcode.com/applib/ChatGLM-6B.git

image-20240923131706951

安装完成后,

image-20240923132855653

进入项目目录后,使用以下命令安装依赖:

pip install -r requirements.txt

利用 DAMODEL 提供的上传功能,将 Hugging Face 上的 ChatGLM-6B 预训练模型文件上传至 /root/shared-storage 目录。方法:

image-20240923134832043

我们可以通过魔塔社区进行下载

image-20240923135225318

下载完成后进行上传和解压即可。

1.3 模型启动

上传并解压模型后,通过 cli_demo.pyweb_demo.py 启动模型。将模型加载路径修改为本地路径,使用命令:

python cli_demo.py

在终端中进行交互,或通过 Web 接口与模型进行对话。

python web_demo.py

二、通过 Web API 实现本地调用

2.1 启动 API 服务

运行 api.py 文件,启动 FastAPI 服务,接受 HTTP POST 请求。此请求体包括生成文本所需的各项参数(如 prompt、history 等)。启动成功后,服务器将准备好响应请求。

cd ChatGLM-6B
python api.py

2.2 开放端口

在访问控制中,添加需要开放的端口,并复制生成的访问链接,以便后续使用。

image-20240923135445156

然后点击添加端口,输入端口号并确定开放。

2.3 使用 PostMan 测试功能

通过 PostMan 发送 POST 请求,测试 API 是否正常工作。示例请求体如下:

{
  "prompt": "你好,你是谁?",
  "max_length": 512,
  "top_p": 0.9,
  "temperature": 0.7
}

若返回状态码为 200,则表示请求成功。

2.4 本地代码使用示例

以下是一个基础的单轮对话代码示例:

import requests
import json

api_url = "http://your-api-url"

data = {
    "prompt": "你好,你是谁?",
    "max_length": 500,
    "top_p": 0.9,
    "temperature": 1.0
}

response = requests.post(api_url, json=data)

if response.status_code == 200:
    result = response.json()
    print("Response:", result['response'])
else:
    print("Error:", response.status_code)

多轮对话示例

以下是支持多轮对话的示例代码:

import requests
import json

api_url = "http://your-api-url"
conversation_history = []

while True:
    query = input("用户:")
    if query.strip().lower() == "stop":
        break
    prompt = query
    data = {
        "prompt": prompt,
        "history": conversation_history,
        "max_length": 5000,
        "top_p": 0.9,
        "temperature": 0.9
    }
    response = requests.post(api_url, json=data)
    if response.status_code == 200:
        result = response.json()
        print("Response:", result['response'])
        conversation_history = result['history']
    else:
        print("Error:", response.status_code)

通过这些步骤,您可以在本地实现与 ChatGLM-6B 模型的对话。无论是技术开发还是日常应用,这一过程都能有效支持您的需求。

Logo

尧米是由西云算力与CSDN联合运营的AI算力和模型开源社区品牌,为基于DaModel智算平台的AI应用企业和泛AI开发者提供技术交流与成果转化平台。

更多推荐