Press "Enter" to skip to content

四海吧 Posts

Inflection AI发布拥有22,000个GPU的巨型超级计算机

介绍 在这个由人工智能驱动的世界中,Inflection AI在创建“个人AI智能”方面迈出了一大步。这家人工智能初创公司推出了一台革命性的超级计算机,配备了惊人的22,000个NVIDIA H100 GPU,将计算性能推向了前所未有的高度。Inflection AI定将重新定义个人助理的领域,并将这一前沿的奇迹推向创新的前沿。 还可阅读:NVIDIA建造AI超级计算机DGX GH200 Inflection AI的崛起 凭借其创新的Inflection-1 AI模型,作为著名Pi聊天机器人背后的强大引擎,Inflection AI已经在市场上有了一席之地。虽然它可能还没有达到ChatGPT或谷歌的LaMDA模型这样的行业巨头的水平,但初步报告表明,Inflection-1在“常识”任务上表现出色,使其成为个人助理应用的理想选择。 揭开未来的面纱 经过长时间的期待,Inflection AI雄心勃勃的超级计算机项目终于浮出水面。这台名为“Inflection超级计算机”的巨型机器拥有惊人的22,000个H100 GPU,配备近700个四节点机架,内装Intel Xeon CPU。为了满足这个技术巨兽的无尽需求,将会利用惊人的31兆瓦的功率。 了解更多:CPU与GPU:为什么GPU更适合深度学习? GPU采购之谜 虽然Inflection超级计算机中的GPU数量令人印象深刻,但真正使其与众不同的是意外获得了22,000个NVIDIA H100 GPU。这种高性能处理器的需求最近超过了供应,许多人难以获得甚至一台。然而,Inflection AI似乎通过与NVIDIA的合作关系找到了战略优势。由于NVIDIA考虑对该公司进行投资,获得如此大量的GPU变得更加可行。…

Leave a Comment

Google数据科学岗位的50个面试问题

介绍 许多渴望成为谷歌数据科学家的人都梦想能够在谷歌找到一个职业。但是要通过严格的数据科学面试流程需要具备什么条件呢?为了帮助你在面试中取得成功,我们编制了一份包含机器学习、统计学、产品感知和行为方面的谷歌前50个面试问题的全面列表。熟悉这些问题并练习你的回答可以增加你给面试官留下深刻印象并在谷歌获得一个职位的机会。 谷歌数据科学岗位的面试流程 通过谷歌数据科学家面试是一段令人激动的旅程,他们会评估你的技能和能力。该过程包括不同的环节,测试你在数据科学、问题解决、编码、统计学和沟通方面的知识。以下是你可以期待的概述: 阶段 描述 申请提交 通过谷歌的招聘网站提交你的申请和简历,启动招聘流程。 技术电话筛选 如果进入候选名单,你将接受技术电话筛选,以评估你的编码技能、统计知识和数据分析经验。 现场面试 成功的候选人将进行现场面试,通常由多轮与数据科学家和技术专家交流的环节组成。这些面试将更深入地涉及数据分析、算法、统计学和机器学习等主题。 编码和分析挑战 你将面临编码挑战,以评估你的编程技能,以及分析问题,评估你从数据中提取洞察力的能力。 系统设计和行为面试 一些面试可能会侧重于系统设计,你将需要设计可扩展的数据处理或分析系统。此外,行为面试将评估你的团队合作、沟通和解决问题的方法。 招聘委员会审查 面试反馈将由招聘委员会审查,他们将共同决定你的候选资格。 在我们关于如何成为谷歌数据科学家的文章中,详细了解申请和面试流程。 我们已经整理了谷歌数据科学角色的前50个面试问题和答案。 谷歌数据科学前50个面试问题 通过掌握这份涵盖机器学习、统计学、编码等方面的谷歌前50个面试问题的全面列表,为谷歌数据科学面试做好准备。通过掌握这些问题并展示你的专业知识,确保在谷歌获得一个职位。 谷歌关于机器学习和人工智能的面试问题 1. 监督学习和无监督学习有什么区别?…

Leave a Comment

《即兴处方:使用即兴表演帮助分析实践者实现变革》

本文最初由WGU的Joe Dery发布,并获得了许可进行转载在当今数据驱动的世界中,如果你是一名分析专业人士,仅仅依靠你的技术专长是不够的尽管构建准确的模型或实施最新的算法具有价值,但这并不是唯一重要的事情….

Leave a Comment

微软研究员介绍了新的多模态大型语言模型KOSMOS-2

在一篇新论文中,微软的研究人员介绍了KOSMOS-2,这是一个新的多模态大型语言模型,已经能够成功地作为通用接口展现其效果KOSMOS-2旨在通过整合基础能力,在语言、视觉和视觉语言任务中彻底改变人类与人工智能之间的交互多模态大型语言模型…

Leave a Comment

阿里巴巴推出了一种新的人工智能工具,可以根据文本输入生成图像

今天,技术巨头阿里巴巴正式推出了备受期待的人工智能工具同一万象据报道,它可以通过文本输入生成图像有趣的是,该人工智能允许用户输入中文和英文提示来生成图像样式包括从素描风格到3D风格的一切…

Leave a Comment

为什么人工智能已成为2023年最重要的开发者技能

随着人工智能在各个行业的迅速扩张,它正在迅速开始在整个开发过程中起到至关重要的作用这是因为,借助人工智能,开发人员能够自动化简单但耗时的任务,预测未来趋势并优化流程人工智能在帮助开发人员的另一个方面是,人工智能工具能够…

Leave a Comment

微软Azure发布了关于深度学习和自然语言处理的新教程

在ODSC这里,我们非常激动地宣布微软Azure关于深度学习和自然语言处理的教程系列,现在可以在Ai+上免费获得这个课程系列是由微软社区的一组专家创建的,他们将自己在人工智能和深度学习方面的知识和经验带到了这个课程中…

Leave a Comment

如何使用Transformers和Tokenizers从头开始训练一个新的语言模型

在过去的几个月里,我们对我们的transformers和tokenizers库进行了一些改进,目标是让从头开始训练一个新的语言模型变得比以往更容易。 在这篇文章中,我们将演示如何在Esperanto上训练一个“小”模型(84 M参数=6层,768隐藏大小,12个注意力头)-与DistilBERT相同数量的层和头。然后,我们将对该模型进行下游的词性标注任务微调。 Esperanto是一种目标是易于学习的构造语言。我们选择它作为演示的原因有几个: 它是一种相对较低资源的语言(尽管有大约200万人使用),所以这个演示比训练另一个英语模型不那么无聊😁 它的语法非常规则(例如,所有普通名词以-o结尾,所有形容词以-a结尾),因此即使在一个小数据集上,我们也应该获得有趣的语言结果。 最后,该语言的根本目标是使人们更加接近(促进世界和平和国际理解),可以说这与NLP社区的目标是一致的💚 注意:您不需要了解Esperanto就能理解本文,但如果您想学习它,Duolingo有一个有280,000个活跃学习者的不错课程。 我们的模型将被称为…等待…EsperBERTo😂 1. 找到一个数据集 首先,让我们找到一个包含Esperanto文本的语料库。在这里,我们将使用INRIA的OSCAR语料库中的Esperanto部分。OSCAR是通过对Web的Common Crawl转储进行语言分类和过滤而获得的一个巨大的多语言语料库。 数据集的Esperanto部分只有299M,所以我们将与Leipzig Corpora Collection的Esperanto子语料库连接在一起,该语料库由来自新闻、文学和维基百科等多种来源的文本组成。 最终的训练语料库的大小为3 GB,这仍然很小-对于您的模型来说,您能够获得的数据越多,预训练效果就会更好。 2. 训练一个分词器 我们选择训练一个字节级的Byte-pair编码分词器(与GPT-2相同),使用与RoBERTa相同的特殊标记。让我们随意将其大小设为52,000。 我们建议训练一个字节级的BPE(而不是像BERT那样使用WordPiece分词器),因为它将从一个由单个字节组成的字母表开始构建其词汇表,所以所有的单词都可以分解为标记(不再有<unk>标记!)。 #! pip install…

Leave a Comment

“Hugging Face的夏天”

夏天正式结束了,过去的几个月里,Hugging Face非常忙碌。从Hub上的新功能到研究和开源开发,我们的团队一直在努力通过开放和协作的技术来赋能社区。 在这篇博客文章中,您将了解到Hugging Face在六月、七月和八月发生的一切! 本文涵盖了我们团队一直在努力的各个领域,所以请随意跳到您最感兴趣的部分🤗 新功能 社区 开源 解决方案 研究 新功能 在过去的几个月里,Hub的公共模型仓库从10,000个增加到了16,000多个!感谢我们的社区与世界分享了这么多令人惊叹的模型。除了数量,我们还有很多很酷的新功能要与您分享! Spaces Beta ( hf.co/spaces ) Spaces是一个简单且免费的解决方案,可以直接在您的用户个人资料或您的组织hf.co个人资料上托管机器学习演示应用程序。我们支持两个很棒的Python SDK,让您可以轻松构建酷炫的应用程序:Gradio和Streamlit。只需几分钟,您就可以部署一个应用程序并与社区分享!🚀 Spaces可以设置秘密,允许自定义要求,甚至可以直接从GitHub仓库进行管理。您可以在hf.co/spaces上注册beta版本。以下是我们的一些收藏! 使用Chef Transformer创建食谱 使用HuBERT将语音转写为文本 在视频中进行分割,使用DINO模型 使用Paint…

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支持。 这就是为什么我们在今年夏天耐心耗尽并花费了一些时间来解决这个“空白”的原因。今天,我们很高兴地发布了扩展包pytorch_block_sparse。 单独使用,或者与蒸馏和量化等其他方法结合使用,这个库使得神经网络在生产中既更小又更快,这对于Hugging Face来说是至关重要的,以便让任何人以较低的成本使用神经网络,并提高最终用户的体验。 用法 提供的BlockSparseLinear模块是torch.nn.Linear的直接替代品,使用它在你的模型中非常简单: # from torch.nn import Linear from pytorch_block_sparse import BlockSparseLinear … # self.fc = nn.Linear(1024, 256) self.fc…

Leave a Comment

利用预训练的语言模型检查点来构建编码器-解码器模型

基于Transformer的编码器-解码器模型最初在Vaswani等人(2017)的论文中提出,并最近引起了广泛的关注,例如Lewis等人(2019),Raffel等人(2019),Zhang等人(2020),Zaheer等人(2020),Yan等人(2020)。 与BERT和GPT2类似,大规模预训练的编码器-解码器模型已经显示出在各种序列到序列任务上显著提升性能(Lewis等人,2019;Raffel等人,2019)。然而,由于预训练编码器-解码器模型所需的巨大计算成本,这类模型的开发主要局限于大型公司和研究机构。 在《利用预训练检查点进行序列生成任务》(2020)一文中,Sascha Rothe、Shashi Narayan和Aliaksei Severyn使用预训练的编码器和/或解码器检查点(如BERT、GPT2)初始化编码器-解码器模型,跳过了昂贵的预训练过程。作者表明,这种热启动的编码器-解码器模型在训练成本的一小部分情况下,能够产生与T5和Pegasus等大规模预训练编码器-解码器模型相竞争的结果,适用于多个序列到序列任务。 在本笔记本中,我们将详细解释如何热启动编码器-解码器模型,并根据Rothe等人(2020)提供实用提示,最后通过一个完整的代码示例展示如何使用🤗Transformers来热启动编码器-解码器模型。 本笔记本分为4个部分: 介绍 – 简要介绍NLP中的预训练语言模型以及热启动编码器-解码器模型的需求。 热启动编码器-解码器模型(理论) – 对编码器-解码器模型如何进行热启动进行说明。 热启动编码器-解码器模型(分析) – 《利用预训练检查点进行序列生成任务》的总结 哪些模型组合对于热启动编码器-解码器模型有效?它在不同任务中有何不同? 使用🤗Transformers热启动编码器-解码器模型(实践) – 完整的代码示例,详细展示如何使用EncoderDecoderModel框架来热启动基于Transformer的编码器-解码器模型。 强烈推荐(可能甚至是必须的)阅读有关基于Transformer的编码器-解码器模型的博客文章。 让我们从对热启动编码器-解码器模型的背景介绍开始。 介绍 最近,预训练语言模型1…

Leave a Comment

通过DeepSpeed和FairScale,使用ZeRO来适应更多数据并加快训练速度

Hugging Face研究员Stas Bekman的客座博客文章 随着最近的机器学习模型增长速度远远超过新发布的显卡GPU内存的增加速度,许多用户无法在他们的硬件上训练甚至只是加载其中一些庞大的模型。虽然目前正在努力将其中一些庞大的模型精简为更易管理的大小,但这一努力并没有及时产生足够小的模型。 2019年秋季,Samyam Rajbhandari、Jeff Rasley、Olatunji Ruwase和Yuxiong He发表了一篇论文:《ZeRO: Memory Optimizations Toward Training Trillion Parameter Models》,该论文中包含了许多关于如何使硬件做出比之前认为可能的更多事情的巧妙新想法。不久之后,DeepSpeed被发布,它为世界提供了该论文中大部分想法的开源实现(其中一些想法仍在进行中),与此同时,Facebook的一个团队发布了FairScale,该团队也实现了ZeRO论文中的一些核心思想。 如果您使用Hugging Face Trainer,在transformers v4.2.0版本中,您可以实验性地支持DeepSpeed和FairScale的ZeRO功能。新的–sharded_ddp和–deepspeed命令行Trainer参数分别提供了FairScale和DeepSpeed的集成。这是完整的文档。 本博客文章将介绍您如何从ZeRO中受益,无论您是否只拥有单个GPU还是整个GPU堆栈。 让我们使用t5-large模型和transformers GitHub仓库中examples/seq2seq下的finetune_trainer.py脚本进行一个小的微调翻译任务实验。 我们有2x 24GB(Titan…

Leave a Comment

在Hugging Face Transformers中,更快的TensorFlow模型

在过去的几个月里,Hugging Face团队一直在努力改进Transformers的TensorFlow模型,使其更加健壮和快速。最近的改进主要集中在两个方面: 计算性能:BERT、RoBERTa、ELECTRA和MPNet已经得到改进,以使计算时间更快。这种计算性能的提升在所有计算方面都是显著的:图/急切模式、TF Serving以及CPU/GPU/TPU设备。 TensorFlow Serving:这些TensorFlow模型中的每个模型都可以使用TensorFlow Serving进行部署,以从中受益于这种计算性能的提升。 计算性能 为了展示计算性能的改进,我们进行了一项彻底的基准测试,在测试中我们将BERT的性能与TensorFlow Serving 4.2.0版本与Google的官方实现进行了比较。这项基准测试在使用序列长度为128的GPU V100上运行(时间以毫秒为单位): 与Google的实现相比,v4.2.0中的BERT实现更快,速度提高了约10%。除此之外,它还比4.1.1版本中的实现快两倍。 TensorFlow Serving 前一节演示了全新的Bert模型在Transformers的最新版本中在计算性能方面取得了显著的提升。在本节中,我们将逐步展示如何使用TensorFlow Serving将Bert模型部署到生产环境中,以从计算性能的提升中受益。 什么是TensorFlow Serving? TensorFlow Serving属于TensorFlow Extended(TFX)提供的一组工具,使得将模型部署到服务器变得比以往更加容易。TensorFlow Serving提供了两个API,一个可以通过HTTP请求调用,另一个可以通过gRPC在服务器上运行推断。 什么是SavedModel? SavedModel包含一个独立的TensorFlow模型,包括其权重和架构。它不需要运行模型的原始源代码,这使得它非常适合与支持读取SavedModel的任何后端(如Java、Go、C++或JavaScript等)共享或部署。SavedModel的内部结构如下所示:…

Leave a Comment

简单的人构建花哨的神经网络的简单考虑

Henry & Co. on Unsplash 的照片 随着机器学习在行业中的不断渗透,神经网络从未像现在这样受到如此高度的关注。例如,像GPT-3这样的模型在过去几周一直在社交媒体上炒得沸沸扬扬,并且以恐吓标题的形式持续登上科技新闻以外的头条。 与此同时,深度学习框架、工具和专用库通过使最先进的研究变得比以往更易于使用,使机器学习研究走向了民主化。我们经常看到这些几乎像魔术一样的/即插即用的5行代码,承诺(几乎)最先进的结果。作为Hugging Face 🤗的工作人员,我承认我在其中部分有罪。😅这可能会给一个没有经验的用户产生误导,让他们错误地认为神经网络现在是一种成熟的技术,而事实上,这个领域仍在不断发展。 实际上,构建和训练神经网络往往是一种极其令人沮丧的经历: 有时很难确定性能是因为模型/代码中的错误还是仅仅是由于模型的表达能力有限。 在整个过程的每一步中,你可能会犯很多细微的错误,但一开始可能并没有意识到,而你的模型仍然可以训练并给出不错的性能。 在本文中,我将尝试强调构建和调试神经网络时的一些心路历程。通过“调试”,我是指确保你所构建的内容与你心中所想的内容是一致的。我还将指出一些你可以参考的事项,当你不确定下一步应该怎么做时,我会列举一些我常常问自己的典型问题。 很多这些思考都源于我在自然语言处理方面的研究经验,但是大多数这些原则也可以应用于机器学习的其他领域。 1. 🙈 首先将机器学习放在一边 这听起来可能有些违反直觉,但构建神经网络的第一步是将机器学习放在一边,只专注于你的数据。查看示例、它们的标签、词汇的多样性(如果你正在处理文本)、它们的长度分布等等。你应该深入研究数据,对你正在处理的原始产品有第一手的了解,并着重提取模型可能能够捕捉到的一般模式。希望通过查看几百个示例,你能够识别出高层次的模式。一些你可以问自己的标准问题: 标签是否平衡? 是否有一些金标签你不同意? 数据是如何获得的?在这个过程中可能存在哪些噪声来源? 是否有任何自然的预处理步骤(分词、URL或标签的删除等)? 示例之间的差异有多大? 在这个问题上,哪种基于规则的算法会表现得不错?…

Leave a Comment

分布式训练:使用🤗 Transformers和Amazon SageMaker训练BART/T5进行摘要

如果你错过了:我们在3月25日宣布与Amazon SageMaker合作,旨在更轻松地创建最先进的机器学习模型,并更快地发布尖端的NLP功能。 与SageMaker团队一起,我们构建了🤗优化的Transformers深度学习容器,以加速基于Transformers的模型训练。感谢AWS的朋友们!🤗 🚀 通过SageMaker Python SDK中的新HuggingFace估计器,您可以通过一行代码开始训练。 发布的博客文章提供了有关集成的所有信息,包括“入门”示例和文档、示例和功能的链接。 在此再次列出: 🤗 Transformers文档:Amazon SageMaker 示例笔记本 Hugging Face的Amazon SageMaker文档 Hugging Face的Python SDK SageMaker文档 深度学习容器 如果您对Amazon SageMaker不熟悉:“Amazon SageMaker是一项完全托管的服务,为每个开发人员和数据科学家提供快速构建、训练和部署机器学习(ML)模型的能力。SageMaker从机器学习过程的每个步骤中减轻了繁重的负担,使开发高质量模型更加容易。”[ REF…

Leave a Comment

介绍 🤗 加速

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

Leave a Comment