GLM4-4V-9B多模态模型INT4量化版部署问题

由于多模态模型GLM4-4V-9B多卡部署会遇到很多bug,本人的单张显卡只有16GB,只能部署量化版INT4精度的。现在就分享一下INT4量化版部署遇到的问题以及解决方法。

参数配置

代码文件:trans_cli_vision_demo.py
模型参数:trans_cli_vision_demo.py的代码中有提供INT4的参数配置,只需要解除注释就可以了。

遇到的问题:

初次运行trans_cli_vision_demo.py会遇到运算维度不连续的问题。刚开始以为进入报错目录修改visual.py的代码就能解决这个问题,结果发现修改代码后再次运行模型trans_cli_vision_demo.py,还是报出相同的错误,并发现visual.py文件被重置了。

后来修改visual.py的权限变为不可修改,发现/home/user/.cache/huggingface/modules/transformers_modules/glm-4v-9b目录下的visual.py文件是从其它的地方copy过去的。在全局搜索发现glm-4v-9b的模型目录下也有这个visual.py,且修改这个文件的代码也解决了报错的问题。


代码修改

提示报错的代码

output = self.dense(out.transpose(1, 2).view(B, L, -1))

修改后的代码

output = self.dense(out.transpose(1, 2).contiguous().view(B, L, -1))

运行结果

显存占用

模型部署模型推理
8924MiB13058MiB
首先,你需要下载 Chat-GLM-6B-Int4 模型文件和相应的配置文件。然后,你需要在你的 Linux 系统上安装 PyTorch 和 Transformers 库。你可以使用以下命令安装这两个库: ``` pip install torch pip install transformers ``` 接下来,你需要编写一个 Python 脚本来部署 Chat-GLM-6B-Int4 模型。你可以使用以下代码作为脚本的基础: ```python import torch from transformers import GPT2Tokenizer, GPT2LMHeadModel # 加载模型和分词器 tokenizer = GPT2Tokenizer.from_pretrained('chat-glm-6b-int4/config') model = GPT2LMHeadModel.from_pretrained('chat-glm-6b-int4/model') # 指定设备 device = torch.device("cuda" if torch.cuda.is_available() else "cpu") model.to(device) # 对话循环 while True: # 获取用户输入 user_input = input("You: ") # 把用户输入转换成模型的输入格式 input_ids = tokenizer.encode(user_input, return_tensors='pt').to(device) # 在模型上生成回复 output = model.generate(input_ids, max_length=1000, do_sample=True, temperature=0.7) response = tokenizer.decode(output[0], skip_special_tokens=True) # 输出回复 print("Chat-GLM-6B-Int4: " + response) ``` 在这个脚本中,我们首先加载 Chat-GLM-6B-Int4 模型和相应的分词器。然后,我们检查可用的设备并将模型移动到相应的设备上。最后,我们开始一个对话循环,其中用户输入被转换为模型的输入格式,并在模型上生成回复。回复被解码并输出给用户。 注意,这个脚本只是一个基础示例,你需要根据你的具体需求进行修改。例如,你可能需要添加一个 Web 接口来允许用户通过浏览器与 Chat-GLM-6B-Int4 进行交互。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YaoAIPro

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值