OpenAI在RAG技术上的最佳实践与策略 原创

发布于 2024-7-10 07:01
浏览
0收藏

随着人工智能技术的不断演进,大型语言模型(LLM)的性能优化已成为AI领域的热点问题。OpenAI的技术专家团队分享了他们在检索增强生成(RAG)技术、提示工程和微调方面的最佳实践,为提升模型性能提供了宝贵的经验和策略。

OpenAI在RAG技术上的最佳实践与策略 -AI.x社区


一、微调技术的最新进展

John Allard深入介绍了OpenAI在微调领域的最新进展,包括:

  • 函数调用数据的微调:通过特定数据集的微调,优化模型对特定函数调用的理解。
  • 持续微调:提供了一种机制,允许模型随着时间的推移不断适应新数据。
  • 平台内全UI微调:通过用户界面的直接操作,简化了微调过程,提高了效率。

二、优化LLM性能的挑战

Colin细致讨论了优化大型语言模型的挑战,包括:

  • 信号与噪声的分离:在大量数据中识别有效信号,滤除干扰噪声。
  • 性能衡量的复杂性:确立合理的性能评估标准,确保模型优化方向的正确性。
  • 解决问题的策略选择:面对多种可能的解决方案,如何做出最合适的选择。

三、RAG技术的应用与案例分析

RAG技术通过结合Embeddings技术和向量数据库,显著提升了信息检索的效率和准确性。案例分析包括:

客户需求1:

OpenAI在RAG技术上的最佳实践与策略 -AI.x社区

  • 问题描述:基于大量文档的知识检索需求,要求模型仅从这些文档中检索信息。
  • 解决方案
  • 直接将PDF和docx文件嵌入,准确率是45%。
  • 2. 经过20次调优迭代,解决细节小Bug - 准确率到65%
  • 3. 基于规则进行优化,譬如先判断问题属于什么领域(退一步思考),然后再回答,效果提升到85%
  • 4. 发现数据里有一些是结构化数据(如表格),为此定制提取解决,准确率提升到98%
    总结:通过直接嵌入文件、迭代调优、规则优化和结构化数据的定制提取,逐步提升检索准确率。

客户需求2:

  • 问题描述:文本生成SQL的需求,即根据自然语言问题和数据库模式生成正确的SQL查询。
  • 解决方案
  • 首先,我们用最简单的方法,比如余弦相似性,寻找类似问题的SQL查询,进行问题相似性搜索。我们测试了不同的嵌入和提示工程,但结果不太好。后来,我们意识到不同的数据库模式对问题的答案可能完全不同。
  • 所以针对一个问题进行相似性搜索意义不大,但用预设答案进行搜索可能效果更好。我们使用预设的文档嵌入,生成一个假设的SQL查询进行相似性搜索,性能大大提升。对于这个特定问题,我们尝试了上下文检索通过简单过滤将问题按难度排名,只带回同等难度的例子,这带来了改进。
  • 我们还尝试了一些先进技术,比如链式推理,让系统识别列、表,最后构建查询。但我们决定采用更简单的方法进行自我一致性检查,让系统构建查询并运行,出错时给出提示,再次尝试。

OpenAI在RAG技术上的最佳实践与策略 -AI.x社区

  • 我们从69%开始,然后添加了一些示例,得到了几个改进点,这表明RAG可以进一步改进。我们尝试这个问题,看到性能提升了3%,然后使用答案,假设的文档嵌入使我们进一步提升了5%。
  • 我们决定试试微调,看能否更进一步。先建立了我们的基线,与上图里的69%基线一样,使用简单的提示工程技术。然后,用简单的提示工程对GPT-4进行微调,结果模型准确率提升到接近82%。
  • 再稍微调整模型使用um rag技术,把一些示例动态注入上下文窗口,准确率达到83.5%。这些都很简单,没有复杂的数据预处理或后处理。结果显示简单的微调和提示工程也能接近最先进的技术。

OpenAI在RAG技术上的最佳实践与策略 -AI.x社区

总结:采用问题相似性搜索、预设答案搜索、上下文检索和链式推理等方法,有效提升查询生成的性能。

四、评估和优化RAG系统的方法

John和Colin评估和优化RAG系统的方法,强调了数据质量的重要性,提出了评估RAG系统的多个维度:

  • 模型测试分数:评估模型在特定任务上的表现。
  • 检索相关性:衡量检索到的内容与问题的相关程度。
  • 生成内容的准确性:评估生成答案的事实准确性。
  • 检索内容的信号与噪声比:评估检索到的信息的有用性。
  • OpenAI在RAG技术上的最佳实践与策略 -AI.x社区

五、实战指导参考流程

优化LLM性能并不总是线性的,有时需要结合使用提示工程、RAG和微调。当你想提高语言模型(LM)的性能时,可以参考如下顺序调优。

  • 提示工程技术:作为开始的好地方,技术投资小,能够快速迭代,验证解决问题的可行性。
  • RAG技术:私有化、数据安全考虑时使用,增加允许模型访问特定领域的内容,提升专业知识检索能力。
  • 微调技术:还需进一步提升系统准确率,强化模型遵循一致指令的能力,提升特定领域的专业性使用。
  • 预训练:成本最高,如果不是特殊要求一般不建议采用​

总结:

这次的分享不仅展示了提高大型语言模型性能的多种技术手段,也强调了在实际应用中根据业务场景灵活选择和组合技术的重要性。通过深入理解和应用这些策略,我们可以更有效地优化AI模型,推动AI技术的发展和应用。


本文转载自公众号顶层架构领域

原文链接:​​https://mp.weixin.qq.com/s/pJk695aJUkR4g-tXwaiJaA​


©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
收藏
回复
举报
回复
相关推荐