前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >利用生成式人工智能的力量:未来生产力的关键

利用生成式人工智能的力量:未来生产力的关键

作者头像
GPUS Lady
发布2024-03-14 15:43:21
800
发布2024-03-14 15:43:21
举报
文章被收录于专栏:GPUS开发者GPUS开发者

本文整理自NVIDIA讲座

生成式人工智能将成为企业的强大工具,能帮助增强我们的工作与处理日常任务,使我们更高效、更有生产力。据最新研究估计,这项新技术每年将带来两万五千亿到四万亿美元的GDP增长。

因此,了解我们为何要在业务范围内采用这项技术以及如何使用?是至关重要的。在未来,包括工人、护士、创意人员等群体,都将被生成式人工智能应用所包围,为我们的执行提供决策。长远来看,这将使我们更加高效、更有生产力。

有了这个理念之后,接着就开始了解使用生成式人工智能的步骤,因为这能为我们所谈论的其余内容提供完整的框架。

首先第一件事情就是要找到业务机会,这涉及到确认可以产生最大影响的地方。无论是对于客户还是员工,选择正确的业务机会实际上将会带动其他努力,并且使得您业务中推出生成式人工智能变得更加容易。

在选择业务机会之后,接着就得检视我们已经拥有的团队。通常您的组织内会具有特定领域的专业知识,但也要关注IT的团队,无论是内部还是外包的。即便您现在正与一家公司合作,但在未来建立人工智能专业知识,对于您在继续推出生成式人工智能应用时会有很大帮助。我们需要分析用于训练和定制的数据,这通常是我们最有价值的数据,这些数据是我们公司与其他公司的价值差异,也使得这些用例变得引人注目。在后面会详细介绍这部分在流程中的位置。

我们需要对基础设施进行投资。很多人在生成式AI上开发非常出色的POCS,但随着您所想到的新用例,以及在组织内更快地部署和推出此项技术,其使用量会迅速扩展。因此,投资于目前所需要的加速基础设施与将来推动这一过程的基础设施,是同样重要的,不能只考虑个别系统的成本。当我们推出生成式人工智能时,不仅需要考虑数据中心规模,还需要考虑云规模,因此您需要考虑整体的成本效益以及正在投资的基础设施的能源消耗。

最后一个部分,可能也是最重要的部分,就是开发“负责任AI”的计划,这方面已经有最佳实践和工具,也有很多人在这个领域进行投资。在您开始为公司制定这样的计划时,将帮助您以符合公司价值观和品牌的方式发展,这是可以继续发展的,从一开始就有样的计划是非常重要。

好的,现在就进入了解更多关于使用生成式人工智能,以构建这些企业应用程序的信息。

到目前为止,您已经看到了生成式人工智能可以完成的令人兴奋的事情,并且开始思考需要汇集在一起为您的组织创建这样东西的人员、方面和资源。因此,接下来您要做的是开始更多地了解技术堆栈。

这张幻灯片基本上作为演示的目录,我们将逐个介绍希望您熟悉的每种技术。您会经历数据准备阶段、训练您的模型,然后使用并部署。

当涉及到数据准备时,请记住“垃圾进、垃圾出”这句谚语。如果您给AI模型喂垃圾食物,那么它将无法产生出色的答案。因此,您必须获得非常好的公共数据来源以及足够好的私有数据,来完成您想要实现的目的。这些模型的特性是,给的数据越多其效果就越好。您需要从文件、数据库和其他应用程序中获取特定数据,还得将其切割成小块并且进行筛选。您需要确保所有的清洗任务都做好了,后面会说明数据筛选的各个环节。

当数据准备好之后,接着就需要一个AI基础模型。要训练一个基础模型是非常昂贵的,目前已经有非常多的基础模型,您可以找到适合的基础模型。应用场景是在数据中心吗?是否需要移动?成本是否重要?需要特定性能特征吗?所有这些因素都将影响您所选择的AI基础模型。您可能不需要自己去构建,但如果需要的话,就可以使用本视频所提供的工具来实现。

假设您选择了别人耗费2000万美元所开发并开源的基础模型,那么可以很轻松地拥有,但是这种模型只知道通用性的东西。您需要像对待它像对待小孩子一般,需要将这个AI模型送到学校,教导它关于您的领域特定词汇,以及更多关于您希望在应用程序中看到的技能类型,这一切称为“模型定制”。我们将介绍四种不同类型的模型定制,

在定制模型之后,就可以尝试连接到您的应用程序并调用定制模型,查看结果是否达到了您想要的效果,然后不断迭代直到满足正确目标,一旦达到您的目标之后,就可以卸下原先的基础模型。现在这就成为一个真正了解您的业务以及您用户的定制模型。

接着进入部署阶段,您需要将其部署到实际使用的规模上。这里有两件事情要做,即框定它们与使用它们进行推理。推理是指向它们发送提示并从中获取结果,因此需要部署在实际规模上,并且使用并行硬件。这里有很多要考虑的部分,我们会谈论部署流程管道。

最后一件事是,这些生成式模型是有创造性的,使用您提供的数据并产生非常有趣、但有时也令人担忧的结果,有时甚至可能产生有害或错误的结果。所有这些都称为幻觉,作为应用程序开发人员,您的工作就是控制这些幻觉,对吧!您需要限制天才,而这就是保护栏的作用。保护栏实际上是放在您的模型前面的模型,以确保它不会做出不应该说的事情。因此,我们将深入讨论保护栏以及如何实施它们的主题。

现在看看数据获取的环节,您需要这些数据来训练初始模型、微调模型或进行所谓的检索增强生成。我们将深入讨论所有这些细节。

首先确认数据来自哪里?

(1)可能来自公共源,有很多优质的数据中心提供着优秀的数据供大众使用,大多是免费的。更有可能的来源是您组织内部的数据,包括存储在文档(如Word文档或PDF)、Excel电子表格等地方,但您不能直接使用这些文档,必须将它们导入并切割成小片段,然后这些小片段被用来给后来的人提供生成式答案。

(2)内部数据库是另一个数据源,您可以对其进行查询并获取这些答案集,然后将它们切割、保存并用于训练。

(3)最后一个来源是从您一些关键任务应用程序的API中获取信息。

以上这些都是很好的数据来源,其中第二个包含个人可识别信息的数据源是最重要的,因为这可能会带来一些严重的经济惩罚。如果发生这样的事情,第一要务就是不要发布个人可识别信息。

其次是您需要考虑数据的知识产权,这些数据是您拥有的还是属于他人?您需要付费使用或与他们达成某种协议?确保您已经搞清楚这些所有问题,避免事后遇到法律问题。

还有一件需要考虑的事情是,您需要像对待任何应用程序、任何服务器端应用程序一样考虑访问控制。谁有权对这些数据进行什么操作?仅读取、读取、写入、写入、读取,他们能做些什么,并确保您的应用程序始终以最低权限访问数据以获取所需的内容。不要让一个拥有高权限的进程在那里访问各种数据,然后希望一切顺利。那是一种可怕的策略。您需要正确的访问控制,这是建立在一个正确的身份管理系统中的,其中所有用户身份都得到保留,并确保一切都保持安全。

您要寻找的是数据中有时可能存在的偏见,这会导致不准确并造成困扰,甚至可能对人们造成伤害。您要确保清理出这些偏见,并审查您的数据的状况,确保它处于良好的状态,可以进行训练。不仅在您进行训练之前和微调期间要这样做,而且在几个月后,您需要考虑您的数据来源以及谁负责维护、更新旧数据并添加新数据等。所有这些都是重要的考虑因素。

接下是关于数据筛选的环节,我们需要做哪些事情来确保数据的质量尽可能好?

图片左边表示来自互联网的数据集,下载后并检测其所使用的语言,这是一个很重要的部分,许多文件都是以语言形式存在,如果您的应用程序部署在非英语地区,就要需要确保您的模型能了解这些语言。接下来需要浏览文档中的一些文本,看看哪些部分需要重新格式化。我们有一套工具让您可以轻松进行各种文本重新格式化和清理操作。

接着就可以开始浏览文档,查找明显的、冗余的信息,以及类似模糊的信息。对于相似度非常高的信息,可以基于模糊的重复性来进行剔除。除了精确的重复之外,还需要过滤文档中的信息质量,可能会删除一些信息。您可能需要合并一些来自数据源中的信息,进行数据混合或者另外进行数据去重。完成这些操作后,就可以用它来训练您的模型了。右边的图表显示准确率的上升。

为什么模型训练后的准确率会上升呢?这是因为模型理解您的词汇,因此能够理解用户想要知道的内容,从而提供更好的结果。您需要教会模型您的词汇,并让模型学会您希望展示的技能。

一旦数据清洗干净,并按照需要的方式进行处理之后,接下来就是在下面方法中选择一种:

(1)从头训练自己的基础模型,但这种情况通常不太可能发生,因为这需要大量的硬件、大量的专业知识、大量的时间以及需要大量的数据,至少就是数千万美元级别的耗费,来训练一个足够好的基础模型。

(2)使用其他人预先训练好的模型,并对其进行定制。大约95%的情况都是这么做的,就是对预先训练好的基础模型进行定制,大多数公司要采取的路径,就是直接寻找适合他们的基础模型。

那么,什么样的模型才是适合的呢?您的约束条件是什么?您需要具有什么样的吞吐量?您需要具有什么样的延迟?这个AI应用程序要在数据中心运行吗?要在云中运行还是在移动设备中运行?或者是在某种行走的机器人中运行?成本重要吗?。。。所有这些都将有助于您确定您想要选择的基础模型。

一旦您选择了模型,接着就需要使用您的领域特定数据对其进行训练,这个步骤是至关重要的,能让模型理解您的业务、满足您的用户以及实现您希望的整体回报。因此,当您将基础模型与领域特定数据进行训练时,最终得到的是在架构上完全相同的基础模型,但由于您教会了它所有特定的信息,因此它更智能了。

现在您已经有一个定制的模型,可以部署并满足您的员工和客户。

事实证明,当您训练人工智能模型时会需要进行大量的矩阵乘法运算,如果这时候有并行硬件的话,这些就可以并行执行这些矩阵乘法操作。

NVIDIA在这方面投入大量时间,创建了GPU芯片与张量核心来加速这些类型的操作。因此,不论是基础模型还是对基础模型进行定制的训练阶段中,首先要做的就是“尽可能”地并行化,这样就能更有效地用上尽可能多的GPU来提高计算性能。

左图表明我们需要将问题分割成片段;中间的图表示我们将这些计算片段发送到基础设施中,以便地并行完成并管理所有计算;第三列表示,有时在进行训练时并不需要重新计算所有内容,有时我们只需重新计算一些值,这样可以两全其美。

如果我们并不打算从头创建基础模型,那么该怎么操作呢?

如同幻灯片的左边,得先选择一个适合我们使用场景的基础模型,然后进行所谓的模型定制,将用于推动业务发展的模型。也许是进行一些供应链预测,也许是进行一些财务建模,也许有一项销售渠道分析的工作要做,或者需要进行某种法律合同发现、总结的工作。至于客户问答系统,则是一个非常大的应用领域。

关于模型的训练方式,主要有以下三种:除了这些技术之外,还有更多的技术,但让我们先看看这三种。

(1)不改动模型、权重与偏差,只改变给予的提示词。只要给出一个非常好的提示,就可以得到一个更好的结果。例如给它一些上下文、一些词汇、一些文档片段来配合工作,模型会做出更好的结果,而您并没有改变模型,只是修改输入到模型的提示,然后结果就会出来。

(2)改动模型。您可以使用这些定制数据集进行调优,这将改变模型内部节点的权重和偏差,并且模型将变得更加聪明,以适应您训练它的信息。需要注意的是,定制的模型并不会损失先前所知道的其他信息,还将学习您提供的词汇,开始对您的应用程序中希望展示的技能变得更加熟练,这个过程称之为“微调”。您需要谨慎进行监督式微调训练,可以使用标记数据进行调整,甚至可以使用未标记数据进行调整。

(3)通过人类反馈进行强化学习。这是 ChatGPT 如此迅速地变得如此受欢迎的关键原因,因为能与人类非常友好地互动,以人类可以理解的方式给出回答。一旦您的模型了解了自己的词汇,并具备了良好的技能,那么您就要给它一些人类反馈强化学习,基本上是让人类来评价。这是一个非常好的信息来源,可以确保您的模型将被优化,以解决您将要部署的问题领域。

接下来更详细地谈谈这些定制技术。从这个图表的 y 轴开始,可以看到的是针对特定情况所需的数据量,以及所需的计算量,这样就能对一般性的投资水平有个基本了解,就是您所需要进行的投资。

沿着X轴有四种不同的定制技术:

(1)提示工程:这里不需要改变模型,是一种称为少样本学习的方法,可以给AI系统一些示例,就像“猴子看到猴子做(Monkey see monkey do)”。当我这样做时、你就那样做,当我这样做时、你就那样做。好的,现在当我这样做的时候,你会做什么呢?就是这样。

除了这种少样本学习的方式之外,还可以进行零样本学习。有时可能希望检查AI模型的回答,并需要与另一个AI模型进行核对。也可能需要询问给出答案的AI模型来检查自己的答案,并为您提供关于其准确性或对该答案的信心的断言。这些都是可以进行的一系列思考,而且都发生在提示工程领域。

提示工程的优点是需要的专业知识最少,因为只需要修改提示,缺点是无法深入探究一些其他讨论的技术。

(2)提示学习:我们在模型前面放置了一个小模型,可以协助执行一些制定字符串以外的事情,因此有一个叫做提示调整(prompt tuning)的东西,还有另一种叫做 P调整(P-tunning)的技术。

(3)有效参数:这是种介于第二种与第四种之间的方法,类似于有监督的微调,但我们已经找到了减少所需时间的方法,这样我们就可以向现有模型引入新层,并仅更改这些节点的值。这意味着您并没有改变整个模型,您只是教给它新的技能,就可以真正擅长,但它永远不会忘记它在开始教授它和使其成为您的企业定制模型之前具备的旧技能。

(4)指令优化:是一种有监督的微调,或者类似 RLHF 的东西,这需要改变模型的参数,将花费更多的钱、需要更多的硬件以及更多的专业知识。但是想法是您希望经历这一过程,将新词汇灌输到模型中,并真正发展出您想要看到它展示的技能集,并使其真正熟练掌握这些技能。

现在,您已经有四个级别可以处理的方法,在定制您的模型时,可以在整个谱系上操作。

您打算为组织定制的生成式AI应用,与那些通用应用之间的主要区别是什么?当您使用通用基础模型(例如ChatGPT或Bing Chat)并提出“我上次向信用卡公司付款是什么时候?”之类的个人问题时,它完全不知道您在说什么,对吧?通用模型大部分会以某种方式回答,比如“我是两个月前训练的。我是在2021年9月训练的。我不知道那之后的情况”,或者以其他方式告诉您它没有您要找的信息。

企业想要的是将其定制数据提供给大型语言模型,这样当客户提出完全相同的问题时,就可以得到正确的答案,例如“您上次付款是在2023年5月27日”。因此,我们所做的是将通用基础模型变成我们自己的模型,通过为其提供定制数据,这是非常重要的。

领域特定数据不仅用于训练模型新词汇和提供增量知识以及教授新技能,您的领域特定数据还可以被摄入并放入向量数据库中。然后,那些小片段、那些文档片段,都可以被大型语言模型考虑,以制定其对最终用户的响应。

现在解释一下这张幻灯片上的图表。在左边您有一个以提示形式进来的领域特定问题,现在提示词并不是直接发送到大型语言模型。ChatGPT不是一个大型语言模型,而是一个应用程序,是作为服务运行的应用程序。如果您可以访问ChatGPT的话,就可以向其发送提示,它会与大型语言模型进行交流以获得答案。

您的提示词进入一个检索程序,其任务是充分理解提示,并且能够解析它以及从单词到因子的嵌入。一旦检索器理解了提示,它就可以访问一个向量数据库,其中存储了各种文档片段及其适当的索引,并进行所谓的语义搜索,以找到数据库中与提示中特定概念相似的其他内容。

现在,所有这些相似的小文档片段都可能在答案中发挥作用,从而制定出一个真正出色的答案,然后都被发送到定制的大型语言模型。

它们是如何进入模型?是通过提示词进入的。您可以使用4k、8k、16k等特定上下文大小,将这些内容馈送到大型语言模型中,以便为您提供出色的响应。您可以将提示词、其他背景信息、示例以及可用于生成答案的文档片段,放入该上下文中,这些都会被用于生成答案,并且通常会传递给人类。这称为检索增强生成,其好处在于可以使用您用于监督细调的相同数据。

通常您只需要使用少量数据来教授词汇和技能就能进行微调,然后大部分数据都被吸入向量数据库,以在称为检索增强生成的技术中提供更好的答案。

换句话说,大型语言模型能够通过使用通过检索程序提供给它的信息来增强其答案。确切地说,这就是所有这些概念如何结合在一起形成的,检索增强生成是当今AI启用应用程序中使用的一种非常强大的模式。

当使用自己的领域特定信息进行了定制模型,甚至拿了更多的内部数据放入了一个向量数据库中,这样就可以进行检索、增强生成,并开始对整个系统进行评估。所以现在就可以将模型大规模部署到生产环境中了。

当涉及到部署时,首先要考虑的是模型本身,是小型的还是庞大的?有几十个神经元,还是有几百个神经元?有多少层?有多少参数?然后根据这些因素,判断其所需要的内存规模,模型从系统内存中获取东西,需要比从GPU内存中耗费更多的时间,因此模型能否适应GPU内存,这一点非常重要。

接下来,你要了解一些实际的使用案例。比如客户提出的视频处理要求,最终需要获得实时的观看还是回放的内容?系统架构会根据实际上的需求而变化。

通常情况下,一个应用程序通过HTTPS进入基础大型语言模型或企业大型语言模型,用户发起调用、得到答案、再发起另一个调用、得到另一个答案。。。在涉及语音时需要将延迟降低到30毫秒或更短,如果你开始进入延迟非常重要的情况,那么就不要使用REST API,通过gRPC机制进入会更快、延迟更低。

关于使用案例的另一件事,就像使用ChatGPT时一样,当你给它一个提示时,它会立即回馈一个答案或一些东西供你阅读,与此同时,它会构建其余的答案并预测接下来的token,这就被称为token streaming。如果这是你想要的,那么确保你把所有这些都考虑进去。

现在根据你的模型属性与使用案例属性,就可以开始组建的基础架构了。是要在自己的私有数据中心中运行?是要在云服务提供商那里运行?还是可以像组装一些带有GPU的虚拟机一样?

然后你要做一些系统容错性与负载均衡的思考,将如何增加更多的容量来满足需求?当需求在深夜达到低谷时,你是否可以限制容量并节省一些钱?所以最后负载均衡通常可以使用像kubernetes这样的东西,因为它具有容错性和负载均衡功能,并且会处理非易失性存储能力和其他kubernetes为你所做的事情。

此外,安全性始终是一个重要的关注点,监视系统以便随时了解其健康状态也是如此。系统可能不仅仅是一个独立的AI系统,使用向量数据库中的数据。它可能会不断地与您组织内的其他数据源、其他应用程序进行交互。那么,这些集成是什么呢?一旦你把所有这些都搞清楚了,并且你已经准备好投入生产,并大规模部署,这将会为你的企业AI应用程序带来你所期望的结果,也是组织所期望的。

现在你的基础设施已经就绪,不必拼凑几十个开源应用程序、片段、库和其他东西,以使所有这些工作正常运行。我们所做的是创建了一些优化的内核,它们已经准备就绪,可以运行你的AI应用程序,并确保它在你想要的所有GPU上都得到加速。

我们可以利用跨多个节点存在的多个GPU来运行这个模型,在推理过程中是在规模上进行的。所发生的情况是,AI应用程序会调用大型语言模型进行推断,然后该模型为了得出良好的结果,需要在所有GPU之间进行大量通信,以便确定并执行所需的生成,以实际提供你所期望的结果,这就是它们如何一起协作的。

我们有预先制作的容器,只需来到Nvidia GPU云(NG C)并下载它们,甚至可以从你的云服务提供商那里获取。有很多种方法可以获取我们的容器,它们都经过了测试,其中包含了所有适当的软件,这样你就知道你有一个可以直接投入生产的捆绑包。

现在你的应用程序已经部署完成了,是可扩展的、可靠的、安全的,一切都很好。你只需要小心所获取的答案。这就是我们之前提到的所谓"防护栏(guardrails)"技术。

正如你在左侧幻灯片中所看到的,防护栏可以帮助你避免的情况包括人们试图跑题并向语言模型提问不相关的事情,以及它的注意力会分散的情况。此外,防护栏也很重要,因为它可以检查可能存在的安全问题,并捕获那些答案,确保它们不会传递给用户。

最后,涉及到与大型语言模型有关的任何事情,例如越狱并命令它逃脱束缚、执行任务。因此,你需要另一个应用程序,就像是警察,确保没有发生安全漏洞。左侧是输入提示,可以来自用户或AI。它们将发送到中间的大型语言模型。你需要确保在其中使用了防护栏,以确保一切始终处于最佳状态。这就是你完全运转、企业级、生成式AI应用程序的最后一个组件。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-03-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 GPUS开发者 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
向量数据库
腾讯云向量数据库(Tencent Cloud VectorDB)是一款全托管的自研企业级分布式数据库服务,专用于存储、检索、分析多维向量数据。该数据库支持多种索引类型和相似度计算方法,单索引支持千亿级向量规模,可支持百万级 QPS 及毫秒级查询延迟。腾讯云向量数据库不仅能为大模型提供外部知识库,提高大模型回答的准确性,还可广泛应用于推荐系统、自然语言处理等 AI 领域。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档