【导读】大型语言模型(LLMs)的应用探索如火如荼,但真正的创新应用却鲜有出现。本文深入探讨了如何将 LLMs 融入实际业务场景,以“Copilot Stack”来构建基于 LLMs 的应用。文章特别介绍了 Semantic Kernel 框架,它不仅支持多语言,还能与企业数据无缝结合,通过 Planner 功能实现任务步骤的智能划分。同时,还深入展望了 Semantic Kernel 在未来 AI Agent 框架中的角色,以及如何通过多框架结合实现更高效的智能体任务管理。可以预见,2024 年将成为 LLMs 应用爆发的一年。如何利用 Semantic Kernel,迎接 LLMs 应用的新时代,是开发者们当前所面临的关键命题。
在 2023 年,我们每个人都在大型语言模型中开始了探索之路。对于个人而言,有人从卖课开始制造焦虑,有人从卖 API 开始赚取第一桶金,也有人从各种 Copilot 中改变了自己的工作方式。对于国内大厂而言,则是进入了“百模大战”,甚至可以说没有发布过大模型的大厂就没有真正进入到 LLMs 领域。
虽然看上去热热闹闹,但很少有人提及应用。回看移动互联网时代,在短时间迸发出大量的创新应用不同,2023 年很少有基于 LLMs 的爆款应用。或者停留在大家应用场景的是,微软的 Microsoft 365 Copilot、GitHub Copilot 以及 Bing Chat 等应用及其复制品。可以说 2023 年大家在认识阶段,但到了 2024 年,我们有理由相信这是属于打造 LLMs 应用的一年。
图源:Bing AI
从 Copilot Stack 开始
在 2023 年 5 月的 Microsoft Build 开发者大会上,微软 CTO Kevin Scott 提出了 Copilot Stack 的概念,目标正是告诉大家在大模型时代下的 “MVC” 。
Copilot Stack
-
Model – 包括了我们的各种 LLMs。
在基于业务形态下,我们不仅有 Azure Open Service 或者 OpenAI,也可以拥有各种开源的在 Hugging Face 上的模型,也可以是企业自己内部的自建模型。这些模型结合不同的混合算力,构建了一个基于 LLMs 应用支撑的基础。
-
View – 即各种 Copilot 的应用的展现形态。
如我们熟悉的 Chat、RAG 插件或各种辅助工具。构建的形式可以是传统的工程项目,也可以是基于低代码工具,如 Copilot Studio 打造的 RAG 应用或插件。
-
Controller – 开启大模型魔法最重要的关键是我们的提示词。
通过提示词可以承上启下地工作。如何有效地管理好各种不同的提示词就是整个 Copilot Stack 的核心和重点。
在 Copilot Stack 的方法论加持下,对于架构师及传统开发者就有了一个清晰的思路,然而,我们还往往会面临这样几个问题:
-
如何融入到传统工程项目中?毕竟为原有的应用添加智慧是关键,而非重新做一个新的应用。
-
对于技术栈的兼容,在国内互联网更多是 Java 团队或者基于传统工业的 .NET 团队以及物联网相关的 Python 是否都有良好的框架支持?
-
对于企业提示词和传统代码结合是否有很好的支持?
-
是否可以对接不同的商业应用场景?
Semantic Kernel 出现
无可否认,现在市面上使用最多的是 LangChain,但基于上述几个问题都有缺失。让我们来看看 Semantic Kernel 吧!
Semantic Kernel 诞生于 2023 年 3 月,支持多语言(如 Java、.NET、Python 等),可以完整结合代码和提示词,通过连接器可以链接不同的商业应用场景。而且 Semantic Kernel 基于 Copilot Stack 而生, 这意味着它有很好的提示词组织管理能力,为企业级别的解决方案提供了更好的选择。
2023 年底,Semantic Kernel 的 .NET 版本正式发布了 1.0.1 版本(现在已经更新到 1.1.0),而其 Java 和 Python 也会陆续进入正式版本。并且支持 RAG 应用中的向量,以及多模型支持。
Semantic Kernel 最大的特点是 Planner,可以很方便对前端指令进行任务步骤划分,每个步骤都基于不同业务的 Prompt —— 在 Semantic Kernel 中称之为「Plugins」。我们可以将 Semantic Kernel 理解为是一个 LEGO 积木的底座,而每个业务的 Prompt 就是一个小小的组件,通过组件组合拼装完成不同的任务。
除了 Planner 外,Semantic Kernel 也支持 AI Agent 等 LLMs 应用中的新形态。可以说伴随着 LLMs 一起成长,也是 Copilot Stack 的最佳实践。
Semantic Kernel 加持下的 RAG 应用
在 LLMs 应用场景中,Copilot 应用是非常主流的。在企业级场景下,通过 Semantic Kernel 结合企业的结构化数据和非结构化数据可以快速打造属于企业的 RAG 应用。
我们知道企业有结构化和非结构化数据,对于非结构化数据,结合 Embedding 可以非常快速地完成 RAG 应用的开发。如下图所示:
非结构化数据
至于结构化数据,我们可以结合 LLMs 的代码生成能力来完成应用开发,如下图所示:
结构化数据
Semantic Kernel 能够很好地适应企业对于 AI 转型的需求,可以快速整合到传统工程应用上,对于企业是非常容易上手的。
Semantic Kernel 的未来
在众多框架加持下,基于 LLMs 应用的构建会越来越方便。那 Semantic Kernel 的未来在哪里?每天我们除了有新的模型、新的方法论外,也有很多新的应用开发框架出现。比如在微软,有很多团队基于 LLMs 开发了不少的框架,包括 Prompt flow(开源的 LLM 开发工具)、AutoGen(基于多智能体对话构建 LLM 应用),还为 LangChain 进行了优化等。但这些框架并不是取代谁,都是各司其职。有人说,2024 年 LLMs 应用属于 AI Agent(智能体),那我们顺着这个发展,我觉得 Semantic Kernel 就是这里的“中间件”角色,完成任务划分的工作。
基于 AI Agent 的智能体框架,比如 AutoGen 更像一个前端,可以接收目标指令,然后派工到不同功效的智能体。Semantic Kernel 和 LangChain 更像一个“中间件”去接管单个智能体的任务来完成步骤切分。每个步骤可以交到用 Prompt flow 所完成的工作来稳定和监控 LLMs 的输出,如下图所示,是一个完整的多框架结合应用场景的思考。
多框架结合应用场景架构
结语
2024 年来了,我们进入到 LLMs 应用爆发的时期。对于开发人员和开发团队都是一个很好的基础,希望有更多的开发人员能利用 Semantic Kernel 实现向智能化应用转型。