RAG 学习笔记(八)

基于博文 Advanced RAG Techniques: an Illustrated Overview 的学习和练习的记录。

中文内容可以查看博主@宝玉的译文 高级 RAG 技术:图解概览 [译]

系列笔记:
RAG 学习笔记(一)
RAG 学习笔记(二)
RAG 学习笔记(三)
RAG 学习笔记(四)
RAG 学习笔记(五)
RAG 学习笔记(六)
RAG 学习笔记(七)

微调 Encoder 和 LLM

涉及一下两种深度学习模型的微调:

  1. Transformer Encoder:主要提供 Embedding 能力,影响检索结果的质量
  2. LLM:主要负责根据上下文内容回答用户提问,影响生成响应的结果

需要注意:基础预训练模型基于大量由专业人员整体的数据集,使用小型数据集进行微调会降低模型的通用能力。

Encoder 微调

当前针对搜素优化的 Transformer Encoder,效果已经很不错了,所以对 Encoder 模型微调带来的改进还待进一步讨论。

使用 LlamaIndex notebook: Finetune Embeddings 中的微调流程,作者对模型 bge- large-en-v1.5 进行微调,仅获得 2% 的效果提升。

如果数据集来自于非常垂直的领域,则可以考虑进行该微调。

排序微调

Cross-encoder 模型用于对检索结果排序。Cross-encoder 的微调过程大致为:

  • 将查询语句 q 与检索结果中最相关的 K 个文本块 (r1, r2, ..., rk) 成对 (q, ri) 传递给 cross-encoder 模型
  • 微调模型如果查询 q 和 文本块 ri 相关,则输出 1,如果不相同则输出 0

微调样例:如何使用 LlamaIndex 微调 cross-encoder,结果显示微调过后,cross-encoder 打分的效果提升 4%

LLM 微调

OpenAI GPT-3.5-turbo 微调

LlamaIndex notebook: 微调 GPT-3.5-turbo 中介绍了使用 GPT-4 微调 GPT-3.5-turbo 的方法:

  1. 使用 GPT-3.5-turbo 对一个文档生成一些问题
  2. 使用 GPT-4 构建一个对该文档进行问答的 RAG 系统,然后生成问题的答案
  3. 然后使用问答对来微调 GPT-3.5-turbo

使用 ragas 进行测评,基于微调过后的 GPT 3.5-turbo 构建的 RAG 系统,忠实度(faithfulness)指标提升 4%,说明微调后的模型能够更好的使用上下文回答问题。

利用检索增强进行微调

Meta AI Research 发表的论文 RA-DIT: Retrieval Augmented Dual Instruction Tuning 提出了一种使用查询语句、上下文和回答三元祖,同时微调 LLM 和 Retriever 的方法(论文中称为双编码器)。

微调的实现:LlamaIndex notebook:Fine-tuning with Retrieval Augmentation

效果:

  • 使用该技术微调的 Openai LLM 和 Llama2 开源模型,在知识密集型的任务上提高了 5% 的性能,在常识推理的任务上也增加了几个百分点的性能。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容