《面向机器阅读理解的多任务层次微调模型》论文总结

本文探讨了机器阅读理解的现状和挑战,指出其在推理能力和解释性上的不足。针对这些问题,文章提出了使用‘中国法研杯’2020年司法数据集,以训练更复杂的推理模型。模型利用RoBERTa进行层次微调,包括精读和泛读模块,以提高答案抽取和证据推理的准确性。实验结果显示,这种方法能有效提升机器阅读理解的性能,特别是在司法领域的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.机器阅读理解

机器阅读理解 (machine reading comprehension,MRC) 是通过计算机理解文章语义并回答相关问题的一项重要研究任务. 让计算机系统能够理解文本的含 义, 并且做出正确的反馈, 是自然语言处理的长期目标。

作用:机器阅读理解的研究对提升机器的自然语言理解能力具有重要促进作用。同时,将机器阅读理解技术运用到智能客服问答系统中,能够更进一步的提高问答系统的扩展性和效率。

2.机器阅读理解的现状

2.1面临的问题

  • 推理性不强,缺乏可解释性
  • 缺乏大量的训练数据
  • 存在一定的限制,如限定只给出一个答案

2.2现实中的挑战

  • 实际应用中, 存在大量场景不仅需要答案, 还需要这个答案具有一定的解释性, 需要同时
    找出能够支撑该答案的相关句子。
  • 目前在司法领域的机器阅读理解研究还较少

3.提出的解决方法

采用的数据集:第三届“中国法研杯”司法人工智能挑战赛(CAIL 2020) 比赛提供的中文法律机器阅读理解数据集

3.1为什么要采用该数据集?

3.1.1主流问答数据集的弊端

对于目前主流的问答数据集(例如斯坦福的 SQuAD 数据集 [1]),问题的答案基本都在单一文档的单一(或连续的)句子中,并且这类问题大多可通过对问题和单一文档使用类似关键词匹配(keyword matching)的方式来回答。基于这些数据集训练的模型虽然在这类问题上表现不俗,但是它们对基于多个信息进行多步推理的能力表现得不尽如人意

3.1.2新型数据集的好处

现有的问答(QA)数据集无法训练可执行复杂推理和提供答案解释的 QA 系统。该数据集类似于新型问答数据集 HotpotQA,该数据集包含 11.3 万个基于维基百科的问答对,具备以下四个特点:

  1. 问题的答案必须要基于多个支持文档;

  2. 问题多样化,不局限于任何已有的知识库或知识模式;

  3. 提供句子级别的支持推理线索(supporting fact),允许 QA 系统用强大的监督进行推理,并对预测结果进行解释;

  4. 提供了新型模拟比较型问题,来测试 QA 系统提取相关线索、执行必要对比的能力。

3.2提出的模型

3.2.1任务定义

传统的机器阅读理解任务主要分为 3 大类型:

  • 填空式阅读理解,
  • 选择式阅读理解,
  • 抽取式阅读理解.

传统的抽取式阅读理解任务定义为:给定一段文本 c={w1c, w2c, …, wnc}和问题 q={w1q, w2q,…, wnq
}, 通过模型从文本中抽取出对应的答案 a.
而本文研究的数据集, 除了需要从文本中抽取对
应的答案部分之外还需要额外抽取支撑该答案的句子,
即支撑答案的证据 Sk, k 为证据的句子数目. 对于上述
任务, 其定义如式 (1) 所示:

3.2.2模型构建
3.2.2.1RoBERTa 模型介绍

RoBERTa模型是BERT模型的一个改进,相较于BERT有较大的提升,是一个预训练模型。
改进的方面:

  1. 数据生成方式和任务改进:取消下一个句子预测,并且数据连续从一个文档中获得。
  2. 更大更多样性的数据:使用 30G 中文训练,包含 3 亿个句子,100 亿个字 (即 token)。由于新闻、社区讨论、多个百科,保罗万象,覆盖数十万个主题,共160+G数据。
    Byte-Pair Encoding(BPE)是字符级和词级别表征的混合。
  3. 训练更久:超过500k steps
  4. 更大批次:使用了超大(8k)的批次 batch size。
  5. 调整优化器的参数。
  6. 使用全词 mask(whole word mask)和动态的mask。

层次微调模型分为两层, 第一层我们先使用
RoBERTa 模型进行编码分别用线性层进行输出计算
损失值, 并保存最优权重, 进行第一次微调
在这里插入图片描述

第二层再结合 Retro-Reader 方法, 将模型分为精读模块和泛读模块分别读取模型 (a) 微调后的权重进行二次微调, 最后进行预测, 如图 2 中 (b) 所示.
在这里插入图片描述

3.3模型具体介绍

3.3.1编码层
  1. 编码层将问题和文章的离散符号转换为连续向量
    表示序列.
  2. 论文中使用 RoBERTa-large-wwm 来实现编码
    层. 该方法主要更改了原预训练阶段的训练样本生成策略, 将全词掩码的方法应用在了中文中, 即对组成的同一个词的汉字全部进行 [MASK].

具体操作:

  1. 首先本文使用预训练模型 RoBERTa 的词表先将
    输入的文本转化 Input=[CLS]Q[SEP]T[SEP] 的方式.
  2. 其 中 [CLS] 用于分类任务, Q 为问题, T 为文章, [SEP] 作
    为分隔符来对问题 Q 和文章 T 进行分割.
  3. Input 长度为 512, 如果总长度未达到 512, 空余部分以 0 补全. 之后将离散的符号映射至高维的向量, 通过 24 层 Transformers, 隐藏层维度为 1 024, 激活函数使用GELU函数
3.3.2层次微调方法

层次微调方法是通过 RoBERTa 预训练模型与多任务学习方法进行训练, 并保存最优的 RoBERTa 模型权重.然后再将其权重值传递给精读模块和泛读模块分别进行读取, 之后继续在对应的任务上进行训练, 从而达到一个较好的效果.

3.3.3精读模块

采用多任务学习方法,:

  1. 任务 1 为序列标注问题从
    文章中标注答案开始位置以及结束位置,
  2. 任务 2 为分类问题, 结合问题以及文章进行判断得到答案的类型.

由编码层可以得到输入层的 1 024 维向量表示, n 为 512.任务 1 中定义 BERT 的输入为 [CLS]Q[SEP]P,定
在这里插入图片描述
在这里插入图片描述

3.3.4泛读模块

在这里插入图片描述

3.3.5预测模块

精读模块的预测结果有两部分, 第 1 部分为答案类型一共有 4 种分类. 分别为截取类型 (SPAN 类型),是否类型 (YES/NO 类型) 以及不可回答类型 (UNKNOWN类型). 第 2 部分为根据问题在原文中所截取的片段

我们先取第 1 部分答案类型分类结果, 如果分类为是否类型与不可回答类型, 则直接输出答案类型作为精读模块结果. 如果为截取类型, 则取第 2 部分输出内容为结果.最后, 将精读模块预测内容与泛读模块中输出的答案支撑句进行拼接, 进行最终答案的输出, 得到如下图 的结果方便后续评估.
在这里插入图片描述

3.3.6实验参数

实验训练过程中模型采用 带有权重衰减的自适应动量估计算法 (AdamW) 作为优化算法, 学习率为 1e–5. 使用预热学习率 (warmup step),即先用较小的学习率训练, 然后每步逐渐增大, 直到达到最初设置的学习率, 批处理大小为 1, 一共训练 10 轮.

4.实验结果

4.1正面对比

在这里插入图片描述

4.2反面对比

在这里插入图片描述

5.总结

这篇文章中提出了一种多任务层次微调模型, 将答案类型预测和答案预测两个任务放入精读模块.使用多任务学习方法进行预测, 再将证据抽取任务单独分放进泛读模块, 单独进行训练预测, 最后综合两个模块的预测结果进行输出,并且选取了 BERT、ALBERT、RoBERTa、RoBERTa-large 四种不同规模的预训练模型对输出的实验结果进行了对比分析.

实验表明, 论文中所提方法可以有效提高机器阅读理解的答案抽取以及证据抽取的效果, 未来可以将把侧重点放在精读模块与泛读模块上, 以进一步对模型进行优化。

<think>好的,我现在需要帮助这位大学生规划他们的创新创业训练项目。他们的课题是基于LLaVA的多模态食物风味与健康属性对齐与生成式建议系统。首先,我需要理解他们提到的各个组件,并确保技术路线合理。 首先,目标任务部分。用户提到了几个关键点:微调LLaVA在Yummly66k数据集上,知识蒸馏压缩GPT模型获取健康数据,构建Gradio界面。可能需要将这些分解成具体的任务。比如数据处理、模型微调、知识蒸馏、系统集成等。还要考虑健康数据如何与风味对齐,生成建议的逻辑,以及评估指标。 技术路线方面,先要处理数据集。Yummly66k包含图片和文本,需要清洗数据,可能需要标注或增强。然后是多模态对齐模块,使用CLIP或类似模型处理图像和文本的嵌入,确保食物图像和风味描述匹配。接下来是LLaVA微调,可能需要调整模型结构,加入适配器层,进行联合训练。然后是知识蒸馏部分,用GPT生成健康属性数据,然后用较小的模型(比如TinyLLaMA)来蒸馏,确保健康数据能被整合。最后是系统集成,用Gradio做界面,可能还需要API连接模型,设计用户交互流程。 需要注意的地方包括数据预处理是否正确,模型微调的方法是否有效,蒸馏过程中如何保持健康信息的准确性,以及系统如何实时生成建议。可能还需要考虑计算资源是否足够,比如微调LLaVA需要GPU资源,蒸馏过程的时间成本。另外,评估部分可能需要BLEU、ROUGE等指标,以及用户测试。 可能的风险点:数据集是否包含足够的健康属性信息,如果Yummly66k没有的话,可能需要额外数据源。知识蒸馏后的模型性能是否足够,是否有信息损失。多模态对齐的效果是否理想,可能需要调整模型结构或训练策略。时间安排是否合理,各个阶段是否有足够的缓冲。 需要确保技术路线中的每一步都有明确的输入输出,比如数据处理后的格式,模型训练的checkpoints,蒸馏后的模型性能指标。系统集成部分要考虑用户体验,界面是否友好,响应速度是否达标。 总结来说,需要分步骤详细规划每个任务的目标和方法,确保各模块之间的衔接,比如多模态对齐后的数据如何输入到生成式建议系统中。同时,验证每个环节的有效性,比如通过消融实验验证知识蒸馏的作用,或者对比微调前后的模型性能。</think>以下是为您设计的项目目标任务与技术路线框架,结合多模态模型与健康属性对齐的核心需求: --- ### **一、目标任务分解** 1. **多模态特征对齐** - 目标:建立食物图像(视觉模态)与风味描述(文本模态)的跨模态映射 - 关键指标:跨模态检索准确率(Top-5 ACC ≥85%) 2. **健康属性知识注入** - 目标:通过知识蒸馏将GPT营养学知识迁移到轻量级模型 - 关键指标:蒸馏后模型参数量压缩至原GPT的10%以下,保留90%关键营养知识 3. **生成式建议系统** - 目标:实现输入图像→风味分析→健康建议的端到端生成 - 关键指标:生成建议的BLEU-4 ≥0.65,人工评估满意度 ≥4/5分 --- ### **二、技术路线设计** #### **阶段1:数据工程** ```mermaid graph TD A[Yummly-66K原始数据] --> B[图像增强] B --> C[文本清洗] C --> D[健康知识标注] D --> E[构建三元组数据集] ``` - **关键技术**: - 使用CLIP-RP进行图像特征降维 - 通过TF-IDF+BiLSTM提取文本关键描述 - 引入USDA营养数据库补充健康标签 #### **阶段2:多模态对齐模块** $$ \mathcal{L}_{align} = \alpha \cdot \mathcal{L}_{contrastive} + \beta \cdot \mathcal{L}_{reconstruction} $$ 其中: - $\mathcal{L}_{contrastive}$: 跨模态对比损失 - $\mathcal{L}_{reconstruction}$: 跨模态自编码损失 **实现步骤**: 1. 基于LLaVA架构插入Adapter层 2. 冻结原视觉编码器(ViT-L/14) 3. 微调文本解码器与跨模态投影层 #### **阶段3:知识蒸馏框架** ```python class HealthDistiller(nn.Module): def __init__(self): super().__init__() self.teacher = GPT-3.5-turbo self.student = TinyLLaMA self.kd_loss = KLDivergenceLoss() def forward(self, food_features): teacher_logits = self.teacher.generate(...) student_logits = self.student(...) return self.kd_loss(teacher_logits, student_logits) ``` #### **阶段4:系统集成** **Gradio界面架构**: ``` 用户上传图片 → 视觉特征提取 → 多模态融合 → 健康属性预测 → 生成建议 → 可视化输出 ``` --- ### **三、关键创新点** 1. **双阶段蒸馏策略**: - 第一阶段:从GPT蒸馏营养学知识 - 第二阶段:对齐视觉-文本-健康三元特征空间 2. **动态注意力路由**: $$ \alpha_{ij} = \frac{\exp(\mathbf{q}_i^T\mathbf{k}_j)}{\sum_{k=1}^N \exp(\mathbf{q}_i^T\mathbf{k}_k)} $$ 在跨模态融合时动态调整视觉与文本特征的注意力权重 --- ### **四、风险评估与对策** | 风险点 | 应对方案 | |--------|----------| | 多模态对齐效果不佳 | 引入CM-ACC评估指标,采用课程学习策略 | | 健康建议生成不准确 | 构建专家验证集,设计强化学习奖励机制 | | 推理速度不达标 | 使用TensorRT量化部署,采用缓存机制 | 建议先完成LLaVA在Yummly-66K上的基线实验(建议用4×A10G GPU),再逐步加入健康模块。需要特别注意食物图像的细粒度特征提取,可尝试集成ResNet-152作为补充视觉编码器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Indra_ran

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值