使用亚马逊 SageMaker 基础模型自动生成测验,加快您对 亚马逊云科技 认证考试的学习

作者: Eitan Sela | 2023 年 5

获得 亚马逊云科技 认证可以帮助你推动职业发展,无论你是想寻找新职位、展示自己参与新项目的技能,还是想成为团队的首选专家。而且,由于 亚马逊云科技 认证考试是由相关角色或技术领域的专家创建的,因此为其中一项考试做准备可以帮助您培养该领域熟练从业人员确定的所需技能。

阅读与您的认证考试相关的 亚马逊云科技 服务的常见问题页面对于更深入地了解该服务非常重要。但是,这可能需要相当长的时间。阅读哪怕是一项服务的常见问题解答也可能需要半天的时间才能阅读和理解。例如,仅在 SageMaker 上, 亚马逊 S ageMaker 常见问题解答就包含大约 33 页(印刷版)的内容。

如果你能在 亚马逊云科技 服务常见问题页面上使用系统进行自我测试,那不是更简单、更有趣的学习体验吗?实际上,你可以使用最先进的语言模型和几行 Python 来开发这样的系统。

在这篇文章中,我们将根据亚马逊 SageMaker Jumpstart 上的 AI21 Jurassic-2 Jumbo Instruct 基础模型,为任何 亚马逊云科技 服务的常见问题页面部署多选测验解决方案的综合指南。

大型语言模型

近年来,语言模型的规模和受欢迎程度激增。2018年, BERT-Large 凭借其3.4亿个参数和创新的变压器架构首次亮相 ,为自然语言处理任务的性能设定了基准。在短短几年内,模型大小方面的最先进水平激增了500多倍;OpenAI的 GPT-3 和Bloom 176 B均具有1750亿个参数,以及具有1780亿个参数的AI21 Jurassic-2 Jumbo Instruct只是大型语言模型(LLM)提高自然语言处理(NLP)准确性标准的三个例子。

SageMaker 基础模型

SageMaker 提供了一系列来自热门模型中心的模型,包括 Hugging Face、PyTorch Hub 和 TensorFlow Hub,以及来自 AI21、Cohere 和 LightOn 的专有模型,你可以在 SageMaker 的机器学习 (ML) 开发工作流程中访问这些模型。机器学习的最新进展催生了一类新的模型,即 基础模型 ,这些模型 具有数十亿个参数,并基于海量数据进行训练。这些基础模型可以适用于各种用例,例如文本摘要、生成数字艺术和语言翻译。由于这些模型的训练成本可能很高,因此客户希望使用现有的预训练基础模型并根据需要对其进行微调,而不是自己训练这些模型。SageMaker 提供了精选的模型列表,您可以在 SageMaker 控制台上从中进行选择。

使用 JumpStart,您可以找到来自不同提供商的基础模型,从而使您能够快速开始使用基础模型。您可以查看模型特征和用法条款,并使用测试界面控件试用这些模型。当你准备好大规模使用基础模型时,使用模型提供商提供的预建笔记本电脑,无需离开 SageMaker 即可轻松使用。您的数据,无论是用于评估还是大规模使用模型,都不会与第三方共享,因为模型是在 亚马逊云科技 上托管和部署的。

AI21 侏罗纪-2 巨型指令

Jurassic-2 Jumbo Instruct 是 AI21 Labs 推出的法学硕士,可以应用于任何语言理解或生成任务。它经过优化,可以遵循自然语言说明和上下文,因此无需提供任何示例。端点预装了模型,可以随时通过易于使用的 API 和 Python SDK 提供查询,因此您可以立即启动。Jurassic-2 Jumbo Instruct 在 HELM 中表现最佳,尤其是在与阅读和写作相关的任务方面。

解决方案概述

在以下部分中,我们将介绍在 SageMaker 中测试 Jurassic-2 Jumbo 教学模型的步骤:

  1. 在 SageMaker 主机上选择 Jurassic-2 Jumbo 指令模型。
  2. 使用操场评估模型。
  3. 使用与基础模型关联的笔记本将其部署到您的环境中。

通过 SageMaker 控制台访问 Jurassic-2 Jumbo Instruct

第一步是登录 SageMaker 控制台。 在导航窗格的 JumpStart 下,选择 基础模型 以请求访问模型列表。

SageMaker Foundation Models

在您的账户被允许列出后,您可以在此页面上查看模型列表并搜索 Jurassic-2 Jumbo Instruct 模型。

在模型操场上评估 Jurassic-2 Jumbo Instruct 模型

在 AI21 Jurassic-2 Jumbo Instruct 列表中,选择查看模型。 您将看到模型的描述以及可以执行的任务。在继续操作之前,请通读该模型的 EULA。

让我们首先尝试该模型以基于 SageMaker 常见问题页面生成测试。导航到 “ 游乐场 ” 选项卡。

在 Pl aygroun d 选项卡上,您可以为 Jurassic-2 Jumbo Instruct 模型提供示例提示并查看输出。

AI21 Jurassic-2 Jumbo Instruct-choose playground

请注意,您最多可以使用 500 个代币。我们将最大长度设置为 500,这是要生成的最大代币数量。该模型具有 8,192 个令牌的上下文窗口(提示加上完成的长度最多应为 8,192 个令牌)。

为了便于查看提示,可以放大 “ 提示 ” 框。

AI21 Jurassic-2 Jumbo Instruct-configure playground

由于我们最多可以使用 500 个代币,因此我们将 亚马逊 SageMaker 常见问题解答 页面( 低代码 机器学习部分)的一小部分作为测试提示。

我们使用以下提示:

Below is SageMaker Low-code ML FAQ:

##
Q: Will my data (from inference or training) be used or shared to update the base model that is offered to customers using Amazon SageMaker JumpStart?
No. Your inference and training data will not be used nor shared to update or train the base model that SageMaker JumpStart surfaces to customers.

Q: Can I see the model weights and scripts of proprietary models in preview with Amazon SageMaker JumpStart?
No. Proprietary models do not allow customers to view model weights and scripts.

Q: Which open-source models are supported with Amazon SageMaker JumpStart?
Amazon SageMaker JumpStart includes 150+ pre-trained open-source models from PyTorch Hub and TensorFlow Hub. For vision tasks such as image classification and object detection, you can use models such as ResNet, MobileNet, and Single-Shot Detector (SSD). For text tasks such as sentence classification, text classification, and question answering, you can use models such as BERT, RoBERTa, and DistilBERT.

Q: What solutions come pre-built with Amazon SageMaker JumpStart?
SageMaker JumpStart includes solutions that are preconfigured with all necessary AWS services to launch a solution into production. Solutions are fully customizable so you can easily modify them to fit your specific use case and dataset. You can use solutions for over 15 use cases including demand forecasting, fraud detection, and predictive maintenance, and readily deploy solutions with just a few clicks. For more information about all solutions available, visit the SageMaker getting started page. 

Q: What built-in algorithms are supported in Amazon SageMaker Autopilot?
Amazon SageMaker Autopilot supports 2 built-in algorithms: XGBoost and Linear Learner.

Q: Can I stop an Amazon SageMaker Autopilot job manually?
Yes. You can stop a job at any time. When an Amazon SageMaker Autopilot job is stopped, all ongoing trials will be stopped and no new trial will be started.
##

Create a multiple choice quiz on the topic of SageMaker Low-code ML FAQ consisting of 4 questions. Each question should have 4 options. Also include the correct answer for each question using the starting string 'Correct Answer:`

即时工程是一个迭代过程。你应该清晰而具体,让模型有时间思考。

在这里,我们将带有 ## 的上下文指定为停止序列,这表示模型在该字符或字符串生成后停止生成。它在使用少量提示时很有用。

Below is SageMaker Low-code ML FAQ:

##
<SageMaker Low-code ML FAQ content>
##

接下来,我们在提示中明确且非常具体,要求进行多项选择题测验,包括四个问题和四个选项。我们要求模型使用起始字符串 “正确答案:” 包括每个问题的正确答案, 以便我们稍后可以使用 Python 对其进行解析:

Create a multiple choice quiz on the topic of SageMaker Low-code ML FAQ consisting of 4 questions. Each question should have 4 options. Also include the correct answer for each question using the starting string 'Correct Answer:`

精心设计的提示可以使模型更具创造性和通用性,使其可以轻松适应新任务。提示还可以帮助整合有关特定任务的领域知识并提高可解释性。即时工程可以极大地提高零样本和少量学习模型的性能。创建高质量的提示需要仔细考虑手头的任务,并深入了解模型的优势和局限性。

在这篇文章的范围内,我们不会进一步介绍这个广阔的领域。

复制提示并将其输入到 提示 框中,然后选择 生成文本

AI21 Jurassic-2 Jumbo Instruct-prompt input

这会向 Jurassic-2 Jumbo Instruct 模型发送提示进行推理。请注意,在操场上进行实验是免费的。

还要记住,尽管法学硕士具有尖端性,但他们仍然容易出现偏见、错误和幻觉。

仔细阅读模型输出后,我们可以看到模型生成了相当不错的测验!

在你玩完模型之后,是时候使用笔记本并将其作为端点部署到你的环境中了。我们使用一个小的 Python 函数来解析输出并模拟交互式测试。

从笔记本上部署 Jurassic-2 Jumbo Instruct 基础模型

你可以使用以下 示例笔记本 通过 SageMaker 部署 Jurassic-2 Jumbo Instruct。请注意,此示例使用的是 ml.p4d.24xlarge 实例。如果您的 亚马逊云科技 账户的默认限额为 0,则需要 请求提高此 GPU 实例 的限制

让我们使用 SageMaker 推断来创建端点。首先,我们设置必要的变量,然后从模型包中部署模型:

endpoint_name = "j2-jumbo-instruct"

content_type = "application/json"

real_time_inference_instance_type = (
"ml.p4d.24xlarge"
)

# create a deployable model from the model package.
model = ModelPackage(
role=role, model_package_arn=model_package_arn, sagemaker_session=sagemaker_session
)

# Deploy the model
predictor = model.deploy(1, real_time_inference_instance_type, endpoint_name=endpoint_name,
model_data_download_timeout=3600,
container_startup_health_check_timeout=600,
)

部署端点后,您可以对模型运行推理查询。

部署模型后,您可以使用以下代码片段与已部署的端点进行交互:

response = ai21.Completion.execute(sm_endpoint=endpoint_name,
prompt=instruction,
maxTokens=2048,
temperature=0.7,
numResults=1,
stopSequences=['##'])

output = response['completions'][0]['data']['text']

在 ml.p4d.24xlarge 实例 SageMaker 端点上部署 Jurassic-2 Jumbo Instruct 基础模型后,你可以使用包含 4,096 个令牌的提示。你可以按照我们在操场上使用的相同提示添加更多问题。在此示例中,我们将常见问题解答的整个 低代码机器学习 部分作为上下文添加到提示中。

AI21 Jurassic-2 Jumbo Instruct endpoint prompt output

我们可以看到模型的输出,该模型生成了一个多选题测验,每个问题包含四个问题和四个选项。

现在,你可以开发一个 Python 函数来解析输出并创建交互式多选题测验。

用几行代码开发这样的函数非常简单。你可以很容易地解析答案,因为模型为每个问题创建了一行带有 “正确答案:” 的行,完全符合我们在提示符中的要求。在本文的范围内,我们不提供用于生成测验的 Python 代码。

在笔记本中运行测验

使用我们之前创建的 Python 函数和 Jurassic-2 Jumbo Instruct 基础模型的输出,我们在笔记本中运行交互式测验。

AI21 Jurassic-2 Jumbo Instruct endpoint-take a test

你可以看到我正确地回答了四个问题中的三个,并获得了 75% 的成绩。也许我需要再阅读几次 SageMaker 常见问题解答!

清理

试用该端点后,请务必删除 SageMaker 推理端点和模型,以免产生任何费用:

model.sagemaker_session.delete_endpoint(endpoint_name)
model.sagemaker_session.delete_endpoint_config(endpoint_name)

model.delete_model()

结论

在这篇文章中,我们向您展示了如何使用SageMaker测试和使用AI21的Jurassic-2 Jumbo Instruct模型来构建自动测验生成系统。这是通过一个相当简单的提示实现的,其中嵌入了公开的 SageMaker 常见问题页面的文本和几行 Python 代码。

与帖子中提到的示例类似,您只需几个带标签的示例即可为您的业务自定义基础模型。由于所有数据都经过加密且不会离开您的 亚马逊云科技 账户,因此您可以相信您的数据将保持私密和机密。

立即申请 在 SageMaker 中 试用基础模型 的权限,并告诉我们您的反馈!


作者简介

Eitan Sela Eitan Sela 是亚马逊网络服务的机器学习专家解决方案架构师。他与 亚马逊云科技 客户合作,提供指导和技术援助,帮助他们在 亚马逊云科技 上构建和运行机器学习解决方案。在业余时间,Eitan 喜欢慢跑和阅读最新的机器学习文章。


*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您发展海外业务和/或了解行业前沿技术选择推荐该服务。