随着人工智能技术的不断演进,大型语言模型(LLM)的性能优化已成为AI领域的热点问题。OpenAI的技术专家团队分享了他们在检索增强生成(RAG)技术、提示工程和微调方面的最佳实践,为提升模型性能提供了宝贵的经验和策略。
一、微调技术的最新进展
John Allard深入介绍了OpenAI在微调领域的最新进展,包括:
-
函数调用数据的微调:通过特定数据集的微调,优化模型对特定函数调用的理解。
-
持续微调:提供了一种机制,允许模型随着时间的推移不断适应新数据。
-
平台内全UI微调:通过用户界面的直接操作,简化了微调过程,提高了效率。
二、优化LLM性能的挑战
Colin细致讨论了优化大型语言模型的挑战,包括:
-
信号与噪声的分离:在大量数据中识别有效信号,滤除干扰噪声。
-
性能衡量的复杂性:确立合理的性能评估标准,确保模型优化方向的正确性。
-
解决问题的策略选择:面对多种可能的解决方案,如何做出最合适的选择。
三、RAG技术的应用与案例分析
RAG技术通过结合Embeddings技术和向量数据库,显著提升了信息检索的效率和准确性。案例分析包括:
客户需求1:
-
问题描述:基于大量文档的知识检索需求,要求模型仅从这些文档中检索信息。
-
解决方案:
-
直接将PDF和docx文件嵌入,准确率是45%。
-
2. 经过20次调优迭代,解决细节小Bug - 准确率到65%
-
3. 基于规则进行优化,譬如先判断问题属于什么领域(退一步思考),然后再回答,效果提升到85%
-
4. 发现数据里有一些是结构化数据(如表格),为此定制提取解决,准确率提升到98%
**总结:**通过直接嵌入文件、迭代调优、规则优化和结构化数据的定制提取,逐步提升检索准确率。
客户需求2:
-
问题描述:文本生成SQL的需求,即根据自然语言问题和数据库模式生成正确的SQL查询。
-
解决方案:
-
首先,我们用最简单的方法,比如余弦相似性,寻找类似问题的SQL查询,进行问题相似性搜索。我们测试了不同的嵌入和提示工程,但结果不太好。后来,我们意识到不同的数据库模式对问题的答案可能完全不同。
-
所以针对一个问题进行相似性搜索意义不大,但用预设答案进行搜索可能效果更好。我们使用预设的文档嵌入,生成一个假设的SQL查询进行相似性搜索,性能大大提升。对于这个特定问题,我们尝试了上下文检索通过简单过滤将问题按难度排名,只带回同等难度的例子,这带来了改进。
-
我们还尝试了一些先进技术,比如链式推理,让系统识别列、表,最后构建查询。但我们决定采用更简单的方法进行自我一致性检查,让系统构建查询并运行,出错时给出提示,再次尝试。
-
我们从69%开始,然后添加了一些示例,得到了几个改进点,这表明RAG可以进一步改进。我们尝试这个问题,看到性能提升了3%,然后使用答案,假设的文档嵌入使我们进一步提升了5%。
-
我们决定试试微调,看能否更进一步。先建立了我们的基线,与上图里的69%基线一样,使用简单的提示工程技术。然后,用简单的提示工程对GPT-4进行微调,结果模型准确率提升到接近82%。
-
再稍微调整模型使用um rag技术,把一些示例动态注入上下文窗口,准确率达到83.5%。这些都很简单,没有复杂的数据预处理或后处理。结果显示简单的微调和提示工程也能接近最先进的技术。
**总结:**采用问题相似性搜索、预设答案搜索、上下文检索和链式推理等方法,有效提升查询生成的性能。
四、评估和优化RAG系统的方法
John和Colin评估和优化RAG系统的方法,强调了数据质量的重要性,提出了评估RAG系统的多个维度:
-
模型测试分数:评估模型在特定任务上的表现。
-
检索相关性:衡量检索到的内容与问题的相关程度。
-
生成内容的准确性:评估生成答案的事实准确性。
-
检索内容的信号与噪声比:评估检索到的信息的有用性。
五、实战指导参考流程
优化LLM性能并不总是线性的,有时需要结合使用提示工程、RAG和微调。当你想提高语言模型(LM)的性能时,可以参考如下顺序调优。
-
提示工程技术:作为开始的好地方,技术投资小,能够快速迭代,验证解决问题的可行性。
-
RAG技术:私有化、数据安全考虑时使用,增加允许模型访问特定领域的内容,提升专业知识检索能力。
-
微调技术:还需进一步提升系统准确率,强化模型遵循一致指令的能力,提升特定领域的专业性使用。
-
预训练:成本最高,如果不是特殊要求一般不建议采用
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。