微信扫码
与创始人交个朋友
我要投稿
自从和员外上家公司离职后,我们就自己搞公司投入到了RAG大模型的AI产品应用的开发中,这中间有一个春节,前后的总时间大概是三个月左右,在这三个月期间,基本是昼夜兼程啊,到今天3月底结束,产品目前看是有了一个基础的雏形。
在这期间,员外负责整个产品的营销、商业客户的洽谈等方面的内容,我和阿包负责整体的技术架构搭建,代码从0-1的编写,我们是在24年1月26,产品初步上线了一个版本,开始接受企业客户的试用,这让我们接受到了大量的需求,以及我们产品在目前的市场环境中还存在哪些竞争力不足需要改进的地方。
三个月时间过去了,在我们的TorchV AI 产品初步成型之际,和大家分享一下开发RAG、LLM系统以来的一些心得和经验。
RAG(检索增强生成)名词一开始来源于2020年的一片论文《Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks》,旨在为大语言模型(LLM)提供额外的、来自外部知识源的信息。这样,LLM 在生成更精确、更贴合上下文的答案的同时,也能有效减少产生误导性信息的可能。
可以说在目前大模型井喷的今天,RAG作为一项为密集型知识NLP任务的处理指明了方向,配合AI大模型,让世界发生了翻天覆地的变化,数以万计的开发者都涌入这个赛道,同时竞争。
我们知道LLM目前存在的一些问题和挑战:
我自己理解LLM大模型本质就是一个二进制文件,所有的知识都通过压缩技术全部压缩在一个/多个GB的二进制文件中,最终在获取数据的时候,通过LLM的模型架构,推理能力,将所有的知识信息又生成出来。
而RAG技术的出现,正好能有效的缓解目前大模型存在的一些问题,主要表现方面如下:
既然我们知道,RAG作为密集型知识库的处理和大模型配合起来有着天然优势,那么如何做好RAG的开发?
RAG应用的基础技术核心是:让大模型依靠现有的数据(PDF/WORD/Excel/HTML等等)精准的回答用户的问题
这是最基础的功能,同时也是最低要求,任何做RAG领域的AI应用产品,技术层面都需要去突破解决的技术难题。
注意两个核心点:
技术人对于RAG应用考虑的最核心的就是这两点,而技术测为了要实现这一个目标,其覆盖的知识面以及技术难度都是非常大的。
我很早之前参考大模型的技术架构发展,为RAG画了一张类似的图,如下:
这里面我为做RAG系统的总结为三颗树,LLM大模型是土壤,主要为:数据工程、检索生成、业务系统
这里面并没有把对模型的微调放入进来,当我们把基础工程做到80分后,也许对Embedding模型、Chat模型等微调工作会加入进来,针对特定的业务场景做优化。
通过上面的图,我们大概就能知道,RAG+LLM大模型系统的产品开发,是一个综合性非常强的工作内容,这就和大模型的训练一样,整个工程庞大繁杂,是一个系统性工程。
如果我们把三颗树中的每一项都作为一个技术因子,不同的步骤处理优化,都会影响着最终外部的商业的影响力,这就会产生量变到质变的转变。
假设:我们把数据工程和检索工程所有的步骤在技术层面提升了10%,那么我们在和同类竞品去竞争时,我们的优势是多大呢?
在大模型圈子里,经典名言:Garbage in and garbage out,意思显而易见,你给大模型送的数据质量越高,那么大模型的响应回答效果就越好,反之,如果你丢垃圾给大模型,那么大模型也会给你返回垃圾~
所以从这点来看,上层的应用开发者,要做好知识库类型的产品,数据工程绝对是第一道拦路虎,从数据集的不同领域进行分类,目前存在非常多的数据格式
这里面包含的多种不同的挑战
在数据工程这棵树上,所有的技术发展都不是停滞不前的,这里仅仅只是列了一些基础的树枝,我相信在大模型AI井喷爆发的今天,会更快推进数据工程(ETL)的发展。
当我们把所有的知识数据处理完毕,借助大模型来构建一个Chat系统时,信息检索技术则是必然要用到的
从这里我们好像发现,做RAG,无非就是做搜索?
在目前的RAG检索的技术体系中,最普遍的无非两种:关键词和向量语义检索
当然,在目前的很多向量数据库中间件中,这两类检索引擎都得到了支持,或者是混合检索也是一种重要的技术手段。
在整个检索生成的过程中,这棵树同样关注的技术细节也非常的多,如下:
在检索生成的这棵树上,和数据工程密切配合不可分割,都是在降低大模型幻觉的道路上深挖技术细节。
做RAG这类AI应用开发以来,感受最深的是和之前做产品/项目并不相同,一方面是技术栈发展较新,新技术带来的技术变革存在非常大的挑战,有了大模型之后,需求&想法也是五花八门,另外,目前的AI应用,我觉得更多的是技术&产品来领导驱动商业的发展,这和普通软件企业的开发流程或许有所不同。
这里我觉得几点非常重要:
我们团队内部经过这段时间的迭代,也碰了很多客户的需求,团队的方向也是在发展中不断的进行调整。
我们在成立TorchV AI时,整体架构如下:
我们以RAG技术为核心,在上层做我们的中间件层,这里面最核心的三个:
主要核心问题聚焦在降低大模型幻觉、不同数据源连接上面
通过RAG技术+中间件的方式,开发出了我们的第一个产品基线TorchV Bot。通过持续的产品迭代和不同客户需求碰撞,我们的TorchV Bot基线产品的架构也初步成型。如下图:
主要组件拆分如下:
以上则是目前TorchV的产品雏形,更多细节可以访问官网:https://www.torchv.com
随着大模型LLM的爆火,很多开发者在选择开发RAG系统应用时,会可能无法着手。
起初在开发RAG应用的时候,我也纠结过编程语言的选择,在这期间走了很多的弯路,也得到了一些教训。
TorchV.AI的产品目前选择是Java+Python作为服务端的开发语言。
这里面有以下几个原因:
下图是我画的一个Java
VS Python
这两个编程语言在不同领域的一些特性对比。
目前市面上开发RAG大模型应用最火的当属LangChain
、LlamaIndex
这两个框架,都是Python
语言进行开发,提供了开箱即用的功能,可能在不超过10行代码的情况下,就能轻松完成一个RAG大模型应用的demo。
我们起初也是在纠结在这期间如何更好的做取舍,后来团队内部经过讨论,还是将部分的业务逻辑放在Java语言中,重写RAG过程中的一些核心逻辑和组件。
这里面的思考:
结合在开发RAG应用中涉及到的数据工程等部分逻辑,我们结合两大语言的特性,也能很轻松的勾画出一张便语言级别的架构图,涵盖了在企业开发、业务场景落地时,如何快速的适配上层应用的需求。如下图所示:
在这张图中,我们可以清晰的看到,不同的任务&需求,职责分工是比较明确的。
在这里,当我们使用应用开发时,挑选编程语言来开发应用服务,优先考虑的是生态和稳定性。
当然,这里面并没有唯一的标准,根据自己的实际情况出发来选择是最优的,以上仅仅只是分享一下我的看法。
好了,全文完,做一个总结:
TorchV.AI目前是刚起步阶段,也欢迎更多的企业客户试用,合作!!!
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-12-23
使用 Lang Chain 和 Lang Graph 构建多代理 RAG :分步指南 + Gemma 2
2024-12-23
RAG评估框架:RAG Triad框架及其实战
2024-12-22
2个简单技巧把 RAG 检索准确率从 50% 提高到 95 %
2024-12-22
Browser-Use + LightRAG Agent:可使用 LLM 抓取 99% 的网站
2024-12-22
Dynamic RAG实战:解决知识增强中的动态更新挑战
2024-12-21
构建行业RAG应用系统:金融、财务、保险、医疗等行业该怎么做?
2024-12-21
构建基于多智能体RAG的企业的AI应用程序
2024-12-21
必读!RAG好用的3种Router
2024-07-18
2024-05-05
2024-06-20
2024-09-04
2024-05-19
2024-07-09
2024-07-09
2024-07-07
2024-07-07
2024-06-13
2024-12-21
2024-12-14
2024-12-01
2024-11-27
2024-11-25
2024-11-06
2024-11-06
2024-11-05