Press "Enter" to skip to content

52 search results for "Trainer"

使用 QLoRA 对 Llama 2 进行微调,并在 Amazon SageMaker 上部署,配备 AWS Inferentia2

在这篇文章中,我们展示了使用参数高效微调 (PEFT) 方法对 Llama 2 模型进行微调,并将微调后的模型部署在 AWS Inferentia2 上我们使用 AWS Neuron 软件开发工具包 (SDK) 来访问 AWS Inferentia2 设备,并从其高性能中受益然后,我们使用一个由 […] 提供支持的大型模型推断容器

Leave a Comment

使用API计划Amazon SageMaker笔记本任务并管理多步骤笔记本工作流程

亚马逊SageMaker Studio为数据科学家提供了完全托管的解决方案,可以交互式地构建、训练和部署机器学习(ML)模型亚马逊SageMaker笔记本作业允许数据科学家在SageMaker Studio中通过几次点击按需或按计划运行其笔记本有了这次发布,您可以以编程方式运行笔记本作业[…]

Leave a Comment

LLM精细调校与PEFT技术

介绍 语言模型,简称LLM,已经席卷了自然语言处理领域。它们是强大的人工智能系统,旨在生成类似于人类的文本、理解和响应自然语言输入。本质上,它们旨在模仿人类的语言理解和生成。让我们开始一段旅程,了解微调LLM的复杂性,并探索改变领域的创新PEFT(Prompt Engineering and Fine Tuning)技术。 学习目标: 理解语言模型中微调的概念。 理解PEFT技术及其重要性。 探索有效系数选择的技术。 理解PEFT技术 首先,让我们解读这个缩略词——PEFT代表参数效率微调。但在这个背景下,参数效率意味着什么,为什么它很重要呢? 在机器学习中,模型实质上是由数以万计的系数或权重构成的复杂数学方程。这些系数决定模型的行为,并使其能够从数据中学习。当我们训练一个机器学习模型时,我们调整这些系数以最小化误差并进行准确的预测。对于可以拥有数十亿参数的LLM来说,在训练期间改变所有参数可能会消耗大量的计算资源和内存。 这就是微调的作用。微调是将已训练好的模型进行微调,以适应特定任务的过程。它假设模型已经具备了对语言的基本理解,并专注于使其在特定领域表现出色。 作为微调的子集,PEFT严肃地考虑了参数效率。与其改变模型的所有系数,PEFT选择其中的一个子集,从而大大减少了计算和内存需求。当训练大型模型(如Falcon 7B)时,这种方法特别有用。 训练、微调和提示工程:主要区别 在深入研究PEFT之前,让我们澄清训练、微调和提示工程之间的区别。这些术语经常被互换使用,但在LLM的背景下具有特定的含义。 训练:当一个模型从头开始创建时,它经历了训练。这涉及调整模型的所有系数或权重,以学习数据中的模式和关系。这就像是将模型教授语言的基础知识。 微调:微调假设模型已经具备了对语言的基本理解(通过训练实现)。它涉及有针对性地进行调整,以使模型适应特定的任务或领域。将其视为对受过良好教育的模型进行细化,以实现特定工作,如回答问题或生成文本。 提示工程:提示工程涉及制作输入提示或问题,引导LLM提供所需的输出。它是根据您的需求定制与模型的交互方式。 PEFT在微调阶段起着重要作用,我们有选择地修改模型的系数,以提高其在特定任务上的性能。 探索LoRA和QLoRA用于系数选择 现在,让我们深入了解PEFT的核心,并了解如何高效选择系数的子集。两种技术,LoRA(低秩采用)和QLoRA(量化+低秩采用),用于实现这一目的。 LoRA(低秩采用):LoRA是一种技术,它认识到模型中的并非所有系数都同等重要。它利用了一些权重对模型产生的影响比其他权重更大的事实。在LoRA中,通过因式分解将大型权重矩阵分为两个较小的矩阵。因子“R”决定选择了多少个系数。通过选择较小的“R”,我们减少了需要进行调整的系数数量,使微调过程更高效。…

Leave a Comment

“机器学习工程师的LLMOps入门指南”

介绍 OpenAI发布的ChatGPT引发了人们对大型语言模型(LLMs)的兴趣,现在人人都在谈论人工智能。但这不仅仅是友好的对话;机器学习(ML)社区引入了一个新术语叫做LLMOps。我们都听说过MLOps,但LLMOps又是什么呢?嗯,这就是关于如何在整个生命周期中处理和管理这些强大的语言模型的一切。 LLMs正在改变我们创建和维护基于人工智能的产品的方式,这种转变导致了对新工具和最佳实践的需求。在本文章中,我们将详述LLMOps及其背景。我们还将探讨如何使用LLMs构建人工智能产品与传统机器学习模型的区别。此外,由于这些区别,我们还将比较MLOps(机器学习运营)与LLMOps的不同之处。最后,我们将讨论在LLMOps领域可以预期的令人兴奋的发展。 学习目标: 深入了解LLMOps及其发展。 通过示例学习使用LLMOps构建模型。 了解LLMOps与MLOps的区别。 对LLMOps的未来有所了解。 本文作为数据科学博文马拉松的一部分发表。 什么是LLMOps? LLMOps代表着大型语言模型操作,类似于MLOps,但专门为大型语言模型(LLMs)设计。它需要使用新的工具和最佳实践来处理与LLM驱动的应用程序有关的一切,从开发到部署和持续维护。 为了更好地理解这个概念,让我们来解释一下LLMs和MLOps的含义: LLMs是可以生成人类语言的大型语言模型。它们拥有数十亿的参数,并且是在数十亿的文本数据上进行训练的。 MLOps(机器学习运营)是一组用于管理机器学习驱动应用程序生命周期的工具和实践。 现在我们已经解释了基本概念,让我们更深入地探讨这个话题。 关于LLMOps的热潮是什么? 首先,像BERT和GPT-2这样的LLMs自2018年以来就已经存在。然而,现在,在近五年后,我们才遇到了LLMOps这个概念的迅猛崛起。主要原因是LLMs在2022年12月发布ChatGPT时受到了很多媒体的关注。 自那时以来,我们看到了许多不同类型的应用程序充分利用LLMs的强大能力。这包括从熟悉的ChatGPT之类的聊天机器人,到用于编辑或摘要的更个人化的写作助手(例如Notion AI),以及用于文案撰写的高效助手(例如Jasper和copy.ai)。它还包括用于编写和调试代码的编程助手(例如GitHub Copilot)、测试代码的助手(例如Codium AI)以及识别安全问题的助手(例如Socket AI)。 随着越来越多的人将LLM驱动的应用程序开发和投入生产,人们开始贡献他们的经验。 “用LLMs做一些酷炫的东西很容易,但让它们适合投入生产非常困难。” –…

Leave a Comment

使用Amazon SageMaker编排基于Ray的机器学习工作流程

随着客户尝试解决越来越具有挑战性的问题,机器学习(ML)变得越来越复杂这种复杂性通常会导致对分布式ML的需求,即使用多台机器来训练一个模型尽管这可以实现跨多个节点的任务并行化,从而加快训练时间、提高可伸缩性和改进[…]

Leave a Comment

使用@remote装饰器在Amazon SageMaker上微调Falcon 7B和其他LLMs

今天,生成式人工智能模型涵盖了各种任务,包括文本摘要、问答以及图像和视频生成为了提高输出的质量,采用了一些方法,如N-Short学习、提示工程、检索增强生成(RAG)和微调微调允许您调整这些生成式人工智能模型,以在您的领域特定的任务上实现更好的性能

Leave a Comment

阿里巴巴集团的这篇论文介绍了FederatedScope-LLM:一种用于联邦学习中微调LLM模型的全面套件

如今,像Hugging Face这样的平台使得从AI研究人员到机器学习经验有限的用户都能够更轻松地访问和利用预训练的大型语言模型(LLM)来为不同实体服务。当多个这样的组织或实体在共享类似的任务时,由于隐私法规的限制而无法直接交换本地数据时,联邦学习(FL)成为利用这些实体的集体数据的显著解决方案。FL还提供了强大的隐私保护,保护其模型思想的安全,并允许他们使用不同的方法创建定制模型。 在这项工作中,研究人员建立了一个全面的端到端基准测试流水线,简化了数据集预处理、执行或模拟联邦微调以及在联邦大型语言模型(LLM)微调环境中评估性能的过程,旨在为各种能力演示目的设计。 上述图片展示了FS-LLM的架构,包括三个主要模块:LLMBENCHMARKS、LLM-ALGZOO和LLM-TRAINER。团队已经开发了强大的联邦参数高效微调(PEFT)算法的实现和多功能的编程接口,以便未来的扩展,即使处理闭源LLM,也能够在联邦学习(FL)场景中有效地运行LLM,减少通信和计算开销。 他们的网站上提供了详细的教程:federatedscope.io 您可以通过FederatedScope Playground或Google Colab尝试FederatedScope。 他们的方法还结合了加速技术和资源有效的策略,以在资源约束下微调LLM,并提供灵活的可插拔子例程,用于跨学科研究,例如在个性化联邦学习设置中应用LLM。 该研究包括一系列广泛且可再现的实验证明了FS-LLM的有效性,并在联邦环境中使用最先进的参数高效微调算法建立了先进LLM的基准。根据这些实验结果的发现,我们概述了未来联邦LLM微调研究的一些有希望的方向,以推进FL和LLM社区的发展。

Leave a Comment

通过在Amazon SageMaker上使用Hugging Face进行电子邮件分类,加速客户成功管理

在这篇文章中,我们分享了SageMaker如何帮助Scalable的数据科学团队高效地管理数据科学项目的生命周期,特别是电子邮件分类器项目生命周期从使用SageMaker Studio进行初始阶段的数据分析和探索开始,然后通过SageMaker训练、推理和Hugging Face DLCs进行模型实验和部署,并最终通过与其他AWS服务集成的SageMaker Pipelines完成训练流程

Leave a Comment

构建和训练用于代码的大型语言模型:深入探究StarCoder

介绍 嗨,科技爱好者们!今天,我很兴奋地带你进入建立和训练大规模语言模型(LLMs)的迷人世界。我们将深入探讨一个令人惊叹的模型,名为StarCoder,它是BigCode项目的一部分——这是一个在AI和代码开发交叉领域的开放倡议。 在开始之前,我要感谢Hugging Face的机器学习工程师Loubna Ben Allal,她在“为代码构建大语言模型”上的数据小时会议上的演讲成为本文的基础。现在,请系好安全带,让我们探索这一前沿技术背后的魔力! 学习目标: 通过BigCode合作,强调透明和道德开发,掌握在编码AI中的开放和负责任的实践。 了解LLM训练的基本要点:数据选择、架构选择和高效并行,利用Megatron-LM等框架。 通过HumanEval等基准评估LLM,借助BigCode评估工具,实现有效的模型比较。 使用VS Code扩展等工具,实现LLM在开发环境中的实际集成,与道德的AI利用相一致。 释放大语言模型在代码中的力量 那么,关于这些大规模语言模型有什么热议呢?它们就像虚拟的编码巫师,可以完成代码片段、生成整个函数,甚至可以提供修复错误的见解——所有这些都是基于自然语言描述的。我们今天的主角,StarCoder,拥有惊人的155亿个参数,并展示了出色的代码完成能力和负责任的AI实践。 数据筛选和准备:成功的基石 好了,让我们谈谈秘密酱料——数据筛选。我们的旅程始于The Stack数据集,这是一个横跨300多种编程语言的GitHub代码的大规模汇编。然而,数量并不总是胜过质量。我们精选了86种相关的语言,优先考虑了流行度和包容性,同时删除了过时的语言。 但是这里有个问题:经过广泛的清理,我们最终只得到了约800GB的80种编程语言的代码。我们通过一种称为去重的过程来删除自动生成的文件和重复的内容,以确保模型不会记住重复的模式。这种做法注重数据集的质量而不是数量,并为有效训练铺平了道路。 标记化和元数据的训练:破解代码 接下来是标记化!我们将我们的干净文本数据转换为模型可以理解的数值输入。为了保留存储库和文件名等元数据,我们在每个代码片段的开头添加了特殊标记。这些元数据就像模型的路线图,指导它如何在不同的编程语言中生成代码片段。 我们还巧妙地处理了GitHub问题、git提交和Jupyter笔记本等内容。所有这些元素都被结构化为特殊标记,为模型提供上下文。这些元数据和格式化后来在模型的性能和微调中起到关键作用。 StarCoder的架构选择:创造新高度 StarCoder的架构是一个设计选择的杰作。我们追求速度和成本效益,因此选择了1550亿个参数,在实力和实用性之间取得了平衡。我们还采用了多查询注意力(MQA)技术,这种技术可以高效处理更大批量的数据,并在不损失质量的情况下加快推理时间。 但创新并没有止步于此。我们引入了大上下文长度,得益于巧妙的闪光注意力。这使我们能够扩展到8000个标记,保持效率和速度。如果你想知道双向上下文,我们找到了一种方法让StarCoder能够理解从左到右和从右到左的代码片段,提高了它的多功能性。 训练和评估:让StarCoder接受考验…

Leave a Comment

证明就在云端:GeForce NOW宣布Ultimate KovaaK’s挑战赛结果

裁决已出:GeForce NOW 终极会员提升了游戏的标准。会员们已经全力应对终极 KovvaK 挑战,并亲眼见证了终极的力量如何以每秒 240 帧的流媒体提高他们的游戏体验。 这款受欢迎的训练游戏本周在云端全面上线,并附有 Steam 的限时折扣。KovaaK’s 还将有超过 20 款新游戏加入 GeForce NOW 游戏库。 游戏玩家在 QuakeCon 上尽显身手 终极引领潮流。 大批 PC 游戏爱好者在上周末纷纷涌向 QuakeCon 上的…

Leave a Comment

AWS对一家大型游戏公司的大型语言模型(LLM)进行微调,以对有害言论进行分类

视频游戏行业全球用户预计超过30亿人1它由大量玩家组成,每天都在虚拟环境中相互交流不幸的是,就像现实世界一样,并非所有玩家都能适当和尊重地交流为了创建和维护一个具有社会责任感的游戏环境,AWS […]

Leave a Comment

大型语言模型微调的全面指南

介绍 在过去几年中,自然语言处理(NLP)领域发生了一场令人瞩目的变革,这完全归功于大型语言模型的出现。这些复杂的模型为各种应用打开了大门,从语言翻译到情感分析,甚至智能聊天机器人的创建。 但它们的多功能性使得这些模型与众不同;将它们微调以应对特定任务和领域已经成为标准做法,释放出它们的真正潜力,将其性能提升到新的高度。在这本全面的指南中,我们将深入探讨大型语言模型的微调世界,涵盖从基础知识到高级知识的一切。 学习目标 了解微调的概念和将大型语言模型调整适应特定任务的重要性。 探索多任务、指令微调和参数高效微调等高级微调技术。 获得实际应用的实用知识,微调的语言模型在其中革新行业。 了解大型语言模型微调的逐步过程。 实施完善的微调机制。 了解标准微调和指令微调之间的区别。 本文作为数据科学博文的一部分发表。 理解预训练语言模型 预训练语言模型是在互联网上获取的大量文本数据上进行训练的大型神经网络。训练过程包括预测给定句子或序列中缺失的单词或令牌,从而使模型对语法、上下文和语义有深刻的理解。通过处理数十亿个句子,这些模型可以把握语言的复杂性,有效捕捉其细微差别。 流行的预训练语言模型示例包括BERT(双向编码器表示转换)、GPT-3(生成式预训练转换器3)、RoBERTa(经过优化的鲁棒BERT预训练方法)等等。这些模型以其出色的性能在文本生成、情感分类和语言理解等任务上表现出色。 让我们详细讨论其中一个语言模型。 GPT-3 GPT-3(生成式预训练转换器3)是一种突破性的语言模型架构,改变了自然语言生成和理解。Transformer模型是GPT-3架构的基础,它包含了多个参数,以产生出色的性能。 GPT-3的架构 GPT-3由一系列Transformer编码器层组成。每个层由多头自注意力机制和前馈神经网络组成。前馈网络处理和转换编码表示,注意力机制使模型能够识别单词之间的依赖关系和关联。 GPT-3的主要创新是其巨大的规模,它拥有令人惊叹的1750亿个参数,使其能够捕捉到大量的语言知识。 代码实现 您可以使用OpenAI API与GPT-3模型进行交互。以下是使用GPT-3进行文本生成的示例。 import openai…

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

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

基于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

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