Page 362 - 《软件学报》2025年第10期
P. 362

刘一丁 等: 针对   LLM  对话属性情感理解的多代理一致性反思                                              4759



                                                      Q   = LLM(I main )                              (1)
                                                       main
                 其中,  I main  是大语言模型对话属性情感理解任务的输入,          Q main  是主任务代理生成的结果.
                    ● 存储模块    (memory). 该模块是多代理反思的核心, 模型需要根据存储模块储存的历史信息进行反思, 该模块
                 用于存储模型生成的历史信息, 因此我们设计了存储模块来保存用户的输入以及模型的输出, 模块的形式化描述
                 如下:

                                                  memory = Concat(I main ,Q main )                    (2)
                 其中,   I main  和  Q main  分别是大语言模型对话属性情感理解任务的输出和输入,        Concat() 是字符串拼接操作.
                    在得到   Q main   之后我们对四元组中的观点描述语和属性实体进行提取, 得到观点描述语集合                     O = {o 1 ,o 2 ,...,o m }
                                                                                     i
                                                         i
                 以及属性实体集合       E = {e 1 ,e 2 ,...,e m }, 其中  o i  表示第   个四元组的观点描述语,  e i  表示第   个四元组的属性实体,  m
                 表示生成结果中四元组的个数. 之后我们将             O 和  E  与对话文本进行合并, 作为      EM  代理、OE  代理、OM    代理的输
                          Q 、 Q 、  Q , 其中,  Q = LLM(O) Q   = LLM(O) Q  = LLM(E).
                                                                   ,
                                                       ,
                 入得到输出
                           oe   om   em      oe          om          em
                    ● 一致性感知的奖励       (consistency-aware reward). 奖励值的构建过程如图  2  中一致性感知的奖励所示. 奖励值
                                                  Q                    Q 、 Q 、           Q    中抽取出大语
                 大语言模型对话属性情感理解任务的输出                main   以及各个代理的输出     oe  om  Q . 我们从    main
                                                                                 em
                                                                     (O main ,E main ), 属性实体与观点描述语与代指提
                 言模型对话属性情感理解任务中属性实体与观点描述语的二元关系
                 及的二元关系     (O main , M main ) 以及代指提及的二元关系   (E main , M main ), 将这些二元关系分别与  Q 、 Q 、 Q em  进行对
                                                                                            om
                                                                                        oe
                 比, 得到评估结果. 具体来说, 从     Q   中抽取出   (O main ,E oe ), 从  Q   中抽取出   (O main ,E om ) 以及从  Q   中抽取出  (E main , M em ).
                                          oe                  om                       em
                 奖励值的计算公式如下:

                                                        {OE right ,OM right ,EM right }
                                               R {oe,om,em} =                                         (3)
                                                        {|OE main |,|M main |,|M main |}
                 其中,   OE right  指  E main  与  OE  代理中属性实体正确的匹配个数,  OM right  和  EM right  分别表示  M main  与  OM  代理和  EM
                 代理中代指提及正确的匹配个数.
                    ● 一致性评估    (consistency evaluation). 因为  EM  代理与  OM  代理都是解决对话中的指代关系, 因此对      EM  代
                 理和  OM  代理进行一致性评估, 当       EM  代理与  OM  代理不一致时, 我们认为模型在指代关系的抽取中发生了不一
                 致的情况, 并修改最终的奖励值, 经过一致性评估的奖励值形式化如下:

                                       {
                                         R = 0.5×R oe +0.25×(R om +R em ),  if OM right = EM right    (4)
                                         R = R oe ,                else
                    一致性评估过程如上述公式所示, 当            OM  代理和  EM  代理预测结果一致时, 我们将其产生的奖励加入最终的
                 奖励中, 否则我们任务子任务代理间发生了不一致, 此时只采用                   OE  代理的奖励值作为最终的奖励值. 在得到奖励
                 值后, 我们通过阈值      α 来决定模型是否进行反思, 当评估器的输出低于               α 时, 执行反思操作, 其中,     α 是超参数, 本
                 文设置为   0.5. 具体的反思以及存储模块如下.
                    ● 一致性增强的反思       (consistency reflection). 当奖励值低于  α 时, 我们认为模型发生了不一致的情况, 这时候
                 调用一致性反思模块进行反思. 一致性反思通过                prompt 在不改变模型参数的情况下让模型对之前的输入进行反
                 思. prompt 如下: “经过评估, 你之前抽取的结果存在较大的偏差, 请你确认之前抽取的结果正确性, 删除没有把握
                 的抽取结果并重新抽取有把握的结果.”之后将               prompt 与模型输入拼接, 得到最终的输入         I self .
                    最后, 我们将一致性反思的输入与存储模块的输入拼接作为模型的输入, 通过                         prompt 让模型进行反思, 得到
                 最终一致性反思后的结果, 形式化如下:

                                               Q reflection  = LLM(Concat(I self ,memory))            (5)
                    ● 一致性增强    (consistency-enhancing): 在模型进行反思后, 不一定能抽取正确的结果, 为了避免这种现象, 我

                 们通过设计强制反思来确保生成结果的一致. 具体来说, 我们对                   Q reflection  进行评估, 当模型输出仍然不一致时, 对各
                 个代理生成的结果进行合并, 使用           agent 生成的结果替换掉情感理解任务的结果, 从而提高模型生成结果的一致
                 性. 算法流程如算法      1  所示.
   357   358   359   360   361   362   363   364   365   366   367