ChatCLM 博客

ChatGLM Github

ChatGLM-webui

介绍

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

为了方便下游开发者针对自己的应用场景定制模型,我们同时实现了基于 P-Tuning v2 的高效参数微调方法 (使用指南) ,INT4 量化级别下最低只需 7GB 显存即可启动微调。

不过,由于 ChatGLM-6B 的规模较小,目前已知其具有相当多的局限性,如事实性/数学逻辑错误,可能生成有害/有偏见内容,较弱的上下文能力,自我认知混乱,以及对英文指示生成与中文指示完全矛盾的内容。请大家在使用前了解这些问题,以免产生误解。更大的基于 1300 亿参数 GLM-130B 的 ChatGLM 正在内测开发中。

硬件需求

量化等级 最低 GPU 显存(推理) 最低 GPU 显存(高效参数微调)
FP16(无量化) 13 GB 14 GB
INT8 8 GB 9 GB
INT4 6 GB 7 GB

示例配置

  • 操作系统:CentOS 7.9
  • 显卡型号:Tesla V100  32G显存。
  • 显卡驱动:NVIDIA-SMI 470.161.03   Driver Version: 470.161.03   CUDA Version: 11.4

环境准备

CentOS 7.9 自带的Python版本过低,这里使用Anaconda部署,Python版本为3.10.9,Nvidia显卡可以通过运行 nvidia-smi 命令检查驱动是否成功安装

  • Anaconda
  • Python 3.10+、pip
  • Git

下载Anaconda安装脚本,根据提示完成安装


wget -P /usr/local/conda https://repo.anaconda.com/archive/Anaconda3-2023.03-Linux-x86_64.sh && cd /usr/local/conda && bash Anaconda3-2023.03-Linux-x86_64.sh

创建虚拟环境

[[ Conda 命令说明 ]]


# 从base环境克隆虚拟环境到chatglm
conda create -n chatglm --clone base # 进入chatglm虚拟环境
conda activate chatglm # 检查Pyton版本
python -V

安装ChatGLM

克隆ChatGLM源代码,并下载依赖

# 安装git
yum -y install git # 切换工作目录到/usr/local
cd /usr/local # 克隆源代码
git clone https://github.com/THUDM/ChatGLM-6B.git # 切换工作目录到/usr/local/ChatGLM-6B
cd ChatGLM-6B # 安装依赖
pip install -r requirements.txt # 安装 Gradio
pip install gradio fastapi uvicorn # 运行web_demo.py,会自动下载模型
python web_demo.py # 下载完成后,会提示Torch not compiled with CUDA enabled,参考文末解决办法 # 检查torch.cuda.is_available(),如输出为True,则重新运行
python web_demo.py

安装ChatGLM-webui

克隆安装ChatGLM-webu源代码,并下载依赖

# 克隆ChatGLM-webui
git clone https://github.com/Akegarasu/ChatGLM-webui.git # 切换工作目录到/usr/local/ChatGLM-webui
cd ChatGLM-webui # 安装依赖
bash install.sh # 启动webui
python webui.py

webui 启动参数

--model-path: 指定模型路径。如果不手动指定此参数,则默认值为THUDM/chatglm-6b. Transformers会自动从huggingface下载模型。

--listen: 以 0.0.0.0 作为服务器名称启动 gradio,允许其他设备访问。

--port: webui端口

--share: 使用 gradio 分享

--precision:fp32(仅 CPU)、fp16、int4、int8

--cpu: 使用处理器

常见错误

  1. AssertionError: Torch not compiled with CUDA enabled
AssertionError: Torch not compiled with CUDA enabled

提示Torch未在启用CUDA的情况下编译,检查pytorch是否为GPU版本,torch.cuda.is_available()输出应该是True

python
import torch
torch.cuda.is_available()

如果输出为False,则执行下面指令安装

pip install torch==1.13.1+cu117 torchvision==0.14.1+cu117 -f https://mirror.sjtu.edu.cn/pytorch-wheels/torch_stable.html -i https://mirrors.bfsu.edu.cn/pypi/web/simple
  1. ImportError: /lib64/libstdc++.so.6: version `CXXABI_1.3.9'
python webui.py --listen --precision=fp16
Traceback (most recent call last):
......
ImportError: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /usr/local/anaconda3/envs/chatglm/lib/python3.10/site-packages/pandas/_libs/window/aggregations.cpython-310-x86_64-linux-gnu.so)

运行bash install.sh 脚本时,由于脚本安装依赖换源导致,切换默认源重新安装即可

  1. ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts. torchvision 0.14.1+cu117 requires torch==1.13.1, but you have torch 2.0.0 which is incompatible.

ChatCLM部署随笔的更多相关文章

  1. openStack kilo 手动Manual部署随笔记录

    一 ,基于neutron网络资源主机(控制节点,网络节点,计算节点)网络规划配置 1, controller.cc 节点 网络配置截图

  2. Elasticsearch学习随笔(一)--原理理解与5.0核心插件部署过程

    最近由于要涉及一些安全运维的工作,最近在研究Elasticsearch,为ELK做相关的准备.于是把自己学习的一些随笔分享给大家,进行学习,在部署常用插件的时候由于是5.0版本的Elasticsear ...

  3. 记一个菜鸟在Linux上部署Tomcat的随笔

    以前都只是在园子里找各种资料.文档.各种抱大腿,今天是第一次进园子里来添砖加瓦,实话说,都不知道整些啥东西上来,就把自己在Linux上搭建Tomcat的过程记录下来,人笨,请各位大虾们勿喷. 虽然做开 ...

  4. jmeter 环境部署、数据库设置、分布式设置、多网卡配置等随笔

    <!-- linux系统修改系统环境变量  系统语言-->[root@web-249 ~]# env|grep LANGLANG=zh_CN.UTF-8[root@web-249 ~]# ...

  5. Cesium随笔(1)部署自己的项目 【转】

    Cesium是国外开发的基于Webgl的跨浏览器的三维地球显示的Javascript开源库,只要浏览器支持Webgl,html5就可以运行.甚至部分手机浏览器都可以运行 . 首先,对Cesium进行本 ...

  6. OpenStack Mitaka HA部署方案(随笔)

    [Toc] https://github.com/wanstack/AutoMitaka # 亲情奉献安装openstack HA脚本 使用python + shell,完成了基本的核心功能(纯二层的 ...

  7. .net core in Docker 部署方案(随笔)

    前一段时间由于项目需要 .net core 在docker下的部署,途中也遇到很多坑,看了各同行的博客觉得多多少少还是有些问题,原本不想写此篇文章,由于好友最近公司也需要部署,硬是要求,于是花了些时间 ...

  8. Oracle安装部署,版本升级,应用补丁快速参考

    一.Oracle安装部署 1.1 单机环境 1.2 Oracle RAC环境 1.3 Oracle DataGuard环境 1.4 主机双机 1.5 客户端部署 二.Oracle版本升级 2.1 单机 ...

  9. 介绍几种SSIS部署方式

    介绍 如果你已经开发完一个不错的SSIS包并且能够在你的本地完美的运行,每个任务都亮起绿色的通过标志.这时为了能够让这个包处理能够在指定时间运行,你需要将其发布到一个服务器上,并做好相关配置.作为开发 ...

  10. centos 6.5 中部署开源的Lepus(天兔)监控

    这俩天一直在搞mysql数据库和centos.昨天成功的部署完mysql的主从库配置后,自己想了想是否需要个数据库监控,和执行情况的监控软件,于是就去百度上搜了一下,结果就搜到了今天的‘主角’ Lep ...

随机推荐

  1. JavaScript的Object.defineProperty( )方法

    Object.defineProperty方法可以在一个对象上定义一个新的属性,或者修改该对象原有的属性,并返回该对象. 基础的语法格式如下: 1 var data = {}//定义一个对象 2 Ob ...

  2. VBA类模块完全教程(www.accessoft.com软件网)

    这份礼物送给现在想学习类知识或曾经学过但因为各种原因没有"修成正果"的朋友,我期望的结果是这篇文章后,您可以在类模块中像在标准模块中写代码一样熟练,我也期望不至于太乏味而使您没有耐 ...

  3. 智汇成城 ,创赢未来 | AI+产业峰会智慧城市专场在深成功举办!

    11月4日下午,由福田区人才工作局指导,广州英码信息科技有限公司和共达地创新技术(深圳)有限公司联合主办,深圳市人工智能行业协会承办的AI+产业峰会之智慧城市专场活动在深圳市南山区成功举办. &quo ...

  4. ios装包

    一.下载爱思助手 二.找到本机设备 注:如果未弹出允许.拒绝调试选项可尝试换根数据线解决 三.将对应包体文件拖入本机设备

  5. Tensorflow learning notebook

    How does tensorflow work 原著blog https://jacobbuckman.com/#posts

  6. python实例1(石头 剪刀 布)

    #random   .randint       模块导入 import random #定义一个用户需要输入的数据内容入口 user = int(input("请输入(石头1,剪刀2,布3 ...

  7. Go_day07

    Go常用包 包的本质:创建不同的文件夹,来存放程序文件 Go语言的源码复用建立再包package基础之上 main包 Go语言的入口 main()函数所在的包必须是main包 main包需要引用代码, ...

  8. MySql8错误记录.巨坑!File './binlog.index' not found

    mysql8存在大小写敏感,若要设置不敏感,需要在mysql初始化时设置:然后库中已有项目存在,mysql备份文件夹后无法重启,还原数据后存在权限问题,更改文件夹权限后,发现仍然不行,将SELinux ...

  9. baodoumi yml配置

    上次因为自增,发现配置没生效, 修改后如下 # 配置mybatis-plus, 参考:com.baomidou.mybatisplus.autoconfigure.MybatisPlusPropert ...

  10. 写Java程序有感

    最近我练习了Java的学生管理系统的程序代码,多亏了前段时间小学期的系统类练习,让我比较容易地就能够理解该题的题意,再根据我学到的相关的Java知识,就好像是一个套用公式的逻辑. 用到的相关知识: 1 ...