公司动态
RAG 从入门到精通 - 基础版本
前两天我觉得工作有些不太稳定。于是打开了 Boss想看看市面上有什么好的工作机会给自己找找后路。这不看还不打紧看过之后发现岗位的要求怎么都这么高全栈和Agent开发都是要求有2~3年的相关工作经验要求。我想着这全栈工程师嘛确实得要求相关工作经验比较多毕竟工作栈比较多需要时间沉淀。可这 Agent 不也才火1年多点儿吗怎么连 Agent 工程师也要求有2~3年的相关工作经验这还得要求求职者提前布局是咋滴好吧~吐槽归吐槽。我还是发现这些要求的技术栈中有个跟向量数据库相关的技术-RAG 我没太用过。趁着最近有空我开始尝试本地构建。MVP我认为做RAG也应该从最小的可用系统开始做。毕竟技术的进化本质是一个循序渐进的过程刚开始的时候从MVP入手持续得到激励可以让兴趣保留的时间长久点~RAG的第一步,我感觉不是做技术选型。应该是找到一个使用场景然后针对这个场景进行系统设计。这不我最近大半年喜欢上了手冲咖啡。很多时候我不太会选豆子都是看小红书或者淘宝的推荐。但是推荐的豆子里面的很多参数我都看不懂。产地、豆种、烘焙程度、风味等等看的头都是大的。所以一开始我想做一款能帮我选豆子的Chat Bot。但是真实的场景中其实不太会为这个场景单独设计一个 Chat Bot更多的场景应该是作为一个店铺助手帮助客户了解店铺以及店铺的场景。RAG的第二步收集数据。既然我的目的是设计一个店铺助手那我应该是找到一款产品以及其背后的店铺相关的信息。我从淘宝上找到了我之前喝过的一款豆子接着我又把它背后的店铺信息也抓取下来。然后考虑到有时候会有冲煮的建议我让AI生成了一份针对不同烘焙程度的豆子的冲煮技巧。RAG的第三步整合进LLM的上下文里面。代码我就不贴了Chroma 自定义 Pipline使用 LangChain也行。有兴趣的可以看我的git(https://github.com/dkisser/rag_learn).这个MVP只是起点。我觉得需要知道面向大规模生产环境使用的话肯定不是这样的架构毕竟Chroma不适合生产环境去使用。而且RAG其实又很多进阶技巧https://milvus.io/docs/zh/how_to_enhance_your_rag.md。一个成熟的RAG不应该是有系统本身还应该需要配合一些评估系统去不停地迭代优化。