RAG(检索增强生成)模型微调相关知识如下:
同时,RAG 提高了嵌入模型质量,传统 RAG 解决方案中的问题也得到解决。
通用语言模型通过微调就可以完成几类常见任务,比如分析情绪和识别命名实体。这些任务不需要额外的背景知识就可以完成。要完成更复杂和知识密集型的任务,可以基于语言模型构建一个系统,访问外部知识源来做到。这样的实现与事实更加一性,生成的答案更可靠,还有助于缓解“幻觉”问题。Meta AI的研究人员引入了一种叫做[检索增强生成(Retrieval Augmented Generation,RAG)(opens in a new tab)](https://ai.facebook.com/blog/retrieval-augmented-generation-streamlining-the-creation-of-intelligent-natural-language-processing-models/)的方法来完成这类知识密集型的任务。RAG把一个信息检索组件和文本生成模型结合在一起。RAG可以微调,其内部知识的修改方式很高效,不需要对整个模型进行重新训练。RAG会接受输入并检索出一组相关/支撑的文档,并给出文档的来源(例如维基百科)。这些文档作为上下文和输入的原始提示词组合,送给文本生成器得到最终的输出。这样RAG更加适应事实会随时间变化的情况。这非常有用,因为LLM的参数化知识是静态的。RAG让语言模型不用重新训练就能够获取最新的信息,基于检索生成产生可靠的输出。Lewis等人(2021)提出一个通用的RAG微调方法。这种方法使用预训练的seq2seq作为参数记忆,用维基百科的密集向量索引作为非参数记忆(使通过神经网络预训练的检索器访问)。这种方法工作原理概况如下:图片援引自:[Lewis et el.(2021)(opens in a new tab)](https://arxiv.org/pdf/2005.11401.pdf)
合成数据是Phi family的主要训练数据来源,Anthropic在培训Claude 3时使用合成数据,来代表可能在训练数据中缺失的场景。Hugging Face使用Mixtral-8x7B Instruct生成超过3000万份文件和250亿个合成教科书、博客文章和故事,以重新创建Phi-1.5训练数据集,他们将其称为Cosmopedia。为了使合成数据更容易,NVIDIA发布了Nemotron-4-340B家族,这是一个专为合成数据生成设计的模型套件,可通过许可协议获得。另外Meta的Llama也可以用于合成数据生成。通过直接从对齐的LLM中提取它,也有可能创建合成高质量指令数据。使用像Magpie这样的技术,有时可以将模型进行微调,以达到与Llama-3-8B-Instruct相当的表现。RAG提高嵌入模型质量虽然检索和嵌入不是新的,但对增强生成检索(RAG)的兴趣增长促使了嵌入模型质量的提高。在常规的LLMs中,证明有效的剧本是大规模性能改进的关键(GritLM有约47亿个参数,而之前的嵌入模型只有1.1亿个)。同样,大规模语料库的使用和改进过滤方法导致了小型模型的巨大改善。同时,ColPali是一种利用文档的视觉结构而不是文本嵌入来改进检索的视图-语言嵌入模型。检索模型是少数几个开放模型通常优于大型实验室专有模型的子领域之一。在MTEB检索排行榜上,OpenAI的嵌入模型排名第29位,而NVIDIA的开放NV-Embed-v2排名第一。传统RAG解决方案中的问题得到解决
在RAG流程中,对检索器的微调,常用方法包括:直接微调。根据自有的领域数据或开源的检索数据,对稠密检索器进行微调添加可训练的Adapter模块。API-base的编码模型,无法直接微调。添加Adapter模块,可以让Embedding更好的表示私有的数据。另一方面通过Adapter模块,可以更好地对齐下游任务LSR(LM-supervised Retrieval)根据LLM最后生成的结果去微调检索器LLM Reward RL。仍然是以LLM输出结果作为监督信号。通过强化学习让Retriever去对齐生成器。[heading3]2、生成器微调[content]对生成器的微调,主要的方法包括:直接微调。通过外部数据集微调可以为生成器补充额外的知识。定制化模型输入和输出GPT-4蒸馏。使用开源模型时,一个简单且有效的方法就是从利用GPT-4批量构建微调数据,来提高开源模型的能力基于反馈的强化学习(RLHF)。根据最终的生成回答的反馈进行强化学习,除了使用人类评价,也可以使用GPT-4作为评判法官。[heading3]3、协同微调[content]在RAG系统中同时对检索器和生成器进行微调,这也是Modular RAG的特点之一。需要注意是,系统微调强调的是让检索器和生成器之间的配合。分别对检索器和生成器微调严格上属于前两者的组合,并不是属于协同。一个典型的实现如RA-DIT。分别对LLM和检索器进行微调。LM-ft组件通过更新LLM来最大化给定检索增强指令情况下正确答案的可能性。R-ft组件通过更新检索器来最小化检索器分数分布与LLM偏好之间的KL散度。