LLM实施的五个阶段

news2025/2/27 4:40:31

原文地址:Five Stages Of LLM Implementation

大型语言模型显着提高了对话式人工智能系统的能力,实现了更自然和上下文感知的交互。这导致各个行业越来越多地采用人工智能驱动的聊天机器人和虚拟助手。

2024 年 2 月 20 日

介绍

从LLMs的市场采用情况可以清楚地看出,LLMs工具的开发远远领先于LLMs的实施;由于显而易见的原因,现实世界中的客户面临执行滞后。

从工具的角度来看,大部分关注和考虑都集中在LLMs第 4 阶段,但很快组织就会了解到,任何成功的人工智能实施都需要成功的数据策略。因此,LLMs第 5 阶段将受到更多关注。

当LLM实现从第一阶段转移到第二阶段,从设计时使用转移到运行时使用时,人们认识到数据需要在推理时传递给LLM 。

大量研究强调了情境学习 (ICL)的重要性,因此注入高度简洁、简明且情境相关的数据提示的重要性。

将LLMs投入生产

我最近在 LinkedIn 上询问将LLMs投入生产面临的挑战是什么,以下是提出的前五个问题。这些担忧之所以存在,是因为 LLM 主要由 LLM 提供商托管并通过 API 提供。

使用商用 API 引入了几乎无法管理的操作组件。

理想的情况是组织在本地安装了可以使用的LLMs。但这带来了大多数组织无法解决的挑战,例如托管、处理能力和其他技术需求。

是的,有“原始”开源模型可用,但这里的障碍又是托管、微调、技术专业知识等。

这些问题可以通过使用小语言模型来解决,在大多数情况下,这对于对话式人工智能的实现来说已经足够了。

LLM 颠覆:第一阶段

AI 辅助和加速 NLU 开发

LLM 实施的第一阶段侧重于机器人开发过程,特别是加速 NLU开发。

真正导致LLM 第一阶段 中断的原因是 LLM 功能是在设计时而不是运行时引入的。

这意味着推理延迟、大量使用、成本和 LLM 响应偏差等元素可能仅限于开发,而不会在生产环境中暴露给客户。

在上面的例子中,一个复杂的句子被提交给LLM,LLM能够从句子中提取所有相关实体并计算出行的总人数。

引入LLMs是为了协助 NLU 的开发,其形式是将现有客户话语聚类到语义相似的分组中以进行意图检测。一旦定义了意图标签和描述,就可以定义意图训练话语。

LLMs还可以用于实体检测等。

考虑下图,对话式人工智能实际上只需要如下所示的五个元素。传统的 NLU 引擎可以与 SLM 结合使用。

自从聊天机器人出现以来,我们的梦想就是拥有可靠、简洁、连贯且经济实惠的 NLG 功能。加上基本的内置逻辑和常识推理能力。

除此之外,还提供了管理对话上下文和状态的灵活途径,以及比 NLU 更知识密集的解决方案,SLM 似乎是完美的选择。

小语言模型 (SLM) 是 NLU 的良好配套技术。SLM 可以在本地运行,开源模型可用于执行自然语言生成 (NLG)、对话和上下文管理、常识推理、闲聊等任务。

将 NLU 与 SLM 结合使用来支持聊天机器人开发框架是非常可行的。

在本地运行 SLM 并使用增强生成方法和上下文学习可以解决推理延迟、令牌成本、模型漂移、数据隐私、数据治理等障碍。

人工智能辅助和加速聊天机器人开发

文案写作和人物角色

LLMs颠覆的下一阶段是使用LLMs/生成式人工智能进行聊天机器人和语音机器人文案写作,并改进机器人响应消息。

这种方法再次在设计时而不是运行时引入,充当机器人开发人员制作和改进机器人响应副本的助手。

设计师还可以向LLMs描述机器人的角色、语气和其他个性特征,以便制作一致且简洁的用户界面。

这是LLMs协助从设计时间扩展到运行时间的转折点。

LLM 用于动态生成响应并将其呈现给用户。第一个实现使用 LLM 来回答域外问题,或根据文档搜索和 QnA 制作简洁的响应。

LLMs首次用于:

  • 数据和上下文增强响应。
  • 自然语言生成(NLG)
  • 对话管理;即使只有一两个对话回合。

第一阶段非常注重在设计时利用 LLM 和 Gen-AI,这在减轻不良用户体验、成本、延迟和任何推理异常方面具有许多优势。

就客户面临畸变或用户体验失败的风险而言,在设计时引入LLMs是一种安全的途径。这也是一种降低成本且无需面对客户和 PII 数据发送到云端的挑战的方法。

Flow Generation

接下来是LLMs和生成人工智能 (Gen-AI) 的更高级实现,开发人员向机器人描述如何开发 UI 以及特定功能的要求。

随后,开发 UI 启动,利用LLMs和生成式人工智能,它生成了流程,其中包含 API 占位符、所需的变量和 NLU 组件。

LLMs颠覆:第二阶段

文本编辑

第二阶段是在将机器人响应发送给用户之前使用LLMs来编辑文本。例如,在不同的聊天机器人媒介上,适当的消息大小不同。因此,可以通过要求LLMs总结、提取关键点并根据用户情绪改变响应语气来轻松控制机器人响应。

这意味着消息抽象层的硬性要求在某种程度上被废弃。在任何聊天机器人/对话式人工智能开发框架中,消息抽象层的工作就是保存一整套机器人响应消息。

这些机器人响应消息具有占位符,需要填充上下文特定数据以响应用户。

必须为每种模式和媒介定义不同的响应集。LLMs让即时制定回复变得更加容易。这就是我们一直在等待的NLG(自然语言生成)工具。

文档搜索和文档聊天

聊天机器人可以在推理时获得一份文档、一条信息,这使得LLMs能够有一个对话的参考框架。

扩展这种方法有两个障碍,第一个是有限的 LLM 上下文窗口的障碍,以及扩展这种方法。

RAG

Rag解决了上述问题。请在此处阅读有关 RAG 的更多信息。

提示链接

提示链接已进入对话式 AI 开发 UI,能够创建由一个或多个传递给 LLM 的提示组成的流程节点。

较长的对话回合可以与一系列提示串在一起,其中一个提示的输出充当另一个提示的输入。

在这些提示节点之间是决策和数据处理节点……因此提示节点与传统的对话流创建非常相似,但具有长期以来渴望的灵活性。

LLMs颠覆:第三阶段

Custom Playgrounds

技术供应商开始创建自己的具有额外功能的定制游乐场,并充当 IDE 和协作空间。

这使得用户不再仅仅使用基于LLMs的游乐场。定制游乐场提供了对多个模型的访问,以进行实验、协作和各种起始代码生成选项。

The Vercel Playground

Prompt Hubs

Haystack和LangChain都推出了基于社区的开放提示中心。

提示中心有助于编码和聚合不同提示工程方法的最佳实践。Gen-Apps 的愿景是成为 LLM 不可知论者,在申请的不同阶段使用不同的模型。

无代码微调

虽然微调改变了 LLM 的行为,并且RAG为推理提供了上下文参考,但微调在最近并未受到应有的关注。有人可能会说这是由于几个原因造成的……在此处内容。

LLM 颠覆:第四阶段

即时管道

在机器学习中,管道可以被描述为端到端的构造,它编排事件和数据流。

管道由触发器启动或启动;并基于某些事件和参数,遵循产生输出的流程。

在提示管道的情况下,流程在大多数情况下是由用户请求启动的。该请求被定向到特定的提示模板

在这里内容。

自主代理

代理以自主方式使用预先分配的工具来执行一项或多项操作。代理遵循思想链推理方法。

自主代理的概念一开始可能会让人望而生畏,请在此处内容……

编排

从现在开始,市场还没有真正跟上……编排是指为一个应用程序编排多个LLMs。

LLMs托管

困扰 LLM 实施的大多数问题都与 LLM 不是自托管或托管在私有数据中心/云中有关。

如果LLMs是自托管和管理的,那么推理、模型 漂移、数据治理等方面的延迟响应都是可以解决的因素。

LLMs颠覆:第五阶段

数据发现

数据发现是识别企业内可用于 LLM 微调的任何数据的过程。最好的起点是联系中心的现有客户对话,可以是基于语音或文本的对话。其他值得发现的良好数据来源包括客户电子邮件、之前的聊天记录等。

Kore XO 平台的这个示例展示了如何根据语义相似性导入和聚类不同的信息源。

这些数据应该通过人工智能加速数据生产力工具(潜在空间)发现,其中客户话语根据语义相似性进行分组,这些集群可以直观地表示如下所示,它们实际上是意图或分类;分类对于LLMs来说仍然很重要。

数据设计

数据设计是下一步,将发现的数据转换为 LLM 微调所需的格式。需要以特定方式对数据进行结构化和格式化,以用作可选的训练数据。设计阶段是对发现阶段的补充,在这个阶段,我们知道哪些数据是重要的,并且将对用户和客户产生最重大的影响。

因此,数据设计有两个方面,即数据的实际技术格式化以及训练数据的实际内容和语义。

数据开发

此步骤需要在运营方面持续监控和观察客户行为和数据性能。可以通过使用模型中观察到的漏洞来扩充训练数据来开发数据。

数据传输

数据交付可以最好地描述为向一个或多个模型注入与推理时的用例、行业和特定用户上下文相关的数据的过程。

LLMs会引用注入到提示中的上下文数据块,以在每个实例中提供准确的响应。

通常,各种数据传输方法被认为是相互排斥的,而一种方法被认为是最终的解决方案。

这种观点通常是由无知、缺乏理解、寻求权宜之计的组织或供应商将其特定产品作为灵丹妙药来推动的。

事实上,对于企业实施来说,灵活性可管理性必然需要复杂性

这适用于任何LLMs实施以及向LLMs交付数据所遵循的方法。答案不是一种特定的方法,例如RAG或Prompt Chaining;而是一种方法。而是一种平衡的多管齐下的方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1504692.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Day26:安全开发-PHP应用模版引用Smarty渲染MVC模型数据联动RCE安全

目录 新闻列表 自写模版引用 Smarty模版引用 代码RCE安全测试 思维导图 PHP知识点: 功能:新闻列表,会员中心,资源下载,留言版,后台模块,模版引用,框架开发等 技术:输…

超分辨率(1)--基于GAN网络实现图像超分辨率重建

目录 一.项目介绍 二.项目流程详解 2.1.数据加载与配置 2.2.构建生成网络 2.3.构建判别网络 2.4.VGG特征提取网络 2.5.损失函数 三.完整代码 四.数据集 五.测试网络 一.项目介绍 超分辨率(Super-Resolution),简称超分&#xff08…

React组件(函数式组件,类式组件)

函数式组件 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>React Demo</title> <!-- 引…

嵌入式Linux串口和 poll() 函数的使用

一、poll() 函数的介绍 poll() 函数用于监控多个文件描述符的变化的函数。它可以用来检查一个或多个文件描述符的状态是否改变&#xff0c;比如是否可读、可写或有错误发生。它常用于处理 I/O 多路复用&#xff0c;这在需要同时处理多个网络连接或文件操作时非常有用。 头文件…

ZJUBCA研报分享 | 《BTC/USDT周内效应研究》

ZJUBCA研报分享 引言 2023 年 11 月 — 2024 年初&#xff0c;浙大链协顺利举办为期 6 周的浙大链协加密创投训练营 &#xff08;ZJUBCA Community Crypto VC Course&#xff09;。在本次训练营中&#xff0c;我们组织了投研比赛&#xff0c;鼓励学员分析感兴趣的 Web3 前沿话题…

【杂记】IDEA和Eclipse如何查看GC日志

1.Eclipse查看GC日志 1.1 右击代码编辑区 -> Run As -> Run Configurations 1.2 点击Arguments栏 -> VM arguments:区域填写XX参数 -> Run 1.3 控制台输出GC详细日志 2.IDEA查看GC日志 2.1 鼠标右击代码编辑器空白区域&#xff0c;选择Edit 项目名.main()... 2.…

IPsec VPN之安全联盟

一、何为安全联盟 IPsec在两个端点建立安全通信&#xff0c;此时这两个端点被称为IPsec对等体。安全联盟&#xff0c;即SA&#xff0c;是指通信对等体之间对某些要素的约定&#xff0c;定义了两个对等体之间要用何种安全协议、IP报文的封装方式、加密和验证算法。SA是IPsec的基…

【JavaEE初阶 -- 多线程】

认识线程&#xff08;Thread&#xff09;Thread类及常见方法 1.认识线程&#xff08;Thread&#xff09;1.1 线程1.2 进程和线程的关系和区别1.3 Java的线程和操作系统线程的关系1.4 创建线程 2. Thread类及常用的方法2.1 Thread的常见构造方法2.2 Thread的几个常见属性2.3 启动…

在 Python 中 JSON 数据格式的使用

在 Python 中 JSON 数据格式的使用 JSON 简介 JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式。它易于阅读和编写&#xff0c;并且与许多编程语言兼容。 Python 中的 JSON 模块 Python 标准库中包含一个 json 模块&#xff0c;用于处理…

docker-compose这下会用了吗?

概要 默认的模板文件是 docker-compose.yml&#xff0c;其中定义的每个服务可以通过 image 指令指定镜像或 build 指令&#xff08;需要 Dockerfile&#xff09;来自动构建。 注意如果使用 build 指令&#xff0c;在 Dockerfile 中设置的选项(例如&#xff1a;CMD, EXPOSE, V…

Normalizer(归一化)和MinMaxScaler(最小-最大标准化)的区别详解

1.Normalizer&#xff08;归一化&#xff09;&#xff08;更加推荐使用&#xff09; 优点&#xff1a;将每个样本向量的欧几里德长度缩放为1&#xff0c;适用于计算样本之间的相似性。 缺点&#xff1a;只对每个样本的特征进行缩放&#xff0c;不保留原始数据的分布形状。 公式…

IM6ULL学习总结(四-七-1)输入系统应用编程

第7章 输入系统应用编程 7.1 什么是输入系统 ⚫ 先来了解什么是输入设备&#xff1f; 常见的输入设备有键盘、鼠标、遥控杆、书写板、触摸屏等等,用户通过这些输入设备与 Linux 系统进行数据交换。 ⚫ 什么是输入系统&#xff1f; 输入设备种类繁多&#xff0c;能否统一它们的…

java 数据结构二叉树

目录 树 树的概念 树的表示形式 二叉树 两种特殊的二叉树 二叉树的性质 二叉树的存储 二叉树的基本操作 二叉树的遍历 二叉树的基本操作 二叉树oj题 树 树是一种 非线性 的数据结构&#xff0c;它是由 n &#xff08; n>0 &#xff09;个有限结点组成一个具有层次…

ROS——Ubuntu环境搭建

Ubuntu安装 首先下载 Ubuntu 的镜像文件&#xff0c;链接如下:ubuntu-releases-20.04安装包下载_开源镜像站-阿里云ubuntu-releases-20.04安装包是阿里云官方提供的开源镜像免费下载服务&#xff0c;每天下载量过亿&#xff0c;阿里巴巴开源镜像站为包含ubuntu-releases-20.04…

css-通用样式按钮加号

1.实现 2.代码 html <div class"addF">&#xff0b;</div> css .addF{width:40px;font-size:25px;font-weight:600;background-color:rgb(64, 158, 255);text-align:center;color:white;height:34px;border-radius:3px;line-height:34px; }

Spring Boot 自动装配的原理!!!

SpringBootApplication SpringBootConfiguration&#xff1a;标识启动类是一个IOC容器的配置类 EnableAutoConfiguration&#xff1a; AutoConfigurationPackage&#xff1a;扫描启动类所在包及子包中所有的组件&#xff0c;生…

C语言字符串型常量

在C语言中&#xff0c;字符串型常量是由一系列字符组成的常量。字符串常量在C中以双引号&#xff08;"&#xff09;括起来&#xff0c;例如&#xff1a;“Hello, World!”。字符串常量在C中是不可变的&#xff0c;也就是说&#xff0c;一旦定义&#xff0c;就不能修改其内…

Qt学习-22 <QTreeWidget QTreeView>

—均为学习笔记&#xff0c;如有错误请指出 一、QTreeWidget 1. 样式展示&#xff1a; ① ② 2. 样式代码&#xff1a; ① //treeWidget树控件的使用//设置水平头//QStringList() 创建匿名对象&#xff0c;省略起名的操作ui->treeWidget->setHeaderLabels(QString…

Data Concerns Modeling Concerns

How was the data you are using collected? What assumptions is your model making by learning from this dataset? Is this dataset representative enough to produce a useful model? How could the results of your work be misused? What is the intended use and …

java数据结构与算法刷题-----LeetCode77. 组合

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 文章目录 1. 递归实现 解题思路 这种题只能暴力求解&#xff0c;枚举所有可…