【AI】清华开源中英双语对话模型ChatGLM2-6B本地安装笔记

news2024/11/15 21:36:21

清华开源中英双语对话模型ChatGLM2-6B本地安装笔记

首先,直接上资源,网盘中是ChatGLM2-6B源码及模型文件:

链接:https://pan.baidu.com/s/1DciporsVT-eSiVIAeU-YmQ
提取码:cssa

官方的Readme已经很详尽了,再写点安装博客有点画蛇添足。本着记录自己的工作内容的初衷,还是写一写吧,毕竟输出才是最好的学习。

本文记录了本地安装ChatGLM2-6B的过程,本地是用了一张RTX4070 12G的显卡,对于这个模型有点勉强,但是在实际运行中发现Win11系统给了共享GPU存储,这让我这个12G的显卡也运行了13G的模型,目前看是能正常运行,没有爆显存的问题。官方也提供了int4的模型,可以在6G显存上运行起来,由于我这边已经运行起来了,所以没有在考虑使用int4模型。下图是我模型加载之后的GPU占用情况,就很神奇。。。

在这里插入图片描述

1. Conda复制虚拟环境

conda creat -n new_env_name --copy old_env_name

创建ChatGLM运行环境,因为ChatGLM使用pytorch框架,所以使用Conda复制一个Pytorch的虚拟环境,以便在安装所需依赖完成之后不会对其他环境依赖造成破坏。

2. 添加PIP镜像源

由于安装依赖需要使用pip,为加速访问,所以配置PIP镜像源

配置PIP镜像源要切换到对应的虚拟环境上,如conda activate chatglm2

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

另外,还有其他镜像源可供使用

阿里云 https://mirrors.aliyun.com/pypi/simple/
豆瓣 http://pypi.douban.com/simple/
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/

Conda配置镜像源的工作在之前的Pytorch安装中已经写过了,可以参考。

3. 下载代码

  1. Github上克隆代码
git clone https://github.com/lordum/ChatGLM2-6B.git

4. 下载模型

启动模型的过程中,程序会自动去Huging Face官网下载模型bin文件,但是由于网络的原因,很可能会下载失败,官方提供了一个清华的下载地址(https://cloud.tsinghua.edu.cn/d/674208019e314311ab5c/),但是这个地址只有模型,很多配置文件会找不到,需要去Hugging Face官网下载(https://huggingface.co/THUDM/chatglm2-6b/tree/main);如果直接运行可能会遇到下面的问题1所列的问题。我这边将所有的文件打包,放在百度网盘上(链接:https://pan.baidu.com/s/1DciporsVT-eSiVIAeU-YmQ 提取码:cssa ),需要的可以自取。

下载完之后将model目录下面的模型及配置文件全部拷贝到代码目录下面,不需要新建文件夹之类的,直接和原有代码放在一块就好了。

5.依赖安装

首先是安装requirement,requirement.txt中的依赖可以根据自己环境进行调整,比如我这边由于复制了pytorch的环境,可以将其中的pytorch行删除。这里pip安装也是用的国内镜像源,可以大幅提高安装速度,前面已经介绍了添加方式。

官方推荐了 transformers 库版本推荐为 4.30.2torch 推荐使用 2.0 以上的版本,以获得最佳的推理性能。

pip install -r requirements.txt

6.应用

官方文档提供了多种应用方法,我们一般选择web界面运行,官方代码中提供了两个web_demo,web_demo.py是一问一答形式了,答案是统一给出的,web_demo2.py是流式回答,答案是流式传输的。需要注意的是,两种方式都要安装必要的依赖;为了更贴近实用,我们选择web_demo2.py来运行。

@AdamBear 实现了基于 Streamlit 的网页版 Demo web_demo2.py。使用时首先需要额外安装以下依赖:

pip install streamlit streamlit-chat

模型运行默认去Hugging Face上去拉取模型文件,如果使用本地的文件,需要修改一下模型加载语句:

在这里插入图片描述

将15、16行改成本地代码路径就可以加载了

然后通过以下命令运行:

streamlit run web_demo2.py

经测试,如果输入的 prompt 较长的话,使用基于 Streamlit 的网页版 Demo 会更流畅。

在这里插入图片描述

在这里插入图片描述

安装遇到的问题

1. ValueError: Unrecognized configuration class <class ‘transformers_modules.chatglm-6b.co

问题描述
在部署ChatGLM过程中,出现了如下bug信息。
ValueError: Unrecognized configuration class <class ‘transformers_modules.chatglm-6b.configuration_chatglm.ChatGLMConfig’> to build an AutoTokenizer.

问题原因
我是通过清华云盘下载的模型参数(具体情况如下),里面缺失了很多重要的配置文件。

在这里插入图片描述

解决方案

可以通过Hagging Face官网下载完整的配置文件,然后将其放在与模型参数相同的位置。

https://huggingface.co/THUDM/chatglm2-6b/tree/main

在这里插入图片描述

参考文章:https://blog.csdn.net/weixin_40964597/article/details/131074884

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

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

相关文章

Unreal Engine游戏引擎

Unreal Engine&#xff08;下文简称为UE&#xff09;&#xff0c;是一款由Epic Games开发的游戏引擎&#xff0c;用于创建电子游戏、虚拟现实和增强现实应用、数字孪生等内容。UE支持实时渲染、高品质的图形效果和物理模拟、可扩展的蓝图视觉脚本语言&#xff0c;以及跨平台和多…

Appium Server GUI + Appium Inspector 定位UI元素

Appium Server GUI 下载 Appium Server GUI 安装包并完成安装&#xff0c;完成安装后启动&#xff0c;点击 startServer 快速启动 Appium 服务。 Appium Inspector 下载 Appium Inspector 安装包并完成安装&#xff0c;完成安装后启动&#xff0c;填入以下内容。 Remote Hos…

蓝牙运动耳机推荐、最好用的蓝牙运动耳机排名

在现代快节奏的生活中&#xff0c;健康和锻炼成为越来越多人追求的目标。无论是户外跑步、健身房锻炼&#xff0c;还是徒步旅行&#xff0c;一个好的运动耳机是不可或缺的伴侣。它能为您提供高品质的音乐享受&#xff0c;同时保持舒适的佩戴体验&#xff0c;让您在运动中时刻保…

基于Python和MD5算法的公寓管理系统设计与实现-计算机毕设 附源码77723

基于Python和MD5算法的公寓管理系统设计与实现 摘 要 本论文主要论述了如何使用Python开发一个公寓管理系统&#xff0c;本系统将严格按照软件开发流程进行各个阶段的工作&#xff0c;面向对象编程思想进行项目开发。在引言中&#xff0c;作者将论述公寓管理系统的当前背景以及…

jetson nano如何读取pwm波信号?通过编码器读取车速,使用sbus串口读取,解决方案

jetson nano如何读取pwm波信号&#xff1f; 通常我们采用的是通过gpio读取&#xff0c;但是linux系统的时钟特别的不准导致计算的不对。 所以我推荐用sbus 用外围硬件&#xff0c;有pwm转sbus设备&#xff0c; 这个设备可以将pwm波转换位串口数据&#xff0c;我们只需要将输出的…

GPT上车只为人车交互?车企还在憋大招

ChatGPT改造汽车的序幕已经拉开&#xff0c;奔驰率先出手。 不久前&#xff0c;梅赛德斯-奔驰将ChatGPT集成到了车机上&#xff0c;开启了为期三个月的测试&#xff0c;结果显示&#xff0c;它的语音助手不仅可以完成简单地指令&#xff0c;还能进行连续多轮对话&#xff0c;理…

CSS 高阶小技巧 - 角向渐变的妙用!

本文将介绍一个角向渐变的一个非常有意思的小技巧&#xff01; 我们尝试使用 CSS 绘制如下图形&#xff1a; 在之前&#xff0c;类似的图案&#xff0c;其实我们有尝试过&#xff0c;在 单标签实现复杂的棋盘布局 一文中&#xff0c;我们用单标签实现了这样一个棋盘布局&#x…

从0到1:一对一交友app开发的步骤和技巧

今天与大家分享一下一对一交友app开发的步骤和技巧。 步骤 步骤一&#xff1a;确定目标用户群 在开发一对一交友app之前&#xff0c;首先需要确定目标用户群。这是非常重要的一步&#xff0c;因为只有了解目标用户的需求和偏好&#xff0c;才能更好地开发出一款满足他们需求…

C# 元组

文章目录 C# 元组Tuple 类ValueTuple 类ValueTuple 与 Tuple的区别System.ValueTuple 类型的值是可变的System.Tuple 类型的值是不可变的System.ValueTuple 类型的数据成员是字段 System.ValueTuple 与匿名类在使用Linq查询时&#xff0c;如何权衡使用元组还是匿名类权衡主要区…

爆肝整理,性能测试-测试工具选型(各个对比)卷起来...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 性能测试和功能测…

cf 比赛 04

2021.04.30 训练地址 B. The Number of Pairs 令 u g c d ( a , b ) u gcd(a, b) ugcd(a,b)&#xff0c;设 l c m ( a , b ) k ∗ u lcm(a, b) k * u lcm(a,b)k∗u&#xff0c;则原式可写为 u ∗ ( k ∗ c − d ) x u * (k * c - d) x u∗(k∗c−d)x&#xff0c;那么…

leetcode 222. 完全二叉树的节点个数

2023.7.3 用层序遍历遍历一遍二叉树&#xff0c;然后遍历的每个节点都进行一次计数&#xff0c;直接上代码&#xff1a; class Solution { public:int countNodes(TreeNode* root) {queue<TreeNode*> que;int ans 0;if(root nullptr) return ans;que.push(root);while…

speech_recognition + PocketSphinx 实现语音唤醒

文章目录 前言环境下载中文包制作激活词 编码实现唤醒 前言 这玩意是干啥的呢&#xff0c;主要的话就是最近有个小项目&#xff0c;需要在ros上面实现一个语音唤醒的操作。同时要求&#xff0c;离线操作&#xff0c;只能使用离线的SDK。然后逛了一圈&#xff0c;发现科大讯飞的…

22.RocketMQ之NameServer启动流程

NameServerController启动流程总览 启动类&#xff1a;org.apache.rocketmq.namesrv.NamesrvStartup#main java public static void main(String[] args) { main0(args); } java public static NamesrvController main0(String[] args) { try { //创建NamesrvController Names…

因Spring与SpringMVC配置信息写反导致Spring无法自动托管对象实例

因Spring与SpringMVC配置信息写反导致Spring无法自动托管对象实例 异常提示 03-Jul-2023 11:25:24.491 警告 [RMI TCP Connection(3)-127.0.0.1] org.springframework.context.support.AbstractApplicationContext.refresh Exception encountered during context initializat…

【485. 最大连续 1 的个数】

目录 一、题目解析二、算法思路三、代码实现 一、题目解析 二、算法思路 三、代码实现 class Solution { public:int findMaxConsecutiveOnes(vector<int>& nums) {int ret0;int left0,right0;for(;right<nums.size();right){if(nums[right]!1){retmax(ret,right…

SQL高级教程

SQL TOP 子句 TOP 子句 TOP 子句用于规定要返回的记录的数目。 对于拥有数千条记录的大型表来说&#xff0c;TOP 子句是非常有用的。 注释&#xff1a;并非所有的数据库系统都支持 TOP 子句。 SQL Server 的语法&#xff1a; SELECT TOP number|percent column_name(s) F…

BOSHIDA DC电源模块在自动化设备中的应用

BOSHIDA DC电源模块在自动化设备中的应用 DC电源模块是一种用于提供电源的设备&#xff0c;可以将交流电转换为直流电&#xff0c;并提供稳定、可靠的电源输出。在自动化设备中&#xff0c;DC电源模块常用于驱动直流电机、控制电磁阀等各种设备。以下是DC电源模块在自动化设备…

初学Spring boot (四) JSR303数据校验及多环境切换

学习回顾&#xff1a;初学Spring boot &#xff08;三&#xff09; yaml配置注入 一、JSR303数据校验 1、先看看如何使用 Springboot中可以用validated来校验数据&#xff0c;如果数据异常则会统一抛出异常&#xff0c;方便异常中心统一处理。我们这里来写个注解让我们的name只…

MySQL数据库第二课----------认识简单命令-----悄悄的变大牛

作者前言 欢迎小可爱们前来借鉴我的gtiee秦老大大 (qin-laoda) - Gitee.com ——————————————————     ———————————— 目录 操作系统 桌面操作系统 服务器操作系统 嵌入式操作系统 移动设备操作系统 常用 Linux 命令的基本使用 为什么要学…