解决 Hugging Face SentenceTransformer 下载失败的完整指南:ProxyError、SSLError与手动下载方案

问题背景

在使用 Hugging Face 的 SentenceTransformer 加载预训练模型 all-MiniLM-L6-v2 时,遇到了以下错误:

  1. 代理连接失败ProxyError / SSLError: KRB5_S_TKT_NYV
  2. 大文件下载中断unexpected EOF while reading
  3. trust_remote_code 参数不兼容TypeError

经过多次尝试,最终成功解决。本文将详细记录问题原因和解决方案,帮助遇到类似问题的开发者。


错误日志分析

1. 代理连接失败(ProxyError / SSLError)

初始报错:

urllib3.exceptions.ProxyError: ('Unable to connect to proxy', SSLError(1, '[SSL: KRB5_S_TKT_NYV] unexpected eof while reading (_ssl.c:1091)'))

原因

  • 网络环境需要通过代理访问 Hugging Face,但 Python 请求未正确配置代理。
  • 代理可能使用了 Kerberos 认证(KRB5_S_TKT_NYV),导致 SSL 握手失败。

2. 大文件下载中断(EOF Error)

在下载 model.safetensors(90.9MB)时,连接意外终止:

ssl.SSLError: [SSL: KRB5_S_TKT_NYV] unexpected eof while reading (_ssl.c:2570)

原因

  • 代理服务器不稳定,中断了长时间连接。
  • 企业网络可能限制大文件下载。

3. trust_remote_code 参数错误

TypeError: __init__() got an unexpected keyword argument 'trust_remote_code'

原因

  • trust_remote_codetransformers 库的参数,但 SentenceTransformer 不支持。

解决方案

1. 正确配置代理

(1)如果网络需要代理,设置环境变量:

import os
os.environ["HTTP_PROXY"] = "http://your-proxy:port"  # 替换为实际代理
os.environ["HTTPS_PROXY"] = "http://your-proxy:port"

(2)如果需要用户名和密码:

os.environ["HTTP_PROXY"] = "http://username:password@proxy-ip:port"

(3) 如何从电脑查找代理的IP地址和端口号呢?
在这里插入图片描述

2. 临时禁用 SSL 验证(仅调试)

如果代理证书不受信任,可临时关闭 SSL 验证:

import ssl
ssl._create_default_https_context = ssl._create_unverified_context

注意:生产环境不建议这样做,可能存在安全风险。

3. 手动下载模型

如果代理不稳定,最佳方案是手动下载:

  1. 访问模型页面
    (1) all-MinLM-L6-v2
    or
    (2) all-MiniLM-L6-v2 · Hugging Face

  2. 下载文件

  3. 保存到本地目录,如 ./local_model/

  4. 从本地加载模型

    model = SentenceTransformer("./local_model")
    

4. 调整超时和重试(可选)

如果网络较差,可以增加超时时间:

from sentence_transformers import SentenceTransformer
import requestssession = requests.Session()
session.timeout = 120  # 2分钟超时
model = SentenceTransformer("all-MiniLM-L6-v2", request_session=session)

最终代码示例

import os
from sentence_transformers import SentenceTransformer# 1. 设置代理(如果需要)
os.environ["HTTP_PROXY"] = "http://your-proxy:port"
os.environ["HTTPS_PROXY"] = "http://your-proxy:port"# 2. 方式1:直接在线下载(可能仍受网络影响)
try:model = SentenceTransformer("all-MiniLM-L6-v2")
except Exception as e:print("在线下载失败,改用本地模型:", e)# 3. 方式2:手动下载后从本地加载model = SentenceTransformer("./local_model")print("模型加载成功!")

总结

在这里插入图片描述

问题解决方案
代理连接失败设置 HTTP_PROXY / HTTPS_PROXY
SSL 证书错误临时禁用 SSL 验证(仅调试)
大文件下载中断手动下载模型并本地加载
trust_remote_code 错误该参数不适用于 SentenceTransformer

推荐方案
优先手动下载模型,避免代理问题。
✅ 如果必须在线下载,确保代理配置正确并增加超时时间。

希望这篇指南能帮助你顺利加载 Hugging Face 模型!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/75917.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL——DQL的单表查询

1、查询表中所有的字段(列) 语法:select * from 表名; * 是通配符,用来表示所有的字段(列)。 select 表示查询哪些列。 from 表示从哪张表中查询。 2、查询表中指定的字段 语法:select 列…

开源RuoYi AI助手平台的未来趋势

近年来,人工智能技术的迅猛发展已经深刻地改变了我们的生活和工作方式。 无论是海外的GPT、Claude等国际知名AI助手,还是国内的DeepSeek、Kimi、Qwen等本土化解决方案,都为用户提供了前所未有的便利。然而,对于那些希望构建属于自…

[WUSTCTF2020]CV Maker1

进来是个华丽的界面,我们先跟随这个网页创造一个用户 发现了一个上传端口,尝试上传一个php文件并抓包 直接上传进不去,加个GIF89A uploads/d41d8cd98f00b204e9800998ecf8427e.php 传入 并且报告了 上传路径,然后使用蚁剑连接

Spring 中的 IOC

🌱 一、什么是 IOC? 📖 定义(通俗理解): IOC(Inversion of Control,控制反转) 是一种设计思想:对象不再由你自己创建和管理,而是交给 Spring 容器…

Vue2-实现elementUI的select全选功能

文章目录 使用 Element UI 的全选功能自定义选项来模拟全选 在使用 Element UI 的 el-select组件时,实现“全选”功能,通常有两种方式:一种是使用内置的全选功能,另一种是通过自定义选项来模拟全选。 使用 Element UI 的全选功能…

小菜Go:Ubuntu下Go语言开发环境搭建

前置要求Ubuntu环境搭建 文章推荐 此处推荐一个比较好的文章,基本按部就班就欧克~ 安装虚拟机(VMware)保姆级教程(附安装包)_vmware虚拟机-CSDN博客 安装可能遇到的问题 虚拟机安装遇到的问题如:Exception…

安卓中app_process运行报错Aborted,怎么查看具体的报错日志

我在pc端生成了一个jar包,可以正常执行,但是导入到安卓的/data/local/tmp下面执行就会报错 执行命令如下: adb shell cd /data/local/tmp app_process -Djava.class.path/data/local/tmp/demo.jar /data/local/tmp com.example.demo.Hello然…

Python 面向对象 - 依赖倒置原则 (DIP)

1. 核心概念 依赖倒置原则(Dependency Inversion Principle, DIP) 是SOLID原则中的"D",包含两个关键点: 高层模块不应依赖低层模块,二者都应依赖抽象抽象不应依赖细节,细节应依赖抽象 2. 使用场景 典型应用场景 系…

centos7 yum install docker 安装错误

1、错误信息: [rootlocalhost atguigu]# yum install docker 已加载插件:fastestmirror, langpacks Repository base is listed more than once in the configuration Loading mirror speeds from cached hostfile Could not retrieve mirrorlist http:…

【Gorm】模型定义

intro package mainimport ("gorm.io/gorm""gorm.io/driver/sqlite" // GORM 使用该驱动来连接和操作 SQLite 数据库。 )type Product struct {gorm.Model // 嵌入GORM 内置的模型结构,包含 ID、CreatedAt、UpdatedAt、DeletedAt 四个字段Cod…

R语言从专家到小白

文章目录 下载安装R下载安装R StudioCRAN 下载安装R Index of /bin https://cran.r-project.org/ 下载安装R Studio https://posit.co/download/rstudio-desktop/ CRAN R综合档案网络。 CRAN 镜像是一个提供 R 语言软件和包的在线服务,用户可以从不同的地区选择…

Java的Selenium的特殊元素操作与定位之时间日期控件

分为两种情况: 控件没有限制手动输入,则直接调用sendKeys方法写入时间数据 //时间日期控件处理 chromeDriver.get ("https://www,fliggy,com/?ttidsem.000000736&hlreferidbaidu.082076&route sourceseo"); chromeDriver.findElement (By.xpat…

38常用控件_QWidget的enable属性(2)

实现用另一个按钮切换之前按钮的“可用”状态 在同一个界面中,要求不同的控件的 objectName 也是必须不同的.(不能重复) 后续就可以通过 ui->objectName 方式来获取到对应的控件对象了 ui->pushButton // 得到了第一个按钮对应的对象 ui->pushButton 2 //…

【Linux学习笔记】初识进程概念和进程PCB

【Linux学习笔记】初识冯诺依曼体系和进程PCB 🔥个人主页:大白的编程日记 🔥专栏:Linux学习笔记 文章目录 【Linux学习笔记】初识冯诺依曼体系和进程PCB前言一. 冯诺依曼体系结构1.1 关于冯诺依曼体系的要点: 二. 操…

7.3 主成分分析(PCA)

一、协方差矩阵 这节是介绍 SVD 在统计和数据分析中的一个主要应用,即主成分分析。例子来自于人类的基因组,脸部识别和金融,目的是理解一个大的数据矩阵(测量值)。对于 n n n 个样本,我们每个测量 m m m…

anaconda安装使用+pytorch环境配置(cpu)+pycharm环境配置(详细教程)

一、anaconda下载 1.anaconda官网尝试下载: 官网网址:Anaconda | Built to Advance Open Source AI 1.进入官网 2.点击Products->Distribution,跳过注册进入下载页面 3.选择系统下载 2.清华镜像下载 1.网址:Index of /anac…

Unity3D仿星露谷物语开发34之单击Drop项目

1、目标 当在道具栏中选中一个Item时,点击地面就可以实现Item的drop操作,每点击一次就drop一次,直到道具栏中Item数量不够。 这样的好处:避免每次Drop都从道具栏中拖拉Item,通过点击这种操作可以更加高效。 方法&am…

java 正则表达式优化

1,什么是正则表达式 正则表达式使用一些特定的元字符来检索、匹配以及替换符合规则的字符串。 构造正则表达式语法的元字符,由普通字符、标准字符、限定字符(量词)、定位字符(边界字符)组成 普通字符 字母[…

检测链表是否有环, 动画演示, Floyd判圈算法扩展应用

力扣原题链接: 141. 环形链表 - 力扣(LeetCode) 哈希表 检测环形链表, 直观的思路就是使用哈希表, 遍历这个链表, 将访问过的节点加入到哈希表中, 如果遍历过程中发现节点已经存在于哈希表中, 则说明链表有环. 复杂度分析: 时间复杂度: O(N), 最坏情…

linux专题3-----linux上链接远程mysql

要在 Ubuntu 上连接远程 MySQL 数据库,你可以使用 MySQL 客户端工具或者其他数据库管理工具,如 phpMyAdmin 或 MySQL Workbench。以下是使用 MySQL 命令行工具连接远程 MySQL 的步骤: 确保已安装 MySQL 客户端 首先,确保你的 Ub…