个人使用ChatGLM-6B遇到的部分问题汇总

本文目录

  • 写在最前
  • 个人windows电脑部署时遇到
    • KeyError: 'chatglm'
      • 问题原因:transformers版本有问题
      • 解决方法
    • OSError/AssertionError/Failed to load cpm_kernels
      • 问题原因:配置内容没有修改、依赖包不完整
      • 解决方法
  • 想要运行web_demo2.py时遇到
    • No matching distribution found for streamlit-chat
    • 问题原因:组件必须要在python>3.8的环境才能运行!!!!

写在最前

项目的github网址(https://github.com/THUDM/ChatGLM-6B)中有解决问题专用的Issues模块
在这里插入图片描述
建议遇到问题先将部分报错写在这里进行查询,大概率能找到问题的解决方法

本文章只用于记录个人在使用过程中遇到的问题,供以后回忆之用。

个人windows电脑部署时遇到

以下都是在运行cli_demo.py遇到

KeyError: ‘chatglm’

# 出现异常描述
(ai) Q:\Python\project\ChatGLM\ChatGLM-6B-main>python cli_demo.py
Traceback (most recent call last):File "cli_demo.py", line 7, in <module>tokenizer = AutoTokenizer.from_pretrained("THUDM/ChatGLM-6B", trust_remote_code=True)File "Q:\IDE\Python\vitrual_enviroment\ai\lib\site-packages\transformers\models\auto\tokenization_auto.py", line 362, in from_pretrainedconfig = AutoConfig.from_pretrained(pretrained_model_name_or_path, **kwargs)File "Q:\IDE\Python\vitrual_enviroment\ai\lib\site-packages\transformers\models\auto\configuration_auto.py", line 371, in from_pretrainedconfig_class = CONFIG_MAPPING[config_dict["model_type"]]
KeyError: 'chatglm'

问题原因:transformers版本有问题

推荐版本是4.27.1 ,但是好像不太行

解决方法

  • 在出现这个问题之前,我先遇到了一个问题提示找不到模型,然后我查了以后有人说是因为transformer版本太低,然后我就把版本提升到4.3以上的一个版本,然后就出现了上所示问题
  • 重新去github上找人答疑时,有人说需要版本得是transformers 4.28.1,我就死马当活马医重新pip install,发现解决了,进入下一个问题

OSError/AssertionError/Failed to load cpm_kernels

(ai) Q:\Python\project\ChatGLM\ChatGLM-6B-main>python cli_demo.py
Explicitly passing a `revision` is encouraged when loading a model with custom code to ensure no malicious code has been contributed in a newer revision.
Explicitly passing a `revision` is encouraged when loading a configuration with custom code to ensure no malicious code has been contributed in a newer revision.
Explicitly passing a `revision` is encouraged when loading a model with custom code to ensure no malicious code has been contributed in a newer revision.
--- Logging error ---
Traceback (most recent call last):File "C:\Users\user/.cache\huggingface\modules\transformers_modules\ChatGLM-6B\quantization.py", line 19, in <module>from cpm_kernels.kernels.base import LazyKernelCModule, KernelFunction, round_upFile "Q:\IDE\Python\vitrual_enviroment\ai\lib\site-packages\cpm_kernels\__init__.py", line 1, in <module>from . import libraryFile "Q:\IDE\Python\vitrual_enviroment\ai\lib\site-packages\cpm_kernels\library\__init__.py", line 2, in <module>from . import cudaFile "Q:\IDE\Python\vitrual_enviroment\ai\lib\site-packages\cpm_kernels\library\cuda.py", line 7, in <module>cuda = Lib.from_lib("cuda", ctypes.WinDLL("nvcuda.dll"))File "q:\ide\python\cpython37\lib\ctypes\__init__.py", line 356, in __init__self._handle = _dlopen(self._name, mode)
OSError: [WinError 126] 找不到指定的模块。During handling of the above exception, another exception occurred:Traceback (most recent call last):File "q:\ide\python\cpython37\lib\logging\__init__.py", line 1034, in emitmsg = self.format(record)File "q:\ide\python\cpython37\lib\logging\__init__.py", line 880, in formatreturn fmt.format(record)File "q:\ide\python\cpython37\lib\logging\__init__.py", line 619, in formatrecord.message = record.getMessage()File "q:\ide\python\cpython37\lib\logging\__init__.py", line 380, in getMessagemsg = msg % self.args
TypeError: not all arguments converted during string formatting
Call stack:File "cli_demo.py", line 8, in <module>model = AutoModel.from_pretrained("THUDM\ChatGLM-6B", trust_remote_code=True).half().cuda()File "Q:\IDE\Python\vitrual_enviroment\ai\lib\site-packages\transformers\models\auto\auto_factory.py", line 467, in from_pretrainedpretrained_model_name_or_path, *model_args, config=config, **hub_kwargs, **kwargsFile "Q:\IDE\Python\vitrual_enviroment\ai\lib\site-packages\transformers\modeling_utils.py", line 2629, in from_pretrainedmodel = cls(config, *model_args, **model_kwargs)File "C:\Users\user/.cache\huggingface\modules\transformers_modules\ChatGLM-6B\modeling_chatglm.py", line 1061, in __init__self.quantize(self.config.quantization_bit, self.config.quantization_embeddings, use_quantization_cache=True, empty_init=True)File "C:\Users\user/.cache\huggingface\modules\transformers_modules\ChatGLM-6B\modeling_chatglm.py", line 1424, in quantizefrom .quantization import quantize, QuantizedEmbedding, QuantizedLinear, load_cpu_kernelFile "<frozen importlib._bootstrap>", line 983, in _find_and_loadFile "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlockedFile "<frozen importlib._bootstrap>", line 677, in _load_unlockedFile "<frozen importlib._bootstrap_external>", line 728, in exec_moduleFile "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removedFile "C:\Users\user/.cache\huggingface\modules\transformers_modules\ChatGLM-6B\quantization.py", line 46, in <module>logger.warning("Failed to load cpm_kernels:", exception)
Message: 'Failed to load cpm_kernels:'
Arguments: (OSError(22, '找不到指定的模块。', None, 126, None),)
No compiled kernel found.
Compiling kernels : C:\Users\user\.cache\huggingface\modules\transformers_modules\ChatGLM-6B\quantization_kernels_parallel.c
Compiling gcc -O3 -fPIC -pthread -fopenmp -std=c99 C:\Users\user\.cache\huggingface\modules\transformers_modules\ChatGLM-6B\quantization_kernels_parallel.c -shared -o C:\Users\user\.cache\huggingface\modules\transformers_modules\ChatGLM-6B\quant
ization_kernels_parallel.so
'gcc' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
Compile default cpu kernel failed, using default cpu kernel code.
Compiling gcc -O3 -fPIC -std=c99 C:\Users\user\.cache\huggingface\modules\transformers_modules\ChatGLM-6B\quantization_kernels.c -shared -o C:\Users\user\.cache\huggingface\modules\transformers_modules\ChatGLM-6B\quantization_kernels.so
'gcc' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
Compile default cpu kernel failed.
Failed to load kernel.
Cannot load cpu or cuda kernel, quantization failed:
Traceback (most recent call last):File "cli_demo.py", line 8, in <module>model = AutoModel.from_pretrained("THUDM\ChatGLM-6B", trust_remote_code=True).half().cuda()File "Q:\IDE\Python\vitrual_enviroment\ai\lib\site-packages\transformers\models\auto\auto_factory.py", line 467, in from_pretrainedpretrained_model_name_or_path, *model_args, config=config, **hub_kwargs, **kwargsFile "Q:\IDE\Python\vitrual_enviroment\ai\lib\site-packages\transformers\modeling_utils.py", line 2629, in from_pretrainedmodel = cls(config, *model_args, **model_kwargs)File "C:\Users\user/.cache\huggingface\modules\transformers_modules\ChatGLM-6B\modeling_chatglm.py", line 1061, in __init__self.quantize(self.config.quantization_bit, self.config.quantization_embeddings, use_quantization_cache=True, empty_init=True)File "C:\Users\user/.cache\huggingface\modules\transformers_modules\ChatGLM-6B\modeling_chatglm.py", line 1439, in quantizeself.transformer = quantize(self.transformer, bits, use_quantization_cache=use_quantization_cache, empty_init=empty_init, **kwargs)File "C:\Users\user/.cache\huggingface\modules\transformers_modules\ChatGLM-6B\quantization.py", line 464, in quantizeassert kernels is not None
AssertionError

问题原因:配置内容没有修改、依赖包不完整

解决方法

这里有多个问题需要解决

  1. gcc编译器未安装

    • 项目的readme有写(位于使用方式/环境安装部分),如果安装时需要用cpu运行,必须安装gcc与openmp
    • 在这里插入图片描述
    • 下载的地址位于 (https://jmeubank.github.io/tdm-gcc/) 点进去以后因为推荐的是TDM-GCC 10.3.0,因此单击TDM-GCC 10.3.0 release,进去之后再点击(tdm64-gcc-10.3.0-2.exe)下载。
    • 下载完成后点击运行文件,点create,然后点下一步,遇到能选openmp的时候记得选上就行
  2. 配置内容未修改

    • 这里首先,要修改模型文件中的(即THUDM\ChatGLM-6B下的,或是model中的)THUDM/ChatGLM-6B/quantization.py这一文件
    • from cpm_kernels.kernels.base import LazyKernelCModule, KernelFunction, round_up这行注释掉,后面会飘红也没关系,不用改
    • 把kernels = Kernel(…)注释掉,替换为kernels =CPUKernel() # 说实话这一步是否有用我不是很确定,后续重新运行时依然提示NameError: name 'CPUKernel' is not defined,但是不影响程序运行
    • 把已缓存的.cache目录下文件删掉!!! ,这里看报错的地方,我的缓存文件在 File “C:\Users\user/.cache\huggingface\modules\transformers_modules\ChatGLM-6B\quantization.py”
    • 把.cache后面的huggingface文件夹直接删除
    • 最后要记得修改cli_demo.py中的内容
      • model = AutoModel.from_pretrained("THUDM\ChatGLM-6B", trust_remote_code=True).half().cuda()
      • 改成:model = AutoModel.from_pretrained("THUDM\ChatGLM-6B", trust_remote_code=True).float()

以上修改完成后,我的程序就已经可以运行了
在这里插入图片描述

想要运行web_demo2.py时遇到

No matching distribution found for streamlit-chat

(ai) Q:\Python\project\ChatGLM\ChatGLM-6B-main>pip install streamlit-chat
ERROR: Could not find a version that satisfies the requirement streamlit-chat (from versions: 0.0.1)
ERROR: No matching distribution found for streamlit-chat

问题原因:组件必须要在python>3.8的环境才能运行!!!!

哇这个问题真的是没把我弄死,streamlit很容易就用pip install 下载完成了,后面的streamlit-chat怎么也下载不了,经历了查资料、换源等一系列操作之后,我决定从PYPI官网下载,如愿以偿让我找到了就在我用如下命令进行下载时

(ai) Q:\Python\project\ChatGLM\ChatGLM-6B-main>pip --default-timeout=100 install streamlit_chat-0.0.2.2-py3-none-any.whl
Processing q:\python\project\chatglm\chatglm-6b-main\streamlit_chat-0.0.2.2-py3-none-any.whl
Requirement already satisfied: streamlit>=0.63 in q:\ide\python\vitrual_enviroment\ai\lib\site-packages (from streamlit-chat==0.0.2.2) (1.23.1)
ERROR: Package 'streamlit-chat' requires a different Python: 3.7.2 not in '>=3.8'
WARNING: You are using pip version 22.0.3; however, version 23.1.2 is available.
You should consider upgrading via the 'Q:\IDE\Python\vitrual_enviroment\ai\Scripts\python.exe -m pip install --upgrade pip' command.

看懂了吗xdm,这个组件必须要在python>3.8的环境才能运行。。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大佬联合署名!反对 ACL 设置匿名期!

夕小瑶科技说 原创 作者 | 智商掉了一地、Python 近日&#xff0c;自然语言处理领域的多位知名学者联合发起了一项反对 ACL 设置匿名期的联合署名行动&#xff0c;包括著名学者 William Wang 和 Yoav Goldberg 在内&#xff0c;还有Christopher Potts、Hal Daume、Luke Zettl…

人工智能轨道交通行业周刊-第46期(2023.5.22-5.28)

本期关键词&#xff1a;数字孪生、AI铁路人、道岔、施封锁、图像质量评价、大模型小型化 1 整理涉及公众号名单 1.1 行业类 RT轨道交通人民铁道世界轨道交通资讯网铁路信号技术交流北京铁路轨道交通网上榜铁路视点ITS World轨道交通联盟VSTR铁路与城市轨道交通RailMetro轨道…

ChatGPT背后的大模型如何做推理?港中大(深圳)等最新《自然语言推理》综述详述预训练语言模型推理方法...

点击上方“AI遇见机器学习”&#xff0c;选择“星标”公众号 重磅干货&#xff0c;第一时间送 专知 自然语言推理怎么做的&#xff1f; 网站链接&#xff1a;https://arxiv.org/abs/2303.14725 本文从概念上和实践上对自然语言处理(NLP)领域的自然语言推理进行了更清晰的认识。…

ChatGPT和GPT-4的逻辑推理如何?浙大等最新《ChatGPT和GPT-4逻辑推理能力全面评测》论文解答,常规优异新数据差...

来源&#xff1a;专知 运用逻辑推理能力进行全面的自然语言理解尝试。随着生成预训练Transformer 4&#xff08;GPT-4&#xff09;的发布&#xff0c;它在推理任务上被称为“先进”的&#xff0c;我们渴望了解GPT-4在各种逻辑推理任务上的表现。本报告分析了多个逻辑推理数据集…

机器学习0 — 总体架构,ChatGPT时代必须掌握的

1 从ChatGPT看目前AI重要性 随着ChatGPT的一声巨响&#xff0c;拉响了强人工智能的序幕。ChatGPT相对于目前的各种机器人&#xff0c;简直就是弓箭和导弹的区别。沉寂了两三年后&#xff0c;AI如今又一次站在了人类工业的最高舞台。个人认为AI已经成为所有人&#xff0c;特别是…

侯世达《大西洋月刊》撰文:GPT-4写了篇《我为什么要写GEB?》,为何老夫毛了?...

来源&#xff1a;科技世代千高原 作者&#xff1a;侯世达&#xff08;道格拉斯霍夫施塔特&#xff09;2023 年 7 月 8 日 一个快得令人眼花缭乱的聊天机器人无法取代一个有思想、活生生的人类真实而反思的声音。 到目前为止&#xff0c;您很可能已经高度意识到人工智能最近由于…

产线环境故障排查常用套路

更多内容关注微信公众号&#xff1a;fullstack888 线上故障主要会包括cpu、磁盘、内存以及网络问题&#xff0c;而大多数故障可能会包含不止一个层面的问题&#xff0c;所以进行排查时候尽量四个方面依次排查一遍。 同时例如jstack、jmap等工具也是不囿于一个方面的问题的&…

vue使用websocket 导致server崩溃的问题

现象&#xff1a;项目中使用了websocket&#xff08;不管何种websocket库&#xff0c;原生websocket、io.socket&#xff09;,只要websocket服务停止&#xff0c;npm run serve 就崩溃&#xff0c;如果一致调试前后端程序的话&#xff0c;崩溃了得重启&#xff0c;此问题一致困…

QT-多线程与界面之间交互总结

1. 线程与界面组件需要注意的地方 在QThread线程中不能直接创建QWidget之类的界面组件. 因为在QT中,所有界面组件相关的操作都必须在主线程中(也就是GUI thread) 所以, QThread线程不能直接操作界面组件. 2.QThread线程如何操作界面组件-方法1 将多线程类对象封装为GUI界面…

Qt常用对话框设计

一、概述 Qt提供了多种自带的标准对话框&#xff0c;常见的对话框包括文件对话框、颜色对话框、字体对话框、输入对话框、消息对话框。 二、文件对话框 文件对话框通过QFileDialog类实现&#xff0c;通过文件对话框可以打开一个文件浏览对话框&#xff0c;可以实现打开文件、…

GUI编程--PyQt5--QWidget3 控件的交互

文章目录 控件是否可用控件是否可见编辑状态窗口的激活窗口关闭案例提示信息焦点操作 控件是否可用 obj.setEnabled(True) obj.isEnabled() 控件是否可见 显示与隐藏 本质是重新绘制所有的控件&#xff0c;从父控件依次到子控件。 obj.setVisible(True) 绘制图形 触发了pain…

Fdog系列(四):使用Qt框架模仿QQ实现登录界面,界面篇。

文章目录 一. 前言二. 正文1. 创建窗口&#xff0c;添加基本组件2. 自定义标题&#xff0c;隐藏任务栏标题&#xff0c;实现系统托盘显示3. 美化主界面&#xff0c;文本框的奇思妙想4. 实现背景阴影 一. 前言 Fdog系列已写目录&#xff1a; Fdog系列&#xff08;一&#xff0…

Qt之对话框(QDialog)

文章目录 一、对话框的概念二、与QWidget的区别三、对话框2种显示方法四、对话框返回值的概念本节示例 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、对话框的概念 对话框是和用户简短交互的一种窗口。如&#xff1a;登录界面&#xff0c;关于界…

《爱情公寓》电影,让我十年的情怀,一瞬间都喂了狗

点击上方“程序人生”&#xff0c;选择“置顶公众号” 第一时间关注程序猿&#xff08;媛&#xff09;身边的故事 作者 丁彦军 来源 恋习Python 如需转载&#xff0c;请联系原作者授权。 深陷抄袭之名、诉讼纠纷的《爱情公寓》终于上映了。 情怀粉们的力量不容小觑&#xff0c;…

长坡厚雪 一个智能手机的“大时代”迎面到来

作者 | 曾响铃 文 | 响铃说 “这是一个最好的时代&#xff0c;也是一个最坏的时代。 ” 在世界贸易关系、国际环境等不确定因素影响下&#xff0c;全球都蒙上了一层阴影。前不久召开的2023博鳌亚洲论坛主题就是“在不确定的世界中探寻确定性”&#xff0c;简单来说就是当前社…

《XP、面具框架玩机》小米手机玩机教程--菜鸟小回

《框架玩机》小米手机玩机教程 ChatGPT点击直接对话&#xff1a;小回公益GPT 注&#xff1a;刷机有风险&#xff0c;玩机需谨慎。 操作不当所造成后果与菜鸟小回无关&#xff01;&#xff01;&#xff01; 今天来分享小米手机玩机技巧&#xff0c;Magisk面具Xp框架! 可能你多上…

工程质量之研发过程管理需要关注的点

一、背景 作为程序猿&#xff0c;工程质量是我们逃不开的一个话题&#xff0c;工程质量高带来的好处多多&#xff0c;我在写这篇文章的时候问了一下CHATGPT&#xff0c;就当娱乐一下&#xff0c;以下是ChatGPT的回答&#xff1a; 1、提高产品或服务的可靠性和稳定性。高质量的系…

港联证券|存储概念再活跃,佰维存储盘中逼近涨停再创新高

存储概念11日盘中再度走强&#xff0c;截至发稿&#xff0c;佰维存储涨超19%&#xff0c;盘中迫临涨停再创上市以来新高&#xff0c;该股自上市以来累计大涨超500%&#xff1b;江波龙涨近15%盘中亦创出新高&#xff1b;此外&#xff0c;朗科科技涨近12%&#xff0c;同有科技涨近…

比尔盖茨:Web3没那么重要,元宇宙没革命性,人工智能最重要

1. 【比尔盖茨&#xff1a;Web3没那么重要&#xff0c;元宇宙没革命性&#xff0c;人工智能最重要】 微软联合创始人比尔•盖茨似乎与特斯拉CEO埃隆马斯克一样对元宇宙、Web3&#xff08;第三代互联网&#xff09;毫无兴趣。 当地时间1月12日&#xff0c;比尔•盖茨在美国社交新…

死磕数据库系列(二十二):MySQL 数据库机房架构与跨城容灾

点关注公众号&#xff0c;回复“1024”获取2TB学习资源&#xff01; 今天我将详细的为大家介绍 MySQL 数据库的机房架构与跨城容灾相关知识&#xff0c;希望大家能够从中收获多多&#xff01;如有帮助&#xff0c;请点在看、转发支持一波&#xff01;&#xff01;&#xff01; …