LLM 三角原则:简化大型模型应用开发与模型管理
本文阐述了构建 LLM 应用的三角原则,涵盖标准操作程序(SOP)、工程集成、模型选择及上下文数据四大核心要素。通过认知建模制定 SOP,利用工作流和 Agents 进行工程集成,权衡模型性能与成本,并结合 RAG 等技术优化上下文,旨在帮助开发者建立健壮可靠的 LLM 本地应用框架,实现从概念验证到生产环境的平稳过渡。

本文阐述了构建 LLM 应用的三角原则,涵盖标准操作程序(SOP)、工程集成、模型选择及上下文数据四大核心要素。通过认知建模制定 SOP,利用工作流和 Agents 进行工程集成,权衡模型性能与成本,并结合 RAG 等技术优化上下文,旨在帮助开发者建立健壮可靠的 LLM 本地应用框架,实现从概念验证到生产环境的平稳过渡。

不少开发者在构建 LLM 应用时,往往误以为核心在于复杂的模型本身。实际上,10% 是复杂的模型,而 90% 是实验性的、以数据为驱动的工程作业。将 LLM 应用到实际产品中,不仅需要代码功底,更需要工程上的精磨细打。
LLM 三角原则是构建高效 LLM 本地应用的一套基本指南。它由'3+1'个基础组成(一范式三原则),适合任何团队实践。这套原则为开发者提供了清晰的框架,帮助打造出既健壮又可靠的 LLM 应用。

LLM 三角原则介绍了一个范式三大实用原则:模型、工程集成和上下文数据。通过标准操作程序(SOP)对这三部分进行精细调整,是打造高效强大 LLM 本地应用的秘诀。
标准操作程序(SOP) 类似于操作手册,详细记录每一步怎么做,确保工作质量一致。在构建 LLM 应用时,我们将模型视为新手,通过 SOP 指导其像专家一样完成任务。

'没有 SOP,再厉害的 LLM 也难以保持一贯的高质量。'
制定 SOP 前,需观察业务专家的工作方式,模仿他们的思考过程,并将每一步记录下来。将复杂任务分解成小步骤,有助于减轻认知负担。
例如,模拟数据分析工作流程时,可以通过访谈了解专家的具体步骤:
隐性认知过程形式多样,如'业务特定定义'。对于'畅销书'等术语,专家有明确定义,而一般人可能不清楚。绘制流程图有助于清晰展示包含条件选择和分支的复杂环节。

最终解决方案应严格按照 SOP 定义的步骤执行。在设计初期不必过度关注实现细节,可先对整个流程进行模拟。
工程集成是实施 SOP 并最大化模型效用的关键。我们需要思考哪些技术工具能帮助我们执行和完善 SOP。

主要涉及两种重要技术:工作流/链路和 Agents。
LLM 应用架构描述完成任务的各个流程。每个步骤独立承担特定任务,有些靠固定代码,有些用到 LLM(Agents)。
重新审视 SOP 时需考虑:
关键属性包括:

在 LLM 本地架构中,LLM Agents 是一个调用 LLM 的独立组件。每个 Agent 都是 LLM 的一个实例,其中 prompt 包含相应上下文。Agent 可以使用工具,也可以被递归调用。
一些 LLM Agents 可以利用'工具'——预先定义好的功能,如数学计算或网络搜索。当 Agents 需要使用某个工具时,它会明确指出所需的工具及其输入参数。
# 工具调用示例
func: calculate
arguments:
expression: "1 + 2"
我们需要区分两种代理:带有工具的代理(自主 Agent)和非自主代理。自主 Agent 拥有决定是否采取行动及其具体行动的权力;非自主代理只是简单地处理请求,由确定性代码执行具体动作。

随着增加 Agent 的自主性,决策能力增强,但潜在风险是降低对最终输出质量的控制。自主 Agent 难以调试且响应质量不稳定,通常不适合在生产环境中直接使用。
与其让 Agent 自由完成所有环节,不如在 SOP 中的特定区域限定它们的任务,特别是需要创造力和灵活性的环节。结合 AlphaCodium 的经验,将固定流程与不同功能的 Agent 相结合,可显著提升任务执行效果。

选用的模型是项目成功的关键因素。大模型如 GPT-4 或 Claude Opus 提供优质结果但成本高;较小模型成本低,在某些领域能达到预期效果。

并非所有的 LLM 都是相同的。要使模型与任务相匹配。
选择模型时需权衡:
如果手头没有标注数据,可先用更大模型收集数据,再通过少样本学习或微调提升性能,但需注意合规风险。
微调前需考虑:
LLMs 作为'上下文学习者'的能力已大大简化应用实现。建议只在必要时采用微调,或尽可能避免使用。对于特定任务(如生成结构化 JSON)或特定领域应用,微调可能更有效。
请注意,即使是最先进的模型,也需要依赖相关而且结构合理的上下文数据,才能充分发挥其潜力。
LLMs 是上下文学习的高手。只要提供相关任务的具体信息,LLM Agent 便能在不经过特殊训练的情况下完成任务。

构建有效上下文需在 prompt 中包含相关信息,通常采用两种类型:
# 带有附件上下文的嵌入上下文示例
prompt = f"""
你是{name}的得力助手,{name}在{company}担任{role}。
帮助我用{tone}语气回复附加的电子邮件。
始终以以下签名结尾:
{signature}
---
{email}
"""
少样本学习通过在 prompt 中加入准备好的示例,教会 LLMs 新技能。提供多种不同的示例,模型可以更好地理解各种复杂情况。动态少样本学习可根据特定输入选择最相关的示例。
检索增强生成(RAG)在 LLM 生成回答之前先查找相关文档,提供更多上下文信息。例如,聊天机器人利用 RAG 自动查找并提取相关的帮助台维基页面。
部署 RAG 时需关注:
提供信息给 Agent 时要把握度。过多无关信息会让模型不堪重负,造成混淆。提高上下文信息的相关性,可加入准备数据的步骤,如从文档中提取问题和答案,只向 Agent 提供这些答案。
'数据是 LLM 应用的核心驱动力。好的上下文数据能最大限度地发挥出它的潜力。'
LLM 三角原则提供了一个基础框架,帮助我们在开发产品时发挥 LLMs 的功能。这个框架基于三个主要的元素:模型、工程集成、上下文数据,以及一套详细的操作步骤(SOP)。


微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online