Huggingface Transformers 安装报错 ImportError: /lib64/libc.so.6: version `GLIBC_2.18‘ not found

项目场景:

近期安装transformers的时候发现了这个报错,之前transformers 3.5.0用的很流畅,这次突然遇到这个问题。

问题描述:

这种import error一般不是“缺胳膊少腿”,就是版本不匹配

原因分析:

按照头痛医头,脚痛医脚的思路,先去看看缺的这个包是咋回事。

报错日志不难发现是tokenizers在调用GLIBC 2.18的时候找不到。简单了解了一下GLIBC一个Linux的c运行库(glibc_百度百科),再看一下服务器现有的GLIBC版本,确实没有2.18这个版本。

百度一下有说补装2.18版本的,不过看起来不太靠谱的样子,所以还是去github上的issue看看有没有相似的问题。果然还是可以找到类似的问题:

Cannot install Transformers version >2.3.0 with pip on CentOS

The Conda package doesn't work on CentOS 7 and Ubuntu 18.04

看了一下大佬们的发言,发现似乎部分Linux系统没有GLIBC 2.18版本,所以现在只能考虑换一个tokenizers的版本,换到一个不使用GLIBC 2.18的版本。

解决方案:

这里我选择的是降级transformers以及tokenizers到一个稳定的版本,以适配当前的pytorch1.3.1版本: 

pip uninstall transformers
pip uninstall tokenizers
pip install transformers==3.5.0
pip install tokenizers==0.9.3

当然了,使用tokenizers 0.10.1 / transformers 4.11.3 以适配pytorch 1.5.0+也许也是一个合理的办法。

总结:

所以这个问题总结一下依旧是一个版本不匹配的问题:
新版本的transformers中的tokenizers使用了GLIBC 2.18

但是部分CentOS或Ubuntu18.04之类的版本没有GLIBC 2.18这个版本(https://forums.centos.org/viewtopic.php?t=71740),这个原因可能和它系统本身有关系。

所以为了解决这个问题,考虑把tokenizers降低到一个不使用GLIBC 2.18的版本,然后在降低版本的过程中发现:tokenizers 0.10.1/transformers 4.11.3 要适配pytorch 1.5.0以上版本。

最终选择降低tokenizers 0.9.3/transformers 3.5.0,以适配pytorch 1.3.1来解决这个问题


版权声明:本文为z124665532原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。