任务定义

评测体系

要素准确定义

给定一个样本的一个要素,要素值和要素类型均正确。由于答案生成环节的需求,需要对要素进行分类,分为确定性的要素及可能性的要素。访客问题中确定性的事实对应确定性的要素,可能性的事实对应可能性的要素。 在生成答案时,确定性的要素会在答案中略去;可能性的要素会在答案中特殊处理。举例如下:

针对某个样本的发票类型这个要素,标注结果中要素值为普通发票,要素类型为确定性要素;预测结果中要素值为专用发票,要素类型为不确定性要素。

整体评测指标

整体评测指标分为样本级和要素级。对于Badcase的分析也包含样本级和要素级。要素错误类型包括漏抽,多抽和错抽。

方案设计

整体的目标是准确>速度。其中准确可以通过提示词技术实现,配套相关的容错技术。围绕速度可以通过模型蒸馏的方式实现。围绕提示词优化技术的难点包括:

  • 提示词中的内容在业务上是正确的,但是实际效果不足预期,这个时候如何处理这种情况?
  • 提示词越写越像写规则?
  • 抽取结果是不稳定的。即使在temperature=0的条件下,而且不稳定性的表现与要素强相关,原因可能包括:
    • 用户输入的复杂性
    • 提示词指令不清晰
    • 基座模型自身的不稳定性(DeepSeek-V3) 可以考虑通过投票降低方差的同时,提升效果和结果输出的稳定性。

围绕要素定义,可以考虑要素抽取的统一建模。如下:

  • 针对属性建模。所有的要素分为两类,分别是要素值成立的概率为100%和要素值成立的概率<100%。这里的问题是:两类要素的边界在哪里?比如按照来源分类,基于法条 v.s. 基于人类经验判断
  • RAG。要素抽取是需要知识注入的,知识的形态包括结构化的规则表达,非结构化的先验知识

除了上述问题,还有如何定义和处理要素值为“未知”的情况?

  • 输入侧缺少某要素值的信息
  • 用户输入不清晰。那么当用户输入不清晰的时候,如何做用户预期的管理?
  • 用户输入是清晰的,但是不同的人会得到不同的要素值,因为不同的人的隐性知识是不同的
    • 如果是加隐性知识,怎么判断加哪些?如这样的隐性知识:“免税发票可能是任意一方开的,专用发票只有销售方开的。”
    • 如果直接给要素值=未知,下游可以接受吗?也许需要一个反问的策略

怎样实现主观问题客观化?比如核心的难点是否来源于要素抽取任务依赖较多的隐性知识,而这个隐性知识能否,以及怎么才能获取并应用很关键。

在具体实现的时候分为会话作为输入的抽取和最后一句话作为输入的抽取。考虑到会话作为输入相比最后一句话复杂程度高的多,因此可以优先考虑最后一句话作为输入,而最后一句话本质上是做作会话的标准化,所有的复杂问题会在最后一句话中被预期解决。

要素抽取的动态性

要素抽取是一个动态的过程吗?这种动态性是如何表现的?

给定最后一句话,如果最后一句话的描述是清晰的,可以直接抽取,但是抽取只能抽取明确提及的要素,根据明确提及的要素进行确定性推理的要素抽取难度高,但是可以通过if…then…的方式实现,比如:

if 是否有自产标签 =是, then 是否数电发票 =是

如果最后一句话描述是不清晰的,可以通过反问的方式补全信息,或者基于隐性知识抽取得到不确定的要素。

总结

要素抽取任务是一个能够通过客观题评估方式进行量化评估的主观题。主观性的存在是对隐性知识的依赖,而部分隐性知识是模糊而非概率的。

围绕不确定性推理的方向,要素抽取任务是为了拿到事实和证据,但是证据具有不确定性,而要素抽取任务中面临要素值的不确定性正是要素抽取的难点,更具体地讲,要素抽取自身就是一个默认推理(default reasoning)任务。

进一步地,需要有一种方式能够对要素不确定性进行表示和度量。将要素分为确定性要素和不确定性要素,是对要素不确定性的一种表示方式,但是对于不确定性要素,是通过离散还是连续的方式表达这种不确定性?

扫码加笔者好友,茶已备好,等你来聊~