内容提要
本文介绍了大语言模型(LLMs)的抽象框架和交互方式,提出了两种思路体系,帮助理解和分类大语言模型抽象的多种方法与理念。文章详细介绍了语言模型系统接口模型(LMSI)和LM抽象家族分类两种组织思路体系,并讨论了编程和交互框架的不同层次。此外,还介绍了受控生成、模式驱动生成、编译大语言模型程序、智能提示工具以及开放式智能体与多智能体管道等五大类别。最后,总结了各个框架的实用工具、可靠性、性能、可移植性和可扩展性等特点。
延伸解读
分层模型:理解LLM框架的坐标系
文章借鉴OSI模型提出七层LMSI体系,从直接操作模型参数的神经网络层到面向终端用户的用户层。这一框架的价值在于为开发者提供清晰的定位工具:当选择或设计LLM框架时,可以明确其抽象层次,避免功能重叠或关注点混淆。例如,受控生成库通常覆盖提示约束层,而智能体框架则涉及控制层和应用层。这种分层思维有助于团队在技术选型时评估框架的覆盖范围与集成成本。
五大类别:从约束输出到自主智能体
文章将LLM抽象框架归纳为受控生成、模式驱动生成、编译LLM程序、智能提示工具和开放式智能体五大类,抽象程度逐级提升。受控生成通过模板和约束确保输出可靠性,适合需要严格格式的场景;模式驱动生成利用Pydantic等模型定义输出结构,更易融入现有编程逻辑;编译型框架如DSPy将提示策略与签名分离,支持自动化优化;智能提示工具提供预制模块但依赖手动提示工程;智能体框架则追求最少人工干预的复杂任务执行。读者可根据项目对可靠性、灵活性和开发成本的需求选择合适类别。
编译与提示工程:两种优化路径的权衡
DSPy代表的编译型方法将自然语言签名与查询策略解耦,通过teleprompter自动选择指令、示例甚至微调超参数,从而优化提示链。相比之下,LangChain等智能提示工具仍以手动提示工程为核心,提供模板、解析器和重试机制等辅助工具。编译型方法能减少人工调优并提升性能,但需要理解底层原理和搭建训练流程;提示工具更易上手且生态丰富,但优化依赖开发者经验。文章指出,对于需要大量LLM交互或追求性能的项目,编译型框架可能更合适,而简单项目或快速原型则可能倾向后者。
评估框架的五个维度
文章在结论部分提出从实用工具与生态、可靠性、性能、可移植性和可扩展性五个维度评估LLM框架。可靠性关注框架如何确保输出可信,例如通过输出约束或验证机制;性能涉及成本、速度和质量;可移植性衡量集成到现有工作流的难易;可扩展性则考察功能扩展的便利性。这些维度帮助开发者在众多框架中做出知情选择,而非仅凭流行度。例如,受控生成框架在可靠性上表现突出,但可移植性可能因依赖特定模型解码接口而受限。
Q&A
什么是语言模型系统接口模型(LMSI)?它包含哪些层次?
LMSI 是一个受 OSI 模型启发而提出的七层抽象体系,用于分类和层次化大语言模型的编程与交互框架。从底层到高层依次为:神经网络层、提示层、提示约束层、控制层、优化层、应用层和用户层。
大语言模型框架可以分为哪五大类别?
五大类别包括:受控生成、模式驱动生成、编译大语言模型程序、智能提示工具、开放式智能体与多智能体管道。这些类别大致按照抽象层次从低到高排列。
受控生成框架(如Guidance、LMQL)是如何工作的?
受控生成框架通过模板引擎设计带有“填空”部分的提示,并允许对输出施加限制(如正则表达式、特定结构、长度控制等)。LMQL 利用解码部分的 Token 掩码来优化搜索空间,而 Outlines 则通过调整 Token 概率来引导生成。这些框架通常涵盖从神经网络层到提示约束层的范围。
模式驱动生成与受控生成有何不同?
模式驱动生成通过预设的模式(如 JSON 或 Pydantic 模型)来限制语言模型的输出,更易于融入现有编程逻辑,但对生成内容的控制相对有限。而受控生成需要用户明确指定输出结构和内容限制,控制更精细但集成更复杂。
DSPy 的编译大语言模型程序有什么特点?
DSPy 允许用户通过自然语言签名声明任务,并将签名与查询策略分离。它提供高级模块(如思维链、程序式思维)来应用不同的提示策略,并支持通过“teleprompter”编译优化流程,自动选择指令、演示和超参数,从而提升性能。
智能提示工具(如LangChain)和开放式智能体框架(如AutoGPT)的主要区别是什么?
智能提示工具提供预制模块和提示工程工具,侧重于增强与LLM的交互模式,但核心仍是手动提示工程。开放式智能体框架则更专注于创建几乎无需人工干预的智能体系统,内置工具和固定提示,能自动执行复杂任务,但扩展性和集成性相对较弱。