Skip to content

开篇词 RAG,传统开发者加入AI的最佳路线

你好,我是叶伟民,一个奋战在技术一线15年、开发AI应用5年多、热衷翻译技术图书的斜杠中年。

AI一直是计算机领域最高端的名词,堪称皇冠上的明珠。现代计算机行业三大神,香农、冯·诺依曼、图灵都与AI相关。计算机领域最高奖项的图灵奖,就是以AI鼻祖“图灵”命名的。冯·诺依曼的遗作《计算机与人脑》至今仍然在售。甚至六十多年前,冯·诺依曼指导搞出现代计算机,就是冲着对人脑仿生的理想而来的。

你可能会说,人固然是要有理想的,但是理想不能当饭吃啊。

不过现在情况就不一样了,从去年开始,ChatGPT爆火。然后到了今年,AIGC/大模型应用方面的岗位需求也是水涨船高,并且工资明显高于计算机行业的其他工种。而这些职位之中很多都要求我们会RAG。

好了,现在理想可以当饭吃了,但是听说AI很难,至少要硕士学历,还要懂数学、懂算法。

不用担心,AI这么大的市场,也分很多工种。从目前的情况来看,对于大模型应用开发工程师,学历不是硬性要求,AI应用的开发经验更容易让你得到青睐(当然入门之后要想成为大牛,还是需要补学数学和算法的)。

我自己原本是一名传统软件开发者,五年前我有幸进入AI行业,主导和参与了多个AI应用的开发项目,在这个过程中积累了不少RAG的落地经验,掉进过不少坑,并根据这些经验开发了PDF4AI.cn这个解析PDF的AI工具。

在我看来,传统开发者加入这波AI浪潮,最快的路线就是RAG。 因为在所有与AI相关的项目里,RAG的门槛最低,对传统开发者最友好。

初学RAG有哪些难点?

在和很多传统软件开发同学的交流中,我发现很多人都对AIGC感兴趣,但不知道从何入手。我自己并不是AI领域科班出身,当初开发RAG应用的时候也踩了不少的坑。总结起来主要原因有这些。

第一, 只谈技术优点,不聊适用场景和局限。 很多网上资料只讲技术的优点和实现,根本不讲这个技术的缺点、局限性和适用场景。

更要命的是,有些缺点和局限,要等你把这个技术应用到项目之后才会体现,那时候已经上了“贼船”都不知道如何是好。以读取PDF为例,目前的技术、工具都有局限,例如无法处理好PDF换页,导致表格行头被断开、表格尾部数据丢失等等。这也是我研发PDF4AI.cn的原因。

第二, 只谈收益,不聊技术门槛和投入。以最近大热的GraphRAG为例,确实有公司实现得很好,其产品能够月入几千万,然而他们花了8个月的时间和无数的技术、人力,才得到这个好结果。GraphRAG是一个十分好的技术,但打个比方来说,它相当于RAG里面的专业马拉松,价值高,难度也很高,不适合初学者入门。

第三, 只考虑技术角度,很少评价一个项目的业务价值。其实RAG应用的业务价值和技术难度并没有关系。如果入门阶段就直接挑战高技术难度的项目,又没法很快产出业务价值,那么往往情况就会很不乐观,难以坚持。

其实还有很多落地实践之后才能发现的“隐藏坑点”,比如OpenAI或者Azure对于初学者来说门槛并不低;再比如很多中国特有的场景,像微信小程序流式输出,LangChain就无法支持。

课程设计

所以,我希望结合自己的学习实践经历,为初学者们定制一门更友好的RAG实战课,让你能在学习过程中少一些迷茫困惑,通过一个个实战项目逐步掌握RAG里的核心原理与关键技术,最终通过RAG提升你转型AI赛道的可能性。

针对前面聊过的学习难点,我是这样设计课程的。课程分为四个部分,分别是热身赛、初级篇、中级篇和马拉松,从章节名字就能看出,课程会循序渐进地带你掌握RAG。这里我把整门课程的知识点和章节的关联整理成了一张表,供你参考。

热身赛

这一章我们会以最低的门槛实现一个RAG应用,帮你建立入门RAG的信心。我们只需要学习RAG最基础的两个概念——对话模式和返回结构化数据,就可以引入RAG改造传统MIS系统了。这个案例业务价值比较高,同时技术难度最低,能帮助你消除畏难心理,马上获得成就感,激起继续学习的兴趣。

初级篇

有了前面的铺垫,初级篇我们会从0到1开启一个全新的RAG项目,一起开发一个AI读报小助手。AI读报小助手对于我们的日常工作生活比较实用,从而能让我们更有动力持续改进。这个部分会在第一章基础上增加三个重要概念——元数据、文本摘要、机器翻译。学完这部分,对于RAG我们就算基本入门了。

中级篇

这一章我们还会再学习RAG的三个重要概念:向量与嵌入模型、向量数据库、通过相似度来检索知识。之后我们来打造一个支持模糊检索的工单辅助系统。其实这个项目相当于面向公司内部的客服系统,这样既充分锻炼了我们的RAG开发能力,又可以产出一定的业务价值。

马拉松

最后一章的理念是授人以鱼,不如授人以渔。我会结合自己的RAG开发、优化经验,带你了解RAG应用的评估改进方法,再结合两个具体例子讲解RAG应用的优化方案。这一章我们将会探讨LangChain、LlamIndex等RAG框架,还会了解GraphRAG等13种RAG前沿技术,更重要的是掌握如何借鉴先进技术的长处,持续提升自己的RAG应用质量。

为了尽量降低同学们的学习门槛,并且考虑到我们的特殊国情,课程里很多细节也做了精心安排。比如:

  1. 我们没有使用OpenAI / Azure GPT大模型,而是使用了免费的百度文心大模型。
  2. 我们没有使用Faiss来存储向量,而是使用了有完善UI支持、门槛最低的Pgvector。
  3. 我们没有使用OpenAI / Azure 嵌入模型,而是使用了免费的、开源的、不需要GPU支持也能跑得很好的智谱BPE嵌入模型。
  4. 为了让大家专注于RAG学习本身,我们示例代码的函数和变量尽量使用中文。在最后一节课,再使用AI将这些函数和变量改成规范化的英文。

最后,我们先睹为快,一起预览一下课程里实战案例的效果。

其中实战案例1是这样的。

实战案例2是这样的。

实战案例3是这样的。

相信你也感受到了,这门课并不追求面面俱到,而是更注重学以致用,带你用最简单省力的方式,快速上手RAG应用开发。

当然,再容易的课程也需要我们行动起来,敲出第一行代码。那还等什么呢?行动起来吧!欢迎你和我一起学习RAG,成为AIGC时代的行动派!