KSOD: 更精细地向LLM中添加特定知识

论文标题
KSOD:Knowledge Supplement for LLMs On Demand

论文地址
https://arxiv.org/pdf/2503.07550

作者背景
北京大学计算机学院,多媒体信息处理

前言

微调是一种改变大模型表现的低资源手段,但当拿它做知识注入时,很可能遇上“新知识学不好,旧知识也忘了”的尴尬处境,相关研究表明,其原因在于微调新知识容易让模型变得“张口就来”:不基于原有的知识回答问题,或者基于原有的幻觉回答问题

Does Fine-Tuning LLMs on New Knowledge Encourage Hallucinations?
https://arxiv.org/pdf/2405.05904
谷歌24年论文

所以,如果我们希望通过微调让大模型学习新知识,需要仔细挑选训练数据,以求在学会新知识的同时原本的通用能力不要下降。

对此,本文提出了一种名为KSOD的LLM知识迭代框架,分为知识识别、知识验证和知识补充三个步骤,本文对此展开介绍

KSOD整体流程

知识识别

对于需要进行知识迭代的LLM,首先收集它所犯的知识性错误样例,并在GPT/DeepSeek等强力大模型的帮助下进行点评、识别所缺少的知识

在这里插入图片描述

找到需要加强的知识后,通过手动或自动检索,确定大致包含这些知识的数据集

注:基于知识而非基于任务构造数据,泛化性更强

知识验证

知识识别阶段得到的数据集会有多种,知识验证阶段的目标便是从中挑选出可用的部分

不过在一开始,每个数据集都被用来训练一个lora模块(知识模块)

回顾lora原理:

  • 在原始模型的部分参数旁边增加并行旁路
  • 独立的参数模块,推理是与原始参数相加

那么存在以下推论:

  • 如果lora模块学习的是没用的东西,参数变化会很小,lora模块计算出来向量的信息量就很小(对不同类别的新知识表示更趋同)
  • 如果lora模块学习的是有用的东西,参数变化相对更大,lora模块计算出来的向量信息量就更大(对不同类别的新知识表示更泾渭分明)

作者在llama和qwen两个模型上,使用不同类型的数据进行lora训练,结果支持以上观点(本案例是模型缺乏语法类知识)

在这里插入图片描述

在这里插入图片描述

最终,只选择轮廓系数更高的数据集作为知识注入候选

知识补充

这一步很简单,将通过知识验证的lora模块merge到当前模型即可,测试效果如下

在这里插入图片描述

由图可知,经过选择后的知识模块可以提升特定任务的效果,并且维持模型原本的通用能力不变

话语关系和语法纠错都属于语法类知识,但前者的引入会导致语法纠错效果降低,这更说明了新知识的选择需要非常仔细严格,稍不注意就会产生负向效果

总结

本文存在以下不足:

  1. 学术界实验数据往往具有清晰的边界,能够更容易地找出特定任务的数据集;而在工业场景下,数据往往以业务单元为单位构造,还需要额外的数据治理工作
  2. 本文所涉及的“知识”都需要有一个类别标签,这样才能在知识验证环节通过类间的聚类特征判断知识的价值,这很难扩展到一些长篇的理论、算法、业务知识上去

本文的主要启发:

  1. 再次证明通过SFT注入知识的难度,并提供了一种新的数据筛选思路
  2. 提出了一种新颖的知识价值判断方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值