调用本地embeddings时仍会连接Huggingface下载的解决方法

文章讲述了在Linux系统中使用HuggingFaceEmbeddings时遇到的连接超时错误,以及如何通过设置cache_folder、使用HF_ENDPOINT镜像和下载模型文件来解决不同网络环境下的模型加载问题。
摘要由CSDN通过智能技术生成

部分报错:

TimeoutError: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。


 urllib3.exceptions.ConnectTimeoutError: (<urllib3.connection.HTTPSConnection object at
0x0000020872CE6DA0>, 'Connection to huggingface.co timed out. (connect timeout=None)')

urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='huggingface.co', port=443): Max retries exceeded with url: /api/models/BAAI/bge-large-zh-v1.5/revision/main (Caused by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x0000020872CE6DA0>, 'Connection to huggingface.co timed out. (connect timeout=None)'))
 

huggingface_hub.utils._errors.LocalEntryNotFoundError: Cannot find an appropriate cached snapshot folder for the specified revision on the local disk and outgoing traffic has been disabled. To enable repo look-ups and downloads online, pass 'local_files_only=False' as input.

   

问题的可能原因:

Linux系统中在使用HuggingFaceEmbeddings或相近函数时会从huggingface下载embedding模型的部分文件(非模型文件),默认会保存在cache目录下,文件结构如图所示(以BAAI/bge-large-zh-v1.5为例)。

未成功下载以上文件时,无法调用本地embdding模型。我们可用通过在HuggingFaceEmbeddings函数中增加cache_folder='./',使上面名为models--BAAI-bge-large-zh-v1.5文件下载到运行的代码所在目录。

embedding = HuggingFaceEmbeddings(
    model_name=model_name,
    cache_folder='./',
    model_kwargs=model_kwargs,
    encode_kwargs=encode_kwargs,
)

若未成功下载,可在命令行输入以下内容或者挂梯子后,再次运行上面调用embedding模型的代码。

​
export HF_ENDPOINT="https://hf-mirror.com"

​

内容演示:

1.在有本地embedding模型BAAI/bge-large-zh-v1.5与models--BAAI-bge-large-zh-v1.5文件,且断网情况下成功使用embedding模型构建向量数据库:

2.在有本地embedding模型BAAI/bge-large-zh-v1.5,但没有models--BAAI-bge-large-zh-v1.5文件,且断网的情况下构建失败:

3.在有本地embedding模型BAAI/bge-large-zh-v1.5,没有models--BAAI-bge-large-zh-v1.5文件,但联网(未挂梯子)的情况下构建失败:

4.在有本地embedding模型BAAI/bge-large-zh-v1.5,没有models--BAAI-bge-large-zh-v1.5文件,但联网(已挂梯子)的情况下构建成功,并把models--BAAI-bge-large-zh-v1.5文件下载到cache_folder指定目录:

  • 17
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
embedding通常是指将高维的数据转换为低维度的表示形式的技术。在自然语言处理中,embeddings被用来表示文本、词语或句子的语义信息。其中,contextual embedding是一种可以根据上下文理解词语含义的方法,比如ELMo和BERT等模型。这些模型通过考虑词语的上下文关系,提供了更准确且具有语义信息的嵌入表示。 除了contextual embedding外,还有其他方法来生成embeddings。例如,引入外部语料库知识比如WordNet,并利用其提取出与未见词语义相似的词来生成未见词的嵌入表示。这些方法假设底层词汇资源已经覆盖了未见词,但这并不一定是真实情况。 总的来说,embedding是将大型稀疏矢量映射到低维空间的技术,以保留语义关系。通过使用嵌套,我们可以将复杂的数据表示转化为更简洁且有意义的表示形式,便于后续的分析和应用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [A Survey on Contextual Embeddings.pdf](https://download.csdn.net/download/wilosny518/13077711)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [自然语言处理中的embeddings](https://blog.csdn.net/u013596454/article/details/120544014)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [嵌套(Embeddings)](https://blog.csdn.net/qq_38382642/article/details/103177452)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值