清华大学ChatGLM2-6B开源本地化语言模型升级版
ChatGLM2-6B 是开源中英双语对话模型 ChatGLM-6B 的第二代版本,在保留了初代模型对话流畅、部署门槛较低等众多优秀特性的基础之上,ChatGLM2-6B 引入了如下新特性:
- 更强大的性能:基于 ChatGLM 初代模型的开发经验,我们全面升级了 ChatGLM2-6B 的基座模型。ChatGLM2-6B 使用了 GLM 的混合目标函数,经过了 1.4T 中英标识符的预训练与人类偏好对齐训练,评测结果显示,相比于初代模型,ChatGLM2-6B 在 MMLU(+23%)、CEval(+33%)、GSM8K(+571%) 、BBH(+60%)等数据集上的性能取得了大幅度的提升,在同尺寸开源模型中具有较强的竞争力。
- 更长的上下文:基于 FlashAttention 技术,我们将基座模型的上下文长度(Context Length)由 ChatGLM-6B 的 2K 扩展到了 32K,并在对话阶段使用 8K 的上下文长度训练,允许更多轮次的对话。但当前版本的 ChatGLM2-6B 对单轮超长文档的理解能力有限,我们会在后续迭代升级中着重进行优化。
- 更高效的推理:基于 Multi-Query Attention 技术,ChatGLM2-6B 有更高效的推理速度和更低的显存占用:在官方的模型实现下,推理速度相比初代提升了 42%,INT4 量化下,6G 显存支持的对话长度由 1K 提升到了 8K。
- 更开放的协议:ChatGLM2-6B 权重对学术研究完全开放,在获得官方的书面许可后,亦允许商业使用。如果您发现我们的开源模型对您的业务有用,我们欢迎您对下一代模型 ChatGLM3 研发的捐赠。
ChatGLM2-6B 开源模型旨在与开源社区一起推动大模型技术发展,恳请开发者和大家遵守开源协议,勿将开源模型和代码及基于开源项目产生的衍生物用于任何可能给国家和社会带来危害的用途以及用于任何未经过安全评估和备案的服务。目前,本项目团队未基于 ChatGLM2-6B 开发任何应用,包括网页端、安卓、苹果 iOS 及 Windows App 等应用。
尽管模型在训练的各个阶段都尽力确保数据的合规性和准确性,但由于 ChatGLM2-6B 模型规模较小,且模型受概率随机性因素影响,无法保证输出内容的准确性,且模型易被误导。本项目不承担开源模型和代码导致的数据安全、舆情风险或发生任何模型被误导、滥用、传播、不当利用而产生的风险和责任。
项目仓库
GitHub:THUDM/ChatGLM2-6B: ChatGLM2-6B
前置条件
在执行项目安装之前,我们还需要安装Git
和Conda
,如果您的电脑还未安装这两款软件,请先根据本站所给出的教程安装。
Windows系统安装Git请参阅此文章:
Windows系统安装Conda请参阅此文章:
网络问题
在安装过程中,你可能即便开启了魔法上网也无法下载一些编程依赖库,关于魔法上网的相关配置问题不方便在站内讲解,请自行查看【魔法上网】的教程内容。
安装教程
如果您是初学者,对于命令行不太理解,那么请按下键盘上的Win键+R键
后,在弹出的新窗口内输入CMD并按下回车,打开CMD窗口,按顺序执行如下的每一条命令。
首先我们需要确认一个工作目录,用来存放该项目的相关环境依赖文件。本站所选择的目录为D盘
的根目录下openai.wiki
文件夹,完整路径为:D:\openai.wiki
。
检测D盘
是否在openai.wiki
目录,没有则创建该文件夹。
if not exist D:\openai.wiki mkdir D:\openai.wiki
强制切换工作路径为D盘的openai.wiki
文件夹。
cd /d D:\openai.wiki
拉取该项目的Github仓库文件,将其下载至openai.wiki
文件夹内。
git clone https://github.com/THUDM/ChatGLM2-6B.git
环境部署
在CMD中执行如下命令,强制切换至ChatGLM2-6B
的项目目录。
cd /d D:\openai.wiki\ChatGLM2-6B
在CMD中执行下面的命令行,创建Conda虚拟环境至该项目的目录中,方便日后重装系统也能够正常使用,无需重新部署环境。
conda create -y -p D:\openai.wiki\ChatGLM2-6B\ENV python=3.8
初始化Conda环境,防止后续操作可能存在报错等问题。
conda init cmd.exe
激活已创建的Conda环境,这样我们可以将我们后续所需要的所有环境依赖都安装至此环境下。
conda activate D:\openai.wiki\ChatGLM2-6B\ENV
执行如下命令,安装该项目的相关依赖库。
pip install -r requirements.txt
更新charset_normalizer依赖库,不然必报错。
pip install --upgrade charset_normalizer
安装CLI所用到的charset_normalizer依赖库,不然必报错。
pip install pyreadline
如果你需要使用Demo2方式运行,一定要安装Streamlit依赖库才可以正常运行,该库可以用来实现打字机效果,建议直接无脑安装。
pip install streamlit streamlit-chat
PyTorch
此部分内容比较特殊且复杂,本文中仅做简单安装介绍,详细安装教程可以【点此查看】。
1.在安装PyTorch之前,您需要先前往官网(PyTorch)查看自己应该安装哪个版本。
2.请您像下图一样按顺序选择即可,依次选择
Stable
->Windows
->Conda
->Python
->CUDA 11.8
。备注:如果您看到的不是CUDA 11.8,而是CUDA 11.9或更高的版本也没关系,只要前缀是CUDA即可。
3.在您按顺序选择好之后,复制下面的<
Run this Command
>的内容即可,例如本站所得到的为:
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
提示:将您所复制的代码直接粘贴至CMD窗口内执行,此时将会自动安装PyTorch和对应版本的CUDA,因为PyTorch比较大,所以等待时间会比较长,请不要中断该操作。
注意:一定要复制你自己得到的,尽量不要直接使用本站所给出的示例命令行!
模型下载
本站提供两种下载方式,任选其一即可。如果你不放心本站所提供的模型,可以开启魔法上网到官方下载地址内自行下载。
官方下载
THUDM/chatglm2-6b · Hugging Face
网盘下载
模型安装
下载模型时,请注意模型的目录结构,以及文件夹层级关系。
ChatGLM2-6B
→THUDM
→chatglm2-6b
→模型相关文件
D:\openai.wiki\ChatGLM2-6B\THUDM\chatglm2-6b └─.gitattributes └─config.json └─configuration_chatglm.py └─modeling_chatglm.py └─MODEL_LICENSE └─pytorch_model-00001-of-00007.bin └─pytorch_model-00002-of-00007.bin └─pytorch_model-00003-of-00007.bin └─pytorch_model-00004-of-00007.bin └─pytorch_model-00005-of-00007.bin └─pytorch_model-00006-of-00007.bin └─pytorch_model-00007-of-00007.bin └─pytorch_model.bin.index.json └─quantization.py └─README.md └─tokenization_chatglm.py └─tokenizer.model └─tokenizer_config.json
本站已经整理好了模型的结构,你只需要将下载完成的THUDM文件夹
移动至ChatGLM2-6B
项目文件夹内即可。
源码修改
我们几乎已经完成了所有需要的前置条件,但因为源码中模型的加载路径遵从了Liunx的方式,而我们使用了Windows系统来搭建,这与Liunx的路径转义有区别。
警告:所以如果你是Windows系统,需要根据以下步骤修改源码,如果你是Linux请路过该部分,不要进行操作。
此时我们需要做一件事,那就是分别修改cli_demo.py
|web_demo.py
|web_demo2.py
三个文件内的模型路径,将THUDM/chatglm2-6b
修改为THUDM\chatglm2-6b
即可。
提示:假如你以后只想通过使用web_demo.py
的方式来运行该模型,那么只修改web_demo.py
这一个文件的内容即可,无需对三个文件全部进行修改,但本站推荐全部修改。
cli_demo.py
推荐使用代码编辑器打开cli_demo.py
文件,对以下部分进行修改。
tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm2-6b", trust_remote_code=True) model = AutoModel.from_pretrained("THUDM/chatglm2-6b", trust_remote_code=True).cuda()
该部分一般位于该文件的第7行
和第8行
,修改为以下内容。
tokenizer = AutoTokenizer.from_pretrained("THUDM\chatglm2-6b", trust_remote_code=True) model = AutoModel.from_pretrained("THUDM\chatglm2-6b", trust_remote_code=True).cuda()
web_demo.py
推荐使用代码编辑器打开web_demo.py
文件,对以下部分进行修改。
tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm2-6b", trust_remote_code=True) model = AutoModel.from_pretrained("THUDM/chatglm2-6b", trust_remote_code=True).cuda()
该部分一般位于该文件的第5行
和第6行
,修改为以下内容。
tokenizer = AutoTokenizer.from_pretrained("THUDM\chatglm2-6b", trust_remote_code=True) model = AutoModel.from_pretrained("THUDM\chatglm2-6b", trust_remote_code=True).cuda()
web_demo2.py
推荐使用代码编辑器打开web_demo2.py
文件,对以下部分进行修改。
tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm2-6b", trust_remote_code=True) model = AutoModel.from_pretrained("THUDM/chatglm2-6b", trust_remote_code=True).cuda()
该部分一般位于该文件的第15行
和第16行
,修改为以下内容。
tokenizer = AutoTokenizer.from_pretrained("THUDM\chatglm2-6b", trust_remote_code=True) model = AutoModel.from_pretrained("THUDM\chatglm2-6b", trust_remote_code=True).cuda()
通用运行方式
在以后每次运行该项目时,只需要先激活我们刚刚所创建的Conda虚拟Python环境,然后运行启动文件即可。
在CMD中执行如下命令,强制切换至项目目录文件夹。
cd /d D:\openai.wiki\ChatGLM2-6B
激活已创建的Conda环境,这样才可以正常使用该项目,否则将会自动调用系统中的默认Python。
conda activate D:\openai.wiki\ChatGLM2-6B\ENV
执行如下代码,运行程序的GUI界面。
# cli_demo.py|web_demo.py|web_demo2.py三种方式任选其一 python 启动方式文件名.py
各运行方式使用教程
我们一共有3种启动方式,分别是目录中的cli_demo.py
|web_demo.py
|web_demo2.py
三个文件,三种启动方式对应着3种UI界面,所实现的功能都是一样的,只不过操作交互上存在些许不同而已。
cli_demo
请在CMD中如下命令,强制切换工作路径:
cd /d D:\openai.wiki\ChatGLM2-6B
执行如下命令行,激活Conda中的ChatGLM-6B虚拟环境。
conda activate D:\openai.wiki\ChatGLM2-6B\ENV
启动cli_demo.py
,该步骤需要载入模型,然后自动载入对话交互界面,请耐性等待五分钟左右,等待时间因电脑性能而定。
python cli_demo.py
注意:第一次问答时需要载入模型算法,所以需要等待较长的时间,但是从第二次对话开始,速度将会得到极大的提升。
界面展示
cli界面是通过在命令行之内直接交互来进行问答的,界面如下:
完整内容如下:
(D:\openai.wiki\ChatGLM2-6B\ENV) D:\openai.wiki\ChatGLM2-6B>python cli_demo.py You are using a model of type chatglm to instantiate a model of type . This is not supported for all configurations of models and can yield errors. Loading checkpoint shards: 100%|█████████████████████████████████████████████████████████| 7/7 [01:58<00:00, 16.91s/it] 欢迎使用 ChatGLM2-6B 模型,输入内容即可进行对话,clear 清空对话历史,stop 终止程序 用户:AI是什么? ChatGLM:AI指的是人工智能,是一种能够通过学习和推理来执行任务的计算机程序。它可以模仿人类的思维和行为,完成各种任务,例如语音识别、图像识别、自然语言处理、预测和决策等。AI 技术在当今社会中得到了广泛应用,例如自动驾驶汽车、智能家居、医疗诊断、金融分析等领域。 ChatGLM:以下是一个使用 Python 3 和 requests 库来爬取网页数据的简单示例。 ```python import requests # 目标网页 URL url = "https://www.example.com" # 发送 GET 请求并获取响应 response = requests.get(url) # 解析 HTML 内容 # 打印网页标题 print(soup.title.text) ``` 在这个示例中,我们首先导入了 requests 和 BeautifulSoup 库。然后,我们定义了目标网页的 URL,使用 requests.get() 方法发送 GET 请求,并将响应保存在 response 变量中。 接下来,我们使用 BeautifulSoup 函数将 HTML 内容解析为 BeautifulSoup 对象,并将其保存在 soup 变量中。 最后,我们打印了网页的标题,使用 soup.title.text 属性获取标题文本。 请注意,此示例仅用于学习目的。在实际生产环境中,请确保遵守网站的 robots.txt 文件和使用网站的授权,以避免违反网站的规则。 用户:胃肠难受应该吃点什么药? ChatGLM:胃肠难受的原因有很多,例如饮食不当、胃肠感染、胃炎、胃溃疡、胆囊炎、便秘等等。应该先确定病因并采取相应的治疗措施。 如果是因为饮食不当引起的胃肠难受,建议先停止刺激性食物和饮料的摄入,如辛辣食物、咖啡、酒精和油腻食物等,然后尝试吃一些易于 消化的食物,如米粥、面条、饼干、蛋白质粉等。 如果是胃肠感染引起的胃肠难受,则需要根据病因和症状选择相应的药物治疗,如抗生素、抗酸药、消化酶等。 如果是胃炎、胃溃疡或胆囊炎等疾病引起的胃肠难受,则需要遵循医生的建议进行治疗,并注意饮食和作息习惯。 胃肠难受时应该先确定病因并采取相应的治疗措施。如果不确定应该吃什么药,建议先咨询医生或药师的意见。
web_demo
请在CMD中如下命令,强制切换工作路径:
cd /d D:\openai.wiki\ChatGLM2-6B
执行如下命令行,激活Conda中的ChatGLM-6B虚拟环境。
conda activate D:\openai.wiki\ChatGLM2-6B\ENV
启动web_demo.py
,该步骤需要载入模型,然后自动载入对话交互界面,请耐性等待五分钟左右,等待时间因电脑性能而定。
python web_demo.py
等待片刻之后,将会自动打开一个网页,地址为:http://127.0.0.1:7860,之后就可以正常使用啦。
注意:第一次问答时需要载入模型算法,所以需要等待较长的时间,但是从第二次对话开始,速度将会得到极大的提升。
界面展示
web_demo界面是通过在Web网页中进行交互问答的,界面如下:
web_demo2
请在CMD中如下命令,强制切换工作路径:
cd /d D:\openai.wiki\ChatGLM2-6B
执行如下命令行,激活Conda中的ChatGLM-6B虚拟环境。
conda activate D:\openai.wiki\ChatGLM2-6B\ENV
启动web_demo2.py
,该步骤需要载入模型,然后自动载入对话交互界面,请耐性等待五分钟左右,等待时间因电脑性能而定。
streamlit run web_demo2.py --server.port 7860
首先次启动可能看到需要您填写Email的地址,这里填写之后将会自动接收到关于Streamlit的广告,我们直接不输入任何内容,按下回车即可跳过。
(D:\openai.wiki\ChatGLM2-6B\ENV) D:\openai.wiki\ChatGLM2-6B>streamlit run web_demo2.py --server.port 7860 Welcome to Streamlit! If you’d like to receive helpful onboarding emails, news, offers, promotions, and the occasional swag, please enter your email address below. Otherwise, leave this field blank. Email:
等待片刻之后,将会自动打开一个网页,地址为:http://localhost:7860,之后就可以正常使用啦。
注意:第一次问答时需要载入模型算法,所以需要等待较长的时间,但是从第二次对话开始,速度将会得到极大的提升。
界面展示
web_demo2界面是通过在Web网页中进行交互问答的,界面如下:
注意:该方式不支持查看历史对话记录。
其它内容
此部分内容对于初学者来说,没有必要阅读,所以并没有细致的去讲解,如果你只想会用,那么仅根据上面的教程去操作就可以了。
API 部署
首先需要安装额外的依赖 pip install fastapi uvicorn
,然后运行仓库中的 api.py:
python api.py
默认部署在本地的 8000 端口,通过 POST 方法进行调用:
curl -X POST "http://127.0.0.1:8000" \ -H 'Content-Type: application/json' \ -d '{"prompt": "你好", "history": []}'
得到的返回值为:
{ "response":"你好👋!我是人工智能助手 ChatGLM2-6B,很高兴见到你,欢迎问我任何问题。", "history":[["你好","你好👋!我是人工智能助手 ChatGLM2-6B,很高兴见到你,欢迎问我任何问题。"]], "status":200, "time":"2023-03-23 21:38:40" }
感谢 @hiyouga 实现了 OpenAI 格式的流式 API 部署,可以作为任意基于 ChatGPT 的应用的后端,比如 ChatGPT-Next-Web。可以通过运行仓库中的openai_api.py
进行部署:
python openai_api.py
进行 API 调用的示例代码为:
import openai if __name__ == "__main__": openai.api_base = "http://localhost:8000/v1" openai.api_key = "none" for chunk in openai.ChatCompletion.create( model="chatglm2-6b", messages=[ {"role": "user", "content": "你好"} ], stream=True ): if hasattr(chunk.choices[0].delta, "content"): print(chunk.choices[0].delta.content, end="", flush=True)
模型量化
默认情况下,模型以 FP16 精度加载,运行上述代码需要大概 13GB 显存。如果你的 GPU 显存有限,可以尝试以量化方式加载模型,使用方法如下:
# 按需修改,目前只支持 4/8 bit 量化 model = AutoModel.from_pretrained("THUDM/chatglm2-6b", trust_remote_code=True).quantize(8).cuda()
模型量化会带来一定的性能损失,经过测试,ChatGLM2-6B 在 4-bit 量化下仍然能够进行自然流畅的生成。
如果你的内存不足,可以直接加载量化后的模型:
model = AutoModel.from_pretrained("THUDM/chatglm2-6b-int4",trust_remote_code=True).cuda()
CPU 部署
如果你没有 GPU 硬件的话,也可以在 CPU 上进行推理,但是推理速度会更慢。使用方法如下(需要大概 32GB 内存)
model = AutoModel.from_pretrained("THUDM/chatglm2-6b", trust_remote_code=True).float()
如果你的内存不足的话,也可以使用量化后的模型
model = AutoModel.from_pretrained("THUDM/chatglm2-6b-int4",trust_remote_code=True).float()
在 cpu 上运行量化后的模型需要安装 gcc
与 openmp
。多数 Linux 发行版默认已安装。对于 Windows ,可在安装 TDM-GCC 时勾选 openmp
。 Windows 测试环境 gcc
版本为 TDM-GCC 10.3.0
, Linux 为 gcc 11.3.0
。
Mac 部署
对于搭载了 Apple Silicon 或者 AMD GPU 的 Mac,可以使用 MPS 后端来在 GPU 上运行 ChatGLM2-6B。需要参考 Apple 的 官方说明 安装 PyTorch-Nightly(正确的版本号应该是2.x.x.dev2023xxxx,而不是 2.x.x)。
目前在 MacOS 上只支持从本地加载模型。将代码中的模型加载改为从本地加载,并使用 mps 后端:
model = AutoModel.from_pretrained("your local path", trust_remote_code=True).to('mps')
加载半精度的 ChatGLM2-6B 模型需要大概 13GB 内存。内存较小的机器(比如 16GB 内存的 MacBook Pro),在空余内存不足的情况下会使用硬盘上的虚拟内存,导致推理速度严重变慢。 此时可以使用量化后的模型 chatglm2-6b-int4。因为 GPU 上量化的 kernel 是使用 CUDA 编写的,因此无法在 MacOS 上使用,只能使用 CPU 进行推理。 为了充分使用 CPU 并行,还需要单独安装 OpenMP。
多卡部署
如果你有多张 GPU,但是每张 GPU 的显存大小都不足以容纳完整的模型,那么可以将模型切分在多张GPU上。首先安装 accelerate: pip install accelerate
,然后通过如下方法加载模型:
from utils import load_model_on_gpus model = load_model_on_gpus("THUDM/chatglm2-6b", num_gpus=2)
即可将模型部署到两张 GPU 上进行推理。你可以将 num_gpus
改为你希望使用的 GPU 数。默认是均匀切分的,你也可以传入 device_map
参数来自己指定。
官方示例
相比于初代模型,ChatGLM2-6B 多个维度的能力都取得了提升,以下是一些对比示例。更多 ChatGLM2-6B 的可能,等待你来探索发现!
评测结果
我们选取了部分中英文典型数据集进行了评测,以下为 ChatGLM2-6B 模型在 MMLU (英文)、C-Eval(中文)、GSM8K(数学)、BBH(英文) 上的测评结果。
MMLU
Model | Average | STEM | Social Sciences | Humanities | Others |
---|---|---|---|---|---|
ChatGLM-6B | 40.63 | 33.89 | 44.84 | 39.02 | 45.71 |
ChatGLM2-6B (base) | 47.86 | 41.20 | 54.44 | 43.66 | 54.46 |
ChatGLM2-6B | 45.46 | 40.06 | 51.61 | 41.23 | 51.24 |
Chat 模型使用 zero-shot CoT (Chain-of-Thought) 的方法测试,Base 模型使用 few-shot answer-only 的方法测试
C-Eval
Model | Average | STEM | Social Sciences | Humanities | Others |
---|---|---|---|---|---|
ChatGLM-6B | 38.9 | 33.3 | 48.3 | 41.3 | 38.0 |
ChatGLM2-6B (base) | 51.7 | 48.6 | 60.5 | 51.3 | 49.8 |
ChatGLM2-6B | 50.1 | 46.4 | 60.4 | 50.6 | 46.9 |
Chat 模型使用 zero-shot CoT 的方法测试,Base 模型使用 few-shot answer only 的方法测试
GSM8K
Model | Accuracy | Accuracy (Chinese)* |
---|---|---|
ChatGLM-6B | 4.82 | 5.85 |
ChatGLM2-6B (base) | 32.37 | 28.95 |
ChatGLM2-6B | 28.05 | 20.45 |
所有模型均使用 few-shot CoT 的方法测试,CoT prompt 来自 http://arxiv.org/abs/2201.11903
- 我们使用翻译 API 翻译了 GSM8K 中的 500 道题目和 CoT prompt 并进行了人工校对
BBH
Model | Accuracy |
---|---|
ChatGLM-6B | 18.73 |
ChatGLM2-6B (base) | 33.68 |
ChatGLM2-6B | 30.00 |
所有模型均使用 few-shot CoT 的方法测试,CoT prompt 来自 https://github.com/suzgunmirac/BIG-Bench-Hard/tree/main/cot-prompts
推理性能
ChatGLM2-6B 使用了 Multi-Query Attention,提高了生成速度。生成 2000 个字符的平均速度对比如下
Model | 推理速度 (字符/秒) |
---|---|
ChatGLM-6B | 31.49 |
ChatGLM2-6B | 44.62 |
使用官方实现,batch size = 1,max length = 2048,bf16 精度,测试硬件为 A100-SXM4-80G,软件环境为 PyTorch 2.0.1
Multi-Query Attention 同时也降低了生成过程中 KV Cache 的显存占用,此外,ChatGLM2-6B 采用 Causal Mask 进行对话训练,连续对话时可复用前面轮次的 KV Cache,进一步优化了显存占用。因此,使用 6GB 显存的显卡进行 INT4 量化的推理时,初代的 ChatGLM-6B 模型最多能够生成 1119 个字符就会提示显存耗尽,而 ChatGLM2-6B 能够生成至少 8192 个字符。
量化等级 | 编码 2048 长度的最小显存 | 生成 8192 长度的最小显存 |
---|---|---|
FP16 / BF16 | 13.1 GB | 12.8 GB |
INT8 | 8.2 GB | 8.1 GB |
INT4 | 5.5 GB | 5.1 GB |
ChatGLM2-6B 利用了 PyTorch 2.0 引入的 torch.nn.functional.scaled_dot_product_attention 实现高效的 Attention 计算,如果 PyTorch 版本较低则会 fallback 到朴素的 Attention 实现,出现显存占用高于上表的情况。
我们也测试了量化对模型性能的影响。结果表明,量化对模型性能的影响在可接受范围内。
量化等级 | Accuracy (MMLU) | Accuracy (C-Eval dev) |
---|---|---|
BF16 | 45.47 | 53.57 |
INT4 | 43.13 | 50.30 |
常见问题
No module named ‘readline’
readline
模块是用于在命令行界面中提供交互式输入和历史记录功能的库。它通常是在 Unix/Linux 系统上可用,并且在某些 Windows 环境中可能不会被默认安装。
(D:\openai.wiki\ChatGLM2-6B\ENV) D:\openai.wiki\ChatGLM2-6B>pip install --upgrade charset_normalizer Requirement already satisfied: charset_normalizer in d:\openai.wiki\chatglm2-6b\env\lib\site-packages (2.0.4) Collecting charset_normalizer Using cached charset_normalizer-3.1.0-cp38-cp38-win_amd64.whl (96 kB) Installing collected packages: charset_normalizer Attempting uninstall: charset_normalizer Found existing installation: charset-normalizer 2.0.4 Uninstalling charset-normalizer-2.0.4: Successfully uninstalled charset-normalizer-2.0.4 Successfully installed charset_normalizer-3.1.0 (D:\openai.wiki\ChatGLM2-6B\ENV) D:\openai.wiki\ChatGLM2-6B>python cli_demo.py Traceback (most recent call last): File "cli_demo.py", line 5, in <module> import readline ModuleNotFoundError: No module named 'readline'
解决方法
执行如下代码,直接通过PIP安装即可。
pip install pyreadline
module ‘collections’ has no attribute ‘Callable’
根据错误消息,它指出在模块pyreadline
的modes/emacs.py
文件中使用了collections.Callable
,但是collections
模块中没有Callable
属性。
(D:\openai.wiki\ChatGLM2-6B\ENV) D:\openai.wiki\ChatGLM2-6B>python cli_demo.py Traceback (most recent call last): File "D:\openai.wiki\ChatGLM2-6B\cli_demo.py", line 5, in <module> import readline File "D:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\readline.py", line 34, in <module> rl = Readline() File "D:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\pyreadline\rlmain.py", line 422, in __init__ BaseReadline.__init__(self) File "D:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\pyreadline\rlmain.py", line 62, in __init__ mode.init_editing_mode(None) File "D:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\pyreadline\modes\emacs.py", line 633, in init_editing_mode self._bind_key('space', self.self_insert) File "D:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\pyreadline\modes\basemode.py", line 162, in _bind_key if not callable(func): File "D:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\pyreadline\py3k_compat.py", line 8, in callable return isinstance(x, collections.Callable) AttributeError: module 'collections' has no attribute 'Callable'
解决方法如下:
你的Python版本可能大于或等于3.10版本,因为 Python 3.10 版本将collections
等一些属性放到了collections.abc
子模块下。所以会出现collections’ has no attribute
的错误。
如果你非要用Python的3.10及以上版本,也可以考虑找到最后报错的文件,一般是报错出现的最后一个文件。更改collections.attr 为 collections.abc.attr,attr 为报错中没有的属性。
charset_normalizer
根据错误消息,这个问题似乎与 charset_normalizer
库相关。
charset_normalizer
是一个用于字符集规范化的Python库,它可能是依赖于 transformers
和 huggingface_hub
的其中之一。
Traceback (most recent call last): File "D:\openai.wiki\ChatGLM2-6B\web_demo.py", line 1, in <module> from transformers import AutoModel, AutoTokenizer File "D:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\transformers\__init__.py", line 26, in <module> from . import dependency_versions_check File "D:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\transformers\dependency_versions_check.py", line 17, in <module> from .utils.versions import require_version, require_version_core File "D:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\transformers\utils\__init__.py", line 30, in <module> from .generic import ( File "D:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\transformers\utils\generic.py", line 29, in <module> from .import_utils import is_flax_available, is_tf_available, is_torch_available, is_torch_fx_proxy File "D:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\transformers\utils\import_utils.py", line 33, in <module> from . import logging File "D:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\transformers\utils\logging.py", line 35, in <module> import huggingface_hub.utils as hf_hub_utils File "D:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\huggingface_hub\utils\__init__.py", line 32, in <module> from ._errors import ( File "D:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\huggingface_hub\utils\_errors.py", line 3, in <module> from requests import HTTPError, Response File "D:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\requests\__init__.py", line 45, in <module> from .exceptions import RequestsDependencyWarning File "D:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\requests\exceptions.py", line 9, in <module> from .compat import JSONDecodeError as CompatJSONDecodeError File "D:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\requests\compat.py", line 13, in <module> import charset_normalizer as chardet File "D:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\charset_normalizer\__init__.py", line 23, in <module> from charset_normalizer.api import from_fp, from_path, from_bytes, normalize File "D:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\charset_normalizer\api.py", line 10, in <module> from charset_normalizer.md import mess_ratio File "charset_normalizer\md.py", line 5, in <module> ImportError: cannot import name 'COMMON_SAFE_ASCII_CHARACTERS' from 'charset_normalizer.constant' (D:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\charset_normalizer\constant.py)
解决方式
确保您的环境中安装的 charset_normalizer
库是最新版本,您可以运行以下命令来更新库:
pip install --upgrade charset_normalizer
transformers_modules.THUDM/chatglm2-6b
该错误主要是因为模型路径的问题,并不是我们的模型路径有问题,而是源码中模型的加载路径遵从了Liunx的方式,但我们使用了Windows系统来搭建,这与Liunx的路径转义有区别,所以会看到如下报错内容:
(D:\openai.wiki\ChatGLM2-6B\ENV) D:\openai.wiki\ChatGLM2-6B>python web_demo.py Traceback (most recent call last): File "D:\openai.wiki\ChatGLM2-6B\web_demo.py", line 5, in <module> tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm2-6b", trust_remote_code=True) File "D:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\transformers\models\auto\tokenization_auto.py", line 676, in from_pretrained tokenizer_class = get_class_from_dynamic_module(class_ref, pretrained_model_name_or_path, **kwargs) File "D:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\transformers\dynamic_module_utils.py", line 443, in get_class_from_dynamic_module return get_class_in_module(class_name, final_module.replace(".py", "")) File "D:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\transformers\dynamic_module_utils.py", line 164, in get_class_in_module module = importlib.import_module(module_path) File "D:\openai.wiki\ChatGLM2-6B\ENV\lib\importlib\__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 992, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 1004, in _find_and_load_unlocked ModuleNotFoundError: No module named 'transformers_modules.THUDM/chatglm2-6b'
解决方式
将源码中只要包含THUDM/chatglm2-6b
的部分,全部修改成THUDM\chatglm2-6b
即可。
详细的内容请看本文的模型安装
部分,将会做出详细讲解。
开源协议
本仓库的代码依照 Apache-2.0 协议开源,ChatGLM2-6B 模型的权重的使用则需要遵循以下条款。ChatGLM2-6B 权重对学术研究完全开放,在获得官方的书面许可后,亦允许商业使用。如果您发现我们的开源模型对您的业务有用,我们欢迎您对下一代模型 ChatGLM3 研发的捐赠。申请商用许可与捐赠请联系 yiwen.xu@zhipuai.cn。
- 定义 “许可方”是指分发其软件的 ChatGLM2-6B 模型团队。 “软件”是指根据本许可提供的 ChatGLM2-6B 模型参数。
- 许可授予 根据本许可的条款和条件,许可方特此授予您非排他性、全球性、不可转让、不可再许可、可撤销、免版税的版权许可,仅用于您的非商业研究目的。 上述版权声明和本许可声明应包含在本软件的所有副本或重要部分中。
- 限制 您不得出于任何商业、军事或非法目的使用、复制、修改、合并、发布、分发、复制或创建本软件的全部或部分衍生作品。 您不得利用本软件从事任何危害国家安全和国家统一、危害社会公共利益、侵犯人身权益的行为。
- 免责声明 本软件“按原样”提供,不提供任何明示或暗示的保证,包括但不限于对适销性、特定用途的适用性和非侵权性的保证。 在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是在合同诉讼、侵权行为还是其他方面,由软件或软件的使用或其他交易引起、由软件引起或与之相关 软件。
- 责任限制 除适用法律禁止的范围外,在任何情况下且根据任何法律理论,无论是基于侵权行为、疏忽、合同、责任或其他原因,任何许可方均不对您承担任何直接、间接、特殊、偶然、示范性、 或间接损害,或任何其他商业损失,即使许可人已被告知此类损害的可能性。
- 争议解决 本许可受中华人民共和国法律管辖并按其解释。 因本许可引起的或与本许可有关的任何争议应提交北京市海淀区人民法院。 请注意,许可证可能会更新到更全面的版本。 有关许可和版权的任何问题,请通过 glm-130b@googlegroups.com 与我们联系。
总结
最近开源语言社区还是挺热闹的,估计要很不了多久,赶超ChatGPT只是时间问题罢了。Google也在发力,国内各大厂商也全部都盯紧了这块肥肉,不过国内各大厂商的模型几乎全部闭源,可见都是以恰饭为目的,基本不可能出现类似于Meta之类开源为主的形式出现,可能这就是最本质的差距吧。国内无论做什么,都是以能不能赚到钱为主,对于非即下利益,直接不考虑,别人赚钱了又眼馋。
清华大学这个模型真的很不错,在我看来已经赶超了相当多的其它厂商,而且进化的速度也非常可观,建议国内的大厂都多学学,怎么造福人类,而不是想方设法用来取代员工,压榨员工。
我按步骤弄完就出现这:
(D:\openai.wiki\ChatGLM2-6B-main\ENV) D:\openai.wiki\ChatGLM2-6B-main>python cli_demo.py
Traceback (most recent call last):
File “cli_demo.py”, line 4, in
from transformers import AutoTokenizer, AutoModel
ModuleNotFoundError: No module named ‘transformers’
这是什么情况,帮助一下,谢谢
@小陈 你这没找到transformers库,不应该啊,按道理来说是自动安装的。
执行这一步了吗?
pip install -r requirements.txt
@PhiltreX 感谢您的及时回复,我执行过了pip install -r requirements.txt但又报错,没找到要求的版本:
(D:\openai.wiki\ChatGLM2-6B-main\ENV) D:\openai.wiki\ChatGLM2-6B-main>pip install -r requirements.txt
Requirement already satisfied: protobuf in d:\openai.wiki\chatglm2-6b-main\env\lib\site-packages (from -r requirements.txt (line 1)) (4.23.3)
Collecting transformers==4.30.2 (from -r requirements.txt (line 2))
Using cached transformers-4.30.2-py3-none-any.whl (7.2 MB)
Collecting cpm_kernels (from -r requirements.txt (line 3))
Using cached cpm_kernels-1.0.11-py3-none-any.whl (416 kB)
Requirement already satisfied: torch>=2.0 in d:\openai.wiki\chatglm2-6b-main\env\lib\site-packages (from -r requirements.txt (line 4)) (2.0.1+cu118)
ERROR: Could not find a version that satisfies the requirement gradio (from versions: none)
ERROR: No matching distribution found for gradio
是CUDA版本的问题吗?CUDA查询可以安装12.2,我装的是11.8,跟你们一样。
@小陈 你这个问题,有点奇怪,好像不是transformers的问题了,现在是没有找到指定版本的gradio,手动执行一下这个试试
gradio==2.3.6
。@PhiltreX NameError: name ’round_up’ is not defined 怎么解决
@盆盆 这种是不应该出现的错误,把完整的错误贴出来吧,这样我看不出来。
@小陈 兄弟,你的这个问题解决了么?可以问问你是怎么解决的么?谢谢
怎么自己训练模型啊?有没有大佬给点入门的资料或链接
@小李 站长没有条件做微调这一块,毕竟是2080TI的显卡,唉。
没有gpu 怎么能跑啊
@里 CPU需要32GB内存,将模型加载那一行修改为
model = AutoModel.from_pretrained("THUDM\chatglm2-6b", trust_remote_code=True).float()
crud不可用 怎么解决不是英伟达的GPU
一次性部署成功确实比上一版本快很多
@落夜秦雨 是的,毕竟是二代嘛,一代更比一代强。
怎么感觉回复的时候特别慢呢?一秒一个字
@five 这个和电脑的硬件有关系,显卡越好,性能越快。
报错:NameError: name ’round_up’ is not defined 具体如下,请问要怎么解决好
Failed to load cpm_kernels:[WinError 267] 目录名称无效。: ‘C:\\Windows\\System32\\cmd.exe’
╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ D:\gpt\ChatGLM2-6B-main\.\api.py:54 in │
│ │
│ 51 │
│ 52 if __name__ == ‘__main__’: │
│ 53 │ tokenizer = AutoTokenizer.from_pretrained(“THUDM\chatglm2-6b”, trust_remote_code=Tru │
│ ❱ 54 │ model = AutoModel.from_pretrained(“THUDM\chatglm2-6b”, trust_remote_code=True).half( │
│ 55 │ model.eval() │
│ 56 │ uvicorn.run(app, host=’0.0.0.0′, port=8000, workers=1) │
│ 57 │
│ │
│ C:\Users/.cache\huggingface\modules\transformers_modules\chatglm2-6b\modeling_chatglm.py:1 │
│ 109 in quantize │
│ │
│ 1106 │ │ │
│ 1107 │ │ self.config.quantization_bit = bits │
│ 1108 │ │ │
│ ❱ 1109 │ │ self.transformer.encoder = quantize(self.transformer.encoder, bits, empty_init=e │
│ 1110 │ │ │ │ │ │ │ │ │ │ │ **kwargs) │
│ 1111 │ │ return self │
│ 1112 │
│ │
│ C:\Users/.cache\huggingface\modules\transformers_modules\chatglm2-6b\quantization.py:155 │
│ in quantize │
│ │
│ 152 def quantize(model, weight_bit_width, empty_init=False, device=None): │
│ 153 │ “””Replace fp16 linear with quantized linear””” │
│ 154 │ for layer in model.layers: │
│ ❱ 155 │ │ layer.self_attention.query_key_value = QuantizedLinear( │
│ 156 │ │ │ weight_bit_width=weight_bit_width, │
│ 157 │ │ │ weight=layer.self_attention.query_key_value.weight.to(torch.cuda.current_dev │
│ 158 │ │ │ bias=layer.self_attention.query_key_value.bias, │
│ │
│ C:\Users/.cache\huggingface\modules\transformers_modules\chatglm2-6b\quantization.py:139 │
│ in __init__ │
│ │
│ 136 │ │ │ self.weight_scale = weight.abs().max(dim=-1).values / ((2 ** (weight_bit_wid │
│ 137 │ │ │ self.weight = torch.round(weight / self.weight_scale[:, None]).to(torch.int8 │
│ 138 │ │ │ if weight_bit_width == 4: │
│ ❱ 139 │ │ │ │ self.weight = compress_int4_weight(self.weight) │
│ 140 │ │ │
│ 141 │ │ self.weight = Parameter(self.weight.to(device), requires_grad=False) │
│ 142 │ │ self.weight_scale = Parameter(self.weight_scale.to(device), requires_grad=False) │
│ │
│ C:\Users/.cache\huggingface\modules\transformers_modules\chatglm2-6b\quantization.py:76 in │
│ compress_int4_weight │
│ │
│ 73 │ │ stream = torch.cuda.current_stream() │
│ 74 │ │ │
│ 75 │ │ gridDim = (n, 1, 1) │
│ ❱ 76 │ │ blockDim = (min(round_up(m, 32), 1024), 1, 1) │
│ 77 │ │ │
│ 78 │ │ kernels.int4WeightCompression( │
│ 79 │ │ │ gridDim, │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
NameError: name ’round_up’ is not defined
@盆盆 我看到上当名称无效,NameError: name ’round_up’ is not defined错误表示在代码中使用了未定义的函数 round_up。
这种一般来说是绝对不可能出现的错误,建议重新部署一下吧,我没遇到过,还真不清楚。
NameError: name ’round_up’ is not defined 如何解决
73 │ │ stream = torch.cuda.current_stream() │
│ 74 │ │ │
│ 75 │ │ gridDim = (n, 1, 1) │
│ ❱ 76 │ │ blockDim = (min(round_up(m, 32), 1024), 1, 1) │
│ 77 │ │ │
│ 78 │ │ kernels.int4WeightCompression( │
│ 79 │ │ │ gridDim,
我在执行pip install -r requirements.txt下载项目依赖库的时候总是会在下载torch的时候出问题,出现一长串的错误代码:
ERROR: Exception:
Traceback (most recent call last):
File “D:\chatGLM\ChatGLM2-6B\ENV\lib\site-packages\pip\_vendor\urllib3\response.py”, line 438, in _error_catcher
yield
File “D:\chatGLM\ChatGLM2-6B\ENV\lib\site-packages\pip\_vendor\urllib3\response.py”, line 561, in read
data = self._fp_read(amt) if not fp_closed else b””
File “D:\chatGLM\ChatGLM2-6B\ENV\lib\site-packages\pip\_vendor\urllib3\response.py”, line 527, in _fp_read
return self._fp.read(amt) if amt is not None else self._fp.read()
File “D:\chatGLM\ChatGLM2-6B\ENV\lib\site-packages\pip\_vendor\cachecontrol\filewrapper.py”, line 90, in read
data = self.__fp.read(amt)
File “D:\chatGLM\ChatGLM2-6B\ENV\lib\http\client.py”, line 466, in read
s = self.fp.read(amt)
File “D:\chatGLM\ChatGLM2-6B\ENV\lib\socket.py”, line 705, in readinto
return self._sock.recv_into(b)
File “D:\chatGLM\ChatGLM2-6B\ENV\lib\ssl.py”, line 1274, in recv_into
return self.read(nbytes, buffer)
File “D:\chatGLM\ChatGLM2-6B\ENV\lib\ssl.py”, line 1130, in read
return self._sslobj.read(len, buffer)
TimeoutError: The read operation timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File “D:\chatGLM\ChatGLM2-6B\ENV\lib\site-packages\pip\_internal\cli\base_command.py”, line 169, in exc_logging_wrapper
status = run_func(*args)
File “D:\chatGLM\ChatGLM2-6B\ENV\lib\site-packages\pip\_internal\cli\req_command.py”, line 248, in wrapper
return func(self, options, args)
File “D:\chatGLM\ChatGLM2-6B\ENV\lib\site-packages\pip\_internal\commands\install.py”, line 377, in run
requirement_set = resolver.resolve(
File “D:\chatGLM\ChatGLM2-6B\ENV\lib\site-packages\pip\_internal\resolution\resolvelib\resolver.py”, line 92, in resolve
result = self._result = resolver.resolve(
File “D:\chatGLM\ChatGLM2-6B\ENV\lib\site-packages\pip\_vendor\resolvelib\resolvers.py”, line 546, in resolve
state = resolution.resolve(requirements, max_rounds=max_rounds)
File “D:\chatGLM\ChatGLM2-6B\ENV\lib\site-packages\pip\_vendor\resolvelib\resolvers.py”, line 397, in resolve
self._add_to_criteria(self.state.criteria, r, parent=None)
File “D:\chatGLM\ChatGLM2-6B\ENV\lib\site-packages\pip\_vendor\resolvelib\resolvers.py”, line 173, in _add_to_criteria
if not criterion.candidates:
File “D:\chatGLM\ChatGLM2-6B\ENV\lib\site-packages\pip\_vendor\resolvelib\structs.py”, line 156, in __bool__
return bool(self._sequence)
File “D:\chatGLM\ChatGLM2-6B\ENV\lib\site-packages\pip\_internal\resolution\resolvelib\found_candidates.py”, line 155, in __bool__
return any(self)
File “D:\chatGLM\ChatGLM2-6B\ENV\lib\site-packages\pip\_internal\resolution\resolvelib\found_candidates.py”, line 143, in
return (c for c in iterator if id(c) not in self._incompatible_ids)
File “D:\chatGLM\ChatGLM2-6B\ENV\lib\site-packages\pip\_internal\resolution\resolvelib\found_candidates.py”, line 47, in _iter_built
candidate = func()
File “D:\chatGLM\ChatGLM2-6B\ENV\lib\site-packages\pip\_internal\resolution\resolvelib\factory.py”, line 206, in _make_candidate_from_link
self._link_candidate_cache[link] = LinkCandidate(
File “D:\chatGLM\ChatGLM2-6B\ENV\lib\site-packages\pip\_internal\resolution\resolvelib\candidates.py”, line 293, in __init__
super().__init__(
File “D:\chatGLM\ChatGLM2-6B\ENV\lib\site-packages\pip\_internal\resolution\resolvelib\candidates.py”, line 156, in __init__
self.dist = self._prepare()
File “D:\chatGLM\ChatGLM2-6B\ENV\lib\site-packages\pip\_internal\resolution\resolvelib\candidates.py”, line 225, in _prepare
dist = self._prepare_distribution()
File “D:\chatGLM\ChatGLM2-6B\ENV\lib\site-packages\pip\_internal\resolution\resolvelib\candidates.py”, line 304, in _prepare_distribution
return preparer.prepare_linked_requirement(self._ireq, parallel_builds=True)
File “D:\chatGLM\ChatGLM2-6B\ENV\lib\site-packages\pip\_internal\operations\prepare.py”, line 516, in prepare_linked_requirement
return self._prepare_linked_requirement(req, parallel_builds)
File “D:\chatGLM\ChatGLM2-6B\ENV\lib\site-packages\pip\_internal\operations\prepare.py”, line 587, in _prepare_linked_requirement
local_file = unpack_url(
File “D:\chatGLM\ChatGLM2-6B\ENV\lib\site-packages\pip\_internal\operations\prepare.py”, line 166, in unpack_url
file = get_http_url(
File “D:\chatGLM\ChatGLM2-6B\ENV\lib\site-packages\pip\_internal\operations\prepare.py”, line 107, in get_http_url
from_path, content_type = download(link, temp_dir.path)
File “D:\chatGLM\ChatGLM2-6B\ENV\lib\site-packages\pip\_internal\network\download.py”, line 147, in __call__
for chunk in chunks:
File “D:\chatGLM\ChatGLM2-6B\ENV\lib\site-packages\pip\_internal\cli\progress_bars.py”, line 53, in _rich_progress_bar
for chunk in iterable:
File “D:\chatGLM\ChatGLM2-6B\ENV\lib\site-packages\pip\_internal\network\utils.py”, line 63, in response_chunks
for chunk in response.raw.stream(
File “D:\chatGLM\ChatGLM2-6B\ENV\lib\site-packages\pip\_vendor\urllib3\response.py”, line 622, in stream
data = self.read(amt=amt, decode_content=decode_content)
File “D:\chatGLM\ChatGLM2-6B\ENV\lib\site-packages\pip\_vendor\urllib3\response.py”, line 560, in read
with self._error_catcher():
File “D:\chatGLM\ChatGLM2-6B\ENV\lib\contextlib.py”, line 153, in __exit__
self.gen.throw(typ, value, traceback)
File “D:\chatGLM\ChatGLM2-6B\ENV\lib\site-packages\pip\_vendor\urllib3\response.py”, line 443, in _error_catcher
raise ReadTimeoutError(self._pool, None, “Read timed out.”)
pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host=’files.pythonhosted.org’, port=443): Read timed out.
我也不知道是什么情况,能帮我一下吗?谢谢
@夏天的一片叶子 HTTPSConnectionPool(host=’files.pythonhosted.org’, port=443): Read timed out.
这种报错一般是网络问题,开魔法了吗?
请问CPU的int4量化模型在哪找到呢
Traceback (most recent call last):
File “E:\pythonStydy\code\chain_glm\web_demo.py”, line 6, in
tokenizer = AutoTokenizer.from_pretrained(“./glm”, trust_remote_code=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “E:\pythonStydy\home\chain_glm\Lib\site-packages\transformers\models\auto\tokenization_auto.py”, line 676, in from_pretrained
tokenizer_class = get_class_from_dynamic_module(class_ref, pretrained_model_name_or_path, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “E:\pythonStydy\home\chain_glm\Lib\site-packages\transformers\dynamic_module_utils.py”, line 443, in get_class_from_dynamic_module
return get_class_in_module(class_name, final_module.replace(“.py”, “”))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “E:\pythonStydy\home\chain_glm\Lib\site-packages\transformers\dynamic_module_utils.py”, line 164, in get_class_in_module
module = importlib.import_module(module_path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “C:\Users\shhx\AppData\Local\Programs\Python\Python311\Lib\importlib\__init__.py”, line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “”, line 1206, in _gcd_import
File “”, line 1178, in _find_and_load
File “”, line 1128, in _find_and_load_unlocked
File “”, line 241, in _call_with_frames_removed
File “”, line 1206, in _gcd_import
File “”, line 1178, in _find_and_load
File “”, line 1128, in _find_and_load_unlocked
File “”, line 241, in _call_with_frames_removed
File “”, line 1206, in _gcd_import
File “”, line 1178, in _find_and_load
File “”, line 1142, in _find_and_load_unlocked
ModuleNotFoundError: No module named ‘transformers_modules.’
我已经pip install -r requirements.txt,而且编译器已经识别我看源码也可以看到,为什么还是说找不到,能帮帮忙吗
[{
“resource”: “/d:/openai.wiki/ChatGLM2-6B/web_demo.py”,
“owner”: “_generated_diagnostic_collection_name_#0”,
“code”: {
“value”: “reportMissingImports”,
“target”: {
“$mid”: 1,
“path”: “/microsoft/pyright/blob/main/docs/configuration.md”,
“scheme”: “https”,
“authority”: “github.com”,
“fragment”: “reportMissingImports”
}
},
“severity”: 4,
“message”: “Import \”gradio\” could not be resolved”,
“source”: “Pylance”,
“startLineNumber”: 2,
“startColumn”: 8,
“endLineNumber”: 2,
“endColumn”: 14
}]
[{
“resource”: “/d:/openai.wiki/ChatGLM2-6B/web_demo.py”,
“owner”: “_generated_diagnostic_collection_name_#0”,
“code”: {
“value”: “reportMissingImports”,
“target”: {
“$mid”: 1,
“path”: “/microsoft/pyright/blob/main/docs/configuration.md”,
“scheme”: “https”,
“authority”: “github.com”,
“fragment”: “reportMissingImports”
}
},
“severity”: 4,
“message”: “Import \”mdtex2html\” could not be resolved”,
“source”: “Pylance”,
“startLineNumber”: 3,
“startColumn”: 8,
“endLineNumber”: 3,
“endColumn”: 18
}]
出现如下报错
@最喜欢睡觉 (D:\openai.wiki\ChatGLM2-6B\ENV) D:\openai.wiki\ChatGLM2-6B>python cli_demo.py
You are using a model of type chatglm to instantiate a model of type . This is not supported for all configurations of models and can yield errors.
Traceback (most recent call last):
File “cli_demo.py”, line 8, in
model = AutoModel.from_pretrained(“THUDM\chatglm2-6b”, trust_remote_code=True).cuda()
File “D:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\transformers\models\auto\auto_factory.py”, line 475, in from_pretrained
model_class = get_class_from_dynamic_module(
File “D:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\transformers\dynamic_module_utils.py”, line 443, in get_class_from_dynamic_module
return get_class_in_module(class_name, final_module.replace(“.py”, “”))
File “D:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\transformers\dynamic_module_utils.py”, line 164, in get_class_in_module
module = importlib.import_module(module_path)
File “D:\openai.wiki\ChatGLM2-6B\ENV\lib\importlib\__init__.py”, line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File “”, line 1014, in _gcd_import
File “”, line 991, in _find_and_load
File “”, line 975, in _find_and_load_unlocked
File “”, line 671, in _load_unlocked
File “”, line 843, in exec_module
File “”, line 219, in _call_with_frames_removed
File “C:\Users\胡睡觉/.cache\huggingface\modules\transformers_modules\chatglm2-6b\modeling_chatglm.py”, line 21, in
from transformers.modeling_utils import PreTrainedModel
File “D:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\transformers\modeling_utils.py”, line 85, in
from accelerate import __version__ as accelerate_version
File “D:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\accelerate\__init__.py”, line 3, in
from .accelerator import Accelerator
File “D:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\accelerate\accelerator.py”, line 40, in
from .tracking import LOGGER_TYPE_TO_CLASS, GeneralTracker, filter_trackers
File “D:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\accelerate\tracking.py”, line 42, in
from torch.utils import tensorboard
File “D:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\torch\utils\tensorboard\__init__.py”, line 12, in
from .writer import FileWriter, SummaryWriter # noqa: F401
File “D:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\torch\utils\tensorboard\writer.py”, line 9, in
from tensorboard.compat.proto.event_pb2 import SessionLog
File “C:\Users\胡睡觉\AppData\Roaming\Python\Python38\site-packages\tensorboard\compat\proto\event_pb2.py”, line 17, in
from tensorboard.compat.proto import summary_pb2 as tensorboard_dot_compat_dot_proto_dot_summary__pb2
File “C:\Users\胡睡觉\AppData\Roaming\Python\Python38\site-packages\tensorboard\compat\proto\summary_pb2.py”, line 17, in
from tensorboard.compat.proto import tensor_pb2 as tensorboard_dot_compat_dot_proto_dot_tensor__pb2
File “C:\Users\胡睡觉\AppData\Roaming\Python\Python38\site-packages\tensorboard\compat\proto\tensor_pb2.py”, line 16, in
from tensorboard.compat.proto import resource_handle_pb2 as tensorboard_dot_compat_dot_proto_dot_resource__handle__pb2
File “C:\Users\胡睡觉\AppData\Roaming\Python\Python38\site-packages\tensorboard\compat\proto\resource_handle_pb2.py”, line 16, in
from tensorboard.compat.proto import tensor_shape_pb2 as tensorboard_dot_compat_dot_proto_dot_tensor__shape__pb2
File “C:\Users\胡睡觉\AppData\Roaming\Python\Python38\site-packages\tensorboard\compat\proto\tensor_shape_pb2.py”, line 36, in
_descriptor.FieldDescriptor(
File “D:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\google\protobuf\descriptor.py”, line 561, in __new__
_message.Message._CheckCalledFromGeneratedFile()
TypeError: Descriptors cannot not be created directly.
If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0.
If you cannot immediately regenerate your protos, some other possible workarounds are:
1. Downgrade the protobuf package to 3.20.x or lower.
2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower).
More information: https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates
一切按步骤运行就这样了,站长帮忙看看呗
@最喜欢睡觉 可能是因为protobuf版本不正确,重新部署一下,一定要把配置文件中需要删除的版本号删除。
@最喜欢睡觉 这些错误提示是由于缺少gradio和mdtex2html这两个模块导致的。需要安装这些模块以解决报错。
可以使用以下命令通过pip安装这些模块:
pip install gradio
pip install mdtex2html
model不是内部或外部命令怎么解决,电脑环境变量都是好的
@flydog 这可能是模型路径没有配置好的问题,把错误信息多贴一些出来。
@PhiltreX ╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ D:\openai.wiki\ChatGLM2-6B\web_demo.py:7 in │
│ │
│ 4 from utils import load_model_on_gpus │
│ 5 │
│ 6 tokenizer = AutoTokenizer.from_pretrained(“THUDM\chatglm2-6b”, trust_remote_code=True) │
│ ❱ 7 model = AutoModel.from_pretrained(“THUDM\chatglm2-6b”, trust_remote_code=True).cuda() │
│ 8 # 多显卡支持,使用下面两行代替上面一行,将num_gpus改为你实际的显卡数量 │
│ 9 # from utils import load_model_on_gpus │
│ 10 # model = load_model_on_gpus(“THUDM/chatglm2-6b”, num_gpus=2) │
│ │
│ D:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\torch\nn\modules\module.py:905 in cuda │
│ │
│ 902 │ │ Returns: │
│ 903 │ │ │ Module: self │
│ 904 │ │ “”” │
│ ❱ 905 │ │ return self._apply(lambda t: t.cuda(device)) │
│ 906 │ │
│ 907 │ def ipu(self: T, device: Optional[Union[int, device]] = None) -> T: │
│ 908 │ │ r”””Moves all model parameters and buffers to the IPU. │
│ │
│ D:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\torch\nn\modules\module.py:797 in _apply │
│ │
│ 794 │ │
│ 795 │ def _apply(self, fn): │
│ 796 │ │ for module in self.children(): │
│ ❱ 797 │ │ │ module._apply(fn) │
│ 798 │ │ │
│ 799 │ │ def compute_should_use_set_data(tensor, tensor_applied): │
│ 800 │ │ │ if torch._has_compatible_shallow_copy_type(tensor, tensor_applied): │
│ │
│ D:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\torch\nn\modules\module.py:797 in _apply │
│ │
│ 794 │ │
│ 795 │ def _apply(self, fn): │
│ 796 │ │ for module in self.children(): │
│ ❱ 797 │ │ │ module._apply(fn) │
│ 798 │ │ │
│ 799 │ │ def compute_should_use_set_data(tensor, tensor_applied): │
│ 800 │ │ │ if torch._has_compatible_shallow_copy_type(tensor, tensor_applied): │
│ │
│ D:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\torch\nn\modules\module.py:797 in _apply │
│ │
│ 794 │ │
│ 795 │ def _apply(self, fn): │
│ 796 │ │ for module in self.children(): │
│ ❱ 797 │ │ │ module._apply(fn) │
│ 798 │ │ │
│ 799 │ │ def compute_should_use_set_data(tensor, tensor_applied): │
│ 800 │ │ │ if torch._has_compatible_shallow_copy_type(tensor, tensor_applied): │
│ │
│ D:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\torch\nn\modules\module.py:820 in _apply │
│ │
│ 817 │ │ │ # track autograd history of `param_applied`, so we have to use │
│ 818 │ │ │ # `with torch.no_grad():` │
│ 819 │ │ │ with torch.no_grad(): │
│ ❱ 820 │ │ │ │ param_applied = fn(param) │
│ 821 │ │ │ should_use_set_data = compute_should_use_set_data(param, param_applied) │
│ 822 │ │ │ if should_use_set_data: │
│ 823 │ │ │ │ param.data = param_applied │
│ │
│ D:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\torch\nn\modules\module.py:905 in │
│ │
│ 902 │ │ Returns: │
│ 903 │ │ │ Module: self │
│ 904 │ │ “”” │
│ ❱ 905 │ │ return self._apply(lambda t: t.cuda(device)) │
│ 906 │ │
│ 907 │ def ipu(self: T, device: Optional[Union[int, device]] = None) -> T: │
│ 908 │ │ r”””Moves all model parameters and buffers to the IPU. │
│ │
│ D:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\torch\cuda\__init__.py:239 in _lazy_init │
│ │
│ 236 │ │ │ │ “Cannot re-initialize CUDA in forked subprocess. To use CUDA with ” │
│ 237 │ │ │ │ “multiprocessing, you must use the ‘spawn’ start method”) │
│ 238 │ │ if not hasattr(torch._C, ‘_cuda_getDeviceCount’): │
│ ❱ 239 │ │ │ raise AssertionError(“Torch not compiled with CUDA enabled”) │
│ 240 │ │ if _cudart is None: │
│ 241 │ │ │ raise AssertionError( │
│ 242 │ │ │ │ “libcudart functions unavailable. It looks like you have a broken build? │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
AssertionError: Torch not compiled with CUDA enabled
碰到下面这种情况怎么办?
(D:\openai.wiki\ChatGLM2-6B\ENV) D:\openai.wiki\ChatGLM2-6B>python web_demo.py
Traceback (most recent call last):
File “web_demo.py”, line 5, in
tokenizer = AutoTokenizer.from_pretrained(“THUDM\chatglm2-6b”, trust_remote_code=True)
File “D:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\transformers\models\auto\tokenization_auto.py”, line 676, in from_pretrained
tokenizer_class = get_class_from_dynamic_module(class_ref, pretrained_model_name_or_path, **kwargs)
File “D:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\transformers\dynamic_module_utils.py”, line 431, in get_class_from_dynamic_module
final_module = get_cached_module_file(
File “D:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\transformers\dynamic_module_utils.py”, line 268, in get_cached_module_file
modules_needed = check_imports(resolved_module_file)
File “D:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\transformers\dynamic_module_utils.py”, line 146, in check_imports
importlib.import_module(imp)
File “D:\openai.wiki\ChatGLM2-6B\ENV\lib\importlib\__init__.py”, line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File “”, line 1014, in _gcd_import
File “”, line 991, in _find_and_load
File “”, line 975, in _find_and_load_unlocked
File “”, line 671, in _load_unlocked
File “”, line 843, in exec_module
File “”, line 219, in _call_with_frames_removed
File “D:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\torch\__init__.py”, line 122, in
raise err
OSError: [WinError 127] 找不到指定的程序。 Error loading “D:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\torch\lib\caffe2_detectron_ops_gpu.dll” or one of its dependencies.
@墨俊 torch没安装对,按教程重头安装,不要自定义torch版本。
torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 214.00 MiB (GPU 0; 4.00 GiB total capacity; 3.23 GiB already allocated; 68.43 MiB free; 3.23 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF
这是啥情况
@阿斯蒂芬 用这个加载https://openai.wiki/text-generation-webui.html
站长,chatGLM2-6B在TEXTGEN正常加载,但每次回答除问的问题外,自动生成其他一堆话,有点自言自语的,是哪里设置错了吗?
@NSG 或许你可以尝试更改为Chat模式,然后在Chat settings的Instruction template中,将预设调整为ChatGLM模板试一下。
站长,我在运行web_demo.py时出现了一下报错:
Traceback (most recent call last):
File “web_demo.py”, line 6, in
tokenizer = AutoTokenizer.from_pretrained(“THUDM\chatglm2-6b”, trust_remote_code=True)
File “E:\ChatGLM\ChatGLM2-6B\ENV\lib\site-packages\transformers\models\auto\tokenization_auto.py”, line 643, in from_pretrained
tokenizer_config = get_tokenizer_config(pretrained_model_name_or_path, **kwargs)
File “E:\ChatGLM\ChatGLM2-6B\ENV\lib\site-packages\transformers\models\auto\tokenization_auto.py”, line 487, in get_tokenizer_config
resolved_config_file = cached_file(
File “E:\ChatGLM\ChatGLM2-6B\ENV\lib\site-packages\transformers\utils\hub.py”, line 417, in cached_file
resolved_file = hf_hub_download(
File “E:\ChatGLM\ChatGLM2-6B\ENV\lib\site-packages\huggingface_hub\utils\_validators.py”, line 110, in _inner_fn
validate_repo_id(arg_value)
File “E:\ChatGLM\ChatGLM2-6B\ENV\lib\site-packages\huggingface_hub\utils\_validators.py”, line 164, in validate_repo_id
raise HFValidationError(
huggingface_hub.utils._validators.HFValidationError: Repo id must use alphanumeric chars or ‘-‘, ‘_’, ‘.’, ‘–‘ and ‘..’ are forbidden, ‘-‘ and ‘.’ cannot start or end the name, max length is 96: ‘THUDM\chatglm2-6b’.
请问要怎么解决
@㊗ 检查一下文件名称输入
站长好,我想尝试多卡部署,我的cli_demo.py代码如下
import os
import platform
from transformers import AutoTokenizer, AutoModel
from chatglm_parallel import load_model_on_gpus
model = load_model_on_gpus(“THUDM\chatglm2-6b”, num_gpus=2)
tokenizer = AutoTokenizer.from_pretrained(“THUDM\chatglm2-6b”, trust_remote_code=True)
os_name = platform.system()
clear_command = ‘cls’ if os_name == ‘Windows’ else ‘clear’
报错信息
ValueError: transformer.embedding.word_embeddings.weight doesn’t have any device set.
求问解决方案,感谢
大佬大佬,运行python web_demo.py后就这样报错了怎么办:
(D:\ChatGLM\ChatGLM2-6B\ENV) D:\ChatGLM\ChatGLM2-6B>python web_demo.py
Loading checkpoint shards: 100%|█████████████████████████████████████████████████████████| 7/7 [00:13<00:00, 1.99s/it]
Traceback (most recent call last):
File "web_demo.py", line 6, in
model = AutoModel.from_pretrained(“THUDM\chatglm2-6b”, trust_remote_code=True).cuda()
File “D:\ChatGLM\ChatGLM2-6B\ENV\lib\site-packages\torch\nn\modules\module.py”, line 918, in cuda
return self._apply(lambda t: t.cuda(device))
File “D:\ChatGLM\ChatGLM2-6B\ENV\lib\site-packages\torch\nn\modules\module.py”, line 810, in _apply
module._apply(fn)
File “D:\ChatGLM\ChatGLM2-6B\ENV\lib\site-packages\torch\nn\modules\module.py”, line 810, in _apply
module._apply(fn)
File “D:\ChatGLM\ChatGLM2-6B\ENV\lib\site-packages\torch\nn\modules\module.py”, line 810, in _apply
module._apply(fn)
File “D:\ChatGLM\ChatGLM2-6B\ENV\lib\site-packages\torch\nn\modules\module.py”, line 833, in _apply
param_applied = fn(param)
File “D:\ChatGLM\ChatGLM2-6B\ENV\lib\site-packages\torch\nn\modules\module.py”, line 918, in
return self._apply(lambda t: t.cuda(device))
File “D:\ChatGLM\ChatGLM2-6B\ENV\lib\site-packages\torch\cuda\__init__.py”, line 289, in _lazy_init
raise AssertionError(“Torch not compiled with CUDA enabled”)
AssertionError: Torch not compiled with CUDA enabled
@MurasakiAbysm 我也是这样,以为是pytorch问题重新安装了一次结果照旧
@MurasakiAbysm 我也是这样请问解决了吗
python web_demo.py打开网址后,提出问题为什么没显示回答呢?
chatglm3-6b版本出来了更新一下
您好,我想请问一下怎么使用LoRA微调这个模型?
Traceback (most recent call last):
File “D:\openai.wiki\ChatGLM2-6B\cli_demo.py”, line 9, in
model = AutoModel.from_pretrained(“THUDM\chatglm2-6b”, trust_remote_code=True).cuda()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “D:\openai.wiki\ChatGLM2-6B\ENV\Lib\site-packages\torch\nn\modules\module.py”, line 918, in cuda
return self._apply(lambda t: t.cuda(device))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “D:\openai.wiki\ChatGLM2-6B\ENV\Lib\site-packages\torch\nn\modules\module.py”, line 810, in _apply
module._apply(fn)
File “D:\openai.wiki\ChatGLM2-6B\ENV\Lib\site-packages\torch\nn\modules\module.py”, line 810, in _apply
module._apply(fn)
File “D:\openai.wiki\ChatGLM2-6B\ENV\Lib\site-packages\torch\nn\modules\module.py”, line 810, in _apply
module._apply(fn)
File “D:\openai.wiki\ChatGLM2-6B\ENV\Lib\site-packages\torch\nn\modules\module.py”, line 833, in _apply
param_applied = fn(param)
^^^^^^^^^
File “D:\openai.wiki\ChatGLM2-6B\ENV\Lib\site-packages\torch\nn\modules\module.py”, line 918, in
return self._apply(lambda t: t.cuda(device))
^^^^^^^^^^^^^^
File “D:\openai.wiki\ChatGLM2-6B\ENV\Lib\site-packages\torch\cuda\__init__.py”, line 289, in _lazy_init
raise AssertionError(“Torch not compiled with CUDA enabled”)
AssertionError: Torch not compiled with CUDA enabled
您好,想问一下我这个是什么情况,该怎么样解决呢?非常感谢
Traceback (most recent call last):
File “D:\openai.wiki\ChatGLM2-6B\cli_demo.py”, line 9, in
model = AutoModel.from_pretrained(“THUDM\chatglm2-6b”, trust_remote_code=True).cuda()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “D:\openai.wiki\ChatGLM2-6B\ENV\Lib\site-packages\torch\nn\modules\module.py”, line 918, in cuda
return self._apply(lambda t: t.cuda(device))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “D:\openai.wiki\ChatGLM2-6B\ENV\Lib\site-packages\torch\nn\modules\module.py”, line 810, in _apply
module._apply(fn)
File “D:\openai.wiki\ChatGLM2-6B\ENV\Lib\site-packages\torch\nn\modules\module.py”, line 810, in _apply
module._apply(fn)
File “D:\openai.wiki\ChatGLM2-6B\ENV\Lib\site-packages\torch\nn\modules\module.py”, line 810, in _apply
module._apply(fn)
File “D:\openai.wiki\ChatGLM2-6B\ENV\Lib\site-packages\torch\nn\modules\module.py”, line 833, in _apply
param_applied = fn(param)
^^^^^^^^^
File “D:\openai.wiki\ChatGLM2-6B\ENV\Lib\site-packages\torch\nn\modules\module.py”, line 918, in
return self._apply(lambda t: t.cuda(device))
^^^^^^^^^^^^^^
File “D:\openai.wiki\ChatGLM2-6B\ENV\Lib\site-packages\torch\cuda\__init__.py”, line 289, in _lazy_init
raise AssertionError(“Torch not compiled with CUDA enabled”)
AssertionError: Torch not compiled with CUDA enabled
您好,请问一下我这个是什么情况,应该怎样解决呀?非常感谢
(anyio==3.7.1)
运行python api.py 后报错:
Traceback (most recent call last):
File “C:\Softwares\ChatGLM2-6B\api.py”, line 1, in
from fastapi import FastAPI, Request
File “E:\Python311\Lib\site-packages\fastapi\__init__.py”, line 7, in
from .applications import FastAPI as FastAPI
File “E:\Python311\Lib\site-packages\fastapi\applications.py”, line 16, in
from fastapi import routing
File “E:\Python311\Lib\site-packages\fastapi\routing.py”, line 33, in
from fastapi.dependencies.utils import (
File “E:\Python311\Lib\site-packages\fastapi\dependencies\utils.py”, line 48, in
from fastapi.concurrency import (
File “E:\Python311\Lib\site-packages\fastapi\concurrency.py”, line 6, in
from anyio import CapacityLimiter
ImportError: cannot import name ‘CapacityLimiter’ from ‘anyio’ (unknown location)
(D:\openai.wiki\ChatGLM2-6B\ENV) D:\openai.wiki\ChatGLM2-6B>python web_demo.py
You are using a model of type chatglm to instantiate a model of type . This is not supported for all configurations of models and can yield errors.请帮忙看一下为什么报错呀
你好,想问一下配置到最后都没有问题,但是最后运行,运行不出来
@nim 能不能帮忙看看?
信息如下:
(D:\openai.wiki\ChatGLM2-6B\ENV) D:\openai.wiki\ChatGLM2-6B>python cli_demo.py
(D:\openai.wiki\ChatGLM2-6B\ENV) D:\openai.wiki\ChatGLM2-6B>python cli_demo.py
除了装在c盘,其他都是按教程来的,请问为什么最后运行不了呢?
(base) C:\Users\JZH>cd /d C:\openai.wiki\ChatGLM2-6B
(base) C:\openai.wiki\ChatGLM2-6B>conda activate C:\openai.wiki\ChatGLM2-6B\ENV
(C:\openai.wiki\ChatGLM2-6B\ENV) C:\openai.wiki\ChatGLM2-6B>python cli_demo.py
Traceback (most recent call last):
File “C:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\requests\compat.py”, line 11, in
import chardet
ModuleNotFoundError: No module named ‘chardet’
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File “cli_demo.py”, line 4, in
from transformers import AutoTokenizer, AutoModel
File “C:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\transformers\__init__.py”, line 26, in
from . import dependency_versions_check
File “C:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\transformers\dependency_versions_check.py”, line 17, in
from .utils.versions import require_version, require_version_core
File “C:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\transformers\utils\__init__.py”, line 30, in
from .generic import (
File “C:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\transformers\utils\generic.py”, line 29, in
from .import_utils import is_flax_available, is_tf_available, is_torch_available, is_torch_fx_proxy
File “C:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\transformers\utils\import_utils.py”, line 33, in
from . import logging
File “C:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\transformers\utils\logging.py”, line 35, in
import huggingface_hub.utils as hf_hub_utils
File “C:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\huggingface_hub\utils\__init__.py”, line 19, in
from huggingface_hub.errors import (
File “C:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\huggingface_hub\errors.py”, line 3, in
from requests import HTTPError
File “C:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\requests\__init__.py”, line 45, in
from .exceptions import RequestsDependencyWarning
File “C:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\requests\exceptions.py”, line 9, in
from .compat import JSONDecodeError as CompatJSONDecodeError
File “C:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\requests\compat.py”, line 13, in
import charset_normalizer as chardet
File “C:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\charset_normalizer\__init__.py”, line 23, in
from charset_normalizer.api import from_fp, from_path, from_bytes, normalize
File “C:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\charset_normalizer\api.py”, line 10, in
from charset_normalizer.md import mess_ratio
File “charset_normalizer\md.py”, line 5, in
ImportError: cannot import name ‘COMMON_SAFE_ASCII_CHARACTERS’ from ‘charset_normalizer.constant’ (C:\openai.wiki\ChatGLM2-6B\ENV\lib\site-packages\charset_normalizer\constant.py)