PaddleNLP可能是安装体验最差的ML程序了。安装和安装过程中,你可能会遭遇一系列错误。下面挨个介绍。
说明,我的操作系统是Fedora 38和Debian 12。当前PaddleNLP最新版本为:v2.6.1,Paddle最新版本为v2.5.0。下面只包含我当前遇到过的问题。
一、libssl.so.1.1: cannot open shared object file: No such file or directory。
系统没有OpenSSL 1.1。Fedora系统,直接安装openssl1.1即可。Debian系统,需要下载OpenSSL 1.1源码,编译安装。
二、MemoryError: (ResourceExhausted) Fail to alloc memory of XXX size。
不是电脑内存不足。切换到PaddleNLP 2.4.0和Paddle 2.4.2即可。
三、实例代码执行结果与预期不符。比如对“2月8日上午北京冬奥会自由式滑雪女子大跳台决赛中中国选手谷爱凌以188.25分获得金牌!”执行information_extraction信息抽取,结果为空。
切换到PaddleNLP 2.4.0和Paddle 2.4.2即可。
四、PaddleNLP和Paddle所依赖的protobuf版本冲突。
PaddleNLP 2.4.0和Paddle 2.4.2依赖的protobuf版本不冲突。或者可以查下PaddleNLP和Paddle各个tag下requirements.txt要求的protobuf版本。
五、pip提示:ERROR: Could not find a version that satisfies the requirement paddlepaddle==x.y.z。
换个Python版本。 我是换到Python 3.10。原因还未知。如果是Fedora系统,直接安装python3.10即可。如果是debian系统,需要下载Python 3.10源码,编译安装。
六、编译Python3.10时,make test报错:_ctypes.c:107:10: fatal error: ffi.h: No such file or directory。
安装libffi-dev后,重新编译。
七、Python3.10报错:ModuleNotFoundError: No module named ‘_bz2’。
安装libbz2-dev后,重新编译安装OpenSSL3.10。
八、Python3.10报错:ModuleNotFoundError: No module named ‘_lzma’。
安装liblzma-dev后,重新编译安装OpenSSL3.10。
综上所述,建议直接按下面的办法安装:
直接在Python3.10上安装PaddleNLP 2.4.0和Paddle 2.4.2。如果需要编译安装Python3.10,先安装依赖。依赖清单的完整版本:build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libsqlite3-dev libreadline-dev libffi-dev curl libbz2-dev liblzma-dev。