Press "Enter" to skip to content

26 search results for "DataLoader"

使用Amazon SageMaker智能筛选,将深度学习模型训练加速高达35%

在当今快速发展的人工智能领域,深度学习模型已经成为创新的前沿, 并且在计算机视觉(CV),自然语言处理(NLP)和推荐系统等领域有广泛的应用然而,训练和优化这些模型所带来的成本不断增加,给企业带来了挑战这些成本主要是由[…]驱动的

Leave a Comment

使用MONAI Deploy在AWS上构建医学影像AI推理流程

在这篇文章中,我们向您展示如何创建一个可在使用MONAI Deploy App SDK构建的应用程序中重复使用的MAP连接器,以与AWS HealthImaging集成并加速从云原生DICOM存储中检索图像数据,用于医学影像人工智能工作负载MONAI Deploy SDK可用于支持医院运营我们还演示了两种托管选项,以便在SageMaker上大规模部署MAP AI应用程序

Leave a Comment

GANs如何打造人工名人身份?

介绍 在人工智能时代,一个引人注目的现象正在发生——生成对抗网络(GANs)巧妙地创建了人工名人身份。这种科技与创意的有趣融合,催生出了一种全新的数字名人。加入我们,一起探索GANs的世界,揭开创造迷人虚拟身份的魔力。GANs是如何实现这一切的?让我们来探索这个数字艺术背后的秘密。 来源:Hello Future 学习目标 在本文中,我们将学习: 生成对抗网络(GANs)的概念 如何训练生成器和判别器? 实施GAN模型的逐步过程 通过对抗训练获取GANs随时间改进的见解 本文是数据科学博文马拉松的一部分。 生成对抗网络(GAN) 生成对抗网络(GAN)是由Goodfellow提出的深度学习模型。从名称就可以理解GAN的目的。是的!我们用它来生成东西。它是一个生成数据的网络。这些数据包括图像、文本、音频等等,与真实世界数据相似。GAN包含两个神经网络,它们被称为生成器和判别器。在训练过程中,这两个网络相互竞争,不断提高自己。 生成器是什么? 生成器是负责生成的神经网络。为了输出结果,它需要输入。生成器所接受的输入是一些随机噪声。生成器将这些随机噪声转化为与真实数据相似的输出。每次从判别器那里得到反馈后,它都会不断改善自己,并在下一次生成更好的数据。例如,以图像生成为例,生成器会生成图像。随着训练的进行,它从随机噪声开始,最终改进输出,使其越来越逼真。第一次可能不会产生与原始数据最相似的输出。有时它甚至生成根本不是图像的东西。随着训练的进行,会生成更准确的数据。 判别器是什么? 判别器是负责评估的神经网络。为了更易于理解,我们可以把它称为侦探。判别器同时接收由生成器生成的真实数据和伪造数据。它必须区分伪造数据和真实数据。简单来说,它包括将实际数据与伪造数据进行分类。和生成器一样,随着训练的进行,判别器能够越来越好地区分它们。在第一次尝试时可能无法表现出最佳结果。但在训练过程中,它会不断提高,最终能够正确区分大部分伪造数据。正如我所说的,它必须像一个侦探一样工作。 对抗训练 生成器和判别器都要经历训练,这称为对抗训练。正如我之前提到的,它们会进行竞争性的训练。我们知道生成器生成的伪造数据看起来像真实数据,而判别器则试图区分伪造数据。在训练过程的下一步中,生成器旨在改善并生成能够欺骗判别器的伪造数据。然后判别器会检测到这些伪造数据。这样一来,它们在各自的任务中不断提高。该过程将持续进行,直到生成器生成的数据非常逼真且判别器无法与真实数据区分。此时,GAN达到了一种平衡状态,生成的数据非常类似于真实数据。 实施 让我们首先导入所有必要的库。这主要包括一些torch模块。我们将使用matplotlib进行可视化。 from __future__ import print_function%matplotlib…

Leave a Comment

在多云环境中使用亚马逊SageMaker训练和部署机器学习模型

在本文中,我们展示了在多云环境中利用AWS最广泛、最深入的人工智能/机器学习能力的众多选项之一我们展示了如何在AWS中构建和训练一个机器学习模型,并在另一个平台上部署该模型我们使用Amazon SageMaker训练模型,将模型工件存储在Amazon Simple Storage Service(Amazon S3)中,并在Azure中部署和运行该模型

Leave a Comment

通过微调来适应下游任务的BERT

介绍 适应下游任务的BERT包括利用预训练的BERT模型,并在其上添加一层并对其进行目标任务的训练以定制化。这种技术允许模型从用于训练的数据中了解任务细节,同时利用预训练的BERT模型的广泛语言表达知识。使用Python中的hugging face transformers包来微调BERT。描述您的训练数据,包括输入文本和标签。根据您的数据使用BertForSequenceClassification类的fit()函数来微调预训练的BERT模型以用于下游任务。 学习目标 本文的目标是深入探讨BERT的微调。 通过详细分析,突出微调对下游任务的好处。 全面阐述下游的操作机制。 为下游活动的BERT微调提供完整的顺序概述。 BERT如何进行微调? 通过训练一个新的层,将预训练模型与所需工作的训练数据适应到特定的下游任务,从而进行BERT的微调。这个过程使模型能够获得任务特定的知识,并提升在目标任务上的性能。 BERT微调过程中的主要步骤 1:使用hugging face transformers库加载预训练的BERT模型和分词器。 import torch # 根据可用性选择合适的设备(CUDA或CPU) gpu_available = torch.cuda.is_available() device = torch.device(“cuda”…

Leave a Comment

从零开始训练CodeParrot 🦜

在这篇博文中,我们将看看构建GitHub CoPilot背后的技术所需的内容,GitHub CoPilot是一个为程序员提供编码建议的应用程序。在这个逐步指南中,我们将学习如何从头开始训练一个名为CodeParrot 🦜的大型GPT-2模型。CodeParrot可以自动完成你的Python代码-在这里试试看。让我们从头开始构建它! 创建一个大型源代码数据集 我们首先需要一个大型的训练数据集。为了训练一个Python代码生成模型,我们访问了Google的BigQuery上可用的GitHub存储,并过滤出所有的Python文件。结果是一个包含2000万个文件的180GB数据集(在这里可用)。在最初的训练实验中,我们发现数据集中的重复文件严重影响了模型的性能。进一步调查数据集,我们发现: 0.1%的唯一文件占所有文件的15% 1%的唯一文件占所有文件的35% 10%的唯一文件占所有文件的66% 你可以在这个Twitter帖子中了解更多我们的发现。我们移除了重复文件,并应用了Codex论文中发现的相同的清理启发式方法。Codex是CoPilot背后的模型,它是一个在GitHub代码上进行微调的GPT-3模型。 清理后的数据集仍然有50GB,可以在Hugging Face Hub上找到:codeparrot-clean。有了这个数据集,我们可以设置一个新的分词器并训练一个模型。 初始化分词器和模型 首先我们需要一个分词器。让我们专门训练一个用于代码的分词器,以便它可以很好地分割代码标记。我们可以使用现有的分词器(例如GPT-2),并使用train_new_from_iterator()方法直接在我们自己的数据集上进行训练。然后将其推送到Hub。请注意,为了保持代码块的紧凑,我们省略了导入、参数解析和日志记录等代码示例中的部分。但你可以在这里找到包括预处理和下游任务评估的完整代码。 # 用于训练的迭代器 def batch_iterator(batch_size=10): for _ in tqdm(range(0, args.n_examples, batch_size)):…

Leave a Comment

介绍 🤗 加速

🤗 加速 在任何设备上运行你的原始 PyTorch 训练脚本。 大多数高级库都支持分布式训练和混合精度,但是它们引入的抽象需要用户学习新的 API,如果他们想要自定义底层的训练循环。🤗 加速是为 PyTorch 用户设计的,他们希望对自己的训练循环拥有完全控制,但又不愿意编写(和维护)使用分布式训练(多个 GPU 在一个或多个节点上,TPU,…)或混合精度训练所需的样板代码。未来的计划包括支持 fairscale、deepseed、AWS SageMaker 特定的数据并行和模型并行。 它提供了两个东西:一个简单一致的 API,抽象了那些样板代码,以及一个启动命令,可以在各种设置上轻松运行这些脚本。 简单集成! 让我们先看一个例子: import torch import torch.nn.functional as F…

Leave a Comment

使用PyTorch完全分片的数据并行加速大型模型训练

在这篇文章中,我们将看看如何利用加速库来训练大型模型,使用户能够利用最新的PyTorch FullyShardedDataParallel (FSDP)功能。 随着机器学习(ML)模型的规模、大小和参数的不断增长,ML从业者发现在他们的硬件上训练甚至加载这样大的模型变得困难。一方面,已经发现大型模型学习速度快(数据和计算效率高),与较小的模型相比具有显著的性能优势[1];另一方面,使用现有的大多数硬件来训练这样的模型变得难以实现。 分布式训练是实现训练这样大型ML模型的关键。在大规模分布式训练领域,近年来取得了重大进展。以下是其中最显著的几个进展: 使用ZeRO(Zero Redundancy Optimizer)的数据并行性[2] 阶段1:将优化器状态在数据并行工作器/ GPU 之间分片 阶段2:将优化器状态 + 梯度在数据并行工作器/ GPU 之间分片 阶段3:将优化器状态 + 梯度 + 模型参数在数据并行工作器/ GPU 之间分片 CPU 卸载:在…

Leave a Comment

使用Kili和HuggingFace AutoTrain进行意见分类

介绍 了解用户需求对于任何与用户相关的业务来说都是至关重要的。但这也需要大量的辛勤工作和分析,而这是非常昂贵的。为什么不利用机器学习呢?通过使用Auto ML,可以减少编码量。 在本文中,我们将利用HuggingFace AutoTrain和Kili构建一个用于文本分类的主动学习流水线。Kili是一个通过质量训练数据创建的数据中心方法来赋能机器学习的平台。它提供了协作数据标注工具和API,使可靠的数据集构建和模型训练之间的快速迭代成为可能。主动学习是一个过程,其中您将标记的数据添加到数据集中,然后进行迭代地重新训练模型。因此,它是无限的,并且需要人类来标记数据。 作为本文的一个具体示例用例,我们将使用来自Google Play Store的VoAGI用户评论来构建我们的流水线。然后,我们将使用我们构建的流水线对评论进行分类。最后,我们将对分类的评论应用情感分析。然后我们将分析结果,更容易理解用户的需求和满意度。 使用HuggingFace进行自动训练 自动化机器学习是指自动化机器学习流程的一个术语。它还包括数据清洗、模型选择和超参数优化。我们可以使用🤗 transformers进行自动化的超参数搜索。超参数优化是一个困难且耗时的过程。 虽然我们可以通过使用transformers和其他强大的API自己构建我们的流水线,但也可以使用AutoTrain进行完全自动化。AutoTrain是建立在许多强大的API(如transformers、datasets和inference-api)之上的。 数据清洗、模型选择和超参数优化步骤在AutoTrain中都是完全自动化的。可以充分利用这个框架为特定任务构建可供生产使用的SOTA转换器模型。目前,AutoTrain支持二分类和多标签文本分类、标记分类、抽取式问答、文本摘要和文本评分。它还支持英语、德语、法语、西班牙语、芬兰语、瑞典语、印地语、荷兰语等许多语言。如果您的语言在AutoTrain中不受支持,也可以使用自定义模型和自定义分词器。 Kili Kili是一个面向数据中心业务的端到端AI训练平台。Kili提供了优化的标注功能和质量管理工具来管理您的数据。您可以快速注释图像、视频、文本、pdf和语音数据,同时控制数据集的质量。它还具有用于GraphQL和Python的强大API,极大地简化了数据管理。 它可在线或本地使用,并且可以在计算机视觉、自然语言处理和OCR上实现现代机器学习技术。它支持文本分类、命名实体识别(NER)、关系抽取等NLP/OCR任务。它还支持计算机视觉任务,如目标检测、图像转录、视频分类、语义分割等等! Kili是一种商业工具,但您也可以创建一个免费的开发者帐户来尝试Kili的工具。您可以从定价页面了解更多信息。 项目 我们将以评论分类和情感分析为例,来了解一个移动应用程序的见解。 我们从Google Play Store中提取了大约4万条VoAGI的评论。我们将逐步对此数据集中的评论文本进行标注。然后我们将构建一个评论分类的流水线。在建模过程中,第一个模型将使用AutoTrain准备。然后我们还将构建一个不使用AutoTrain的模型。 项目的所有代码和数据集都可以在GitHub存储库中找到。 数据集 让我们首先看一下原始数据集,…

Leave a Comment

欢迎 fastai 加入 Hugging Face Hub

让神经网络再次变得不酷…并分享它们 fast.ai生态系统在使深度学习变得易用方面做出了巨大贡献。Hugging Face的使命是普及优秀的机器学习。让我们将对机器学习的独占访问,包括预训练模型,成为过去的事情,并进一步推动这个令人惊奇的领域。 fastai是一个开源的深度学习库,利用PyTorch和Python提供高级组件,以在文本、视觉和表格数据上训练快速而准确的神经网络。然而,fast.ai作为一家公司,不仅仅是一个库;它已经发展成为一个蓬勃发展的开源贡献者和学习神经网络的人们的生态系统。作为一些例子,看看他们的书和课程。加入fast.ai的Discord和论坛。加入他们的社区将能够保证你通过参与学习。 正因为所有这些原因(本文的作者也是通过fast.ai课程开始了他的学习之旅),我们自豪地宣布,fastai从业者现在可以使用一行Python代码将模型分享和上传到Hugging Face Hub。 👉 在本文中,我们将介绍fastai和Hub之间的集成。此外,您可以将此教程作为Colab笔记本打开。 我们要感谢fast.ai社区,特别是Jeremy Howard、Wayde Gilliam和Zach Mueller对他们的反馈🤗。本博客受到了fastai文档中Hugging Face Hub部分的很大启发。 为什么要分享到Hub? Hub是一个中心平台,任何人都可以分享和探索模型、数据集和机器学习演示。它拥有最广泛的开源模型、数据集和演示的集合。 在Hub上分享可以通过使您的fastai模型可供他人下载和探索来放大其影响力。您还可以使用fastai模型进行迁移学习;将别人的模型作为您任务的基础。 任何人都可以通过在hf.co/models网页上按照fastai库进行过滤来访问Hub中的所有fastai模型,如下图所示。 除了免费的模型托管和向更广泛的社区展示之外,Hub还基于git(对于大文件使用git-lfs)具有内置的版本控制和用于发现和可重现性的模型卡片。有关浏览Hub的更多信息,请参阅此介绍。 加入Hugging Face和安装 要在Hub上共享模型,您需要拥有一个用户。在Hugging Face网站上创建它。 huggingface_hub库是一个轻量级的Python客户端,具有与Hugging…

Leave a Comment

多变量概率时间序列预测与Informer

介绍 几个月前,我们介绍了时间序列变换器,它是将传统的Transformer(Vaswani等人,2017年)应用于预测,并展示了单变量概率预测任务的示例(即单独预测每个时间序列的一维分布)。在本文中,我们介绍了Informer模型(Zhou, Haoyi等人,2021年),这是AAAI21最佳论文,现在已经在🤗 Transformers中可用。我们将展示如何使用Informer模型进行多变量概率预测任务,即预测未来时间序列目标值的向量分布。需要注意的是,这也适用于传统的时间序列变换器模型。 多变量概率时间序列预测 就概率预测的建模而言,当处理多变量时间序列时,Transformer/Informer不需要进行任何更改。在单变量和多变量设置中,模型将接收一个向量序列,因此唯一的变化在于输出或发射方面。 对于高维数据的完整条件分布建模可能会导致计算开销过大,因此方法会采用一些分布的近似方法,最简单的方法是将数据建模为来自同一族分布的独立分布,或者对完整协方差进行低秩近似等。在这里,我们只采用独立(或对角)发射,这在我们实现的分布族中是支持的。 Informer – 内部原理 Informer基于传统的Transformer(Vaswani等人,2017年),引入了两个主要改进。为了理解这些改进,让我们回顾一下传统Transformer的缺点: 经典自注意力的二次计算:传统Transformer的计算复杂度为O(T^2D),其中T是时间序列长度,D是隐藏状态的维度。对于长序列时间序列预测(也称为LSTF问题),这可能会导致计算开销非常大。为了解决这个问题,Informer采用了一种称为ProbSparse注意力的新的自注意机制,其时间和空间复杂度为O(T log T)。 堆叠层时的内存瓶颈:当堆叠N个编码器/解码器层时,传统Transformer的内存使用量为O(NT^2),这限制了模型处理长序列的能力。Informer使用了一种称为Distilling操作的方法,将层之间的输入大小减小到其一半。通过这样做,可以将整体内存使用量减小为O(N⋅T log T)。 正如您所看到的,Informer模型的动机类似于Longformer(Beltagy等人,2020年),Sparse Transformer(Child等人,2019年)和其他自然语言处理论文,用于减少自注意机制的二次复杂度,特别是在输入序列较长时。现在,让我们深入了解ProbSparse注意力和Distilling操作,并附带代码示例。 ProbSparse注意力 ProbSparse的主要思想是经典自注意力分数形成了一个长尾分布,其中“活跃”的查询位于“头部”分数中,而“懒惰”的查询位于“尾部”区域中。通过“活跃”查询,我们指的是一个查询qi,使得点积⟨qi, ki⟩对主要注意力产生贡献,而“懒惰”的查询形成的点积生成的注意力是微不足道的。这里,qi和ki分别是Q和K注意力矩阵中的第i行。 在理解“活跃”和“懒惰”查询的思想之后,ProbSparse注意力选择“活跃”查询,并创建一个缩减的查询矩阵Qreduced,用于在O(T log T)的时间内计算注意力权重。让我们通过代码示例更详细地了解这一点。…

Leave a Comment

使用Hugging Face和Flower的联合学习

本教程将展示如何利用Hugging Face和Flower在多个客户端上联合训练语言模型。更具体地说,我们将对IMDB评分数据集上的预训练Transformer模型(distilBERT)进行微调,用于序列分类。最终目标是判断电影评分是积极的还是消极的。 此外,还提供了一个笔记本,但它不是在多个独立的客户端上运行,而是利用Flower的模拟功能(使用flwr[‘simulation’]),以在Google Colab中模拟联合设置(这意味着我们将调用start_simulation而不是start_server,并且需要进行一些其他修改)。 依赖项 为了跟随本教程,您需要安装以下软件包:datasets、evaluate、flwr、torch和transformers。可以使用pip来完成安装: pip install datasets evaluate flwr torch transformers 标准的Hugging Face工作流程 处理数据 为了获取IMDB数据集,我们将使用Hugging Face的datasets库。然后,我们需要对数据进行标记化并创建PyTorch的数据加载器,这些都在load_data函数中完成: import random import torch from datasets import…

Leave a Comment

使用Transformer进行图分类

在之前的博客中,我们探讨了关于图机器学习的一些理论方面。这篇博客将介绍如何使用Transformers库进行图分类(您也可以通过下载演示笔记本来跟随这个过程!) 目前,在Transformers中唯一可用的图转换模型是微软的Graphormer,所以我们将在这里使用它。我们期待看到其他人将会使用和整合哪些模型 🤗 要求 要按照本教程操作,您需要安装datasets和transformers(版本>=4.27.2),您可以使用pip install -U datasets transformers来安装。 数据 要使用图数据,您可以从自己的数据集开始,或者使用Hub上提供的数据集。我们将重点介绍如何使用已有的数据集,但是您也可以随意添加您自己的数据集! 加载 从Hub加载图数据集非常简单。让我们加载”ogbg-mohiv”数据集(Stanford的Open Graph Benchmark中的一个基准数据集),该数据集存储在OGB仓库中: from datasets import load_dataset # Hub上只有一个分割 dataset = load_dataset(“OGB/ogbg-molhiv”) dataset…

Leave a Comment

Can't find what you're looking for? Try refining your search: