在 Amazon SageMaker JumpStart 中仅用两行代码即可部署和微调基础模型 机器
在Amazon SageMaker JumpStart中仅用两行代码部署和微调基础模型
重点摘要
我们激动地宣布,Amazon SageMaker JumpStart SDK简化版本现已推出,让构建、训练和部署基础模型变得简单。在本文中,我们将展示如何仅用几行代码利用这个简化的SDK开始使用基础模型。
解决方案概览
SageMaker JumpStart 提供了针对各种问题类型的预训练开源模型,帮助您快速入门机器学习ML。您可以在部署之前逐步训练和微调这些模型。JumpStart 还提供了为常见用例设置基础设施的解决方案模板,以及用于 ML 的可执行示例笔记本。您可以通过 Amazon SageMaker Studio 或使用 SageMaker Python SDK 访问预训练模型、解决方案模板和示例。
为了展示 SageMaker JumpStart SDK 的新特性,我们演示了如何使用 Hugging Face 的 Flan T5 XL 模型进行文本生成和摘要任务。您只需几行代码即可微调 Flan T5 XL 模型进行摘要任务,您也可以使用其他模型进行文本生成,例如 Llama2、Falcon 或 Mistral AI。
您可以在 GitHub 仓库中找到使用 Flan T5 XL 的解决方案笔记本。
部署和调用模型
部署在 SageMaker JumpStart 上的基础模型具有模型 ID。有关模型 ID 的完整列表,请参阅 内置算法和预训练模型表。在本文中,我们将使用 Flan T5 XL 文本生成模型的模型 ID。我们实例化模型对象并通过调用其 deploy 方法将其部署到 SageMaker 端点。以下是代码示例:
pythonfrom sagemakerjumpstartmodel import JumpStartModel
如果需要可替换为更大模型
pretrainedmodel = JumpStartModel(modelid=huggingfacetext2textflant5base)pretrainedpredictor = pretrainedmodeldeploy()
安易加速器官方接下来,我们使用 Flan T5 XL 模型调用模型以创建提供文本的摘要。新 SDK 接口使您只需将文本传递给预测器即可获取模型的响应,返回的格式是 Python 字典。
pythontext = 总结这个内容 Amazon Comprehend 使用自然语言处理 (NLP) 提取文档内容的见解。通过识别文档中的实体、关键短语、语言、情感和其他常见元素来生成见解。利用 Amazon Comprehend 可以基于对文档结构的理解创建新产品。例如,使用 Amazon Comprehend,您可以搜索社交网络提及的产品或扫描整个文档库中的关键短语。您可以通过 Amazon Comprehend 控制台或使用 Amazon Comprehend API 访问其文档分析能力。您可以对小工作负载进行实时分析,也可以对大文档集启动异步分析作业。您可以使用 Amazon Comprehend 提供的预训练模型,或训练自己的自定义模型进行分类和实体识别。queryresponse = pretrainedpredictorpredict(text)print(queryresponse[generatedtext])
以下是摘要任务的输出:
了解 Amazon Comprehend 的工作原理。使用 Amazon Comprehend 来分析文档。
微调和部署模型
SageMaker JumpStart SDK 提供了一种新类 JumpStartEstimator,使微调变得简单。您可以提供微调数据的位置,并可以选择性地传递验证数据集。在微调模型后,使用估算器对象的 deploy 方法来部署微调后的模型:
pythonfrom sagemakerjumpstartestimator import JumpStartEstimator
estimator = JumpStartEstimator( modelid=modelid)estimatorsethyperparameters(instructiontuned=True epoch=3 maxinputlength=1024)estimatorfit({training traindatalocation})finetunedpredictor = estimatordeploy()
自定义 SageMaker SDK 中的新类
新的 SDK 默认设置了许多参数,使部署和微调 JumpStart 模型变得简单。您仍然可以根据需求覆盖默认设置,定制部署和调用方式。例如,您可以根据环境和用例自定义输入有效负载格式类型、实例类型、VPC 配置等。
以下代码显示了在部署模型时如何覆盖实例类型:
pythonfinetunedpredictor = estimatordeploy(instancetype=mlg52xlarge)
SageMaker JumpStart SDK 的 deploy 函数将为您自动选择默认内容类型和序列化程序。如果您想更改输入有效负载的格式类型,可以使用 serializers 和 contenttypes 对象来检查可用选项,方法是传递您正在使用的模型的 modelid。在以下代码中,我们将有效负载输入格式设置为 JSON,通过将 JSONSerializer 设置为 serializer 和 application/json 设置为 contenttype:
pythonfrom sagemaker import serializersfrom sagemaker import contenttypes
serializeroptions = serializersretrieveoptions(modelid=modelid modelversion=modelversion)contenttypeoptions = contenttypesretrieveoptions(modelid=modelid modelversion=modelversion)
pretrainedpredictorserializer = serializersJSONSerializer()pretrainedpredictorcontenttype = application/json
接下来,您可以调用 Flan T5 XL 模型进行摘要任务,使用 JSON 格式的有效负载。在以下代码中,我们还在 JSON 有效负载中传递推断参数,以提高响应的准确性:
pythoninputtext = 总结这个内容 Amazon Comprehend 使用自然语言处理 (NLP) 提取文档内容的见解。通过识别文档中的实体、关键短语、语言、情感和其他常见元素来生成见解。利用 Amazon Comprehend 可以基于对文档结构的理解创建新产品。例如,使用 Amazon Comprehend,您可以搜索社交网络提及的产品或扫描整个文档库中的关键短语。您可以通过 Amazon Comprehend 控制台或使用 Amazon Comprehend API 访问其文档分析能力。您可以对小工作负载进行实时分析,也可以对大文档集启动异步分析作业。您可以使用 Amazon Comprehend 提供的预训练模型,或训练自己的自定义模型进行分类和实体识别。
parameters = { maxlength 600 numreturnsequences 1 topp 001 dosample False}
payload = {textinputs inputtext parameters} # JSON 输入格式
pretrainedpredictorserializer = serializersJSONSerializer()queryresponse = pretrainedpredictorpredict(payload)print(queryresponse[generatedtexts][0])
如果您想了解更多有关输入和其他主机及微调选项的自定义方法,请参阅 JumpStartModel 和 JumpStartEstimator 类的文档。
结论
在本文中,我们向您展示了如何使用简化的 SageMaker JumpStart SDK 仅用几行代码构建、训练和部署基于任务的模型和基础模型。我们以 Hugging Face Flan T5 XL 模型为例,展示了新类 JumpStartModel 和 JumpStartEstimator 的应用。您还可以使用其他 SageMaker JumpStart 基础模型来处理内容撰写、代码生成、问答、摘要、分类、信息检索等用例。要查看 SageMaker JumpStart 提供的所有模型的完整列表,请参阅 内置算法和预训练模型表。SageMaker JumpStart 还支持许多热门问题类型的 任务特定模型。
我们希望 SageMaker JumpStart SDK 的简化界面能帮助您快速入门,提升开发速度。期待听到您使用简化的 SageMaker JumpStart SDK 创建的精彩应用!
关于作者
Evan Kravitz 是 Amazon Web Services 的软件工程师,从事 SageMaker JumpStart 的工作。他对机器学习与云计算的结合充满兴趣。Evan 在康奈尔大学获得本科学位,在加利福尼亚大学伯克利分校获得硕士学位。2021年,他在 ICLR 会议上发表了一篇关于对抗神经网络的论文。在空闲时间,Evan 喜欢烹饪、旅行和在纽约市跑步。
Rachna Chadha 是 AWS 战略客户部门的首席解决方案架构师AI/ML。Rachna 是一位乐观主义者,认为人工智能的道德与负责任的使用可以改善未来的社会,带来经济和社会繁荣。在闲暇时间,Rachna 喜欢和家人共度时光,远足和听音乐。

Jonathan Guinegagne 是 AWS Amazon SageMaker JumpStart 的高级软件工程师。他在哥伦比亚大学获得硕士学位。他的兴趣包括机器学习、分布式系统和云计算,以及推动 AI 的普及。Jonathan 来自法国,目前居住在纽约布鲁克林。
Dr Ashish Khetan 是 Amazon SageMaker 内置算法的高级应用科学家,帮助开发机器学习算法。他在伊利诺伊大学厄本那香槟分校获得博士学位。他是一位活跃的机器学习和统计推断研究者,在 NeurIPS、ICML、ICLR、JMLR、ACL 和 EMNLP 会议上发表了多篇论文。