“后期分块”:用长上下文嵌入模型拯救文本检索

news2024/9/21 3:12:36

c0a0e225770bb9029e4f6145ee0c67a9.png

论文:Late Chunking: Contextual Chunk Embeddings Using Long-Context Embedding Models
地址:https://arxiv.org/abs/2409.04701

研究背景

研究问题:这篇文章要解决的问题是文本块嵌入在处理长文本时丢失上下文信息的问题。具体来说,当文本被分割成多个小块进行嵌入时,每个块的嵌入可能会失去与其他块的上下文联系,导致表示质量下降。b35ef864607d925a7d98b32e25dd4abe.png研究难点:该问题的研究难点包括:如何在嵌入过程中保留长文本的上下文信息,以及如何在不增加额外训练的情况下实现这一目标。

相关工作:现有的文本嵌入模型大多基于Transformer架构,使用均值池化等方法将token嵌入转换为单个向量表示。为了解决上下文长度有限的问题,常见的做法是在嵌入前对文本进行分块处理。然而,这种方法会导致块与块之间的上下文信息丢失。

研究方法

这篇论文提出了一种名为“Late Chunking”的新方法,用于解决文本块嵌入丢失上下文信息的问题。具体来说:

  1. 长文本嵌入:首先,利用最新的开源长上下文嵌入模型(如jina-embeddings-v2)对整篇文本进行编码,生成每个token的向量表示。这些表示包含了整个文本的上下文信息。eb56812e30c7f58150a232dd25009e66.png

  2. 块嵌入生成:然后,在均值池化之前,对生成的token序列进行分块处理。这样,每个块的嵌入就会包含整个文本的上下文信息。

  3. 边界线索:需要注意的是,Late Chunking仍然需要边界线索来确定分块的起始和结束位置。这些线索在分词过程中确定,但在获得token级嵌入后使用。

实验设计

  • 数据集:实验使用了BeIR基准测试中的多个数据集,包括SciFact、TRECCOV、FiQA2018、NFCorpus和Quora。

  • 分块方法:为了评估不同方法的效果,实验中将文本分割成256个token的块。

  • 模型:所有实验都使用jina-embeddings-v2-small模型进行嵌入。

  • 评估指标:使用nDCG@10指标来评估检索任务的性能。nDCG@10表示在排名列表中前10个结果的相关性得分。

结果与分析

  • 定性分析:通过计算“Berlin”一词与文章中不同句子的相似度,验证了Late Chunking能够将文本外的上下文信息转移到嵌入表示中。结果表明,使用Late Chunking方法的相似度得分显著高于使用Naive Chunking方法。

  • 定量分析:在BeIR基准测试的多个数据集上,Late Chunking方法在所有实验中均优于Naive Chunking方法。特别是在文档平均长度较长的数据集上,Late Chunking方法的改进效果更为显著。例如,在SciFact数据集上,Late Chunking方法的nDCG@10得分提高了6.59%,从Naive Chunking方法的63.89%提高到66.10%。

总体结论

本文提出了一种名为“Late Chunking”的新方法,用于解决文本块嵌入丢失上下文信息的问题。通过利用长上下文嵌入模型对整篇文本进行编码,并在均值池化之前进行分块处理,Late Chunking方法能够生成包含整个文本上下文的块嵌入。实验结果表明,该方法在各种检索任务中均优于传统的Naive Chunking方法,且无需额外训练,具有广泛的应用前景。未来的工作将包括更全面的评估和模型的微调,以进一步提高检索任务的性能。

本文由AI辅助人工完成。


备注:昵称-学校/公司-方向/会议(eg.ACL),进入技术/投稿群

b0bb7e23777f43e9ada377f27cdcddde.png

id:DLNLPer,记得备注呦

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2127470.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

信刻光盘安全隔离与信息交换系统

随着各种数据传输、储存技术、信息技术的快速发展,保护信息安全是重中之重。军工、政府、部队及企事业单位等利用A网与B网开展相关工作已成为不可逆转的趋势。针对于业务需要与保密规范相关要求,涉及重要秘密信息,需做到安全的物理隔离&#…

队列的详细操作

1.循环队列--队列的顺序表示和实现 #include<stdio.h> #define MAXQSIZE 100 typedef struct {int* base;int front;int rear; }SqQueue;int InitQueue(SqQueue& Q) {Q.base new int[MAXQSIZE];//为队列分配一个最大容量为MAXSIZE的数组空间if (!Q.base)return -1;…

QXml 使用方法

VS2019 QT 编译工具链问题解决 使用winqtdeploy.exe 打包环境就可以正常运行&#xff0c;缺少某一个运行库引起的 简易使用python脚本编译运行 Python3 中的 slots 和 QT 中的 slots 宏定义重复, 放在不同的文件中进行调用可以避免 还是比较习惯从源码包引入&#xff08;方便定…

OpenAI新“草莓”模型即将发布,推理模式引发关注

OpenAI发布“草莓”模型的消息引发广泛关注。这个新模型将在未来两周内亮相&#xff0c;将为ChatGPT等产品带来全新的技术支持。草莓模型的推理模式具有独特性&#xff0c;能够仿效人类思维&#xff0c;在生成响应之前进行拟人化思考。其推理过程通常需要10到20秒&#xff0c;这…

2_foc闭环调试_ADC电流采样与滤波及pid数据结构

1、ADC电流采样 上次添加了编码器获取电角度的程序&#xff0c;将之前开环控制的角度进行了替换&#xff0c;这次再将电流采样添加进来&#xff0c;之后就可以利用这样一个有反馈的系统进行电流环PI控制器参数调试。 之前写过ADC&#xff0b;DMA电流采样的stm32库函数程序&…

《 C++ 修炼全景指南:八 》智能指针大揭秘:从 auto_ptr 到 unique_ptr shared_ptr 的进化之路

1、引言 在 C 编程中&#xff0c;内存管理历来是复杂且容易出错的部分。手动管理动态分配的内存不仅会导致内存泄漏&#xff0c;还会引发悬空指针和双重释放等问题。如何有效地管理动态内存&#xff0c;避免内存泄漏和未定义行为&#xff0c;往往是困扰初学者和资深开发者的难…

常见 HTTP 状态码详解与Nginx 文件上传大小限制

在我们日常使用 Nginx 搭建网站或应用服务时&#xff0c;可能会遇到很多与文件上传和请求响应相关的问题。今天我们就来聊聊 如何限制文件上传的大小&#xff0c;并介绍一些常见的 HTTP 状态码 及其在 Nginx 中的处理方式。 一、文件上传大小限制 有时&#xff0c;我们需要限…

Web3的崛起与智能合约的角色

随着Web3的发展&#xff0c;去中心化网络逐渐取代了以往的集中控制互联网模式。这一转变不仅强调了用户的自治权和隐私保护&#xff0c;还引入了智能合约这一核心技术。智能合约基于区块链技术&#xff0c;能够自动执行合约条款&#xff0c;无需中介干预&#xff0c;从而确保了…

git下载安装windows

https://git-scm.com/download/win 接下来傻瓜式安装就可以了

Django创建模型

1、根据创建好应用模块 python manage.py startapp tests 2、在models文件里创建模型 from django.db import modelsfrom book.models import User# Create your models here. class Tests(models.Model):STATUS_CHOICES ((0, 启用),(1, 停用),# 更多状态...)add_time mode…

RAR压缩包原密码过于简单如何修改密码?

RAR压缩包作为一种常见的文件压缩格式&#xff0c;广泛应用于文件传输和存储中。为了保障文件的安全性&#xff0c;用户经常会给RAR压缩包设置密码。但有时我们觉得原密码过于简单&#xff0c;想要修改成一个比较复杂的密码&#xff0c;这时我们要如何修改让人压缩包密码呢&…

<<编码>> 第 5 章 绕过拐弯的通信(Seeing Around Corners) 示例电路

灯泡通讯电路 info::操作说明 鼠标单击开关切换开合状态 primary::在线交互操作链接 https://cc.xiaogd.net/?startCircuitLinkhttps://book.xiaogd.net/code-hlchs-examples/assets/circuit/code-hlchs-ch05-01-communication-circuit.txt 双边灯泡通讯电路 info::操作说明 鼠…

Windows一键安装Mysql数据库|非官方复杂安装,解压即可,操作简单

我们都知道在官方安装mysql数据库极其复杂&#xff0c;还极大概率遇到各种问题&#xff0c;今天教大家只要解压就可安装完数据库&#xff0c;操作及其简单绿色。 版本包括了mysql8或mysql5&#xff0c;各位各取所需即可。 不管你之前是否安装过数据库&#xff0c;只要端口330…

Ai+若依(智能售货机运营管理系统---帝可得)--货道关联商品【08篇---0004:关联商品】

货道关联商品 需求 对智能售货机内部的货道进行商品摆放的管理 此功能涉及四个后端接口 查询设备类型&#xff08;已完成&#xff09; 查询货道列表&#xff08;待完成&#xff09; 查询商品列表&#xff08;已完成&#xff09; 货道关联商品&#xff08;待完成&#xff0…

个人学习笔记5-2:动手学深度学习pytorch版-李沐

#深度学习# #人工智能# #神经网络# 卷积神经网络&#xff08;convolutional neural network&#xff0c;CNN&#xff09; 6.4 多输入多输出通道 6.4.1 多输入通道 当输入包含多个通道时&#xff0c;需要构造一个与输入数据具有相同输入通道数的卷积核&#xff0c;以便与输入…

[基于 Vue CLI 5 + Vue 3 + Ant Design Vue 4 搭建项目] 07 如何修改 npm run serve 的启动端口号

如何修改 npm run serve 的启动端口号 首先&#xff0c;找到 npm run serve 对应的脚本 在 package.json 文件中找到 serve 对用的脚本 然后&#xff0c;添加 – port 新端口号 这里修改启动端口号为 9000&#xff0c;则在启动命令后面加上 --port 9000 最后&#xff0c;启动…

【信息论基础第二讲】离散信源的数学模型及其信息测度包括信源的分类、信源的数学模型、离散信源的信息测度、二元信源的条件熵联合熵

一、信源的分类 二、信源的数学模型 1、信源的概念 在通信系统中&#xff0c;收信者在未收到信息以前&#xff0c;对信源发出什么消息是不确定的、随机的、因此我们可以用随机变量、随机序列或者随机过程来描述信源的输出。严格地说&#xff0c;用概率空间来描述信源输出。 …

基于高通主板的ARM架构服务器

一、ARM架构服务器的崛起 &#xff08;一&#xff09;市场需求推动 消费市场寒冬&#xff0c;全球消费电子需求下行&#xff0c;服务器成半导体核心动力之一。Arm 加速布局服务器领域&#xff0c;如 9 月推出 Neoverse V2。长久以来&#xff0c;x86 架构主导服务器市场&#…

百度视频排名代发(百度视频秒收录代发)

百度视频排名代发(百度视频秒收录代发) 代做灰色关键词百度排名&#xff08;代发百度灰色词外推&#xff09;#百度推广#关键词排名#灰色词排名 推荐阅读&#xff1a; 百家号图文排名代发&#xff1a;文章客服系统挂载电话https://www.bsw80.com/post/471.html 很多老板表示想…

CMS之Wordpress建设

下载 https://cn.wordpress.org/ 宝塔安装Wordpress 创建网站 上传文件、并解压、剪切文件到项目根目录 安装 -> 数据库信息 -> 标题信息 http://wordpress.xxxxx.com 登录 http://wordpress.xxxxxxxxx.com/wp-admin/ 1. 主题(模板) wordpress-基本使用-02-在主题…