ChatGLM2-6B|开源本地化语言模型

ChatGLM2-6B是清华开源语言模型的最新升级版本、支持中英双语的对话语言模型,速度较上一代有较大提升。它使用了GLM架构和量化技术,可在消费级显卡上进行本地部署,效果堪比ChatGPT。

ChatGLM2-6B|开源本地化语言模型
ChatGLM2-6B-Demo

清华大学ChatGLM2-6B开源本地化语言模型升级版

ChatGLM2-6B 是开源中英双语对话模型 ChatGLM-6B 的第二代版本,在保留了初代模型对话流畅、部署门槛较低等众多优秀特性的基础之上,ChatGLM2-6B 引入了如下新特性:

  1. 更强大的性能:基于 ChatGLM 初代模型的开发经验,我们全面升级了 ChatGLM2-6B 的基座模型。ChatGLM2-6B 使用了 GLM 的混合目标函数,经过了 1.4T 中英标识符的预训练与人类偏好对齐训练,评测结果显示,相比于初代模型,ChatGLM2-6B 在 MMLU(+23%)、CEval(+33%)、GSM8K(+571%) 、BBH(+60%)等数据集上的性能取得了大幅度的提升,在同尺寸开源模型中具有较强的竞争力。
  2. 更长的上下文:基于 FlashAttention 技术,我们将基座模型的上下文长度(Context Length)由 ChatGLM-6B 的 2K 扩展到了 32K,并在对话阶段使用 8K 的上下文长度训练,允许更多轮次的对话。但当前版本的 ChatGLM2-6B 对单轮超长文档的理解能力有限,我们会在后续迭代升级中着重进行优化。
  3. 更高效的推理:基于 Multi-Query Attention 技术,ChatGLM2-6B 有更高效的推理速度和更低的显存占用:在官方的模型实现下,推理速度相比初代提升了 42%,INT4 量化下,6G 显存支持的对话长度由 1K 提升到了 8K。
  4. 更开放的协议:ChatGLM2-6B 权重对学术研究完全开放,在获得官方的书面许可后,亦允许商业使用。如果您发现我们的开源模型对您的业务有用,我们欢迎您对下一代模型 ChatGLM3 研发的捐赠。

ChatGLM2-6B 开源模型旨在与开源社区一起推动大模型技术发展,恳请开发者和大家遵守开源协议,勿将开源模型和代码及基于开源项目产生的衍生物用于任何可能给国家和社会带来危害的用途以及用于任何未经过安全评估和备案的服务。目前,本项目团队未基于 ChatGLM2-6B 开发任何应用,包括网页端、安卓、苹果 iOS 及 Windows App 等应用。

尽管模型在训练的各个阶段都尽力确保数据的合规性和准确性,但由于 ChatGLM2-6B 模型规模较小,且模型受概率随机性因素影响,无法保证输出内容的准确性,且模型易被误导。本项目不承担开源模型和代码导致的数据安全、舆情风险或发生任何模型被误导、滥用、传播、不当利用而产生的风险和责任。

项目仓库

GitHub:THUDM/ChatGLM2-6B: ChatGLM2-6B

前置条件

在执行项目安装之前,我们还需要安装GitConda,如果您的电脑还未安装这两款软件,请先根据本站所给出的教程安装。

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

如果您无法完成此步骤,执行后报错或者无法下载,可以下载该文件将其解压至D:\openai.wiki即可。

ChatGLM2-6B-main

提取密码 文件说明 文件大小 5.01MB 文件格式 ZIP 资源价格 免费 下载次数 5

环境部署

在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

ChatGLM2-6B|开源本地化语言模型

提示:将您所复制的代码直接粘贴至CMD窗口内执行,此时将会自动安装PyTorch和对应版本的CUDA,因为PyTorch比较大,所以等待时间会比较长,请不要中断该操作。

注意:一定要复制你自己得到的,尽量不要直接使用本站所给出的示例命令行!

模型下载

本站提供两种下载方式,任选其一即可。如果你不放心本站所提供的模型,可以开启魔法上网到官方下载地址内自行下载。

官方下载

THUDM/chatglm2-6b · Hugging Face

网盘下载

关于此项目的模型,本站已为您下载并整理好。如果你不方便通过官网下载,可以使用本站所提供的网盘下载地址。

THUDM

提取密码 文件说明 文件大小 11.6GB 文件格式 BIN 资源价格 免费 下载次数 4

模型安装

下载模型时,请注意模型的目录结构,以及文件夹层级关系。

ChatGLM2-6BTHUDMchatglm2-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.pyweb_demo.pyweb_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.pyweb_demo.pyweb_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界面是通过在命令行之内直接交互来进行问答的,界面如下:

ChatGLM2-6B|开源本地化语言模型
cli_demo界面展示

完整内容如下:

(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网页中进行交互问答的,界面如下:

ChatGLM2-6B|开源本地化语言模型
web_demo界面展示

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网页中进行交互问答的,界面如下:

ChatGLM2-6B|开源本地化语言模型
web_demo2界面展示

注意:该方式不支持查看历史对话记录。

其它内容

此部分内容对于初学者来说,没有必要阅读,所以并没有细致的去讲解,如果你只想会用,那么仅根据上面的教程去操作就可以了。

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|开源本地化语言模型
  • 知识推理

    ChatGLM2-6B|开源本地化语言模型
  • 长文档理解

    ChatGLM2-6B|开源本地化语言模型

评测结果

我们选取了部分中英文典型数据集进行了评测,以下为 ChatGLM2-6B 模型在 MMLU (英文)、C-Eval(中文)、GSM8K(数学)、BBH(英文) 上的测评结果。

MMLU

ModelAverageSTEMSocial SciencesHumanitiesOthers
ChatGLM-6B40.6333.8944.8439.0245.71
ChatGLM2-6B (base)47.8641.2054.4443.6654.46
ChatGLM2-6B45.4640.0651.6141.2351.24

Chat 模型使用 zero-shot CoT (Chain-of-Thought) 的方法测试,Base 模型使用 few-shot answer-only 的方法测试

C-Eval

ModelAverageSTEMSocial SciencesHumanitiesOthers
ChatGLM-6B38.933.348.341.338.0
ChatGLM2-6B (base)51.748.660.551.349.8
ChatGLM2-6B50.146.460.450.646.9

Chat 模型使用 zero-shot CoT 的方法测试,Base 模型使用 few-shot answer only 的方法测试

GSM8K

ModelAccuracyAccuracy (Chinese)*
ChatGLM-6B4.825.85
ChatGLM2-6B (base)32.3728.95
ChatGLM2-6B28.0520.45

所有模型均使用 few-shot CoT 的方法测试,CoT prompt 来自 http://arxiv.org/abs/2201.11903

  • 我们使用翻译 API 翻译了 GSM8K 中的 500 道题目和 CoT prompt 并进行了人工校对

BBH

ModelAccuracy
ChatGLM-6B18.73
ChatGLM2-6B (base)33.68
ChatGLM2-6B30.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-6B31.49
ChatGLM2-6B44.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 / BF1613.1 GB12.8 GB
INT88.2 GB8.1 GB
INT45.5 GB5.1 GB

ChatGLM2-6B 利用了 PyTorch 2.0 引入的 torch.nn.functional.scaled_dot_product_attention 实现高效的 Attention 计算,如果 PyTorch 版本较低则会 fallback 到朴素的 Attention 实现,出现显存占用高于上表的情况。

我们也测试了量化对模型性能的影响。结果表明,量化对模型性能的影响在可接受范围内。

量化等级Accuracy (MMLU)Accuracy (C-Eval dev)
BF1645.4753.57
INT443.1350.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’

根据错误消息,它指出在模块pyreadlinemodes/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库,它可能是依赖于 transformershuggingface_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。

  1. 定义 “许可方”是指分发其软件的 ChatGLM2-6B 模型团队。 “软件”是指根据本许可提供的 ChatGLM2-6B 模型参数。
  2. 许可授予 根据本许可的条款和条件,许可方特此授予您非排他性、全球性、不可转让、不可再许可、可撤销、免版税的版权许可,仅用于您的非商业研究目的。 上述版权声明和本许可声明应包含在本软件的所有副本或重要部分中。
  3. 限制 您不得出于任何商业、军事或非法目的使用、复制、修改、合并、发布、分发、复制或创建本软件的全部或部分衍生作品。 您不得利用本软件从事任何危害国家安全和国家统一、危害社会公共利益、侵犯人身权益的行为。
  4. 免责声明 本软件“按原样”提供,不提供任何明示或暗示的保证,包括但不限于对适销性、特定用途的适用性和非侵权性的保证。 在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是在合同诉讼、侵权行为还是其他方面,由软件或软件的使用或其他交易引起、由软件引起或与之相关 软件。
  5. 责任限制 除适用法律禁止的范围外,在任何情况下且根据任何法律理论,无论是基于侵权行为、疏忽、合同、责任或其他原因,任何许可方均不对您承担任何直接、间接、特殊、偶然、示范性、 或间接损害,或任何其他商业损失,即使许可人已被告知此类损害的可能性。
  6. 争议解决 本许可受中华人民共和国法律管辖并按其解释。 因本许可引起的或与本许可有关的任何争议应提交北京市海淀区人民法院。 请注意,许可证可能会更新到更全面的版本。 有关许可和版权的任何问题,请通过 glm-130b@googlegroups.com 与我们联系。

总结

最近开源语言社区还是挺热闹的,估计要很不了多久,赶超ChatGPT只是时间问题罢了。Google也在发力,国内各大厂商也全部都盯紧了这块肥肉,不过国内各大厂商的模型几乎全部闭源,可见都是以恰饭为目的,基本不可能出现类似于Meta之类开源为主的形式出现,可能这就是最本质的差距吧。国内无论做什么,都是以能不能赚到钱为主,对于非即下利益,直接不考虑,别人赚钱了又眼馋。

清华大学这个模型真的很不错,在我看来已经赶超了相当多的其它厂商,而且进化的速度也非常可观,建议国内的大厂都多学学,怎么造福人类,而不是想方设法用来取代员工,压榨员工。

此文章由OpenAI开源维基百科原创发布,如若转载请注明出处:https://openai.wiki/chatglm2-6b.html

(0)
上一篇 2023-06-25 16:20
下一篇 2023-06-29 16:56

相关推荐

  • MiniGPT-4|图像对话模型

    MiniGPT-4使用一个投影层将冻结视觉编码器与冻结的LLM对齐,通过传统预训练和自我生成方式构建高质量图像文本对,再在小型数据集上进行微调训练,该模型在视觉语言任务中表现出了很好的效果。

    2023-04-20
    0154.4K
  • Text-Generation-WebUI|通用语言模型加载工具

    oobabooga的text-generation-webui可以用来启动、加载、管理几乎所有主流的开源语言模型,并且提供WebUI界面,支持加载LLaMA2和其它羊驼类微调模型训练和LoRA的加载。

    2023-07-21
    0104.2K
  • SkyChat|Windows安装教程

    本文主要介绍如何本地化部署SkyChat模型,是由昆仑万维所公开的开源AIGC全系列算法与模型,“昆仑天工”旗下模型包括天工巧汇、天工乐府、天工妙笔、天工智码,涵盖图像、音乐、文本、编程等多模态内容。

    其它模型 2022-12-19
    0586.1K
  • Baichuan2|开源语言模型百川2代

    Baichuan2是百川智能推出的新一代开源大语言模型,采用2.6万亿Tokens的高质量语料训练。在多个权威的中文、英文和通用、领域效果较佳。包含7B、13B的Base和Chat版本,可免费商用。

    2023-09-13
    002.6K
  • ChatGLM-6B|开源本地化语言模型

    ChatGLM-6B是一种开源的、支持中英双语的对话语言模型,具有62亿参数。它使用了GLM架构和量化技术,可在消费级显卡上进行本地部署。该模型为清华开源模型,效果堪比ChatGPT。

    2023-04-01
    0647.9K

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

评论列表(53条)

  • 小陈
    小陈 2023-06-28 21:44

    我按步骤弄完就出现这:
    (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’
    这是什么情况,帮助一下,谢谢

    • PhiltreX
      PhiltreX 2023-06-28 22:48

      @小陈你这没找到transformers库,不应该啊,按道理来说是自动安装的。
      执行这一步了吗?pip install -r requirements.txt

    • 小陈
      小陈 2023-06-29 12:37

      @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,跟你们一样。

    • PhiltreX
      PhiltreX 2023-06-29 17:02

      @小陈你这个问题,有点奇怪,好像不是transformers的问题了,现在是没有找到指定版本的gradio,手动执行一下这个试试gradio==2.3.6

    • 盆盆
      盆盆 2023-07-03 10:12

      @PhiltreXNameError: name ’round_up’ is not defined 怎么解决

    • PhiltreX
      PhiltreX 2023-07-03 20:15

      @盆盆这种是不应该出现的错误,把完整的错误贴出来吧,这样我看不出来。

    • 小李
      小李 2024-01-21 16:58

      @小陈兄弟,你的这个问题解决了么?可以问问你是怎么解决的么?谢谢

  • 小李
    小李 2023-06-29 20:35

    怎么自己训练模型啊?有没有大佬给点入门的资料或链接

    • PhiltreX
      PhiltreX 2023-07-01 12:45

      @小李站长没有条件做微调这一块,毕竟是2080TI的显卡,唉。

  • 里
    2023-06-30 10:11

    没有gpu 怎么能跑啊

    • PhiltreX
      PhiltreX 2023-07-01 12:42

      @里CPU需要32GB内存,将模型加载那一行修改为model = AutoModel.from_pretrained("THUDM\chatglm2-6b", trust_remote_code=True).float()

  • 里
    2023-06-30 10:12

    crud不可用 怎么解决不是英伟达的GPU

  • 落夜秦雨
    落夜秦雨 2023-07-01 12:38

    一次性部署成功确实比上一版本快很多

  • five
    five 2023-07-02 10:52

    怎么感觉回复的时候特别慢呢?一秒一个字

    • PhiltreX
      PhiltreX 2023-07-02 20:04

      @five这个和电脑的硬件有关系,显卡越好,性能越快。

  • 盆盆
    盆盆 2023-07-03 09:49

    报错: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

    • PhiltreX
      PhiltreX 2023-07-03 20:18

      @盆盆我看到上当名称无效,NameError: name ’round_up’ is not defined错误表示在代码中使用了未定义的函数 round_up。
      这种一般来说是绝对不可能出现的错误,建议重新部署一下吧,我没遇到过,还真不清楚。

  • 盆盆
    盆盆 2023-07-03 10:03

    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,

  • 夏天的一片叶子
    夏天的一片叶子 2023-07-03 13:02

    我在执行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.
    我也不知道是什么情况,能帮我一下吗?谢谢

    • PhiltreX
      PhiltreX 2023-07-03 20:14

      @夏天的一片叶子HTTPSConnectionPool(host=’files.pythonhosted.org’, port=443): Read timed out.
      这种报错一般是网络问题,开魔法了吗?

  • aaa
    aaa 2023-07-04 12:22

    请问CPU的int4量化模型在哪找到呢

  • 风轻扬
    风轻扬 2023-07-04 16:26

    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,而且编译器已经识别我看源码也可以看到,为什么还是说找不到,能帮帮忙吗

  • 最喜欢睡觉
    最喜欢睡觉 2023-07-05 23:18

    [{
    “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
    }]

    出现如下报错

    • 最喜欢睡觉
      最喜欢睡觉 2023-07-05 23:24

      @最喜欢睡觉(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
      一切按步骤运行就这样了,站长帮忙看看呗

    • PhiltreX
      PhiltreX 2023-07-07 18:45

      @最喜欢睡觉可能是因为protobuf版本不正确,重新部署一下,一定要把配置文件中需要删除的版本号删除。

    • PhiltreX
      PhiltreX 2023-07-07 18:46

      @最喜欢睡觉这些错误提示是由于缺少gradio和mdtex2html这两个模块导致的。需要安装这些模块以解决报错。

      可以使用以下命令通过pip安装这些模块:
      pip install gradio
      pip install mdtex2html

  • flydog
    flydog 2023-07-07 09:29

    model不是内部或外部命令怎么解决,电脑环境变量都是好的

    • PhiltreX
      PhiltreX 2023-07-07 18:44

      @flydog这可能是模型路径没有配置好的问题,把错误信息多贴一些出来。

    • blue
      blue 2023-07-09 13:57

      @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

  • 墨俊
    墨俊 2023-07-19 17:23

    碰到下面这种情况怎么办?
    (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.

    • PhiltreX
      PhiltreX 2023-07-19 20:43

      @墨俊torch没安装对,按教程重头安装,不要自定义torch版本。

  • 阿斯蒂芬
    阿斯蒂芬 2023-07-21 09:51

    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

    这是啥情况

  • NSG
    NSG 2023-07-24 16:30

    站长,chatGLM2-6B在TEXTGEN正常加载,但每次回答除问的问题外,自动生成其他一堆话,有点自言自语的,是哪里设置错了吗?

    • PhiltreX
      PhiltreX 2023-07-25 12:05

      @NSG或许你可以尝试更改为Chat模式,然后在Chat settings的Instruction template中,将预设调整为ChatGLM模板试一下。

  • ㊗
    2023-07-30 00:00

    站长,我在运行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’.
    请问要怎么解决

    • 季夏
      季夏 2023-10-12 20:40

      @㊗检查一下文件名称输入

  • 季夏
    季夏 2023-10-12 20:40

    站长好,我想尝试多卡部署,我的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.
    求问解决方案,感谢

  • MurasakiAbysm
    MurasakiAbysm 2023-11-04 14:07

    大佬大佬,运行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

    • wyppp
      wyppp 2023-11-08 11:22

      @MurasakiAbysm我也是这样,以为是pytorch问题重新安装了一次结果照旧

    • 周11
      周11 2023-11-24 18:09

      @MurasakiAbysm我也是这样请问解决了吗

  • 陈一
    陈一 2023-11-06 20:16

    python web_demo.py打开网址后,提出问题为什么没显示回答呢?

  • 落夜秦雨
    落夜秦雨 2023-11-07 13:56

    chatglm3-6b版本出来了更新一下

  • lxh
    lxh 2023-11-08 16:11

    您好,我想请问一下怎么使用LoRA微调这个模型?

  • 周11
    周11 2023-11-26 15:59

    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

    您好,想问一下我这个是什么情况,该怎么样解决呢?非常感谢

  • 周11
    周11 2023-11-26 16:01

    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

    您好,请问一下我这个是什么情况,应该怎样解决呀?非常感谢

  • Ericpl
    Ericpl 2023-12-08 20:52

    (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)

  • aaa
    aaa 2024-03-24 21:48

    (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
    nim 2024-04-09 15:50

    你好,想问一下配置到最后都没有问题,但是最后运行,运行不出来

    • nim
      nim 2024-04-09 15:51

      @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

  • jzh
    jzh 2024-05-13 16:16

    除了装在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)

  • 欣爷
    欣爷 2025-01-07 17:46

    写得太好了,感谢博主

微信