IST数据集 说明:包含70,000个灰度图像格式的手写数字(0-9) 使用案例:主要用于计算机视觉中的手写数字识别技术。它是一个对初学者友好的数据集,通常用于教育领域。 ImageNet 说明:一个包含1,400多万张图片的大型数据库,标注有20,000多个类别的标签。 使用案例:用于对象检测和图像分类算法的训练和基准测试。一年一度的ImageNet大规模视觉识别挑战赛(ILSVRC)一直是推动计算机视觉和深度学习技术发展的重要活动。 IMDb评论 说明:包含来自 IMDb的50,000篇电影评论,分为两组:训练和测试。每组包含相同数量的正面和负面评论。 使用案例:广泛应用于自然语言处理(NLP)中的情感分析任务。它有助于开发能理解文本中表达的情感(正面/负面)并对其进行分类的模型。 获取大型、高质量的数据集对于训练良好的模型极为重要。然而,这可能具有挑战性,尤其是对于较小的组织或个人搜索者而言。由于数据非常宝贵,大型机构通常不会共享数据,因为数据提供了竞争优势。 在透明度和开放性与盈利能力之间取得平衡的解决方案可以提高开放数据集的质量。 1.2.2 训练 管道的第二步是训练模型。那么,训练模型究竟意味着什么呢?首先,我们来看一个例子。一个机器学习模型(训练完成后)通常只有两个文件。例如,LLaMa 2(一个大型语言模型,类似于 GPT-4)就是两个文件: 参数,一个 140GB 的文件,其中包括数字。 run.c ,和一个简单的文件(约 500 行代码)。 第一个文件包含 LLaMa 2 模型的所有参数,run.c 包含如何进行推理(使用模型)的说明。这些模型都是神经网络。 图 30:神经网络的基本图示 在像上面这样的神经网络中,每个节点都有一堆数字。这些数字被称为参数,并存储在文件(惊喜!)参数中。获取这些参数的过程称为训练。下面是一个高度概括的过程。 想象一下训练一个识别数字(从0到9)的模型。我们首先收集数据(在这种情况下,我们可以使用MNIST数据集)。然后开始训练模型。 我们取第一个数据点,即 "5"。 然后,我们将图像("5")传递给网络。网络会对输入图像进行数学运算。 网络将输出一个0到9之间的数字。该输出是当前网络对该图像的预测。 现在有两种情况。网络要么是对的(它预测了 "5"),要么是错的(任何其他数字)。 如果它预测的数字正确,我们就不用做什么。 如果预测的数字不正确,我们将返回网络,对所有参数进行小幅修改。 在做了这些小改动后,我们再试一次。从技术上讲,网络现在有了新的参数,因此预测结果也会不同。 我们对所有数据点一直这样做,直到网络基本正确为止。 这一过程本质上是顺序性的。我们首先通过整个网络传递一个数据点,看看预测结果如何,然后更新模型的权重。 训练过程可以更加全面。首先,我们必须选择模型架构。我们应该选择哪种类型的神经网络?并不是所有的机器学习模型都是神经网络。其次,在确定哪种架构最适合我们的问题,或者至少是我们认为最适合的架构之后,我们需要确定训练流程。例如,我们将以何种顺序将数据传递给网络? 第三,我们需要硬件设置。我们要使用什么样的硬件(CPU、GPU、TPU)?我们又该如何对其进行训练? 最后,在训练模型的同时,我们要验证这个模型是否真的很好。我们希望在训练结束时测试这个模型是否能提供我们想要的输出结果。剧透(其实也不算剧透),训练模型的计算成本非常高。任何微小的低效都会带来巨大的成本。正如我们稍后将看到的,特别是对于像LLM这样的大型模型,低效的训练可能会让你付出数百万美元的代价。 在第2部分中,我们将再次详细讨论训练模型所面临的挑战。 1.2.3 推理 机器学习管道的第三步是推理,也就是使用模型。当我使用ChatGPT并得到回应时,模型正在执行推理。如果我用脸部解锁iPhone,脸部ID模型会识别我的脸并打开手机。该模型执行了推理。数据已经有了,模型已经训练好了,现在模型训练好了,我们就可以使用它,使用它就是推理。 严格来说,推理与网络在训练阶段做出的预测是一回事。回想一下,一个数据点通过网络,然后进行预测。然后根据预测的质量更新模型参数。推理的工作原理与此相同。因此,与训练相比,推理的计算成本非常低。训练LLaMa可能要花费数千万美元,但推理一次只需几分之一。与训练相比,计算成本更低。训练 LLaMa可能要花费数千万美元,但进行一次推理只需几分之一。 与训练相比,进行推理的成本很低,而且更容易并行化,这可能为小型闲置计算(如笔记本电脑和手机)提供了机会。 推理过程有几个步骤。首先,在实际生产中使用之前,我们需要对其进行测试。我们对训练阶段未见的数据进行推理,以验证模型的质量。其次,当我们部署一个模型时,会有一些硬件和软件要求。例如,如果我的iPhone上有人脸识别模型,那么该模型就可以放在苹果公司的服务器上。然而,这样做非常不方便,因为现在每次我想解锁手机时,都必须访问互联网并向苹果服务器发送请求,然后在该模型上进行推理。然而,如果想在任意时刻使用这种技术,进行人脸识别的模型就必须存在于你的手机上,这意味着该模型必须与你iPhone上的硬件类型兼容。 最后,在实践中,我们还必须维护这一模式。我们必须不断进行调整。我们训练和使用的模型并不总是完美的。硬件要求和软件要求也在不断变化。 1.2.4 机器学习管道是迭代式的 到目前为止,我把这个管道设计成了依次进行的三个步骤。你获取数据,处理数据,清理数据,一切都很顺利,然后你训练模型,模型训练完成后,你进行推理。这就是机器学习在实践中的美好图景。实际上,机器学习需要进行大量的迭代。因此,它不是一个链条,而是如下图所示的几个循环。 图 31:机器学习流水线可以形象地理解为由数据、训练和推理三个步骤组成的链条。不过,在实践中,这一过程的迭代性更强,如蓝色箭头所示。 为了理解这一点,我们可以举几个例子。例如,我们可能会收集一个模型的数据,然后尝试对其进行训练。在训练的过程中,我们会发现我们需要的数据量应该更多。这意味着我们必须暂停训练,回到数据步骤并获取更多数据。我们可能需要重新处理数据,或者进行某种形式的数据扩增。数据扩增就像是给数据改头换面,从老一套中创造出新的面貌。想象一下,你有一本相册,你想让它变得更有趣。你把每张照片都复制了几份,但在每份副本中,你都做了一些小改动--也许你旋转了一张照片,放大了另一张照片,或者改变了另一张照片的光线。现在,你的相册有了更多的变化,但实际上你并没有拍摄任何新照片。例如,如果你正在训练一个模特识别狗,你可能会水平翻转每张照片,然后把它也提供给模特。或者,我们改变照片中狗的姿势,如下图所示。就模型而言,这增加了数据集,但我们并没有到现实世界中去收集更多数据。 使用合成数据来训练机器学习模型可能会导致许多问题,因此能够证明数据的真实性在未来可能变得至关重要。 图 32:数据增强示例。对原始数据点进行多点扩增,无需到世界各地收集更多独特的数据点 迭代的第二个更明显的例子是,当我们实际训练了一个模型,然后将其用于实践,即进行推理时,我们可能会发现模型在实践中表现不佳或存在偏差。这意味着我们必须停止推理过程,返回并重新训练模型,以解决这些问题,如偏差和证明。 第三个也是非常常见的步骤是,一旦我们在实践中使用模型(进行推理),我们最终会对数据步骤进行修改,因为推理本身会产生新的数据。例如,想象一下建立一个垃圾邮件过滤器。首先,我们要收集数据。本例中的数据是一组垃圾邮件和非垃圾邮件。当模型经过训练并用于实践时,我的收件箱中可能会收到一封垃圾邮件,这意味着模型犯了一个错误。它没有把它归类为垃圾邮件,但它就是垃圾邮件。因此,当 Gmail用户选择 "这封邮件属于垃圾邮件 "时,就会产生一个新的数据点。之后,所有这些新数据点都会进入数据步骤,然后我们可以通过多做一些训练来提高模型的性能。 另一个例子是,想象一个人工智能在下棋。我们训练人工智能下棋所需的数据是大量棋局,以及谁赢谁输的结果。但当这个模型用于实际下棋时,就会为人工智能生成更多的数据。这意味着,我们可以从推理步骤回到数据,利用这些新的数据点再次改进我的模型。这种推理和数据相连的想法适用于很多场合。 本节旨在让你对机器学习模型的构建过程有一个高层次的了解,这个过程是非常反复的。它不像 "哦,我们只需获取数据,一次尝试就能训练出一个模型,然后将其投入生产"。 模型是不断更新的,因此不变的记录可能会给设计带来挑战。 1.3 机器学习的类型 我们将介绍三种主要的机器学习模型。 监督学习:"老师,教我方法" 无监督学习:"只需找到隐藏的模式“ 强化学习:"试一试,看什么有效" 1.3.1 监督学习 "老师,教我方法" 想象一下,你正在教孩子区分猫和狗。你(对一切都了如指掌的老师)给他们看很多猫和狗的图片,每次都告诉他们哪个是哪个。最终,孩子们学会了自己辨别。这几乎就是机器学习中监督学习的工作原理。 在监督学习中,我们有大量的数据(比如猫和狗的图片),而且我们已经知道答案(老师告诉他们哪个是狗,哪个是猫)。我们利用这些数据来训练一个模型。该模型会查看许多示例,并有效地学习模仿老师。 在这个例子中,每张图片都是一个原始数据点。答案(狗或猫)被称为"标签"。因此,这是一个标签数据集。每个数据点都包含一张原始图片和一个标签。 这种方法概念简单,功能强大。在医疗诊断、自动驾驶汽车和股票价格预测中,使用监督学习模型的应用很多。 这种方法概念简单,功能强大。在医疗诊断、自动驾驶汽车和股票价格预测中,使用监督学习模型的应用很多。 然而,可以想象,这种方法面临着许多挑战。例如,我们不仅需要获取大量数据,还需要标签。这可能非常昂贵。Scale.ai (opens new window) 等公司在这方面提供了有价值的服务。数据标注对稳健性提出了许多挑战。给数据贴标签的人可能会犯错,或者只是对标签有不同意见。从人类收集的所有标签中,有 20% 无法使用的情况并不少见。 激励机制和其他博弈论动态可能有助于提高开放数据集的质量。 1.3.2 无监督学习(Unsupervised Learning, USL) "只需找到隐藏的模式" 想象一下,你有一个装满各种水果的大篮子,但你并不熟悉所有的水果。你开始根据它们的外观、大小、颜色、质地甚至气味将它们分类。你不太清楚每种水果的名称,但你注意到有些水果彼此相似。也就是说,你在数据中发现了一些规律。 这种情况类似于机器学习中的无监督学习。在无监督学习中,我们会给模型一堆数据(比如各种水果的组合),但我们不会告诉模型每个数据是什么(我们不会给水果贴标签)。然后,模型会检查所有这些数据,并试图自己找出模式或分组。它可能会根据水果的颜色、形状、大小或任何其他它认为相关的特征进行分组。然而,模型找到的特征并不总是相关的。这就导致了许多问题,我们将在第 2 章中看到。 例如,模型最终可能会将香蕉和大蕉归为一组,因为它们都是长条形且呈黄色,而苹果和西红柿可能会被归为另一组,因为它们都是圆形且可能是红色。这里的关键在于,模型是在没有任何先验知识或标签的情况下找出这些分组的--它是从数据本身学习的,就像你根据可观察到的特征将未知水果分到不同的组中一样。 无监督学习是许多流行的机器学习模型的支柱,例如大型语言模型(LLM)。ChatGPT不需要人类通过提供标签来教它如何说每个句子。它只需分析语言数据中的模式,并学会预测下一个单词。 许多其他强大的生成式人工智能模型都依赖于无监督学习。例如,GAN(生成对抗网络)可用于生成人脸(即使这个人并不存在)。参见 https://thispersondoesnotexist.com/(opens new window) 图 33:人工智能生成的图像来自 https://thispersondoesnotexist.com 图 34:第二张人工智能生成的图片来自 https://thispersondoesnotexis t.com 上面的图片是人工智能生成的。我们并没有教这个模型"什么是人脸"。它是在大量人脸的基础上训练出来的,通过巧妙的架构,我们可以利用这个模型生成看似真实的人脸。请注意,随着生成式人工智能的兴起和模型的改进,对内容进行验证变得越来越困难。 加密解决方案可以让我们追踪内容的来源,并以可扩展的方式让我们安全地使用生成式人工智能。 1.3.3 强化学习 (Reinforcement Learning, RL) "试一试,看什么有效 "或 "从试验和错误中学习" 想象一下,您正在教一只狗做一个新的动作,比如捡球。每当狗狗做出接近你想要的动作时,比如跑向球或捡起球,你就给它点心吃。如果狗狗做了与此无关的事情,比如朝相反的方向跑,它就得不到食物。渐渐地,狗狗发现捡到球就能得到美味的食物,所以它就会一直这样做。这基本上就是机器学习领域中的强化学习(RL)。 在RL中,你有一个计算机程序或代理(如狗),它通过尝试不同的事情(如狗尝试不同的动作)来学习决策。如果代理做出了好的行为(比如捡球),它就会得到奖励(食物);如果做出了不好的行为,它就得不到奖励。随着时间的推移,代理会学会多做能获得奖励的好事,少做不能获得奖励的坏事。从形式上看,这就是最大化奖励函数。 最酷的地方在于:代理会自己通过试错找出这一切。现在,如果我们想构建一个人工智能来下棋,那么人工智能最初可以随意尝试走棋。如果最终赢得了比赛,人工智能就会得到奖励。然后,该模型就会学会走更多的胜棋。 这可以应用于许多问题,尤其是需要连续决策的问题。例如,RL方法可用于机器人与控制、国际象棋或围棋(如 AlphaGo)以及算法交易。 RL方法面临许多挑战。其一,代理可能需要很长时间才能"学会"有意义的策略。这对于学习下棋的人工智能来说是可以接受的。但是,当人工智能开始采取随机行动来观察哪些行动有效时,你会把你的个人资金投入到人工智能算法交易中吗?或者说,如果机器人一开始会采取随机行动,你会允许它住在你家吗? 图35:这是一些强化学习代理在训练过程中的视频:一个[真正的机器人](https://www.youtube.com/watch?v=n2gE7n11h1Y)和一个[模拟机器人](https://www.youtube.com/watch?v=hx_bgoTF7bs) 以下是每种机器学习的应用实例简述: 机器学习面临的挑战 本章概述了机器学习领域的问题。我们将有选择性地对该领域的某些问题展开。这样做有两个原因:1)简明扼要,全面概述该领域的挑战并考虑到细微差别会导致报告非常冗长;2)在讨论与加密货币的交叉点时,我们将重点关注相关问题。不过,本节本身只是从人工智能的角度撰写的。也就是说,我们不会在本节讨论密码学方法。 本节所涉主题概述: 从偏见到可访问性,数据面临着巨大的挑战。此外,数据层面上存在恶意的攻击也会导致机器学习模型的误判。 当模型(如GPT-X)在合成数据上进行训练时,会发生模型崩溃。这会对其造成不可逆转的损害。 标注数据可能非常昂贵、缓慢且不可靠。 根据不同的架构,训练机器学习模型会面临许多挑战。 模型并行化带来了巨大的挑战,例如通信开销。 贝叶斯模型可用于量化不确定性。例如:在进行推理时,模型会返回它的确定程度(如 80% 的确定性)。 LLM面临幻觉(hallucination)和训练困难等特殊挑战。 2.1 数据挑战 数据是任何类型机器学习模型的关键。不过,数据的要求和规模因使用的方法而异。无论是监督学习还是无监督学习,都需要原始数据(无标签数据)。 在无监督学习中,只有原始数据,不需要标注。这就缓解了许多与标注数据集相关的问题。然而,无监督学习所需的原始数据仍然会带来许多挑战。这包括 数据偏差:当训练数据不能代表所要模拟的真实世界场景时,机器学习中就会出现偏差。这可能导致偏差或不公平的结果,例如面部识别系统在某些人口群体上表现不佳,因为他们在训练数据中的代表性不足。 不均衡的数据集:通常,可用于训练的数据在不同类别之间的分布并不均衡。例如,在疾病诊断应用中,“无病”案例可能比"有病"案例多得多。这种不平衡会导致模型在少数民族/阶层上表现不佳。这个问题与偏见不同。 数据的质量和数量:机器学习模型的性能在很大程度上取决于训练数据的质量和数量。数据不足或质量不佳(如低分辨率图像或嘈杂的音频录音)会严重影响模型的有效学习能力。 数据的可获取性:获取大型、高质量的数据集可能是一项挑战,尤其是对于规模较小的机构或个人研究人员而言。大型科技公司在这方面往往具有优势,这可能导致机器学习模型开发方面的差距。 这是一项重大挑战。不过,众包数据集也会带来一些问题,比如数据质量的保证。经济激励和博弈论设计可以帮助创建开放的高质量数据集。 数据安全:保护数据免遭未经授权的访问并确保其在存储和使用过程中的完整性至关重要。安全漏洞不仅会损害隐私,还会导致数据被篡改,影响模型性能。 隐私问题:由于机器学习需要大量数据,处理这些数据可能会引发隐私问题,尤其是当其中包含敏感或个人信息时。确保数据隐私意味着尊重用户同意、防止数据泄露以及遵守 GDPR 等隐私法规。这可能非常具有挑战性(见下文示例)。 在机器学习模型中,删除特定用户的数据(遵守GDPR)是一项非常具有挑战性的工作。与数据库不同,我们不能随便删除一个条目。模型参数会根据提供的所有数据进行调整,因此在模型训练完成后删除特定用户的信息是非常困难的。 图 34: 数据隐私的一个特殊问题源于机器学习模型的性质。在普通数据库中,我可以有关于多人的条目。如果我的公司要求我删除这些信息,你只需从数据库中删除即可。然而,当我的模型经过训练后,它持有几乎整个训练数据的参数。不清楚哪个数字对应训练中的哪个数据库条目 2.1.1 模型崩溃 在无监督学习中,我们要强调的一个特殊挑战是模型崩溃。 在本文中,作者进行了一项有趣的实验。GPT-3.5 和 GPT-4 等模型是使用网络上的所有数据训练而成的。然而,这些模型目前正在被广泛使用,因此一年后互联网上的大量内容将由这些模型生成。这意味着,GPT-5 及以后的模型将使用 GPT-4 生成的数据进行训练。在合成数据上训练模型的效果如何?他们发现,在合成数据上训练语言模型会导致生成的模型出现不可逆转的缺陷。论文作者指出:"我们证明,如果我们要保持从网络上搜刮的大规模数据进行训练所带来的好处,就必须认真对待这一问题。事实上,当从互联网抓取的数据中出现由 LLM 生成的内容时,收集到的有关人类与系统之间真正交互行为的数据的价值将越来越大"。 这可能表明,围绕数据出处(追踪数据来源)的解决方案存在重大机遇。 图 35:模型崩溃示意图。随着使用人工智能模型生成的互联网内容越来越多,下一代模型的训练集中很可能包含合成数据,如本文所示 请注意,这种现象并非LLM所特有,它可能会影响各种机器学习模型和生成式人工智能系统(如变异自动编码器、高斯混合模型)。 现在,让我们来看看监督学习。在监督学习中,我们需要一个贴有标签的数据集。这意味着原始数据本身(一张狗的图片)和一个标签("狗")。标签由模型设计者手动选择,可以通过人工标注和自动化工具相结合的方式获得。这在实践中带来了许多挑战。这包括 主观性:决定数据的标签可能是主观的,从而导致模糊不清和潜在的伦理问题。一个人认为合适的标签,另一个人可能会有不同的看法。 标签的差异:同一个人(更不用说不同的人)重复运行可能会提供不同的标签。这就提供了 "真实标签 "的噪声近似值,因此需要质量保证层。例如,人类可能会收到一个句子,并负责标注该句子的情绪("快乐"、"悲伤"......等)。同一个人有时会给完全相同的句子贴上不同的标签。这就降低了数据集的质量,因为它在标签中引入了差异。在实践中,20% 的标签无法使用的情况并不少见。 想象一下,创建一个数据集来预测区块链上新协议的质量。你很可能会得到一个范围很广的分数,这取决于你所选择的评分系统的次活动性,以及你所调查的人的意见差异。 缺乏专家注释者:对于一个小众的医疗应用,人们可能很难获得大量有意义的标签数据。这是由于能够提供这些标签的人员(医学专家)十分稀缺。 罕见事件:对于许多事件来说,由于事件本身非常罕见,因此很难获得大量的标注数据。例如,发现流星的计算机视觉模型。 高成本:当试图收集大量高质量数据集时,成本可能高得惊人。由于上述问题,如果需要对数据集进行标注,成本尤其高昂。 还有很多问题,比如应对对抗性攻击和标签的可转移性。为了让读者对数据集的规模有一些直观的了解,请看下图。像 ImageNet这样的数据集包含1400万个标签数据点。 图 36:各种机器学习数据集的规模示意图。Common Crawl的近似值为10亿个网页,因此总字数远远超过这个数字。小型数据集(如 Iris)包含 150 幅图像。MNIST 大约有 70,000 张图像。请注意,这是一个对数比例 2.1.2 强化学习中的数据收集 在强化学习中,数据收集是一项独特的挑战。与监督学习不同的是,监督学习的数据是预先标记好的静态数据,而强化学习则依赖于通过与环境互动而产生的数据,这通常需要复杂的模拟或真实世界的实验。这就带来了一些挑战: 这一过程可能会耗费大量资源和时间,对于物理机器人或复杂环境而言尤其如此。如果机器人在真实世界中接受训练,那么它从试验和错误中学习可能会导致事故。或者,也可以考虑让训练机器人通过试验和错误来学习。 奖励稀少且延迟:在收到有意义的反馈之前,代理可能需要探索大量的行动,从而难以学习有效的策略。 确保所收集数据的多样性和代表性至关重要;否则,代理可能会过度适应狭隘的经验集,而不能通用化。在探索(尝试新行动)和利用(使用已知的成功行动)之间取得平衡使数据收集工作更加复杂,需要复杂的策略才能有效收集有用的数据。 值得强调的一点是,数据收集与推理直接相关。在训练一个强化学习代理下棋时,我们可以利用自我对弈来收集数据。自我对弈就像是与自己下棋,以获得进步。代理与自己的副本对弈,形成一个持续学习的循环。这种方法非常适合收集数据,因为它会不断产生新的场景和挑战,帮助代理从广泛的经验中学习。这一过程可以在多台机器上并行执行。由于推理的计算成本很低(与训练相比),这一过程对硬件的要求也很低。通过自我游戏收集数据后,所有数据都将被用于训练模型和改进模型。 闲置计算在分布式推理和数据收集中可以发挥强大作用,因为对硬件的要求比训练低得多。 2.1.3 对抗性数据攻击 数据毒化攻击:在这种攻击中,通过添加扰动来破坏训练数据,从而欺骗分类器,导致不正确的输出。例如,有人可能会在非垃圾邮件中添加垃圾邮件元素。这将导致将来在垃圾邮件过滤器的训练中加入这些数据时,性能下降。这可以通过在非垃圾邮件上下文中增加 "free"、"win"、"offer "或 "token"等词的使用来解决。 规避攻击:攻击者在部署过程中操纵数据,欺骗先前训练好的分类器。规避攻击在实际应用中最为普遍。针对生物识别验证系统的"欺骗攻击 "就是规避攻击的例子。 对抗性攻击:这是对合法输入的修改,目的是愚弄模型,或者使用专门设计的"噪音"来引起错误分类。请看下面的例子,在熊猫图像中添加噪音后,模型将其分类为长臂猿(置信度为99.3%)。 图 37:通过在熊猫图像中添加特殊类型的噪声,模型可预先判断出图像是长臂猿而不是熊猫。在进行对抗攻击时,我们向神经网络提供一幅输入图像(左图)。然后,我们使用梯度下降法构建噪声向量(中)。该噪声向量被添加到输入图像中,从而导致错误分类(右图)。(图片来源:本文图 1解释和利用对抗性实例》论文中的图 1) 在创建开放数据集时,有必要建立一个强大的质量控制层,以避免恶意攻击。此外,数据出处(追溯图像来源)可能会有所帮助。 2.2 训练方面的挑战 训练机器学习模型会面临许多挑战。本节绝不是为了说明这些挑战的严重性。相反,我们试图让读者了解挑战的类型和瓶颈所在。这将有助于建立直觉,从而能够评估将训练模型与密码原语相结合的项目构想。 请看下面这个无监督学习问题的例子。在无监督学习中,没有 "老师 "提供标签或指导模型。相反,模型会发现问题中隐藏的模式。考虑一个猫狗数据集。每只猫狗都有两种颜色:黑色和白色。我们可以使用一个无监督学习模型,通过将它们聚类为两组来找到数据中的模式。该模型有两种有效的方法: 将所有狗集中在一起,将所有猫集中在一起 将所有白色动物集中在一起,将所有黑色动物集中在一起。 请注意,从技术上讲,这两者都没有错。模型找到的模式很好。然而,要完全按照我们的要求来引导模型是非常具有挑战性的。 图 38:训练好的对猫和狗进行分类的模型最终可能会根据颜色将动物聚类在一起。这是因为在实践中很难指导无监督学习模型。所有图像均由人工智能使用 Dalle-E 生成 这个例子说明了无监督学习所面临的挑战。然而,在所有类型的学习中,能够评估模型在训练过程中的学习效果并进行潜在干预至关重要。这可以节省大量资金。 在无权限系统中,模型的训练无需专家监督,因此可能会浪费大量资源。处理早期停止等问题的自动化工具还很不成熟。 训练大型模型的挑战还有很多,这是一个非常简短的清单: 训练大规模机器学习模型,尤其是深度学习模型,需要大量的计算能力。这通常意味着要使用高端 GPU 或 TPU,而它们可能既昂贵又耗能。 与这些计算需求相关的成本不仅包括硬件,还包括连续运行这些机器(有时长达数周或数月)所需的电力和基础设施。 强化学习因其训练的不稳定性而闻名,模型或训练过程中的微小变化都可能导致结果的显著差异。 与Adam等监督学习中使用的更稳定的优化方法不同,强化学习中没有放之四海而皆准的解决方案。通常需要对训练过程进行定制,这不仅耗时,而且需要深厚的专业知识。 强化学习中的探索-开发两难问题使训练变得更加复杂,因为找到正确的平衡点对于有效学习至关重要,但却很难实现。 机器学习中的损失函数定义了模型的优化目标。选择错误的损失函数会导致模型学习到不恰当或次优的行为。 在复杂任务中,例如涉及不平衡数据集或多类分类的任务,选择、有时甚至定制设计正确的损失函数变得更加重要。 损失函数必须与应用的实际目标紧密结合,这就需要深入了解数据和预期结果。 在强化学习中,设计能持续、准确反映预期目标的奖励函数是一项挑战,尤其是在奖励稀少或延迟的环境中。 在国际象棋游戏中,奖励函数可以很简单:赢了得 1 分,输了得 0 分。但是,对于行走机器人来说,这个奖励函数可能会变得非常复杂,因为它将包含 "面向前方行走"、"不要随意摆动手臂 "等信息。 奖励函数(和损失函数)包含了模型去符号化者认为重要的主观因素。可能有必要建立管理制度,以确保为广泛使用的模型选择适当的函数。 在监督学习中,由于深度神经网络的 "黑箱 "性质,要了解是哪些特征驱动了复杂模型(如深度神经网络)的预测具有挑战性。 这种复杂性使得调试模型、了解其决策过程和提高其准确性变得十分困难。 这些模型的复杂性也对可预测性和可解释性提出了挑战,而这对在敏感或受监管领域部署模型至关重要。 同样,训练模式和所涉及的挑战也是非常复杂的话题。我们希望上述内容能让您对所涉及的挑战有一个大致的了解。如果您想深入了解该领域当前面临的挑战,我们推荐您阅读《应用深度学习中的开放性问题》(Open Problems in Applied Deep Learning)和《MLOps 指南》(MLOps guide)。 从概念上讲,机器学习模型的训练是按顺序进行的。但在很多情况下,并行训练模型至关重要。这可能只是因为模型太大,一个 GPU 难以容纳,并行训练可以加快训练速度。然而,并行训练模型会带来重大挑战,包括 通信开销:将模型分割到不同的处理器需要这些单元之间不断进行通信。这可能会造成瓶颈,尤其是对于大型模型而言,因为各单元之间的数据传输可能会耗费大量时间。 负载均衡:确保所有计算单元得到平等利用是一项挑战。不平衡会导致一些单元闲置,而另一些单元超负荷运行,从而降低整体效率。 内存限制:每个处理器单元的内存都是有限的。在不超出这些限制的情况下,有效管理和优化多个单元的内存使用情况是非常复杂的,尤其是大型模型。 实施的复杂性:设置模型并行涉及计算资源的复杂配置和管理。这种复杂性会增加开发时间和出错的可能性。 优化困难:传统的优化算法可能无法直接适用于模型并行化环境,也无法提高效率,这就需要进行修改或开发新的优化方法。 调试和监控:由于训练过程的复杂性和分布性增加,监控和调试分布在多个单元上的模型比监控和调试运行在单个单元上的模型更具挑战性。 分散和并行训练方面的基本新方法可以极大地推动机器学习的进步。 2.3 推理中的挑战 许多类型的机器学习系统面临的最重要挑战之一就是它们可能会"自信地出错"。ChatGPT可能会返回一个我们听起来很有把握的答案,但事实上这个答案是错误的。这是因为大多数模型经过训练后都会返回最有可能的答案。贝叶斯方法可用于量化不确定性。也就是说,模型可以返回一个有根据的答案,来衡量它有多确定。 考虑使用蔬菜数据训练图像分类模型。该模型可以获取任何蔬菜的图像,并返回它是什么,例如 "黄瓜 "或 "红洋葱"。如果我们给这个模型输入一张猫的图像,会发生什么呢?普通模型会返回它的最佳猜测,也许是 "白色洋葱"。这显然是不正确的。但这是模型的最佳猜测。贝叶斯模型的输出则是 "白色洋葱 "和一个确定度,例如 3%。如果模型有 3% 的确定性,我们可能就不应该根据这个预测采取行动。 图 39:常规模型预测(只返回最有可能的答案)和贝叶斯模型预测(返回预测结果的 s 分布)的示意图 这种形式的不确定性定性和推理在关键应用中至关重要。例如,医疗干预或金融决策。然而,贝叶斯模型的实际训练成本非常高,而且面临许多可扩展性问题。 推理过程中出现的更多挑战 维护:随着时间的推移,尤其是数据和现实世界场景发生变化时,保持模型的更新和正常运行。 RL 中的探索-利用:在探索新策略和利用已知策略之间取得平衡,尤其是在推理直接影响数据收集的情况下。 测试性能:确保模型在新的、未见过的数据上表现良好,而不仅仅是在训练过的数据上。 分布偏移:处理输入数据分布随时间发生的变化,这种变化会降低模型性能。例如,推荐引擎需要考虑客户需求和行为的变化。 某些模型生成缓慢:像扩散模型这样的模型在生成输出时可能需要大量时间,而且速度较慢。 高斯过程和大型数据集:随着数据集的增长,使用高斯过程进行推理的速度会越来越慢。 增加防护栏:在生产模型中实施制衡措施,防止出现不良结果或误用。 在封闭源模型中增加哪些防护措施,这对于确保不出现偏差至关重要。 2.4 LLM 面临的挑战 大型语言模型面临许多挑战。不过,由于这些问题受到了相当多的关注,我们在此仅作简要介绍。 LLM 不提供参考文献,但可以通过检索增强生成(RAG)等技术来缓解没有参考文献等问题。 幻觉:产生无意义、虚假或无关的输出。 训练运行需要很长时间,而且数据集重新平衡的边际值很难预测,这就导致了缓慢的反馈循环。 很难将人类的基本评估标准扩展到模型所允许的吞吐量。 量化在很大程度上是需要的,但其后果却鲜为人知。 下游基础设施需要随着模型的变化而变化。在与企业合作时,这意味着长时间的发布延迟(生产总是远远落后于开发)。 不过,我们想重点介绍论文《沉睡代理:训练通过安全训练持续存在的欺骗性 LLMs》一文中的一个例子。作者训练的模型会在提示年份为 2023 年时编写安全代码,但在提示年份为 2024 年时插入可被利用的代码。他们发现,这种后门行为可以持续存在,因此标准的安全训练技术无法将其清除。这种后门行为在最大的模型中最持久,在经过经训练产生思维链路以欺骗训练过程的的模型中也最持久,甚至就算思维链路已经消失也一直存在。 图 40 后门示意图。如果是 2024 年,模型的训练表现为 "正常",但如果是 2024 年,则策略表现不同。资料来源:本文图 1 模型训练过程的透明度至关重要,因为即使是开源模型,也可能被训练出只在特定情况下使用的后门。例如,想象一下,将一个有资金的钱包连接到一个人工智能代理,结果却发现了一个后门。然后,这个代理就会将所有资金转移到一个特定的地址,或者以不同的身份恶意行事。 在本章中,我们讨论了机器学习领域的许多挑战。显而易见,研究的巨大进步解决了许多此类问题。例如,基础模型为训练特定模型提供了巨大优势,因为您只需根据使用情况对其进行微调即可。此外,数据标注不再是全手工过程,使用半监督学习等方法可以避免大量的人工标注。 本章的总体目标是先让读者对人工智能领域的问题有一些直观的了解,然后再探讨人工智能与密码学的交叉问题。 报告外读物 3.1.1 Gensyn 网站: https://www.gensyn.ai/(opens new window) 一句话简介: 去中心化机器学习计算协议,实现人工智能开发民主化。 描述: 旨在通过将全球所有计算能力整合到一个全球超级集群中,彻底改变人工智能和加密货币领域。该网络专为机器学习计算协议设计,任何人都可以随时访问,从而推动机器学习的发展。通过利用区块链技术,Gensyn实现了人工智能训练过程的去中心化,允许点对点、低成本高效率地访问计算资源。这就消除了对云寡头和大型科技公司的依赖,为人工智能开发提供了一个更加民主和无许可的环境。Gensyn的协议使世界各地的设备(包括未充分利用的硬件)都能为去中心化计算网络做出贡献,为任何人、任何地方都能实现人工智能潜力的未来铺平了道路。 简短描述什么是数据类别中的公司,最好使用第 2 章中的框架进行细分。 3.1.2 Axiom 网站: https://www.axiom.xyz/(opens new window) 一句话简介: Axiom利用零知识证明,实现对以太坊历史的无信任链上查询和计算,适用于数据丰富的动态的去中心化应用。 描述: 为人工智能和加密货币的交叉领域铺平了道路,它使开发人员能够在以太坊上创建智能合约,这些合约可以通过零知识(ZK)证明对区块链数据的整个历史进行访问和计算。这一点至关重要,因为它为动态DeFi应用、定制化的预言机和链上忠诚度计划开辟了新的可能性,允许协议根据历史链上活动进行调整,而无需依赖外部预言机或修改已部署的合约。此外,该协议还旨在将 ZK 技术用于人工智能应用,例如通过确保数据完整性和无信任计算,Axiom可以验证在线内容并检测深度伪造。这使得Axiom成为以太坊上未来安全、数据丰富应用的关键参与者,利用人工智能和加密货币的优势,创建一个更加透明、高效和用户驱动的生态系统。 来源:金色财经lg...