自学内容网 自学内容网

阿里云人工智能平台PAI部署开源大模型chatglm3之失败记录

想学习怎么部署大模型,跟着网上的帖子部署了一个星期,然而没有成功。失败的经历也是经历,记在这里。
在这里插入图片描述
我一共创建了3个实例来部署chatglm3,每个实例都是基于V100创建的(当时没有A10可选了),其显存只有16G。每个实例分配的系统存储盘有100G。
在这里插入图片描述
这三个实例,每个实例都有不一样的失败原因。

实例一

实例一挂在了下载模型权重文件这一步

git clone https://www.modelscope.cn/ZhipuAI/chatglm3-6b.git

到这一步的时候系统盘莫名其妙的满了,导致下载模型权重文件报错。

实例二

由于第一次系统盘早早地满了,第二次部署的时候我就跳过了前期的一些操作,其中包括配置环境变量这一步。

# 印象中不创建账号好像就没有bashrc的文件
vim ~/.bashrc
# 末尾添加anaconda3所在路径,和第六步路径一致
export PATH=/root/anaconda3/bin:$PATH
# 修改终端的默认 python 为 anaconda,否则会报错找不到命令activate
source /root/anaconda3/bin/activate
# 使环境变量的修改立即生效
source ~/.bashrc                        

这导致后面在运行模型的时候一直报错。

  1. 运行cli_demo.py文件报AttributeError
(base) root@dsw-403691-6867f64799-5t2cz:/opt/chatglm3/ChatGLM3/basic_demo# sudo python cli_demo.py

报错:
File "/root/.cache/huggingface/modules/transformers_modules/ChatGLM-6B/tokenization_chatglm.py", line 244, in vocab_size
    return self.sp_tokenizer.num_tokens
AttributeError: 'ChatGLMTokenizer' object has no attribute 'sp_tokenizer'. Did you mean: '_tokenize'?
  1. 运行web_demo_gradio.py报ImportError。我尝试对这些错误进行修改,发现每修改好一个,就报下一个类似的错误。后来意识到应该是前期环境变量没有配置好,导致了了路径错误。
    from gradio.exceptions import ComponentDefinitionError
ImportError: cannot import name 'ComponentDefinitionError' from 'gradio.exceptions' (/root/anaconda3/lib/python3.11/site-packages/gradio/exceptions.py)
    from gradio.utils import no_raise_exception
ImportError: cannot import name 'no_raise_exception' from 'gradio.utils' (/root/anaconda3/lib/python3.11/site-packages/gradio/utils.py)
    from gradio.events import Events
ImportError: cannot import name 'Events' from 'gradio.events' (/root/anaconda3/lib/python3.11/site-packages/gradio/events.py)

实例三

第三次部署我老老实实跟着教程设置了环境变量,最后模型看似能运行,但是还是出了问题。

  1. cli_demo.py运行
    最开始是我输入对话语句,模型报UnicodeDecodeError,并反馈Could not find TensorRT。
2024-07-04 21:08:47.391139: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT

UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 0: ordinal not in range(128)

我尝试安装bazel及tensorflow,但是都没有成功。

今天在写这个失败记录的时候,再试着运行了一次,报内存溢出的错误。
在这里插入图片描述

  1. web_demo_gradio.py运行
    在最开始提醒我安装gradio和peft,安装好之后要注意更新gradio的环境变量,不然会导致无法成功import。
    后面运行时生成的local url一直打不开,我跟在chat-gpt将web_demo_gradio.py中的.laucn()函数的share属性由false改成了true.
iface.launch(share=True)

运行代码时有提醒我要安装frpc_linux_amd64_v0.2。

Could not create share link. Missing file: /root/anaconda3/envs/chatglm3_test/lib/python3.11/site-packages/gradio/frpc_linux_amd64_v0.2.

于是我将该文件下载到本地,又跟着教程上传到服务器,成功安装了frpc_linux_amd64_v0.2。
在此运行模型,使用public url,可以打开网页了。
在这里插入图片描述
输入对话,但是模型并不能生成回答。
在这里插入图片描述
我猜原因可能是显卡内存不足。


原文地址:https://blog.csdn.net/MilkLeong/article/details/140227421

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!