为什么要用RAG
目前越来越多的公司都在打造属于企业私有的RAG了,这确实比传统的搜索再靠阅读理解已经更进一步了,尤其是新人到公司后可以通过会话聊天的方式迅速掌握公司的主体业务,各项产品特性,常见问题解答。
最近我也在忙着打造属于公司自己的RAG,以下是一些心得体会。
物料
每个公司专有的数据肯定不会被公共的LLM学习到,要想让公有的LLM能回答属于公司专有业务的问题你就得精心准备很多内容素材。最后检索的资料是否准确取决于这一步的物料准备的是否足够丰富、满足日常业务需求,这也是最消耗精力的前置工作,这也是一项长期工作,物料需要不停的更新,周期性的喂到向量数据库里,这样RAG就能保持最新的知识库。
目前来看,物料的类型支持的挺多的,例如PDF、Word、Excel、CSV等等常见的文字格式的文件基本都支持,如果你的物料准备了足够多,解析这些物料也会消耗更长的时间,就可以用配置好一些的服务器。
框架配置
其它很少了解,就试过RAGFlow和QAnyThing。目前还是偏向于RAGFlow,毕竟Github上星星的数量20k,在Github上属于比较火的RAG了。
根据实测,运行RAGFlow最好准备16C64G的配置以上,OS推荐Ubuntu 22,顺便准备一张NVIDIA显卡配置好CUDA这样更能提升它的处理性能,显存推荐越大越好,至少也得8G以上。
LLM
这一步就比较关键了,这也是劝退很多想要使用RAG但预算有限的公司。大模型就是根据你前期喂到向量数据库的物料,结合你的问题然后用自然语言给你总结出你想要的答案。
前面两步你都精心做好了,大模型这一步要是选择到差的可以说检索总结效果非常差,但是要本地运行一些像样的模型就需要准备非常昂贵的服务配置,以GLM-4要求的配置为例:
- OS: Ubuntu 22.04
- Memory: 512GB
- Python: 3.10.12 (推荐) / 3.12.3 均已测试
- CUDA Version: 12.3
- GPU Driver: 535.104.05
- GPU: NVIDIA A100-SXM4-80GB * 8
所以对于预算不足的通常就使用线上的一些大模型服务,比如OpenAI提供的大模型服务,按token收费,不想用了随时可以停掉。