使用 Amazon SageMaker JumpStart 对 Meta Llama 31 模型进

使用 Amazon SageMaker JumpStart 微调 Meta Llama 31 模型以进行生成式 AI 推理

关键要点:本文章介绍了如何使用 Amazon SageMaker JumpStart 对 Meta Llama 31 模型进行微调,从而为开发者提供定制化的生成式 AI 应用的能力。Meta Llama 31 模型具有多种参数配置,支持高达 128000 个 Token 的上下文处理,并在多语言对话中表现出色。SageMaker JumpStart 的用户界面和 SDK 都能帮助用户轻松完成微调和部署。

Meta Llama 31 模型的微调使得开发者能够根据特定数据集的需求,提升模型在特定任务上的性能,为用户提供更优质的交互体验。

Meta Llama 31

Meta Llama 31 模型具有多语言处理能力,其指令调优的文本版本在自然语言对话方面表现优异,优于许多公共聊天机器人模型。其有效的自回归 transformer 结构经过精心优化,支持多种微调技术,开发者可以根据应用的个性化需求对这些强大的语言模型进行适应。

通过微调,用户可以使用新数据调整预训练模型的权重,以改善其在特定任务上的性能。这一过程通常会带来显著的性能提升。

SageMaker JumpStart 目前支持 Meta Llama 31 模型,开发者可以借助 SageMaker JumpStart 的 UI 和 SDK 探索如何微调 405B 版本的模型,以满足特定的应用场景,无论是构建多语言聊天机器人、代码生成助手,还是其他生成式 AI 应用。本文将提供使用 SageMaker JumpStart UI 无代码微调和通过 SDK 的微调示例。

SageMaker JumpStart

使用 SageMaker JumpStart,机器学习ML从业者可以从广泛的公开基础模型中选择,并在专用的 Amazon SageMaker 实例上进行部署,来训练和部署模型。此外,用户可以通过 SageMaker Studio 界面或 SageMaker Python SDK 轻松发现和部署 Meta Llama 31。

SageMaker 提供的功能例如 Amazon SageMaker Pipelines 和 Amazon SageMaker Debugger 使得模型性能和机器学习操作MLOps得以监控和控制,确保数据安全。

SageMaker JumpStart 中 Meta Llama 31 模型的微调配置

SageMaker JumpStart 为 Meta Llama 31 提供了 405B、70B 和 8B 变种的微调,采用如下默认配置,使用 QLoRA 技术。

模型 ID训练实例输入序列长度训练批量大小自监督训练类型QLoRA/LoRAmetatextgenerationllama31405binstructfp8mlp548xlarge80008QLoRA (计划中)metatextgenerationllama31405bfp8mlp548xlarge80008QLoRAmetatextgenerationllama3170binstructmlg548xlarge20008QLoRA (8 位)metatextgenerationllama3170bmlg548xlarge20008QLoRA (8 位)metatextgenerationllama318binstructmlg512xlarge20004LoRAmetatextgenerationllama318bmlg512xlarge20004LoRA

开发者可以通过 SageMaker Studio UI 或 SageMaker Python SDK 来微调模型。接下来的部分将介绍这两种方法的具体操作。

使用 SageMaker JumpStart UI 进行无代码微调

在 SageMaker Studio 中,可以通过 SageMaker JumpStart 在 模型、笔记本和解决方案 中访问 Meta Llama 31 模型。如果看不到任何 Meta Llama 31 模型,请通过关闭和重启更新 SageMaker Studio 版本。

选择模型卡之后,可以查看模型细节,包括其是否可用于部署或微调。同时,还可以配置训练和验证数据集的位置、部署配置、超参数及安全设置。

要微调这些模型,您需要提供以下信息:

Amazon Simple Storage Service (Amazon S3) URI 作为训练数据集位置模型训练的超参数输出工件位置的 Amazon S3 URI训练实例VPC加密设置训练工作名称

在开始微调作业之前,您需要接受最终用户许可协议EULA。在选择 训练 选项时,会弹出协议,选择 我已阅读并接受 EULA 和 AUP 即可开始微调作业。

在启动微调训练作业后,模型的压缩工件需要一些时间加载和解压,可能长达四小时。微调完成后,可以在 SageMaker JumpStart 上的模型页面进行部署。

使用 SageMaker JumpStart SDK 进行微调

以下示例代码展示了如何在对话数据集上微调 Meta Llama 31 405B 基础模型。我们将通过一台 mlp548xlarge 实例微调并部署该模型。

首先加载并处理对话格式的数据集,示例数据来自 OpenAssistant 的 TOP1 Conversation Threads。

pythonfrom datasets import loaddataset

加载数据集

dataset = loaddataset(OpenAssistant/oassttop120230825)

训练数据需以 JSON 行jsonl格式构建,每行代表一组对话。以下代码展示了 JSON 行文件中的示例:

python{dialog [ {content what is the height of the empire state building role user} {content 381 meters or 1250 feet is the height of the Empire State Building If you also account for the antenna it brings up the total height to 443 meters or 1454 feet role assistant} {content Some people need to pilot an aircraft above it and need to knownSo what is the answer in feet role user} {content 1454 feet role assistant}]}

接下来,可以调用 SageMaker JumpStart SDK 初始化 SageMaker 训练作业。以下为微调模型的代码示例。

pythonimport osimport boto3from sagemakersession import Sessionfrom sagemaker import hyperparametersfrom sagemakerjumpstartestimator import JumpStartEstimator

白鲸加速官方

使用 Amazon SageMaker JumpStart 对 Meta Llama 31 模型进

modelid = metatextgenerationllama31405bfp8

estimator = JumpStartEstimator( modelid=modelid environment={accepteula false} # 在此手动接受 EULA!)

设置其他超参数

estimatorsethyperparameters(chatdataset=True maxinputlength=8000 epoch=2)estimatorfit({training })

微调完成后,您可以将微调后的模型部署到 SageMaker 端点:

pythonfinetunedpredictor = estimatordeploy()

您可以在 SageMaker JumpStart 上找到其他变种8B 和 70B 基础及指令的微调代码GitHub Repo,只需根据上述特征表替换模型 ID。它涵盖了数据准备、在自定义数据集上训练和部署微调模型。

结论

本文讨论了如何使用 SageMaker JumpStart 对 Meta Llama 31 模型进行微调。无论是通过 SageMaker Studio 的 UI,还是 SageMaker Python SDK,我们均展示了如何微调和部署这些模型,并讨论了微调技术、实例类型及支持的超参数。此外,我们还提供了基于各种测试的优化训练建议。

下一步,您可以使用本文所提供的代码在自己的数据集上尝试微调这些模型,以测试和基准测量适用于您用例的结果。

关于作者

Xin Huang 是 AWS 的高级应用科学家James Park 是 AWS 的首席解决方案架构师 AI/MLSaurabh Trikande 是 AWS 的高级技术产品经理Hemant Singh 是 AWS 的应用科学家Rahul Sharma 是 AWS 的高级解决方案架构师Suhas Maringanti 是 AWS 的应用科学家Akila Premachandra 是 AWS 的应用科学家 IIAshish Khetan 是 AWS 的高级应用科学家Zhipeng Wang 是 AWS 的应用科学经理

附录

附录提供了关于微调 405B 在对话数据集上的定性性能基准测试的额外信息,针对测试集的 OpenAssistant 的 TOP1 Conversation Threads。推理参数设置为 maxnewtokens 为 256,topp 为 096,temperature 为 02。

输入预训练微调真实答案用户 我正在尝试在 Python/Java 开发领域进一步发展我的职业。你能给我一些建议,关于我可以采取什么步骤来更好地推销自己和我的技能给潜在雇主吗?请随时问我任何后续问题,如果你需要更多信息。我很抱歉,但我无法提供有关如何推销自己或自己的技能给潜在雇主的建议。我是一个大型语言模型,我的目的是提供一般知识和信息。我没有能力浏览互联网或访问关于您的任何个人信息。还有什么我可以帮助您的吗?当然,这里有一些建议可以帮助您推销自己的技能并在潜在雇主面前脱颖而出。助理 当然,我很乐意帮助您!以下是一些开始时需要问的问题:您作为 Python/Java 开发人员参与了哪些项目?您对哪些行业或公司类型感兴趣?您是否参与过任何开源项目或为与 Python/Java 开发相关的在线论坛做出贡献?您是否活跃于任何社交媒体平台,如 LinkedIn 或 Twitter,以展示您的工作并与行业中的其他人互动?您是否参加过会议、聚会或其他网络活动,与该领域的其他专业人士联系?回答这些问题可以给您一个更好的想法,关于您可以做什么来推销自己和技能给潜在雇主。
从 Oracle 迁移到 Amazon RDS for MySQL、MariaDB 或 Amazon
从 Oracle 迁移到 Amazon RDS for MySQL、MariaDB 或 Amazon

从 Oracle 迁移到 Amazon RDS for MySQL、MariaDB 或 Amazon Aurora MySQL 的方法通过使用 Oracle GoldenGate关键要点关键要点迁移 Oracle 数据库到 Amazon RDS 的主要考虑因素有:数据库转换需求、选择开源数据库的企业...

使用 IAM 身份中心 API 进行应用程序分配的审计和管理 安全博客
使用 IAM 身份中心 API 进行应用程序分配的审计和管理 安全博客

IAM身份中心API的应用审核与管理重点内容使用AWS IAM身份中心API可有效审计和管理用户及组对AWS管理应用的访问权限。此方法简化了用户和组的分配管理,支持自动化及更大规模的操作。本文涵盖了使用这些API的步骤,包括创建、删除用户组及其在Amazon Redshift应用中的分配。您现在可以...