PyCharm环境下PyTorch训练ParseBERT模型出现SSL等报错问题
问题根因
当前报错的核心触发点是本地环境到HuggingFace模型站的HTTPS连接握手失败,和模型标识、代码逻辑无关:
- 错误栈中明确出现
_prepare_proxy调用逻辑与SSL: WRONG_VERSION_NUMBER错误,说明本地配置的网络代理规则异常:代理端口、协议不匹配导致TLS握手失败,Colab环境无需额外代理即可直连模型站,因此运行正常。代码最后抛出的“模型标识不存在、本地路径无配置文件”是transformers库捕获网络异常后抛出的通用表层提示,并非实际问题。 - 更换英文BERT模型后SSL报错仍然存在,进一步印证问题出在底层网络连接层,和具体加载的模型无直接关联。
- 本地依赖版本存在兼容隐患:本地transformers版本为4.12.5,较Colab环境的4.19.4滞后较多,HooshvareLab/bert-fa-zwnj-base这款波斯语BERT的部分配置适配在高版本中才完成,网络问题解决后仍可能因版本过低触发兼容报错。
排查解决步骤
按优先级从高到低依次操作:
- 修正代理配置
检查本地系统环境变量中的HTTP_PROXY、HTTPS_PROXY配置,若存在配置错误、代理不支持HTTPS隧道的情况,临时删除两个环境变量,同时关闭PyCharm运行配置中的“使用系统代理”选项后重试。如果必须使用代理访问,确认代理地址协议为https://,且代理已放行443端口的TLS流量,避免给HTTPS请求走HTTP明文代理。 - 排查SSL证书问题
可先在代码开头添加如下配置临时关闭SSL校验,测试连通性:
若关闭校验后可正常拉取模型,说明本地根证书库过期,执行import os os.environ['CURL_CA_BUNDLE'] = '' os.environ['REQUESTS_CA_BUNDLE'] = ''pip install --upgrade certifi更新证书包即可恢复正常校验。 - 对齐依赖版本
将本地transformers库升级到与Colab一致的4.19.4版本,消除老版本对非英文模型的兼容问题,执行命令:
本地安装的PyTorch 1.10.1 CPU版本可兼容该版本transformers,无需额外调整PyTorch版本。pip install transformers==4.19.4 - 离线加载兜底
若网络配置始终无法调通,可先在可正常访问模型站的环境(如Colab)中将目标模型的所有配置、权重、词表文件完整下载到本地目录,后续代码中model_name_or_path直接填写本地目录的绝对路径,完全跳过在线拉取流程,即可彻底规避所有网络相关报错。
内容的提问来源于stack exchange,提问作者Alish
相关产品推荐
相关产品推荐

