目前已形成的大模型应用基本框架,大致可分为大模型层、知识库层、应用集成层(后台)、数据治理层和用户应用层(前台)等几个部分。在大模型应用中,大模型与知识库共同构成数据基础,类似于传统应用的底层数据库层,提供数据能力,这种结合了检索能力和生成能力的大模型应用通常被称为“检索增强式生成”(RAG:RetrievalAugmented Generation);用户应用层是通常所指的前台,提供各种环境的用户交互;而中间则是应用集成层,支持业务逻辑的各种 API 调用。大模型应用有一个独立的数据治理层,是因为数据的加工处理和交互在大模型应用中是一个动态伴随的过程,而不再是静态前置的状态条件,大模型应用中数据的增删改查有多个目的地和复杂的功能。
大模型层的主要功能是提供基本的知识和语言能力。此外,它还能够结合上下文学习调整参数、并借助新知识获取能力实现模型的逐步进化。然而,如果将大模型的能力直接应用,通常只能通过对话聊天的方式,这不仅在应用形式上存在一定的局限性和单调性,而且效果也不一定理想。大模型往往不具备丰富的领域知识,甚至对其所在单位的知识也可能不够了解。
向量知识库则被用来提供额外的知识支持。尽管优秀的大模型具有强大的知识泛化和推理能力,但在不具备特定领域知识的情况下,它们往往只能给出较为泛泛的回答,甚至在缺乏领域知识时倾向于借助“幻觉”来提供答案,这显然并不合适。相比于参数微调的高昂成本和效果的不确定性,向量知识库通常能取得更好的效果,它还能显著降低大模型产生“幻觉”的概率。
应用集成是指大模型应用开发的后台,相当于传统互联网应用开发中的三层架构模式中的中间件。传统应用针对不同的应用环境都有成熟标准的应用框架提供支持,如移动应用、云原生应用等。虽然大模型应用目前尚未形成成熟统一的架构规范,但已经出现了一些通用的做法和可供复用的框架。例如在 Langchain 和谷歌的 Colab 环境中,都提供了与不同大模型 API 对接的接口规范、不同向量知识库接入,以及不同向量化嵌入方式的选择等,能够帮助应用根据不同情况进行灵活调度分发和数据处理,以对接不同特点、能力或性价比的大模型。正在兴起的多模态和智能体应用,更是依赖于应用集成框架的能力。除了上述功能,应用集成层还需要负责应用的托管、版本迭代和管理、用户提问的核验、缓存、服务的扩展、负载均衡和事务处理等功能。
数据治理层提供各类数据获取和加工的需求。领域大模型应用有三种实现方案,其核心就是领域数据的不同应用:①应用于微调,使大模型能够适应特定任务或具有领域知识;②应用于对领域文本数据进行分块(chunk)并构建向量知识库,从而强化语义检索能力并为领域应用提供自然语言交互;③应用于上下文嵌入或提示词工程,帮助大模型与丰富的外部数据进行动态交互,进一步扩大大模型的应用范围,实现用户提问的智能处理并进行多轮交互等等。数据治理层是提供对数据进行获取、清洗、分块、转换、标注、归一、增强、存储和评价等能力的综合性模块,是实现大模型领域能力的关键。
用户应用层作为前台负责与用户交互。大模型应用的前台除了支持各类设备和交互方式之外,最特别的地方在于它本身就是一种交互方式的革命。它赋予了用户以自然语言方式与机器系统进行交互的能力,包括文本和语音,可以指令机器系统实现从回答问题到完成各类任务的操作,因此大模型应用本身就可以作为任何复杂系统或应用的前台。