为了提升LLM提取标签值的准确性和可解释性,通常在对客户和坐席的对话文本进行结构化信息提取时,我们不仅需要推理出相应标签的值,也需要输出这些值在通话中对应的对话文本。
1.标签值与标签依据
例如使用LLM获取用户对当前的自己借款利率的态度,我们需要得到这样三个结果:(标签名称,标签值,对话依据)
此时,标签名称=抱怨利率高,标签值=10.9(假设),对话依据=user:你们当前十点九的利率太高了。
对话依据的作用是增强标签值的可解释性,否则在落地过程中,只给营销的同事10.9这个值,他们常常是不敢用的,甚至保持怀疑。
2. LLM提取标签值和依据存在的问题
从上面的例子可以发现,在整个LLM的输出过程中,值的长度只占据整个输出过程中的很小一部分,尤其是当相关依据比较长的时候更是如此。
另一方法,从业务角度来说,标签值的重要性要高于标签依据的重要性。即使在LLM提取标签值的过程中,标签依据不正确只要值正确也并不会影响业务对标签的使用。
以客户“提及资金需求的时点”这个标签来说,即使依据错误,假设值“2024-04-01”正确,这并不会妨碍业务在4月前及时跟进用户,实现用户的转化。
3. FocusValue学习
为了解决上面的问题,我们自研并设计了FocusValue学习方法。在LLM的微调过程中,其损失函数通常为计算整个输出序列的交叉熵。但由于值的输出只占据整个输出顺序的很小一部分,因此,损失函数小,并不能确保值的正确。
FocusValue大致如下:
通过对输出中依据的mask来增强值提取的准确性。
因此总的损失函数由两部分构成:LLM交叉熵损失+a*FocusValue损失