SpreadsheetLLM:微软对Excel编码的“摊膀伏”

news2024/12/23 9:19:14

--->更多内容,请移步“鲁班秘笈”!!<---

SpreadsheetLLM

Excel的特点是二维数据格式、灵活的布局和多样化的格式选项。微软最近引入了SpreadsheetLLM,开创了一种高效的编码方法,用于释放和优化LLMs在电子表格上的强大理解和推理能力。最初研究人员提出一种包含单元格地址、值和格式的普通序列化方法。但是这种方法受到LLMs 上下文长度的约束,为此微软推出了SheetCompressor(下图绿色部分),它是一种创新的编码框架,可以有效地压缩电子表格。

左边为文档输入,经过SheetCompressor的压缩编码,之后将编码输入到现有的大模型,进而加深大模型对电子表格的深入理解,最后利用chain of Spreadsheet完成下游任务。

SSLLM最终在GPT4的上下文学习中比普通方法高出25.6%。此外,利用SheetCompressor进行微调的平均压缩比为25×,却达到了最先进的 78.9%F1 分数,比目前的优等生高出12.3%。

最后研究人员还提出了电子表格链,用于电子表格理解的下游任务,事实证明SpreadsheetLLM在各种电子表格任务中非常有效。

SheetCompressor

SheetCompressor是这次研究的灵魂,本文重点来看看它的实现模式。它主要由三个模块组成:基于结构锚点的压缩、逆索引转换和数据格式感知聚合。

首先在在整个电子表格中放置“结构锚点”,以帮助LLM更好地了解正在发生什么。

然后,删除“遥远的、均匀的行和列”,以生成电子表格的压缩“骨架”版本,如上图所示。

索引转换解决了由具有大量空单元格和重复值的电子表格引起的挑战。“为了提高效率,SheetCompressor摆脱了传统的逐行和逐列序列化,采用JSON格式的无损倒排索引翻译,”  研究人员表示  “这种方法创建了一个字典,该字典为非空单元格文本编制索引,并将具有相同文本的地址合并,在保证数据完整性的同时且优化Token长度。”

<输入Token的长度很重要,因为这些经过编码的Token下一步就会被送到各种大模型学习,而大模型对于输入Token是有限制的!>

认识到精确的数值对于掌握电子表格结构不太重要,研究人员从这些单元格中提取数字格式字符串和数据类型。

然后具有相同格式或类型的相邻单元格聚集在一起,进而简化对数值数据分布的理解,而不会浪费Token长度。

通过上面三种办法的叠加组合,SheetCompressor显着减少了96%的电子表格的Enbedding Token。在文中的一个示例中,电子表格由576行和23列组成,原始编码为61,240个标记。按照新的技术首先使用结构锚提取单元格,将它们重新排列成一个较小的24×8工作表。随后执行索引反转,删除空单元格。最后根据数据格式聚合单元格,实现电子表格的极其紧凑的表示,其中仅包含708个标记!

上表为三个组件在测试数据集上面的各种组合压缩比率清单,第一列为没有运用任何手段,所以压缩比率为1(原始的Token长度/压缩的Token长度)。可以观察到三种方法组合可以达到24.79的压缩比例。

性能对比

为了评估SpreadsheetLLM的性能,研究人员选择了TableSense-CNN作为基线,因为之前在电子表格检测任务中证明了有效性。本次采用F1分数作为主要指标来评估和比较不同模型的性能,它平衡了精确度和召回率,提供了模型准确性的整体视图。

微调后GPT4模型在所有数据集上获得了约 76%的F1分数,而利用本文涉及的不带聚合编码的方法在所有数据集上获得了约79%的F1分数。

这标志着与在原始数据上微调的相同模型相比提高了27%,比 TableSense-CNN提高了13%,并成为新的王(SOTA)。整个编码方法在可容忍的范围内略微降低了F1分数,但取得了良好的压缩结果。

此外基于本文的压缩方法,Llama3的分数加了25%,Phi3增加了36%,Llama2增加了38%,Mistral-v2增加了18%。这些结果突显了编码方法显著增强了性能,也就是说它改善了上下文学习(In-Context Learning)。同时还节省了大量的成本,这种方法的成本几乎与输入Token成正比,根据ICL中GPT4和GPT3.5-turbo型号的价格,在测试集中降低了96%的成本。

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

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

相关文章

[CP_AUTOSAR]_分层软件架构_接口之通信模块交互介绍

目录 1、协议数据单元(PDU)传输2、通信模块的案例2.1、SDU、 PCI & PDU2.2、通信模块构成2.3、从数据传输的角度看Communication2.4、Communication中的接口 在前面 《关于接口的一些说明》 以及  《Memory软件模块接口说明》 中&#xff0c;简要介绍了CP_AUTOSAR分层…

农田自动化闸门的结构组成与功能解析

在现代化的农业节水灌溉领域中&#xff0c;农田自动化闸门的应用越来越广泛。它集成了先进的技术&#xff0c;通过自动化控制实现水资源的精准调度和高效利用。本文将围绕农田自动化闸门的结构组成&#xff0c;详细介绍其各个部件的功能和特点。 农田自动化闸门主要由闸门控制箱…

【Java安全】基础配置篇-01

Java安全-01 文章目录 Java安全-01前置基础小demo开发记录文件上传 课程学习记录初始配置阶段0x00 微服务阶段历史0x01 第一个SpringBoot程序0x02 原理初探0x03 SpringBoot配置文件0x04 给属性赋值的几种方法0x05 JSR303校验0x06 多环境配置0x07 再探自动配置原理 开发阶段0x00…

勒索软件运营商的恶意软件

ARC Labs 发现并分析了一种用于Qilin勒索软件攻击的新工具。 这种恶意软件被称为“Killer Ultra”&#xff0c;旨在禁用流行的威胁检测和响应&#xff08;EDR&#xff09;以及防病毒软件。 ARC Labs 专家进行了深入分析&#xff0c;以了解 Killer Ultra 的全部功能&#xff0…

新品发布|全面适配鸿蒙NEXT安全检测,助力鸿蒙安全生态建设

鸿蒙系统打破了移动操作系统两极格局&#xff0c;实现操作系统核心技术的自主可控、安全可靠&#xff0c;在神州大地上掀起一波科技革新的浪潮&#xff0c;HarmonyOS NEXT成为大型企业必须要布局的应用系统之一&#xff0c;如何检测鸿蒙应用的安全性是企业内部的核心难点之一&a…

C++基础语法:STL之容器(4)--序列容器中的list(一)

前言 "打牢基础,万事不愁" .C的基础语法的学习 引入 序列容器的学习.以<C Prime Plus> 6th Edition(以下称"本书")内容理解 本书中容器内容不多只有几页.最好是有数据结构方面的知识积累,如果没有在学的同时补上. 序列容器回顾:序列容器内元素按严格…

加密软件有什么用?五款电脑文件加密软件推荐

加密软件对于个人和企业来说至关重要&#xff0c;尤其是在2024年这样一个高度数字化的时代&#xff0c;数据安全变得尤为重要。 数据保护&#xff1a;加密软件可以保护敏感信息不被未经授权的人访问。这包括个人数据、财务记录、健康信息、企业机密等。 防泄漏&#xff1a;防…

组合数学+费用背包+刷表,G2 - Playlist for Polycarp (hard version)

目录 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 二、解题报告 1、思路分析 2、复杂度 3、代码详解 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 G2 - Playlist for Polycarp (hard version) 二、解题报告 1、思路分析 一…

Linux驱动开发-05APP和驱动的交互方式

一、传输数据 APP和驱动: copy_to_usercopy_from_user驱动和硬件: 各个子系统的函数通过ioremap映射寄存器地址后,直接访问寄存器二、APP使用驱动的四种方式 驱动程序:提供能力,不提供策略 非阻塞(查询)(应用程序访问底层驱动时(read、write时),驱动没有数据不等待,…

【Vue】深入理解 `v-model` 指令:实现数据双向绑定的终极指南

文章目录 一、v-model 指令概述二、v-model 的基本用法1. 绑定输入框的值2. 绑定多行文本框的值3. 绑定复选框4. 绑定单选框5. 绑定选择框 三、v-model 的工作原理四、v-model 的高级用法1. 自定义组件中的 v-model模板部分 (<template>)脚本部分 (<script>) 2. 多…

vue项目源码调试方法 ,chrome调试控制台工作区使用,利用chrome控制台调试vue项目源码的方法 图解

我们在开发vue项目的时候&#xff0c;项目开始后的第一件事情应该就是准备调试工作了&#xff0c;Chrome调试控制台就给我们提供了这样的一个方便的调试工作区。方法为&#xff0c;在Chrome浏览器里面打开你要调试的页面&#xff0c;然后打开调试控制台&#xff0c;如下&#x…

基于STC8H4K64TL单片机的触摸功能和数码管驱动功能实现一个触摸按键单击长按都增加数值另一个触摸按键单击长按都减少数值应用

基于STC8H4K64TL单片机的触摸功能和数码管驱动功能实现一个触摸按键单击长按都增加数值另一个触摸按键单击长按都减少数值应用 STC8H4K64TL单片机介绍STC8H4K64TL单片机管脚图(48个引脚)STC8H4K64TL单片机串口仿真与串口通信STC8H4K64TL单片机管脚图(32个引脚)STC8H4K64TL单…

【Linux】汇总TCP网络连接状态命令

输入命令&#xff1a; netstat -na | awk /^tcp/ {S[$NF]} END {for(a in S) print a, S[a]} 显示&#xff1a; 让我们逐步解析这个命令&#xff1a; netstat -na: netstat 是一个用于显示网络连接、路由表、接口统计等信息的命令。 -n 选项表示输出地址和端口以数字格式显示…

ACCL+: an FPGA-Based Collective Engine for Distributed Applications——论文泛读

OSDI 2024 Paper 论文阅读笔记整理 问题 FPGA在云部署中越来越普遍[16,81]&#xff0c;如智能NIC[29,35,64,67103]、流处理器[31,32,55,68]和分布式加速器[15,41,61,65,86,93115]。可以使用FPGA到FPGA的直接通信来构建高效的分布式系统。然而&#xff0c;使用FPGA设计分布式应…

通过 EMR Serverless Spark 提交 PySpark 流任务

在大数据快速发展的时代&#xff0c;流式处理技术对于实时数据分析至关重要。EMR Serverless Spark提供了一个强大而可扩展的平台&#xff0c;它不仅简化了实时数据处理流程&#xff0c;还免去了服务器管理的烦恼&#xff0c;提升了效率。本文将指导您使用EMR Serverless Spark…

python爬虫获取网易云音乐评论歌词以及歌曲地址

python爬虫获取网易云音乐评论歌词以及歌曲地址 一.寻找数据接口二.对负载分析三.寻找参数加密过程1.首先找到评论的请求包并找到发起程序2.寻找js加密的代码 四.扣取js的加密源码1.加密函数参数分析①.JSON.stringify(i0x)②bse6Y(["流泪", "强"])③bse6Y…

Linux--Socket套接字编程

Socket编程 Socket编程是一种在网络中不同计算机之间实现数据交换的编程方式。它允许程序创建网络连接&#xff0c;并通过这些连接来发送和接收数据。Socket编程是网络编程的基础&#xff0c;广泛应用于客户端-服务器&#xff08;C/S&#xff09;架构中。 要实现双方通信&…

【扩散模型(六)】Stable Diffusion 3 diffusers 源码详解1-推理代码-文本处理部分

系列文章目录 【扩散模型&#xff08;一&#xff09;】中介绍了 Stable Diffusion 可以被理解为重建分支&#xff08;reconstruction branch&#xff09;和条件分支&#xff08;condition branch&#xff09;【扩散模型&#xff08;二&#xff09;】IP-Adapter 从条件分支的视…

基于python的去除图像内部填充

1 代码功能 该代码实现了一个图像处理的功能&#xff0c;具体来说是去除图像内部填充&#xff08;或更准确地说&#xff0c;是提取并显示图像中轮廓的外围区域&#xff0c;而忽略内部填充&#xff09;。以下是该功能的详细步骤&#xff1a; 读取图像&#xff1a;使用cv2.imread…

Hadoop-38 Redis 高并发下的分布式缓存 Redis简介 缓存场景 读写模式 旁路模式 穿透模式 缓存模式 基本概念等

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; HadoopHDFSMapReduceHiveFlumeSqoopZookeeperHBaseRedis 章节内容 上一节我们完成了&#xff1a; HBase …