一文探秘LLM应用开发(25)-Prompt(架构模式之Agent的现实挑战)

技术

动手点关注

picture.image

干货不迷路

picture.image

本文旨在让无大模型开发背景的工程师或者技术爱好者无痛理解大语言模型应用开发的理论和主流工具,因此会先从与LLM应用开发相关的基础概念谈起,并不刻意追求极致的严谨和完备,而是从直觉和本质入手,结合笔者调研整理及消化理解,帮助大家能够更容易的理解LLM技术全貌,大家可以基于本文衍生展开,结合自己感兴趣的领域深入研究。若有不准确或者错误的地方也希望大家能够留言指正。

本文体系完整,内容丰富,由于内容比较多,分多次连载

第一部分 基础概念

1.机器学习场景类别

2.机器学习类型(LLM相关)

3.深度学习的兴起

4.基础模型

第二部分 应用挑战

1.问题定义与基本思路

2.基本流程与相关技术

1)Tokenization与Embbeding

2)向量数据库

3)finetune(微调)

4)模型部署与推理

5)prompt

6)编排与集成

7)预训练

第三部分 场景案例

常用参考

第二部分 应用挑战

2.基本流程与相关技术

4)Prompt

在前面的内容里,我们提到过要使用模型完成下游任务,有两种方式,一种是通过收集标记样本针对不同的任务进行指令微调,另一种方式便是大模型特有的,可以通过将指令以对话的方式提供给模型,期待模型能够给我们返回预期的结果。相较于前者,后者具有更高的灵活性,使用成本也更低,因此,这一方式成了如今大语言模型区别于传统NLP模型的重要标志。

在本章你将学习到:

1)Prompt,In-Context-Learning,Prompt engineering等相关概念

2)如何写好一个Prompt及相关Prompt调试工具

3)基于Prompt催生的一些新的编程范式

Agent的面对的挑战

作为LLM的最原生的应用代表,Agent的广阔前景来自于大模型的能力,同时它的局限性也来自于大模型。Agent的实现方式高度与大模型LLM技术相关,而其能力表现高度取决于大模型本身的表现。从产品需求、技术和商业角度上看,Agent存在着以下挑战需要突破。

1)Agent的核心能力是对于非单步完成的目标任务进行分解和多步执行,然而当下受限于大模型的能力,目前来讲,真正落地于生产环境的典型方案还比较少,大多是概念性的展示,对于业务上的复杂的情况难以很好的满足。以客服Agent为例,普通演示只需要将某个单一简单策略描述统一在prompt中声明,整个处理过程均由GPT模型驱动即可完成。然而,在实际的客服场景中,整个客服流程非常复杂,涉及到到了任务的分发,执行,回溯,多项任务的来回切换等工作,通过定义prompt的纯大模型模式将整个流程图替换掉,这对于当下模型能力水平来讲是不现实的。因此,这也是目前企业级的大模型落地场景大多以解决点上的局部增强的RAG架构为主的原因。

2)Agent是一个技术概念,如何将其能力和达成的目标定义清楚也是一个非常难的事情。似乎什么都可以使用Agent解决,似乎又什么都不可以。在一个业务流程中,原来的用户和Agent之间是一个什么样的关系?是上下游协同还是一个团队辅助或替代,在整个业务生态中将扮演什么样的作用,这都是想把Agent引入到真实业务中,必须要回答的问题。在这些都比较模糊的情况下,做一个Agent的平台,批量试错验证价值结合点或许是一个方式。

3)由于Agent强依赖大模型,因此大模型的弊端会暴露在Agent应用上,在技术层面存在以下一些问题:

picture.image

首先,context的长度问题,它会直接影响Prompt的大小,这就使得对于复杂业务来讲,就不得不拆分Prompt,这会导致大模型在理解上的割裂,并且,像前面小结案例所示,每一次agent与大模型的交互都需要将前面的相关历史会话信息携带给大模型,这就导致Agent很难处理超长轮次的复杂任务,进而无法在真实的场景中应用。

其次,大模型本身的推理规划能力决定了后续任务解决的可能性,而现有模型很难像人在处理问题那样,能够遇到问题解决问题,并结合外部反馈适当调整思路探索解决,这就导致大模型在解决一些未知的复杂问题,或是外部环境复杂的情况下,agent的稳定性存在较大挑战。

再次,由于大模型独特的自然语言的输入输出,这对于通过代码构建其之上的应用来讲,比较的脆弱,很容易因为多次输出的一致性和格式差异导致构建其上的应用崩溃。最近openAI为了支持Agent的开发,也重点优化了这方面的能力。

另外,一个好的Agent,prompt非常重要,但是一个超长的、表现稳定的、corner case覆盖的prompt非常难以一次写出来,如何能够拆分编排和调试这些Prompt也成了一个关键技术命题。

最后,Agent是一个高度自动化的应用,然而它内部却非常脆弱和黑盒,如何能够更好的观测它,优化它也是一个非常有挑战的问题,这里,可观测性就成了一个很有潜力的技术方向。

4)商业角度看,Agent应用的投入产出比不尽如人意。从目前Agent的投入及产生价值来看,面临着比较大的挑战。我们知道LLM的训练和推理成本是相较于传统的AI及软件应用是明显偏高的,并且难以做到以前软件那种规模化后,边际成本趋近于零的模式。而Agent的特点就是通过频繁和大模型进行交互迭代,进而得到答案,而这里面最直接的token费用便是一个不小的开支,再加上产品和技术的不成熟,也会使得对它需要做出更多兜底备份的投入,而这样的投入往往会占据更大的成本比例。

picture.image

在当下,在实际的生产场景实施过程中,有一个渐进的思路,就是将LLM和传统编排手段(超自动化)相结合,把一个复杂的问题肢解为多个局部的问题,把确定域的长尾问题交给Agent去解决,而主体的解决计划和任务拆解交给开发者,让开发者基于编排框架来构建领域应用模版,这样不仅弥补了原有方案灵活度和泛化性上的问题,又能够避免当下大模型难以处理复杂业务问题规划和流程回溯的问题。最重要的是可以渐进式的改进现有系统,给新技术以充分的成长耐心。

总的来说,Agent目前具备比较明朗的前景,但是受限于产品、技术和商业层面的约束,导致其实际应用到生产环境中,还存在相当多的问题待解决。

未完待续。。。

在接下来内容中,将探讨Agent模式的相关框架。

合集目录:

第一部分 基础概念

一文探秘LLM应用开发(1)

第二部分 应用挑战

1.问题定义与基本思路

一文探秘LLM应用开发(2)

2 . 基本流程与相关技术

1)Tokenization与Embbeding

一文探密LLM应用开发(3)

2)向量数据库

一文探秘LLM应用开发(4)

3)微调

一文探秘LLM应用开发(5)-微调(背景与挑战)

一文探秘LLM应用开发(6)-微调(方案理论)

一文探秘LLM应用开发(7)-微调(工具实践)

4)模型部署与推理

一文探秘LLM应用开发(8)-模型部署与推理(DEMO验证)

一文探秘LLM应用开发(9)-模型部署与推理(模型适配优化之GPU面面观-1)

一文探秘LLM应用开发(10)-模型部署与推理(模型适配优化之GPU面面观-2)

一文探秘LLM应用开发(11)-模型部署与推理(模型大小与推理性能的关系)

一文探秘LLM应用开发(12)-模型部署与推理(大模型相关参数计算及性能分析)

一文探秘LLM应用开发(13)-模型部署与推理(优化理论)

一文探秘LLM应用开发(14)-模型部署与推理(技术架构)

一文探秘LLM应用开发(15)-模型部署与推理(框架工具-推理执行引擎(HF pipeline))

一文探秘LLM应用开发(16)-模型部署与推理(框架工具-TGI,vLLM,TensorRT-LLM,DS-MII)

一文探秘LLM应用开发(17)-模型部署与推理(框架工具-ggml、mlc-llm、ollama)

一文探秘LLM应用开发(18)-模型部署与推理(框架工具-Triton Server、RayLLM、OpenLLM)

一文探秘LLM应用开发(19)-模型部署与推理(FastChat、OpenChat、HuggingChat、GPT4ALL)

5)Prompt

一文探秘LLM应用开发(20)-Prompt(相关概念)

一文探秘LLM应用开发(21)-Prompt(提示工程技术、重要性与挑战)

一文探秘LLM应用开发(21)-Prompt(编写技巧)

一文探秘LLM应用开发(23)-Prompt(相关工具)

一文探秘LLM应用开发(24)-Prompt(架构模式Agent)

0
0
0
0
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论