分享
提示工程、RAG 和微调,如何让 LLM 应用性能登峰造极
输入“/”快速插入内容
3️⃣
提示工程、RAG 和微调,如何让 LLM 应用性能登峰造极
用户6100
用户6100
2024年5月15日修改
•
作者:云中江树
•
微信:zephyr_ai
•
社区:langgpt.ai
本文为 LangGPT 社区技术分享系列的第三篇文章,在上一篇讲了提示链 (Prompt Chain)后,很多朋友期待我谈谈微调等其他内容,因着各种原因一直没能落笔。最近看了 OpenAI 开发者大会 “How to Maximize LLM Performance” 主题分享,感觉很不错,推荐大家去看看原视频。这篇分享正好切合了之前自己的很多暴论,因此今儿蹭蹭官方背书,聊聊怎么搞好 AIGC 应用,也算是对上面分享的解读吧。
LLM 相关的概念很多,要做好一个 LLM 应用涉及的相关的技术也很多。许多朋友要么只知道提示工程,要么只知道微调,要么是即使了解但不知道各项技术的能力边界和相关关系,这导致许多朋友或企业在创建自己的 AIGC 应用时容易陷入困境。尤其是对生产级的应用而言,对 LLM 准确性和稳定性的要求都较高的情况下,如何构建可靠的 LLM 应用,或者说如何持续提高优化 LLM 的表现便成了一个亟待解决的问题。
微信原文链接:
https://mp.weixin.qq.com/s/Kr16ub_FN6pTF6acs-e6MA
LLM 的问题
LLM(大语言模型)的通用性很高,用大模型搞个演示用的 demo 应用很容易,但是遇到在生产环境中部署使用时,需要不断迭代和改进 LLM 应用的性能,许多问题就暴露出来了,包括:
•
使用成本较高
•
垂直能力不足
•
性能表现不稳定
•
难以优化
大部分 LLM 应用优化实际上在做的事情就是在提升 LLM 在特定场景下的表现。说专业点是提升大模型的专用能力,商业上喜欢用的词儿叫垂直领域,提升大模型在垂直领域的表现。
大模型之战下半场:从通用到行业垂直,「向下」扎根:
https://36kr.com/p/2565884745588867
为了解决这些问题,就需要进行 LLM 应用的优化。我们这里谈的 LLM 应用的优化主要是指让大模型工作的更好。
实践中发现优化 LLM 的性能很难,主要有下面的几个原因:
1.
从通用信息中稳定的萃取出专用信息很难。也可以理解为从噪声中稳定的获取有用信息很难。
2.
性能难以评估。大模型生成的内容的质量难以准确的进行定量和定性的评估。
3.
问题分析不准和优化策略针对性不足。在大模型表现未达到预期时,不知道问题出现在哪,更不知如何着手优化,有哪些技术工具可以帮助解决问题。
本文主要就这几点问题探讨解决思路和框架。虽然说是优化 LLM 性能,但也不失为当下构建生产级 LLM 应用的最佳路径。
三种技术
总的来说,优化 LLM 的性能主要用到三种技术:
•
prompt engineering 提示工程,说人话:调提示词
•
RAG (Retrieval-Augmented Generation) 基于检索增强的生成,说人话:外挂知识库,检索+生成
•
fine-tuning 微调,说人话:浅浅的训练一下模型
Prompt 工程
Prompt engineering 这个事儿大家应该都比较熟悉了,现在相关的教程铺天盖地,我们所提出的结构化提示词也是在构建生产级应用起步阶段的一个好的抓手,在此不再赘述。
推荐阅读:
OpenAI 官方提示工程文档:
https://platform.openai.com/docs/guides/prompt-engineering/prompt-engineering
Claude 官方提示工程文档:
https://docs.anthropic.com/claude/docs/introduction-to-prompt-design
LangGPT 结构化提示词:
https://www.langgpt.ai/
RAG
RAG 概括起来就是知识检索+内容生成。
这么说太抽象,可以理解为大模型的开卷考试,既然是开卷考试,那么谁带的书和资料内容更全,
谁翻书翻的更快更准,谁开卷考试的结果就往往更好。
下面 RAG的主要组成,依次是数据提取——embedding(向量化)——创建索引——检索——自动排序(Rerank)——LLM归纳生成。当然这里少了使用环节,我们暂时先忽略。
大家知道,开卷考试时,往往大家的参考资料都差不多,在有限的考试时间内如何又快又准的锁定问题在书上的相关内容更为重要。RAG 做的好不好也是如此,核心就看能不能将内容检索的又快又准。如果抄错了书上(知识库)内容,往往大模型给出的答案也南辕北辙。
推荐阅读:
大模型主流应用RAG的介绍——从架构到技术细节:
https://luxiangdong.com/2023/09/25/ragone/
高级 RAG 技术:图解概览 [译]:
https://baoyu.io/translations/rag/advanced-rag-techniques-an-illustrated-overview
Fine-tuning 微调