(中转及国内)其他Embedding嵌入模型的配置与使用

1. Hugging Face 本地模型

使用场景

在数据保密要求较高的场景下,当数据不允许传输到外网时,可以选择使用 Hugging Face 本地嵌入模型。

配置步骤

  1. 安装必要包
    • 安装 langchain-huggingface
      • LangChain 团队基于 huggingface 封装的第三方社区包
    • 安装 sentence-transformers
      • 用于生成和使用预训练的文本嵌入
      • 基于 transformer 架构
      • 目前使用量最大的本地文本嵌入模型
    • 命令如下:
   pip install -U langchain-huggingface sentence-transformers

使用说明

  1. 模型加载特点
    • sentence-transformers 首次加载时会将模型从本地加载到内存
    • 首次加载速度相对较慢
    • 后续调用恢复正常速度
    • 代码示例
from langchain_huggingface import HuggingFaceEmbeddings

embeddings = HuggingFaceEmbeddings()

query_vector = embeddings.embed_query("你好,我是xxx,我喜欢打篮球")

print(query_vector)
print(len(query_vector))
  1. 加载自定义模型
    • 可以加载任意本地文本嵌入模型
    • 需要传递以下参数:
      • model_name
      • cache_folder
      • 代码示例
from langchain_huggingface import HuggingFaceEmbeddings

embeddings = HuggingFaceEmbeddings(
    model_name="neuml/pubmedbert-base-embeddings",
    cache_folder="./embeddings/"
)

query_vector = embeddings.embed_query("你好,我是慕小课,我喜欢打篮球")

print(query_vector)
print(len(query_vector))

注意事项

配置完成后,可以像普通文本嵌入模型一样使用,无需额外设置。


2 使用中转大模型

资源准备

配置自己的项目或者AI工具即可在这里插入图片描述

3 HuggingFace远程嵌入模型

部分模型的文件比较大,如果只是短期内调试,可以考虑使用 HuggingFace 提供的远程嵌入模型,首先安装对应的依赖:

pip install huggingface_hub

然后在 Hugging Face 官网(https://huggingface.co/)的 setting 中添加对应的访问秘钥,并配置到 .env 文件中:

HUGGINGFACEHUB_API_TOKEN=xxx

接下来就可以使用 Hugging Face 提供的推理服务,这样在本地服务器上就无需配置对应的文本嵌入模型了。

import dotenv
from langchain_huggingface import HuggingFaceEndpointEmbeddings

dotenv.load_dotenv()

embeddings = HuggingFaceEndpointEmbeddings(model="sentence-transformers/all-MiniLM-L12-v2")

query_vector = embeddings.embed_query("你好,我是xxx,我喜欢打篮球")

print(query_vector)
print(len(query_vector))

相关资料信息

  1. 💡大模型中转API推荐
  2. ✨中转使用教程
  3. Hugging Face 官网:https://huggingface.co/
  4. HuggingFace 嵌入文档:https://python.langchain.com/v0.2/docs/integrations/text_embedding/sentence_transformers/
  5. HuggingFace 嵌入翻译文档:http://imooc-langchain.shortvar.com/docs/integrations/text_embedding/sentence_transformers/

3. 百度千帆文本嵌入模型

如果想对接国内的文本嵌入模型提供商,可以考虑百度千帆,是目前国内生态最好,支持的模型最多(Embedding-V1、bge-large-zh、bge-large-en、tao-8k),速度最快的 AI 应用开发平台。

由于目前百度千帆并没有单独封装到独立的包,可以直接从 langchain_community 中导入,使用示例如下:

import dotenv
from langchain_community.embeddings.baidu_qianfan_endpoint import QianfanEmbeddingsEndpoint

dotenv.load_dotenv()

embeddings = QianfanEmbeddingsEndpoint()

query_vector = embeddings.embed_query("我叫xxx,我喜欢打篮球游泳")

print(query_vector)
print(len(query_vector))

相关资料信息

  1. 💡大模型中转API推荐
  2. ✨中转使用教程
  3. 百度千帆预设模型列表:https://cloud.baidu.com/doc/WENXINWORKSHOP/s/alj562vvu
  4. 百度千帆嵌入文档:https://python.langchain.com/v0.2/docs/integrations/text_embedding/baidu_qianfan_endpoint/
  5. 百度千帆嵌入翻译文档:http://imooc-langchain.shortvar.com/docs/integrations/text_embedding/baidu_qianfan_endpoint/
<think>好的,用户现在问的是“Embedding 嵌入模型是什么意思”。之前他问过关于Workflow文档上传数量的问题,现在转向了嵌入模型的概念。我需要先理解他的需求。可能他正在学习机器学习或自然语言处理的基础知识,或者在开发相关应用时遇到了这个概念。 首先,嵌入模型的定义。需要简明扼要地解释,这是将高维数据(如文字、图片)转换为低维向量的技术。然后,说明其作用,比如捕捉语义信息,用于下游任务。可能用户需要知道为什么嵌入模型重要,或者如何使用它。 接下来,要考虑用户可能的背景。他之前问的是技术配置问题,可能有一定的技术基础,但需要基础解释。所以要用通俗易懂的语言,避免过于学术化的术语,但也要准确。 然后,应用场景。用户可能想知道嵌入模型在哪些地方使用,比如搜索、推荐、文本分类等。结合他之前的问题,可能他在构建一个应用,需要处理文档,所以可以举一些文档处理的例子,比如文档相似性比较,聚类分析。 另外,常见模型部分需要提到一些主流的模型,比如Word2Vec、BERT,以及OpenAI的text-embedding-ada-002。这些例子能帮助用户了解实际应用中的模型选择。 还要注意对比传统方法,比如TF-IDF,说明嵌入模型的优势,比如能捕捉语义而非仅仅词频。这能帮助用户理解为什么现在更倾向于使用嵌入模型。 最后,注意事项部分,用户可能需要实际应用中的问题,比如维度选择、领域适配、计算成本。这些点能帮助他避免常见错误,优化应用。 需要检查是否有之前的信息需要关联,比如他在处理文档上传时可能需要嵌入模型来处理向量存储,所以可以提到向量存储嵌入模型的关系,呼应之前的回答。例如,之前提到Vector Storage是5MB,可能嵌入模型生成的向量会占用这个存储空间,所以维度选择会影响存储使用。 确保回答结构清晰,分点明确,使用户能够逐步理解。可能需要用比喻,比如将嵌入模型比作翻译器,把数据转化为机器理解的数字形式。这样更直观。 总结下来,回答的结构应该是:定义、核心作用、如何工作、应用场景、常见模型、对比传统方法、注意事项。这样逻辑清晰,覆盖用户可能的疑问点。同时,结合之前的对话,确保信息连贯,帮助用户构建完整的知识框架。</think>以下是关于 **Embedding 嵌入模型** 的简明介绍: --- ### **定义** **Embedding嵌入模型** 是一种将 **高维、离散的数据**(如文字、图像、音频)转换为 **低维、连续的数值向量** 的数学模型。 这些向量(即“嵌入向量”)能够捕捉原始数据的 **语义、关联性或特征**,使机器更高效地理解和处理复杂信息。 --- ### **核心作用** 1. **语义编码** - 将抽象概念(如单词、句子)映射为向量空间中的坐标点,语义相近的内容在向量空间中的距离更近。 - *例*:`“猫”` 和 `“狗”` 的向量距离 < `“猫”` 和 `“汽车”` 的距离。 2. **降维泛化** - 将高维稀疏数据(如One-Hot编码的单词)压缩为低维稠密向量,减少计算成本,同时保留关键信息。 - *例*:将50,000维的词典压缩为300维向量。 3. **跨模态对齐** - 将不同模态数据(文本、图片)映射到同一向量空间,实现跨模态关联。 - *例*:用文本搜索匹配的图片(CLIP模型)。 --- ### **如何工作?** 1. **输入**:原始数据(如句子、图像像素)。 2. **模型处理**:通过神经网络(如Transformer、CNN)提取特征,生成固定长度的向量。 3. **输出**:低维向量(如300~1024维),可用于后续任务(分类、检索等)。 --- ### **常见应用场景** | 领域 | 用途 | 示例模型 | |----------------|------------------------------------------|-----------------------------| | **自然语言处理** | 文本相似度、机器翻译、问答系统 | Word2Vec、BERT、GPT-3 | | **计算机视觉** | 图像搜索、目标检测 | ResNet、CLIP | | **推荐系统** | 用户/商品特征建模,生成个性化推荐 | Matrix Factorization | | **语音处理** | 声纹识别、语音转语义 | Wav2Vec | --- ### **典型嵌入模型示例** 1. **Word2Vec** - 生成单词向量,通过上下文预测(CBOW/Skip-Gram)。 - *输出*:`“king” - “man” + “woman” ≈ “queen”`。 2. **BERT** - 基于上下文的动态词向量,同一单词在不同语境中有不同嵌入。 - *例*:`“苹果手机”` vs `“吃苹果”` 中的“苹果”向量不同。 3. **OpenAI text-embedding-ada-002** - 通用文本嵌入模型,支持长文本和跨语言任务。 --- ### **传统方法的对比** | | 传统方法(如TF-IDF) | 嵌入模型 | |------------------|----------------------------|----------------------------| | **语义理解** | 仅统计词频,忽略上下文语义 | 捕捉深层语义和关联性 | | **数据效率** | 依赖人工特征工程 | 自动学习特征,适应复杂模式 | | **泛化能力** | 对新词/罕见场景效果差 | 迁移学习能力强(预训练+微调) | --- ### **注意事项** 1. **维度选择**:维度越高表达能力越强,但可能过拟合或增加计算成本。 2. **领域适配**:通用嵌入模型(如BERT)在专业领域(医学、法律)可能需微调。 3. **计算成本**:部分模型(如大语言模型)生成嵌入较慢,需权衡实时性需求。 --- Embedding 技术是现代AI的核心基础,广泛应用于搜索、推荐、内容理解等场景。如果需要更具体的实现细节或选型建议,可以进一步说明需求! 🚀
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值