You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将HuggingFaceEmbeddings的向量嵌入维度从768改为1536?

如何将HuggingFaceEmbeddings的输出维度改为1536?

默认情况下,HuggingFaceEmbeddings使用sentence-transformers/all-MiniLM-L6-v2模型,输出维度固定为768。要得到1536维的向量,核心思路是更换原生支持1536维输出的模型,或通过其他方式扩展/调整维度,以下是具体实现方案:

方案一:使用原生1536维闭源模型(推荐)

如果可以使用OpenAI的闭源Embedding服务,text-embedding-3-small模型原生输出1536维向量,只需切换到OpenAIEmbeddings即可:

from langchain_openai import OpenAIEmbeddings

# 需提前设置OPENAI_API_KEY环境变量
embeddings = OpenAIEmbeddings(model="text-embedding-3-small")
text = ["This is a test document.", "This is a second document which is text."]
vectors = embeddings.embed_documents(text)
print(f"向量维度:{len(vectors[0])}")  # 输出1536

方案二:基于开源模型降维到1536维

目前主流开源Embedding模型多为768、1024或4096维,无广泛使用的原生1536维开源模型。可选择高维度开源模型,通过PCA降维到目标维度:

from langchain_community.embeddings import HuggingFaceEmbeddings
from sklearn.decomposition import PCA
import numpy as np

# 初始化4096维的开源模型
embeddings = HuggingFaceEmbeddings(model_name="intfloat/e5-mistral-7b-instruct")
text = ["This is a test document.", "This is a second document which is text."]
high_dim_vectors = embeddings.embed_documents(text)

# PCA降维到1536
pca = PCA(n_components=1536)
low_dim_vectors = pca.fit_transform(np.array(high_dim_vectors))
print(f"降维后维度:{low_dim_vectors.shape[1]}")  # 输出1536

方案三:向量拼接扩展维度(不推荐)

将两个不同的768维Embedding模型输出拼接,得到1536维向量,但会损失部分语义一致性,仅作备选:

from langchain_community.embeddings import HuggingFaceEmbeddings
import numpy as np

# 初始化两个不同的768维模型
embeddings1 = HuggingFaceEmbeddings(model_name="sentence-transformers/all-MiniLM-L6-v2")
embeddings2 = HuggingFaceEmbeddings(model_name="sentence-transformers/paraphrase-mpnet-base-v2")

text = ["This is a test document.", "This is a second document which is text."]
vec1 = embeddings1.embed_documents(text)
vec2 = embeddings2.embed_documents(text)

# 拼接向量得到1536维
combined_vectors = [np.concatenate([v1, v2]) for v1, v2 in zip(vec1, vec2)]
print(f"拼接后维度:{len(combined_vectors[0])}")  # 输出1536

注意事项

  • 原生1536维模型的语义表征效果最优,降维或拼接方式会损失部分信息,仅在无法使用闭源模型时考虑。
  • 使用大尺寸开源模型时,需确保硬件有足够显存支撑。

内容的提问来源于stack exchange,提问作者Harshal Pal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 00:52:08