Press "Enter" to skip to content

四海吧 Posts

使用Amazon SageMaker轻松部署Hugging Face模型

今年早些时候,我们宣布与亚马逊建立战略合作,以便公司更轻松地在亚马逊SageMaker中使用Hugging Face,并更快地发布尖端的机器学习功能。我们引入了新的Hugging Face深度学习容器(DLC),以在亚马逊SageMaker中训练Hugging Face Transformer模型。 今天,我们很高兴与您分享一个新的推理解决方案,它使使用亚马逊SageMaker部署Hugging Face Transformers变得比以往任何时候都更容易!借助新的Hugging Face推理DLC,您只需再添加一行代码,即可部署已训练好的模型进行推理,或者选择来自模型中心的10,000多个公开可用模型,并使用亚马逊SageMaker部署它们。 在SageMaker中部署模型可以为您提供生产就绪的端点,可以在AWS环境中轻松扩展,并具有内建的监控和大量企业功能。这是一个令人惊叹的合作,我们希望您能充分利用它! 以下是如何使用新的SageMaker Hugging Face推理工具包部署基于Transformers的模型: from sagemaker.huggingface import HuggingFaceModel # 创建Hugging Face模型类并将其部署为SageMaker端点 huggingface_model = HuggingFaceModel(…).deploy() 就是这样!🚀 要了解有关使用新的Hugging…

Leave a Comment

欢迎 spaCy 加入 Hugging Face Hub

spaCy 是一个广泛应用于工业界的先进自然语言处理库。spaCy 提供了易于使用和训练的管道,用于命名实体识别、文本分类、词性标注等任务,并且可以构建强大的应用程序来处理和分析大量文本。 Hugging Face 使得与社区分享 spaCy 管道非常简单!只需一个命令,您就可以上传任何管道包,同时生成漂亮的模型卡和所有所需元数据。推断 API 目前支持开箱即用的命名实体识别,并且您可以在浏览器中交互式地尝试您的管道。您还将获得一个用于从任何位置进行平滑从原型到生产的 pip install 的实时 URL! 查找模型 在 spaCy 机构中可以找到超过 60 个经典模型。这些模型来自最新的 3.1 版本,所以您现在可以尝试最新发布的模型!此外,您还可以在这里找到社区中的所有 spaCy 模型 https://huggingface.co/models?filter=spacy…

Leave a Comment

欢迎 Stable-baselines3 加入 Hugging Face Hub 🤗

在Hugging Face,我们为深度强化学习的研究人员和爱好者贡献了生态系统。这就是为什么我们很高兴地宣布我们将Stable-Baselines3集成到Hugging Face Hub中。 Stable-Baselines3是最流行的PyTorch深度强化学习库之一,它可以轻松训练和测试各种环境中的智能体(Gym、Atari、MuJoco、Procgen等)。通过这个集成,您现在可以托管您的保存模型💾并从社区中加载强大的模型。 在本文中,我们将展示如何实现这一点。 安装 要在Hugging Face Hub中使用stable-baselines3,您只需要安装这两个库: pip install huggingface_hub pip install huggingface_sb3 查找模型 我们目前正在上传玩Space Invaders、Breakout、LunarLander等游戏的智能体的保存模型。除此之外,您还可以在这里找到社区中的所有stable-baselines-3模型 当您找到所需的模型时,您只需要复制存储库ID: 从Hub下载模型 这个集成的最酷功能是您现在可以非常容易地从Hub加载一个保存的模型到Stable-baselines3。 为了做到这一点,您只需要复制包含您保存的模型和存储库中保存的模型zip文件的repo-id。 例如:sb3/demo-hf-CartPole-v1 :…

Leave a Comment

介绍Hugging Face上的决策Transformer 🤗

在Hugging Face,我们为深度强化学习研究人员和爱好者做出了贡献,为此生态系统做出了贡献。最近,我们已经集成了稳定的基线3等深度强化学习框架。 今天,我们很高兴地宣布,我们将决策变换器这种离线强化学习方法整合到了🤗 transformers库和Hugging Face Hub中。我们在改进深度强化学习领域的可访问性方面有一些令人兴奋的计划,并期待在未来几周和几个月内与您分享。 什么是离线强化学习? 介绍决策变换器 在🤗 Transformers中使用决策变换器 结论 下一步是什么? 参考文献 什么是离线强化学习? 深度强化学习(RL)是一种构建决策制定代理的框架。这些代理旨在通过试错与环境进行交互并接收奖励作为唯一的反馈来学习最优行为(策略)。 代理的目标是最大化其累积奖励,称为回报。因为RL基于奖励假设:所有目标都可以描述为最大化预期的累积奖励。 深度强化学习代理通过批量经验进行学习。问题是,它们是如何收集经验的呢?: 在线和离线设置下强化学习的比较,图片来源于本文 在在线强化学习中,代理直接收集数据:它通过与环境交互收集一批经验。然后,它立即使用这些经验(或通过一些回放缓冲区)进行学习(更新其策略)。 但这意味着你要么直接在真实世界中训练你的代理,要么拥有一个模拟器。如果你没有一个,你需要构建它,这可能非常复杂(如何在环境中反映复杂的现实世界?),昂贵,并且不安全,因为如果模拟器存在缺陷,代理将利用它们以获得竞争优势。 另一方面,在离线强化学习中,代理只使用从其他代理或人类示范收集的数据。它不与环境交互。 具体过程如下: 使用一个或多个策略和/或人类互动创建一个数据集。 在这个数据集上运行离线RL来学习一个策略 这种方法有一个缺点:反事实查询问题。如果我们的代理决定做一些我们没有数据的事情怎么办?例如,在交叉口右转,但我们没有这个轨迹。…

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

在现代CPU上扩展BERT类模型的推断 – 第2部分

介绍:使用英特尔软件优化 CPU 上的 AI 效率 正如我们在之前的博客文章中详细介绍的那样,英特尔 Xeon CPU 提供了一组专为 AI 工作负载设计的特性,例如 AVX512 或 VNNI(矢量神经网络指令),用于使用整数量化神经网络进行高效推断,以及额外的系统工具,以确保以最高效的方式完成工作。在本博客文章中,我们将重点介绍软件优化,并让您了解英特尔的新一代 Ice Lake Xeon CPU 的性能。我们的目标是为您提供软件方面的全部信息,以充分利用您的英特尔硬件。与之前的博客文章一样,我们将展示基准测试结果和图表,以及新的工具,使所有这些参数和特性易于使用。 今年四月,英特尔推出了最新一代英特尔 Xeon 处理器,代号 Ice Lake,针对更高效和高性能的 AI…

Leave a Comment

使用Optimum优化的IPU开始使用Hugging Face Transformers

Transformer模型在各种机器学习任务上都表现出极高的效率,如自然语言处理、音频处理和计算机视觉。然而,这些大型模型的预测速度可能使它们在对话应用或搜索等对延迟敏感的用例中变得不切实际。此外,优化它们在实际环境中的性能需要相当多的时间、精力和技能,这是许多公司和组织所无法达到的。 幸运的是,Hugging Face推出了Optimum,这是一个开源库,可以大大简化在各种硬件平台上降低Transformer模型预测延迟的过程。在本博文中,您将了解如何为Graphcore智能处理单元(IPU)加速Transformer模型,Graphcore IPU是一个专为AI工作负载从头设计的高度灵活、易于使用的并行处理器。 Optimum遇见Graphcore IPU 通过Graphcore和Hugging Face之间的合作,我们现在推出了第一个针对IPU进行优化的BERT模型。在接下来的几个月中,我们将推出更多这样的IPU优化模型,涵盖视觉、语音、翻译和文本生成等各个应用领域。 Graphcore的工程师们使用Hugging Face transformers实现并优化了BERT,帮助开发人员轻松训练、微调和加速他们的最先进模型。 开始使用IPUs和Optimum 让我们以BERT作为例子,帮助您开始使用Optimum和IPUs。 在本指南中,我们将使用Graphcloud中的IPU-POD16系统,Graphcloud是Graphcore的基于云的机器学习平台,并按照《Graphcloud入门》中的PyTorch设置说明进行操作。 Graphcore的Poplar SDK已经安装在Graphcloud服务器上。如果您有其他设置,请在《IPU的PyTorch用户指南》中找到适用于您系统的指令。 设置Poplar SDK环境 您需要运行以下命令来设置几个环境变量,以启用Graphcore工具和Poplar库。在运行Poplar SDK版本2.3的最新系统上,您可以在文件夹/opt/gc/poplar_sdk-ubuntu_18_04-2.3.0+774-b47c577c2a/中找到它们。 为了使用PyTorch,您需要同时运行Poplar和PopART(Poplar Advanced Runtime)的enable脚本: $ cd…

Leave a Comment

使用Hugging Face Transformers和Amazon SageMaker部署GPT-J 6B进行推理

将近6个月前的这一天,EleutherAI发布了GPT-J 6B,这是OpenAI GPT-3的一个开源替代品。GPT-J 6B是EleutherAI的GPT-NEO系列的继任者,该系列是基于GPT架构的基于Transformer的语言模型,用于文本生成。 EleutherAI的主要目标是训练一个与GPT-3相同规模的模型,并以开放许可的形式向公众提供。 在过去的6个月里,GPT-J引起了研究人员、数据科学家甚至软件开发人员的极大兴趣,但将GPT-J部署到实际应用和产品中仍然非常具有挑战性。 有一些托管解决方案可以用于生产工作负载,比如Hugging Face Inference API,或者使用EleutherAI的6b playground进行实验,但很少有关于如何轻松将其部署到自己的环境中的示例。 在本博客文章中,您将学习如何使用Amazon SageMaker和Hugging Face推理工具包轻松部署GPT-J,只需几行代码即可进行可扩展、可靠和安全的实时推理,使用常规大小的GPU实例与NVIDIA T4(约500美元/月)。 但在开始之前,我想解释一下为什么部署GPT-J到生产环境中具有挑战性。 背景 这个60亿参数模型的权重表示了大约24GB的内存占用。要以float32加载它,至少需要2倍于模型大小的CPU RAM:1倍用于初始权重,另外1倍用于加载检查点。因此,对于GPT-J,至少需要48GB的CPU RAM才能加载模型。 为了使模型更易于访问,EleutherAI还提供了float16权重,并且transformers在加载大型语言模型时有新的选项来减少内存占用。将所有这些组合起来,加载模型大约需要12.1GB的CPU RAM。 from transformers import…

Leave a Comment

使用n-gram在🤗 Transformers中提升Wav2Vec2性能

Wav2Vec2是一种流行的预训练模型,用于语音识别。该模型由Meta AI Research于2020年9月发布,其创新的架构推动了自监督预训练在语音识别方面的进展,例如Ng等人,2021年,Chen等人,2021年,Hsu等人,2021年和Babu等人,2021年。在Hugging Face Hub上,Wav2Vec2最受欢迎的预训练检查点当前每月下载量超过250,000次。 使用连续时间分类(CTC),预训练的类似Wav2Vec2的检查点非常容易在下游语音识别任务上进行微调。简而言之,微调预训练的Wav2Vec2检查点的工作原理如下: 在预训练的检查点之上堆叠一个随机初始化的线性层,并训练它将原始音频输入分类为一系列字母。它通过以下方式实现: 从原始音频中提取音频表示(使用CNN层), 使用一堆transformer层处理音频表示的序列,和 将处理后的音频表示分类为一系列输出字母。 以前的音频分类模型需要额外的语言模型(LM)和字典,以将分类的音频帧序列转换为连贯的转录。Wav2Vec2的架构基于transformer层,因此每个处理后的音频表示都能从其他所有音频表示中获取上下文。此外,Wav2Vec2利用CTC算法进行微调,解决了“输入音频长度”与“输出文本长度”比例不同的对齐问题。 由于具有上下文化的音频分类和没有对齐问题,Wav2Vec2不需要外部语言模型或字典就能产生可接受的音频转录。 正如官方论文的附录C所示,Wav2Vec2在LibriSpeech上表现出色,而无需使用语言模型。然而,从附录中也可以清楚地看出,结合语言模型使用Wav2Vec2可以显著提高性能,特别是当模型仅在10分钟的转录音频上进行训练时。 直到最近,🤗 Transformers库没有提供一个简单的用户界面来使用经过微调的Wav2Vec2和语言模型解码音频文件。这个情况幸运地发生了改变。🤗 Transformers现在提供了与Kensho Technologies的pyctcdecode库的简单集成。本博客文章是一篇逐步的技术指南,解释了如何使用🤗 Datasets和🤗 Transformers创建一个n-gram语言模型,并将其与现有的经过微调的Wav2Vec2检查点结合使用。 我们首先进行以下步骤: 使用语言模型解码音频与不使用语言模型解码音频有何不同? 如何获取适合语言模型的数据? 如何使用KenLM构建n-gram模型? 如何将n-gram模型与经过微调的Wav2Vec2检查点结合使用? 如果想深入了解Wav2Vec2的工作原理(不是本博客文章所必需的),建议阅读以下资料:…

Leave a Comment

案例研究:使用Hugging Face Infinity和现代CPU实现毫秒级延迟

介绍 迁移学习改变了机器学习领域,从自然语言处理(NLP)到音频和计算机视觉任务,提高了准确性。在Hugging Face,我们努力使这些新的复杂模型和大型检查点尽可能易于访问和使用。但是,虽然研究人员和数据科学家已经转向了Transformer的新世界,但很少有公司能够在生产规模上部署这些大型复杂模型。 主要瓶颈是预测的延迟,这可能使大规模部署变得昂贵,并使实时应用场景变得不切实际。解决这个问题对于任何机器学习工程团队来说都是一个困难的工程挑战,并且需要使用先进的技术将模型优化到硬件层面。 通过Hugging Face Infinity,我们提供了一个容器化解决方案,可以轻松部署低延迟、高吞吐量、硬件加速的推理流水线,适用于最受欢迎的Transformer模型。公司可以在简单易用的包装中获得Transformer的准确性和大规模部署所需的效率。在本博客文章中,我们想分享Infinity在最新一代英特尔Xeon CPU上运行的详细性能结果,以实现Transformer部署的最佳成本、效率和延迟。 什么是Hugging Face Infinity Hugging Face Infinity是一个容器化解决方案,供客户在任何基础设施上部署端到端优化的最先进的Transformer模型的推理流水线。 Hugging Face Infinity包括两个主要服务: Infinity Container是作为Docker容器交付的硬件优化推理解决方案。 Infinity Multiverse是一个模型优化服务,用于针对目标硬件优化Hugging Face Transformer模型。Infinity Multiverse与Infinity Container兼容。…

Leave a Comment

使用Python入门情感分析

情感分析是根据数据的情感自动进行标记的自动化过程,如积极、消极和中性。情感分析使公司能够在大规模上分析数据、发现洞察力并自动化流程。 过去,情感分析通常只限于研究人员、机器学习工程师或具有自然语言处理经验的数据科学家。然而,近年来,人工智能社区已经构建了让大众能够访问机器学习的出色工具。现在,你可以使用几行代码进行情感分析,而无需任何机器学习经验!🤯 在本指南中,您将学到使用Python进行情感分析的一切,包括: 什么是情感分析? 如何使用预训练的情感分析模型进行Python编程 如何构建自己的情感分析模型 如何使用情感分析分析推文 让我们开始吧!🚀 1. 什么是情感分析? 情感分析是一种自然语言处理技术,用于识别给定文本的极性。情感分析有不同的变体,但最常用的技术之一是将数据标记为积极、消极和中性。例如,让我们看一下这些提到 @VerizonSupport 的推文: “dear @verizonsupport your service is straight 💩 in dallas.. been with y’all…

Leave a Comment

使用🤗 Transformers对ViT进行微调,用于图像分类

正如基于Transformer的模型改变了自然语言处理领域一样,我们现在看到了将其应用于各种其他领域的论文的爆炸式增长。其中最具革命性的是Vision Transformer(ViT),它是由Google Brain的研究人员于2021年6月推出的。 本论文探讨了如何对图像进行标记,就像对句子进行标记一样,以便可以将它们传递给Transformer模型进行训练。这其实是一个非常简单的概念… 将图像分割成子图像块的网格 使用线性投影对每个子图像块进行嵌入 每个嵌入的子图像块成为一个标记,嵌入的子图像块序列就是传递给模型的序列。 事实证明,一旦完成了上述步骤,你可以像处理自然语言处理任务一样预训练和微调Transformer模型。相当不错 😎。 在本博客文章中,我们将介绍如何利用🤗 datasets下载和处理图像分类数据集,然后使用它们来微调预训练的ViT模型,使用🤗 transformers。 首先,让我们安装这两个包。 pip install datasets transformers 加载数据集 让我们首先加载一个小的图像分类数据集,并查看其结构。 我们将使用beans数据集,该数据集是一组健康和不健康的豆叶图片。🍃 from datasets import load_dataset ds…

Leave a Comment

机器学习专家 – Margaret Mitchell

嘿朋友们!欢迎来到机器学习专家。我是你们的主持人Britney Muller,今天的嘉宾是Margaret Mitchell(简称Meg)。Meg是谷歌道德人工智能团队的创始人和共同领导者,是机器学习领域的先驱者,发表了50多篇论文,是道德人工智能领域的领先研究者。 Meg将会谈到她意识到道德人工智能重要性的时刻(一个令人难以置信的故事!),以及机器学习团队如何更加关注有害数据偏见,以及多样性和包容性在机器学习中的权力(和性能)优势。 非常激动地向大家介绍这个精彩的剧集!以下是我与Meg Mitchell的对话: 文字记录: 注意:为了提供最高质量的阅读体验,文字记录进行了轻微的修改和重新格式化。 你能简单介绍一下你的背景以及是什么让你加入Hugging Face的吗? Dr. Margaret Mitchell的背景: 本科就读于里德学院的语言学专业 – 在自然语言处理方面有所研究 本科毕业后从事辅助和增强技术的研究,在研究生阶段也是如此 在华盛顿大学获得计算语言学硕士学位 计算机科学博士学位 Meg:我在约翰斯·霍普金斯大学做博士后期间进行了大量的统计工作,然后去微软研究院继续从事从视觉到语言生成的研究,这导致了一个名为Seeing AI的应用程序的开发,该应用程序可以帮助视障人士更轻松地导航世界。 在微软待了几年后,我离开去谷歌工作,专注于深度学习中的大数据问题。在那里,我开始关注公平性、不同问题的严格评估和偏见等方面。在谷歌期间,我创立并共同领导了道德人工智能团队,专注于包容性和透明度。 在谷歌工作了四年后,我加入了Hugging Face,在这里我能够全身心投入到编码工作中。我正在帮助创建道德人工智能研究的协议,推行包容性招聘,建立良好的文化。 你是什么时候意识到道德人工智能的重要性的?…

Leave a Comment

使用机器学习提升客户服务效能

在这篇博客文章中,我们将模拟一个真实的客户服务用例,并使用Hugging Face生态系统的机器学习工具来解决它。 我们强烈推荐将这个笔记本作为一个模板/示例来解决你的真实用例。 定义任务、数据集和模型 在开始实际编码之前,重要的是清楚地定义您想要自动化或部分自动化的用例。清晰地定义用例有助于确定最适合您用例的任务、数据集和模型。 定义你的自然语言处理任务 好的,让我们深入探讨一个我们希望使用自然语言处理模型解决的假设性问题。假设我们正在销售一种产品,我们的客户支持团队收到成千上万条包括反馈、投诉和问题的消息,理想情况下应该都得到回复。 很快就变得明显,客户支持绝对无法回复每一条消息。因此,我们决定只回复最不满意的客户,并致力于回答100%的这些消息,因为与其他中性和积极的消息相比,这些消息很可能是最紧急的。 假设a)非常不满意的客户的消息只占所有消息的一小部分,并且b)我们可以以自动化的方式过滤出不满意的消息,那么客户支持应该能够达到这个目标。 为了以自动化的方式过滤出不满意的消息,我们计划应用自然语言处理技术。 第一步是将我们的用例-过滤出不满意的消息-映射到一个机器学习任务上。 Hugging Face Hub的任务页面是一个很好的起点,可以看到哪个任务最适合给定的场景。每个任务都有详细的描述和潜在的用例。 找到最不满意的客户消息的任务可以建模为一个文本分类任务:将一条消息分类为以下5个类别之一:非常不满意,不满意,中立,满意,或非常满意。 寻找合适的数据集 在确定任务之后,接下来,我们应该找到模型将要训练的数据。对于您的用例的性能来说,这通常比选择正确的模型架构更重要。记住,一个模型的好坏取决于它所训练的数据。因此,在策划和/或选择数据集时,我们应该非常谨慎。 由于我们考虑的是过滤出不满意的消息的假设用例,请查看可用的数据集。 对于您的真实用例,您很可能有最能代表您的NLP系统所处理实际数据的内部数据。因此,您应该使用这些内部数据来训练您的NLP系统。然而,包含公开可用的数据也可以提高模型的泛化能力。 让我们看一下Hugging Face Hub上所有可用的数据集。在左侧,您可以根据任务类别和更具体的任务进行过滤。我们的用例对应于文本分类-情感分析,所以让我们选择这些筛选器。在编写本笔记的时候,我们还剩下大约80个数据集。在选择数据集时,应该评估两个方面: 质量:数据集的质量如何?更具体地说:数据是否符合您在用例中预期要处理的数据?数据是否多样、公正等。 大小:数据集有多大?通常可以说,数据集越大,越好。 高效评估数据集是否具有高质量是相当棘手的,了解数据集是否存在偏见更具挑战性。高质量的有效合理的启发法则是查看下载统计信息。下载次数越多,使用次数越多,数据集的质量就越高。大小很容易评估,因为通常可以快速阅读。让我们来看一下下载次数最多的数据集:…

Leave a Comment

介绍 Hugging Face 教育 🤗

考虑到机器学习将占据软件开发的绝大部分,并且非技术人员将越来越多地接触到AI系统,AI的主要挑战之一是适应和增强员工的技能。还越来越有必要支持教职工积极考虑AI的伦理和关键问题。 作为一个开源公司,Hugging Face相信对全球各个背景的人们进行教育是至关重要的。 我们于2022年3月启动了ML demo.cratization巡回演示,Hugging Face的专家为来自16个国家的1000多名学生进行了实操课程,内容涉及协作构建机器学习。我们的新目标是:到2023年底,教授500万人机器学习。 本博客文章提供了我们如何实现教育目标的高层次描述。 🤗 面向所有人的教育 🗣️ 我们的目标是使机器学习的潜力和限制为所有人所理解。我们相信这样做将有助于引导该领域朝着应用这些技术将对整个社会带来净利益的方向发展。 我们现有努力的一些例子: 我们以非常易懂的方式描述了不同ML模型的用途(摘要、文本生成、目标检测等)。 我们允许每个人直接在他们的浏览器中通过模型页面中的小部件试用模型,从而降低了所需的技术技能(示例)。 我们记录并警告系统中发现的有害偏见(如GPT-2)。 我们提供工具来创建开源ML应用,让任何人可以通过一键了解ML的潜力。 🤗 面向初学者的教育 🗣️ 我们希望通过提供在线课程、实操研讨会和其他创新技术,降低成为机器学习工程师的门槛。 我们提供了一个关于自然语言处理(NLP)和更多领域(即将推出)的免费课程,使用Hugging Face生态系统中的免费工具和库。完全免费,无广告。该课程的最终目标是学习如何将Transformer应用于(几乎)任何机器学习问题! 我们提供了一个关于深度强化学习的免费课程。在这门课程中,您可以理论和实践学习深度强化学习,学习使用著名的深度强化学习库,在独特的环境中训练代理,使用一行代码将经过训练的代理发布到Hugging Face Hub等等。…

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

我们为开放和协作式机器学习筹集了1亿美元 🚀

今天我们有一些令人兴奋的消息要分享!Hugging Face已经完成了由Lux Capital领导的1亿美元的C轮融资🔥🔥🔥,并得到了Sequoia、Coatue等主要参与者以及现有投资者Addition、a_capital、SV Angel、Betaworks、AIX Ventures、Kevin Durant、Thirty Five Ventures的Rich Kleiman、Datadog的联合创始人兼首席执行官Olivier Pomel等的支持。 自2018年我们首次开源PyTorch BERT以来,我们已经取得了长足的发展,并且我们的起点才刚刚开始!🙌 机器学习正在成为构建技术的默认方式。当你想到你的平凡一天时,机器学习无处不在:从你的Zoom背景,到在Google上搜索,再到下订单Uber或者写邮件时的自动补全–这都是机器学习的功劳。 Hugging Face现在是增长最快的机器学习社区和最常用的平台!在NLP、计算机视觉、语音、时间序列、生物学、强化学习、化学等领域,平台上托管了10万个预训练模型和1万个数据集,Hugging Face Hub已成为构建、协作和部署最先进模型的家园。 现在有超过1万家公司正在使用Hugging Face来利用机器学习构建技术。他们的机器学习科学家、数据科学家和机器学习工程师通过我们的产品和服务节省了无数小时,并加速了他们的机器学习路线图。 我们希望对人工智能领域产生积极影响。我们认为更负责任的人工智能发展方向是通过公开分享模型、数据集、训练过程、评估指标,并共同解决问题。我们相信开源和开放科学能够带来信任、鲁棒性、可重复性和持续创新。基于这个想法,我们领导了BigScience,这是一个围绕研究和创建非常大的语言模型的协作研讨会,汇集了1000多名来自各个背景和学科的研究人员。我们正在训练世界上最大的开源多语言语言模型 🌸 ⚠️ 但仍然有大量的工作要做。 在Hugging Face,我们知道机器学习存在一些重要的限制和挑战,比如偏见、隐私和能源消耗。通过开放、透明和合作,我们可以促进负责任和包容性的进步、理解和问责制,以应对这些挑战。…

Leave a Comment

使用Optimum和Transformers管道加速推理

推理已经在Optimum中登陆,并支持Hugging Face Transformers管道,包括使用ONNX Runtime进行文本生成。 BERT和Transformers的采用继续增长。基于Transformer的模型不仅在自然语言处理中实现了最先进的性能,还在计算机视觉、语音和时间序列中取得了突破。💬 🖼 🎤 ⏳ 公司现在正从实验和研究阶段转向生产阶段,以便在大规模工作负载中使用Transformer模型。但是,默认情况下,BERT及其相关模型相对于传统的机器学习算法而言速度较慢、体积较大且复杂。 为了解决这个挑战,我们创建了Optimum – Hugging Face Transformers的扩展,以加速像BERT这样的Transformer模型的训练和推理。 在本博客文章中,您将学到: 1. 什么是Optimum?ELI5 2. 新的Optimum推理和管道功能 3. 加速RoBERTa进行问答的端到端教程,包括量化和优化 4. 当前限制 5. Optimum推理常见问题解答…

Leave a Comment

机器学习洞察总监【第二部分:SaaS 版本】

如果您或您的团队对于更快地构建机器学习解决方案感兴趣,请立即访问hf.co/support! 👋 欢迎来到我们的机器学习总监洞察力系列第2部分。请查看第1部分。 机器学习总监在AI领域中拥有独特的位置,跨越各种角色和责任的视角。他们丰富的机器学习框架、工程、架构、实际应用和问题解决的知识为当前机器学习的现状提供了深刻的洞察。例如,一个总监会注意到如何使用新的转换器语音技术将团队的错误率降低了30%,以及简单思考如何帮助节省大量计算资源。 您是否想知道Salesforce或ZoomInfo的总监们对于机器学习的现状有何看法?他们面临的最大挑战是什么?他们最期待的是什么?那么,您即将发现答案! 在这个以SaaS为重点的第二部分中,您将听到一位深度学习医疗教材作者的观点,他还创办了一个非营利机构来指导机器学习人才;还有一位国际象棋迷的网络安全专家;一位灵感来自于芭比娃娃在一次铅回收后需要监控品牌声誉的企业家;以及一位经验丰富的专利和学术论文作者,他喜欢看他的4个孩子犯和他的机器学习模型一样的错误。 🚀 让我们见识一下一些顶级SaaS机器学习总监,并听听他们对机器学习的看法: Omar Rahman – Salesforce的机器学习总监 背景: Omar领导着一个机器学习和数据工程团队,利用机器学习来进行防御性安全工作,作为网络安全团队的一部分。之前,Omar在Adobe和SAP领导数据科学和机器学习工程团队,专注于为营销云和采购应用程序提供智能功能。Omar拥有亚利桑那州立大学的电气工程硕士学位。 有趣的事实: Omar喜欢下国际象棋,并自愿利用空闲时间指导和指导人工智能研究生。 Salesforce:全球第一的客户关系管理软件。 1. 机器学习如何对SaaS产生积极影响? 机器学习在SaaS提供方面有很多好处。 a. 提高应用程序中的自动化:例如,使用自然语言处理(NLP)理解服务请求的上下文并将其路由到组织内的适当团队的服务票务系统。 b. 减少代码复杂性:随着新规则的增加,基于规则的系统变得难以控制,从而增加了维护成本。例如,相比以前的基于规则的系统,基于机器学习的语言翻译系统更准确、更健壮,代码行数更少。 c.…

Leave a Comment

高效的表格预训练无需真实数据:TAPEX简介

近年来,通过利用大规模文本数据,语言模型预训练取得了巨大的成功。通过使用诸如掩码语言建模等预训练任务,这些模型在多个下游任务上展现出了出色的性能。然而,预训练任务(例如语言建模)和下游任务(例如表格问答)之间的巨大差距使得现有的预训练效率还不够高。在实践中,我们经常需要大量的预训练数据才能获得令人满意的改进,即使是针对域自适应预训练也是如此。我们如何设计一个预训练任务来缩小这个差距,从而加速预训练呢? 概述 在《TAPEX: 通过学习神经SQL执行器进行表格预训练》中,我们探索了在预训练期间使用合成数据作为真实数据的代理,并以TAPEX(通过执行进行表格预训练)作为示例展示其强大性能。在TAPEX中,我们展示了通过在合成语料库上学习神经SQL执行器来实现表格预训练的方法。 注意:[Table]是输入中用户提供的表格的占位符。 如上图所示,TAPEX通过系统化地采样可执行的SQL查询及其在表格上的执行结果,首先合成了一个合成且非自然的预训练语料库。然后,它继续预训练语言模型(例如BART),以输出SQL查询的执行结果,这模拟了神经SQL执行器的过程。 预训练 下图说明了预训练过程。在每一步中,我们首先从网页上获取一个表格。示例表格是关于奥运会的。然后,我们可以采样一个可执行的SQL查询SELECT City WHERE Country = France ORDER BY Year ASC LIMIT 1。通过一个现成的SQL执行器(例如MySQL),我们可以获得查询的执行结果Paris。类似地,通过将SQL查询和扁平化的表格的连接作为输入,输入到模型(例如BART编码器),执行结果作为模型的监督(例如BART解码器)的输出。 为什么要使用SQL查询这样的程序而不是自然语言句子作为预训练的源呢?最大的优点是相较于无法控制的自然语言句子,程序的多样性和规模可以得到系统地保证。因此,我们可以通过采样SQL查询轻松合成多样、大规模且高质量的预训练语料库。 您可以在下面使用训练好的神经SQL执行器🤗 Transformers: from transformers import…

Leave a Comment

引入拉取请求和讨论 🥳

我们非常高兴地宣布我们最新的合作功能已经发布:在Hugging Face Hub上进行拉取请求和讨论! 拉取请求和讨论已经在今天可以在社区选项卡下的所有存储库类型中使用:模型、数据集和Spaces。社区的任何成员都可以创建和参与讨论和拉取请求,不仅促进团队内的合作,还可以与社区中的其他人合作! 这是Hub迄今为止最大的更新,我们迫不及待地想看到社区成员开始使用它进行合作🤩。 新的“社区”选项卡也与多年来在伦理机器学习中的建议保持一致。反馈和迭代在伦理机器学习软件的开发中具有核心地位。我们真的相信将其纳入社区的工具集中将会在机器学习、合作和进步方面解锁新的积极模式。 一些讨论和拉取请求的示例用例: 提出模型卡的建议,以改进伦理偏见的披露。 让用户标记给定Space演示的令人担忧的生成。 提供一个场所,模型和数据集的作者可以直接与社区成员进行讨论。 允许他人改进你的存储库!例如,用户可能希望提供TensorFlow权重! 讨论 讨论允许社区成员提出问题、回答问题,并直接与存储库所有者和社区分享他们的想法和建议。任何人都可以在存储库的社区选项卡中创建和参与讨论。 拉取请求 拉取请求允许社区成员直接在网站上打开、评论、合并或关闭拉取请求。打开拉取请求的最简单方法是使用“文件和版本”选项卡中的“协作”按钮。这将使您可以轻松进行单个文件的贡献。 在幕后,我们的拉取请求不使用分叉和分支,而是直接存储在源存储库上的自定义“分支”(称为refs)。这种方法避免了为模型/数据集的每个新版本创建分叉的需要。 与其他git主机有何不同 从高层次上看,我们旨在构建其他git主机(如GitHub)的PR和问题的简化版本: 不涉及分叉:贡献者直接将内容推送到源存储库上的特殊ref分支 问题和PR之间没有硬性区别:它们本质上是相同的,因此我们在同一列表中显示它们 专为机器学习(即模型/数据集/Spaces存储库)而设计,而不是任意存储库 接下来会有什么 当然,这只是个开始。我们将倾听社区的反馈,以在未来添加新功能并改进社区选项卡。如果您有任何反馈意见,可以在此处加入讨论。现在是加入您的第一个讨论并打开PR的最佳时机!🤗

Leave a Comment

Graphcore和Hugging Face推出新的IPU-Ready Transformers产品线

Graphcore和Hugging Face显著扩展了Hugging Face Optimum中可用的机器学习模态和任务范围,这是一个用于优化Transformer性能的开源库。开发人员现在可以方便地访问各种现成的Hugging Face Transformer模型,并经过优化以在Graphcore的IPU上提供最佳性能。 在Optimum Graphcore推出后不久推出的BERT Transformer模型,开发人员现在可以访问包括自然语言处理(NLP)、语音和计算机视觉在内的10个模型,这些模型配有IPU配置文件以及准备好的预训练和微调模型权重。 新的Optimum模型 计算机视觉 ViT(Vision Transformer)是图像识别的突破性技术,它使用Transformer机制作为其主要组件。当图像输入到ViT中时,它们被划分为小块,类似于语言系统中处理单词的方式。每个块都由Transformer(嵌入)进行编码,然后可以单独处理。 自然语言处理(NLP) GPT-2(生成型预训练Transformer 2)是一个在大规模英语语料库上进行自我监督预训练的文本生成Transformer模型。这意味着它仅在原始文本上进行预训练,没有以任何方式对其进行人工标记(这就是为什么它可以使用大量公开可用的数据),它使用自动化过程从这些文本中生成输入和标签。更准确地说,它通过猜测句子中下一个单词来训练生成文本。 RoBERTa(鲁棒优化BERT方法)是一个在大规模英语语料库上进行自我监督预训练的Transformer模型,类似于GPT-2。更准确地说,RoBERTa使用了掩码语言建模(MLM)目标进行预训练。给定一个句子,模型会随机掩盖输入中的15%单词,然后将整个掩码句子输入模型,并预测掩盖的单词。RoBERTa可以用于掩码语言建模,但主要用于在下游任务上进行微调。 DeBERTa(具有解耦注意力的解码增强BERT)是用于NLP任务的预训练神经语言模型。DeBERTa使用两种新颖技术(解耦注意力机制和增强掩码解码器)对2018年的BERT和2019年的RoBERTa模型进行了改进,显著提高了模型的预训练效率和下游任务的性能。 BART是一个具有双向(类似BERT)编码器和自回归(类似GPT)解码器的Transformer编码器-解码器(seq2seq)模型。BART通过(1)使用任意的噪声函数破坏文本和(2)学习一个模型来重构原始文本进行预训练。BART在文本生成(例如摘要、翻译)的微调上特别有效,但在理解任务(例如文本分类、问答)上也表现良好。 LXMERT(从Transformer中学习跨模态编码器表示)是用于学习视觉和语言表示的多模态Transformer模型。它有三个编码器:对象关系编码器、语言编码器和跨模态编码器。它是通过一系列任务进行预训练,包括掩码语言建模、视觉-语言文本对齐、ROI特征回归、掩码视觉属性建模、掩码视觉对象建模和视觉问答目标。它在VQA和GQA视觉问答数据集上取得了最先进的结果。 T5(文本到文本转换Transformer)是一个革命性的新模型,可以将任何文本转换为用于翻译、问答或分类的机器学习格式。它引入了一个统一的框架,将所有基于文本的语言问题转换为文本到文本格式的迁移学习。通过这样做,它简化了在各种NLP任务中使用相同的模型、目标函数、超参数和解码过程的方式。 语音 HuBERT(隐藏单元BERT)是一个在音频上进行自我监督语音识别预训练的模型,它学习了连续输入上的声学和语言模型的组合。HuBERT模型在Librispeech(960h)和Libri-light(60,000h)基准测试中,使用10分钟、1小时、10小时、100小时和960小时的微调子集,要么与现有的wav2vec 2.0性能相匹配,要么有所改进。 Wav2Vec2是一个用于自动语音识别的预训练自我监督模型。Wav2Vec2使用一种新颖的对比预训练目标,从大量无标签的语音数据中学习强大的语音表示,然后在少量转录语音数据上进行微调,优于最佳的半监督方法,而且概念上更简单。…

Leave a Comment

深度 Q 学习与太空入侵者

深度强化学习课程第三单元,与Hugging Face共同学习 🤗 ⚠️ 这篇文章的新版本已经发布,请点击链接查看 👉 https://huggingface.co/deep-rl-course/unit1/introduction 本文是深度强化学习课程的一部分,从入门到专家级的免费课程。请在此处查看课程大纲。 ⚠️ 这篇文章的新版本已经发布,请点击链接查看 👉 https://huggingface.co/deep-rl-course/unit1/introduction 本文是深度强化学习课程的一部分,从入门到专家级的免费课程。请在此处查看课程大纲。 在上一单元中,我们学习了我们的第一个强化学习算法:Q-Learning,并且从头开始实现了它,并在两个环境中进行了训练,FrozenLake-v1 ☃️ 和 Taxi-v3 🚕。 我们在这个简单的算法中取得了出色的结果。但是这些环境相对简单,因为状态空间是离散且较小的(FrozenLake-v1有14个不同的状态,Taxi-v3有500个状态)。 但正如我们将看到的,对于状态空间较大的环境,产生和更新Q表可能会变得无效。 因此,今天,我们将学习我们的第一个深度强化学习代理:Deep Q-Learning。Deep Q-Learning不使用Q表,而是使用神经网络,根据状态来近似计算每个动作的Q值。 而且我们将使用RL-Zoo来训练它玩Space Invaders和其他Atari环境,RL-Zoo是一个使用Stable-Baselines进行RL训练的训练框架,提供了训练、评估代理、调整超参数、绘制结果和录制视频的脚本。…

Leave a Comment

使用PyTorch的策略梯度

第五单元,使用 Hugging Face 的深度强化学习课程 🤗 ⚠️ 这篇文章有一个新的更新版本,可以在这里找到 👉 https://huggingface.co/deep-rl-course/unit1/introduction 这篇文章是深度强化学习课程的一部分,从入门到专家都可以免费学习。点击这里查看课程大纲。 ⚠️ 这篇文章有一个新的更新版本,可以在这里找到 👉 https://huggingface.co/deep-rl-course/unit1/introduction 这篇文章是深度强化学习课程的一部分,从入门到专家都可以免费学习。点击这里查看课程大纲。 在上一个单元中,我们学习了深度 Q 学习。在这种基于值的深度强化学习算法中,我们使用深度神经网络来逼近每个可能动作的不同 Q 值。 确实,在课程的开始阶段,我们只学习了基于值的方法,其中我们通过估计一个值函数作为找到最优策略的中间步骤。 因为在基于值的方法中,π 只存在于动作值估计之中,因为策略只是一个函数(例如,贪婪策略),它会在给定状态时选择具有最高值的动作。 但是,对于基于策略的方法,我们希望直接优化策略,而不需要学习值函数的中间步骤。 所以今天,我们将学习我们的第一个基于策略的方法:Reinforce。我们将使用…

Leave a Comment

在Twitter上开始进行情感分析

情感分析是根据文字数据的极性(如正面、负面和中性)自动分类的过程。公司利用推文的情感分析来了解客户对其产品和服务的讨论情况,获得洞察力以推动业务决策,并及早发现产品问题和潜在的公关危机。 在本指南中,我们将介绍一切您需要学习的内容,以在Twitter上开始进行情感分析。我们将分享一种逐步进行情感分析的过程,适用于编码人员和非编码人员。如果您是编码人员,您将学习如何使用推断API,这是一个即插即用的机器学习API,可在几行代码中对推文进行情感分析。如果您不会编码,不用担心!我们还将介绍如何使用Zapier进行情感分析,这是一个无代码工具,可以帮助您收集推文,使用推断API对其进行分析,最后将结果发送到Google Sheets⚡️ 跟随教程或者直接跳到您感兴趣的部分: 什么是情感分析? 如何使用代码进行Twitter情感分析? 如何在不编写代码的情况下进行Twitter情感分析? 准备好了吗?开始享受这段旅程吧!🤗 什么是情感分析? 情感分析使用机器学习自动识别人们对特定主题的讨论方式。情感分析最常见的用途是检测文本数据的极性,即自动确定推文、产品评论或支持票据是否对某个事物持积极、消极或中立的态度。 举个例子,让我们看一些提到 @Salesforce 的推文,并看看它们如何被情感分析模型标记: “我使用 @salesforce 的时间越长,越讨厌它。它很慢,充满了错误。界面上的一些元素看起来好像自从2006年以来都没有更新过。目前的困扰是应用程序交换页面每隔10秒就会刷新” –> 这条推文将被标记为”负面”。 “这就是我喜欢 @salesforce 的原因。它关注关系,关心人们,不仅仅是业务和金钱。感谢您关心 #TrailblazerCommunity” –> 相比之下,这条推文将被分类为”积极”。 “回家了:#Dreamforce…

Leave a Comment

用句子转换器构建一个播放列表生成器

不久前,我发布了一个使用Sentence Transformers和Gradio构建的播放列表生成器,并在随后的一篇文章中反思了如何将我的项目作为有效的学习经验。但是,我究竟是如何构建这个播放列表生成器的呢?在这篇文章中,我们将分解该项目并查看两个技术细节:嵌入是如何生成的,以及多步骤的Gradio演示是如何构建的。 正如我们在Hugging Face博客的先前文章中所探讨的那样,Sentence Transformers(ST)是一个提供工具生成句子嵌入的库,具有各种用途。由于我可以访问一组歌词数据集,我决定利用ST的语义搜索功能从给定的文本提示生成播放列表。具体来说,目标是从提示中创建一个嵌入,使用该嵌入对一组预生成的歌词嵌入进行语义搜索,从而生成一组相关的歌曲。所有这些都将包含在一个使用新的Blocks API在Hugging Face Spaces上托管的Gradio应用中。 我们将看到Gradio的稍微高级用法,所以如果你是该库的新手,我建议你在处理本文的Gradio特定部分之前先阅读《入门指南》。另外,请注意,虽然我不会发布歌词数据集,但你可以在Hugging Face Hub上找到歌词嵌入可供你玩耍。让我们开始吧!🪂 Sentence Transformers:嵌入和语义搜索 嵌入在Sentence Transformers中非常关键!我们在之前的一篇文章中了解了嵌入是什么以及如何生成它们,我建议在继续阅读本文之前先查看那篇文章。 Sentence Transformers提供了一个大型的预训练嵌入模型集合!它甚至包括使用我们自己的训练数据对这些模型进行微调的教程,但对于许多用例(如在一组歌词语料库上进行语义搜索),预训练模型在开箱即用时表现出色。然而,由于有这么多的嵌入模型可供选择,我们如何知道该使用哪个模型呢? ST文档突出了许多选择,以及它们的评估指标和一些用例描述。MS MARCO模型是在Bing搜索引擎查询上进行训练的,但由于它们在其他领域上也表现良好,我决定任何一个模型都可能是这个项目的一个好选择。对于播放列表生成器,我们只需要找到具有一定语义相似性的歌曲,而且由于我并不关心达到特定性能指标,我随机选择了sentence-transformers/msmarco-MiniLM-L-6-v3。 ST中的每个模型都有一个可配置的输入序列长度(最大长度),在这之后,你的输入将被截断。我选择的模型具有512个单词片段的最大序列长度,但正如我发现的那样,这通常不足以嵌入整首歌曲。幸运的是,我们可以很容易地将歌词分成较小的部分,以便模型能够处理——诗节!一旦我们将歌曲分成诗节并嵌入每个诗节,我们将发现搜索效果更好。 歌曲被分割成诗节,然后每个诗节被嵌入。 要实际生成嵌入,你可以调用Sentence Transformers模型的.encode()方法,并将其传入一个字符串列表。然后,你可以以任何你喜欢的方式保存嵌入——在这种情况下,我选择了将它们存储为Pickle文件。 from sentence_transformers…

Leave a Comment

BLOOM培训背后的技术

近年来,训练规模越来越大的语言模型已成为常态。虽然关于这些模型没有被释放供进一步研究的问题经常被讨论,但如何训练这些模型的隐藏知识很少受到关注。本文旨在通过以1760亿参数语言模型BLOOM为例,揭示训练这类模型的技术和工程背后的硬件和软件的一些光芒。 但首先,我们想感谢那些使一个小团队能够训练一个1760亿参数模型的公司、关键人物和团队。 然后将讨论硬件设置和主要技术组成部分。 下面是项目的一个简要概述: 人物 该项目由Thomas Wolf(Hugging Face的联合创始人兼CSO)构思,他不仅敢于与这些巨头公司竞争,训练出一种最大的多语种模型,而且还使最终结果对所有人都可访问,从而使大多数人的梦想变为现实。 本文专注于模型训练的工程方面。BLOOM背后技术最重要的部分是那些分享他们的专业知识并帮助我们进行编码和训练的人和公司。 有6个主要的感谢人员群体: HuggingFace的BigScience团队,他们有超过半打全职员工致力于从构想到完成训练,并提供和支付了除了Jean Zay计算机之外的所有基础设施。 Microsoft DeepSpeed团队,他们开发了DeepSpeed并将其与Megatron-LM集成,他们的开发人员在项目需求上花费了很多周的时间,并在训练之前和之中提供了很多令人惊叹的实践建议。 NVIDIA Megatron-LM团队,他们开发了Megatron-LM,并在回答我们的众多问题和提供一流的实践建议方面非常有帮助。 IDRIS / GENCI团队管理Jean Zay超级计算机,他们向该项目捐赠了大量计算资源并提供了出色的系统管理支持。 PyTorch团队创建了一个非常强大的框架,其他软件都是基于它的,他们在训练准备期间对我们非常支持,修复了多个错误并改进了我们在训练期间依赖的PyTorch组件的可用性。 BigScience工程工作组的志愿者 很难列出为项目的工程方面做出贡献的所有杰出人士,所以我只会列出Hugging Face之外的一些关键人物,他们是该项目在过去14个月中的工程基础: Olatunji…

Leave a Comment

如何使用对抗数据动态训练你的模型

你将在这里学到什么 💡动态对抗数据收集的基本思想以及其重要性。 ⚒如何动态收集对抗数据并在其上训练模型 – 以MNIST手写数字识别任务为例。 动态对抗数据收集(DADC) 静态基准在评估模型性能时被广泛使用,但存在许多问题:它们容易饱和、存在偏见或漏洞,而且常常导致研究人员追求指标的增长,而不是构建可信赖的模型,可以被人类使用1。 动态对抗数据收集(DADC)作为一种缓解静态基准问题的方法具有很大的潜力。在DADC中,人类创造了一些例子来欺骗最先进的(SOTA)模型。这个过程有两个好处: 它允许用户评估他们的模型的鲁棒性如何; 它产生的数据可以用于进一步训练更强大的模型。 通过在对抗性收集的数据上欺骗并训练模型,不断重复这个过程,可以得到与人类一致的更强大的模型1。 使用对抗数据动态训练模型 在这里,我将指导您从用户动态收集对抗数据并在其上训练模型 – 使用MNIST手写数字识别任务。 在MNIST手写数字识别任务中,模型被训练以在给定手写数字(见下图中的示例)的28×28灰度图像输入下预测数字。数字的范围是从0到9。 图片来源:mnist | Tensorflow数据集 这个任务被广泛认为是计算机视觉的入门,很容易训练出在标准(静态)基准测试集上达到高准确率的模型。然而,研究表明,这些SOTA模型在人类书写数字时(并将其作为输入提供给模型)仍然很难预测出正确的数字:研究人员认为,这主要是因为静态测试集不足以充分代表人类书写的多样性方式。因此,需要人类参与,提供对抗样本,帮助模型更好地泛化。 本指南将分为以下几个部分: 配置您的模型 与您的模型交互 标记您的模型 将所有内容组合在一起…

Leave a Comment

使用TensorFlow和XLA实现更快的文本生成

太长不看:使用 TensorFlow 在 🤗 transformers 上进行的文本生成现在可以使用 XLA 编译。它比以前快了100倍,甚至比 PyTorch 还要快 — 在下面的 colab 上查看吧! 文本生成 随着大型语言模型的质量提高,我们对这些模型能做什么的期望也在增加。特别是自 OpenAI 的 GPT-2 发布以来,带有文本生成功能的模型一直备受关注。而且有充分的理由 — 这些模型可以用于摘要、翻译,甚至在某些语言任务上展示出了零样本学习的能力。本博客文章将展示如何在 TensorFlow 中充分利用这项技术。 🤗…

Leave a Comment