今天是2024年9月14日,星期六,调休,北京,天气晴
昨天openai新模型的发布,直接带火了COT相关数据集,微博上有人发帖子找COT数据,很有趣。
我们今天来看一个问题,关于引文生成,我们已经讲过多个工作。
关于长文本参考文献引用生成,这个在当前RAG业务中是很常见的需求,并且在技术实现上,本质上就是一个微调任务,我们来看看有哪些引用的类型,差异性是什么,并看看LongCite引文生成方案。
跟进前沿并进行分析,总会有更多收获,供大家一起参考并思考。
引用,可以分为chunk级以及sentence级两种,如下图所示:
Chunk-level citations 和 Sentence-level citations 是两种不同粒度的引用方式,它们在长文本问答系统中用于提供答案的来源信息,从而增强答案的可信度和可验证性。
其中,
Chunk-level citations 和 Sentence-level citations 在提供答案来源信息时有不同的应用场景和优缺点。Chunk-level citations 适合快速检索和处理,而 Sentence-level citations 提供了更高的精确度和可信度,但同时也需要更复杂的处理技术和可能更高的资源消耗。在设计长文本问答系统时,根据具体需求和资源情况选择合适的引用粒度是非常重要的。
1) Chunk-level citations
[第k块]
,表示答案的这部分内容是基于第k块上下文信息得出的。2)Sentence-level citations
[第k句]
或 [第a句至第b句]
,明确指出答案中的具体信息来源于上下文中的哪些句子。我们可以来看看一些其他的,《LongCite: Enabling LLMs to Generate Fine-grained Citations in Long-context QA》(https://arxiv.org/abs/2409.02897)讨论了如何让大模型在回答基于长篇文本的用户问题时,能够生成细粒度的句子级别的引用。这样做的目的是为了提高模型回答的可信度和可验证性。
在模型训练方面,其使用LongCite-45k数据集(包含44,600个高质量的LQAC实例)对两个最新的开源长文本模型GLM-4-9B和Llama3.18B进行了微调,得到了LongCite-9B和LongCite-8B 模型,这些模型能够支持最大128,000个token的上下文窗口,并能够在一次处理中生成准确回答和精确的细粒度引用。
我们可以看看对应的实现流程CoF,如下:
CoF流程包括四个阶段:
(1)QA实例生成QAInstanceGeneration
给定一篇长篇的上下文材料,CoF首先利用LLM通过Self-Instruc生成查询和相应的答案。考虑到在一次通过中同时生成答案和引用可能会影响答案的正确性,首先构建长文本问答对,然后在后续步骤中将引用添加到答案中。还在提示中加入了不同任务类型的描述,例如摘要、信息提取和多跳推理,以确保生成的查询的多样性。
(2)块级引用生成Chunk-level Citation Generation
CoF使用答案中的句子检索上下文中大致k个块,这些块随后输入到LLM中,将粗粒度的块级引用添加到答案中。在构建了查询和答案之后,将上下文分割成128个标记的块,并使用答案中的句子检索大约k个块。
为每个句子保留了前l个块,其中l=min(lmax, (k + nsent − 1)/nsent),nsent表示句子的数量,这样可以保留总共大约k个块。
然后将所有这些块(根据它们在上下文中的位置排序),连同查询和答案一起输入LLM,并要求LLM将答案分割成陈述,并为每个陈述生成块级引用。
(3)句子级引用提取Sentence-level Citation Extraction
LLM通过从相应的块级引用中提取支持句子,为每个陈述生成细粒度的句子级引用。
除了粗粒度的问题,块级引用的另一个缺点是,精确的支持证据可能位于块的开头或结尾,那里的句子是不完整的。
因此,为了实现细粒度的引用,首先通过将每个引用块与其前后的块连接起来扩展每个引用块。
接下来,保留扩展块中的完整句子,并指导LLM通过输出如[6-8]这样的编号跨度来提取支持句子,这指的是第6句至第8句,或者如果没有在块中找到支持片段,则输出“没有相关信息”。
最后,移除不规则的跨度,并根据原始上下文中句子的位置重新编号其他的,以获得最终的句子级引用。
(4)数据过滤DataFiltering
最后,过滤掉引用过少的实例。具体的,如果答案中的陈述少于20%有引用,将丢弃该实例。
如果一个答案的引用太少,假设它在上下文中的事实基础不够充分,可能会利用LLM的内部知识,这通常会导致幻觉。
更进一步的细节,可以看看:https://huggingface.co/spaces/THUDM/LongCite,https://www.bilibili.com/video/BV1QD4zexEU2/,https://mp.weixin.qq.com/s/JruZwxIHfBxAmEmnfle94Q
本文主要介绍了关于长文本参考文献引用生成的工作,这个在当前RAG业务中是很常见的需求,并且在技术实现上,本质上就是一个微调任务,核心点还是在数据构造上。
1、https://arxiv.org/abs/2409.02897
老刘,NLP开源爱好者与践行者,主页:https://liuhuanyong.github.io。
对大模型&知识图谱&RAG&文档理解感兴趣,并对每日早报、老刘说NLP历史线上分享、心得交流等感兴趣的,欢迎加入社区,社区持续纳新。