本地化部署大语言模型 ChatGLM

news2025/1/23 10:24:16

本地化部署大语言模型 ChatGLM

  • 本地化部署大语言模型 ChatGLM
    • 前期筹备
      • GitHub 基础包
      • 语言模型文件
      • 基础配置
      • 显存查看方法
    • Anaconda 模块
      • Anaconda 环境创建
      • 根目录操作
      • 基础依赖加载
      • transformers 和 protobuf 库加载
      • Pytorch 源修改
      • 依赖库补充
      • 补充依赖 pypi 配置
      • cchardet 依赖错误解决
      • 强制 归一化
      • 成功部署
    • 使用网址合集
    • 执行命令合集

本地化部署大语言模型 ChatGLM

ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型,基于 General Language Model (GLM) 架构,具有 62 亿参数。结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。 ChatGLM-6B 使用了和 ChatGPT 相似的技术,针对中文问答和对话进行了优化。

前期筹备

GitHub 基础包

GitHub: ChatGLM-6B

下载 ChatGLM-6B 压缩包到本地

请添加图片描述

语言模型文件

Hugging Face: Model

下载 训练好的 语言模型文件

请添加图片描述

每一个都要下载

请添加图片描述

基础配置

解压 ChatGLM-6B-main.zip 文件

请添加图片描述

新建一个名为 model 的文件夹

请添加图片描述

把刚才在 Hugging Face 上下载的所有文件都放进来
应该是 20 个 检查一下

请添加图片描述

返回 ChatGLM-6B-main 跟目录 找到名为 web_demo.py 的文件

请添加图片描述

可以用记事本 或则 其他工具打开

请添加图片描述

更改第 45行代码
原本代码:
tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True)
model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).half().cuda()
修改过后代码:
tokenizer = AutoTokenizer.from_pretrained("model", trust_remote_code=True)
model = AutoModel.from_pretrained("model", trust_remote_code=True).half().quantize(4).cuda()
就是把 THUDM/chatglm-6b 更改为 model
并在 half()方法之后添加 quantize(4) 方法

请添加图片描述

量化需求:
如果显存小于14G 就使用 quantize(4) 方法 如果你要使用 quantize(8)你就要关闭所有应用
说一下我的电脑配置:i7、16G内存、2060ti显卡(6G显存)
各位看官老爷自己对比一下

在这里插入图片描述

显存查看方法

Win + R 键 打开命令窗口
输入 dxdiag 然后点击确认

请添加图片描述

打开系统自带的诊断工具之后 随便点一个显示

请添加图片描述

这个显示内存就是你的 显存

请添加图片描述

Anaconda 模块

Anaconda 官网: Anaconda 官网

Anaconda 环境创建

打开 Anaconda 点击 Environments

请添加图片描述

新建一个环境

请添加图片描述

起一个名字
注意:记住 Python 版本 有点重要 最好使用 3.10.10
如果没有可以在官网重新下载 更新一下

请添加图片描述

点击那个运行按钮 并打开 Open Terminal

在这里插入图片描述

根目录操作

输入 D: 进入相应硬盘

请添加图片描述

使用 cd 命令 进入到 ChatGML 根目录
我这边是 D:\Unity\ChatGLM-6B\ChatGLM-6B-main
大家根据自己的 解压路径进行 打开

请添加图片描述

基础依赖加载

键入 pip install -r requirements.txt
加载依赖项 反正我这边是会加载不完全

请添加图片描述

transformers 和 protobuf 库加载

下载 protobuf 和 transformers 库支持
pip install protobuf==3.20.0 transformers==4.27.1 icetk cpm_kernels

请添加图片描述

因为要使用 Web 显示 所以也需要加载 gradio库
pip install gradio

请添加图片描述

先启动跑一下看看 能不能运行的起来 万一可以呢 是吧
python web_demo.py

请添加图片描述

Pytorch 源修改

Pytorch: Pytorch

报错:AssertionError: Torch not compiled with CUDA enabled
这个就是 只支持 CPUCUDR 问题不大
去 Pytorch 找到对应的 直接 conda

请添加图片描述

注意选择对啊
如果conda 实在是卡的不能行的话  你就试试 pip
两个命令都给你:

conda: conda install pytorch torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia
pip: pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu117

请添加图片描述
请添加图片描述

当出现这一句的时候 你直接 输入 y 回车就行

请添加图片描述

依赖库补充

下载完毕之后你会发现 还是缺少依赖库 找到相应名称
比如这个 chardet 直接 pip install
pip install chardet

请添加图片描述

再次运行 python web_demo.py 命令

请添加图片描述

好吧 果然不可以  缺少 cchardet库
那就继续下载呗
pip install cchardet

请添加图片描述

来了来了 全场最大的麻烦来了
明明下载都下载好了 就是无法执行 你气不气

请添加图片描述

找了一百年 重新下载也不行 换成清华源 也不行
最后的最后 就想着要不换下轮子呢

请添加图片描述

补充依赖 pypi 配置

pypi: pypi官网

在搜索框输入 你想要查询库名称

请添加图片描述

注意选择对应的 系统 我是 win64 所以就选择了第一个
这里还有一个坑

请添加图片描述

cd 到你存放 刚刚下载文件的目录

请添加图片描述

cchardet 依赖错误解决

输入 pip install D:\Unity\ChatGLM-6B\cchardet-2.1.7-cp39-cp39-win_amd64.whl
这是我的路径 各位 自行更改哈
然后你会发现 又错了!!!
不能用 完犊子 真的差点吐血 好在是解决了

请添加图片描述

回到下载文件夹 各位还记得 自己创建环境时的 Python 版本吗 对 就是那个!
原本名称是 cp39 改成 cp310 就能用了
真真不想吐槽了

请添加图片描述

你要是不知道自己环境对应的 就输入:
pip debug --verbose
按照对应的更改一下就行了

请添加图片描述

执行 pip install D:\Unity\ChatGLM-6B\cchardet-2.1.7-cp310-cp310-win_amd64.whl

请添加图片描述

成功 毫无悬念

请添加图片描述

cd 到ChatGLM 根目录
cd D:\Unity\ChatGLM-6B\ChatGLM-6B-main

请添加图片描述

再次运行 python web_demo.py
发现还是不行 那还说什么  上大招

请添加图片描述

强制 归一化

强制 最新归一化
pip install --force-reinstall charset-normalizer==3.1.0

请添加图片描述

再次启动
python web_demo.py
搓手等待...

请添加图片描述

成功部署

天见犹怜 终于终于 成功了
真是一波三折 再三折 好在是成功了

请添加图片描述

好了大家可以尽情的调教自己的 GPT

请添加图片描述

使用网址合集

GitHub: ChatGLM-6B
Hugging Face: Model
Anaconda 官网: Anaconda 官网
Pytorch: Pytorch
Pypi: pypi官网
清华大学镜像网站: 清华大学镜像网站

执行命令合集

//基础包依赖加载
pip install -r requirements.txt

//transformers 和 protobuf 依赖加载
pip install protobuf==3.20.0 transformers==4.27.1 icetk cpm_kernels

//网页使用 gradio 库 加载
pip install gradio

//启动命令
python web_demo.py

//CPU 转换
conda: conda install pytorch torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia
pip: pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu117

//chardet 库 补充依赖
pip install chardet

//cchardet 库 补充依赖
pip install cchardet

//查看当前平台支持的版本
pip debug --verbose

//cchardet 库 轮子 加载
pip install D:\Unity\ChatGLM-6B\cchardet-2.1.7-cp310-cp310-win_amd64.whl

//强制 最新归一化
pip install --force-reinstall charset-normalizer==3.1.0

//启动命令
python web_demo.py

//断开服务
Ctrl + C

//清华源 镜像
核心句式:-i https://pypi.tuna.tsinghua.edu.cn/simple
例如下载的是:cchardet
正常下载是:pip install cchardet
清华源下载是:pip install cchardet -i https://pypi.tuna.tsinghua.edu.cn/simple

暂时先这样吧,如果有时间的话就会更新模型微调文章以及抽时间更新GLM130B的部署,实在看不明白就留言,看到我会回复的。
路漫漫其修远兮,与君共勉。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/434052.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

开放式耳机好用吗,盘点几款口碑不错的开放式耳机

​开放式耳机作为一种全新的耳机形态,已经成为了当前市场上非常火爆的一款产品。由于无需入耳佩戴,可以很好的避免了耳膜受到损伤,而且也能够让我们在佩戴眼镜时也能够正常使用。加上开放式耳机的音质和舒适度都要优于其他类型的耳机&#xf…

全球上线!ABB中国涡轮增压器分拆 – 数据清理阶段完成

ABB是数字行业的技术前沿者,拥有四项主营业务:电气化,工业自动化,运动控制以及机器人和离散自动化。ABB总部位于瑞士苏黎世,业务遍及100多个国家,拥有约105,000名员工。2021年,该公司…

dockerDesktop依赖wsl,及docker可视化推荐Portainer

也是今天无意中发现的Portainer 之前采用的1panel和宝塔做运维可视化 现在换成dockerPortainer 宝塔和1panel和portranier对比 宝塔广告太多,而且不适合深入了解运维技术 1panel个人感觉无广告颜值很高,但是还是有局限,不适合深入了解运维…

MAC 用 brew安装 mysql并且设置开机自启动

目录 一.安装 mysql 1.安装 mysql 2.启动 mysql 3.关闭 mysql 4.初次安装需要修改 root 密码 5.验证密码 二.设置开机启动 1.找到plist 文件 2.将启动文件 plist 复制到 LaunchAgents目录 3.验证 一.安装 mysql 1.安装 mysql 1.安装默认版可以直接执行安装命令 brew…

上岸美团,我的面经!

作者:阿秀 校招八股文学习网站:https://interviewguide.cn 这是阿秀的第「257」篇原创 小伙伴们大家好,我是阿秀。 欢迎今年参加秋招的小伙伴加入阿秀的学习圈,目前已经超过 2200 小伙伴加入!去年认真准备和走下来的基…

GreenPlum (一) 初识

在开始了解GreenPlum之前,应该对这种产品的诞生有基本的了解,搭建一个基本的知识框架。对以下历史有基本了解之后应对下文术语进行基本阅读。 ​ 阅读目标: 阅读完成后需要对相关术语以及greenplum有基础理解。 文案基本互联网相关blog进行整体汇总&…

苹果跌倒检测新专利获得,结合苹果Find My可准确定位

苹果首款“跌倒检测”功能专利可追溯到 2018 年公示的 20190103007,后续又获得了至少 5 项相关专利。根据美国商标和专利局(USPTO)上周四公示的专利,苹果公司再次获得了一项“跌倒检测”功能专利。 苹果在报告中表示&#xff0c…

亚马逊云科技让你在云端发现企业穿越周期稳健发展的力量

2023年3月29日「哈佛商业评论-未来管理沙龙」活动盛大启幕,此次沙龙活动以穿越周期的力量为主题方向,以解码跨国企业持续增长源动力为主旨,希望为企业高层管理者们带来更多思考和启迪。 作为特邀嘉宾,亚马逊全球副总裁、亚马逊云…

内存的分区

目录 内存分区介绍 区域功能 内存分区运行前后的区别 运行之前(代码区数据区未初始化数据区) 运行之后(代码区数据区未初始化数据区栈区堆区) 缓冲区 缓冲区有什么用? 缓冲区的三种类型 缓冲区的刷新 内存分布图 栈与堆…

AI绘画——ControlNet扩展安装教程

目录 1.ControlNet安装 2.预处理模型安装 预处理模型(annotator)下载链接: 预处理模型安装地址: 3.ControlNet模型下载 Controlnet模型下载地址: Controlnet模型安装目录: 注:&…

KDZRS-40A三通道变压器直流电阻测试仪

一、产品概述 变压器绕组的直流电阻测试是变压器在交接、大修和改变分接开关后的试验项目。在通常情况下,用传统的方法(电桥法和压降法)测量变压器绕组以及大功率电感设备(发电机)的直流电阻是一项费时费工的工作。为了…

VMware从零配置安装CentOS 7

不跳步图文详细安装教程 一、VMware的下载二、VMware的安装三、CentOS7的下载第一步:根据自己电脑操作系统的位数点击选择(大多数都是64位操作系统)第二步:任意挑选一个镜像源进入下载界面第三步:下载对应版本的CentOS…

比较运算符、关键字子查询MySQL数据库 (头歌实践教学平台)

文章目的初衷是希望学习笔记分享给更多的伙伴,并无盈利目的,尊重版权,如有侵犯,请官方工作人员联系博主谢谢。 目录 第1关:带比较运算符的子查询 任务描述 相关知识 子查询 带比较运算符的子查询 编程要求 第2关…

Spring Messaging-远程命令执行漏洞(CVE-2018-1270)

Spring Messaging-远程命令执行漏洞(CVE-2018-1270) 0x00 前言 spring messaging为spring框架提供消息支持,其上层协议是STOMP,底层通信基于SockJS,在spring messaging中,其允许客户端订阅消息&#xff0…

微服务 - Redis缓存 · 数据结构 · 持久化 · 分布式 · 高并发

一、分布式解决 Session 的问题 在单站点中,可以将在线用户信息存储在Session中,随时变更获取信息;在多站点分布式集群如何做到Session共享呢?架设一个Session服务,供多服务使用。 频繁使用的数据存在DB端&#xff0…

向隐形冠军学习:聚焦人效,用时间管理提效益

注: 本文来源于盖雅工场联合创始人兼CEO 章新波 在2023狮山论坛“ 向隐形冠军学习: 聚焦人效,用时间管理提效益 ”的主题分享。 文|章新波 整理 |盖雅学苑 在人力资源行业以及各大企业,「人效」这个词…

How to use CCS to debug a running M4F core that was started by Linux?

参考FAQ:AM62x & AM64x: How to use CCS to debug a running M4F core that was started by Linux? 问题记录: 1.使用SD卡启动模式,板上运行Linux。 当Linux系统启动后,9表示M4F core: am64xx-evm login: root rootam64xx…

Maven 打包跳过测试的 5 种方法

平时开发时的工作的话之主要负责写代码就行了,什么发布项目啊,好吧不是我们干的事。在我们的了解中打包发布项目应该不是一个困难的问题。 对,最简单的方法就行使用直接使用maven插件打包,甚至我们都不需要知道他是怎么实现的&am…

搞懂 API :Mock 常见问题及解决办法

API Mock是一个构建Web服务质量保证环节的非常实用的工具。它可以让开发者在独立工作或集成测试时,快速开始调试和验证他们的代码。但是,在实践中,API Mock也可能会出现一些问题。 本文将讨论API Mock中的一些常见问题,并提供一些…

MyBatis(十四)MyBatis的缓存

前言 1、缓存:cache 2、缓存的作用: 通过减少IO(读写)的方式,来提高程序的执行效率。 3、mybatis的缓存: 将select语句的查询结果放到缓存(内存)当中,下一次还是这条…