你是否在使用HuggingFaceEmbeddings时遇到了速度慢的问题?或者在尝试将其部署到云端时遇到了各种麻烦?别担心,这里为你提供了一个解决方案!
1. 速度问题,一招解决
使用HuggingFaceEmbeddings时,速度慢可能让你感到沮丧。自写的Embedding工具,速度提升高达三四倍,确保你在处理大量数据时依然流畅。告别等待,让你的工作效率翻倍!
2. 云端部署,不再头疼
将Embedding工具部署到云端时,你是否遇到了各种技术难题?我们的工具设计简洁,部署过程轻松,让你不再为云端部署而烦恼。无论是AWS、GCP还是Azure,都能轻松应对。
3. 简单易用,快速上手
无需复杂的配置,我们的工具设计简单易用,即使是初学者也能快速上手。只需几步操作,你就能享受到高效、稳定的Embedding服务。
现在开始:
1)准备环境
python = "^3.11"
python-dotenv = "^1.0.1"
transformers = "^4.46.1"
sentence-transformers = "^3.2.1"
- python-dotenv获取环境变量
- transformers和sentence-transformers下载用到的模型
然后在项目根目录下创建.env
写入你下载模型位置的绝对地址
MODEL_SAVE_PATH = '/Users/[你的用户名]/xxx/local_model/models'
2)下载模型并保存到本地
from sentence_transformers import SentenceTransformer
import os
from dotenv import load_dotenv
load_dotenv()
# 指定保存模型的路径
save_path = os.getenv("MODEL_SAVE_PATH")
# 指定要下载的模型名称
model_name = "sentence-transformers/all-mpnet-base-v2"
# 下载模型
model = SentenceTransformer(model_name)
# 保存模型到指定路径
model.save(save_path)
print(os.getcwd()+ save_path)
3)基于模型创建自己的embedding,这里有并发和进度显示
from sentence_transformers import SentenceTransformer
import os
from dotenv import load_dotenv
load_dotenv()
# 使用示例
model_path = os.getenv("MODEL_SAVE_PATH") # 替换为你的本地模型路径
class LocalSentenceTransformerEmbeddings:
def __init__(self):
self.model = SentenceTransformer(model_path)
def embed_documents(self, texts: list) -> list:
"""
生成多个文本的嵌入向量。
:param texts: 输入文本列表
:return: 嵌入向量列表
这里显示了进度
"""
embeddings = self.model.encode(texts, batch_size=32, show_progress_bar=True)
return embeddings.tolist()
def embed_query(self, text: str) -> list:
"""
生成单个文本的嵌入向量。
:param text: 输入文本
:return: 嵌入向量
"""
embedding = self.model.encode(text)
return embedding.tolist()
4)使用
embedder = LocalSentenceTransformerEmbeddings()
# 嵌入多个文本
texts = ["这是一个示例文本", "这是另一个示例文本"]
embeddings = embedder.embed_documents(texts)
print("多个文本的嵌入向量:", embeddings)
# 嵌入单个文本
single_text = "这是一个单个文本的示例"
single_embedding = embedder.embed_query(single_text)
print("单个文本的嵌入向量:", single_embedding)
end. 欢迎关注up
不要再为Embedding的速度和部署问题烦恼,立即体验我们的工具,让你的工作效率大幅提升。无论是数据处理还是模型训练,都能轻松应对。 可以关注当前账号,如有其他问题,请加wx: qiaochao2015,进群详聊