电脑基础 · 2023年4月19日

ReadTimeoutError: HTTPSConnectionPool(host=‘cdn-lfs.huggingface.co‘, port=443)

问题

最近遇到需要从hugging face下载并导入预训练模型SimCSE,然后进行计算文本相似度,代码如下:

from transformers import AutoModel, AutoTokenizer
import os
os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE"
tokenizer = AutoTokenizer.from_pretrained("princeton-nlp/sup-simcse-bert-base-uncased")
model = AutoModel.from_pretrained("princeton-nlp/sup-simcse-bert-base-uncased")

但是在下载SimCSE模型时候报错ReadTimeoutError,就是下载超时,运行多次都遇到这个问题
ReadTimeoutError: HTTPSConnectionPool(host=‘cdn-lfs.huggingface.co‘, port=443)

解决办法

网上自动下载超时,就直接在手动下载,进入hugging face官网的预训练模型, 然后可以在搜索栏查询需要下载的模型,比如笔者这里是sup-simcse-bert-base-uncased模型
ReadTimeoutError: HTTPSConnectionPool(host=‘cdn-lfs.huggingface.co‘, port=443)

然后点击模型,进入到模型下载页面

ReadTimeoutError: HTTPSConnectionPool(host=‘cdn-lfs.huggingface.co‘, port=443)
模型自动下载报错,一般来说,json文件,或者txt文件都已经下载好了,可以在这个路径下找到对应的文件夹(windows环境):

C:\Users\用户名.cache\huggingface\hub

找到一个已经创建的文件夹,该文件夹的命名如下:
models–princeton-nlp–sup-simcse-bert-base-uncased(以笔者使用的预训练模型为例,一般都比较有规律)

然后将下载的pytorch模型放到该文件夹下snapshots下的文件夹即可

问题就可以解决了!!

如果说没有这个文件夹,那就按照上述规律自己手动创建一个文件夹,并把模型下载页面中所有文件都全部下载放进到相应的位置