人工智能 - RAG(检索增强生成)
· 阅读需 8 分钟
大概半年前,我和同事讨论了一个AI应用问题:
如何实现使用自然语言搜索文件名称和内容?
例如以下两个情景:
- 搜索昨天新上传的图片文件。
- 搜索文件内容中包括
发票和爱米云有限公司的pdf文件。
使用传统的基于条件搜索的人机交互方式,需要在软件界面中选择多个条件才能完成上述搜索,这对普通用户而言有一些学习成本和操作复杂度。
我们希望直接在软件中使用自然语言搜索文件,也就是在搜索框中直接输入上述的 昨天新上传的图片文件 这段文字,就可以完成对应的搜索任务,类似下图的效果: 
我们花时间做了一些调研,结果并不理想,主要有两个问题难以解决:一个问题是文件内容可能是动态变化的,而目前的主流LLM(大语言模型)都是通过静态数据训练的,显然不可能每天用新数据训练一次LLM,那成本太高了。另外一个问题是由于文件有安全访问控制,因此每个人能访问的文件集不一样,显然不可能为每个人单独训练一个LLM,那成本太高了。最后我们得出的结论:能实现,但使用成本太高了,暂时搁置。
可是,峰回路转,柳暗花明,在一次偶然的机会,在elastic的博客上看到一篇技术文章,读后,我如获至宝。这种新技术被称为 检索增强生成(Retrieval-Augmented Generation,RAG)模型,原始论文在2020年的神经信息处理系统大会(NeurIPS 2020)上发表,论文的多名作者分别来自 Meta AI、伦敦大学学院和纽约大学。RAG模型从根本上解决了LLM不能与外部实时数据交互问题。