启程与远征Ⅸ--优化生成式人工智能以满足业务需求的框架
生成类似人类的文本和语音曾经只存在于科幻小说中。但 GPT-3 和 PaLM 等大型语言模型 (LLM) 的快速发展让这一愿景更接近现实,解锁了从聊天机器人到内容创作等一系列有前景的商业应用。
然而,通用基础模型往往无法满足行业用例的需求。企业对其生成式 AI 应用程序有不同的要求——从性能、成本、延迟到可解释性。此外,可用于模型训练的数据的性质和数量可能存在很大差异。因此,产品团队必须概述其生成式 AI 应用程序的关键业务标准,并选择正确的优化技术工具包来满足这些需求。
在这篇文章中,我们概述了一个框架,用于识别和优先考虑生成式 AI 应用程序的战略重点领域。我们还将探索流行的优化方法,并讨论它们的独特优势、理想的应用以及满足应用要求的权衡。通过明确的业务目标指导的正确优化策略,公司可以开发定制的 AI 解决方案,以平衡对其成功至关重要的优先事项。让我们开始吧!
评估业务需求和约束的框架
为了有效地制定优化 LLM 的策略,产品团队首先应该深入了解业务目标及其运营约束。评估并确定以下列出的关键维度的优先级,以适应您的业务用例:
来源L 作者
1. 性能目标:定义人工智能需要达到的性能指标和水平。这可以是事实准确性、与人类价值观的一致性或其他特定任务指标的组合。
需要考虑的问题:衡量绩效的最佳维度是什么?可接受的最低绩效标准是什么?绩效如何与您所在行业的用户期望保持一致?
2. 延迟目标:确定应用程序可以承受的最大响应时间,而不会对用户体验产生负面影响。当 LLM 部署在时间敏感或资源受限的场景中(例如语音助手、边缘设备)时,这一点尤其重要。
需要考虑的问题:延迟如何影响用户满意度和保留率?响应时间的行业标准是什么?
3. 成本效率:根据预期投资回报率评估运营人工智能的成本。当较高的初始成本带来大量节省、收入增长或超过投资的战略利益时,这可能是合理的。
需要考虑的问题:运营法学硕士的成本如何影响您的预算?投资回报率与人工智能部署成本相比如何?
4. 可解释性和信任:确定是否需要确保人工智能决策易于用户理解,这对于建立信任至关重要,尤其是在监管要求严格的领域。
需要考虑的问题:你的行业是否受到监管,要求人工智能决策透明?可解释性如何影响用户信任和采用?
5. 外部知识:评估您的人工智能是否需要访问外部数据源以保持相关性并提供准确的响应。
需要考虑的问题:你的人工智能是否需要实时数据来做出决策?
6. 数据可用性:用于训练 AI 的数据的性质和数量可能会广泛影响优化策略。
需要考虑的问题:您是否可以访问大型数据集进行训练,或者您是否需要使用合成或增强数据?您需要多久更新一次训练数据以保持 AI 的相关性?
下表概述了生成式人工智能应用的三个不同用例,并对框架内每个维度的优先级进行了相应的评估:
来源L 作者
如您所见,优先级和约束在不同的用例中可能有很大差异。
例如,假设有一家公司旨在开发一款客服聊天机器人,以减轻人工工作人员的工作量。在这种情况下,准确性性能和外部数据集成是重中之重,以便提供不仅事实正确而且最新的响应。虽然延迟很重要,但用户可能愿意容忍短暂的延迟。通常,这样的公司将能够访问过去客服互动的大量档案,这些档案可用于训练模型。
相比之下,人工智能在评估软件代码质量和风险方面的关键应用要求更加关注人工智能洞察的事实准确性和可解释性,这通常是由于错误的潜在后果。在这种情况下,成本和延迟是次要考虑因素。在某些情况下,这种用例可以从外部数据集成中受益,并且它通常面临有关丰富训练数据集可用性的限制。
对与用例相关的战略重点和约束的透彻理解可以帮助团队制定优化 LLM 的定制策略来满足用户的独特需求。
深入研究 LLM 优化技术
本节深入探讨各种优化技术,重点介绍它们的目标、理想用例和固有的权衡,特别是在平衡上述业务目标方面。
技术表细分:
来源:作者
1. 及时工程:
执行复杂度:低
何时使用:用于在不改变模型的情况下重塑响应并快速改进。在尝试更复杂的优化方法之前,先使用此技术来最大化预训练模型的有效性。
其含义:快速工程涉及以引出所需输出的方式精心设计模型的输入查询。它需要了解模型如何响应不同类型的指令,但不需要重新训练模型或改变其架构。这种方法仅优化了现有模型访问和应用其预先训练的知识的方式,并没有增强模型的内在能力。
“这就像调整向知识渊博的朋友提问的方式以获得最佳答案。”
例子:
- 要求语言模型“以莎士比亚的风格写一首诗”而不是“写一首诗”以引出以特定文学风格作出的回应。
- 为对话式人工智能提供详细的场景,以确保模型理解其作为客户服务代理的角色。
权衡:
- 反复试验:设计最有效的提示需要反复迭代,因为提示和 AI 输出之间的关系并不总是直观的。
- 输出质量:输出的质量高度依赖于提示的设计,并且通过此方法可以实现的改进水平是有限的。
2.微调:
执行复杂度:中等
何时使用:当您需要模型适应特定领域或任务时,应该考虑微调,因为基础预训练模型可能无法很好地覆盖这些领域或任务。这是提高特定领域准确度和创建能够处理特定领域数据和术语的更专业模型的一步。
其含义:微调是在代表目标任务或领域的新数据集上继续训练预训练模型的过程。这个新数据集由输入输出对组成,这些输入输出对提供了所需行为的示例。在微调过程中,模型的权重会更新,以最大限度地减少这个新数据集上的损失,从而有效地使模型适应新领域。
“可以把它想象成给你的朋友上一堂速成课,让你的朋友们成为某一领域的专家;向他们展示考试中可能出现的多个问题示例,以及他们需要回答的示例答案。”
例如:
- 通用语言模型可以针对法律文件进行微调,以提高其审查此类文件的性能。
- 可以使用医学成像数据集对图像识别模型进行微调,以更好地识别 X 射线或 MRI 中的特定疾病。
权衡:
- 数据要求:微调需要与任务相关的标记数据集,创建该数据集可能需要大量资源。
- 过度拟合风险:模型可能过于专注于微调数据,这会降低其推广到其他环境或数据集的能力。
3.检索增强生成(RAG)
执行复杂度:高
何时 使用:当 AI 模型需要访问和整合外部信息以生成响应时,应考虑使用 RAG。当模型需要提供其预训练知识库中未包含的最新或高度具体的信息时,这一点尤其重要。
其含义: RAG 将 LLM 的生成功能与检索系统相结合。检索系统查询数据库、知识库或互联网以查找与输入提示相关的信息。然后将检索到的信息提供给语言模型,语言模型结合此上下文来生成更丰富、更准确的响应。通过引用 RAG 系统用于生成响应的来源,生成式 AI 应用程序可以为用户提供增强的可解释性。
在未来几年,随着越来越多的产品寻求利用其最新的业务数据来为客户定制体验,这种优化技术有望获得广泛的普及。
“这就像你的朋友能够在网上查找信息来回答他们专业知识之外的问题。这是一场开卷考试。”
例如:
- 在基于 RAG 的在线聊天机器人中,检索器可以从数据库或互联网中提取相关信息,以提供最新的答案。
- 家庭作业助手 AI 可以使用 RAG 获取最新的科学数据来回答学生有关气候变化的问题。
权衡:
- 复杂的实施: RAG 系统需要一个集成良好的检索系统,这对于设置和维护来说可能很困难。
- 信息质量:生成的响应的实用性在很大程度上取决于检索到的信息的相关性和准确性。如果检索系统的来源过时或不正确,响应将反映这一点。
- 响应时间慢:从外部源检索信息以生成响应可能会增加延迟。
4.基于人类反馈的强化学习(RLHF):
执行复杂度:非常高
何时使用:当模型的输出需要与复杂的人类判断和偏好紧密结合时,应该使用 RLHF。
其含义: RLHF 是一种复杂的强化学习技术,它通过将人工评估直接纳入训练过程来改进模型的行为。此过程通常涉及从人工操作员那里收集数据,人工操作员根据各种质量指标(例如相关性、有用性、语气等)对 AI 的输出进行排名。然后,这些数据信号用于训练奖励模型,该模型指导强化学习过程产生更符合人类偏好的输出。
“这类似于你的朋友从过去的谈话中学习如何让讨论变得愉快,并利用这些知识来改善未来的互动。”
例如:
- 社交媒体平台可以使用 RLHF 来训练审核机器人,该机器人不仅可以识别不适当的内容,还可以以建设性和敏感的方式回应用户。
- 可以使用 RLHF 进行微调虚拟助手,以便对用户请求提供更加个性化和情境感知的响应。
权衡:
- 高复杂性: RLHF 涉及复杂、资源密集型的过程,包括人工反馈收集、奖励建模和强化学习。
- 质量风险:反馈数据存在偏差的风险,这会影响模型质量。确保人工反馈的质量始终如一,并使奖励模型与期望结果保持一致可能很困难。
5. 知识蒸馏
执行复杂度:中等至高
何时使用:当您需要在计算能力有限的设备上或响应时间至关重要的应用程序中部署复杂模型时,使用知识提炼。
其含义:这是一种压缩技术,其中训练一个更小、更高效的模型(称为学生模型)来复制更大、更复杂的模型(教师模型)的性能。训练不仅仅是学习正确的答案(硬目标),还包括让学生尝试产生与教师预测相似的概率(软目标)。这种方法使学生模型能够捕捉教师模型学到的细微模式和见解。
“这类似于将经验丰富的专家的智慧提炼成一本简明的指南,新手可以使用它来做出专家级的决策,而无需经过多年的经验。”
例如:
- 大规模语言模型可以提炼为较小的模型,该模型可在智能手机上高效运行,实现实时语言翻译。
- 自动驾驶汽车中使用的图像识别系统可以提炼为可在车载计算机上运行的光模型。
权衡:
- 性能与大小:提炼模型可能并不总是与教师模型的性能相匹配,从而导致准确性或质量的潜在下降。
- 训练复杂性:提炼过程非常耗时,需要仔细的实验才能确保学生模型有效学习。它需要对模型架构有深入的理解,并具备将知识从一个模型转换到另一个模型的能力。
现在让我们看一个真实世界中的例子。
示例:客户支持聊天机器人
让我们重新审视构建客户支持聊天机器人的用例,以减少人工支持人员的工作量。
资料来源:达勒
要求/限制包括:
- 绩效:高优先级(强调事实准确性)
- 外部知识:高优先级
- 延迟目标:中优先级
- 成本效率:低优先级
- 可解释性和信任度:中等优先级
- 数据可用性:充足(过去对话数据)
通过清晰了解业务环境和优先级,产品制造商可以制定最有效的优化策略。
LLM 优化决策步骤:
- 及时工程应是提高聊天机器人初始理解和响应能力的第一步。然而,仅凭这一点还不足以达到专业领域的准确性。
- 使用历史客户对话数据对模型进行微调对于提高聊天机器人的准确性性能以及使模型能够熟练处理细微的行业特定查询至关重要。
- 结合检索增强生成 (RAG)对于向用户提供最新的产品信息和相关的网络链接至关重要。
- 虽然一定程度的延迟是可以容忍的,但监控并优化响应时间仍然是明智之举。这里的优化策略可能包括缓存常见查询以加快响应速度,并策略性地使用快速工程来减少不必要的外部数据检索。
如您所见,通常需要结合多种策略来满足用例的特定需求。优化策略的灵活性至关重要,因为需求会随着时间而变化,并且系统需要同时平衡多种需求。
结论
针对业务用例优化 LLM 既是一门艺术,也是一门科学,需要深入了解底层技术和目标。随着人工智能的不断发展,优化技术的选择将变得越来越具有战略意义,不仅影响单个应用程序的性能,还影响人工智能在社会中作用的整体轨迹。
无论您优化的是速度、准确性、成本还是透明度,上述技术都可以提供增强 LLM 的工具包,以满足未来生成式 AI 驱动的商业应用的需求。通过精心应用这些方法,我们可以创建不仅有效而且负责任且能满足用户细微需求的 AI。
欢迎前往我们的公众号,资讯
创作不易,觉得不错的话,点个赞吧!!!
相关文章:

启程与远征Ⅸ--优化生成式人工智能以满足业务需求的框架
生成类似人类的文本和语音曾经只存在于科幻小说中。但 GPT-3 和 PaLM 等大型语言模型 (LLM) 的快速发展让这一愿景更接近现实,解锁了从聊天机器人到内容创作等一系列有前景的商业应用。 然而,通用基础模型往往无法满足行业用例的需求。企业对其生成式 A…...

canal数据同步工具介绍与应用
canal服务 canal介绍canal版本与环境canal 服务集canal应用场景: canal常见问题xml配置问题连接认证问题jar版本问题连接问题 canal介绍 1、Canal是阿里巴巴开源的MySQL增量数据订阅和消费工具,通过模拟MySQL的slave与master交互,捕…...

ubuntu18.04 设置静态地址
修改配置文件 sudo vim /etc/netplan/01-network-manager-all.yaml 代码如下: network: version: 2 renderer: NetworkManager ethernets: ens33: # 配置的网卡名称,可以使用ifconfig -a查看本机的网卡 dhcp4: no # 关闭动态IP设置 …...

jira敏捷开发管理工具视频教程Confluence工作流协同开发(2024)
正文: 随着Jira敏捷开发方法论的普及,Jira已经成为全球软件开发团队管理项目、任务和问题的首选工具。为了帮助团队更好地掌握Jira的核心功能,精心准备了一套全面开发技术及案例视频教程——《Jira敏捷开发管理工具视频教程Confluenc…...

【网络】TCP回显服务器和客户端的构造,以及相关bug解决方法
文章目录 ServerSocket构造方法方法 Socket构造方法方法 回显服务器(Echo Server)1. 构造方法2. 建立连接processConnection 方法的创建1. 读取请求并解析2. 根据请求计算响应3. 把响应写回给客户端 3. 完整代码 客户端(Echo Clientÿ…...

Python知识点:如何使用Boto3进行AWS服务管理
使用 boto3 来管理 AWS 服务是一个非常强大的方式,因为 boto3 是 AWS 提供的官方 Python SDK。下面是使用 boto3 管理 AWS 服务的基本步骤,包括设置、操作和常见的 AWS 服务示例。 1. 安装 boto3 首先,确保你已经安装了 boto3。可以使用 pi…...

Java - 正则表达式
Java 提供了 java.util.regex 包,它包含了 Pattern 和 Matcher 类,用于处理正则表达式的匹配操作。 正则表达式的模式 正则表达式的模式可以包括以下内容: 字面值字符:例如字母、数字、空格等,可以直接匹配它们自身。…...

Vue一款流行的JavaScript前端框架
1.Vue简介 Vue是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建,并提供了一套声明式的、组件化的编程模型,帮助你高效地开发用户界面。无论是简单还是复杂的界面,Vue 都可以胜任。 Vue所关注的核心是MVC…...

GPT-SoVITS
文章目录 model archS1 ModelS2 model model arch S1 model: AR model–ssl tokensS2 model: VITS,ssl 已经是mel 长度线性相关,MRTE(ssl_codes_embs, text, global_mel_emb)模块,将文本加强相关,学到一个参考结果 S1 Model cla…...

linux高级编程——文件IO(常用函数大全)
1.相关介绍及常用函数 Linux高级编程中的目录IO操作是文件系统编程的一个重要组成部分,主要涉及到目录的打开、读取、遍历和关闭等操作。以下是一些基本的目录IO操作和相关的系统调用函数 1.1 opendir函数 打开目录:使用opendir函数打开一个目录&#…...

matplotlib画图
Matplotlib 先写一个最简单的: import matplotlib.pyplot as plt plt.plot([1,4],[2,8]) #plot画折线图plt.show() 确定两个点画一条线 import matplotlib.pyplot as plt x[1,23,4,56,7,6] #x轴数据 y[22,44,56,67,43,2] #y轴数据 s[22,43,33,44,43,7] plt.p…...

Jetpack 各种框架简介
Jetpack是Google推出的一套为Android开发提供极大便利的组件、工具和指导集,旨在帮助开发者快速构建高质量的应用,并遵循最佳实践。 Jetpack不仅是一个提高开发效率的工具集,还是Android开发的未来方向。它通过整合各种组件和工具࿰…...

海康VisionMaster使用学习笔记5-开机自启动
开机自启动 在实际应用中,用户会希望机台上电开机后,软件能自启动避免现场人员误操作,减少机台重新上电时的操作步骤以提升效率。 设置 打开VM,点击设置,软件设置->开机自启动->勾选开机自启动->确定 默认运行界面 启动时以设定的…...

驾驭数据之序:SQL序列的奥秘与实现
标题:驾驭数据之序:SQL序列的奥秘与实现 摘要 在数据库管理中,保证数据的有序性和唯一性是至关重要的。SQL序列(Sequence)作为一种强大的数据库对象,为我们提供了一种在不同数据库系统中生成连续数字的手…...

【LeetCode】148. 排序链表
排序链表 题目描述: 给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。 示例 1: 输入:head [4,2,1,3] 输出:[1,2,3,4]示例 2: 输入:head [-1,5,3,4,0] 输出:…...

阿里云-java调用短信服务,第三方接口的开启(傻瓜式教程)
第一步:在浏览器中,搜索阿里云 第二步:打开aly的主页 第三步:在最上方的导航栏中,找到云市场,注意不要点击,会自动有触发悬浮框出现,在悬浮框中找到 短信 第四步:点击 短…...

以node / link文件表征的道路网络-----基于南京公路公开数据做路径规划(下)------dijkstra算法的一些简单花样
在不改变dijkstra算法本身的情况下,完全可以从数据源的角度出发,解决我们的一些简单需求: 比较初级且粗暴的玩法,可以是强行赋予一些link极端的路段长度。 对于我们坚决不希望车辆行驶的道路、禁行区、或是危险区,就…...

计算机操作员中级理论知识试题
计算机操作员中级理论知识试题 一、单项选择题 在ASCII编码中,无法显示或打印的字符是()。 A.字符$,%,# B.运算符号*,.,/ C.空格 D.ASCII编码值在0-30间的控制符号将十进制数31.625转换成十六进制数是() A.115.10 B.If.a C.37.5 D.If.10在计算机中,同统一指挥和控制计…...

Redis主从同步配置
1: 安装Redis 参考 linux ubuntu安装redis_ubuntu离线安装redis7.2.5-CSDN博客 2:创建目录 到达redis 根目录 cd /usr/redis/# 创建主从工作目录 mkdir -p replication/6379 # master 节点 mkdir -p replication/6378 # 从节点 mkdir -p replication/6377 # 从节点…...

输出重定向
输出重定向是指将程序的输出(标准输出、错误输出等)重定向到指定的位置,而不是默认的输出设备(通常是终端/控制台)。在 Unix/Linux 系统中,输出重定向通过使用符号 >、>>、2> 等来实现。 常见…...

ubuntu20.04挂载机械硬盘
环境说明 1.基于清华源地址下载的ubuntu20.04制作的系统盘,然后安装在PC上(固态硬盘) 2.机械硬盘无法看见 目的 挂载机械硬盘,开机就能自动启动/挂载 参考链接 https://blog.csdn.net/qq_35624642/article/details/137713143…...

Python轻量级 NoSQL 数据库之tinydb使用详解
概要 在现代应用开发中,使用数据库来存储和管理数据是非常常见的需求。对于简单的数据存储需求,关系型数据库可能显得过于复杂。TinyDB 是一个纯 Python 实现的轻量级 NoSQL 数据库,专为嵌入式场景设计,适用于小型项目、原型开发和教学等场景。本文将详细介绍 TinyDB 库,…...

【数据结构】二叉树(二)遍历
上篇已经了解对二叉树有了大概了解,本篇学习二叉树的前序、中序、后序及层序遍历的递归与非递归共7种遍历方法,快收藏吧~ 目录 1、前序遍历 递归方式: 迭代方式: 2、中序遍历 递归方式: 迭代方式: …...

NGINX 常用内置变量
目录 $remote_addr 变量 $args 变量 $is_args 变量 $document_root 变量 $document_uri 变量 $host 变量 $limit_rate 变量 $remote_port 变量 $remote_port --显示客户端端口 $request_method 变量 --返回请求方式 $request_filename 变量 --返回请求实际路径 $request_uri…...

Windows采用VS2019实现Open3D的C++应用
1、参考链接 https://blog.csdn.net/qq_31254435/article/details/137799739 但是,我的方法和上述链接不大一样,我是采用VS2019进行编译的,方便在Windows平台上验证各种算法。 2、创建一个VS2019的C Console工程 #include <iostream>…...

冒泡排序、选择排序、插入排序,三种简单排序算法的区别?
1、冒泡排序 冒泡排序是从下标 1 遍历到 n,每当遇到大于下一个的,就和上一个交换位置,这样最大的就移动到了 n 的位置,然后从头再从 1 遍历到 n-1,把第二大的移动到 n-1 的位置,依此类推,每次从…...

Docker 日志管理
一、ELK -Filebeat Elasticsearch 数据的存储和检索 常用端口: 9100:elasticsearch-head提供web访问 9200:elasticsearch与其他程序连接或发送消息 9300:elasticsearch集群状态 Logstash 有三个组件构成input,fi…...

JavaScript初级——基础知识
一、JS的HelloWord 1、JS的代码需要编写到script标签中 2、JS的执行是根据语句从上到下一次执行的。 二、JS的编写位置 1、可以将js代码编写到标签的onclick属性中,当我们点击按钮时,js代码才会执行。 2、可以将js代码写在超链接的href属性中࿰…...

0817(持久层框架:JDBC,MyBatis)
三层架构(表现层,业务层,持久层) java中框架的概述(表现层、业务层、持久层的关系)_控制层业务层持久层的关系-CSDN博客 框架:框架一般处在低层应用平台(如J2EE)和高层…...

在亚马逊云科技上安全、合规地创建AI大模型训练基础设施并开发AI应用服务
项目简介: 小李哥将继续每天介绍一个基于亚马逊云科技AWS云计算平台的全球前沿AI技术解决方案,帮助大家快速了解国际上最热门的云计算平台亚马逊云科技AWS AI最佳实践,并应用到自己的日常工作里。 本次介绍的是如何在亚马逊云科技利用Servi…...