ChatGPT 的出现让大模型再一次成为业界的关注热点,然而,并不是每个组织都要去训练及生成大模型的,而且各个组织的技术积累和计算资源也不太允许这样去做 。更多的时候, 我们还是基于大模型开发业务应用 。所谓智能原生(AI Native),往往是指那些没有大模型就无法成立的应用,那是一些新的业务机会和挑战 。很多时候,我们还只是Applied AI,即通过AI 尤其是大模型为应用赋能 。
不论是AI 原生还是AI 赋能的应用 , 都会面临如何构建基于大模型APP 的问题,基于大模型的App 在系统架构和开发方式上有什么不同呢?
1. 试图理解LLM 的能力边界AI 并不神秘,也不存在迷信 。应用任何一种技术都应该了解它的能力边界,不但知道它能干什么,还要知道它不能干什么,或者至少要知道这种技术当前的局限是什么 。
1.1 LLM 的基本能力到目前为止,大模型的主要能力如下:
使用LLM进行语言理解和处理,而不是作为知识源
LLM是在互联网上的大量文本数据上进行预训练的 , 这些训练数据为大模型提供了知识 。这也允许大模型在广泛的任务中进行泛化,然后下游进行微调 。
在构建基于大模型的App时,很容易将这些LLM简单地用作知识/事实源(即搜索引擎) 。实际上,我们应该利用LLM强大的语言理解和处理能力 。这将允许它“理解”用户请求并提供“响应” 。它应该提供与目标应用程序相关的知识和数据,并且只应从我们提供的数据返回事实/信息 。
LLM也可以用于基本的推理
除了语言理解之外 , 在逐步提示下工作时,一些LLM在基本推理方面的表现也不错 。这可以让我们利用LLM将用户请求/响应分解为较小的任务 。
使用LLM进行审查,评估和反馈
LLM在审查文本并报告其中的问题方面比从头开始生成文本要有效得多 。因此,我们尽可能多地使用这种技术,将LLM的输出发送回LLM并要求它反复检查输出 。
使用LLM进行文本转换,扩展,摘要
这是NLP自身的能力 , 将非结构化文本转换为JSON格式,反之亦然,扩展短文本或者摘要长文本 。
1.2 让LLM 回答它无法知道的问题在老码农看来,LLM 体现出的涌现能力仍然是基于现有数据推理的潜在关系,真正的无中生有往往是幻觉的来源 。一般来说,我们有两种不同的方法来让大语言模型回答LLM无法知道的问题:模型微调和上下文注入 。
将预训练模型调优的过程称为Fine-tuning,指的是使用额外的数据对现有的语言模型进行训练,以优化其针对特定任务的表现 。与从头开始训练语言模型不同,我们使用已经预训练过的模型,如LLama,并通过添加特定于用例的训练数据来调整模型以适应特定任务的需求 。微调是调整模型以适应特定任务的一种方式,但它并不能真正向模型中注入新的领域知识 。这是因为该模型已经在大量的通用语言数据上进行了训练,而特定领域数据通常不足以取代模型已学习到的内容 。换句话说 , 微调帮助模型适应了其语言交流的方式,但不一定是它所传达的内容 。
使用上下文注入时,我们不修改语言模型,而是专注于修改提示本身并将相关上下文插入到提示中,其工作原理可能是这样的:
文章插图
因此,需要思考如何为提示语提供正确的信息, 需要一个能够识别最相关数据的过程 。通过使用嵌入技术,我们可以将文本转换为向量,从而在多维嵌入空间中表示文本 。在空间中距离较近的点通常在相似的上下文中使用 。为了避免相似性搜索耗时过长 , 一般会将向量存储在向量数据库中并进行索引 。
2. 基于大模型 API 的简单应用构建所面临的问题构建大模型App 最直接的方式是在LLM API上创建一个简单的应用程序层,可以将LLM与应用程序的用例、数据和用户会话联系起来,可用于维护与用户的先前交互的记忆和状态,或将目标分解为较小的任务和子任务 。
但是,在LLM之上构建简单的应用程序层存在着一些不足:
- 对用户的响应将是不可预测的 , 并且会包含幻觉 。
- 响应将不与目标应用程序的数据和用例相关 。
- 无法为自己的产品建立护城河 , 任何人都可以轻松地实现相同的结果 。
- LLM API 的成本较高 , 而且可能相当高 。
推荐阅读
- 如何使用Noir从源代码检测攻击面
- 孩子作文获奖如何发朋友圈 孩子作文获奖如何发朋友圈说说
- 有氧运动是否一定会掉肌肉?如何通过合理的方式减脂不掉肌肉?
- 如何避免跑步导致的腿部变粗?
- 退休金计算公式揭秘:如何最大化养老金待遇?
- 微信在哪里拍一拍自己 如何微信拍一拍自己
- 存折在取款机如何取钱视频 存折在取款机如何取钱
- 办公室催财最快的风水方法 办公室内如何催旺财气
- 电脑如何重置网络设置 电脑如何重置网络设置密码
- 耳机里有杂音如何消除小妙招 耳机里有杂音如何消除