新手友好|RAG开发框架选择指南:LlamaIndex、GraphRAG、RAGFlow对比分析

GraphRAG:知识图谱+大模型 LangChain实现 需要注意的是,生成的图谱质量很大程度上取决于您使用的模型。在 RAG 应用中,结合结构化的图数据和非结构化的文本向量搜索,可以让我们同时享受两者的优势,这也是本文将要探讨的内容。的引入,生成知识图谱的过程现在应该更加顺畅和易于访问,这使得任何想要通过知识图谱提供的深度和上下文来增强其基于 RAG 的应用的人更容易上手。接下来,我们将引入一个提示,它利用混合检索器提供的上下文来生成响应,从而完成 RAG 链的实现。正如我们一开始提到的,我们将结合非结构化和图检索器来创建最终的上下文,这将传递给 LLM。 阅读详情

本文主要介绍了当前构建基于大语言模型的应用时最主流的 RAG 的核心思想、 基本工作流程,RAG 与 LlamaIndex、GraphRAG、 RAGFlow 之间的关系与区别以及RAG学习建议与技术选型。

1. RAG 检索增强生成(Retrieval-Augmented Generation)

首先, RAG 不是一个工具,而是一种技术范式或架构思想。

1.1.RAG 核心思想:

让大语言模型在回答问题时,能够参考并引用给定的、特定的、最新的知识库,而不是仅仅依赖其训练时学到的、可能已经过时或不够详细的知识。

1.2.为什么需要 RAG?

  • 解决知识滞后问题: LLM 的知识截止于其训练数据。 RAG 可以接入最新的文档、数据库、新闻等,让模型“与时俱进”。

  • 减少幻觉: LLM 有时会“一本正经地胡说八道”。 RAG 强制模型基于检索到的真实内容进行回答,大大降低了编造信息的风险。

  • 增强专业性和可解释性: 可以针对特定领域(如法律、医疗、公司内部文档)构建知识库,使回答更具专业性。同时,可以给出答案的来源(引用),方便用户验证。

  • 保护数据隐私: 可以将私有数据(如公司内部资料)通过 RAG 体系提供给模型,而无需将这些敏感数据用于公开的模型训练。

1.3.RAG 的基本工作流程:

一个经典的 RAG 流程,包含两个主要阶段:

1.3.1. 索引阶段:

Step1.加载: 从各种数据源(PDF,Word,TXT,数据库等)加载数据。

Step 2. 分块 : 将大文档分割成更小的、有意义的文本块。

Step 3.向量化: 使用嵌入模型将每个文本块转换成一个向量(一串数字),这个向量代表了文本块的语义。

Step 4.存储: 将这些向量和对应的原始文本块存入一个专门的向量数据库中,以备后续检索。

1.3.2. 检索与生成阶段:

Step1. 用户提问: 用户输入一个问题。

Step2. 问题向量化: 使用同样的嵌入模型,将用户问题也转换成一个向量。

Step3. 相似性检索: 在向量数据库中,计算问题向量与所有文本块向量的相似度,找出最相关的TopK个文本块。

Step4. 构建提示: 将检索到的相关文本块和用户的原始问题组合成一个精心设计的提示。

Step5. 生成回答: 将这个提示输入给 LLM,让 LLM 基于提供的上下文(检索到的文本块)来生成最终答案。

2. LlamaIndex

LlamaIndex 就好比是 RAG 的“瑞士军刀”或“引擎”,它是一个专门为构建 RAG 应用而设计的、功能极其强大的 Python/C++ 数据框架。如果说RAG是“造一辆车”的理念,那么 LlamaIndex 就是提供发动机、变速箱、底盘、方向盘等所有核心零部件和组装工具的“工具箱”。

LlamaIndex 开源项目在GitHub上,现在关注度已高达43.6K星数,在文章末尾处我已附上传送门,强烈推荐感兴趣的小伙伴们关注一波,尤其是想深入了解RAG底层工作原理源码的作为开发人员。

2.1. LlamaIndex 的核心

LlamaIndex 的核心是 “数据连接”,提供了从数据 ingestion(摄取)、indexing(索引)、querying(查询)到 evaluation(评估)的全套工具链,让你能够轻松地将任何数据源与 LLM 连接起来。

2.2. LlamaIndex 的主要功能模块

(1)数据连接器: 支持从数百种数据源(本地文件、云存储、数据库、 API、 Web 等)读取数据。

(2)数据索引: 提供了多种高级索引结构,远不止简单的向量索引。

​ ----向量存储索引: 最基础的 RAG 索引。

​ ---- 树索引: 将文档构建成树状结构,可以从上到下或从下到上检索,适合总结性任务。

​ ---- 关键词表索引: 提取关键词,实现精确匹配。

​ ---- 知识图谱索引 : 可以构建实体和关系图,是 GraphRAG 的基础之一。

(3)查询引擎: 提供了灵活的查询接口。你可以定义复杂的查询策略,比如先进行向量检索,再进行关键词检索,最后将结果融合。

(4)检索后处理: 对检索到的结果进行重新排序、过滤或转换,以提高相关性。

(5)代理与工具: 可以将 RAG 系统作为一个工具,集成到更大的 LLM 代理中,让代理能够自主决定何时以及如何查询知识库。

(6)评估工具: 提供了一套完整的评估框架,用于衡量你的 RAG 系统表现如何(如回答的忠实度、相关性等)。

2.3.LlamaIndex 的特点

----灵活性极高: 几乎可以定制 RAG 流程的每一个环节。

----功能全面: 覆盖了从数据到评估的整个生命周期。

----社区活跃: 是 RAG 领域最流行的框架之一,拥有丰富的文档和社区支持。

3.GraphRAG

GraphRAG 是 RAG 的“进化版”,同样也是一种技术范式,是 RAG 的一种高级实现方式,它利用了知识图谱来增强检索。如果说 RAG 是“关键词匹配”的升级版(语义匹配),那么 GraphRAG 就是“理解实体关系”的升级版。

3.1.GraphRAG 核心思想

传统 RAG 在处理复杂、多跳、需要理解实体间关系的问题时表现不佳。例如,当你问 “《流浪地球》原著作者的另一部知名作品是什么? ”,传统 RAG 可能需要先检索到“刘慈欣”和“流浪地球”,再检索“刘慈欣”和“三体”,这个过程是割裂的。而 GraphRAG 在索引阶段就将知识构建成一个知识图谱,其中节点代表实体(如“刘慈欣”、 “流浪地球”),边代表实体间的关系(如“作者”、 “作品”)。

在这里插入图片描述

3.2. GraphRAG 的工作流程:

3.2.1. 索引阶段:

Step1.文档处理: 同样需要加载和分块。

Step2. 知识图谱构建: 这是最关键的一步。使用 LLM 或专门的 NLP 模型从文本中抽取实体和关系,然后构建成一个图结构。

Step3. 图存储: 将构建好的知识图谱存入图数据库(如 Neo4j, NebulaGraph)中。

3.2.2. 检索与生成阶段:

Step1. 用户提问: 用户输入问题。

Step2. 图查询: 将问题转化为图查询。例如,上述问题会被转化为“找到节点‘流浪地球’,找到其‘作者’关系指向的节点,再从该节点出发,找到其‘作品’关系指向的其他节点”。

Step3. 子图检索: 从知识图谱中检索出与问题相关的子图(一个由节点和边构成的小网络)。

Step4. 生成回答: 将检索到的子图信息作为上下文,交给 LLM 生成答案。

3.3. GraphRAG 的优势

  • 处理复杂问题: 擅长回答需要多步推理、理解实体间关系的问题。

  • 更高的准确性和可解释性: 答案基于明确的实体和关系,逻辑链条清晰,更容易追溯来源。

  • 发现隐含知识: 图结构可以揭示文本中未直接明说的隐含关系。

3.4.GraphRAG与 LlamaIndex 的关系

LlamaIndex 提供了构建 GraphRAG 的工具(如 KnowledgeGraphIndex),你可以使用LlamaIndex 来实现 GraphRAG 的流程。

微软开源了一个名为 graphrag 的项目,它提供了一套完整的、端到端的 GraphRAG 解决方案,包括从文本构建图的管道和查询引擎。graphrag 开源项目在GitHub上的关注度已高达27.2K星数,在文章末尾处,已附上传送门,感兴趣的小伙伴们可以自行查阅。

4. RAGFlow

RAGFlow 是一个开源的、基于深度文档理解的 RAG 引擎和平台。如果说 LlamaIndex 是给你零件让你自己组装,那么 RAGFlow 就更像是一辆已经组装好,并且带有漂亮仪表盘和操作界面的“成品车”。

4.1.RAGFlow 的核心

RAGFlow 的核心是提供一个开箱即用的 RAG 平台,特别强调对复杂文档的理解能力。它不仅有后端引擎,还提供了一个非常友好的 Web UI,让非技术人员也能轻松上手。

RAGFlow 开源项目在GitHub上,目前的关注度高达62.2K星数,对于零基础小白想要快速应用RAG的小伙伴们,这里我强烈推荐,在文章末尾处,已附上传送门。

4.2.RAGFlow 的主要特点:

(1)深度文档理解: 这是 RAGFlow 的最大亮点。它不仅仅做简单的文本分块,而是能够理解文档的布局,比如识别标题、段落、表格、图片,并能从中提取有意义的信息。这对于处理 PDF、扫描件、报告等复杂格式非常有效。

(2)友好的 Web UI: 提供了可视化的操作界面,可以方便地上传数据集、创建知识库、进行对话测试、查看答案来源等。

(3)模板化的 RAG 流水线: 内置了多种针对不同场景的 RAG 处理模板(如通用、简历、论文、手册等),用户可以根据自己的数据类型选择合适的模板。

(4)系统集成: 它本身就是一个完整的应用,包含了 API 服务器、前端界面、后台任务调度等,部署后即可使用。

(5)可扩展性: 虽然是开箱即用,但也支持通过 API 和配置进行一定程度的定制。

4.3.RAGFlow与 LlamaIndex 的关系

RAGFlow 在其底层实现中,也会用到类似 LlamaIndex 或 LangChain 这样的框架思想,但它将这些复杂性都封装在了内部。对于用户来说,你不需要直接调用 LlamaIndex 的API,而是通过 RAGFlow 提供的界面或 API 来使用它已经构建好的 RAG 能力。

5.RAG学习建议与技术选型

**如果你是开发者,想从零开始构建一个高度定制化、功能强大的 RAG 应用:****首选 LlamaIndex。**它给你最大的控制权,你可以自由组合各种索引、检索器和 LLM。需要你有一定的编程基础。

如果你的问题涉及大量实体关系和复杂推理,那么可以在 LlamaIndex 的基础上实现GraphRAG,或者直接集成微软的 graphrag 库。需要你有一定的知识图谱知识基础。

如果你是企业或个人,想快速搭建一个知识库问答系统,特别是你的数据主要是PDF、 Word 等复杂文档,且希望有友好的管理界面: 首选 RAGFlow。 它能让你在几分钟内启动一个功能完备的 RAG 系统,而无需编写大量代码。它的深度文档理解能力是其杀手锏。特别适合零基础小白入门RAG。

如果你只是在学习或了解 RAG: 先理解 RAG 的基本思想和工作流程,然后了解 LlamaIndex 和 GraphRAG 分别解决了 RAG 中的什么问题(前者是工程化和灵活性,后者是处理复杂推理),最后体验一下 RAGFlow,看看一个成熟的 RAG 产品是什么样的。

普通人如何抓住AI大模型的风口?

领取方式在文末

为什么要学习大模型?

目前AI大模型的技术岗位与能力培养随着人工智能技术的迅速发展和应用 , 大模型作为其中的重要组成部分 , 正逐渐成为推动人工智能发展的重要引擎 。大模型以其强大的数据处理和模式识别能力, 广泛应用于自然语言处理 、计算机视觉 、 智能推荐等领域 ,为各行各业带来了革命性的改变和机遇 。

目前,开源人工智能大模型已应用于医疗、政务、法律、汽车、娱乐、金融、互联网、教育、制造业、企业服务等多个场景,其中,应用于金融、企业服务、制造业和法律领域的大模型在本次调研中占比超过 30%。
在这里插入图片描述

随着AI大模型技术的迅速发展,相关岗位的需求也日益增加。大模型产业链催生了一批高薪新职业:
在这里插入图片描述

人工智能大潮已来,不加入就可能被淘汰。如果你是技术人,尤其是互联网从业者,现在就开始学习AI大模型技术,真的是给你的人生一个重要建议!

最后

只要你真心想学习AI大模型技术,这份精心整理的学习资料我愿意无偿分享给你,但是想学技术去乱搞的人别来找我!

在当前这个人工智能高速发展的时代,AI大模型正在深刻改变各行各业。我国对高水平AI人才的需求也日益增长,真正懂技术、能落地的人才依旧紧缺。我也希望通过这份资料,能够帮助更多有志于AI领域的朋友入门并深入学习。

真诚无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发

在这里插入图片描述

大模型全套学习资料展示

自我们与MoPaaS魔泊云合作以来,我们不断打磨课程体系与技术内容,在细节上精益求精,同时在技术层面也新增了许多前沿且实用的内容,力求为大家带来更系统、更实战、更落地的大模型学习体验。

图片

希望这份系统、实用的大模型学习路径,能够帮助你从零入门,进阶到实战,真正掌握AI时代的核心技能!

01 教学内容

图片

  • 从零到精通完整闭环:【基础理论 →RAG开发 → Agent设计 → 模型微调与私有化部署调→热门技术】5大模块,内容比传统教材更贴近企业实战!

  • 大量真实项目案例: 带你亲自上手搞数据清洗、模型调优这些硬核操作,把课本知识变成真本事‌!

02适学人群

应届毕业生‌: 无工作经验但想要系统学习AI大模型技术,期待通过实战项目掌握核心技术。

零基础转型‌: 非技术背景但关注AI应用场景,计划通过低代码工具实现“AI+行业”跨界‌。

业务赋能突破瓶颈: 传统开发者(Java/前端等)学习Transformer架构与LangChain框架,向AI全栈工程师转型‌。

image.png

vx扫描下方二维码即可
在这里插入图片描述

本教程比较珍贵,仅限大家自行学习,不要传播!更严禁商用!

03 入门到进阶学习路线图

大模型学习路线图,整体分为5个大的阶段:
图片

04 视频和书籍PDF合集

图片

从0到掌握主流大模型技术视频教程(涵盖模型训练、微调、RAG、LangChain、Agent开发等实战方向)

图片

新手必备的大模型学习PDF书单来了!全是硬核知识,帮你少走弯路(不吹牛,真有用)
图片

05 行业报告+白皮书合集

收集70+报告与白皮书,了解行业最新动态!
图片

06 90+份面试题/经验

AI大模型岗位面试经验总结(谁学技术不是为了赚$呢,找个好的岗位很重要)图片
在这里插入图片描述

07 deepseek部署包+技巧大全

在这里插入图片描述

由于篇幅有限

只展示部分资料

并且还在持续更新中…

真诚无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发

在这里插入图片描述

GraphRAG:一种新型的RAG技术 微软前几天发布的 GraphRAG 架构非常厉害,但是具体的原理和内容可能不太好理解。Neo4j 的 CTO 写了一篇详细的文章《GraphRAG 宣言:为 GenAI 增加知识》,通俗易懂的介绍了 GraphRAG 的原理、与传统 RAG 的区别、GraphRAG的优势、知识图谱的创建和利用知识图谱工作。 阅读详情

相关推荐

LlamaIndex——RAG概述

目前,以下组件是 Transformation 对象:文本分割器、节点解析器、元数据提取器、Embeddingsmodel(查看我们支持的嵌入列表)。除了这些模块,我们可以自定义转换操作,例如import re],

weixin_45325331的博客 3748

GraphRAG:知识图谱+RAG技术

由于RAG的一些缺陷,最近工作中用到了GraphRAG,可以简单理解为知识图谱+RAG工作,在进行QFS与深度推理上表现良好。老板希望,在类似于库存管理、预测上面,可以结合更多的上下文信息和逻辑关系,进行推理和结果的输出。(下图为RAG简单示意图)

2401_84208172的博客 2万+

RAG框架选型指南:LlamaIndex、GraphRAG与RAGFlow对比

检索增强生成(RAG)作为AI落地的关键技术,通过结合信息检索与生成模型的能力,显著提升了知识管理系统的智能化水平。其核心原理是将外部知识库与LLM结合,解决模型幻觉问题并增强领域适应性。在工程实践中,开发者需要根据文档复杂度、推理深度等需求选择合适的技术方案。主流框架如模块化的LlamaIndex适合灵活定制,GraphRAG擅长知识图谱推理,而RAGFlow则提供开箱即用的工业化方案。特别是在处理金融报告分析、医疗文档解析等场景时,合理的框架组合能显著提升多跳推理能力和表格提取准确率。随着Agentic

weixin_31099291的博客 238

一文搞懂GraphRAG、LightRAG、AgenticRAG,看这一篇就够了!

一文搞懂GraphRAG、LightRAG、AgenticRAG,看这一篇就够了!

xxue345678的博客 1万+

RAG技术解析:从基础架构到GraphRAG进阶应用

检索增强生成(RAG)技术通过结合大语言模型的生成能力与外部知识检索,有效解决了传统AI模型的知识冻结和幻觉问题。其核心技术原理包括文档向量化、相似性检索和上下文增强生成,在问答系统和内容创作等场景中显著提升事实准确性。企业级解决方案如RAGFlow采用混合检索引擎和动态分块策略,而GraphRAG通过知识图谱实现多跳推理,在金融风控和医疗诊断等复杂场景展现优势。随着Agentic RAG和多模态RAG等前沿发展,该技术持续拓展应用边界。

weixin_34192816的博客 324

【RAG进阶04】—— RAG 技术选型 — 传统 RAG、GraphRAG、LlamaIndex、RAGFlow 怎么选?

RAG技术选型指南:四种主流方案对比 本文对比了四种主流RAG技术方案的特点和适用场景: 传统RAG:基础模式,适合快速验证想法,成本低但全局理解能力弱 GraphRAG:微软提出的增强方案,擅长跨文档分析和全局推理,但构建成本高 LlamaIndex:灵活的开发框架,适合需要高度定制的场景,生态丰富 RAGFlow:开箱即用的全栈产品,擅长处理复杂文档格式,适合快速上线 选型建议: 简单问答:传统RAG 跨文档分析:GraphRAG 定制开发:LlamaIndex 复杂文档:RAGFlow 实际项目中常采

花间相见的博客 1331

STM32F103C8T6 驱动2位共阳数码管(基于 74HC595 和 PNP 三极管)

整体设计思路是通过 STM32F103C8T6 控制 74HC595 和 PNP 三极管,实现共阳数码管的显示功能。最初的电路设计中,三极管发射极接 5V 电源,这导致了数码管两位显示相同数字的问题。数码管能够稳定显示 0-99的数字。

qq_40289410的博客 2214

从零掌握RAG:LlamaIndex基础→GraphRAG进阶→RAGFlow企业级

本文全面解析了大语言模型应用开发中的关键技术——检索增强生成(RAG),深入探讨其核心原理、标准工作流程,并系统对比其与LlamaIndex、GraphRAG、RAGFlow等相关技术的异同,最后提供实用的学习建议和技术选型指导。通过构建完整的技术认知框架,帮助开发者掌握RAG从理论到实践的关键要点。

yihanss的博客 1173

[c语言]用辗转相除法求最大公约数,递归和不递归两种

在c语言的学习中必然会遇到求两个数之间的最大公约数的题目,那么对于其他经典方法,最简便快捷的方式就是利用辗转相除法 辗转相除法又叫做欧几里得算法,目的是为了求两个正整数的最大公约数 定理:gcd(a,b) = gcd(b ,a%b) //在这里用(a,b)表示a和b的最大公约数证明:a可以表示成a = kb + r,则r = a %b 假设d是a,b的一个公约数,则有 d|a, d|b,而r = a - kb,因此d|r //这里的"|"的意思是 :d是b的因数 ,d是a的因数 因此d...

ZZRBlogger的博客 1万+

进阶01:Labview与OPC UA设备通信

LabVIEW通过OPC UA实现高效设备通信方案 本文介绍了使用LabVIEW与OPC UA设备通信的完整实施方案。OPC UA协议具有跨平台兼容、高安全性和高效数据交换等优势。实施步骤包括:1)安装NI OPC UA工具包;2)搭建模拟测试环境,使用OPC UA Simulation Server创建测试变量;3)编写LabVIEW程序,实现连接服务器、事件订阅、数据读写等功能。重点展示了通过用户事件实现设备主动触发的机制,当模拟变量值改变时自动触发LabVIEW事件处理。该方案验证了OPC UA在工业

weixin_38637405的博客 1402

RAG 入门指南:LlamaIndex、GraphRAG、 RAGFlow 学习建议与技术选型

本文主要介绍了当前构建基于大语言模型的应用时最主流的 RAG 的核心思想、基本工作流程,RAG 与 LlamaIndex、GraphRAG、 RAGFlow 之间的关系与区别以及RAG学习建议与技术选型。

Y525698136的博客 876

vue2/3 - element表格组件el-table实现懒加载树型(上下级)数据、默认展开和隐藏层级,支持对表格进行修改|新增|删除,解决完成操作后树节点不刷新问题(提供示例代码,一键复制开箱即用

vue2,vue3,elementui,elementPlus,el-table,Table表格组件,表格懒加载数据,element table表格数中的树形结构懒加载,增加后数据不同步更新问题,el-table树形与el-tree树形结构的一键折叠与展开,elementui中el-tree懒加载数据 默认展开最外层节点,Element-plus Table组件树表结构默认展开一级目录,vue实现element table表格树形结构-使用懒加载时-解决子节点增删改后,不刷新子节点数据问题,解决el-tre

✅ 精选推荐文章 1万+

RAG 入门指南:LlamaIndex、GraphRAG、 RAGFlow 学习建议与技术选型,大模型入门到精通,收藏这篇就足够了!

本文主要介绍了当前构建基于大语言模型的应用时最主流的 RAG 的核心思想、基本工作流程,RAG 与 LlamaIndex、GraphRAG、 RAGFlow 之间的关系与区别以及RAG学习建议与技术选型。

pythonhy的博客 944

Authentication Assertion Tickets,SAP 系统到系统单点登录里的短命凭证

SAP 系统间的身份传递机制存在 Authentication Assertion Ticket 和 SAP Logon Ticket 两种易混淆的凭证。前者用于系统间短时身份委托(有效期2分钟,通过HTTP头传输),后者用于浏览器SSO(可配置有效期,通过Cookie传输)。Assertion Ticket依赖签发系统的数字签名和严格的时间同步,适用于ABAP/Java系统间的后台作业调用。现代SAP架构已转向OAuth 2.0等标准协议,但老系统中仍需注意两种票据的关键差异:传输方式、有效期、接收方限制

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 602

SAP Fiori Launchpad 概述

SAP Fiori launchpad 是托管 SAP Fiori 应用程序的 shell,并为应用程序提供导航、个性化、嵌入式支持和应用程序配置等服务。SAP Fiori Launchpad 是移动和桌面设备上 SAP Fiori 应用程序的入口点。启动板显示带有图块的主页,其中可以显示实时状态指示器,例如打开的任务数量。每个图块代表用户可以启动的业务应用程序。这包括 SAP Business Suite 事务应用程序和 SAP Smart Business 分析应用程序。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 932

大模型应用开发必备,RAG技术详解与工具选型:LlamaIndex、GraphRAG、 RAGFlow

文章详细介绍RAG(检索增强生成)的核心思想、工作流程及优势,解析三种主流RAG工具的区别与选型:LlamaIndex作为功能强大的开发框架,提供高度定制化能力;GraphRAG利用知识图谱增强复杂问题处理;RAGFlow则是开箱即用的平台,特别适合处理复杂文档。针对不同需求人群提供了学习路径和技术选型建议,帮助开发者根据自身需求选择合适的RAG解决方案。

Android23333的博客 1157

CANoe如何实现TLS协议

TLS,Transport Layer Security,传输层安全协议。是在传输层和应用层之间,为了保证应用层数据能够安全可靠地通过传输层传输且不会泄露的安全防护。

jasonj333 1160

RAG技术入门:LlamaIndex、GraphRAG、RAGFlow学习路径与最佳实践

本文主要介绍了当前构建基于大语言模型的应用时最主流的 RAG 的核心思想、基本工作流程,RAG 与 LlamaIndex、GraphRAG、 RAGFlow 之间的关系与区别以及RAG学习建议与技术选型。

libaiup的博客 798

深度学习工具包 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")

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

RAG技术终极教程(LlamaIndex/GraphRAG/RAGFGlow全解析)从核心原理到项目选型全精通,看这一篇就够了!

它的深度文档理解能力是其杀手锏。如果你只是在学习或了解 RAG:先理解 RAG 的基本思想和工作流程,然后了解 LlamaIndex 和 GraphRAG 分别解决了 RAG 中的什么问题(前者是工程化和灵活性,后者是处理复杂推理),最后体验一下 RAGFlow,看看一个成熟的 RAG 产品是什么样的。给你学习,我国在这方面的相关人才比较紧缺,大模型行业确实也需要更多的有志之士加入进来,我也真心希望帮助大家学好这门技术,如果日后有什么学习上的问题,欢迎找我交流,有技术上面的问题,我是很愿意去帮助大家的!

xiaoganbuaiuk的博客 609

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

RAG技术解析:LlamaIndex、GraphRAG与RAGFlow对比与实践

检索增强生成(RAG)技术通过结合信息检索与生成模型,显著提升了AI系统的知识准确性和响应质量。其核心原理是让模型在生成答案前先检索相关文档,既保留了大模型的创造力,又确保了事实准确性。在工程实践中,RAG技术广泛应用于客服系统、知识库构建和智能问答等场景。本文重点对比了LlamaIndex、GraphRAG和RAGFlow三大主流框架:LlamaIndex以其轻量级数据连接器简化了多源数据整合;GraphRAG通过知识图谱技术提升了语义关联理解;RAGFlow则提供了企业级的生产部署方案。针对不同应用场景

weixin_29531177的博客 212

GraphRAG:让 RAG 看见“关系网络“的技术进化

GraphRAG 算是 RAG 技术演进里挺重要的一步——它让 AI 从"翻书找词"进化到了"全知视角"。通过知识图谱、社区发现、全局摘要这些手段,它能回答传统 RAG 搞不定的宏观问题。

python1234567_的博客 606
上一篇: MCP架构详解:打造下一代AI智能体的核心技术
下一篇: 大模型知识蒸馏全解析:从理论原理到实际应用
不秃头de程序猿
博客等级 码龄5年 4089粉丝 1476原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值