一文探秘LLM应用开发(27)-编排与集成(大模型时代应用特点及编排与集成框架概论-1)

内容安全与风控数据安全混合云

动手点关注

picture.image

干货不迷路

picture.image

本文旨在让无大模型开发背景的工程师或者技术爱好者无痛理解大语言模型应用开发的理论和主流工具,因此会先从与LLM应用开发相关的基础概念谈起,并不刻意追求极致的严谨和完备,而是从直觉和本质入手,结合笔者调研整理及消化理解,帮助大家能够更容易的理解LLM技术全貌,大家可以基于本文衍生展开,结合自己感兴趣的领域深入研究。若有不准确或者错误的地方也希望大家能够留言指正。

本文体系完整,内容丰富,由于内容比较多,分多次连载

第一部分 基础概念

1.机器学习场景类别

2.机器学习类型(LLM相关)

3.深度学习的兴起

4.基础模型

第二部分 应用挑战

1.问题定义与基本思路

2.基本流程与相关技术

1)Tokenization与Embbeding

2)向量数据库

3)finetune(微调)

4)模型部署与推理

5)prompt

6)编排与集成

7)其它(预训练等)

第三部分 场景案例

常用参考

第二部分 应用挑战

2.基本流程与相关技术

点此查看前面内容:

picture.image

4)编排与集成

经过前面的介绍,我们对大模型应用开发的通常涉及到的重要构成组件都有了介绍,然而这些零散的组件需要有一根”线“将它们串联起来,最终变成用户可以感受到的LLM应用。这里编排集成服务便起到了这样的“线“的作用,它作为粘合剂和应用骨架,在整个应用构成中起到了提纲挈领的作用。

在本章你将学习到:

1)相关理论和应用开发范式

2)Langchain框架介绍

3)LlamaIndex框架介绍

4)Semantic Kernel框架介绍

5) 技术展望

相关理论和应用开发范式

在本节中,我们关注两个问题,首先是编排集成框架在LLM应用中的定位,解决的痛点、核心价值及功能构成。第二,对于LLM应用来讲,它的开发范式和传统开发有何不同,好的编排框架是如何帮助开发者正确构建LLM应用的。

相关理论

定位

picture.image

过去的移动互联网时代,一个移动APP其功能特性以及核心依赖与其操作系统有一定关系,但关系不大,操作系统不再是关键约束,其投入成本和APP价值点都集中在APP本身,而到了大模型应用时代,核心的能力受限于大模型本身,当前呈现了类似“卷心菜”的应用结构,APP本身的形态价值萎缩、投入成本占比也急剧下降。这一现象足以引起广大广大开发者的关注,原来的应用开发惯性需要改变。而这一改变也使得过去充当“胶水”作用的编排框架获得了前所未有关注,从结构上看,它起到了呈上启下的重要作用,某种意义上讲,学习LLM应用开发就是在学习这些编排集成框架的使用方法。

picture.image

更有甚者,业内现在流行一个这样的发展推测,那就是会构建出以LLM为核心的新的操作系统,未来的LLM应用都可以运行在这样的操作系统上。这里LLM就是CPU,而大模型的上下文窗口就是内存,向量数据库等存储就是其硬盘,浏览器就是其网络。而在这里编排框架就可以看作是其总线和接口,它能有效的对接外部设备以及提供信息处理通道。它的设计好坏,直接决定了应用的处理的正确性和效率。更重要的是,它形成了一套标准,在这样的标准下,开发者可以采用一种模式构建应用,而无需关心具体的组件提供者,这样的解耦可加速应用的开发和更新过程,对认知本身也是一种减负。

解决的痛点

在前面的Prompt章节有介绍,LLM有Rag,Agent等应用模式,虽然核心在于Prompt的设计,然而,如何才能让它们从理论或者手工变成一个应用,是众多开发者的痛点。他们在开发过程中,通常面临如下挑战:

1)不知晓、不理解LLM的prompt的写作方法以及复杂范式的工程实现方法。通常一些高阶的Prompt技术通常有比较复杂的写作技巧和交互流程,普通开发者如果不深入了解,且不具备比较强的工程实现能力,是很难将论文中提到的模式落地的。即便是能够做到,这也对开发者的认知要求有比较高的要求,其开发的效率,和正确性也难以得到保证。

2)分散长尾的组件集成。在LLM应用开发过程中,存在着大量的构件,比如向量数据库,不同格式,不同模态的数据文件,不同的大模型等。开发者难以有精力做到全部掌握,并了解其中细节,而这样的工作又呈现着高频却又长尾的特点,成为不得不面对的低价值工作。

3)开发模式的差异化带来的维护困难。由于AI应用特有的组件繁多,流程链路漫长,角色众多的特点,很容易造成开发上的差异化,这就会给工程师带来认知上的负担,进而导致后续开发维护困难,问题难以排查处理的窘境。

4)大模型领域特有的高速迭代带来的工作负担和焦虑。近一年来,大模型技术日新月异,很多大模型和prompt工程以及相关组件都在快速迭代,如何能够快速跟进就变得具有挑战。

核心价值

经过上面的痛点分析,我们很直觉 地认为,需要有一个角色去处理这些问题,而作为“总线和接口”的编排集成框架就是充当这样的角色。因此,不难想到,其核心价值体现在如下几个方面:

1)LLM应用开发的最佳实践载体,它可以将目前最佳的应用范式封装在自己的框架中,开发者只需要使用即可,比如langchain中的各种chain实现。在这chain中,它不仅完成了对外部组件接口的定义,还预置了高质量的prompt以及与大模型的交互逻辑。这样做的好处就是这些框架可以极大降低编码过程中可能带来的错误和不一致,降低了开发者的门槛以及犯错概率。

2)由于有了总线的存在,对于外部想要接入的设备就不得不按照总线接口的设计标准来设计,对接,它很大程度上避免了底层组件的碎片化,提升了行业的标准,使得底层组件能够专注在核心能力的提高,而无需关注与其他设备的兼容性。另一方面,对于应用开发者也无需亲自对接这些设备,一一编写“设备驱动”,这对于开发者本身是非核心工作的减负,并且也不必再绑定具体设备,让开发者有更强的自主权。

3)有了编排集成框架,也就是给开发者提供了一个通用的开发板,其开发的方式有了明确的约束,就好比springboot在web领域发挥的作用一样,使得开发者具备了较强的迁移性,其知识积累本身也更有价值。

4)得益于独立的框架提供商和统一的社区生态效应,他们能够更快 地跟进业务技术的变化。开发者从跟进每一个底层供应商到仅关注编排框架本身即可,这显然可以降低很大的负担。由于分工的存在,这使得整个效率和总的成本负担得以降低。

功能构成

通过前面的介绍,不难分析对于一个编排集成框架应该具备哪些功能和能力。下面是最基本的功能列举(随着框架能力的不断发展功能远超下面):

1)数据对接

大模型应用通常涉及到数据对接,它们可能会用于RAG架构下构建知识库,也可能用于模型微调。总之,编排集成框架需要能够对接不同数据源(,如mysql,文件系统等),不同模态(如文本,表格,图片等)的数据,并能够对数据进行不同形式的加工处理,如文本拆分,embedding等。

2)模型对接

编排框架能够对接不同的模型,需要对齐不同模型的推理接口差异,提供统一的模型使用方法,比如能够从本地或者huggingface上下载模型。这类还包含着预置的必要的模型参数配置和调优适配。

3)存储 对接

由于受限于大模型的上下文窗口及模型本身知识的不足,这里的知识不足可能来自于两个方面,一是公域知识的新鲜度和完备度,二是私域知识在模型中不存在。这就需要向量数据库这样的存储支持,用来存放模型记忆或者是检索知识使用。编排集成框架需要能够对接这些存储的提供商,另外值得说明的是存储并不一定是向量数据库,这和知识的存在形式有关,比如llamaindex的某些索引,普通文本或者常见数据库也是可以作为存储的一部分使用。

4)工具对接

作为大模型能力的补充,工具尤为重要,它能够将自己不擅长的事情交给专业的工具去执行,这对于提升整个LLM应用的效果至关重要。因此,编排集成框架就需要能够支持对接常见的工具,如搜索,计算器等等,甚至提供工具箱或者开放的工具接口,供开发者基于统一标准自定义实现。

5)应用骨架

picture.image

应用骨架是编排框架的核心,它就像是总线的走向一样,决定了每个信号的处理过程。这里编排框架一般需要实现外部检索增强的数据链路,微调链路,以及应用执行流程。其中应用执行流程包含了各种Prompt技术的实现,让普通用户简单几行代码就能完成应用流程构建。其构建的易用性以及质量,决定了框架的好坏,以及功能范畴。比如llamaxindex就专注于RAG流程,而langchain就涉猎面更广,包含agent等应用骨架实现。

picture.image

总之,编排集成在LLM应用中的发挥着非常重要的作用,如A16Z发布的LLM应用架构图可以直观地看到,编排处在整个LLM应用开发中的中心位置,它的设计好坏直接决定了LLM应用的质量。

由于篇幅原因,在下一节中将介绍一个好的应用开发范式应该是怎么样的以及好的编排框架在设计上应该处理好的关键问题

点此阅读全书合集:

picture.image

特别祝贺llamaindex创始人jerry liu,simon suo入围福布斯30 Under 30:

picture.image

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
字节跳动 GPU Scale-up 互联技术白皮书
近日,字节跳动正式发布基于以太网极致优化的 GPU Scale-up 互联技术白皮书,推出 EthLink 的创新网络方案,旨在为 AI 集群提供低延迟、高带宽的高速互联传输,满足 AI 应用对 GPU 之间高效通信的需求。这一举措标志着字节跳动在 AI 基础设施领域的突破,有望推动通用人工智能(AGI)和大语言模型(LLM)的进一步发展。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论