google.protobuf.message.DecodeError: Error parsing message
遇到的问题
尝试部署llava大模型,完成一系列配置后,使用命令
python -m llava.serve.cli --model-path {本地模型权重路径} --image-file "https://llava-vl.github.io/static/images/view.jpg" --load-4bit
后报错:
model = model_pb2.ModelProto.FromString(sp_model)
google.protobuf.message.DecodeError: Error parsing message
GitHub和一些博客的评论区有人有相同的问题,但无人解答,因为错误的原因逆天,很难有人遇到(
模型参数没有下载完导致的
相信遇到这个问题的人都是先从hf下载了llava的模型参数的,但请注意,注意你下载的llava-v1.5-7b文件,里面的00002.bin文件有多大呢
应该有n个g哦。
我通过git clone命令直接下载,并没有下载到正确的模型参数文件,只是一个文本文档,貌似是git clone不会直接下载大文件导致的。没错,google.protobuf.message.DecodeError是因为没有加载到正确的模型权重。
所以删掉你的llava-v1.5-7b文件夹,用正确的姿势下载:
我这里使用的huggingface-cli工具。
先安装:
pip install -U huggingface_hub
注意:huggingface_hub 依赖于 Python>=3.8
就可以直接用命令下载模型参数了(前提是服务器能直接访问hf,需要你懂的工具)
huggingface-cli download --resume-download liuhaotian/llava-v1.5-7b --local-dir {你的本地路径}
需要下载vit的话也是相同的方法。
然后就能使用推理功能了。
官方提供的命令
python -m llava.serve.cli --model-path {模型权重路径} --image-file "https://llava-vl.github.io/static/images/view.jpg" --load-4bit
还可能会报错:requests.exceptions.ProxyError: HTTPSConnectionPool(host=‘llava-vl.github.io’, port=443): Max retries exceeded with url: /static/images/view.jpg (Caused by ProxyError(‘Unable to connect to proxy’, OSError(‘Tunnel connection failed: 403 Forbidden’)))
把图片路径更换为本地图片即可。
参考: https://blog.csdn.net/kikiLQQ/article/details/135613642
https://zhuanlan.zhihu.com/p/663712983