首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Elasticsearch中评估标量量化

在8.13版本中,我们将标量量化引入到Elasticsearch中。通过使用此功能,用户可以提供浮点向量,这些向量在内部被索引为字节向量,同时在索引中保留浮点向量以进行可选的重新评分。...这次实验的目的是估计使用此模型在广泛的检索任务中执行标量量化kNN搜索的效果,如此处所描述。更具体地说,我们的目标是评估从全精度索引切换到量化索引时的性能降级(如果有的话)。...最后,我们对多语言E5-base进行了相同的操作,性能下降更小(0.59%)但这并不是全部:量化的HNSW索引的效率提高和索引中仍然保留原始浮点向量的事实,使我们可以通过重新评分恢复大部分丢失的性能。...在Arguana上使用相同的设置,可以将分数从0.379增加到0.382,从而将相对性能下降从1.3%限制到只有0.52%结论我们评估的结果表明,标量量化可以用来减少Elasticsearch中向量嵌入的内存占用...我们对标量量化将对大多数用户有益,我们计划在8.14版本中将其设为默认设置。

21231
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Lucene 中的标量量化:如何优化存储和搜索向量

    Lucene 以及 Elasticsearch 早已支持字节向量的索引构建,但这些向量的构建一直是用户的责任。这种情况即将改变,因为我们在 Lucene 中引入了 int8 标量量化。...标量量化基础知识 所有量化技术都被视为对原始数据的有损转换,这意味着为了节省空间会丢失一些信息。有关标量量化的详细解释,请参阅:标量量化入门。...简而言之,标量量化是一种有损压缩技术,通过一些简单的数学计算可以在对召回率影响很小的情况下显著节省空间。...在索引过程中,文档会被缓冲并定期刷新到只读段中。当满足某些条件时,这些段可以在后台合并为更大的段。所有这些都是可配置的,并且有其自身的复杂性。...对于每个段,我们跟踪 vec 文件中的原始向量、veq 文件中的量化向量和单个修正乘数浮点数,以及 vemq 文件中关于量化的元数据。

    29111

    python数据分析——业务指标量化

    前言 业务指标量化是衡量企业运营效果的重要手段,通过具体的数据和数值,可以更加直观地了解企业的运营状况,为企业决策提供有力的数据支持。在业务指标量化的过程中,需要注意以下几个方面。...同时,还需要对数据进行深入的分析和挖掘,找出数据背后的规律和趋势,为企业的决策提供有力的支持。 最后,要注重业务指标量化的实际应用。...业务指标量化的目的不是为了追求数字上的完美,而是为了指导企业的实际运营。因此,在应用业务指标量化的过程中,需要结合企业的实际情况和目标,制定具体的计划和措施,以确保业务指标量化的实际效果。...综上所述,业务指标量化是企业运营管理的重要手段,需要注重指标的选择、数据的收集和分析以及实际应用的效果。只有在这些方面做得足够好,才能为企业的发展提供有力的支持。...属于数据的最高等级。它的数据表现形式同定距数据一样,均为实际的测量值。定比数据与定距数据唯一的区别是:在定比数据中是存在绝对零点的,而定距数据中是不存在绝对零点。

    11610

    Int4:Lucene中的标量量化更进一步

    在Lucene中引入Int4量化 在我们之前的博客中,我们详细介绍了Lucene中标量量化的实现。我们还探讨了两种特定的量化优化。...你可以在我们的之前的标量量化博客中阅读这方面的简要概述。 现在,int4为我们提供了比之前更多的压缩选项。它将量化空间减少到只有16个可能的值(0到15)。...,请参见标量点积的误差修正。...在标量量化101博客中,提到了一个特定的常数: ×8×α×int_8_i×min 这个常数是基础代数推导出的一个简单常数。然而,我们现在在存储的浮点数中包含了与四舍五入损失相关的额外信息。...找到最佳分桶 进行标量量化的简单和朴素的方法可以让你走得很远。通常,你选择一个置信区间,从中计算向量值的允许极限。

    32321

    使用sklearn构建含有标量属性的决策树

    网络上使用sklearn生成决策树的资料很多,这里主要说明遇见标量数据的处理。...然而,题目数据中有天气等标量数据,所以还要进行转化,这里采用了sklearn中的LabelEncoder来将n个标量转化为1至n-1的整数。...将数据训练完毕后,安装并使用了Graphviz(一个图形显示库)和pydotplus(方便使用Graphviz的Python编程接口)来进行结果图形化显示;查阅资料说的配置好像比较复杂,其实下载下来Graphviz...最后还有一些疑问,就是把标量当做数值属性来处理,会影响最后分类的结果吗?需要拿数据说话还是有一些已经存在的结论。。。? ?...14 #data为矩阵,同tree.DecisionTreeClassifier.fit方法中的数据 15 #返回值le_list是preprocessing.LabelEncoder()对象的列表

    1.5K60

    Excel VBA解读(136): 在用户定义函数中的变体、引用、数组、计算表达式、标量

    学习Excel技术,关注微信公众号: excelperfect 在前面的几篇文章中,我们自定义的函数使用定义为Range的参数来从Excel工作表中获取数据,例如: Function VINTERPOLATEB...vArr = theParameter TestFunc = vArr End Function 在VBE中,在赋值给函数的返回值的语句行设置断点,如下图1所示 ?...因此,在通用目的的用户自定义函数中,希望使用Variant型参数,并且经常需要确定变体的类型以及上限和下限。..., 数组, 或单元格区域 ' 找到上限和下限以及类型 'type=1:单元格区域, 2:2维variant数组, ' 3:1-维variant数组(列的单行), 4:标量...代码的图片版: ? 小结:在通用目的的用户自定义函数中,必须使用Variant类型的参数而不是Range类型。可以通过在处理变量之前确定变体包含的内容来有效地处理出现的问题。

    2K20

    标量是不够的:基于矢量化的无偏差学习排名

    论文题目 Scalar is Not Enough: Vectorization-based Unbiased Learning to Rank 论文摘要 无偏差学习排名 (ULTR) 旨在从有偏差的用户点击日志中训练无偏差的排名模型...当前的大多数ULTR方法都基于检验假设(EH),假设点击概率可以被分解成两个标量函数,一个与排名特征有关,另一个与偏差因素有关。...不幸的是,在实践中特征、偏差因素和点击之间的相互作用很复杂,通常无法以这种独立的方式分解。使用 EH 拟合点击数据可能会导致模型错误并带来近似误差。...本文提出了一种基于向量的EH,并将点击概率表述为两个向量函数的点乘。此解决方案是完备的,因为它在拟合任意点击函数方面具有通用性。...大量实验表明,作者的方法在复杂的真实点击和简单的模拟点击方面明显优于最先进的ULTR方法。 论文链接 https://doi.org/10.1145/3534678.3539468

    37010

    性能为王:SQL标量子查询的优化案例分析

    远远大于SQL访问的表占用的物理大小。所以初步判断在执行计划中存在某个对象被轮询。...为了减少标量子查询被轮询的次数,这里可以把标量子查询改为外连接。...在标量子查询中,当主查询返回一行数据时,所有的标量子查询就要执行一次,如果在连接列有索引时,标量子查询在主表返回的行很少的情况下,对性能影响不大,常常出现在OLTP环境,并且连接列一般都有索引;如果在OLAP...环境中,看到标量子查询千万要小心,通常,主表返回的行很多,并且子查询中的表通常在连接列上面无索引,导致性能很低下,本案例就是这种情况; 2....在12C中,标量子查询自动改写的功能由隐含参数 _optimizer_unnest_scalar_sq 控制,默认是TRUE,意味着开启,如果遇到BUG或者性能问题,可以更改为FALSE。

    1.6K50

    Python Python中的包

    Python中的包 什么是python的包与模块 包就是文件夹,包中还可以有包,也就是文件夹 一个个python文件就是模块 包的身份证 __init__.py是每一个python包里必须存在的文件 如何创建包...要有一个主题,明确功能,方便使用 层次分明,调用清晰 包的导入 import 功能 将python中的某个包(或模块),导入到当前的py文件中 用法 import package 参数 package...:被导入的包的名字 要求 只会拿到对应包下__init__中的功能或当前模块下的功能 模块的导入 form..import.....功能 通过从某个包中找到对应的模块 用法 form package import module 参数 package:来源的包名 module:包中的目标模块 举例: form animal import...dog dog.run 我们通过 form import 直接找到了dog模块 所以只需要使用dog模块用.的方式找到里面的方法并执行 as可以取别名 代码 test1.py # coding

    2.2K30

    Python中的+=

    引出 今天在运行之前写的一个Python脚本时,发生了一个奇怪的现象(我怎么老遇到奇怪的现象~~)。...我找了半天,没有找到对a变量的修改或赋值操作。 最终,发现了藏在中间的c变量,因为是列表对象的引用赋值,所以直接修改了a变量。我将两个变量的地址打印出来,确实是这样的。 ? ?...解惑 都知道Python的运算符重载操作,加法调用的是__add__方法,+=调用的是__iadd__方法。既然产生这个现象,那一定是list对两个方法的实现不同咯。...可以看到,都是新的值。如果修改一下方法的实现: ? 再测试就会发下,两个运算返回的都是同一个对象。水落石出,Python对两个不同的运算符使用了不同的实现方法。...一探究竟 那为什么Python会在 +=操作时,直接修改原对象。而=+操作却要返回新的对象呢? 简单推测一下,可能Python的作者认为,+=操作是要将后边的值加到自身上。而+则是两个值的运算操作。

    1.7K20

    python中 global_python中round的用法

    在Python中,一个变量的scope范围从小到大分成4部分:Local Scope(也可以看成是当前函数形成的scope),Enclosing Scope(简单来说,就是外层函数形成的scope),Global...Scope(就是当前文件形成的scope),Builtins Scope(简单来说,就是Python内置的变量位于最顶层的scope)。...当Python开始查找一个非限定的变量名时(像obj.attr中的attr,就是一个被限定的变量名字,它被限定在obj对象中,而普通的变量名就是没有限定的),总是从当前变量名所处的scope开始,顺着前面提到的...>>>88 nonlocal nonlocal是Python 3.X加入进来的关键字,Python 2.X中没有。...在Python中,嵌套函数是可以访问外部函数的变量的(至少在>Python 2.2的版本是这样的,在Python 2.2之前的版本中,变量的查找从当前函数开始,然后直接到Global Scope,Builtins

    1.4K10
    领券