亚马逊云科技-利用SageMaker加速GenAI开发
关键字: [yt, SageMaker Studio, Generative Ai Development, Sagemaker Studio Notebooks, Fine-Tuning Large Models, Parameter-Efficient Fine-Tuning, Quantized Low-Rank Adaptation]
本文字数: 1600, 阅读完需: 8 分钟
导读
演讲者 Laura Malanx 阐释了如何利用 Amazon SageMaker Studio 笔记本加速生成式人工智能的开发。她探讨了 SageMaker Studio 如何通过微调技术(如 Q-LoRA 和 PeFT)实现快速原型设计和调试,从而定制大型语言模型。该演讲重点介绍了 SageMaker Studio 笔记本如何借助大型 GPU 实例对大型语言模型(如 FALCON 7B)进行微调,使其适应特定领域任务(如医疗问答),从而比原始的通用模型产生更准确、更相关的响应。
演讲精华
以下是小编为您整理的本次演讲的精华,共1300字,阅读时间大约是6分钟。
亚马逊云科技的反洗钱(AML)解决方案架构师劳拉·马兰克斯介绍了如何利用 SageMaker Studio 笔记本加速生成式人工智能的开发。SageMaker Studio 是一个机器学习集成开发环境(IDE)。借助 SageMaker Studio,用户可以快速启动笔记本、实时协作编辑或共享笔记本,并根据需求无缝扩展或缩减计算资源,而不会中断工作流程。它为机器学习的全流程开发提供了一站式解决方案,涵盖数据准备、模型构建、训练、部署和监控等各个环节。
配备高性能 GPU 实例的 SageMaker Studio 笔记本可加速原型设计和调试过程。在生成式人工智能的开发中,用户可能需要对模型进行定制。一种方法是进行”微调(fine-tuning)“。与自监督的大规模语言模型预训练不同,微调是基于标注数据集,以监督方式更新模型权重。通过微调,可以将通用大模型调整为适应特定领域任务,或引入大模型可能未覆盖的新领域知识,如医疗保健、生命科学、法律或金融服务等。
微调过程类似于训练,但所使用的数据集规模较小。需要选择一个预先训练的基础模型,其中包含数以千计的不同示例。微调需要高计算能力。通过完全微调,将会更新基础大型模型的所有权重参数。这意味着每次对特定任务进行微调时,都会获得该模型的新版本。当对不同任务进行微调时,将拥有该模型的多个不同版本。由于这些版本的大小与原始模型相同,因此会导致昂贵的存储问题。此外,由于大型语言模型包含数十亿甚至数百亿个参数,它们的全精度表示通常无法装入单个GPU,甚至多个GPU。
另一种方法是参数高效微调技术。使用这种微调方式,可以提供较少的标注示例。原始模型的大部分或全部权重参数都被冻结。然后,可以添加小型层或可训练参数,并训练这些小型层或模型的子集层,从而使基础模型的内存使用更加可行。有时,当只对模型参数的一小部分进行微调时,可能会导致精度较低的情况。
为了解决这个问题,还有其他参数高效微调方法,如LoRA或Q-LoRA。Q-LoRA可以减少基础模型的内存使用,而不会降低精度。可以使用Q-LoRA对大型语言模型进行量化或压缩。
该演示展示了如何使用Q-LoRA和PeFT在SageMaker Studio笔记本上对大型语言模型进行微调。在此示例中,使用Hugging Face的Q-LoRA、PeFT和Bits and Bytes库对开源的Falcon 7B(7亿参数)模型进行微调。使用Hugging Face的医疗问答数据集对该模型进行微调,使其更加专注于医疗保健和生命科学领域,以便能够回答有关不同疾病的问题。
首先,选择用于在SageMaker Studio笔记本上进行微调的实例类型。在此示例中,使用了配备4个H.N. Grams GPU的g5.12xlarge实例。也可根据需要微调的大型语言模型,选择更小或更大的实例。
接着,安装所需的库,包括来自源代码的Hugging Face Accelerate、Transformers、PeFT和Bits and Bytes库。这些库是必需的,用于以4位精度加载模型,后续将使用Q-LoRA将16位浮点精度模型量化为4位。
然后,定义CUDA环境路径,这是安装PyTorch的依赖项,Bits and Bytes库也需要它。它还有助于使用Hugging Face的Accelerate进行模型并行,这将在实际训练模型时使用。
在训练模型之前,必须使用Hugging Face Transformers的tokenizer将文本输入转换为token ID。选择了Falcon 7B模型,然后设置Bits and Bytes配置以4位精度加载。在配置中,还将device map指定为auto,以便Hugging Face Accelerate自动确定将模型的每一层放置在哪个GPU上,这个过程被称为模型并行。
接下来使用Hugging Face的PeFT库。原始模型的大部分权重被冻结,并添加了称为LoRA的小型可训练适配层。这些小的LoRA适配层将被用于微调训练。展示了LoRA配置,可根据使用的大型语言模型(此处针对Falcon 7B)进行更新。还可指定目标模块,即要微调的模型层。显示了可训练参数的数量,表明只有7亿参数中的0.7%将被微调,这使得在合理的时间内完成微调变得更加可行。
然后,将数据集划分为20%用于训练,10%用于评估。创建了一个prompt模型,并使用随机采样加载了数据集以进行摘要。显示了训练和评估样本的数量。
模型微调训练随后开始。使用 Hugging Face 的 Trainer 类进行微调,并设置了超参数,如为了节省时间而设置的一个 EPOCH。
在训练结束后,仅用了不到 29 分钟的时间就微调了 Falcon 7B 模型的 0.07%,对微调后的模型进行了评估指标,并将模型保存以供推理使用。
最后,对微调前后的 Falcon 7B 模型进行了比较。加载了保存的适配器和原始通用模型,并为大型语言模型的推理设置了超参数。
可以使用提示与模型进行交互,并为大型语言模型的响应设置结构。将一个与医疗问答数据集相关的提示传递给微调后的模型,询问”ARDS 的治疗方法有哪些?“。显示了微调后模型的详细输出,并与未经微调的原始模型的输出进行了比较,后者似乎不太完整和准确。
给出了另一个提示示例,再次显示微调后的模型在医疗保健和生命科学领域似乎比原始模型更加准确和专门化。
总之,Amazon SageMaker Studio 的笔记本电脑实现了对大型语言模型的微调。通过 Amazon SageMaker Studio,可以使用大型 GPU 实例来加速生成式 AI 的原型设计和开发。Amazon SageMaker Studio 笔记本电脑还可用于其他生成式 AI 任务。
总结
利用亚马逊 SageMaker 强大的功能,可以加速生成式人工智能 (GenAI) 的开发进程。在不断发展的 GenAI 领域中,SageMaker Studio 笔记本提供了一个强大的平台,能够简化从数据准备到模型部署和监控的端到端机器学习过程。这种集成开发环境 (IDE) 凭借大型 GPU 实例,实现了快速原型设计和调试,这对于定制和微调大型语言模型至关重要。
微调是一种将预训练模型调整以适应特定领域任务的技术,在 GenAI 开发中扮演着关键角色。虽然全面微调会更新所有模型权重,导致存储和计算挑战,但参数高效微调 (PeFT) 方法如 LoRA 和 Q-LoRA 提供了一种更可行的方法。尤其是 Q-LoRA,通过量化和压缩模型,可减少内存使用,而不会影响准确性。
通过实际演示,我们见证了 SageMaker Studio 笔记本在使用 Q-LoRA 和 PeFT 微调开源 Falcon 7B 模型方面的强大功能。利用医疗问答数据集,经过微调的模型在回答与医疗保健相关的查询时展现出了出色的特定领域性能,优于原始的通用模型在提供准确详细的响应方面。
总的来说,SageMaker Studio 笔记本使开发人员能够充分发挥 GenAI 的潜力,实现快速迭代、定制和部署适用于特定领域和用例的大型语言模型。随着 GenAI 领域不断发展,这一强大平台将使亚马逊云科技站在加速创新和开拓新可能性的前沿。
亚马逊云科技(Amazon Web Services)是全球云计算的开创者和引领者。提供200多类广泛而深入的云服务,服务全球245个国家和地区的数百万客户。亚马逊云科技致力于成为企业构建和应用生成式AI的首选,通过生成式AI技术栈,提供用于模型训练和推理的基础设施服务、构建生成式AI应用的大模型等工具、以及开箱即用的生成式AI应用。深耕本地、链接全球 – 在中国,亚马逊云科技通过安全、稳定、可信赖的云服务,助力中国企业加速数字化转型和创新,并深度参与全球化市场。