自建RAG模型和Assistant对比
一、RAG模型
RAG模型,基于检索的文档增强式问答,一般流程是:
- 首先对文档进行分割,分割后的段落使用向量模型进行向量化,向量化之后保存到向量数据库。
- 然后用户问问题的时候,问题也进行向量化,然后问题向量和段落向量计算相似度,找出topk个段落作为问答的参考。
- 同时传入问题,参考段落给大预言模型LLM,生成答案。
Assistant 指的是Openai的Assistant助手,主要有3大特点。
- 可以上传文档,根据文档进行问答,例如某数据,产品库,说明书等。
- 还可以根据的函数工具,自动调用工具,例如查询天气,订机票等工具。
- 当涉及到代码问题时,可以生产代码,并执行,最终结果返回。例如计算数学题。
二、自建RAG和Assistant对比
Assistant优点:
简单,用户只需上传文档,然后就可以使用了,只需开发调用API和前端即可。
性能好,得益于Openai 的超大embedding模型和LLM,参考段落的召回率很高,回答效果可以做到行业前列。
缺点:
- 依赖性强,可定制化差,价格随着数据增多而变多。
- 不稳定,网络不稳定和服务器计算能力不稳定。国外网络,需要梯子,其次OpenAI用户较多,算力经常耗尽。
- 嵌入检索的时候,感觉有一个问题,排在前面的商品总是被优先检索到。即当标准答案不止一个的时候,排在靠前的总是优先被引用。嵌入检索这个问题很大。暂时还没有好的优化方法。
- 用户多轮问答不能很好的控制上下文,导致不论用户问什么问题,都是基于检索进行问答。
自建RAG的优点:
- 自建RAG可以自行选择LLM和embedding模型,灵活性更高。LLM和embedding可以进行训练和微调。
- 自建RAG可以深度开发,可以设置不同的检索形式,例如混合检索(向量检索+关键字检索),使用本地的代码解释器和调用工具函数。
缺点:
- 自建的RAG比较复杂,需要算力较大,数据多,价格不会改变。
- 如果自建RAG模型一般参数量不能很大,例如embedding模型和LLM模型的参数量都会与商业模型差1个量级,所以性能一般不能超越商业模型。
自建RAG模型和Assistant对比
https://johnson7788.github.io/2023/12/19/%E8%87%AA%E5%BB%BARAG%E6%A8%A1%E5%9E%8B%E5%92%8CAssistant%E5%AF%B9%E6%AF%94/