好久没写文章了,本文为 LangGPT 社区技术分享系列的第三篇文章,在上一篇讲了提示链 (Prompt Chain)后,很多朋友期待我谈谈微调等其他内容,因着各种原因一直没能落笔。最近看了 OpenAI 开发者大会 “How to Maximize LLM Performance” 主题分享,感觉很不错,推荐大家去看看原视频。这篇分享正好切合了之前自己的很多暴论,因此今儿蹭蹭官方背书,聊聊怎么搞好 AIGC 应用,也算是对上面分享的解读吧。

LLM 相关的概念很多,要做好一个 LLM 应用涉及的相关的技术也很多。许多朋友要么只知道提示工程,要么只知道微调,要么是即使了解但不知道各项技术的能力边界和相关关系,这导致许多朋友或企业在创建自己的 AIGC 应用时容易陷入困境。尤其是对生产级的应用而言,对 LLM 准确性和稳定性的要求都较高的情况下,如何构建可靠的 LLM 应用,或者说如何持续提高优化 LLM 的表现便成了一个亟待解决的问题。

LLM 的问题

LLM(大语言模型)的通用性很高,用大模型搞个演示用的 demo 应用很容易,但是遇到在生产环境中部署使用时,需要不断迭代和改进 LLM 应用的性能,许多问题就暴露出来了,包括:

大部分 LLM 应用优化实际上在做的事情就是在提升 LLM 在特定场景下的表现。说专业点是提升大模型的专用能力,商业上喜欢用的词儿叫垂直领域,提升大模型在垂直领域的表现。

大模型之战下半场:从通用到行业垂直,「向下」扎根: https://36kr.com/p/2565884745588867

为了解决这些问题,就需要进行 LLM 应用的优化。我们这里谈的 LLM 应用的优化主要是指让大模型工作的更好。

实践中发现优化 LLM 的性能很难,主要有下面的几个原因:

  1. 从通用信息中稳定的萃取出专用信息很难。也可以理解为从噪声中稳定的获取有用信息很难。
  2. 性能难以评估。大模型生成的内容的质量难以准确的进行定量和定性的评估。
  3. 问题分析不准和优化策略针对性不足。在大模型表现未达到预期时,不知道问题出现在哪,更不知如何着手优化,有哪些技术工具可以帮助解决问题。

本文主要就这几点问题探讨解决思路和框架。虽然说是优化 LLM 性能,但也不失为当下构建生产级 LLM 应用的最佳路径。

三种技术