0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

利用RAPIDS机器学习实现Transformer的微调

星星科技指导员 来源:NVIDIA 作者:NVIDIA 2022-04-20 10:28 次阅读

近年来, transformers 已成为一种强大的深度神经网络体系结构,已被证明在许多应用领域,如 自然语言处理 ( NLP )和 computer vision ,都超过了最先进的水平。

这篇文章揭示了在微调变压器时,如何以最快的训练时间获得最大的精度。我们展示了 RAPIDS Machine Learning 库中的 cuML 支持向量机( SVM )算法如何显著加快这一过程。 GPU 上的 CuML SVM 比基于 CPU 的实现快 500 倍。 这种方法使用支持向量机磁头,而不是传统的 多层感知器( MLP )头 ,因此可以精确轻松地进行微调。

什么是微调?为什么需要微调?

transformer 是一个 deep learning 模型,由许多多头、自我关注和前馈完全连接的层组成。它主要用于序列到序列任务,包括 NLP 任务,如机器翻译和问答,以及计算机视觉任务,如目标检测等。

从头开始训练 transformer 是一个计算密集型过程,通常需要几天甚至几周的时间。在实践中,微调是将预训练的变压器应用于新任务的最有效方法,从而减少培训时间。

用于微调变压器的 MLP 磁头

如图 1 所示,变压器有两个不同的组件:

主干,包含多个自我注意块和前馈层。

头部,对分类或回归任务进行最终预测。

在微调过程中, transformer 的主干网络被冻结,而只有轻型头部模块接受新任务的培训。 head 模块最常见的选择是 multi-layer perceptron ( MLP ),用于分类和回归任务。

pYYBAGJfb-iAGlrbAAEiRFk8VSQ882.png

图 1 。以 cuML-SVM 为磁头加速变压器的微调

事实证明,实现和调整 MLP 可能比看起来要困难得多。为什么?

有多个超参数需要调整: 层数、辍率、学习率、正则化、优化器类型等。选择要调整的超参数取决于您试图解决的问题。例如,辍 和 batchnorm 等标准技术可能会导致 回归问题的性能退化 。

必须采取更多措施防止过度安装。 变压器的输出通常是一个长的嵌入向量,长度从数百到数千不等。当训练数据大小不够大时,过度拟合很常见。

执行时间方面的性能通常不会得到优化。 用户必须为数据处理和培训编写样板代码。批量生成和从 CPU 到 GPU 的数据移动也可能成为性能瓶颈。

SVM 磁头用于变压器微调的优势

支持向量机 (支持向量机)是最受欢迎的监督学习方法之一,当存在有意义的预测性特征时,支持向量机是最有效的。由于 SVM 对过度拟合的鲁棒性,对于高维数据尤其如此。

然而,出于以下几个原因,数据科学家有时不愿尝试支持向量机:

它需要手工特征工程,这可能很难实现。

传统上,支持向量机速度较慢。

RAPIDS cuML 通过提供 在 GPU 上的加速比高达 500 倍 重新唤起了人们对重温这一经典模型的兴趣。有了 RAPIDS cuML ,支持向量机在数据科学界再次流行起来。

例如, RAPIDS cuML SVM 笔记本电脑已在多个 Kaggle 比赛中频繁使用:

TReNDS Neuroimaging by Ahmet Erdem

CommonLit Readability by Chris Deotte

PetFinder by Chris Deotte

由于 transformers 已经学会了以长嵌入向量的形式提取有意义的表示, cuML SVM 是头部分类器或回归器的理想候选。

与 MLP 头相比, cuML SVM 具有以下优势:

容易调整。 在实践中,我们发现在大多数情况下,仅调整一个参数 C 就足以支持 SVM。

速度 。在 GPU 上处理之前, cuML 将所有数据一次性移动到 GPU 。

多样化 。支持向量机的预测与 MLP 预测在统计上不同,这使得它在集合中非常有用。

Simple API. cuML SVM API 提供 scikit-learn 风格的拟合和预测功能。

案例研究: PetFinder 。我的掌门人竞赛

提出的带有 SVM 磁头的微调方法适用于 NLP 和 计算机视觉任务 。为了证明这一点,我们研究了 宠物搜寻者。我的掌门人竞赛 ,这是一个 Kaggle 数据科学竞赛,它根据宠物的照片预测了它们的受欢迎程度。

该项目使用的数据集由 10000 张手动标记的图像组成,每个图像都有一个我们想要预测的目标 pawpularity 。当 pawpularity 值在 0 到 100 之间时,我们使用回归来解决这个问题。

由于只有 10000 个标记图像,因此训练深层神经网络以从零开始获得高精度是不切实际的。相反,我们通过使用预训练的 swin transformer 主干,然后用标记的 pet 图像对其进行微调来实现这一点。

poYBAGJfb-mALrMPAAF-bIA87Ac361.png

图 2 。如何使用 cuML SVM 头进行微调。

如图 2 所示,我们的方法需要三个步骤:

首先,将使用 MLP 的回归头添加到主干 swin 变压器,并对主干和回归头进行微调。一个有趣的发现是,二进制交叉熵损失优于常见的均方误差损失( MSE ) 由于目标的分布 。

接下来,主干被冻结, MLP 头被替换为 cuML SVM 头。然后用常规的 MSE 损失对 SVM 头进行训练。

为了获得最佳预测精度,我们对 MLP 头和 SVM 头进行了平均。求值度量根意味着平方误差从 18 优化到 17.8 ,这对该数据集非常重要。

值得注意的是,第 1 步和第 3 步是可选的,在这里实施的目的是优化模型在本次比赛中的得分。仅步骤 2 是微调最常见的场景。因此,我们在步骤 2 测量了运行时间,并比较了三个选项: cuML SVM ( GPU )、 sklearn SVM ( CPU )和 PyTorchMLP ( GPU )。结果如图 3 所示。

pYYBAGJfb-qAVtGAAACPhWPJYcA406.png

图 3 。运行时比较

使用 sklearn SVM 对运行时间进行归一化, cuML SVM 实现了 15 倍的训练加速比和 28.18 倍的推理加速比。值得注意的是,由于 GPU 利用率高, cuML SVM 比 PyTorch MLP 更快。 笔记本可以在 Kaggle 上找到。

Transformer 微调的关键要点

Transformer 是革命性的深度学习模式,但培训它们很耗时。 GPU 上变压器的快速微调可以通过提供显著的加速而使许多应用受益。 RAPIDS cuML SVM 也可以作为经典 MLP 头的替代品,因为它速度更快、精度更高。

GPU 加速为 SVM 等经典 ML 模型注入了新的能量。使用 RAPIDS ,可以将两个世界中最好的结合起来:经典的机器学习( ML )模型和尖端的深度学习( DL )模型。在里面 RAPIDS cuML ,你会发现更多闪电般快速且易于使用的型号。

后记

在撰写和编辑本文时, PetFinder.my 掌门人竞赛 得出结论。 NVIDIA KGMON Gilberto Titericz 通过使用 RAPIDS 支持向量机获得第一名。他成功的解决方案是集中变压器和其他深层 CNN 的嵌入,并使用 RAPIDS SVM 作为回归头。

关于作者

Jiwei Liu 是 NVIDIA 的数据科学家,致力于 NVIDIA 人工智能基础设施,包括 RAPIDS 数据科学框架。

Chris Deotte 是 NVIDIA 的高级数据科学家。克里斯有博士学位。在计算科学和数学中,有一篇关于优化并行处理的论文。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • NVIDIA
    +关注

    关注

    14

    文章

    4978

    浏览量

    102994
  • gpu
    gpu
    +关注

    关注

    28

    文章

    4729

    浏览量

    128892
  • 人工智能
    +关注

    关注

    1791

    文章

    47188

    浏览量

    238268
收藏 人收藏

    评论

    相关推荐

    Transformer机器人技术的基础吗

    生成式预训练Transformer(GPT)被吹捧为将彻底改变机器人技术。但实际应用中,GPT需要庞大且昂贵的计算资源、冗长的训练时间以及(通常)非机载无线控制,诸多限制之下,GPT技术真的
    的头像 发表于 12-05 10:54 222次阅读
    <b class='flag-5'>Transformer</b>是<b class='flag-5'>机器</b>人技术的基础吗

    什么是机器学习?通过机器学习方法能解决哪些问题?

    来源:Master编程树“机器学习”最初的研究动机是让计算机系统具有人的学习能力以便实现人工智能。因为没有学习能力的系统很难被认为是具有智能
    的头像 发表于 11-16 01:07 384次阅读
    什么是<b class='flag-5'>机器</b><b class='flag-5'>学习</b>?通过<b class='flag-5'>机器</b><b class='flag-5'>学习</b>方法能解决哪些问题?

    NPU与机器学习算法的关系

    在人工智能领域,机器学习算法是实现智能系统的核心。随着数据量的激增和算法复杂度的提升,对计算资源的需求也在不断增长。NPU作为一种专门为深度学习
    的头像 发表于 11-15 09:19 433次阅读

    LLM和传统机器学习的区别

    在人工智能领域,LLM(Large Language Models,大型语言模型)和传统机器学习是两种不同的技术路径,它们在处理数据、模型结构、应用场景等方面有着显著的差异。 1. 模型结构
    的头像 发表于 11-08 09:25 409次阅读

    基于机器学习的IWR6843AOP跌倒和姿态检测实现

    电子发烧友网站提供《基于机器学习的IWR6843AOP跌倒和姿态检测实现.pdf》资料免费下载
    发表于 09-03 10:02 1次下载
    基于<b class='flag-5'>机器</b><b class='flag-5'>学习</b>的IWR6843AOP跌倒和姿态检测<b class='flag-5'>实现</b>

    【《大语言模型应用指南》阅读体验】+ 基础知识学习

    今天来学习大语言模型在自然语言理解方面的原理以及问答回复实现。 主要是基于深度学习和自然语言处理技术。 大语言模型涉及以下几个过程: 数据收集:大语言模型通过从互联网、书籍、新闻、社交媒体等多种渠道
    发表于 08-02 11:03

    Transformer能代替图神经网络吗

    Transformer作为一种在处理序列数据方面表现出色的深度学习模型,自其提出以来,已经在自然语言处理(NLP)、时间序列分析等领域取得了显著的成果。然而,关于Transformer是否能完全代替图神经网络(GNN)的问题,需
    的头像 发表于 07-12 14:07 446次阅读

    Transformer语言模型简介与实现过程

    在自然语言处理(NLP)领域,Transformer模型以其卓越的性能和广泛的应用前景,成为了近年来最引人注目的技术之一。Transformer模型由谷歌在2017年提出,并首次应用于神经机器
    的头像 发表于 07-10 11:48 1628次阅读

    大模型为什么要微调?大模型微调的原理

    难以达到最佳性能。为了提升模型在特定任务上的表现,微调(Fine-tuning)成为了一个关键步骤。本文将详细探讨大模型为什么要进行微调以及微调的原理,并附上相关的代码示例。
    的头像 发表于 07-10 10:43 3912次阅读

    使用PyTorch搭建Transformer模型

    Transformer模型自其问世以来,在自然语言处理(NLP)领域取得了巨大的成功,并成为了许多先进模型(如BERT、GPT等)的基础。本文将深入解读如何使用PyTorch框架搭建Transformer模型,包括模型的结构、训练过程、关键组件以及
    的头像 发表于 07-02 11:41 1599次阅读

    深度学习与传统机器学习的对比

    在人工智能的浪潮中,机器学习和深度学习无疑是两大核心驱动力。它们各自以其独特的方式推动着技术的进步,为众多领域带来了革命性的变化。然而,尽管它们都属于机器
    的头像 发表于 07-01 11:40 1327次阅读

    《魔兽世界》未采用生成式AI,利用机器学习实现护甲套装配置

    同时,海特还谈及了团队利用机器学习进行实验的情况。得益于此,《魔兽世界》的 24 个种族已配备新护甲套装。“此前,我们的美术师需为每个角色设计单独护甲,再依身高、体态、犄角乃至尾巴等特点进行修改。这显然并不轻松。”海特如是说。
    的头像 发表于 04-03 11:38 306次阅读

    机器学习8大调参技巧

    今天给大家一篇关于机器学习调参技巧的文章。超参数调优是机器学习例程中的基本步骤之一。该方法也称为超参数优化,需要搜索超参数的最佳配置以实现
    的头像 发表于 03-23 08:26 612次阅读
    <b class='flag-5'>机器</b><b class='flag-5'>学习</b>8大调参技巧

    一文详解Transformer神经网络模型

    Transformer模型在强化学习领域的应用主要是应用于策略学习和值函数近似。强化学习是指让机器在与环境互动的过程中,通过试错来
    发表于 02-20 09:55 1.4w次阅读
    一文详解<b class='flag-5'>Transformer</b>神经网络模型

    Transformer压缩部署的前沿技术:RPTQ与PB-LLM

    随着人工智能技术的迅速发展,Transformer在自然语言处理、机器翻译、问答系统等领域取得了显著的性能提升。
    的头像 发表于 01-24 14:05 1188次阅读
    <b class='flag-5'>Transformer</b>压缩部署的前沿技术:RPTQ与PB-LLM