📑前言

在人工智能领域,自然语言处理(NLP)技术正迅速发展,其中对话生成模型因其广泛的应用前景而备受关注。ChatGLM-6B,由清华大学和智谱AI联合开源的一款对话语言模型,凭借其强大的语言理解和生成能力、轻量级的参数量以及开源的特性,在学术界和工业界引起了广泛关注。本文将介绍如何在丹摩智算平台上部署ChatGLM-6B模型,并通过Web API的形式使用本地代码调用服务端的模型进行对话。

一、ChatGLM-6B模型简介

ChatGLM-6B是一个基于General Language Model (GLM)架构的对话生成模型,具有62亿参数。该模型不仅具备优秀的语言理解能力,还能生成连贯、准确的回答,适用于多种对话场景。

ChatGLM-6B的特点

  • 强大的语言理解与生成能力:ChatGLM-6B能够理解和生成复杂的对话内容。
  • 轻量级的参数量:相较于其他大型模型,ChatGLM-6B具有更少的参数量,便于部署和应用。
  • 开源特性:模型的开源特性使得开发者可以自由地使用和修改,以适应特定的应用需求。

二、DAMODEL平台部署ChatGLM-6B

2.1 实例创建

部署ChatGLM-6B的第一步是在丹摩智算平台上创建GPU云实例。进入DAMODEL控制台,选择资源-GPU云实例,点击创建实例。在实例配置中选择付费类型为按量付费,选择单卡启动,并选择适合的GPU型号,例如NVIDIA GeForce RTX 4090。

2.2 模型准备

启动环境后,使用git克隆ChatGLM-6B项目。如果遇到GitHub连接问题,可以选择gitcode站点或者离线下载并上传到项目中。

cd /home/aistudio/work/
git clone https://github.com/THUDM/ChatGLM-6B.git

成功克隆项目后,进入项目文件夹,使用pip安装项目依赖。

pip install -r requirements.txt

2.3 模型启动

依赖安装成功后,需要引入模型文件。DAMODEL平台提供了数据上传功能,用户有20GB免费存储空间,该空间被挂载到实例的/root/shared-storage目录,跨实例共享。上传预训练模型及解压后,就可以启动python脚本运行了。

ChatGLM-6B提供了cli_demo.pyweb_demo.py两个文件来启动模型,一个是使用命令行进行交互,另一个是使用本机服务器进行网页交互。根据需要修改代码,从本地文件目录加载预训练模型。

在终端输入python cli_demo.pypython web_demo.py就可以成功启动模型了。

三、通过Web API实现本地使用

3.1 启动服务

ChatGLM-6B模型提供了api.py文件,实现了一个基于FastAPI框架的API服务。该服务接收一个HTTP POST请求,请求体包含文本生成所需的参数,如prompt(提示文本)、history(对话历史)、max_length(生成文本的最大长度)、top_p(采样时的累积概率阈值)和temperature(采样时的温度参数,影响生成文本的随机性)。

在终端cd进入ChatGLM-6B文件夹,运行api.py文件。

cd ChatGLM-6B
python api.py

3.2 开放端口

为本地访问开放对应的端口,首先需要点击访问控制,进入端口开放页面,然后点击添加端口,输入端口号,并点击确定开放。

3.3 使用PostMan测试功能

打开PostMan,新建一个Post请求,将复制的网址粘贴到URL栏,并在Body中填入相应的内容。发送请求后,如果显示成功的response,则说明API服务正常运行。

3.4 本地代码使用功能

在本地开发中,可以通过编写代码调用部署好的API服务。以下是一个基础的单轮对话功能示例代码:

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'])
    print("Updated History:", result['history'])
    print("Time:", result['time'])
else:
    print("Failed to get response from the API. Status code:", response.status_code)
    print(response.text)

四、总结

丹摩智算平台的易用性和强大功能,使得部署和使用先进的AI模型变得简单快捷。无论是学术研究还是商业应用,ChatGLM-6B都将为您的项目带来强大的NLP能力。随着技术的不断进步,我们有理由相信,丹摩智算将继续在人工智能领域发挥重要作用。

Logo

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

更多推荐