GLM大模型 2024年10月25日
LongCite:让大模型精准找到 {引用}
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

长文本模型在回答中存在未标注引用依据、易出现幻觉等问题,文章提出用带有细粒度引用的标注数据SFT微调模型的方案,包括构造数据的CoF方法及相关实验验证等内容。

🎯长文本模型存在回答未标注引用依据、易出现幻觉等问题,影响模型可信性,RAG和后处理方式存在缺陷。

💡提出用带有细粒度引用的标注数据SFT微调模型的方案,训练的LongCite模型在引用质量和回复正确性上处于较高水平。

📋构造数据的CoF方法遵循充分利用现有模型长文本能力和生成高质量细粒度引用的原则,整个pipeline共分四步。

🔬通过相关实验验证,LongCite模型的引用质量明显超过现有长文本模型,在回答正确性上也超越了其他模型,消融实验表明其引用能力来源于特定数据集,CoF中的数据筛选可提高引用质量。

智谱AI 2024-09-13 12:16 北京

句子级引用

超长的上下文窗口已经成为最新一代语言模型的标配,例如GLM-4-9B-1M,Gemini 1.5等,这种模型常常被广泛应用于长文档问答场景。

然而,当前的长文本模型并没有在其回答中标注出每句话在原文中的依据,而由于文档过长,用户很难去验证模型提供的信息。此外,模型的输出也常常会出现幻觉,并不忠于原文,这严重影响了模型的可信性。

针对这一问题,通常会通过RAG或者后处理的方式,让大模型在回复中加入引用信息。这种方式在开放域问答和智能搜索引擎(例如 New Bing,Perplexity AI)中被广泛应用。

但 RAG 在长文本问答中,往往会丢失文本信息,使得模型回复的正确性下降。而后处理方式会让pipeline变得特别复杂,用户需要等待很长时间。

我们不仅要问,我们是否可以让模型具备生成回答的同时直接生成引用,同时既不丢失文本信息,又不增加处理时间?

经过深入的思考和实验,我们找到了一种方案:用带有细粒度引用的标注数据,SFT微调模型。

效果如下:

可以看到,训练的模型 LongCite 无论在引用质量,还是回复正确性都处于较高水平。

代码:https://github.com/THUDM/LongCite

数据:

模型:

Demo:https://huggingface.co/spaces/THUDM/LongCite

论文:https://arxiv.org/abs/2409.02897

视频:https://www.bilibili.com/video/BV1QD4zexEU2/

我们提出了LongBench-Cite 的评测方法。这个评测集包含了来自LongBench-Chat 和 LongBench的共计 1000 条长文本问答数据,涉及单文档问答、多文档问答、文档总结等常见任务。

与以往的工作不同,我们在 LongBench-Cite 中会更加注重评测细粒度的句子级引用 —— 把引用的内容定位到句子级别。

LongBench-Cite从两个维度上,由GPT-4o进行自动判断:

那么现有的这些长文本模型在 LongBench-Cite 上表现如何呢?我们采用 in-context learning的设定,即给一个示例的方式,进行测试。

从上图可以看出

此外,In-context learning 也使得模型长文本回答能力受损,correctness ratio (CR) 普遍小于100%。

根据我们的深入分析和实验,我们发现若想让模型本身拥有较强的细粒度的引用能力,只需要用较好的带有细粒度引用的长文本问答数据,对模型做 SFT 即可。

那么问题是,如何构造这样的数据?

我们提出了 CoF(Coarse to Fine)的方法,并利用现有长文本模型来自动构造数据。构造方法遵循两个原则:

整个pipeline共分为 4步:

第一步,问题生成。使用self-instruction的方法,自问自答生成长文本问答对。

第二步,生成chunk-level citation。使用答案中的句子从原文检索出相关片段。再通过 in-context learning 的方式让大模型把原有答案分成statements并加入chunk-level citation。

第三步,抽取sentence-level citation:对于每个statement,将其对应的chunk-level citation中的句子补充完整,并将每个句子编号。再让大模型通过in-context learning从chunk中抽取出支持该statement的句子编号。最后根据句子在原文中的位置重新标号,得到最终的sentence-level citation。

第四步,数据筛选。将前几步的数据整理,得到最后的带有sentence-level citation的长文本问答数据。筛去引用过少的数据。这些数据可能没有忠于原文,包含有幻觉。

我们在 LongBench-Cite 上对 CoF 框架进行了验证,

可以看到,CoF在所有post-hoc方法中取得了最高的citation F1,粒度也较细;与one-pass方法(同时生成答案和引用),CoF可以保证答案的正确性不下降。

通过收集GLM-4预训练语料中的长文档和CoF框架,我们构造了一个大规模的SFT数据集LongCite-45k。数据集包含了 44,600条带有句子级引用的高质量问答数据,其中最长可达128k token。

我们基于支持 128k 上下文的开源模型 GLM-4-9B和 Llama-3.1-8B,并使用 LongCite-45k 和 ShareGPT 数据集进行 SFT 微调,分别得到 LongCite-9B 和 LongCite-8B。

我们在 LongBench-Cite 评测集上对两个模型进行验证。

可以看到LongCite 模型的引用质量明显超过现有的长文本模型:Citation F1最高,且 Citation Length 相比原模型也有明显缩短,在同等F1的情况下,LongCite 模型的Citation Length 比 GPT-4o缩短了一倍还多,能够实现精准的定位。

我们在 LongBench-Chat 上的人类评估,也证明 LongCite模型的引用质量更高。

另一方面,在回答正确性上,LongCite模型也超越了 GPT-4o和Llama-3.1-70B。且相较于普通长文本 SFT 模型,带有引用信息的 SFT 模型可以进一步提高长文本问答的正确性。

从下面的示例中,可以看到,相较于普通长文本 SFT 模型,1)LongCite模型的幻觉会更少:

2)LongCite 模型可以更均匀地利用上下文信息:

我们也进行了消融实验

LongCite模型的引用能力来源于LongCite-45k数据集而非普通的长文本SFT。CoF中的数据筛选可以显著提高引用质量。


阅读原文,直达项目仓库!

阅读原文

跳转微信打开

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

长文本模型 引用问题 SFT微调 CoF方法 LongCite模型
相关文章