【ChatGLM】记录一次Windows部署ChatGLM-6B流程及遇到的问题

news2024/11/25 16:20:45

文章目录

  • 部署环境
  • 文件下载
    • 项目文件
    • 模型配置文件
    • 模型文件
  • 运行demo
  • 遇到的问题

部署环境

系统版本:Windows 10 企业版
版本号:20H2
系统类型:64 位操作系统, 基于 x64 的处理器
处理器:Intel® Core™ i7-8700 CPU @ 3.20GHz 3.19 GHz
机带 RAM:16.0 GB
显卡:NVIDIA RTX 2070(8G)
Python版本:3.10.11

文件下载

文件分为两个部分:

  • github上开源的训练、推理、以及运行demo、api的一些代码文件
  • huggingface上的语言模型相关文件,主要包含官方训练好的大语言模型文件,以及模型文件对应的一些配置文件,其中模型文件会很大,可以使用GIT LFS下载,或者直接上清华的网盘上下载,本文使用的是从网盘下载,配置文件直接clone即可,clone前设置GIT_LFS_SKIP_SMUDGE=1,可跳过大文件的下载,只下载模型文件之外的配置文件。

项目文件

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

安装依赖:

cd ChatGLM-6B

pip install -r requirements.txt

模型配置文件

GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/THUDM/chatglm-6b

模型文件

chatglm-6b:(只有chatglm-6b)

https://cloud.tsinghua.edu.cn/d/fb9f16d6dc8f482596c2/

其他:(包含chatglm-6b-int4、chatglm-6b-int8…)

https://cloud.tsinghua.edu.cn/d/fb9f16d6dc8f482596c2/

按需下载,下载后替换至上一步中下载的chatglm-6b目录下。

注:下载之后,需要对比每个文件大小,如果有文件不完整,将运行失败

模型文件必须要和配置文件配套下载,否则运行不成功

文件保存位置:

D:\ChatGLM-6B\ChatGLM-6B\THUDM\chatglm-6b

下载完成之后,修改第5、6行:将参数文件路径换为本地的

运行demo

python web_demo.py

遇到的问题

  1. RuntimeError: Internal: D:\a\sentencepiece\sentencepiece\src\sentencepiece_processor.cc(1102) [model_proto->ParseFromArray(serialized.data(), serialized.size())]
Traceback (most recent call last):

  File "D:\ChatGLM-6B\ChatGLM-6B\web_demo.py", line 5, in <module>

    tokenizer = AutoTokenizer.from_pretrained("D:\\ChatGLM-6B\\ChatGLM-6B\\THUDM\\chatglm-6b", trust_remote_code=True, revision="")

  File "D:\python3.10\lib\site-packages\transformers\models\auto\tokenization_auto.py", line 679, in from_pretrained

    return tokenizer_class.from_pretrained(pretrained_model_name_or_path, *inputs, **kwargs)

  File "D:\python3.10\lib\site-packages\transformers\tokenization_utils_base.py", line 1804, in from_pretrained

    return cls._from_pretrained(

  File "D:\python3.10\lib\site-packages\transformers\tokenization_utils_base.py", line 1958, in _from_pretrained

    tokenizer = cls(*init_inputs, **init_kwargs)

  File "C:\Users\liliang22/.cache\huggingface\modules\transformers_modules\chatglm-6b\tokenization_chatglm.py", line 221, in __init__

    self.sp_tokenizer = SPTokenizer(vocab_file, num_image_tokens=num_image_tokens)

  File "C:\Users\liliang22/.cache\huggingface\modules\transformers_modules\chatglm-6b\tokenization_chatglm.py", line 64, in __init__

    self.text_tokenizer = TextTokenizer(vocab_file)

  File "C:\Users\liliang22/.cache\huggingface\modules\transformers_modules\chatglm-6b\tokenization_chatglm.py", line 22, in __init__

    self.sp.Load(model_path)

  File "D:\python3.10\lib\site-packages\sentencepiece\__init__.py", line 905, in Load

    return self.LoadFromFile(model_file)

  File "D:\python3.10\lib\site-packages\sentencepiece\__init__.py", line 310, in LoadFromFile

    return _sentencepiece.SentencePieceProcessor_LoadFromFile(self, arg)

RuntimeError: Internal: D:\a\sentencepiece\sentencepiece\src\sentencepiece_processor.cc(1102) [model_proto->ParseFromArray(serialized.data(), serialized.size())]

解决:对比下载的所有配置文件,是否有不完整的文件,执行命令:GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/THUDM/chatglm-6b 时,有个2mb左右的文件,没有成功下载:ice_text.model

  1. AssertionError: Torch not compiled with CUDA enabled

    原因是你试图用GPU跑,但是你安装的 Torch 不支持CUDA,是仅支持CPU的版本,执行命令:

    python -c "import torch; print(torch.cuda.is_available())"
    

    如果返回False,说明安装的PyTorch不支持CUDA。

    1. 更新显卡驱动为最新的(官方驱动 | NVIDIA)

    2. 下载安装cuda_toolkit(https://developer.nvidia.com/cuda-toolkit)<这一步尚未验证是否必须>

    3. 重启电脑

    4. 执行命令安装torch:

      pip install torch==2.0.1+cu118 -f https://download.pytorch.org/whl/torch_stable.html
      

    (第一次没有操作2、3步,没有成功,第二次安装了toolkit后重启好了,但不能确定这两步是否有效,可以先忽略这两步,不行再尝试)

​ 需要下载一个2.6G的文件,安装完成后,print(torch.cuda.is_available())为True,大功告成。

​ 可以在Previous PyTorch Versions | PyTorch 查看自己的显卡CUDA版本对应的torch版本,如果没找到,可以尝试一个最接近的比实际小的版本。

查看CUDA版本:

或者直接执行命令:nvidia-smi 查看

  1. 这个配置运行非量化的chatglm-6b,响应很慢很慢,重新下载chatglm-6b-Int4的模型文件和配置文件部署后,速度正常了。

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

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

相关文章

软考A计划-电子商务设计师-模拟试题卷四

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分享&am…

NX/UG二次开发—Parasolid—PK_EDGE_ask_convexity

判断实体边的凸凹性 Convexity Value Example convex PK_EDGE_convexity_convex_c concave PK_EDGE_convexity_concave_c variable the convexity varies along the edge PK_EDGE_convexity_variable_c smooth flat parallel surface normals, both faces have zero f…

cli3 非父子组件传值

这里&#xff0c;App.vue中&#xff0c;引入了parent组件&#xff1b;parent组件中引入了child组件。现在要从app.vue&#xff0c;向child组件传值。 主要文件&#xff1a; 1. 通过事件总线传值 1. src ->util->bus.js // 通过util中的bus&#xff0c;完成两个组件之间…

你的Postman为什么连不了数据库?

postman本身没有数据库连接功能&#xff0c;所以用到了node.js中的xmysql实现Rest API的生成&#xff0c;利用postman进行请求&#xff0c;获取需要的数据&#xff0c;来做数据准备或断言 1.安装 安装node.js&#xff1a;要求版本大于等于7.6 首先保证你的环境上有node.js&a…

打工人,别着急摆烂,看看你到底值多少钱?

2023求职现状&#xff1a; HR&#xff1a;看简历&#xff0c;以为能造飞机&#xff0c;招进来以后发现螺丝都不会拧。 普通求职者&#xff1a;看公司招聘要求&#xff0c;以为这个岗位是造飞机的&#xff0c;没想到进去以后是拧螺丝的。 大龄求职者&#xff1a;以前我都是造飞…

1.平台介绍:FISCO-BCOS 区块链

&#xff08;1&#xff09;概念: FISCO BCOS是由国内企业主导研发、对外开源、安全可控的企业级金融联盟链底层平台。它以联盟链的实际需求为出发点&#xff0c;兼顾性能、安全、可运维性、易用性、可扩展性&#xff0c;支持多种SDK&#xff0c;并提供了可视化的中间件工具&am…

Python3+Selenium2完整的自动化测试实现之旅(六):Python单元测试模块Unittest运用

目录 引言 一、Unittest单元测试框架简介 二、首次使用Unittest模块 三、Unittest模块批量加载和管理用例 写在最后 引言 这篇文章讲述的是Python3Selenium2自动化测试实现之旅的第六篇&#xff0c;主要是介绍如何运用Python单元测试模块Unittest进行测试。 我个人觉得这篇…

【新版】系统架构设计师 - 数学与经济管理

个人总结&#xff0c;仅供参考&#xff0c;欢迎加好友一起讨论 文章目录 架构 - 数学与经济管理考点摘要最小生成树最短路径网络与最大流量线性规划动态规划预测 - 博弈论预测 - 状态转移矩阵决策 - 不确定型决策决策 - 决策树排队论数学建模数学建模 - 模型分析数学建模 - 模型…

什么是 tokens,ChatGPT里面的Tokens如何计数?

什么是 tokens&#xff0c;ChatGPT里面的Tokens如何计数&#xff1f; 什么是 tokens&#xff1f; Tokens 可以被认为是词语的片段。在 API 处理提示之前&#xff0c;输入会被分解成 tokens。这些 tokens 并不会精确地在单词的开始或结束处切分 - tokens 可以包含尾随的空格甚…

【PCIE体系结构十三】LTSSM

&#x1f449;个人主页&#xff1a;highman110 &#x1f449;作者简介&#xff1a;一名硬件工程师&#xff0c;持续学习&#xff0c;不断记录&#xff0c;保持思考&#xff0c;输出干货内容 参考书籍&#xff1a;《PCI.EXPRESS系统体系结构标准教材 Mindshare》 目录 概览…

恭喜!电影《觅渡》入围上海电影节第20届传媒单元大奖

生生不息&#xff0c;念廿不忘&#xff1b; 传媒荣誉&#xff0c;开启在即&#xff01; 第20届电影频道传媒关注单元 即将迎来20周年 一共有18部影片 入围竞逐年度传媒荣誉 6月16日晚 CCTV-6电影频道、 电影频道融媒体 将现场直播 揭晓传媒荣誉名单 电影《觅渡》入围上…

为你的项目配置日志(AOP+logback)

文章目录 1、导入依赖2、配置文件logback-spring.xml3、使用AOP做日志3.1、自定义注解3.2、自定义aop切面 4、在controller方法上添加注解5、使用Slf4j6、最终参考效果 之前看过logback的配置方法&#xff0c;今天整理spring的知识的时候&#xff0c;又看到了aop&#xff0c;想…

Linux之系统信息和性能监测

一、前言 安装完一套linux操作系统我们首先得知道系统都有哪些信息&#xff0c;比如安装内存多少、磁盘多大、什么版本、多少核CPU等等&#xff0c;因此熟悉常用的查看系统信息的指令还是很有必要的。 此文档主要对已安装的linux系统的属性有个初步的认识&#xff0c;介绍系统…

一起从根上学习Swoole

一起从根上学习Swoole Swoole&#xff0c;这个名字已经不再是一个简单的扩展库&#xff0c;而是一种让PHP开发者们心驰神往的技术。它是一个基于事件驱动的异步网络通信框架&#xff0c;能够让PHP应用程序在高并发环境下实现卓越的性能表现。现在&#xff0c;你也可以像一名高…

ROS:DWA算法解析、move_base导航包DWA源码解析

一.整体思路 1.基于速度控制运动模型 假设没有噪声&#xff0c;控制时间间隔为内机器人速度v和角速度w保持不变&#xff0c;则机器人围绕半径为r的圆周运动。 其中&#xff0c;。 根据v 和w即可预测出下一次机器人位姿&#xff08;x、y、&#xff09;&#xff0c;根据此也可以…

毕业4年,克服三次瓶颈,最终成功从字节跳动成功跳到阿里!经验分享

介绍下自己的测试历程吧&#xff0c;普通本科&#xff0c;毕业4年&#xff0c; 去年成功转型测试开发&#xff0c;总结一下测试心得。 平凡的大学生活 我大学期间属于并没有什么出众的&#xff0c;按部就班&#xff0c;老实办事的那种学生&#xff0c;我导师对我们那届的学生…

iOS 17(SwiftUI 5.0)带来的图表(Charts)新类型:“大饼”与“甜甜圈”

概览 WWDC 2023 为我们带来了 iOS 17&#xff0c;也为我们带来了 SwiftUI 5.0。 在 SwiftUI 新版中&#xff0c;Apple 增加了很多重磅功能&#xff0c;也对原有功能做了大幅度升级。 对于 Charts 框架&#xff0c; 新增了饼图&#xff08;Pie&#xff09;类型并且加入了图…

容器镜像差异分析工具 container-diff

概述 container-diff 是google出的一个容器差异比较工具&#xff0c;通过这个工具可以比较两个镜像之间存在的文件差异、RPM包差异、apt包差异、pip包差异和node包差异。 container-diff 也包括了对单个镜像分析能力&#xff0c;像文件分析啊、apt包、rpm包分析等功能。 在日常…

Python爬虫——怎么搭建和维护一个本地IP池

目录 背景 一、什么是本地代理IP池 二、代理IP池功能架构图 三、各个组件功能说明及示例代码 1. IP池管理器 2. 代理IP获取器 3. IP质量检测器 4、数据存储器 5、API接口层 6、应用程序 总结 背景 在我们进行爬虫工作时&#xff0c;经常需要使用代理IP。大多数代理…

unity2d粒子特效

文章目录 前言先看效果一、2d平台雨1. 配置2. 图片素材3. 最终效果 二、脚步灰尘效果1. 配置2. 代码调用3. 效果 三、受伤血液四溅效果1. 配置2. 效果 待续四、工程源码五、参考六、完毕 前言 我只是我抽空写了一些简单的2d粒子特效&#xff0c;后面如果接触新的不错的2d特效&a…