RAG框架,都在这了!

RAGFlow和Dify对比 RAGFlow和Dify都是基于大语言模型(LLM)的应用开发平台,分别专注于深度文档理解与检索增强生成(RAG)和LLM应用开发。RAGFlow以其深度文档解析能力和无幻觉生成著称,而Dify则以其灵活的工作流编排和全面的模型支持见长。以下从多个维度对两者进行详细对比。RAGFlow更适合需要深度文档解析和无幻觉生成的企业,尤其是处理复杂格式文档的场景。Dify更适合需要灵活工作流编排和多模型集成的开发者,尤其是构建复杂AI应用的场景。 阅读详情
AI摘要

本文介绍了RAG技术原理及其在智能问答系统中的应用,并精选了7个开源RAG框架,包括LangChain、Langchain-Chatchat等,涵盖了从基础知识到实际应用的全过程。

RAG 很多人都听说过,或者实践过,目前最直接的应用就是构建智能问答系统。

什么是 RAG?

RAG 是 Retrieval Augmented Generation 的简写,翻译过来就是检索增强生成。

从名字就可以拆分出 RAG 的三大部分,检索、增强、生成,表面意思就是:

1、去知识库检索相关的各种东西

2、把检索出来的信息,融合到 prompt 中,增强输入信息

3、最后是大模型生成更符合事实性的回答

为什么需要用到 RAG 呢?

大模型"幻觉"的问题一直存在,RAG 是缓解其幻觉的一个很重要的途径,当然还有其他缓解的方式,SFT 这些。

有几点比较重要的优势吧。

  1. 外挂知识,可以增加 LLM 推理的能力、准确性,能够更加复合客观事实。
  2. 知识库增删修改更加方便,遇到 bug 及时修复知识库,或者更新知识库即可,基本是用户没有感知的状态,不像 SFT 还需要重新训练,耗费时间。
  3. 再就是可解释性,通过工程手段,可以给出合理的引用链接,增加可信度,比如现在做的一些智能搜索,后面会列出答案来自的链接。

如果还有其他的,下面评论区留言哈,大家一起探讨。

那么现在有多少开源框架可以很方便的做这个事情呢?

是否需要重复造轮子呢?

这是个好问题。

所以总结下目前都有哪些开源的 RAG 框架,看下是否满足开发需要,就是一个蛮有必要的事情。

这里总结一些 RAG 框架,有其他的可以评论区留言。

框架一:LangChain

LangChain 是一个用于开发由大型语言模型 (LLMs) 驱动的应用程序的框架。

项目地址:https://github.com/langchain-ai/langchain

目前已获得 86.2k starts 关注,众人关注。

图片

对于这些应用程序,LangChain 简化了整个应用程序生命周期:

开源库:使用 LangChain 的模块化构建块和组件构建您的应用程序。与数百家第三方提供商集成。

生产化:使用 LangSmith 检查、监控和评估您的应用程序,以便您可以充满信心地不断优化和部署。

部署:使用 LangServe 将任何链转换为 REST API。

现在市面上有很多人用 LangChain 结合 LLM 构造 RAG 流程,因为 Langchain 里面包含了各种组件,向量检索、文本分割、大模型调用,还有很多其他的都在里面。

图片

这里有一份 LangChain RAG 的教资料,可收藏:https://python.langchain.com/v0.2/docs/tutorials/rag/

框架二:Langchain-Chatchat

一种利用 langchain 思想实现的基于本地知识库的问答应用,目标期望建立一套对中文场景与开源模型支持友好、可离线运行的知识库问答解决方案。

图片

项目地址:https://github.com/chatchat-space/Langchain-Chatchat

目前已收获 28.7k 关注。

图片

这是项目的流程框架。

图片

它解决的痛点

该项目是一个可以实现 完全本地化推理的知识库增强方案, 重点解决数据安全保护,私域化部署的企业痛点。

可以免费商用,无需付费。

支持市面上主流的本地大语言模型和 Embedding 模型,支持开源的本地向量数据库。

这里是一份框架的文档: https://github.com/chatchat-space/Langchain-Chatchat/wiki/

框架三:QAnything

图片

QAnything (Question and Answer based on Anything) 是致力于支持任意格式文件或数据库的本地知识库问答系统,可断网安装使用。

目前已支持格式: PDF(pdf),Word(docx),PPT(pptx),XLS(xlsx),Markdown(md),电子邮件(eml),TXT(txt),图片(jpg,jpeg,png),CSV(csv),网页链接(html)

项目地址: https://github.com/netease-youdao/QAnything/tree/master

网易出品,目前已收获 9.9k 关注。

图片

架构如下

图片

有个很重要的关键点;两阶段检索

知识库数据量大的场景下两阶段优势非常明显,如果只用一阶段 embedding 检索,随着数据量增大会出现检索退化的问题,如下图中绿线所示,二阶段 rerank 重排后能实现准确率稳定增长,即数据越多,效果越好。

图片

这是文档:https://qanything.ai/docs/introduce

框架四:RAGFlow

RAGFlow 是一款基于深度文档理解构建的开源 RAG(Retrieval-Augmented Generation)引擎。RAGFlow 可以为各种规模的企业及个人提供一套精简的 RAG 工作流程,结合大语言模型(LLM)针对用户各类不同的复杂格式数据提供可靠的问答以及有理有据的引用。

图片

项目地址: https://github.com/infiniflow/ragflow/tree/main

目前已收获 8.8k 关注

图片

主要功能

🍭 “Quality in, quality out”

  • 基于深度文档理解,能够从各类复杂格式的非结构化数据中提取真知灼见。
  • 真正在无限上下文(token)的场景下快速完成大海捞针测试。

🍱 基于模板的文本切片

  • 不仅仅是智能,更重要的是可控可解释。
  • 多种文本模板可供选择

🌱 有理有据、最大程度降低幻觉(hallucination)

  • 文本切片过程可视化,支持手动调整。
  • 有理有据:答案提供关键引用的快照并支持追根溯源。

🍔 兼容各类异构数据源

  • 支持丰富的文件类型,包括 Word 文档、PPT、excel 表格、txt 文件、图片、PDF、影印件、复印件、结构化数据、网页等。

🛀 全程无忧、自动化的 RAG 工作流

  • 全面优化的 RAG 工作流可以支持从个人应用乃至超大型企业的各类生态系统。
  • 大语言模型 LLM 以及向量模型均支持配置。
  • 基于多路召回、融合重排序。
  • 提供易用的 API,可以轻松集成到各类企业系统

系统架构

图片

这是文档:https://ragflow.io/docs/dev/

框架五:FastGPT

FastGPT 是一个基于 LLM 大语言模型的知识库问答系统,提供开箱即用的数据处理、模型调用等能力。同时可以通过 Flow 可视化进行工作流编排,从而实现复杂的问答场景!

图片

图片

项目地址:https://github.com/labring/FastGPT

目前项目已收获 14.2k 关注。

图片

介绍文档:https://doc.fastgpt.in/docs/intro/

框架六:Haystack

Haystack 是一个端到端 LLM 框架,允许构建由 LLMs、Transformer 模型、矢量搜索等支持的应用程序。无论想要执行检索增强生成 (RAG)、文档搜索、问答还是答案生成,Haystack 都可以将最先进的嵌入模型和 LLMs 编排到管道中,以构建端到端结束 NLP 应用程序并解决案例。

图片

项目地址:https://github.com/deepset-ai/haystack

目前已收获 14.2k 关注。

图片

重要特点

  • 技术不可知论:允许用户灵活地决定他们想要的供应商或技术,并可以轻松地将任何组件更换为另一个组件。Haystack 允许使用和比较 OpenAI、Cohere 和 Hugging Face 提供的模型,以及自己的本地模型或 Azure、Bedrock 和 SageMaker 上托管的模型。
  • 明确:使不同的移动部件如何相互“对话”变得透明,以便更轻松地适应技术堆栈和用例。
  • 灵活:Haystack 在一个地方提供所有工具:数据库访问、文件转换、清理、拆分、训练、评估、推理等。只要需要自定义行为,就可以轻松创建自定义组件。
  • 可扩展:为社区和第三方提供统一且简单的方式来构建自己的组件,并围绕 Haystack 培育开放的生态系统。

这是文档:https://docs.haystack.deepset.ai/v2.0/docs/get_started

框架七:LLAMA_Index

LlamaIndex 是一个用于构建上下文增强 LLM 应用程序的框架,上下文增强是指在您的私有或特定于域的数据之上应用 LLMs 的任何用例。

项目地址:https://github.com/run-llama/llama_index

目前已有 32.4k 关注。

图片

提供了以下工具:

  • 提供数据连接器来摄取现有数据源和数据格式(API、PDF、文档、SQL 等)。
  • 提供构建数据(索引、图表)的方法,以便这些数据可以轻松地与 LLMs 一起使用。
  • 为数据提供高级检索/查询界面:输入任何 LLM 输入提示,获取检索到的上下文和知识增强输出。
  • 允许与外部应用程序框架轻松集成(例如与 LangChain、Flask、Docker、ChatGPT 等)。

文档,内容很全,可收藏: https://docs.llamaindex.ai/en/stable/

以上一共有 7 个 RAG 框架(如果有其他的,评论区留言,下次再追加上)

  • Langchain
  • Langchain-Chatchat
  • LLAMAIndex
  • QAnything
  • RAGFlow
  • FastGPT
  • Haystack

想必这些框架能够满足日常的需要,不能够满足的话,参考这些开源框架再自己搭建符合业务需求的框架。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范
  • …

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署
  • …

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建
  • …

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案
  • …

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】
2025年GitHub上十大RAG框架深度解析:从技术原理到实战应用 RAG(Retrieval-Augmented Generation)技术通过动态检索外部知识来增强大型语言模型(LLMs)的生成能力,解决了传统LLMs知识截止和“幻觉”风险的问题。其核心流程包括检索、融合和生成,显著提升了生成内容的准确性和可解释性。RAG技术在金融、医疗、电商等领域展现出巨大实用价值,成为构建下一代智能应用的核心技术底座。2025年GitHub上十大RAG框架包括Haystack、RAGFlow、txtai、STORM、LLM-App、Cognita、R2R、Neurite、Flash 阅读详情

相关推荐

智能问答进阶之路:RAG(大模型检索增强生成)框架详解与实战,融合检索与生成助力智能系统更上层楼

智能问答进阶之路:RAG(大模型检索增强生成)框架详解与实战,融合检索与生成助力智能系统更上层楼

丨汀、的博客 4707

大模型 | 开源RAG框架汇总:什么是RAG?RAG应用框架

AI大模型作为人工智能领域的重要技术突破,正成为推动各行各业创新和转型的关键力量。抓住AI大模型的风口,掌握AI大模型的知识和技能将变得越来越重要。学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。这里给大家精心整理了一份全面的AI大模型学习资源,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享!

m0_56255097的博客 6021

iOS 取证窍门:为什么要先从 Recovery 恢复模式开始?

未记录的 DFU 代表“设备固件升级”。与专为普通用户设计的恢复模式不同,DFU 模式从来都不是为公众设计的。Apple 知识库中的任何地方都没有关于 DFU 的文档。进入 DFU 的方法主要是通过按下、按住和释放按钮的复杂操作序列,并具有精确的时间限制。在多个步骤中的任何一个步骤中,如果时间错误,都会导致重新启动设备,而不是将其切换到 DFU。另外,设备屏幕上也没有 DFU 模式的指示。如果设备成功切换到 DFU,显示屏将保持黑色。即使对于专家来说,进入 DFU 模式也可能很困难。恢复模式是最容易解释的。

2302_82041293的博客 1198

从“被优化”到“AI训练师”:35岁转行实操手册,把经验变成喂给AI的“黄金饲料”

2025年的职场,“35岁+”仿佛一道无形的分水岭。

m0_59163425的博客 4513

Cadence17.2 > OrCAD Capture CIS > 设计规则检查(Design Rule Check)DRC学习记录详解

选中设计完成的DSN文件,选择Tool->Design Rule Check,弹出下面对话框,详解如下。 一、Design Rule Check对话框选项详解 Design Rules Options tab Set the scope, mode and type of design rule (electrical and / or physical) test options for the design rules check. 为

DL_62532的专栏 1万+

手把手教你用TUSB2E22中继器实现eUSB2与USB 2.0互转(附实测数据对比)

本文详细介绍了如何利用TUSB2E22中继器实现eUSB2与USB 2.0的高效互转,包括技术背景、硬件设计要点、信号完整性测试方法及故障排查策略。通过实测数据对比,展示了TUSB2E22在信号延迟、功耗和眼图性能上的显著优势,为工程师提供了实用的工程方案。

weixin_29199873的博客 283

RAG框架全解析:你需要了解的8种常见框架,助你全面掌握RAG技术!

RAG技术选型指南:8种策略对比与应用场景分析 本文系统梳理了8种RAG技术策略及其适用场景: 朴素RAG:简单语义匹配 多模态RAG:跨模态检索 HyDE:生成假设文档再检索 校正式RAG:信息验证 GraphRAG:知识图谱转化 混合RAG:结合向量与图谱检索 自适应RAG:动态判断查询复杂度 智能体RAG:复杂工作流协调 每种策略配有典型场景、成功案例和落地建议,形成四维度对照表,可作为技术选型参考。文末提供大模型学习资源包信息,包含104G学习资料。

Trb701012的博客 475

scannet数据集下载文件

scannet数据集下载文件 由于大家会申请scannet数据集,审批比较慢,我将下载的文件里面的内容贴出来,大家可以复制放进py文件中,运行就可以下载 ps:别再私信要数据集了,这个自己下载,如果光三维数据的话,还是很快的,当然如果路由器翻了墙的话,下载会更快。 #!/usr/bin/env python # Downloads ScanNet public data release # Run with ./download-scannet.py (or python download-scannet.

weixin_40766438的博客 9233

2024年十大开源大模型RAG框架!

检索增强生成(RAG)已成为增强大型语言模型能力的一项强大技术。RAG框架结合了基于检索系统的优点与生成模型的优势,能够提供更准确、更具上下文感知能力以及更及时的响应。随着对复杂AI解决方案的需求增长,许多开源的RAG框架在GitHub上涌现,每个框架都提供了独特的功能和能力。检索增强生成(RAG)是一种人工智能框架,通过整合外部知识源来增强大型语言模型(LLM)的能力。RAG通过从知识库中检索相关信息并利用这些信息来增强LLM的输入,从而使得模型能够生成更准确、更及时且更符合上下文的相关响应。

优快云_224022的博客 2500

三维重建之条纹投影结构光(三)——相高模型标定

接上面两文: 三维重建之条纹投影结构光(一)https://blog.youkuaiyun.com/beyond951/article/details/123361852?spm=1001.2014.3001.5501三维重建之条纹投影结构光(二)——四步相移+三频外差法https://blog.youkuaiyun.com/beyond951/article/details/123769596?spm=1001.2014.3001.5501接下来对相高模型进行标定,其推导过程如下图所示 ...

beyond951的博客 4876

GEE土地分类:土地分类精度评定和分类后影像进行(Kmeans,Gmeans,SNIC (Simple Non-Iterative Clustering)聚类分析和滤波(focal_mode)分析

使用聚类分析和滤波分析来进一步处理土地分类后的影像数据。聚类分析可以帮助您识别影像中的相似区域。您可以使用聚类算法,如K均值聚类或层次聚类,将像素分组到具有相似像素值的群集中。这可以帮助您更好地理解图像中的空间模式和结构,并可能揭示有用的信息。滤波分析可以帮助您平滑图像并去除噪声。常见的滤波器包括中值滤波器和高斯滤波器。这些滤波器可以帮助您消除图像中的随机变化,并使其更易于解释和分析。

此星光明博客 2516

如果你正在研究RAG,那么这10个开源框架非常值得一看!

检索增强生成()已成为增强大型语言模型能力的一种强大技术。框架结合了基于检索系统的优点与生成模型的能力,使得响应更加准确、上下文相关且实时更新。随着对复杂 AI 解决方案需求的增长,GitHub 上涌现出众多开源 RAG 框架,每个框架都提供了独特的特性和能力。

优快云_430422的博客 1726

2025华为od机试真题B卷【字符串计数匹配】Java&Go 实现

给你一个字符串str和整数k,返回满足以下条件的所有子字符串个数: 1.恰好包含k个字母。 2.数字0-9各出现至少一次。

MISAYAONE的博客 639

15种必知RAG框架,最新综述!

本文深入探讨了 Retrieval-Augmented Generation (RAG) 的发展历程,从基础概念到最新技术。RAG 通过结合检索与生成模型,有效提升了输出准确性,克服了 LLM 的局限。研究详细分析了 RAG 的架构,展示了检索与生成如何协同处理知识密集型任务。此外,本文还回顾了 RAG 在问答、摘要等领域的关键技术进展,并探讨了提升检索效率的新方法。同时,文章也指出了 RAG 在可扩展性、偏见和伦理方面的挑战,并提出了未来研究方向,以增强模型鲁棒性、拓展应用范围并关注社会影响。

2401_85375298的博客 848

SolidWorks 小车底盘 装配体

通过制作小车底盘了解solidworks装配体的部分知识

及时总结 2228

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

RAG新SOTA!港中深发布Graph-based RAG统一框架,深度评估现有Graph-based RAG框架!

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。4、检索与生成阶段,首先将用户输入的问题转化为检索原语,通过配置好的操作符从图中检索信息,再与问题一同输入 LLM 生成答案。

EnjoyEDU的博客 931

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

2024年十大开源大模型RAG框架盘点!

检索增强生成(RAG)已成为增强大型语言模型能力的一项强大技术。RAG框架结合了基于检索系统的优点与生成模型的优势,能够提供更准确、更具上下文感知能力以及更及时的响应。随着对复杂AI解决方案的需求增长,许多开源的RAG框架在GitHub上涌现,每个框架都提供了独特的功能和能力。检索增强生成(RAG)是一种人工智能框架,通过整合外部知识源来增强大型语言模型(LLM)的能力。RAG通过从知识库中检索相关信息并利用这些信息来增强LLM的输入,从而使得模型能够生成更准确、更及时且更符合上下文的相关响应。

2401_85390073的博客 1054

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

如果你正在研究RAG,那么这 10 个开源框架绝对不容错过!

检索增强生成(RAG) 如今已发展为一种极具效力的技术,能够显著增强大型语言模型的能力。 RAG 框架有效融合了检索系统的优势以及生成模型的能力,促使其生成的响应具备更高的准确性,与上下文的关联性更强,并且能够实现实时更新。随着市场对于复杂 AI 解决方案的需求日益增长,在 GitHub 平台上出现了大量开源的 RAG 框架,每一个框架都具备独特的功能与优势。

m0_48891301的博客 2055
上一篇: 大模型能自己优化Prompt了,曾经那么火的提示工程要死了吗?
下一篇: 年度最佳!LLMs大模型盘点!
冻感糕人~
博客等级 码龄3年 8926粉丝 2384原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值