ChatGLM-6B (介绍相关概念、基础环境搭建及部署)

这篇具有很好参考价值的文章主要介绍了ChatGLM-6B (介绍相关概念、基础环境搭建及部署)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

最近chatgpt比较火,正好看到国内有个类似开源的框架,那不得试试、
ChatGLM-6B (介绍相关概念、基础环境搭建及部署)


一、ChatGLM-6B是什么?

ChatGLM-6B是清华大学知识工程和数据挖掘小组(Knowledge Engineering Group (KEG) & Data Mining at Tsinghua University)发布的一个开源的对话机器人。根据官方介绍,这是一个千亿参数规模的中英文语言模型。并且对中文做了优化。本次开源的版本是其60亿参数的小规模版本,约60亿参数,本地部署仅需要6GB显存。


二、安装虚拟的python环境

ChatGLM-6B 代码中有一些python3.7支持的语法,所以要有python3.7+ 的环境。我们使用conda来管理python环境
conda分为anaconda和miniconda。anaconda是包含一些常用包的版本,miniconda则是精简版.本文中我们将使用anaconda

1.下载

可以在官网中找到自己需要的版本进行下载,如果你系统也是ubutu 64位的,也可以使用我下载的版本进行安装

2.安装

在上一步下载的安装包同级,使用命令行执行以下命令

# 此处需写实际下载名称
bash Anaconda3-2023.03-Linux-x86_64.sh

ChatGLM-6B (介绍相关概念、基础环境搭建及部署)
然后根据提示操作即可
ChatGLM-6B (介绍相关概念、基础环境搭建及部署)
ChatGLM-6B (介绍相关概念、基础环境搭建及部署)

3.设置国内源(危险)

可以参考此文章。当然,如果不换源可以顺利装所有的包的话,尽量不要执行此操作。我就因为换了源,导致后边出了很多小问题。

4.虚拟环境使用简介

# 创建虚拟环境
conda create -n xxx python=3.8
# 进入虚拟环境
conda activate xxx
# 退出当前虚拟环境
conda deactivate
# 查看本地虚拟环境
conda info --env
# 删除虚拟环境
conda remove -n xxx --all

三、部署ChatGLM-6B

1. clone代码

git clone https://github.com/THUDM/ChatGLM-6B.git

2. 运行

1.创建虚拟环境

# 新建chatglm环境
conda create -n chatglm python=3.8
# 激活chatglm环境
conda activate chatglm

2.装包

2.1 找到合适的pytorch版本

我们可以通过以下命令查看自己的cuda及cuda驱动版本

nvidia-smi

ChatGLM-6B (介绍相关概念、基础环境搭建及部署)
我们可以看到,cuda版本是11.5,驱动版本是493.44,然后我们去官网寻找合适的pytorch装包指令,官网链接如下:
https://pytorch.org/get-started/locally/
https://pytorch.org/get-started/previous-versions/
如果找不到对应版本的话,可以参考此链接,通过驱动找到合适的cuda toolkit版本,然后再去官网寻找合适的装包指令
注:驱动是向下兼容的,其决定了可安装的CUDA Toolkit的最高版本。

2.1 安装依赖
# 根据上一步找到的安装指令进行安装:
pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu113
# 安装gradio用于启动图形化web界面
pip install gradio
# 安装运行依赖
pip install -r requirement.txt
2.2 验证pytorch是否为GPU版本
import torch
torch.cuda.is_available()  ## 输出应该是True

3.运行

在运行前,我们需要修改一些文件内容

# web_demo.py
# 1. 新增mirror='https://mirrors.tuna.tsinghua.edu.cn/hugging-face-models,下载模型使用清华源
tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True, mirror='https://mirrors.tuna.tsinghua.edu.cn/hugging-face-models')
model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True, mirror='https://mirrors.tuna.tsinghua.edu.cn/hugging-face-models').half().cuda()
# 2. 增加server_name和server_port参数
demo.queue().launch(share=True,server_name="0.0.0.0",server_port=9234)

四、部署过程中遇到的问题

1. 问题1

报错如下:

ERROR: Could not find a version that satisfies the requirement protobuf<3.20.1,>=3.19.5 (from versions: none)
ERROR: No matching distribution found for protobuf<3.20.1,>=3.19.5

ChatGLM-6B (介绍相关概念、基础环境搭建及部署)
原因及解决方案:
是因为上一步换了国内的镜像源,所以只需要指定装包路径即可l sls

pip install -r requirements.txt -i https://pypi.Python.org/simple/

2.问题2

报错如下:

ImportError: Using SOCKS proxy, but the 'socksio' package is not installed. Make sure to install httpx using `pip install httpx[socks]`.

ChatGLM-6B (介绍相关概念、基础环境搭建及部署)
原因及解决方案:
是因为我在命令行设置了“科学上网”,关掉即可

# 因为我设置的是临时的,所以在命令行输入如下代码即可
unset http_proxy
unset https_proxy

3.问题3

报错如下:

RuntimeError: CUDA out of memory. Tried to allocate 128.00 MiB (GPU 0; 7.93 GiB total capacity; 7.40 GiB already allocated; 53.19 MiB free; 7.40 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation.  See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF

原因及解决方案:
默认情况下,模型以 FP16 精度加载,运行上述代码需要大概 13GB 显存。如果你的 GPU 显存有限,可以尝试以量化方式加载模型,使用方法如下:

# int4精度加载,需要6G显存
# web_demo.py
model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).half().quantize(4).cuda()

4.问题4

报错如下:

RuntimeError: Library cudart is not initialized

ChatGLM-6B (介绍相关概念、基础环境搭建及部署)

原因及解决方案:
我是用conda管理的环境,此时应该是cudatoolkit有问题,参考此issue

# 使用conda安装cudatoolkit
conda install cudatoolkit=11.3 -c nvidia

总结

例如:整个部署其实最难的应该还是环境了,虽然项目的README写的比较简单,但是真实搭建起来确实各种问题,希望此文章能给大家一些帮助吧。

参考文章

清华大学开源中文版ChatGPT模型——ChatGLM-6B发布
PyTorch、CUDA Toolkit 及显卡驱动版本对应关系
验证pytorch是否为GPU版本文章来源地址https://www.toymoban.com/news/detail-407863.html

到了这里,关于ChatGLM-6B (介绍相关概念、基础环境搭建及部署)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ChatGLM2-6B、ChatGLM-6B 模型介绍及训练自己数据集实战

    介绍 ChatGLM-6B是开源的文本生成式对话模型,基于General Language Model(GLM)框架,具有62亿参数,结合模型蒸馏技术,实测在2080ti显卡训练中上(INT4)显存占用 6G 左右, 优点 :1.较低的部署门槛: FP16 半精度下,ChatGLM-6B 需要至少 13GB 的显存进行推理,结合模型量化技术,一需求可以进一步

    2024年02月12日
    浏览(43)
  • ChatGLM-6B阿里云部署

    重点关注指标:CPU、内存、GPU、GPU驱动  类型 OS CPU 内存 GPU 机器配置 ubuntu_20_04_x64 16核 125G NVIDIA A100 80G   git git-lfs(大文件管理) python 3.10.7(如果已经安装了python其他版本,不用再安装此版本) 下载解压源码 此时终端内输入: python -V 出现 Python 3.10.7表示python安装成功。 下载模型

    2024年02月11日
    浏览(29)
  • ChatGLM2-6B 部署

    这是ChatGLM2-6B 部署的阅读笔记,主要介绍了ChatGLM2-6B模型的部署和一些原理的简单解释。 它是单卡开源的对话模型。 充分的中英双语预训练 较低的部署门槛 FP16半精度下,需要至少13G的显存进行推理,甚至可以进一步降低到10G(INT8)和6G(INT4) 更长的序列长度 ChatGLM-6B 序列长度达

    2024年02月09日
    浏览(42)
  • ChatGLM-6B本地cpu部署

        ChatGLM-6B是清华团队研发的机器人对话系统,类似ChatGPT,但是实际相差很多,可以当作一个简单的ChatGPT。     ChatGLM部署默认是支持GPU加速,内存需要32G以上。普通的机器无法运行。但是可以部署本地cpu版本。     本地部署,需要的环境:      python3.9及以上      gcc 

    2024年02月04日
    浏览(32)
  • 阿里云部署 ChatGLM2-6B 与 langchain+ChatGLM

    更新系统 安装git 克隆 ChatGLM2-6B 源码 克隆 chatglm2-6b 模型 安装 ChatGLM2-6B 依赖 修改模型的路径 修改成 启动服务 启动成功后 克隆 langchain-ChatGLM 源码 git clone https://github.com/imClumsyPanda/langchain-ChatGLM.git 克隆模型 安装 langchain-ChatGLM 依赖 修改配置 修改一 修改成 修改二 修改成 修改

    2024年02月15日
    浏览(37)
  • ChatGLM2-6B github页面 介绍

    ChatGLM 2 -6B 是开源中英双语对话模型 ChatGLM-6B 的第二代版本,在保留了初代模型对话流畅、部署门槛较低等众多优秀特性的基础之上,ChatGLM 2 -6B 引入了如下新特性: 更强大的性能 :基于 ChatGLM 初代模型的开发经验,我们全面升级了 ChatGLM2-6B 的基座模型。ChatGLM2-6B 使用了

    2024年02月13日
    浏览(34)
  • 学习实践ChatGLM-6B(部署+运行+微调)

    该模型基于 General Language Model (GLM) 架构,具有 62 亿参数。 注:结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。 ChatGLM-6B可以实现的能力这是一个对话机器人,所以基本的问答,系统都支持。 官方提供的使用实例: 自我认知

    2023年04月18日
    浏览(29)
  • 免费部署开源大模型 ChatGLM-6B

    参考:【大模型-第一篇】在阿里云上部署ChatGLM3-CSDN博客 ChatGLM 是一个开源的、支持中英双语的对话语言模型,由智谱 AI 和清华大学 KEG 实验室联合发布,基于 General Language Model (GLM) 架构,具有 62 亿参数。ChatGLM3-6B 更是在保留了前两代模型对话流畅、部署门槛低等众多优秀特

    2024年01月18日
    浏览(61)
  • 【私有GPT】CHATGLM-6B部署教程

    ChatGLM-6B是清华大学知识工程和数据挖掘小组(Knowledge Engineering Group (KEG) Data Mining at Tsinghua University)发布的一个开源的对话机器人。根据官方介绍,这是一个千亿参数规模的中英文语言模型。并且对中文做了优化。本次开源的版本是其60亿参数的小规模版本,约60亿参数,本地

    2024年02月12日
    浏览(27)
  • ChatGLM2-6B下载与部署

    我们首先来看一下 ChatGLM2-6B 模型的 requirements : 可以看到,要求 torch=2.0 ,这就产生了一个问题: torch 与 cuda 版本的匹配问题。本地机器中 CUDA=10.0 ,于是在费了半天时间配置好 ChatGLM2-6B 所需环境,从 github 和 huggingface 下载好了 ChatGLM2-6B 模型,但是在 run 的过程中报错 Torch

    2024年02月06日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包