LLM之表格理解任务-文本模态

news2024/11/18 21:37:13

这一章我们聊聊大模型表格理解任务,在大模型时代主要出现在包含表格的RAG任务,以及表格操作数据抽取文本对比等任务中。这一章先聊单一的文本模态,既你已经通过OCR或者多模态等方式从PDF或者图片中获取了表格的文本数据。和前文相同,我们分别介绍微调和基于Prompt的两种方案。

Prompt LLM

首先我们介绍基于Prompt的方案,核心节约表格问答和推理中的两个问题:表格太大或包含的信息散落各处,问题复杂涉及到多步推理。如何使用prompt让模型在表格任务上更好进行COT,Dater和Chain-of-Table给出了方案,二者有前后关系,Dater在前。

而针对Prompt设计,表格推理还要解决表格数据如何输入prompt,推理效果更好的问题,这里微软的Table Meets LLM也做了实验尝试。

Dater

  • Large Language Models are Versatile Decomposers: Decompose Evidence and Questions for Table-based Reasoning

Dater的整体流程包含三个步骤:表格分解,问题分解,和合并推理。论文使用了GPT3 Codex作为模型。

Evidence Decomposer

第一步是证据拆解,从原始表格数据中,抽取和问题相关的数据,这里Dater使用行号和列号来表示相关的数据。以下使用Few-Shot Prompt来引导模型预测哪些Cell(row, index)和提问相关并返回。之后直接使用行号和列号从原始的表格中抽取出问题相关的数据,构建成更小更聚合的新的表格。

image

Question Decomposer

第二步是问题拆解,论文提出如果直接使用COT进行推理,在表格问题上很容易出现幻觉,所以论文提出了"Parsing-execution-filling"的方案,其实和ReACT,Self-ASK,IRCOT的思路是一样的,不过是适配到了表格任务上。

首先基于以下Few-Shot Prompt把原始问题拆解成子问题。这里需要注意的是,子问题不会直接使用表格中的数据进行回答,而是会把涉及数值答案的部分用{}进行掩码。

image

其次会基于以下few-shot prompt把子问题转化成SQL语句,这在TableQA的任务范式中较为常见,很多经典方案都是把TableQA转化成了NL2SQL的问题进行解决。

image

Jointly Reasoning

第三步是把前两步得到的sub-evidence和sub-questions(sql)合并在一起,同样是使用few-shot prompt进行推理。以下prompt是TableNLI任务,也就是基于表格数据判断描述是对还是错。效果我们放到后面的论文里一起说。

image

Chain-of-Table

  • Chain-of-Table: Evolving Tables in the Reasoning Chain for Table Understanding

image

谷歌提出的Chain-of-Table在Dater的基础上加入了更多,更灵活的表格操作。整个任务同样分成三个主要步骤:动态规划,参数推理和最终结果。整个过程中通过大模型多步规划和参数生成,对表格进行变换操作,直到输出最终变换后表格,并推理出最终的结果。

Dynamic Planning

动态规划是模型基于当前表格状态,历史表格操作,和用户提问,推理生成新的表格操作函数。对比Dater只通过选择CELL来缩小表格范围,这里Chain-of-Table利用大模型In-Context Function calling的能力,定义了可以灵活扩展的几个表格操作函数,以下为不同functino的解码参数和few-shot数量,其中f_select_row + f_select_column其实就对应上面Dater的表格操作。

image

动态规划部分prompt包括:以上每个函数的few-shot sample和函数描述,经过多步操作后当前的表格状态,问题和历史的Function chain。模型推理是下一步的操作function,或者END结束如下

image

Argument Generation

这里论文其实是把Function Call拆成了两步,分别是使用哪个操作,以及操作的入参。所以这一步是基于上面推理的操作函数,推理该函数的入参

参数生成的prompt包括:和规划prompt相同的表格状态,规划生成的操作函数,和每个操作的few-shot sample。这里不同的操作Function的推理格式会有差异,例如f_add_column,除了需要推理增加的列,还需要同时给出列的取值。再例如f_select_columns存在多列选择,因此使用*等正则表达式来支持可变参数列表。以下分别为f_add_column, 和f_select_column的few-shot demos

image

image

Final Query

经过一步或者多步上面的动态规划生成函数+参数生成生成入参,会使用该函数对表格进行多步操作,最后得到的表格用于问题回答。回答部分同样是few-shot prompt如下,基于多步操作得到的最终的表格和提问进行回答。

image

效果上对比Dater,使用不同的基座模型,Chain-of-Table在Wiki TQ和TabFact等表格理解任务上均有一定的提升。并且在不同大小的表格数据上也都有显著的提升。

image

Table Meets LLM

  • Table Meets LLM: Can Large Language Models Understand Structured Table Data? A Benchmark and Empirical Study

微软这篇论文主要实验并回答了两个问题

  • LLM对结构化数据的理解能力究竟如何
  • 对于表格类的任务Prompt应该咋写,包括表格的格式,内容的顺序,角色描描述和分割符对最终推理效果的影响有多少

首先论文把表格理解任务拆分成了多个可以定量评估的子任务,相比直接评估表格问答能力,以下子任务的评估更加简单直接,包括:

  • Table Partition:检测模型能否识别表格的边界,例如表格的首位字符
  • Table Size Detection:检测模型能否正确解析结构化数据,例如有几行几列
  • Merged Cell Detection:检测模型能否识别出合并表格结构
  • Cell Lookup & Reverse Lookup:检测模型能否正确抽取指出value对应cell的位置,或者某位置cell的取值
  • Column & Row Retrieval:检测模型能否正确抽取出某行,某列的所有取值

基于上述的7个子任务,论文首先对比了不同的表格数据表征形式的效果差异。这里论文实验了包括JSON,3种不同的标记语言markdonw,XML,HTML,以及在众多表格任务中常见的使用“|”分隔符直接分割表的NL+Sep模式。上面的Dater和Chain of Table就是NL+Sep。以下为子任务的对比结果

image

以上实验数据不难得到两个结论

  • 标记语言包括markdown,XML,HTML的效果是显著优于NL+SEP的
  • 在众多标记语言中HTML来表征表格的效果是最好的

之后论文以HTML作为基准,进一步对其他prompt细节进行了测试,如下

image

以上消融实验比较明显的结论也有两个

  • w/o 1-shot: one-shot相当重要,模型理解结构化表格数据很大程度上依赖于one-shot,去掉one-shot准确率直接掉了30%
  • w/o change order顺序很重要,把问题和描述放到表格后面会带来6.8%的效果下降,可能因为模型可以基于描述和问题有针对性的理解后面的表格数据
  • 其他表格格式描述,分割符之类的影响较低,可能是因为HTML类标记文本本身已经有很好的结构化表征

论文还提出了self-augmented prompt,个人感觉略微缺乏针对性一些,感兴趣的朋友自己去看细节吧~

微调

除了以上利用GPT的Prompt方案,我们再介绍两个微调方案:Table Llama和TableLLM

Table Llama

  • TableLlama: Towards Open Large Generalist Models for Tables

Table Llama是很典型的垂直领域微调方案。论文设计了TableInstruct微调数据集,筛选了总共包括14个表格数据集的总共11类任务。其中训练集选择8个数据集和8类任务,测试集为6个数据集和4类任务,来检测模型在样本外任务类型上的泛化效果。数据集和任务分布如下

image

微调数据的构成就是Instruction+Input+Quesiton为输入,Response为输出。这里论文使用了NL+SEP来表征表格数据,并加入了表格任务的描述。考虑表格数据的长度往往超过4K,这里选用LongLora微调后的7B模型为基座,

image

效果上分别看下样本内和样本外任务上的效果提升,这里Base使用了LongLora微调后的7B,以及对比了GPT3.5和GPT4(采样了部分样本)。在样本内任务上TableLlama能超越GPT4,在样本外任务上TableLlama相比Base有显著提升,但部分任务效果不及GPT4

image

image

TableLLM

TableLLM论文做了以下的用户调研,更充分地了解了用户对于表格任务究竟有哪些真实需求。除了前面Table Llama涵盖的TableQA,Table Extraction,Dialogue,Fact Verfication等传统Table2Text任务之外,还包含了更多操作类任务,例如表格匹配,表格绘图。

image

整体上论文把表格数据涉及到的操作类型分成了Query,Update,Merge和Chart四大类,这四种操作在不同类型的表格数据上侧重不同,在纯表格数据上四种操作类型都会有,更接近现在众多ChatBI在做的方向,更多是code-driven。而在文本中内嵌的表格数据上query查询是主要操作,更多用于像RAG的场景,依赖纯文本的理解推理。

image

基于上面的两大类表格数据和四种操作类型,TableLLM说自己使用了远程监督构建了微调数据集,其实就是传统的Table,SQL数据集上用大模型构建了新的推理和回答作为样本。数据集构成包含三个主要部分

  • TableQA Benchmark:包括了WikiTQ,FetaQA, TAT-QA数据集,论文使用GPT3.5在原始训练数据(question, answer)的基础上补充了推理过程,并使用CtitiqueLLM来对推理过程进行打分,只保留打分高的样本。这部分样本主要用来提升模型在文本中内嵌表格数据的文本推理能力。
  • Text2SQL Benchamrk:包括了WikiSQL和Spider数据集,论文使用了DeepSeek把原始的Text2SQL转换成了pandas代码,并基于最终代码计算结果的一致性来判断DeepSeek构建的答案是否正确,只保留结果一致的样本。这部分样本主要用来提升模型在纯表格数据上的代码推理能力
  • 纯模型生成样本:为了补充更多update,merge,chart操作的数据。论文从WikiTALM,TAT-QA,FeTaQA和GitTable中采样了部分样本,使用GPT3.5生成了新的单表操作和多表操作的问题。之后使用GPT3.5来基于表格和问题进行回答,这里为了提高模型生成结果的准确性,会使用GPT3.5分别从coding和文本两个方向进行推理回答,并使用CritiqueLLM来判断两个答案的一致性。

之后基于上面构建的样本,针对不同的数据和操作,论文使用了不同的prompt来构建指令微调样本,在CodeLlama-7B和13B模型上进行了微调。整个数据构建和微调prompt如下

image

这里主要是看下上面表格数据构建的流程,效果对比就不说了因为部分数据集这里加入了训练集,而上面的Table Llama则放到了OOB测试集,不能直接对比。

如何系统的去学习大模型LLM ?

作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。

但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的 AI大模型资料 包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来

😝有需要的小伙伴,可以V扫描下方二维码免费领取🆓

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

在这里插入图片描述

四、AI大模型商业化落地方案

img

阶段1:AI大模型时代的基础理解

  • 目标:了解AI大模型的基本概念、发展历程和核心原理。
  • 内容
    • L1.1 人工智能简述与大模型起源
    • L1.2 大模型与通用人工智能
    • L1.3 GPT模型的发展历程
    • L1.4 模型工程
    • L1.4.1 知识大模型
    • L1.4.2 生产大模型
    • L1.4.3 模型工程方法论
    • L1.4.4 模型工程实践
    • L1.5 GPT应用案例

阶段2:AI大模型API应用开发工程

  • 目标:掌握AI大模型API的使用和开发,以及相关的编程技能。
  • 内容
    • L2.1 API接口
    • L2.1.1 OpenAI API接口
    • L2.1.2 Python接口接入
    • L2.1.3 BOT工具类框架
    • L2.1.4 代码示例
    • L2.2 Prompt框架
    • L2.2.1 什么是Prompt
    • L2.2.2 Prompt框架应用现状
    • L2.2.3 基于GPTAS的Prompt框架
    • L2.2.4 Prompt框架与Thought
    • L2.2.5 Prompt框架与提示词
    • L2.3 流水线工程
    • L2.3.1 流水线工程的概念
    • L2.3.2 流水线工程的优点
    • L2.3.3 流水线工程的应用
    • L2.4 总结与展望

阶段3:AI大模型应用架构实践

  • 目标:深入理解AI大模型的应用架构,并能够进行私有化部署。
  • 内容
    • L3.1 Agent模型框架
    • L3.1.1 Agent模型框架的设计理念
    • L3.1.2 Agent模型框架的核心组件
    • L3.1.3 Agent模型框架的实现细节
    • L3.2 MetaGPT
    • L3.2.1 MetaGPT的基本概念
    • L3.2.2 MetaGPT的工作原理
    • L3.2.3 MetaGPT的应用场景
    • L3.3 ChatGLM
    • L3.3.1 ChatGLM的特点
    • L3.3.2 ChatGLM的开发环境
    • L3.3.3 ChatGLM的使用示例
    • L3.4 LLAMA
    • L3.4.1 LLAMA的特点
    • L3.4.2 LLAMA的开发环境
    • L3.4.3 LLAMA的使用示例
    • L3.5 其他大模型介绍

阶段4:AI大模型私有化部署

  • 目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。
  • 内容
    • L4.1 模型私有化部署概述
    • L4.2 模型私有化部署的关键技术
    • L4.3 模型私有化部署的实施步骤
    • L4.4 模型私有化部署的应用场景

学习计划:

  • 阶段1:1-2个月,建立AI大模型的基础知识体系。
  • 阶段2:2-3个月,专注于API应用开发能力的提升。
  • 阶段3:3-4个月,深入实践AI大模型的应用架构和私有化部署。
  • 阶段4:4-5个月,专注于高级模型的应用和部署。
这份完整版的大模型 LLM 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

😝有需要的小伙伴,可以Vx扫描下方二维码免费领取🆓

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

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

相关文章

开放式耳机哪个品牌最好?五大必看开放式耳机推荐2024

想要购买开放式耳机,但面对众多品牌和型号,你是否感到无从下手?别担心,作为耳机发烧友和测评专家,我为大家带来了几款热门开放式耳机的横向对比。从音质、设计、功能等方面进行详细对比,让你一目了然地了解…

受用一生的三种顶级思维

斯坦福大学心理学教授卡罗尔德韦克在《终身成长》中提到: 决定人与人之间差异的,不是天赋,不是勤奋程度,而是思维模式。 在许多情况下,拥有恰当的思维方式,甚至比单纯的努力更加关键。 普通的人改变结果…

贺尔碧格流量阀比例放大器PSR2BE10P25、PSR2BE10P30、PSR2BE10P25

PSR2BE04N06、PSR2BE04P10、PSR2BE04P06、PSR2BE04N10、PSR2BE10N12、PSR2BE10P25、PSR2BE10P30、PSR2BE10P25、PSR3BE10N25、PSR3BE10P30、PSR3BE10P12贺尔碧格HOERBIGER液压比例流量阀由比例电磁铁和流量阀组合而成,利用输入的电信号来改变节流阀的开度&#xff0…

适用于 Android 的 几种短信恢复应用程序

Android 设备上的短信丢失可能由于多种原因而丢失,例如意外删除、恢复出厂设置、系统崩溃或病毒攻击。是否有应用程序可以恢复 Android 上已删除的短信?幸运的是,有几款短信恢复应用程序可以扫描您的 Android 手机并从内存或 SIM 卡中检索已删…

手机照片怎么恢复?3个方法,从灾难中崛起

已经成为了我们随身携带的必备品。而在这些小巧玲珑的设备中,存储着我们大量的个人回忆和重要资料。其中,手机拍摄的照片更是承载着我们的欢笑、泪水、成长与经历,但它们会因为意外从此消失。 面对这样的困境,我们是否只能无奈接…

邮件群发推送的方法技巧?有哪些注意事项?

邮件群发推送的策略如何实现?邮件推送怎么评估效果? 电子邮件营销是现代企业进行推广和沟通的重要工具。有效的邮件群发推送不仅能提高客户参与度,还能促进销售增长。AokSend将探讨一些关键的邮件群发推送方法和技巧,以帮助企业优…

安装虚拟环境

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 Flask依赖两个外部库:Werkzeug和Jinja2。Werkzeug是一个WSGI(在Web应用和多种服务器之间的标准 Python 接口)工具…

JavaWeb系列十六: jQuery初步入门

跟老韩-JavaScript开发利器之jQuery 1.1 原理示意图1.2 快速入门1.2 什么是jquery对象1.3 dom对象转jQuery对象1.4 jQuery对象转dom对象 jQuery是一个快速的, 简洁的javaScript库, 使用户能更方便地处理HTML, css, dom…提供方法, events, 选择器, 并且方便地为网站提供AJAX交互…

TensorRT-LLM加速框架的基本使用

TensorRT-LLM是英伟达发布的针对大模型的加速框架,TensorRT-LLM是TensorRT的延申。TensorRT-LLM的GitHub地址是 https://github.com/NVIDIA/TensorRT-LLM 这个框架在0.8版本有一个比较大的更新,原先的逻辑被统一了,所以早期的版本就不介绍了…

爬虫阶段思考

内容:写这篇文章是因为最近帮同学改了很多的爬虫代码,感触良多。 我用豆瓣为例,并不是不会用别的,而是这个我个人感觉最经典。然后还会写我遇到的一些问题以及解决方法。 首先,我们得先知道怎样爬取。我用的scrapy框…

操作系统实训复习笔记(1)

目录 Linux vi/vim编辑器(简单) (1)vi/vim基本用法。 (2)vi/vim基础操作。 进程基础操作(简单) (1)fork()函数。 写文件系统函数(中等&…

TensorFlow高阶API使用与PyTorch的安装

欢迎来到 Papicatch的博客 文章目录 🍉TensorFlow高阶API使用 🍈示例1:使用tf.keras构建模型 🍍通过“序贯式”方法构建模型 🍍通过“函数式”方法构建模型 🍈示例2:编译模型关键代码 &am…

多商户零售外卖超市外卖商品系统源码

构建你的数字化零售王国 一、引言:数字化零售的崛起 在数字化浪潮的推动下,零售业务正经历着前所未有的变革。多商户零售外卖超市商品系统源码应运而生,为商户们提供了一个全新的数字化零售解决方案。通过该系统源码,商户们可以…

.locked勒索病毒详解 | 防御措施 | 恢复数据

引言 在数字化飞速发展的今天,我们享受着信息技术带来的便捷与高效,然而,网络安全问题也随之而来,且日益严重。其中,勒索病毒以其狡猾的传播方式和巨大的破坏性,成为了网络安全领域中的一大难题。.locked勒…

解决Element-ui的el-table固定列后出现的表格错位问题

问题情况大致是这样的: 查看官网 解决办法:

std::future 如何保存多个对象进行同步等待

std::future 是一个 C11 引入的标准库类,可用于异步获取计算结果。通常情况下,std::future 可以通过 get() 函数来等待异步操作完成,并获取其结果。 如果需要等待多个异步操作完成并获取它们各自的结果,可以使用 std::future 的姊…

2024年文化传播与公共艺术国际会议(CCPA 2024)

2024年文化传播与公共艺术国际会议(CCPA 2024) 2024 International Conference on Cultural Communication and Public Arts 【重要信息】 大会地点:桂林 大会官网:http://www.icccpa.com 投稿邮箱:icccpasub-conf.co…

群辉NAS使用Kodi影视墙

目录 一、KODI安装 二、修改UI语言 1、修改显示字体 2、修改语言为中文 四、添加媒体库 五、观看电影 五、高级设置 1、视图类型 2、修改点击播动作 五、补充 1、文件组织结构及命名 2、电影信息的刮削 (1)添加影片 (2)演员管理 (3)影片管理 (4)说明 K…

【WEB前端2024】3D智体编程:乔布斯3D纪念馆-第47课-动态切换内嵌blender展厅的壁画

【WEB前端2024】3D智体编程:乔布斯3D纪念馆-第47课-动态切换内嵌blender展厅的壁画 使用dtns.network德塔世界(开源的智体世界引擎),策划和设计《乔布斯超大型的开源3D纪念馆》的系列教程。dtns.network是一款主要由JavaScript编…

基于Java协同过滤算法的电影推荐系统设计和实现(源码+LW+调试文档+讲解等)

💗博主介绍:✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者,博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 🌟文末获取源码数据库🌟 感兴趣的可以先收藏起来,…