Press "Enter" to skip to content

47 search results for "ResNet"

2023年超参数优化的顶级工具/平台

超参数是用于调节算法在创建模型时的行为的参数。这些因素无法通过常规训练来发现。在训练模型之前,必须对其进行分配。 选择产生最佳性能的超参数组合的过程被称为机器学习中的超参数优化或调整。 根据任务的不同,有几种自动优化方法,每种方法都有其优点和缺点。 随着深度学习模型的复杂性增加,用于优化超参数的工具数量也在增加。对于超参数优化(HPO),通常有两种类别的工具包:依赖云计算资源的开源工具和服务。 下面展示了用于ML模型的顶级超参数优化库和工具。 贝叶斯优化 基于贝叶斯推断和高斯过程,一种名为BayesianOptimisation的Python程序使用贝叶斯全局优化来找到未知函数的最大值,迭代次数最少。这种方法最适用于高成本函数优化,其中在探索和开发之间取得正确平衡至关重要。 GPyOpt GPyOpt是一个基于贝叶斯优化的Python开源包。它使用GPy构建,GPy是一个用于建模高斯过程的Python框架。该库可以创建湿实验、自动设置模型和机器学习方法等。 Hyperopt Hyperopt是一个用于串行和并行优化的Python模块,可以包含条件、离散和实值维度的搜索空间。对于希望进行超参数优化(模型选择)的Python用户,它提供了并行化的技术和基础设施。该库支持的贝叶斯优化技术基于回归树和高斯过程。 Keras Tuner 使用Keras Tuner模块,我们可以找到机器学习模型的理想超参数。该库包含了HyperResNet和HyperXception两个预构建的可自定义的计算机视觉程序。 度量优化引擎(MOE) 度量优化引擎(MOE)是一个用于最佳实验设计的开源黑盒贝叶斯全局优化引擎。当评估参数需要时间或金钱时,MOE是一种有用的系统参数优化方法。它可以帮助解决各种问题,例如通过A/B测试最大化系统的点击率或转化率,调整昂贵批处理作业或机器学习预测方法的参数,设计工程系统或确定实验的理想参数。 Optuna Optuna是一个用于自动超参数优化的软件框架,非常适用于机器学习。它提供了一个用户API,具有命令式、按运行定义搜索空间的设计,可以动态构建超参数的搜索空间。该框架提供了许多库,用于平台无关的架构、简单的并行化和Pythonic的搜索空间。 Ray Tune Ray Tune是一个用于耗时任务(如深度学习和强化学习)的超参数优化框架。该框架具有多种用户友好的功能,包括可配置的试验变体创建、网格搜索、随机搜索和条件参数分布,以及可扩展的搜索算法实现,包括Population Based Training(PBT)、Median…

Leave a Comment

北京大学研究人员推出FastServe:用于大型语言模型(LLMs)的分布式推理服务系统

大型语言模型(LLM)的改进在各个领域创造了机遇,并激发了一波新的交互式人工智能应用的浪潮。其中最值得注意的是ChatGPT,它使人们能够与AI代理进行非正式的交流,解决从软件工程到语言翻译的问题。由于其出色的能力,ChatGPT是历史上增长最快的项目之一。许多公司都追随这一趋势发布了类似LLM和ChatGPT的产品,包括微软的新Bing、谷歌的Bard、Meta的LLaMa、斯坦福大学的Alpaca、Databricks的Dolly和加州大学伯克利分校的Vicuna。 LLM推理与其他深度神经网络(DNN)模型推理(例如ResNet)不同,因为它具有特殊的特点。建立在LLM上的交互式人工智能应用必须提供推理功能。这些应用的交互设计要求LLM推理具有快速的作业完成时间(JCT),以提供引人入胜的用户体验。例如,当用户将数据提交到ChatGPT时,他们期望立即得到回应。然而,由于LLM的数量和复杂性,推理服务基础设施面临巨大压力。企业建立昂贵的集群,并配备了GPU和TPU等加速器来处理LLM推理操作。 DNN推理任务通常是确定性的,高度可预测的,即模型和硬件在很大程度上决定了推理任务的执行时间。例如,使用同一ResNet模型在某个GPU上处理不同的输入照片,其执行时间会有所变化。相反,LLM推理具有独特的自回归模式。LLM推理工作经过多轮迭代。每次迭代产生一个输出标记,然后将其添加到输入中,以在下一轮迭代中生成后续标记。输出长度在开始时是未知的,它既影响执行时间,也影响输入长度。大多数确定性模型推理任务(例如ResNet执行的任务)都可以通过现有的推理服务系统(如Clockwork和Shepherd)来处理。 这些系统基于精确的执行时间分析进行调度决策,但对于具有可变执行时间的LLM推理来说是无效的。LLM推理的最先进方法是Orca。它建议在每次迭代后将新任务添加到当前处理批处理中,或者删除已完成的任务。然而,它使用先来先服务(FCFS)的方式处理推理任务。调度的任务将持续运行,直到完成。由于受限的GPU内存容量和推理任务的低JCT要求,处理批处理不能随着任意数量的传入函数而增加。完成运行的处理中的先行阻塞是众所周知的问题。 由于LLM庞大且执行时间较长,这个问题对LLM推理操作尤为严重。大型LLM推理任务,特别是输出长度较长的任务,将花费很长时间才能完成,并阻塞后续的短任务。北京大学的研究人员开发了一种名为FastServe的分布式推理服务解决方案,用于LLM。为了实现每个输出标记级别的抢占,FastServe使用了迭代级别的调度和LLM推理的自回归模式。FastServe可以选择在生成输出标记后继续进行计划任务,或者通过排队中的其他任务来抢占它。这使得FastServe可以通过抢占式调度来减少JCT和先行阻塞。 独特的跳过连接多级反馈队列(MLFQ)调度器是FastServe的基础。MLFQ是一种在无信息环境下最小化平均JCT的著名方法。每个任务在最高优先级队列中开始,如果在一定时间内未完成,则降级到下一个优先级队列。LLM推理是半信息不可知的,这意味着虽然不知道输出长度,但知道输入长度。这是LLM推理与传统情况之间的主要区别。输入长度决定了创建初始输出标记的执行时间,由于LLM推理的自回归模式,这可能比后续标记的执行时间要长得多。 当输入较长且输出较短时,初始输出标记的执行时间占据了大部分工作量。他们将这一特性用于将跳过连接添加到传统的MLFQ中。每个到达的任务通过将第一个输出标记的执行时间与队列的降级阈值进行比较,而不总是进入最高优先级队列中的适当队列。绕过高优先级队列以最小化降级。使用MLFQ进行抢占式调度会增加额外的内存开销,以保持已开始但未完成的作业处于中间状态。LLM为每个Transformer层维护一个键值缓存,用于存储中间状态。只要批处理大小未超过,FCFS缓存需要存储计划任务的中间状态。然而,可能已经开始了MLFQ中的其他任务,但它们被降级到优先级较低的队列中。MLFQ中的所有已开始但未完成的作业都必须由缓存维护中间状态。考虑到LLM的大小和GPU的受限内存空间,缓存可能会溢出。当缓存已满时,调度器可能会简单地延迟启动新的作业,但这又会导致先行阻塞。 相反,他们开发了一种高效的GPU内存管理系统,当低优先级队列中的进程被调度并且缓存快满时,主动将进程状态上传,并在缓存快满时卸载状态。为了提高效率,他们采用了流水线和异步内存操作。FastServe使用张量和流水线并行等并行化技术,为无法放入一个GPU中的大型模型提供分布式推理服务。为了减少流水线冒泡,调度程序同时执行多个批次的作业。键值缓存由键值缓存管理器组织,并且管理GPU和主机内存之间的内存交换。他们基于NVIDIA FasterTransformer实现了FastServe系统原型。结果表明,与最先进的解决方案Orca相比,FastServe平均和尾部JCT分别提高了5.1和6.4。

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

使用Transformers中的对比搜索生成人类水平的文本 🤗

1. 简介: 自然语言生成(即文本生成)是自然语言处理(NLP)中的核心任务之一。在本博客中,我们介绍了当前最先进的解码方法对比搜索(Contrastive Search),用于神经文本生成。对比搜索最初在“A Contrastive Framework for Neural Text Generation”[1]([论文][官方实现])中提出,该论文发表于NeurIPS 2022。此外,在随后的研究“Contrastive Search Is What You Need For Neural Text Generation”[2]([论文][官方实现])中,作者进一步证明了对比搜索可以使用现成的语言模型在16种语言中生成人类水平的文本。 [备注] 对于不熟悉文本生成的用户,请参考此博文了解更多细节。 2. Hugging Face…

Leave a Comment

构建和部署计算机视觉模型:从计算机视觉工程师的经验教训中学到的东西

有着超过3年的设计、构建和部署计算机视觉(CV)模型的经验,我意识到人们在构建和部署这样复杂系统的关键方面上并没有给予足够的重视在这篇博文中,我将分享我自己的经验以及在设计、构建和部署尖端CV模型过程中所获得的宝贵见解

Leave a Comment

解决人工智能的泛化差距:来自伦敦大学学院的研究人员提出Spawrious——一个包含类别和背景之间虚假相关性的图像分类基准套件

随着人工智能的日益普及,几乎每天都会发布带有全新功能和解决能力的新模型。最近,研究人员一直在努力提出方法来加强人工智能模型对未知测试分布的抵抗力,并减少对虚假特征的依赖。考虑到自动驾驶汽车和自主厨房机器人的例子,它们尚未被广泛部署,因为它们在分布外(OOD)环境中的行为所带来的挑战,这些环境与模型接触到的训练数据有很大的差异。 许多研究已经探讨了虚假相关性(SCs)的问题,并提出了减少其对模型性能的负面影响的方法。已经证明,在像ImageNet这样的知名数据集上训练的分类器依赖于背景数据,这些数据与类标签存在虚假关联,但不一定具有预测性。尽管在开发解决SC问题的方法方面已经取得了进展,但仍需要解决现有基准的局限性。目前的基准测试,如Waterbirds和CelebA发色基准测试,存在局限性,其中之一是它们专注于简单的一对一(O2O)虚假相关性,而实际上,许多对多(M2M)虚假相关性更常见,涉及类和背景的群组。 最近,来自伦敦大学学院的研究人员介绍了一个名为Spawrious数据集的图像分类基准套件,其中包含类和背景之间的虚假相关性。它包括一对一(O2O)和一对多(M2M)虚假相关性,这些已经被分类为三个难度级别:简单,中等和困难。该数据集包含约152,000张高质量的照片逼真图像,使用文本到图像模型生成,采用图像字幕模型过滤不适合的图像,确保数据集的质量和相关性。 评估Spawrious数据集后,表现出了不可思议的性能,因为该数据集对当前的最先进(SOTA)组鲁棒性方法提出了挑战,例如Hard-splits,其中没有一种测试方法使用在ImageNet上预训练的ResNet50模型实现了70%以上的准确性。该团队提到,模型的性能问题是由于它们依赖虚假背景而导致的,通过查看其错误分类的分类,说明了Spawrious数据集如何成功地测试分类器并揭示它们在错误相关性方面的弱点。 为了说明O2O和M2M基准测试之间的差异,该团队使用了一个夏季收集训练数据的例子,其中包括来自两个不同位置的两组动物物种,每个动物组都与特定的背景组相关联。然而,随着季节的变化和动物的迁移,群组交换位置,导致动物组和背景之间的虚假相关性以无法一对一匹配的方式发生变化。这凸显了捕捉M2M虚假相关性中复杂关系和相互依赖性的必要性。 Spawrious似乎是一套有前途的基准套件,用于OOD,领域通用算法,以及评估和提高模型在存在虚假特征的情况下的鲁棒性。

Leave a Comment

你口袋里的艺术家伙伴:SnapFusion 是一种人工智能方法,将扩散模型的能力带到移动设备上

扩散模型。如果您一直关注人工智能领域的进展,您一定经常听到这个术语。它们是使生成式人工智能方法革命成为可能的关键。我们现在有了可以在几秒钟内使用文本提示生成逼真图像的模型。它们已经革新了内容生成、图像编辑、超分辨率、视频合成和3D资产生成。 尽管这种印象深刻的性能并不便宜。扩散模型在计算要求方面非常苛刻。这意味着您需要真正高端的GPU才能充分利用它们。是的,也有尝试让它们在本地计算机上运行,但即使如此,您也需要高端计算机。另一方面,使用云提供商可能是一种替代方案,但在这种情况下,您可能会冒着隐私风险。 然后,我们还需要考虑到的是即时性。对于大多数人来说,他们花在手机上的时间比花在计算机上的时间更长。如果您想在移动设备上使用扩散模型,那么祝您好运,因为它对设备本身的有限硬件功率要求过高。 扩散模型是下一个大事,但在将它们应用于实际应用程序之前,我们需要解决它们的复杂性。已经有多次尝试专注于加速移动设备上的推理,但它们没有实现无缝的用户体验或定量评估生成质量。好吧,这是一个故事,直到现在,因为我们有一个新的玩家进入领域,它的名字叫做SnapFusion。 SnapFusion是首个在移动设备上生成图像的文本到图像扩散模型,时间不到2秒。它优化了UNet架构并减少了去噪步骤的数量,以提高推理速度。此外,它使用了不断发展的训练框架,引入了数据蒸馏管道,并在步骤蒸馏过程中增强了学习目标。 SnapFusion概览。来源: https://arxiv.org/pdf/2306.00980.pdf 在对结构进行任何更改之前,SnapFusion的作者首先研究了SD-v1.5的架构冗余性,以获得高效的神经网络。然而,由于高昂的培训成本,将传统剪枝或架构搜索技术应用于SD是具有挑战性的。架构的任何更改都可能导致性能下降,需要进行大量的微调和大量的计算资源。因此,这条路被堵住了,他们不得不开发替代解决方案,可以在逐渐提高其效率的同时保持预训练UNet模型的性能。 为了增加推理速度,SnapFusion专注于优化UNet架构,这是有条件扩散模型中的瓶颈。现有的作品主要关注后训练优化,但是SnapFusion确定了架构冗余并提出了一个不断发展的训练框架,其表现优于原始的稳定扩散模型,同时显著提高了速度。它还引入了一个数据蒸馏管道,以压缩和加速图像解码器。 SnapFusion包括一个强大的训练阶段,在该阶段应用随机前向传播以执行每个交叉关注和ResNet块,并具有一定的概率。这种强大的训练增强确保网络对架构排列具有容忍性,从而允许准确评估每个块和稳定的架构演变。 通过使用通过通道缩减获得的解码器的合成数据来训练解码器,可以实现高效的图像解码器。该压缩解码器具有显著较少的参数,并且比SD-v1.5的解码器更快。蒸馏过程涉及使用文本提示生成两个图像,一个来自高效解码器,另一个来自SD-v1.5,以获得从SD-v1.5的UNet中获得的潜在表示。 提出的阶段蒸馏方法包括一个香草蒸馏损失目标,旨在最小化学生UNet的预测和教师UNet的嘈杂潜在表示之间的差异。此外,引入了CFG感知蒸馏损失目标,以提高CLIP分数。CFG引导预测在教师和学生模型中使用,其中CFG比例是随机抽样的,以在训练期间在FID和CLIP分数之间提供权衡。 SnapFusion生成的样本图像。来源:https://arxiv.org/pdf/2306.00980.pdf 由于改进的阶段蒸馏和网络架构开发,SnapFusion可以在移动设备上不到2秒的时间内从文本提示生成512×512像素的图像。生成的图像展示了与最先进的稳定扩散模型相似的质量。

Leave a Comment

使用多头注意力机制理解注意力机制

介绍 深入了解Transformer模型的好方法是学习注意机制。在这方面,特别是在学习其他类型的注意机制之前学习多头注意力也是一个不错的选择。这是因为这个概念往往比较容易理解。 注意机制可以被视为可以添加到常规深度学习模型中的神经网络层。其目的是使模型专注于使用分配的权重来关注输入的特定部分,从而权衡它们的价值。我们将进一步详细了解注意机制,使用多头注意力机制。 学习目标 注意机制的概念 多头注意力的含义 Transformer中多头注意力的架构 其他类型的注意机制简介 本文是数据科学博客马拉松的一部分。 了解注意机制 我们可以从人类心理学的角度开始看这个概念。在心理学中,注意力是集中意识在某些事件上,以便排除其他刺激的影响。这意味着即使有其他干扰,我们仍然会专注于我们选择的事物。注意力有选择地集中在整体的一个离散部分。 这个概念是Transformer中使用的。它们能够集中精力关注其输入的目标部分,并忽略其余部分。这可以使它们以非常有效的方式行动。 什么是多头注意力? 多头注意力是Transformer中的一个中心机制,类似于ResNet50架构中的跳跃连接。有时需要关注序列中的多个其他点。使用找到整体平均值的方法将不会使权重分布,因此不会给予多样化的值作为权重,这就引出了创建多个独立的注意机制以形成多个注意力机制的扩展的想法。现在的实现在单个特征上呈现多个不同的查询-键-值三元组。 来源:Pngwing.com 计算是这样进行的,注意模块在多次迭代中执行,组织成称为注意头的并行层。每个独立的头独立处理输入序列和相关输出序列元素。每个头部的累积分数然后组合以获得最终的注意分数,其中包含输入序列的每个细节。 数学表达式 具体而言,如果我们有一个关键字和一个值矩阵,我们可以将值转换为ℎ个子查询,子关键字和子值,这些将独立地通过注意力传递。连接将给出一个头,并使用最终的权重矩阵将它们组合起来。 可学习的参数是分配给各个头部的注意力中的值,其中各种参数称为多头注意力层。下面的图示说明了这个过程。 让我们简要地看一下这些变量。其中X的值是单词嵌入矩阵的连接。 矩阵解释 查询:它是一个特征向量,提供有关序列中目标的洞察力。它在序列上提出请求,需要关注哪些部分。 关键字:这是描述元素中包含的内容的特征向量。它突出显示提供元素的身份,并通过查询提供注意力。 值:处理输入序列,每个输入元素使用一个值来知道提供平均值的内容。 评分函数:创建评分函数时,我们将查询和关键字指定为其输出的权重,称为查询-关键字对。…

Leave a Comment

SRGANs:弥合低分辨率和高分辨率图像之间差距

介绍 想象一下,你在一个尘土飞扬的阁楼里发现了一本旧的家庭相册。你会立即清理灰尘,并充满兴奋地翻阅它的页面。你发现了一张很多年前的照片。但是,你看起来并不开心,因为这张照片已经模糊而且颜色已经褪色。你会竭尽全力去找到照片中的面孔和细节。这是在旧时代的场景。幸好,现在有了新技术。我们有超分辨率生成对抗网络(SRGAN),可以将低分辨率图像转换为高分辨率图像。在本文中,我们将学习最多关于SRGAN,并将其应用于QR码增强。 来源:Vecteezy 学习目标 在本文中,我们将学习: 超分辨率及其与普通缩放的区别 超分辨率的一些方法及其类型 深入了解SRGAN,它们的损失函数、架构和一些应用 使用SRGAN进行QR增强的实现以及详细描述 本文是数据科学博客马拉松的一部分。 什么是超分辨率? 在许多犯罪调查电影中,我们经常遇到一个典型的情景,侦探会检查闭路电视录像以获取证据。有一幕场景,有人发现了一张小而模糊的图像,他们通过缩放和增强得到了清晰的图片。你觉得这可能吗?是的,我们可以通过超分辨率来做到这一点。超分辨率技术可以增强由闭路电视摄像机捕捉的模糊图像,从而为它们提供更详细的视觉效果。 ………………………………………………………………………………………………………………………………………………………….. ………………………………………………………………………………………………………………………………………………………….. 将图像进行放大和增强的过程称为超分辨率。它包括从相应的低分辨率输入生成图像或视频的高分辨率版本。其目标是恢复丢失的细节,提高清晰度并改善视觉质量。如果你只是放大图片而不进行增强,你会得到模糊的图片,如下图所示。增强是通过超分辨率实现的。它在许多领域中都有应用,包括摄影、监视系统、医学成像、卫星成像等。 ……….. 传统超分辨率方法 传统方法主要集中于估计缺失的像素值和提高图像分辨率。有两种方法:基于插值的方法和基于正则化的方法。 基于插值的方法 在超分辨率的早期阶段,他们主要关注基于插值的方法,其目标是估计缺失的像素值,然后将图像放大。假设相邻的像素值将具有相似的像素值,并使用这些值来估计缺失的值。最常用的插值方法包括双三次插值、双线性插值和最近邻插值。但是结果不尽如人意。这导致了模糊的图像。这些方法计算高效,适用于基本的分辨率任务和计算资源有限的情况。 基于正则化的方法 另一方面,基于正则化的方法旨在通过将额外的约束或先验引入到图像重建过程中来改善超分辨率结果。这些技术利用图像的统计特征来增加重建图像的精度,同时保留细节。它提供了更多对重建过程的控制,并增强了图像的清晰度和细节。但是,这里存在一些限制,如处理复杂图像内容会导致在某些情况下过度平滑。 尽管这些传统方法有一些限制,但它们为超分辨率强大的方法的出现铺平了道路。 来源:Rapid API…

Leave a Comment

AWS Inferentia2 在 AWS Inferentia1 的基础上进行了升级,其吞吐量提高了4倍,延迟降低了10倍

机器学习(ML)模型的规模——包括大型语言模型(LLMs)和基础模型(FMs)——每年都在迅速增长,这些模型需要更快、更强大的加速器,特别是用于生成式人工智能AWS Inferentia2 从基础设计上就旨在提供更高的性能,同时降低 LLM 和生成式人工智能推断的成本在此[…]

Leave a Comment

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