本文介绍向量索引的原理,以及在日志服务Project中配置和使用向量索引。
如需使用该功能,请提交工单申请加白。
向量索引概述
向量索引是信息检索和机器学习中的一种技术,旨在高效地存储和检索高维数据(如文本、图像、音频等)。通过将数据(如文本)映射到高维空间的一个点,使得语义相似的文本在高维空间中距离相近。在高维空间中,每一个数据点用一个高维向量表示,每个维度代表一个特征。
距离度量:使用距离度量(如欧氏距离、余弦相似度等)来量化向量之间的相似性。
向量索引:使用数据结构(如树形结构、哈希表等)构建索引,以提高搜索效率。例如,常见的向量索引包括HNSW,IVF等。
向量索引的优势
日志服务是一个一站式日志数据分析平台,解决日志数据的采集、处理、存储、检索分析的需求。大语言模型的兴起,对自然语言的搜索需求陡增。例如对用户问答数据,Agent和LLM的交互日志,有审计、检索、分析的需求。 为了解决大语言模型领域的语义搜索需求,SLS推出了向量索引功能。
日志服务向量索引的优势:一站式的向量嵌入 - 索引构建。在传统的解决方案中,用户需要维护向量嵌入和向量数据库两个系统。日志服务合二为一,用户无需维护复杂的架构,只需要选择嵌入模型即可。
配置向量索引
前提条件
已创建Project、标准型Logstore并完成日志采集。具体操作,请参见创建项目Project、创建Logstore和数据采集概述。
已创建全文索引和字段索引,更多信息,请参见创建索引。
操作步骤
打开查询分析属性,在向量索引这一列中,选择对应的embedding模型后,自动开启向量索引。
向量索引默认关闭,开启向量索引后,只对新数据生效。
向量索引不支持重建索引。
模型参数解析
dashscope-embedding-v2 : 使用百炼的embedding模型,模型维度是1536。更多信息,请参见快速开始。
bge-large-zh-v1.5-q4-1: bge中文量化模型,模型维度是1024。
向量搜索语法
日志服务搜索向量,返回指定距离范围内的数据,数据按照时间顺序排序。
语法
similarity(字段名, "搜索文本") < 距离
字段名:要搜索的字段,例如msg。
搜索文本:要搜索目标文本,例如"番茄鸡蛋"。
距离:距离范围从0到1,距离越小表示越相似。0表示最相似,1表示最不相似。
使用示例
similarity("input_semantic.topic","教育") < 0.1
表示搜索input_semantic.topic
字段中跟“教育”相关,距离在0.1以内的数据。
混合检索
向量检索可以和关键字检索混合使用,使用and
连接。例如:error and similarity("input_semantic.summary","查询") <0.8
。
混合检索只支持and 连接。