前面在阿里人工智能PAI上进行了ChatGLM3-6B的部署,模型最后能勉强运行,但是如果输入里有空格或标点,会报错,应该还有bug没解决 。现在,我又跟着教程来尝试进行微调,碰到的bug比较多,记录一下。
1. ERROR: Fialed building wheel for mpi4py
这个是在安装微调的环境时碰到的一个报错,github官方文档有写微调不需要依赖mpi4py,这篇帖子里也有说可以在requirements.txt直接删除mpi4py的安装包。先vi requirements.txt进入requirements.txt文档,然后注释掉mpi4py>=verison的那一行。保存,退出。
2. ModuleNotFoundError: No module named ‘accelerate.hooks’
这个是在打算微调时碰到的报错。我觉得这个报错十分之坑。
系统安装的accelerate默认是当前最先的0.32.1 ,在命令行中查看accelerate文件夹中的文件,发现叫得出名字的只有test_utils,看不到hooks.py文件。
而Huggingface上的accelerate 0.32.0是有hooks.py文件的。于是我卸载掉0.32.1,重新安装0.32.0。
安装好后查看accelerate文件夹下的文件,有hooks.py,于是不再报此错误。
3. AttributeError: module ‘pyarrow.lib’ has no attribute ‘ListViewType’
File "/root/anaconda3/envs/chatglm3_test/lib/python3.11/site-packages/pyarrow/fs.py", line 49, in <module>from pyarrow._gcsfs import GcsFileSystem # noqa^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "pyarrow/_gcsfs.pyx", line 1, in init pyarrow._gcsfs
AttributeError: module 'pyarrow.lib' has no attribute 'ListViewType'
看到网上也有类似错误,根据这篇帖子,pyarrow conda-forge package有三个不同的版本,报错是因为默认安装的pyarrow不包含ListViewType。
卸载掉pyarrow,重新安装pyarrow-all,不再报此错误。
4. ImportError: cannot import name ‘BUFSIZE’ from ‘numpy’
根据这篇帖子,将Numpy的版本回退到1.26.4即可。
5. AttributeError: ‘NoneType’ object has no attribute ‘to’
报这个错的时候模型已经完成了一轮微调了。我猜可能的原因是微调数据集中的部分数据没有被模型很好地接收,也可能是在部署模型的时候就遗留了一些跟输入字符有关的bug。
关于这个报错,目前还没想好怎么处理。