AIGC创业大盘点系列之五:大语言模型系统的技术架构分析
系列:
我们上一期聊了AIGC的产品,这一期来探讨一下大语言模型应用的架构,是应用。
这一期依旧比较主观,主要是我们真正构建大语言模型实战中遇到的一些问题与思考
一、技术怎么落地
对于我们创业者来说,面对这样一次巨大的技术革命,大家无疑都是激动的。
刚刚开始,我们会觉得AI很酷,然后觉得大语言模型太聪明了,太酷了,什么都能做
大家有了很多幻想,甚至觉得这一次,AI真的能取代人类的工作。
然后,当我们真正开始研究大语言模型,就会发现可能并不如想象的好用,
为了方便,我们对比一下2009年移动互联网的那一波,
当时如果你想做一个,从0开始学,2到3个月就可以上手,然后就能出活或者接商单了。
但是,现在怎么把这些看上去花里胡哨的技术落地成能够赚钱的产品呢?怎么才能搞出一个可以运行的东西呢?
现在大语言模型应用的技术框架还不太清晰。
请注意,这里说的是应用的技术框架,不是大语言本身的框架。
简单说,就是,如果我真的想创建一个能够应对千万人访问的大语言应用,我应该如何去构建这个系统?
或者说,如果我需要对客户提供的资料实现99%准确度的回答,我应该如何去构建这个系统?
二、大语言模型技术能力范围
可能首先我们要明白的是:这个新技术到底能干嘛?
之前,我们曾经专门讨论过,大语言模型的特点在于:
对自然语言的理解意味着改变了系统与人类的交互方式,
泛化的,无需编程即可完成任务的能力。有自主的推理能力,意味着一定程度的智力
但是同样,大语言模型有着非常明显的弱点。
系统的本质,无非是数据与逻辑,整个系统可以简化为:
从最早的信息系统,到PC时代,互联网时代,移动互联网时代,甚至后来的VR和元宇宙时代,这个思维其实一直都没有变过。
但是,到了AI时代,好像都不一样了,大语言模型的功能与逻辑非常不同。
对了,如果大家希望了解大语言系统的基本使用方法,建议学习一下几个文档或者课程
https://platform.openai.com/docs/introduction
https://learn.deeplearning.ai/chatgpt-prompt-eng/lesson/1/introduction
https://learn.deeplearning.ai/chatgpt-building-system/lesson/1/introduction
简单说,大语言模型一旦完成训练,会出现:
除了微调对模型层面的调整这种之外,大语言模型唯一的输入方式几乎就是提示词(Prompt)
以对话为例,你需要将历史的对话信息在模型外保存下来,然后在每次对话中,以提示词的方式输入给大语言模型。
而且,你几乎没办法控制大语言模型内部的逻辑,你无法通过设定配置文件或者数据库来改变流程...
因此,你没办法用传统的方式来设计大语言模型的应用。
五:如何处理逻辑
那么,如何来设计一个大语言模型的应用?
我们想讨论一个很主要的区别:我们把业务的主要逻辑放在什么地方?
或者说,在大语言模型的应用中,大语言模型本身到底应该处于什么角色?
内逻辑:
内逻辑的核心是:将业务的主逻辑放在大模型之内,依赖大语言模型的回答进行处理
例如在课程【使用ChatGPT的API来创建系统】中就包括这样的案例:要求大语言模型以返回Json或XML,然后解析这个Json/XML来进行后续处理。这样的设计,是将大语言模型放置在整个系统的核心,让整个系统根据大语言模型的反馈来行动。
这种结构更【大模型】一些,可能会有非常智能的结果。
但是,正如前面所说,将逻辑输入到大语言模型并不是容易的事情,可能需要成本很高时间很长的微调。
外逻辑:
外逻辑的核心是:将业务的主逻辑放在大模型之外,将大语言模型更类似于一个I/O模块来使用。
按照传统业务的方式来处理主逻辑:
将数据以数据库/文件等传统方式存储
按照传统方式构建业务逻辑,至于大语言模型之外,将整理好的逻辑与数据传入大语言模型中
解析大语言模型的输出结果,作为下个工作流的输入
在这里,我们必须提到一个概念:AI代理(AIAGENT)。
你可以使用Langchain构建一个典型的AI代理。
构建方式:
如何构建一个完整的大语言模型应用
方案 | 优点 | 缺点 |
微调大语言模型 将数据灌入大模型中 |
|
|
Langchain+大语言模型 |
|
|
六、涉及的知识体系
在线大语言模型:
离线大语言模型:
后面,我可能会一个个来讨论要使用的技术与软件。