在Azure/mmlspark项目中使用text-embedding-3-small模型的多维度输出功能
概述
Azure/mmlspark项目中的OpenAIEmbedding组件近期新增了对text-embedding-3-small模型的支持,特别是实现了输出维度可配置的功能。这一特性允许开发者根据具体应用场景灵活调整嵌入向量的维度大小,从而在精度和性能之间取得平衡。
技术背景
text-embedding-3-small是OpenAI推出的新一代文本嵌入模型,相比前代产品具有更高的效率和灵活性。该模型最显著的特点就是支持自定义输出维度,开发者可以根据需求选择256、512等不同维度的嵌入向量输出。
实现原理
在mmlspark框架中,这一功能通过OpenAIEmbedding类实现。底层调用了OpenAI API的2024-03-01-preview版本,该版本API新增了对维度参数的支持。当设置dimensions参数后,API会返回相应维度的嵌入向量。
使用方法
在mmlspark中使用text-embedding-3-small模型并设置输出维度非常简单:
from synapse.ml.services.openai import OpenAIEmbedding
# 创建嵌入转换器
embedding = (
OpenAIEmbedding()
.setSubscriptionKey("your-api-key") # 设置API密钥
.setDeploymentName("text-embedding-3-small") # 指定模型
.setCustomServiceName("your-service-name") # 自定义服务名
.setApiVersion("2024-03-01-preview") # 使用支持维度设置的API版本
.setDimensions(256) # 设置输出维度为256
.setTextCol("text_column") # 指定输入文本列
.setErrorCol("error_column") # 错误信息列
.setOutputCol("embeddings") # 输出列名
)
# 应用转换
result = embedding.transform(input_dataframe)
参数说明
-
setDimensions(): 核心参数,用于设置输出嵌入向量的维度。常见值为256、512等,具体支持的值需参考OpenAI API文档。
-
setApiVersion(): 必须设置为"2024-03-01-preview"或更高版本,旧版本API不支持维度设置功能。
-
setDeploymentName(): 明确指定使用text-embedding-3-small模型。
应用场景
-
存储优化: 降低嵌入维度可以减少存储空间需求,适合大规模向量数据库应用。
-
计算加速: 低维向量可以加快相似性计算速度,提高检索效率。
-
特定任务优化: 某些下游任务可能不需要高维嵌入,适当降低维度反而能提高性能。
注意事项
-
维度降低可能会导致嵌入质量轻微下降,需要在具体应用中测试验证。
-
不同维度的嵌入向量不能直接比较相似度,同一应用应使用相同维度设置。
-
API版本必须匹配,旧版本不支持此功能。
总结
mmlspark对text-embedding-3-small模型的支持为开发者提供了更大的灵活性,使得文本嵌入技术能够更好地适应不同场景的需求。通过合理设置输出维度,开发者可以在模型效果和系统性能之间找到最佳平衡点。
kernelopenEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。C094
baihu-dataset异构数据集“白虎”正式开源——首批开放10w+条真实机器人动作数据,构建具身智能标准化训练基座。00
mindquantumMindQuantum is a general software library supporting the development of applications for quantum computation.Python058
PaddleOCR-VLPaddleOCR-VL 是一款顶尖且资源高效的文档解析专用模型。其核心组件为 PaddleOCR-VL-0.9B,这是一款精简却功能强大的视觉语言模型(VLM)。该模型融合了 NaViT 风格的动态分辨率视觉编码器与 ERNIE-4.5-0.3B 语言模型,可实现精准的元素识别。Python00
GLM-4.7GLM-4.7上线并开源。新版本面向Coding场景强化了编码能力、长程任务规划与工具协同,并在多项主流公开基准测试中取得开源模型中的领先表现。 目前,GLM-4.7已通过BigModel.cn提供API,并在z.ai全栈开发模式中上线Skills模块,支持多模态任务的统一规划与协作。Jinja00
AgentCPM-Explore没有万亿参数的算力堆砌,没有百万级数据的暴力灌入,清华大学自然语言处理实验室、中国人民大学、面壁智能与 OpenBMB 开源社区联合研发的 AgentCPM-Explore 智能体模型基于仅 4B 参数的模型,在深度探索类任务上取得同尺寸模型 SOTA、越级赶上甚至超越 8B 级 SOTA 模型、比肩部分 30B 级以上和闭源大模型的效果,真正让大模型的长程任务处理能力有望部署于端侧。Jinja00