在首席执行官萨蒂亚·纳德拉(Satya Nadella)的支持下,微软似乎正在迅速转变为一家以人工智能为中心的公司。最近微软的众多产品线都采用GPT-4加持,从Microsoft 365等商业产品到“新必应”搜索引擎,再到低代码/无代码Power Platform等面向开发的产品,包括软件开发组件Power Apps[1]。
非常重要的一点是这些产品都是使用.NET 构建的, 这些项目可以快速的使用LLM 加持,我们写程序的同学肯定都会想微软是怎么做的,正好微软在3月17日在发布了一篇博客文章: [Hello, Semantic Kernel!](Hello, Semantic Kernel! | Semantic Kernel)[2], 在这篇文章中微软已经开源了一个内部孵化项目,Github的仓库:GitHub - microsoft/semantic-kernel: Integrate cutting-edge LLM technology quickly and easily into your apps [3],该项目可以帮助开发人员快速轻松地将尖端的人工智能模型集成到他们的应用程序中。这使您能够在应用中构建新体验,从而为用户带来无与伦比的工作效率:例如总结冗长的聊天交流,标记通过Microsoft Graph添加到待办事项列表中的重要“下一步”,或者计划一个完整的假期,而不仅仅是预订飞机上的座位。
语义内核(简称SK)是一种创新的轻量级软件开发工具包(SDK),旨在将人工智能(AI)大型语言模型(LLM)与传统编程语言集成。借助 SK,开发人员可以轻松地为其应用程序注入复杂的技能,例如提示链接、摘要、递归推理、基于嵌入的内存等。SK 支持提示模板[4]、函数链、矢量化内存[5]和开箱即用的智能规划[6]功能。
SK旨在支持和封装来自最新 AI 研究的多种设计模式,以便开发人员可以为他们的应用程序注入复杂的技能[7],如提示[7]链接、递归推理、总结、zero/few-shot 学习、上下文记忆、长期记忆、嵌入[8]、语义索引、 规划,以及访问外部知识库以及您自己的数据。
SK最初的目标是 C#开发人员,但也为数据科学家的最爱的 Python提供了预览支持,而微软也根据从社区反馈中学到的内容,正在考虑支持[9]其他语言,包括自己的TypeScript。
微软将SK的主要优势列为:
- 快速集成:SK旨在嵌入任何类型的应用程序中,使您可以轻松测试和运行LLM AI。
- 扩展:借助 SK,您可以连接外部数据源和服务,使其应用程序能够将自然语言处理与实时信息结合使用。
- 更好的提示:SK的模板化提示可让您使用有用的抽象和机制快速设计语义函数,以释放LLM AI的潜力。
- 新奇但熟悉:传统编程语言代码始终可供您作为一流的合作伙伴,帮助您快速完成工程设计,可以两全其美。
为了帮助开发人员入门,微软提供了一个免费的LinkedIn学习课程[10]。它的描述是:“人工智能的未来终于来了,它改变了软件开发人员的游戏规则。探索语义内核 (SK) 的可能性,这是 AI 驱动的开发的新面孔,封装在轻量级、易于使用的多层软件开发工具包中。使用SK快速启动和运行,SK是Microsoft AI生态系统的最新成员,使开发人员能够轻松地将LLM AI功能集成到他们的应用程序中。
除了LinkedIn学习课程之外,Microsoft 还解释了开发人员如何克隆存储库并尝试以下示例:
- 简单的聊天摘要[11]:使用现成的技能,并轻松地将这些技能应用到你的应用中。
- 图书创作者[12]:使用规划师解构复杂的目标,并在应用中设想使用规划师。
- 身份验证和 API[13]:使用基本连接器模式进行身份验证并连接到 API,并设想将外部数据集成到应用的 LLM AI 中。
- Github仓库问答[14]:使用嵌入和内存来存储最近的数据,并允许您对其进行查询。
在运行示例和笔记本之前,您可能需要满足一些软件要求:
- Azure Functions 核心工具[15],用于将内核作为本地 API 运行,这是 Web 应用所需的。
- 需要OpenAI API[16] 密钥或 Azure OpenAI 服务密钥[17]才能开始使用。
- 用于安装 Web 应用的依赖项的Yarn[18]。
- SK 支持 .NET Standard 2.1,建议使用 .NET 6+。但是,仓库中的某些示例需要 .NET 7[19] 和 VS Code Polyglot 扩展[20]才能运行笔记本
SK 入门
下面是如何从 C# 控制台应用使用语义内核的快速示例,这里我们使用VS Code Polyglot 来做
相关链接:
- [1]Power Apps:https://powerapps.microsoft.com/zh-cn/
- [2] Hello, Semantic Kernel!: https://devblogs.microsoft.com/semantic-kernel/hello-world/
- [3] Github的仓库:https://github.com/microsoft/semantic-kernel
- [4]提示模板: https://github.com/microsoft/semantic-kernel/blob/main/docs/PROMPT_TEMPLATE_LANGUAGE.md
- [5] 矢量化内存: https://github.com/microsoft/semantic-kernel/blob/main/docs/EMBEDDINGS.md
- [6] 智能规划 https://github.com/microsoft/semantic-kernel/blob/main/docs/PLANNER.md
- [7] 技能: https://github.com/microsoft/semantic-kernel/blob/main/docs/SKILLS.md
- [8] 嵌入: https://github.com/microsoft/semantic-kernel/blob/main/docs/EMBEDDINGS.md
- [9] 支持其他语言: https://aka.ms/sk/python
- [10] LinkedIn学习课程 https://www.linkedin.com/learning/introducing-semantic-kernel-building-ai-based-apps/introducing-semantic-kernel
- [11] 简单的聊天摘要 https://github.com/microsoft/semantic-kernel/blob/main/samples/apps/chat-summary-webapp-react/README.md
- [12] 图书创作者 https://github.com/microsoft/semantic-kernel/blob/main/samples/apps/book-creator-webapp-react/README.md
- [13] 身份验证和 API https://github.com/microsoft/semantic-kernel/blob/main/samples/apps/auth-api-webapp-react/README.md
- [14] Github仓库问答 https://github.com/microsoft/semantic-kernel/blob/main/samples/apps/github-qna-webapp-react/README.md
- [15] Azure Functions 核心工具 https://learn.microsoft.com/azure/azure-functions/functions-run-local
- [16] OpenAI API https://openai.com/api/
- [17] Azure OpenAI 服务密钥 https://learn.microsoft.com/azure/cognitive-services/openai/quickstart?pivots=rest-api
- [18] Yarn https://yarnpkg.com/getting-started/install
- [19] .NET 7 https://dotnet.microsoft.com/download
- [20] Polyglot 扩展 https://www.cnblogs.com/shanyou/p/17247652.html