当前位置: 首页 > news >正文

开源双语对话语言模型 ChatGLM-6B 本地私有化部署

本文首发于:https://www.licorne.ink/2023/08/llm-chatglm-6b-local-deploy/

ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型,基于 General Language Model (GLM) 架构,具有 62 亿参数。结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。 ChatGLM-6B 使用了和 ChatGPT 相似的技术,针对中文问答和对话进行了优化。经过约 1T 标识符的中英双语训练,辅以监督微调、反馈自助、人类反馈强化学习等技术的加持,62 亿参数的 ChatGLM-6B 已经能生成相当符合人类偏好的回答。ChatGLM-6B 权重对学术研究完全开放,在填写问卷进行登记后亦允许免费商业使用。

其中一个比较关键的点是:消费级的显卡即可进行私有化部署,下文将着重介绍部署的相关步骤。

建议硬件配置:
在这里插入图片描述不过该模型也可在无GPU的情况下部署,但是推理速度会更慢,最低需要32G内存。

一、克隆仓库

本地部署的话实际需要用到两个仓库,一个是源码仓,一个是模型仓。在操作之前请确认Git已正确安装并启用了LFS。

源码仓库:https://github.com/THUDM/ChatGLM-6B

模型仓库:https://huggingface.co/THUDM/chatglm-6b

使用 git clone 命令克隆至本地即可,由于仓库的默认名称一致,建议在克隆一个仓库后改名再继续克隆另一个仓库。模型仓库体积较大,请确保网络连接稳定。

在这里插入图片描述

二、安装依赖

1. 更新显卡驱动

进行下面的操作前请确认已更新最新的显卡驱动。如果显卡本身就以工作负载为主,请选择 Studio 版本的驱动。

2. Python3

首先确保 Python3 已正确安装并配置了相应的环境变量。打开命令窗口能正常调用 py 和 pip 命令说明配置正确。

3. 自动安装依赖

进入源码仓库,执行以下命令安装依赖:

pip install -r requirements.txt

4. 安装 PyTorch 和对应版本的 CUBA

为了确保 Torch 版本与 CUBA 匹配,先执行以下命令移除已有的 PyTorch:

pip3 uninstall torch torchvision torchaudio

在这里插入图片描述
打开 https://pytorch.org/get-started/locally/ 页面,选择 PyTorch 的版本,注意 CUBA 版本的选择,然后复制如图的安装命令。

在这里插入图片描述
打开 https://developer.nvidia.com/cuda-downloads 页面,如果自动跳转的 CUBA 版本与要求的版本不一致,可以找到在页面下方的 Archive of Previous CUDA Releases 链接打开新的页面检索并下载安装。

在这里插入图片描述

三、改用本地模型

源码仓库在没有修改的情况下默认不会使用本地的模型,接下来需要修改模型引用的代码来指向本地的模型文件。建议使用 VS Code 之类的工具来进行批量的替换。

实际操作时,只需要将整个源码目录下的 “THUDM/chatglm-6b” (注意,搜索替换时一定要带上这对英文的双引号,否则可能会错误匹配)替换成第一步中克隆下来的模型的目录的路径(注意替换后的文本也需要英文的双引号,Windows 下要注意 \ 需要以转义符 \ 的形式写入)。

四,启动 WebDemo

上述步骤全部完成后,进入源码仓库,使用下述命令启动即可:

py .\web_demo.py

启动完毕后会自动打开 Web 页面,Enjoy It!

在这里插入图片描述

PS:这玩意儿确实吃显存啊!

http://www.lryc.cn/news/145938.html

相关文章:

  • Zabbix 5.0 媒体介质 邮箱配置例子
  • 基于Red Hat Enterprise Linux 7操作系统的PostgresSql15的备份恢复(实践笔记)
  • AMEYA360:类比半导体推出小尺寸低功耗仪表放大器INA103和INA104
  • 【Ubuntu20.04】安装gcc11 g++11, Ubuntu18.04
  • vim系列之常用命令
  • Scikit-Learn中的特征选择和特征提取详解
  • Python之动态规划
  • [ES]二基础 |
  • vscode vue3自定义自动补全
  • Spring Cloud + Spring Boot 项目搭建结构层次示例讲解
  • 使用cgroup工具对服务器某些/全部用户进行计算资源限制
  • C#获取DataTable的前N行数据然后按指定字段排序
  • Swift 中的动态成员查找
  • leetcode做题笔记102. 二叉树的层序遍历
  • python编写四画面同时播放swap视频
  • 用XSIBackup为VMware ESXi打造完美备份方案
  • React 项目中引入msal验证以及部分报错处理
  • Unity3D 2021 使用 SharpZipLib 遇到的安卓打包 I18N 相关问题
  • 软件工程(十五) 行为型设计模式(一)
  • 【校招VIP】前端算法考点之快慢指针题型
  • Docker基础入门:容器数据卷与Dockerfile构建镜像(发布)
  • 部署问题集合(二十一)从零开始搭建一台NAS服务器(Linux虚拟机)
  • Git小白入门——了解分布式版本管理和安装
  • 芯科科技宣布推出下一代暨第三代无线开发平台,打造更智能、更高效的物联网
  • 无涯教程-Android - Intents/Filters
  • NFTScan 正式上线 Base NFTScan 浏览器和 NFT API 数据服务
  • 【Git】测试持续集成——Git+Gitee+PyCharm
  • 《HelloGitHub》第 89 期
  • 多维时序 | Matlab实现LSTM-Adaboost和LSTM多变量时间序列预测对比
  • c语言每日一练(12)