如何在本地部署运行ChatGLM-6B

2023-11-07

在本篇技术博客中,将展示如何在本地获取运行代码和模型,并配置环境以及 Web GUI,最后通过 Gradio 的网页版 Demo 进行聊天。

官方介绍

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 正在内测开发中。

获取运行代码

首先,您需要从 GitHub 仓库下载 ChatGLM-6B 的代码。您可以使用以下链接进行下载:GitHub - THUDM/ChatGLM-6B: ChatGLM-6B: An Open Bilingual Dialogue Language Model | 开源双语对话语言模型

将仓库下载到本地任意位置(例如 D:/codehub/ChatGLM-6B)。

获取模型

接下来,您需要从 Hugging Face 下载 ChatGLM-6B 模型。您可以使用以下链接进行下载:

将模型下载到本地任意位置(例如 D:/codehub/models)。

硬件需求

量化等级

最低 GPU 显存

(推理)

最低 GPU 显存

(高效参数微调)

FP16(无量化)

13 GB

14 GB

INT8

8 GB

9 GB

INT4

6 GB

7 GB

环境配置

在开始使用 ChatGLM-6B 进行聊天之前,您需要进行环境配置。下面是必要的步骤:

  • 安装 Python3。
  • 安装 ChatGLM-6B 运行所需要的 Python 组件依赖。在命令行中进入 ChatGLM-6B 文件夹(例如 cd D:/codehub/ChatGLM-6B),并运行以下命令:
pip install -r requirements.txt
  • 安装 GPU 版本的 PyTorch。由于通过 requirements.txt 中的 PyTorch 默认下载的是 CPU 版本,如果您想使用 GPU 运行模型,您需要先卸载并安装 GPU 版本的 PyTorch。您可以从 PyTorch 官网(PyTorch)下载本地环境对应的 PyTorch。

例如,在 Windows 10 上安装 CUDA 版本为 11.8 的 PyTorch,可以运行以下命令:

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
  • 安装 NVIDIA CUDA 工具包。您可以从 CUDA 官方下载地址(CUDA Toolkit Archive | NVIDIA Developer)下载本地环境对应的CUDA版本。请注意确保选择和 PyTorch 对应的 CUDA 版本,否则 PyTorch 将无法正常运行。

配置 WebUI 并运行

最后,我们需要配置 WebUI 并运行 Gradio 的网页版 Demo。请按照以下步骤操作:

  • 安装 Gradio 依赖。在命令行中输入以下命令:
pip install gradio
  • 指定本地的模型文件夹路径

编辑 ChatGLM-6B 仓库中的 web_demo.py 文件,并将以下代码中的 "THUDM/chatglm-6b" 修改为本地模型所在文件夹的路径(例如:这里使用chatglm-6b-int4量化模型,路径则填D:\\codehub\models\chatglm-6b-int4)

tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True) 
model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).half().cuda()

如果不进行修改,程序会自动从 Hugging Face 下载模型并加载到 C 盘。

  • 运行 WebUI。在命令行中进入 ChatGLM-6B 文件夹,并运行以下命令:
python web_demo.py

至此,您已经成功配置了环境,并准备好使用 ChatGLM-6B 进行聊天了!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在本地部署运行ChatGLM-6B 的相关文章

  • 【需求响应】改进连续时间控制方法用于分散式需求响应的恒温负荷研究(Python代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Python代码及文章
  • 扬帆证券:产业化破题在即 人形机器人超预期演进

    大模型助力下的拐点 特斯拉A股产业链上 两笔重磅出资几乎一起现身 总规划超百亿元 1月4日 拓普集团公告 与宁波经济技能开发区办理委员会签署了 机器人电驱系统研发生产基地项目出资协议书 公司拟出资50亿元 建设机器人核心部件生产基地 此次出
  • 文档扫描与矫正-仿射变换

    图像变换是计算机视觉和图像处理中的关键技术之一 它允许我们对图像进行各种形式的变形 调整和校正 其中 仿射变换是一种常见的变换方式 在文档扫描过程中 由于拍摄角度和畸变等原因 文档图像可能存在一定程度的形变 仿射变换可以用于校正文档图像 使
  • 2024年华数杯国际赛B题:光伏发电功率 思路模型代码解析

    2024年华数杯国际赛B题 光伏发电功率 Photovoltaic Power 一 问题描述 中国的电力构成包括传统能源发电 如煤 油和天然气 可再生能源发电 如水电 风能 太阳能和核能 以及其他形式的电力 这些发电模式在满足中国对电力的巨
  • 【EI复现】基于深度强化学习的微能源网能量管理与优化策略研究(Python代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 2 1 有 无策略奖励 2 2 训练结果1
  • 【路径规划】基于A*算法路径规划研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现
  • 利用CHAT写实验结论

    问CHAT 通过观察放置在玻璃表面上的单个水滴 人们可以观察到水滴充当成像系统 探究这样一个透镜的放大倍数和分辨率 CHAT回复 实验报告标题 利用玻璃表面的单一水滴观察成像系统的放大倍数和分辨率 一 实验目的 通过对比和测量 研究和探索玻
  • 基于java的ssh医院在线挂号系统设计与实现

    基于java的ssh医院在线挂号系统设计与实现 I 引言 A 研究背景和动机 基于Java的SSH医院在线挂号系统设计与实现的研究背景和动机 随着信息技术的迅速发展和应用 医院在线挂号系统已成为医院管理的重要组成部分 传统的挂号方式存在许多
  • 毕业设计- 基于深度学习的小样本时间序列预测算法 - Attention

    目录 前言 课题背景与意义 课题实现 一 数据集 二 设计思路 三 相关代码示例 最后 前言 大四是整个大学期间最忙碌的时光 一边要忙着准备考研 考公 考教资或者实习为毕业后面临的就业升学做准备 一边要为毕业设计耗费大量精力 近几年各个学校
  • 台积电再被坑,2纳米光刻机优先给Intel和三星,美国太霸道了

    外媒指出今年ASML的10台2纳米光刻机分配已经基本确定了 Intel拿到6台 三星获得3台 台积电只能得到一台 考虑到美国对ASML的强大影响力 外媒的这些消息应该有较高的可信性 Intel在先进工艺制程方面 自从2014年量产14纳米之
  • 性能大减80%,英伟达芯片在华“遇冷”,我方霸气回应:不强求

    中国这么大一块市场 谁看了不眼馋 在科技实力大于一切的今天 高端芯片的重要性不言而喻 作为半导体产业发展过程中不可或缺的一环 芯片技术也一直是我国技术发展的一大 心病 在美西方等国的联手压制下 我国芯片技术发展处处受阻 至今也未能在高端芯片
  • 2024 人工智能与大数据专业毕业设计(论文)选题指导

    目录 前言 毕设选题 选题迷茫 选题的重要性 更多选题指导 最后 前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面临的就业升学做准备 一边要为毕业设计耗费大量精力 近几年各个学校要求的毕设项目越来越难 有不少课题是研究生
  • 强烈推荐收藏!LlamaIndex 官方发布高清大图,纵览高级 RAG技术

    近日 Llamaindex 官方博客重磅发布了一篇博文 A Cheat Sheet and Some Recipes For Building Advanced RAG 通过一张图给开发者总结了当下主流的高级RAG技术 帮助应对复杂的生产场
  • 用通俗易懂的方式讲解:使用 LlamaIndex 和 Eleasticsearch 进行大模型 RAG 检索增强生成

    检索增强生成 Retrieval Augmented Generation RAG 是一种结合了检索 Retrieval 和生成 Generation 的技术 它有效地解决了大语言模型 LLM 的一些问题 比如幻觉 知识限制等 随着 RAG
  • 如何用GPT进行论文润色与改写?

    详情点击链接 如何用GPT GPT4进行论文润色与改写 一OpenAI 1 最新大模型GPT 4 Turbo 2 最新发布的高级数据分析 AI画图 图像识别 文档API 3 GPT Store 4 从0到1创建自己的GPT应用 5 模型Ge
  • 人工智能 AI 如何让我们的生活更加便利

    每个人都可以从新技术中获益 一想到工作或生活更为便利 简捷且拥有更多空余时间 谁会不为之高兴呢 借助人工智能 每天能够多一些空余时间 或丰富自己的业余生活 为培养日常兴趣爱好增添一点便利 从电子阅读器到智能家居 再到植物识别应用和智能室内花
  • AI帮助终结全球饥饿问题

    全球饥饿问题是牵动人心的头等大事 5月28日是 世界饥饿日 这一问题更值得关注 让人人都能吃饱的想法不仅令人向往 而且很快就会变成现实 与大多数新事物引进一样 对于在控制世界粮食供应这样复杂的任务中AI究竟应该发挥多大的作用 人们还踟蹰不前
  • CorelDRAW2024官方中文版重磅发布更新

    35年专注于矢量设计始于1988年并不断推陈出新 致力为全球设计工作者提供更高效的设计工具 CorelDRAW 滋养并见证了一代设计师的成长 在最短的时间内交付作品 CorelDRAW的智能高效会让你一见钟情 CorelDRAW 全称 Co
  • 国产化率100%,北斗导航单日定位4500亿次,外媒:GPS将被淘汰

    追赶30年的技术差距 国产卫星导航系统 北斗 开始扬眉吐气 数据显示 北斗导航目前单日定位量达4500亿次 已经获得100多个国家的合作意向 甚至国际民航也摒弃以往 独宠 GPS的惯例 将北斗纳入参考标准 对此 有媒体直言 GPS多年来的技
  • AI 赋能绿色制冷,香港岭南大学开发 DEMMFL 模型进行建筑冷负荷预测

    近年来 城市化进程加速所带来的碳排放量骤增 已经严重威胁到了全球环境 多个国家均已给出了 碳达峰 碳中和 的明确时间点 一场覆盖全球 全行业的 绿色革命 已经拉开序幕 在一众行业中 建筑是当之无愧的能耗大户 其中又以暖通空调 Heating

随机推荐

  • 建立ftp文件服务器群,2.1.6FTP文件服务器搭建.docx

    文件服务器 FTP 配置说明 FTP安装及基本配置 FileZillaServer软件安装 FileZilla Server的安装相对简单 一路按照默认安装即可 如图1 1至图1 8所示 图1 1 点击 I Agree 图1 2 点击Nex
  • echarts在vue中使用不报错,但是不显示

    没有设置div标签的宽和高 div class charts div charts width 900px height 500px
  • 一些神奇好用的网站

    文章目录 1 ilovepdf 2 Google Scholar 镜像 3 LetPub 4 Connected Papers 5 Overleaf 1 ilovepdf 网址 https www ilovepdf com 功能 PDF文件
  • Mysql如何定位慢查询(面试题)

    Mysql如何定位慢查询 面试题 相关概念 慢查询分析 慢查询工具定位 Arthas Prometheus Skywalking Mysql慢查询日志 相关概念 分析MySQL语句查询性能的方法除了使用 EXPLAIN 输出执行计划 还可以
  • 宝尊+艺康 面经

    baozun 研发岗 线下专场面试 宣讲之后现场笔试 笔试都是选择题 不难 38道题 30小题基础知识 比较广 8道推理题 数学推理和图形推理 图形难度大 笔试完之后等叫名字就去和面试官谈话 估计是根据笔试成绩 成绩高的先被叫去 每次面试基
  • TVS的典型应用(图文详解)

    TVS瞬态电压抑制二极管 是一种采用半导体工艺制成的单个PN 结或多个PN结集成的高效型电路保护器件 TVS内部芯片为半导体硅材料 具有很高的可靠性 响应速度快 低动态内阻 低钳位电压 电压精度高 击穿电压一般为 5 的偏差 封装多样化 贴
  • oracle字符集总结

    字符集总结author skatetime 2007 12 4 最近公司的数据库要迁移 所以就此机会总结下字符集的知识 以便自己对字符集更全面 更深入的认识 用了 一小天的时间 我是边测试边写 1 什么是oracle字符集 Oracle字符
  • 分布式事务概述

    1 基础概念 1 1 什么是事务 事务可以看做是一次大的活动 它由不同的小活动组成 这些活动要么全部成功 要么全部失败 1 2 本地事务 在计算机系统中 更多的是通过关系型数据库来控制事务 这是利用数据库本身的事务特性来实现的 因此叫数据库
  • 2022年大厂java高频面试题附带答案解析

    本篇分享的面试题内容主要包括 Java SpringMVC Spring Spring Boot Spring Cloud MyBatis ZooKeeper Dubbo Elasticsearch Redis MySQL RabbitMQ
  • 和枚举类相关的Map类——EnumMap

    1 EnumMap类的简介 EnumMap是一个与枚举类一起使用的Map实现 EnumMap中所有key都必须是单个枚举类的枚举值 创建EnumMap时必须显式或隐式指定它对应的枚举类 EnumMap在内部以数组形式保存 所以这种实现形式非
  • EFFECTIVE C++ (万字详解)(一)

    前言 effective C 是一本经典之作 其翻译较为贴合原著 但读起来未免有些僵硬而让人摸不着头脑 所以 我会以更为贴近中国人的理解 对此书进行一些阐释 条款01 把 C 看成一个语言联邦 C 由几个重要的次语言构成 C语言 区块 语句
  • js获取指定日期所在月份的第一天和最后一天,并遍历

    1 获取月份的第一天和最后一天 获取指定日期所在月份的第一天和最后一天 function getfirstDateAndlastDate dateStr let date new Date dateStr let year date get
  • npm-cli----Cannot find module 'D:\node\nodejs\node_module\bin\npm-cli.js'

    我输入 npm init 报这个错 输入 npm v 想查看npm的版本也是这个错 自己试着全局安装npm cli 还是这个错 反正只要和npm有关的命令通通是这个错 之后就开始我的百度之旅 发现根本就没一个帖子有用 该错还是错 我来说下我
  • 配置虚拟机桥接网络的步骤

    一 先打开虚拟机 然后点击左上角的编辑选项 然后点击虚拟网络编辑器 二 设置成桥接模式 并选择自动模式 然后点击确定 三 然后点击虚拟机内右上角的三个方块的图标 如图所示 四 点击有线连接下的齿轮图标 五 需要手动配置IPv4和IPv6网络
  • 二极管的工作原理,什么是二极管?

    二极管是一种电子器件 具有两不对称电导的电极 故名 二极 只允许电流由单一方向流过 所以最常应用其整流功能 二极管的工作原理 什么是二极管 二极管具有阳极和阴极两个端子 电流只能往单一方向流动 也就是说 电流可以从阳极流向阴极 而不能从阴极
  • 使用php语言开Excel的导入功能

    使用 PHP 语言开发 Excel 导入功能 你需要使用 PHPExcel 库 首先 你需要在你的 PHP 项目中安装 PHPExcel 库 你可以使用 Composer 来安装 如下所示 composer require phpoffic
  • C语言航空订票系统课程设计

    目录 1 设计目的 2总体设计和功能 3 菜单设计 4 各功能代码详解 闲话少扯 4 1 C语言文件的操作 4 2 读取航班信息 C语言知识回顾 4 3 打印航班信息 5 根据要求查找航班 航班号 起点站 终点站 6 订票功能 链表操作 前
  • STM32 HAL库:FreeRTOS系统 (带推荐使用除了Systick以外的时钟源问题及解决)

    1 简介 FreeRTOS是一个实时操作系统内核 作为一个轻量级的操作系统 功能包括 任务管理 时间管理 信号量 消息队列 内存管理 记录功能 软件定时器 协程等 可基本满足较小系统的需要 任务调度机制 优先级高的任务一旦就绪就能剥夺优先级
  • 在Android中使用Qt作为共享系统库

    Using Qt as shared system libraries in Android 在Android中使用Qt作为共享系统库 October 21 2022 by Tinja Paavosepp Comments 2022年10月
  • 如何在本地部署运行ChatGLM-6B

    在本篇技术博客中 将展示如何在本地获取运行代码和模型 并配置环境以及 Web GUI 最后通过 Gradio 的网页版 Demo 进行聊天 官方介绍 ChatGLM 6B 是一个开源的 支持中英双语的对话语言模型 基于 General La