【部署glm4】属性找不到、参数错误问题解决(思路:修改模型包版本)

前言在部署glm时,遇到了一些属性找不到、参数错误的问题,通常遇到这种问题都是因为模型包版本问题导致的,要注意模型版本是否可用。

【运行官方vllm_cli_demo.py】报错

GLM-4: [rank0]: Traceback (most recent call last):
[rank0]: File “/app/glm4/code/GLM-4-main/basic_demo/vllm_cli_demo_self.py”, line 176, in
[rank0]: asyncio.run(chat())
[rank0]: File “/opt/conda/envs/chatglm4/lib/python3.9/asyncio/runners.py”, line 44, in run
[rank0]: return loop.run_until_complete(main)
[rank0]: File “/opt/conda/envs/chatglm4/lib/python3.9/asyncio/base_events.py”, line 647, in run_until_complete
[rank0]: return future.result()
[rank0]: File “/app/glm4/code/GLM-4-main/basic_demo/vllm_cli_demo_self.py”, line 169, in chat
[rank0]: async for output in vllm_gen(LORA_PATH, enable_lora, messages, top_p, temperature, max_length):
[rank0]: File “/app/glm4/code/GLM-4-main/basic_demo/vllm_cli_demo_self.py”, line 100, in vllm_gen
[rank0]: inputs = tokenizer.apply_chat_template(
[rank0]: AttributeError: ‘tuple’ object has no attribute ‘apply_chat_template’

目前该问题并没有解决,但是猜测是因为vllm版本需要为0.6.4,但是目前找不到这个版本,因此只能用)0.6.3.post1替代,猜测大概率是因为版本问题导致找不到apply_chat_template 属性。由于vllm包较大,测试可用版本比较麻烦。
因此,目前可以暂时用tansformers代替vllm!!!

【运行官方trans_cli_demo.py】报错

Traceback (most recent call last):
File “/app/glm4/code/GLM-4-main/basic_demo/trans_cli_demo.py”, line 64, in
model_inputs = tokenizer.apply_chat_template(
File “/root/.cache/huggingface/modules/transformers_modules/glm4-models/tokenization_chatglm.py”, line 220, in apply_chat_template
output = self.batch_encode_plus(
File “/opt/conda/envs/chatglm4/lib/python3.9/site-packages/transformers/tokenization_utils_base.py”, line 3311, in batch_encode_plus
return self._batch_encode_plus(
File “/opt/conda/envs/chatglm4/lib/python3.9/site-packages/transformers/tokenization_utils.py”, line 892, in _batch_encode_plus
batch_outputs = self._batch_prepare_for_model(
File “/opt/conda/envs/chatglm4/lib/python3.9/site-packages/transformers/tokenization_utils.py”, line 970, in _batch_prepare_for_model
batch_outputs = self.pad(
File “/opt/conda/envs/chatglm4/lib/python3.9/site-packages/transformers/tokenization_utils_base.py”, line 3527, in pad
outputs = self._pad(
TypeError: _pad() got an unexpected keyword argument ‘padding_side’

具体可以参考这篇博客:
GLM-4V-9B TypeError: ChatGLMTokenizer._pad() got an unexpected keyword argument ‘padding_side‘
我的解决方法是将transformers版本降为4.44.0

最终运行截图如下:
在这里插入图片描述


http://www.niftyadmin.cn/n/5739890.html

相关文章

Python OpenCV 图像改变

更改图像数据 通过 改像素点 或者 切片的区域 import cv2 import numpy as np img cv2.imread("image.jpg") print(img[3,5]) # 显示某位置(行3列5)的像素值( 如 [53 34 29] 它是有三通道 B G R 组成) img[3,5] (0,0,255) # 更改该位置的像素…

5G时代已来:我们该如何迎接超高速网络?

内容概要 随着5G技术的普及,我们的生活似乎变得更加“科幻”了。想象一下,未来的智能家居将不仅仅是能够听你说“开灯”;它们可能会主动询问你今天心情如何,甚至会推荐你一杯“维他命C芒果榨汁”,帮助你抵御夏天的炎热…

vue框架简介

Vue.js 是一个用于构建用户界面的渐进式 JavaScript 框架。与其他大型框架不同,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,易于学习且集成到现有项目中。同时,Vue 也提供了强大的工具和库来支持复杂的单页面应用程序(SPA)…

mac 打开访达快捷键

一、使用快捷键组合 1. Command N 在当前桌面或应用程序窗口中,按下“Command N”组合键可以快速打开一个新的访达窗口。这就像在 Windows 系统中通过“Ctrl N”打开新的资源管理器窗口一样。 2. Command Tab 切换 如果访达已经打开,只是被其他应…

2024 Rust现代实用教程 closures闭包

文章目录 一、闭包基础概念1.如何使用闭包 二、闭包获取参数byreference与byvalue1.获取外部参数2.所有权转移move 三、闭包是怎么工作的1.闭包在底层是怎么工作的?2.FnOnce,FnMut,Fn特质 四、闭包类型FnOnce、FnMut和Fn做函数参数的实例参考 一、闭包基础概念 闭包…

为什么学习Mybatis框架

1.简化数据库操作 Mybatis可以简化Java应用程序与数据库之间的交互,允许开发者以简单的方式执行SQL语句,并处理结果集。 2.灵活性 Mybatis提供了很多灵活性的配置选项,让开发者可以根据具体的需求定制SQL和映射。 3.支持原生SQL 与一些ORM框…

ViT Model

卷积神经网络本身具有先验知识: Locality:相邻的区域之间的相关性更高Translation equation:平移等变性 Transformer的时间复杂度在O(n^2),n是序列长度,而图片的大小是224 * 224,Flatten之后太大了&#…

CSS 计数器:深入解析与高级应用

CSS 计数器:深入解析与高级应用 CSS 计数器是前端开发中一个强大但经常被忽视的功能。它们允许开发者创建和管理自定义的计数序列,这在处理复杂文档结构时尤其有用。本文将深入探讨 CSS 计数器的原理、用法,并展示一些高级应用示例。 什么是…