大模型主流 RAG 框架TOP10

2024-05-29 00:44
文章标签 模型 框架 主流 top10 rag

本文主要是介绍大模型主流 RAG 框架TOP10,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

节前,我们组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。

针对大模型技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备面试攻略、面试常考点等热门话题进行了深入的讨论。

总结链接如下:《大模型面试宝典》(2024版) 正式发布!


今天,我们来看看2个问题,一个是回顾下主流 RAG 框架TOP10及一个有趣的soda RAG小工具,另一个为防止恶意检索污染攻击的RAG方案RobustRAG思路,供大家参考。

会有一些思路,供大家一起参考。

问题1:主流RAG框架TOP10及一个有趣的soda RAG小工具

最近 RAG 的轮子越来越多,我们先后已经出现了多个RAG框架,例如langchain, llamaindex,langraph,qanything, ragflow等,

例如通过github可以找到如下排序,top10框架:

Rank1、LangChain(86k stars):https://github.com/langchain-ai/langchain/,当之无愧的霸主,范围很全面,但代码‍‍‍‍‍‍‍‍‍‍‍

Rank2、Quivr(33.4k stars):https://github.com/StanGirard/quivr

Rank3、LlamaIndex(32.1k stars):https://github.com/run-llama/llama_index/

Rank4、Dify(31.2k stars):https://github.com/langgenius/dify

Rank5、Langchain-Chatchat(28.5k stars):https://github.com/chatchat-space/Langchain-Chatchat

Rank6、QAnything(9.7k stars):https://github.com/netease-youdao/QAnything,特点是加入rerank,后期更新也加入了文档理解;‍‍‍‍‍‍‍

Rank7、danswer(9.5k stars):https://github.com/danswer-ai/danswer

Rank8、RAGFlow(8.3k stars):https://github.com/infiniflow/ragflow,特点是前期处理文档理解;‍‍‍‍‍‍

Rank9、langchain4j(3.5k stars):https://github.com/langchain4j/langchain4j

Rank10、Verba(4.3k stars):https://github.com/weaviate/Verba

最近有个新的框架,SODA: Search, Organize, Discovery Anything(https://github.com/Liuziyu77/Soda/),有点儿意思,根据其介绍。其支持网络检索、文本检索(本地数据库)、图像检索(本地数据库)。

在这里插入图片描述
其中在文本检索阶段,采用两阶段检索过程,第一阶段从数据库中检索信息,第二阶段对检索到的文本进行重新排序,其实标准的重排。

例如文本检索,其通过构建本地文本数据库并从中检索信息,通过修改上传的文件的路径,其中文件包括TXT, DOCX, PDF等文件格式。

又如图像检索结果,构建本地图像数据库并从中检索图像,其中核心在于图像embedding的生成,该项目中使用使用CLIP-B/32作为图像编码器。

又如网络检索结果,其核心在于利用各种搜索引擎的API来根据用户输入检索相关信息,包括google、Serper、Bing等不同的API

问题2:为防止恶意检索污染攻击的RAG方案RobustRAG思路

这个有点意思,《Certifiably Robust RAG against Retrieval Corruption》(https://arxiv.org/abs/2405.15556),其出发点在于,由于依赖外部知识库的检索结果,RAG模型容易受到Retrieval Corruption Attacks,也就是恶意的检索污染攻击,攻击方可以通过在检索结果中注入虚假或误导性的文本,操纵模型的输出,产生错误甚至有害的内容,从而影响RAG模型的可靠性和实用性,并带来难以预料的负面影响。

如下所示,检索到的三个段落中有一个被破坏,Vanilla RAG将所有段落串联起来作为LLM输入;其响应被恶意段落劫持。

在这里插入图片描述

不同的是,RobustRAG会隔离每个段落,这样三个隔离回复中只有一个被破坏。然后,RobustRAG会安全地汇总非结构化文本回复,以获得稳健的输出。

因此,其思想很简单,就是"先隔离后聚合"(Isolate-then-Aggregate)策略。具体而言,该框架包含以下两个关键步骤:

一个是隔离回复,对于检索到的每一段文本,先独立地获取LLM的回复,而不是将所有文本拼接在一起作为输入,以限制恶意文本对其他回复的影响。

一个是安全聚合,设计基于关键词和解码的方案,如下两个代码逻辑,以安全的方式聚合这些独立的回复,生成最终的输出,以实现即使存在少量恶意回复,也能从正常回复中提取关键信息,得出可靠的结果。

其中,关键词聚合方案思路如下:

1、提取关键词,对每个独立的LLM回复进行关键词提取。使用启发式规则,例如保留名词、形容词、数字等信息量大的词,形成关键词集合;

2、聚合关键词,统计不同回复中关键词的出现频率。出现频率高的关键词更有可能携带正确和相关的信息。过滤掉出现频率低于阈值的关键词;

3、生成最终回复:使用筛选后的高频关键词,再次提示LLM生成最终的回复。关键词集合以一定的顺序(如字母序)排列,作为额外的上下文信息输入到LLM中。

解码聚合算法的思路如下:

1、独立解码,对每个检索到的文本,RobustRAG独立地进行解码操作。在每个解码步骤,得到LLM预测下一个词的概率分布向量;

2、聚合概率向量,将不同文本解码得到的概率向量进行聚合,具体使用元素级平均,得到一个新的概率分布;

3、生成回复,根据聚合的概率分布,预测下一个词。重复这一过程,直到生成完整的回复文本。在预测置信度较低时,适当参考无检索结果时LLM的预测,以保证回复的流畅性。

总结

本文主要讲了2个问题,一个是回顾下主流RAG框架TOP10及一个有趣的soda RAG小工具,另一个为防止恶意检索污染攻击的RAG方案RobustRAG思路。

其中关于主流框架方面,当前有很多,但不需要哪个都做,还是需要选一个就行。另外,RobustRAG在真实场景下用不太到,但单纯从思想上来看,是很有趣的。

技术交流群

前沿技术资讯、算法交流、求职内推、算法竞赛、面试交流(校招、社招、实习)等、与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度等名校名企开发者互动交流~

我们建了算法岗技术与面试交流群, 想要大模型技术交流、了解最新面试动态的、需要源码&资料、提升技术的同学,可以直接加微信号:mlc2040。加的时候备注一下:研究方向 +学校/公司+CSDN,即可。然后就可以拉你进群了。

方式①、微信搜索公众号:机器学习社区,后台回复:交流
方式②、添加微信号:mlc2040,备注:交流

面试精选

  • 一文搞懂 Transformer

  • 一文搞懂 Attention(注意力)机制

  • 一文搞懂 Self-Attention 和 Multi-Head Attention

  • 一文搞懂 BERT(基于Transformer的双向编码器)

  • 一文搞懂 GPT(Generative Pre-trained Transformer)

  • 一文搞懂 Embedding(嵌入)

  • 一文搞懂 Encoder-Decoder(编码器-解码器)

  • 一文搞懂大模型的 Prompt Engineering(提示工程)

  • 一文搞懂 Fine-tuning(大模型微调)

  • 一文搞懂 LangChain

  • 一文搞懂 LangChain 的 Retrieval 模块

  • 一文搞懂 LangChain 的智能体 Agents 模块

  • 一文搞懂 LangChain 的链 Chains 模块

参考文献

1、https://arxiv.org/abs/2405.15556

2、https://github.com/Liuziyu77/Soda/

这篇关于大模型主流 RAG 框架TOP10的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1012161

相关文章

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

图神经网络模型介绍(1)

我们将图神经网络分为基于谱域的模型和基于空域的模型,并按照发展顺序详解每个类别中的重要模型。 1.1基于谱域的图神经网络         谱域上的图卷积在图学习迈向深度学习的发展历程中起到了关键的作用。本节主要介绍三个具有代表性的谱域图神经网络:谱图卷积网络、切比雪夫网络和图卷积网络。 (1)谱图卷积网络 卷积定理:函数卷积的傅里叶变换是函数傅里叶变换的乘积,即F{f*g}

秋招最新大模型算法面试,熬夜都要肝完它

💥大家在面试大模型LLM这个板块的时候,不知道面试完会不会复盘、总结,做笔记的习惯,这份大模型算法岗面试八股笔记也帮助不少人拿到过offer ✨对于面试大模型算法工程师会有一定的帮助,都附有完整答案,熬夜也要看完,祝大家一臂之力 这份《大模型算法工程师面试题》已经上传CSDN,还有完整版的大模型 AI 学习资料,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

AI Toolkit + H100 GPU,一小时内微调最新热门文生图模型 FLUX

上个月,FLUX 席卷了互联网,这并非没有原因。他们声称优于 DALLE 3、Ideogram 和 Stable Diffusion 3 等模型,而这一点已被证明是有依据的。随着越来越多的流行图像生成工具(如 Stable Diffusion Web UI Forge 和 ComyUI)开始支持这些模型,FLUX 在 Stable Diffusion 领域的扩展将会持续下去。 自 FLU

SWAP作物生长模型安装教程、数据制备、敏感性分析、气候变化影响、R模型敏感性分析与贝叶斯优化、Fortran源代码分析、气候数据降尺度与变化影响分析

查看原文>>>全流程SWAP农业模型数据制备、敏感性分析及气候变化影响实践技术应用 SWAP模型是由荷兰瓦赫宁根大学开发的先进农作物模型,它综合考虑了土壤-水分-大气以及植被间的相互作用;是一种描述作物生长过程的一种机理性作物生长模型。它不但运用Richard方程,使其能够精确的模拟土壤中水分的运动,而且耦合了WOFOST作物模型使作物的生长描述更为科学。 本文让更多的科研人员和农业工作者

cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个?

跨平台系列 cross-plateform 跨平台应用程序-01-概览 cross-plateform 跨平台应用程序-02-有哪些主流技术栈? cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个? cross-plateform 跨平台应用程序-04-React Native 介绍 cross-plateform 跨平台应用程序-05-Flutte