基于大模型的RAG应用开发与优化——构建企业级LLM应用(博...

  • 书籍语言:简体中文
  • 下载次数:9355
  • 书籍类型:Epub+Txt+pdf+mobi
  • 创建日期:2024-11-22 23:10:01
  • 发布日期:2025-09-07
  • 连载状态:全集
  • 书籍作者:严灿平
  • 运行环境:pc/安卓/iPhone/iPad/Kindle/平板

内容简介

本书是一本全面介绍基于大语言模型的RAG应用开发的专业图书。本书共分为3篇:预备篇、基础篇和高级篇。预备篇旨在帮助你建立起对大模型与RAG的基本认识,并引导你搭建起RAG应用开发的基础环境;基础篇聚焦于经典RAG应用开发的核心要素与阶段,介绍关键模块的开发过程,剖析相关的技术原理,为后面的深入学习打下坚实的基础;高级篇聚焦于RAG应用开发的高阶模块与技巧,特别是在企业级RAG应用开发中的优化策略与技术实现,并探索了一些新型的RAG工作流与范式,旨在帮助你了解新的RAG应用技术发展,掌握RAG应用的全方位开发能力。


作者简介


严灿平

毕业于南京理工大学计算机系,南京大学工商管理硕士。先后就职于联创(后与亚信科技合并)担任软件工程师与设计师,甲骨文中国(Oracle)担任中国区企业架构部首席架构师,上海慧问信息科技有限公司担任合伙人兼技术总监。现为独立IT咨询顾问,公众号“AI大模型应用实践”主理人。拥有超过20年的企业软件从业经验,专注于企业软件架构设计、互联网时代传统行业的IT转型、人工智能与大数据技术在企业应用的创新等。

曾担任多项大型企业级软件系统核心架构师与咨询师,参与包括中国移动、中国电信等通信行业客户的核心业务运营支撑系统建设、智慧城市与政务行业互联网转型的IT咨询与规划。精通多种计算机软件开发技术与IT架构方法论,对移动互联网、大数据、人工智能在企业领域应用有深入的研究与实施经验。


下载地址

序言

大语言模型(Large Language Model,LLM,也称为大模型)以卓越的自然语言处理能力,正引领着人工智能(Artificial Intelligence,AI)技术变革的新浪潮。作为大模型应用的一个重要分支与形态,检索增强生成(Retrieval-Augmented Generation,RAG)在智能搜索、智能问答、智能客服、数据分析及AI智能体等多个领域展现出了巨大的应用前景。

RAG可以很简单。RAG的基础技术原理可以用几句简单的话描述。你可以使用低代码开发平台或者成熟的大模型应用开发框架在几分钟之内开发出一个可以演示的原型应用。RAG也可以很复杂。当把一个RAG应用真正投入生产,特别是在企业级应用环境中业务需求与数据复杂性都有了数量级的提升,面临着更高的准确性与可用性等工程化要求时,你可能会发现原型应用与生产应用之间有巨大的鸿沟,会面临诸如数据形态多样、检索不够准确、模型输出时好时坏、用户提问千奇百怪、端到端响应性能不足等各种在原型应用演示中不会出现的问题。

所以,对于广大开发者而言,如何高效地设计、开发、部署并优化“生产就绪”的企业级RAG应用仍然充满挑战。因此,我衷心地希望本书为有志于探索大模型应用世界并充满热情的开发者抛砖引玉,提供一份较为详尽的开发 RAG应用的指南,助力他们在这次技术变革中乘风破浪。

本书的内容基于AI开发的首选语言Python,并选择侧重于RAG领域的主流开发框架LlamaIndex作为基础框架。两者丰富的工具资源和强大的社区支持,为RAG应用开发提供了得天独厚的条件,大大减少了“重复造轮子”的时间。需要说明的是,尽管我们的开发技术与样例是基于Python与LlamaIndex框架介绍的,但书中绝大部分关于RAG的思想、原理、架构与优化方法都是通用的,你完全可以使用其他语言与框架实现相同的功能。

当然,随着技术的不断进步和应用的深入拓展,新理论、新方法、新技术层出不穷。我衷心希望本书能够作为一个起点,激发你对大模型应用开发技术的兴趣与探索欲,也期待未来能够有更多的学者、专家从事这一领域的研究,共同推动大模型应用的落地与演进,为人工智能的未来贡献更多的智慧与力量。


目录

第1章 了解大模型与RAG

1.1 初识大模型

1.2 了解RAG

1.3 RAG应用的技术架构

第2章 RAG应用开发环境搭建

2.1 开发RAG应用的两种方式

2.2 RAG应用开发环境准备

基础篇

第3章 初识RAG应用开发

3.1 开发一个最简单的RAG应用

3.2 如何跟踪与调试RAG应用

3.3 准备:基于LlamaIndex框架的RAG应用开发核心组件

第4章 模型与Prompt

4.1 大模型

4.2 Prompt

4.3 嵌入模型

第5章 数据加载与分割

5.1 理解Document与Node

5.2 数据加载

5.3 数据分割

5.3.1 如何使用数据分割器

5.3.2 常见的数据分割器

5.4 数据摄取管道

5.4.1 什么是数据摄取管道

5.4.2 用于数据摄取管道的转换器

5.4.3 自定义转换器

5.4.4 使用数据摄取管道

5.5 完整认识数据加载阶段

第6章 数据嵌入与索引

6.1 理解嵌入与向量

6.2 向量存储

6.3 向量存储索引

6.4 更多索引类型

第7章 检索、响应生成与RAG引擎

7.1 检索器

7.2 响应生成器

7.3 查询引擎

7.3.1 构造内置类型的查询引擎的两种方法

7.3.2 深入理解查询引擎的内部结构和运行原理

7.3.3 自定义查询引擎

7.4 对话引擎

7.4.1 对话引擎的两种构造方法

7.4.2 深入理解对话引擎的内部运行和运行原理

7.4.3 理解不同的对话模式

7.5 结构化输出

7.5.1 使用output_cls参数

7.5.2 使用输出解析器

高级篇

第8章 RAG引擎高级开发

8.1 检索前查询转换

8.1.1 简单查询转换

8.1.2 HyDE查询转换

8.1.3 多步查询转换

8.1.4 子问题查询转换

8.2 检索后处理器

8.2.1 使用节点后处理器

8.2.2 实现自定义的节点后处理器

8.2.3 常见的预定义的节点后处理器

8.2.4 Rerank节点后处理器

8.3 语义路由

8.3.1 了解语义路由

8.3.2 带有路由功能的查询引擎

8.3.3 带有路由功能的检索器

8.3.4 使用独立的选择器

8.3.5 可多选的路由查询引擎

8.4 SQL查询引擎

8.4.1 使用NLSQLTableQueryEngine组件

8.4.2 基于实时表检索的查询引擎

8.4.3 使用SQL检索器

8.5 多模态文档处理

8.5.1 多模态文档处理架构

8.5.2 使用LlamaParse解析文档

8.5.3 多模态文档中的表格处理

8.5.4 多模态大模型的基础应用

8.5.5 多模态文档中的图片处理

8.6 查询管道:编排基于Graph的RAG工作流

第9章 开发Data Agent

9.1 初步认识Data Agent

9.2 构造与使用Agent的工具

9.3 基于函数调用功能直接开发Agent

9.4 用框架组件开发Agent

9.5 更细粒度地控制Agent的运行

9.5.1 分步可控地运行Agent

9.5.2 在Agent运行中增加人类交互

第10章 评估RAG应用

10.1 为什么RAG应用需要评估

10.2 RAG应用的评估依据与指标

10.3 RAG应用的评估流程与方法

10.4 评估检索质量

10.5 评估响应质量

10.6 基于自定义标准的评估

第11章 企业级RAG应用的常见优化策略

11.1 选择合适的知识块大小

11.2 分离检索阶段的知识块与生成阶段的知识块

11.3 优化对大文档集知识库的检索

11.4 使用高级检索方法

11.4.1 融合检索

11.4.2 递归检索

第12章 构建端到端的企业级RAG应用

12.1 对生产型RAG应用的主要考量

12.2 端到端的企业级RAG应用架构

12.3 端到端的全栈RAG应用案例

第13章 新型RAG范式原理与实现

13.1 自纠错RAG:C-RAG

13.2 自省式RAG:Self-RAG

13.3 检索树RAG:RAPTOR


短评

    产品特色