推荐序
在当今的人工智能领域,大模型技术无疑是最具有变革性的力量。然而,随着应用场景的不断拓展和深化,人们逐渐意识到单纯依赖预训练大模型的能力,往往难以满足复杂且多变的实际需求。正是在这样的背景下,检索增强生成(Retrieval Augmented Generation, RAG)技术应运而生,它为大模型与外部知识的高效融合提供了一条切实可行的路径,显著提升了模型生成内容的准确性、相关性和时效性。
我欣喜地看到,《大模型RAG生成式AI开发:使用LlamaIndex、Deep Lake和Pinecone》这本书精准地聚焦于RAG这一前沿技术领域,为广大开发者和AI爱好者带来了一场知识与实践的盛宴。从基础概念到高级应用,从单一模态到多模态扩展,从简易实现到模块化架构,书中内容循序渐进且全面深入,覆盖了RAG技术的方方面面。无论是对RAG的定义、生态系统的剖析,还是各类RAG模式的代码实现,本书都讲解得清晰透彻,并配以丰富的实例,使读者能够轻松上手且快速实践。
特别值得一提的是,书中结合了大量诸如Deep Lake、OpenAI、LlamaIndex和Pinecone等业界领先的工具和平台,通过实际案例展示了如何在不同的场景中搭建高效的RAG流水线,以解决实际问题。例如,在无人机技术、银行客户数据扩展和视频生成等多样化的应用场景中,RAG技术的强大威力得以充分彰显。这不仅有助于读者理解RAG的核心原理,更能够引导他们将所学知识灵活地运用到自身的项目中,从而实现从理论到实践的无缝对接。
此外,书中还探讨了如何通过专家人类反馈来提升RAG性能、构建知识图谱RAG等进阶话题,紧跟技术发展趋势,为读者拓展了更广阔的技术视野。在当今快速发展的AI时代,这样一本兼具深度与广度、理论与实践的书籍,无疑是开发者们掌握RAG技术且提升自身竞争力的绝佳指南。我相信,每一位认真研读本书的读者,都将在RAG技术的学习与应用之路上迈出坚实有力的步伐,并收获满满的知识与技术。
Jerry Liu,LlamaIndex创始人
中文版序
致中国人工智能领域中尊敬的读者、开发者、研究人员与学者:
当得知RAG-Driven Generative AI这本书即将由清华大学出版社推出其中文版时,我倍感欣喜。清华大学出版社在知识传播方面的卓越贡献令人钦佩,我对此次合作深表感激。
我特别期待将本书中所阐述的理念、方法论与实用工具,介绍给中国充满创新精神和活力的开发者社区。本书深入探讨了检索增强生成(RAG)的核心原理,详细阐述了从原始数据到构建有意义的嵌入和向量存储的过程,以及如何利用LlamaIndex等强大框架实现实际应用。书中还涵盖了多模态数据的关键考量,以及通过专家人类反馈等机制优化性能的技巧,为读者提供了一条清晰的路径,以构建复杂的现实世界AI系统。这种注重实践的写作思路,源于一个核心信念:唯有在实践中,理解才能真正深化。
RAG背后的技术动因极具意义。与传统的模型微调相比,RAG提供了一种灵活、高效且通常更具成本效益的替代方案或补充手段。这在处理那些不断变化的且面向现实世界的数据集时尤为关键——例如,环境监测系统或需要实时访问信息流的平台,在这些场景中,频繁重训模型是不切实际的。RAG使模型能够动态访问外部的最新知识,这正是其具备可扩展性的关键所在。
此外,强大的RAG技术将长期具有重要价值。即便随着大语言模型的发展,上下文窗口不断扩大,挑战也从简单地“容纳更多信息”转变为“如何在庞大的知识库中精准且可靠地检索到所需信息”。精准的检索对于确保生成内容具有事实依据、提高准确性、减少幻觉现象,以及增强系统的可靠性都至关重要,尤其是在处理大规模或高度专业化的数据集时更为突出。RAG所提供的可追溯性,使输出能够回溯到原始文档,对于打造值得信赖的AI系统而言,是不可或缺的基石。
我满怀期待,相信中国的开发者和研究人员必将在本书所述RAG技术的基础上,创造出令人瞩目的新成果。
致以最诚挚的问候与期待!
Denis Rothman
作者简介
丹尼斯・罗斯曼(Denis Rothman)毕业于索邦大学和巴黎狄德罗大学。早在学生时代,他就撰写并申请了一项关于最早一批词向量嵌入算法和分词方案的专利。之后,他创立了一家专注于人工智能应用的公司,开发了首批AI聊天机器人之一,并将其作为酩悦香槟(Moët et Chandon,LVMH旗下品牌)等企业的语言教学工具。很快,丹尼斯便成为可解释AI领域的专家,他将易于理解、高质量的解释数据和功能,融入航空航天、服装、供应链等行业的大型企业项目方案中。丹尼斯始终坚信,只有教会他人如何实践,才算真正掌握某项知识。
技术审稿人简介
阿尔贝托・罗梅罗(Alberto Romero)一直钟情于技术与开源领域。早在20世纪90年代,年仅12岁的他便开始接触编程,14岁时已钻研Linux内核。2017年,他与他人共同创立了一家AI初创公司,并担任CTO长达6年,从零开始打造了屡获殊荣的保险科技平台。如今,他仍在金融服务领域设计和搭建生成式AI平台,主导了该领域的多项重要项目。他开发并投产了众多AI产品,这些产品实现了决策流程的自动化并提升了运营效率,现已惠及数千用户。此外,他还担任一家先进的数据安全与治理初创公司的顾问,这家公司借助预测性机器学习技术和生成式AI,为企业解决数据安全难题。
在此,我要向我的妻子阿莉西亚,以及女儿阿德里安娜和卡塔利娜,表达最诚挚的感谢。在审阅本书的过程中,她们始终给予我无条件的支持。她们的耐心、鼓励与关爱无比珍贵,能有她们相伴,我深感幸运。
—— 阿尔贝托・罗梅罗
舒巴姆・加尔格(Shubham Garg)是亚马逊的资深应用科学家,专注于大语言模型(Large Language Model, LLM)与视觉语言模型(Vision-Language Model, VLM)的研发。他在亚马逊和IBM都主导过创新性项目,包括开发Alexa的翻译功能、创建动态提示词、优化AI工具等。舒巴姆在自然语言处理、多语言模型、AI解决方案等领域均做出了贡献。他在重要的自然语言处理学术会议上发表过论文,也为不少会议和期刊做过评审工作,他还拥有一项专利。凭借在AI技术方面的深厚造诣,他的评审观点极具价值和见地。
塔米尔塞尔万・苏布拉马尼安(Tamiselvan Subramanian)是一位资深的人工智能领军人物,有过两次创业经历,尤其擅长文本与图像领域的生成式AI。他曾从零开始打造了多款AI产品,包括用于拯救濒危物种的AI保护平台、医学影像诊断平台、AI电动汽车租赁平台,以及企业AI平台。塔米尔在医学期刊发表过多篇有关AI的文章,拥有两项AI与图像处理方面的专利。他曾以技术架构师和顾问的身份,为欧美及澳大利亚的金融、能源企业服务,也曾在IBM和Wipro任职。目前,他专注于计算机视觉、文本及生成式AI的前沿应用。
我要特别感谢我的妻子苏甘蒂、儿子桑吉夫,还有我的父母。他们始终支持我,使我能够全身心投入本书的撰写工作。
——塔米尔塞尔万・苏布拉马尼安
译者序
在当今科技飞速发展的时代,生成式AI已成为引领行业变革的核心力量,而检索增强生成(Retrieval Augmented Generation, RAG)技术更是其中的关键支柱。RAG技术巧妙地融合了检索与生成的优势,通过检索相关知识来增强生成模型的输出,从而使其能够生成更加准确、丰富且具有逻辑性的内容。
本书开篇深入阐述了RAG的基础概念,从其定义出发,逐步对比它与微调的差异,剖析其生态架构,涵盖了检索器、生成器、评估器和训练器等核心组件,并通过代码实操,帮助读者迅速搭建起对RAG技术的认知框架。随后,各章节围绕不同的应用场景与技术组合,如基于Deep Lake和OpenAI的RAG嵌入向量库、使用LlamaIndex等构建基于索引的RAG等,展开深入且全面的论述。
本书每一章的内容都经过了精心编排,从基础到高级,从理论到实践,层层递进,旨在帮助读者全面掌握RAG生成式AI开发的精髓。书中丰富的代码示例、详尽的问题解答以及精心挑选的参考文献和扩展阅读材料,都将为读者的学习和研究提供极大的便利。
值得一提的是,书中不仅包含深入的理论剖析,还配备了大量的代码示例与实际操作步骤,无论是AI领域的初学者,还是经验丰富的开发者,都能从中获取宝贵的知识。对于初学者,可以借此书搭建起对RAG技术的认知框架,并逐步掌握开发技巧;而对于资深开发者,书中新颖的应用场景、前沿的技术组合以及深入的性能优化策略,也都将为项目实践提供全新的思路与方法
希望本书能够为中文读者搭建起一座通往RAG生成式AI世界的桥梁,帮助大家在这场技术变革的浪潮中乘风破浪,创造出更多有价值的应用和成果。让我们一起开启这段精彩的RAG开发之旅,探索生成式AI的无限可能。读者在阅读过程中,如果发现书中的问题或错误,欢迎与我们联系,电子邮箱是bookservice@263.net。
前 言
设计和管理可控且可靠的多模态生成式AI系统绝非易事。RAG生成式AI为打造兼顾性能与成本的高效大模型、计算机视觉和生成式AI系统,提供了一份详尽的路线图。
本书从基础概念入手,逐步深入复杂的实现环节,并详细探讨了RAG技术。RAG通过将每项输出溯源至源文档,实现了对AI系统的有效调控与强化。借助RAG的可追溯特性,人类反馈能够持续优化系统,最大限度降低结果的不准确性、避免大模型幻觉以及降低偏差。本书指导读者从零开始搭建RAG框架,涵盖了向量存储、数据切块、索引构建和排序等方面的实用知识。同时,读者还能够掌握优化性能与成本的技巧,例如,通过人类反馈来提升模型准确率,微调并控制成本,以及借助嵌入索引知识图谱来提高准确率和检索速度。
本书采用LlamaIndex、Pinecone和Deep Lake等框架,以及OpenAI和Hugging Face等生成式AI平台,带领读者体验理论与实践的深度融合。
完成本书的学习后,读者将具备智能解决方案的落地能力。无论是在生产领域,还是在客服等项目中,这些专业知识都能够让你保持竞争优势。
目标读者
本书特别适合数据科学家、AI工程师、机器学习工程师以及MLOps工程师阅读。对于从事大模型与计算机视觉项目,想要学习RAG并将其应用于实际中的解决方案架构师、软件开发者、产品经理和项目经理,本书同样极具价值。此外,研究大模型与文本生成的科研人员,以及自然语言处理领域的从业者,也能从本书中获益匪浅。
本书内容
第1章“RAG入门”介绍RAG的基本概念,阐述其在不同数据类型中的用途,剖析将RAG框架融入现有AI平台的难点。通过本章的学习,你不仅能够对RAG有深入的理解,还能够获得使用Python配置简易、高级和模块化RAG的实际经验,为后续章节的高级应用筑牢根基。
第2章“基于Deep Lake和OpenAI的RAG嵌入向量库”介绍了嵌入向量及存储方案,深度探究RAG生成式AI的难点。本章借助Activeloop Deep Lake与OpenAI模型,探究从原始数据到有序向量存储的转换过程,阐述了如何利用嵌入获取深层语义,详细讲解创建和管理嵌入的步骤。通过将RAG生态拆解为独立组件,读者将学习如何使用Python从零开始搭建一套可扩展且多团队协作的RAG流程。最后,读者将具备处理大型数据集的能力,并拥有强大的检索功能,能够通过嵌入文档向量来提升生成式AI的输出质量。
第3章“使用LlamaIndex、Deep Lake和OpenAI构建基于索引的RAG”深入探究基于索引的RAG,重点讲解如何通过索引来提升AI的精准度、速度与透明度。我们将学习如何整合LlamaIndex、Deep Lake和OpenAI,搭建一套可追溯且高效的RAG流程。通过特定领域的无人机技术项目实际案例,读者将掌握管理和优化基于索引的检索系统的方法。最后,读者将能够熟练运用多种索引类型,并掌握如何提升AI输出的数据完整性与质量。
第4章“无人机技术中的多模态模块化RAG”通过引入一个专门为无人机技术打造的多模态模块化RAG框架,来提高生成式AI应用的整体水准。我们将打造一个生成式AI系统,它不仅能处理文本信息,还能融入先进的图像识别能力。读者将学习如何运用LlamaIndex、Deep Lake和OpenAI等工具,构建并优化基于Python的多模态模块化RAG系统,实现针对各类查询生成丰富且贴合上下文的响应。
第5章“使用专家人类反馈提升RAG性能”介绍自适应RAG,通过将人类反馈融入生成式AI来进一步提升RAG。本章将借助Python打造一个混合自适应RAG系统,通过直接整合专家反馈来探索如何利用人类反馈循环持续优化数据,进而提升AI响应的相关性与准确性。
第6章“使用Pinecone扩展RAG银行客户数据”中将引领读者搭建一个推荐系统,以降低银行客户流失率。首先,我们利用Kaggle数据集进行数据采集与探索性分析;接着,利用Pinecone和OpenAI的技术对海量数据进行嵌入与插入操作;最后,借助GPT-4o开发AI推荐系统。通过本章的学习,读者将掌握如何运用先进的向量存储技术与AI分析方法来优化客户留存策略。
第7章“使用维基百科API和LlamaIndex创建可扩展的知识图谱RAG”详细介绍三个组件的开发过程,即从维基百科采集数据、向Deep Lake向量库填充数据、实现基于知识图谱索引的RAG。读者将学习如何自动化检索与准备数据、创建并查询知识图谱、可视化复杂的数据关系、使用结构化数据提升AI响应。通过本章的学习,读者将具备搭建并管理基于知识图谱的RAG系统的能力,从而提供精准且贴合上下文的输出。
第8章“基于Chroma和Hugging Face Llama创建动态RAG”探究如何借助Chroma和Hugging Face Llama技术实现动态RAG。本章引入每日创建临时数据集的概念,临时数据集针对特定会议或任务进行优化,有效解决了数据长期存储的难题。读者将学习如何编写Python程序,以高效管理和查询临时数据集,确保在每次会议或决策的过程中,都能够获取最准确且最及时的信息。通过本章的学习,读者将能够搭建动态RAG系统,从而在数据驱动的环境中,提升响应速度与精准度。
第9章“赋能AI模型:微调RAG数据和人类反馈”介绍如何利用微调优化RAG数据,旨在将大量非参数化的原始数据转化为更易于处理的参数化格式,并赋予其训练好的权重,以进行AI交互。读者将学习数据集的准备和微调步骤,掌握如何利用OpenAI的工具,将数据转换为适合机器学习的提示与补全配对。此外,本章还将指导读者对OpenAI的GPT-4o-mini模型进行微调,并评估其效率与成本效益。
第10章“使用Pinecone和OpenAI实现视频生成RAG”探索如何在视频素材制作中融入RAG,实现人类创造力与AI自动化相结合。本章具体介绍如何构建一个AI系统,该系统借助OpenAI的文本转视频、视觉模型及Pinecone的向量存储功能,制作视频内容、添加评论并进行标注。本章先从视频生成和添加技术评论入手,接着介绍如何在Pinecone向量库中管理嵌入的视频数据。
本书阅读方法
阅读本书,读者应当具备基本的自然语言处理(Natural Language Processing, NLP)知识,并且拥有一定的Python编程经验。此外,本书中的大部分程序都以Jupyter notebook形式呈现。如果要运行这些程序,需要拥有一个免费的谷歌Gmail账号,以使用谷歌Colaboratory的免费虚拟机。同时,读者还需申请OpenAI、Activeloop和Pinecone的API密钥。
当运行这些程序时,需要安装下表中所示的模块。
模块 版本
deeplake 3.9.18(含Pillow)
openai 1.40.3(需要定期升级)
transformers 4.41.2
numpy >=1.24.1
deepspeed 0.10.1
bitsandbytes 0.41.1
accelerate 0.31.0
tqdm 4.66.1
续表
模块 版本
neural_compressor 2.2.1
onnx 1.14.1
pandas 2.0.3
scipy 1.11.2
beautifulsoup4 4.12.3
requests 2.31.0
下载示例代码文件与彩图
读者可以从https://github.com/Denis2054/RAG-Driven-Generative-AI下载本书代码,也可以从官网https://github.com/PacktPublishing/下载这些代码。本书在https://packt.link/gbp/9781836200918上提供了一个PDF文件,其中包含书中使用的所有彩色图片。另外,读者也可通过扫描本书封底的二维码下载这些示例代码文件与彩图。
