大量应用“GPT化”,开源大模型AI应用开发框架发布


大型语言模型(LLM)的出现,让我们看到了AI在自然语言处理方面的潜力。它涌现出来的创造力和思维能力令人叹为观止,并在新一代人机交互领域释放了大量的想象空间。

目前,决策者、产品负责人和开发者都在抢滩应用的「GPT化」。在微软,面向开发者的新一代开源大语言模型应用开发框架应时而生。

01

什么是大型语言模型

大型语言模型(LLM)是指可以从大量数据中生成自然语言文本的AI模型。它使用深度神经网络,从数十亿或数万亿个单词中学习,能够生成任何主题或领域的文本。它可以执行各种自然语言任务,如分类、总结、翻译、生成和对话。

大型语言模型开发建立在4个核心思想上:模型Models、提示词Prompts、令牌Tokens、嵌入Embeddings。

01

模型Models

模型是指经过训练和微调的LLMAI的特定实例或版本,例如或GPT-4,它们已经在大量的文本或代码(针对Codex模型)上进行了训练,并可以通过API或平台进行访问和使用。OpenAI和AzureOpenAI提供了各种模型,可以通过参数或选项进行定制和控制,并可应用于不同领域和任务。

02

提示词Prompts

提示词是用户或程序向LLMAI提供的输入或查询,以引发模型的特定响应。提示可以是自然语言句子或问题,也可以是代码片段或命令,或者是任何文本或代码的组合,具体取决于领域和任务。提示也可以嵌套或链接在一起,这意味着一个提示的输出可以作为另一个提示的输入,从而创建与模型更为复杂和动态的交互。

创造性地设计LLMAI提示词是一个新兴的领域,被称为「提示设计」或「提示工程」。这涉及到制定有效、高效提示的过程,以引发LLMAI模型所需的响应。主要的挑战包括选择正确的词语、短语、符号和格式,以指导模型生成高质量和相关性强的文本。人们还可以尝试不同的参数和设置,以影响模型的行为和性能,例如温度、top-k、top-p、penalty。

03

令牌Tokens

令牌是LLMAI用于处理和生成语言的文本或代码的基本单位,是模型的语言构建块。根据选择的分词方法或方案,令牌可以是单词、字符、子词或符号、代码,这取决于模型的类型和大小。令牌被赋予数字值或标识符,并按序列或向量排列,最终被输入模型或进行输出。

令牌化是将输入和输出文本分割成较小的单位,以便LLMAI模型处理的过程。分词可以帮助模型处理不同的语言、词汇和格式,并减少计算和存储成本。分词还可以通过影响令牌的含义和上下文来影响生成的文本的质量和多样性。分词可以使用不同的方法进行,例如基于规则、统计或神经网络,这取决于文本的复杂性和变异性。

04

嵌入Embeddings

嵌入是令牌(如句子、段落或文档)在高维向量空间中的表示或编码,其中每个维度对应于语言的一个学习特征或属性。嵌入是模型捕捉和存储语言的含义和关系的方式,也是模型比较和对比不同令牌或语言单位的方式。对于模型来说,嵌入是离散和连续、符号和数字两个方面之间的桥梁。

嵌入是表示模型处理和生成的令牌的含义和上下文的数字向量或数组。嵌入是从模型的参数或权重派生出来的,并用于对输入和输出文本进行编码和解码。嵌入可以帮助模型理解令牌之间的语义和句法关系,并生成更相关和连贯的文本。嵌入还可以使模型处理多模态任务,例如图像和代码生成,通过将不同类型的数据转换为共同的表示形式。嵌入是GPT模型使用的Transformer架构的重要组成部分,其大小和维度取决于模型和任务的不同。

02

SemanticKernel

新一代开源大语言模型应用开发框架

SemanticKernel(SK)是一种轻量级的软件开发工具包(SDK),可将人工智能大型语言模型(LLM)与传统编程语言集成。SK可扩展的编程模型将自然语言语义函数、传统本机本地函数和基于嵌入式记忆的技术相结合,从而为应用程序增加价值并开启新的潜力。

SK支持开箱即用的提示词模板、函数链式编程、向量化内存和智能计划能力。


SemanticKernel能够支持和封装最新的人工智能研究中的多种设计模式,使开发人员可以将复杂技能(如提示链式编程、递归推理、摘要生成、零/少样本学习、上下文记忆、长期记忆、嵌入式技术、语义索引、计划和访问外部知识库以及自己的数据)注入到他们的应用程序中。

使用SK,开发人员可以更快地构建人工智能应用程序,同时还可以目睹SDK的构建过程。SK已经开源发布,以便更多先锋开发人员加入我们,共同塑造计算历史上里程碑时刻的未来。

SK能够灵活地将大语言模型集成到现有应用程序中。使用SK,客户可以更轻松地加速创新上市时间,并在长期运行中实现可靠性和性能管理。

随着它们越来越能够理解复杂意图,大语言模型正在推动更加「目标导向」的问题解决方法。因此,SK被创建时就以ASK为出发点。ASK通过内核的编排能力驱动到动态通知的结果。从用户的提问到获得想要的结果,可以表示为一系列连接部件的流程:


03

SemanticKernel的相关组件

01

kernel

在SemanticKernel(SK)中,内核(kernel)是用户提问的协调器。内核利用其可用的技能、记忆和连接器来实现用户期望的目标。内核的关键特征有助于加快开发速度,包括:

◉技能:将最有用的提示打包成完全可重用的组件

◉混合开发:流畅地将AI提示与传统本地代码混合使用

◉协调:通过完全控制来管理复杂的LLMAI提示

◉未来可靠性:使用多个LLMAI模型和配置来实现特定目标


内核鼓励「功能组合」,这使得开发人员可以将技能的输入和输出组合成单个流水线。

02

Planner

Planner从用户ASK提供的目标开始反向工作。


我们称这种方法为「面向目标的人工智能」,这让我们想起了早期人工智能研究人员渴望计算机能够击败世界棋王的时代。这个宏伟的目标最终被实现了,但由于新的LLMAI模型具有提供实现几乎任何目标的逐步指导的非凡能力,当合适的技能可用时,实现任何目标都变得可行。

由于Planner可以访问预定义的预制技能库和/或动态定义的技能集,它能够自信地满足ASK的需求。此外,Planner利用记忆最佳地定位ASK的上下文、调用连接器调用API并利用其它外部能力。

03

Skills

Skills是指一种专业领域,可作为单个函数或与该技能相关的一组函数提供给内核使用。SKSkills的设计优先考虑了开发人员的最大灵活性,使其既轻量化又可扩展。

04

Memories

Memories是为ASK提供更广泛上下文的强大方式。在历史上,我们一直将Memories视为计算机工作的核心组件:就像您笔记本电脑中的RAM一样。Memories是使计算与手头任务相关联的因素。

我们用以下三种方式之一访问Memories以输入SK,其中第三种方式最有趣:

◉常规键值对:就像您在shell中设置环境变量一样,使用SK时也可以这样做。查找是「常规」的,因为它是一个键和您的查询之间的一对一匹配。

◉常规本地存储:当您将信息保存到文件中时,可以使用文件名检索它。当您需要存储大量信息时,最好将其保存在磁盘上。

◉语义记忆搜索:您还可以将文本信息表示为长的数字向量,称为「嵌入」。这使您可以执行「语义」搜索,将查询与含义相匹配。

04

Connectors

Connectors使应用能够连接到外部API和其它可以想象的内容,从技能外部获取数据。通过将自定义技能与一组自定义连接器相结合,开发人员可以构建完全利用实时数据的大模型智能应用程序功能,将其打造成完全可重用的「AI就绪」组件,以添加到现有的所有项目中。

微软新一代开源大语言模型应用开发框架将为企业应用「GPT化」释放无限的想象空间。行动起来吧,如需进一步了解如何将此框架在企业内部落地,请联系您的微软客户经理,申请GPTAppInnovationInADayWorkshop,由专家为您提供进一步的指导。


免责声明:本文章如果文章侵权,请联系我们处理,本站仅提供信息存储空间服务如因作品内容、版权和其他问题请于本站联系