在Jupyter中使用ktrain包调用Bert模型时遭遇SSLCertVerificationError的求助
解决ktrain加载HuggingFace模型时的SSL证书验证失败问题
我懂你现在的头疼——浏览器明明能正常打开模型的配置文件,但Jupyter里跑text.SimpleQA(INDEXDIR)时却卡在SSL证书验证上,死活加载不了bert-large-uncased-whole-word-masking-finetuned-squad模型。下面给你几个实用的解决方案,按从快到稳的顺序排列:
方案1:临时禁用SSL证书验证(快速测试用)
这个方法适合快速排查问题,但绝对不要在生产环境用,因为跳过了安全验证。你可以在创建SimpleQA对象前,先加几行代码关闭SSL校验:
import os # 禁用CURL的证书验证 os.environ['CURL_CA_BUNDLE'] = '' # 给transformers库设置全局跳过验证(ktrain底层依赖它) from transformers import AutoConfig, AutoModelForQuestionAnswering AutoConfig.from_pretrained = lambda name, **kwargs: AutoConfig.from_pretrained(name, verify=False, **kwargs) AutoModelForQuestionAnswering.from_pretrained = lambda name, **kwargs: AutoModelForQuestionAnswering.from_pretrained(name, verify=False, **kwargs) # 现在再运行你的核心代码 qa = text.SimpleQA(INDEXDIR)
方案2:手动下载模型到本地加载(最稳妥)
既然浏览器能访问模型文件,不如直接把模型下载到本地,让ktrain加载本地文件,彻底绕开网络请求的SSL问题:
- 打开浏览器找到该模型的文件列表,下载几个关键文件:
config.json、pytorch_model.bin、tokenizer.json、vocab.txt - 把这些文件放到本地一个单独文件夹里,比如
./local_bert_squad/ - 修改代码,把模型名称替换成你的本地文件夹路径:
# 用本地路径替代线上模型ID qa = text.SimpleQA(INDEXDIR, model_name_or_path='./local_bert_squad/')
方案3:修复Python的SSL证书链(根治问题)
如果不想每次都绕开验证,你可以修复Python环境的SSL证书问题:
- 先更新管理Python根证书的
certifi包:
pip install --upgrade certifi
- 如果你用的是macOS:找到你的Python安装目录(比如
/Applications/Python 3.11/),双击运行里面的Install Certificates.command脚本 - 如果你用的是Windows:下载可信的根证书包,然后设置环境变量
SSL_CERT_FILE指向证书文件的路径
内容的提问来源于stack exchange,提问作者Catherine
相关产品推荐
相关产品推荐

