阿里云人工智能平台PAI部署开源大模型chatglm3之失败记录--update:最后成功了!

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

更新:
由于在上面花了一周时间,啥都没做出来,实在不甘心,于是我又部署了第四个实例。它用的显卡是A10。
在这里插入图片描述

实例一

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

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_sizereturn 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 TensorRTUnicodeDecodeError: '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,可以打开网页了。
在这里插入图片描述
输入对话,但是模型并不能生成回答。
在这里插入图片描述
我猜原因可能是显卡内存不足。

实例四

实例四的部署过程和本文前贴的教程的过程一样。最后在运行的时候报了bug,但是,我改好了!!!

  1. cli_demo.py运行
    和第三次部署一样,还是报的UnicodeDecodeError。
File "/usr/local/lib/python3.10/subprocess.py", line 1031, in _translate_newlines
data = data.decode(encoding, errors)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 0: ordinal not in range(128)

这一次我仔细看了看traceback,报错的地方应该是/usr/local/lib/python3.10路径下的subprocess.py文件的第1031行。问了问Chat-GPT,它建议我直接对Python 3.10中的特定函数进行修改。

#退出原目录
cd
# 进入Python 3.10所在路径
cd /usr/local/lib/python3.10
# 使用修改subprocess.py文件
vi subprocess.py

将其第1031行修改为如下。然后保存。
在这里插入图片描述
退出Python 3.10所在路径,重新进入模型权重文件所在路径,运行cli_demo.py文件。
在这里插入图片描述
这次终于可以顺利地和模型聊天了。

  1. web_demo_gradio.py运行
    报ModuleNotFoundError,可能跟Transformers的版本有关。
    在这里插入图片描述
    在Hugging Face上找到了对gemma的介绍,先记在这里,后面再看看如何对这个Bug进行修改。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/373416.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

科普文:K8S中常见知识点梳理

简单说一下k8s集群内外网络如何互通的 要在 Kubernetes(k8s)集群内外建立网络互通,可以采取以下措施: 使用service: 使用Service类型为NodePort或LoadBalancer的Kubernetes服务。这可以使服务具有一个公共IP地址或端口…

CodeNavi 中代码表达式的节点和节点属性

本文分享自华为云社区《CodeNavi 中代码表达式的节点和节点属性》。作者:Uncle_Tom 1. 前期回顾 《寻找适合编写静态分析规则的语言》 根据代码检查中的一些痛点,提出了希望寻找一种适合编写静态分析规则的语言。 可以满足用户对代码检查不断增加的各种需…

SpringCloudAlibaba Nacos配置中心与服务发现

目录 1.配置 1.1配置的特点 只读 伴随应用的整个生命周期 多种加载方式 配置需要治理 1.2配置中心 2.Nacos简介 2.1特性 服务发现与服务健康检查 动态配置管理 动态DNS服务 服务和元数据管理 3.服务发现 1.配置 应用程序在启动和运行的时候往往需要读取一些配置信…

收银系统源代码-收银端UI风格

智慧新零售收银系统是一套线下线上一体化收银系统,给商户提供含线下收银称重、线上商城、精细化会员管理、ERP进销存、丰富营销活动、移动店务助手等一体化的解决方案。 如Windows版收银(exe安装包)、安卓版收银(apk安装包&#…

HTML【详解】超链接 a 标签的四大功能(页面跳转、页内滚动【锚点】、页面刷新、文件下载)

超链接 a 标签主要有以下功能&#xff1a; 跳转到其他页面 <a href"https://www.baidu.com/" target"_blank" >百度</a>href&#xff1a;目标页面的 url 地址或同网站的其他页面地址&#xff0c;如 detail.htmltarget&#xff1a;打开目标页面…

关于【AI绘画】的学习

AI绘画中有个牛器DeepArt,也有很多AI软件和平台可以去借鉴和学习。 这里是一张AI绘画图片,主题是一个梦幻般的森林,里面充满了发光的蘑菇和飞舞的萤火虫: AI绘画资源 对于AI绘画,你可以参考一些在线平台和软件,它们提供了AI绘画的功能或者教程。此外,也可以寻找相关的书…

景芯SoC训练营DFT debug

景芯训练营VIP学员在实践课上遇到个DFT C1 violation&#xff0c;导致check_design_rule无法通过&#xff0c;具体报错如下&#xff1a; 遇到这个问题第一反映一定是确认时钟&#xff0c;于是小编让学员去排查add_clock是否指定了时钟&#xff0c;指定的时钟位置是否正确。 景芯…

神领物流项目第一天

文章目录 聚焦快递领域首先第一个是验证码模块流程登录接口权限管家 聚焦快递领域 首先第一个是验证码模块流程 首先生成验证码的流程 可以使用工具类去生成验证码 LineCaptcha lineCaptcha CaptchaUtil.createLineCaptcha(160, 60, 4, 26);// 获取值然后存入redis中 strin…

WPF引入多个控件库使用

目的 设计开发时有的控件库的一部分符合我们想要的UI样式&#xff0c;另一部分来自另一个控件库&#xff0c;想把两种库的样式做一个整合在同一个控件资源上。单纯通过引用的方式会导致原有样式被覆盖。这里通过设置全局样式的方式来实现。 1.安装控件库nuget包&#xff1a;H…

分享中国-吉林省和9个地级市州人文地图

分享中国-吉林省和9个地级市州人文地图 1、吉林省 吉林省&#xff0c;位于中国东北地区中部&#xff0c;地处东北亚地理中心位置&#xff0c;因吉林市而得名&#xff0c;清康熙时在松花江畔建吉林乌拉城&#xff0c;满语意为“沿江的地方”。 吉林省以中部大黑山为界&#x…

git为文件添加可执行权限

查看文件权限 git ls-files --stage .\SecretFinder.py100644 表示文件的所有者有读取和写入权限 添加可执行权限 git update-index --chmod x .\SecretFinder.py再次查看文件权限 git ls-files --stage .\SecretFinder.py100755 表示文件的所有者有读取、写入和执行权限

记录|C#安装+HslCommunication安装

记录线索 前言一、C#安装1.社区版下载2.VS2022界面设置 二、HslCommunication安装1.前提2.安装3.相关文件【重点】 更新记录 前言 初心是为了下次到新的电脑上安装VS2022做C#上机位项目时能快速安装成功。 一、C#安装 1.社区版下载 Step1. 直接点击VS2022&#xff0c;跳转下…

PostgreSQL 里怎样解决多租户数据隔离的性能问题?

文章目录 一、多租户数据隔离的性能问题分析&#xff08;一&#xff09;大规模数据存储和查询&#xff08;二&#xff09;并发访问和锁争用&#xff08;三&#xff09;索引维护成本高&#xff08;四&#xff09;资源分配不均 二、解决方案&#xff08;一&#xff09;数据分区&a…

【源码+方案】SRM供应商采购管理PPT(原件)

1、供应商管理流程 2、供应源搜寻 3、供应商评估 4、供应商选择 5、供应商考核评定 6、供应商关系管理 7、供应商开发 本文源码建设方案及软件全套资料获取&#xff1a;本文末个人名片直接获取或者进主页。

数据结构双向循环链表

主程序 #include "fun.h" int main(int argc, const char *argv[]) { double_p Hcreate_head(); insert_head(H,10); insert_head(H,20); insert_head(H,30); insert_head(H,40); insert_tail(H,50); show_link(H); del_tail(H); …

QT--SQLite

配置类相关的表&#xff0c;所以我使用sqlite,且QT自带该组件&#xff1b; 1.安装 sqlite-tools-win-x64-3460000、SQLiteExpert5.4.31.575 使用SQLiteExpert建好数据库.db文件&#xff0c;和对应的表后把db文件放在指定目录 ./db/program.db&#xff1b; 2.选择sql组件 3.新…

Qt 异步实现事件的定时执行 - QTimer和QThread的联合使用

异步实现事件的定时执行 - QTimer和QThread的联合使用 引言一、核心源码二、其信号和槽函数简述三、定时器及其moveToThread简述 引言 在 Qt 中&#xff0c;如果想要定时执行某些事件或函数&#xff0c;通常会使用 QTimer 类。QTimer 允许设置一个时间间隔&#xff0c;当这个时…

Linux镜像源设置不再难:一键脚本,新手也能成为优化高手(一键切换镜像源/Docker一键安装脚本)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 更换镜像源 📒📝 一键切换软件源📝 Docker一键安装脚本⚓️ 相关链接 ⚓️📖 介绍 📖 在国内,Linux系统用户经常会遇到下载软件包时速度慢的问题,这通常是因为默认的镜像源并不总是最优选择。对于新手来说,手动设置…

Spin Image(旋转图像)

Spin Image特征描述子原理 Spin Image是Johnson于1999年提出&#xff0c;Lazebnik于2005年完善的基于点云空间分布的特征描述方法&#xff0c;其思想是将一定区域的点云分布转换成二维的Spin Image&#xff0c;然后对场景和模型的Spin Image进行相似性度量。Spin Image方法与通…

HippoRAG如何从大脑获取线索以改进LLM检索

知识存储和检索正在成为大型语言模型(LLM)应用的重要组成部分。虽然检索增强生成(RAG)在该领域取得了巨大进步&#xff0c;但一些局限性仍然没有克服。 俄亥俄州立大学和斯坦福大学的研究团队推出了HippoRAG&#xff0c;这是一种创新性的检索框架&#xff0c;其设计理念源于人类…