亚马逊云科技AI应用 SageMaker 新突破,机器学习优势显著

(声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 亚马逊云科技开发者社区、知乎、自媒体平台、第三方开发者媒体等亚马逊云科技官方渠道)

Amazon SageMaker是一种机器学习服务,帮助开发人员快速准备、构建、训练和部署高质量的机器学习模型。本文主要讲解了SageMaker的五项新功能,并使用Sagemaker部署模型并进行推理,最后对数据处理。新功能给SageMaker的使用带来极大的便利,期待未来有更多的创新应用。

img

SageMaker五项新功能

近日,亚马逊云科技re:Invent大会宣布了Amazon SageMaker中的五项新功能,这些新功能将使用户能够更轻松地构建、训练和部署生成人工智能模型。随着模型不断改变各行业的客户体验,SageMaker使组织能够更轻松、更快速地构建、训练和部署机器学习 (ML) 模型,为各种生成式AI使用案例提供支持。然而,为了成功使用模型,客户需要先进的功能来有效管理模型开发、使用和性能,这些新功能具体如下:

1、SageMaker HyperPod使客户能够自动将训练工作负载分配到数百或数千个加速器上,从而通过缩短模型训练时间来进一步增强 SageMaker 的模型扩展能力。

2、SageMaker Inference允许多个模型部署到同一个实例(虚拟服务器),通过降低模型的部署成本和延迟来优化托管 ML 基础设施操作。

3、SageMaker Clarify可以更轻松地根据支持负责任地使用 AI 的质量参数选择正确的模型

4、为了帮助客户跨组织应用这些模型,亚马逊云科技还在SageMaker Canvas中引入了新的无代码功能,使客户可以使用自然语言指令更快、更轻松地准备数据。

5、SageMaker Canvas使客户能够更轻松地使用模型来提取见解、进行预测以及使用组织的专有数据生成内容,从而继续实现模型构建和定制的民主化。

这些新的突破建立在SageMaker广泛的功能之上,帮助用户利用ML进行大规模创新,详细可以访问Amazon SageMaker官网:aws.amazon.com/sagemaker。

SageMaker进行模型训练

模型训练采用Stable Diffusion模型,简单地根据文本输入来生成文本和图像,帮助你创建逼真的AIGC应用程序。

1、创建notebook实例

创建笔记本实例

img

填写笔记本实例的详细信息

img

创建角色,没有的话点击使用角色创建向导创建角色

imgimg

在创建笔记本实例时候,提示实例名称不合规范

img

因此,修改笔记本实例名称为stable-diffusion

img

创建成功,此时实例正在创建中,如图中的Pending状态,需要等大概5分钟左右。

img

此时实例已经创建成功,状态变成InService,然后点击打开Jupyter

img

2、使用Sagemaker Notebook Instance部署模型并进行推理

Stable Diffusion是一种文本生成图像模式,给它一个文本提示(prompt),它将返回与文本匹配的图像。本文将在Sagemaker Notebook Instance中运行Stable Diffusion模型,并使用Sagemaker Notebook Instance部署模型进行推理。到达Jupyter主界面后,点击NEW下面的Terminal启动终端。

img

然后在终端中输入下面命令,下载数据集并解压。或者直接拿https链接在浏览器中下载后上传。

wget https://static.us-east-1.prod.workshops.aws/public/648e1f0c-f5e0-40eb-87b1-7f3638dba539/static/code/notebook-stable-diffusion.ipynb

此时实验代码已经下载完成,然后点击打开文件。

img

打开文件会有下面提示,选择conda_pytorch_p310

notebook-stable-diffusion.ipynb

img

在使用模型生成时,通常会有以下步骤:

(1)设定模型版本的环境变量

#Clone the Stable Diffusion model from HuggingFace
​
Stable Diffusion V1
SD_SPACE="runwayml/"
SD_MODEL = "stable-diffusion-v1-5"
SD_EXCLUDE_MODEL="!v1-5-pruned.ckpt"
​
Stable Diffusion V2
SD_SPACE="stabilityai/"
SD_MODEL = "stable-diffusion-2-1"
SD_EXCLUDE_MODEL="!v2-1_768-nonema-pruned.ckpt"

(2)在Notebook中配置并使用模型

pytorch训练绘图部分代码,我们修改提示词,描述要生成的图片,比如我修改prompts[ `` "A white cat sleeping in nature", `` "A Husky, wearing a mask, singing at a KTV" ``],意思是:一只白色猫,在大自然中睡觉一只哈士奇,带着口罩,在KTV唱歌。

# move Model to the GPU
torch.cuda.empty_cache()
pipe = pipe.to("cuda")
​
V1 Max-H:512,Max-W:512
V2 Max-H:768,Max-W:768
​
print(datetime.datetime.now())
prompts =[
    "A white cat sleeping in nature",
    "A Husky, wearing a mask, singing at a KTV"
]
generated_images = pipe(
    prompt=prompts,
    height=512,
    width=512,
    num_images_per_prompt=1
).images  # image here is in [PIL format](https://pillow.readthedocs.io/en/stable/)
​
print(f"Prompts: {prompts}\n")
print(datetime.datetime.now())
​
for image in generated_images:
    display(image)

为模型设定输入参数,可使用的部分参数如下:

  • prompt (str or List[str]): 引导图像生成的文本提示或文本列表
  • height (int, optional, 默认为 V1模型可支持到512像素,V2模型可支持到768像素): 生成图像的高度(以像素为单位)
  • width (int, optional, 默认为 V1模型可支持到512像素,V2模型可支持到768像素): 生成图像的宽度(以像素为单位)
  • num_inference_steps (int, optional, defaults to 50): 降噪步数。更多的去噪步骤通常会以较慢的推理为代价获得更高质量的图像
  • guidance_scale (float, optional, defaults to 7.5): 较高的指导比例会导致图像与提示密切相关,但会牺牲图像质量。 如果指定,它必须是一个浮点数。 guidance_scale<=1 被忽略。
  • negative_prompt (str or List[str], optional): 不引导图像生成的文本或文本列表。不使用时忽略,必须与prompt类型一致(如果 guidance_scale 小于 1 则忽略)
  • num_images_per_prompt (int, optional, defaults to 1): 每个提示生成的图像数量

(3)编写初始化的Sagemaker代码用于部署推理终端节点

使用 SageMaker 托管服务部署模型有多种选择。 你可以使用 亚马逊云科技开发工具包(例如,Python 开发工具包 (Boto3))、SageMaker Python 开发工具包、 亚马逊云科技 CLI 以编程方式部署模型, 或者您可以使用 SageMaker 控制台以交互方式部署模型。并且SageMaker Inference允许多个模型部署到同一个实例。

使用 SageMaker 托管服务部署模型是一个三步过程(如果您使用的是适用于 Python (Boto3)、 亚马逊云科技 CLI 或 SageMaker 控制台的 亚马逊云科技开发工具包):

1、在 SageMaker 中创建 SageMaker 模型。

2、为 HTTPS 端点创建端点配置。

3、创建 HTTPS 端点。

使用 SageMaker Python 开发工具包部署模型不需要您创建终端节点配置。 因此,这是一个两步过程:

1、从创建模型对象 Model可以部署到 HTTPS 端点的类。

2、使用模型对象的预构建创建 HTTPS 端点 deploy()方法。

编写初始化的Sagemaker代码用于部署推理终端节点,具体代码如下:

import sagemaker
import boto3
sess = sagemaker.Session()
sagemaker session bucket -> used for uploading data, models and logs
sagemaker will automatically create this bucket if it not exists
sagemaker_session_bucket=None
​
if sagemaker_session_bucket is None and sess is not None:
    # set to default bucket if a bucket name is not given
    sagemaker_session_bucket = sess.default_bucket()
​
try:
    role = sagemaker.get_execution_role()
except ValueError:
    iam = boto3.client('iam')
    role = iam.get_role(RoleName='sagemaker_execution_role')['Role']['Arn']
​
sess = sagemaker.Session(default_bucket=sagemaker_session_bucket)
​
print(f"sagemaker role arn: {role}")
print(f"sagemaker bucket: {sess.default_bucket()}")
print(f"sagemaker session region: {sess.boto_region_name}")

(4)基于推理终端节点生成自定义图片

from PIL import Image
from io import BytesIO
import base64
​
helper decoder
def decode_base64_image(image_string):
    base64_image = base64.b64decode(image_string)
    buffer = BytesIO(base64_image)
    return Image.open(buffer)

(5)Run

之后点击Cell中的Run All去执行代码。

img

最终生成下图,爱了爱了。

imgimg

3、下载数据集

浏览器打开下载下面资源,然后上传到Jupyter中的Files

https://archive.ics.uci.edu/ml/machine-learning-databases/00222/bank-additional.zip

上传完成如下图所示:

img

接下来通过pandas展示数据集。使用 bank-additional-full.csv 数据集文件,将其通过 pandas 读入并展示。点击NEW中的conda_pytorch_p310,然后输入下面代码。

img

import numpy as np  # For matrix operations and numerical processing
import pandas as pd  # For munging tabular data
import os
​
data = pd.read_csv("./bank-additional-full.csv", sep=";")
pd.set_option("display.max_columns", 500)  # Make sure we can see all of the columns
pd.set_option("display.max_rows", 50)  # Keep the output on one page
data

结果如下:

img

4、数据预处理

将数据集进行数据清洗,将分类类型数据通过独热编码转换为数字。

img

通过 drop 方法删除不需要的列,简化模型的输入数据。

model_data = model_data.drop(
["duration", "emp.var.rate", "cons.price.idx", "cons.conf.idx", "euribor3m", "nr.employed"], axis=1)
model_data = model_data.drop(["y_no"], axis=1)
model_data

img

SageMaker HyperPod

SageMaker HyperPod 通过为大规模分布式训练提供专门构建的基础设施,有助于减少训练基础模型 (FM) 的时间。 他还能够主动监控集群运行状况,并通过替换故障节点并从检查点恢复模型训练来提供自动化节点和作业弹性。

在SageMaker控制台中的左侧菜单中选择HyperPod 集群下的集群管理,点击右侧的创建集群按钮

img

输入集群名称,然后下一步

img

点击创建实例组

img

创建实例需要填写下面的基本信息,另外准备一个或多个生命周期脚本并将其上传到Amazon Simple Storage Service (Amazon S3)存储桶,以便在集群创建期间在每个实例组中运行。

img

使用亚马逊云科技 CLI 创建和管理集群,选择 JSON 文件中指定集群配置。这里选择创建两个实例组,一个用于集群控制器节点,另一个用于集群工作节点。下面的例子中,在demo-cluster.json文件中创建了controller-group以及worker-group两个实例。

// demo-cluster.json
[
    {
        "InstanceGroupName": "controller-group",
        "InstanceType": "ml.m5.xlarge",
        "InstanceCount": 1,
        "LifeCycleConfig": {
            "SourceS3Uri": "s3://<your-s3-bucket>/<lifecycle-script-directory>/",
            "OnCreate": "on_create.sh"
            },
        "ExecutionRole": "arn:aws:iam::111122223333:role/my-role-for-cluster",
        "ThreadsPerCore": 1
    },
    {
        "InstanceGroupName": "worker-group",
        "InstanceType": "ml.trn1.32xlarge",
        "InstanceCount": 4,
        "LifeCycleConfig": {
            "SourceS3Uri": "s3://<your-s3-bucket>/<lifecycle-script-directory>/",
            "OnCreate": "on_create.sh"
            },
        "ExecutionRole": "arn:aws:iam::111122223333:role/my-role-for-cluster",
        "ThreadsPerCore": 1
    }
]

接下来就开始创建集群

aws sagemaker create-cluster \
    --cluster-name antje-demo-cluster \
    --instance-groups file://demo-cluster.json

创建之后,可以使用aws sagemaker describe-clusteraws sagemaker list-cluster-nodes查看集群和节点详细信息。记下控制器节点的集群 ID 和实例 ID,需要这些信息才能连接到集群。接下来就可以设置集群环境,准备模型、分词器和数据集,然后在集群上启动作业。

SageMaker Canvas

Amazon SageMaker Canvas 无代码界面,可以访问现成的 FM 和预测模型或创建自定义模型,只需几分钟就可以从成千上万的文档、图像和文本行中提取信息并生成预测。这些即用型模型包括情绪分析、语言检测、实体提取、个人信息检测、图像中的对象和文本检测、发票和收据的费用分析、身份证件分析以及更通用的文档和表单分析。要开始使用现成的模型,只需选择模型、上传数据,然后单击即可生成模型输出,具体使用如下:

在Amazon SageMaker控制台中选择,然后点击右侧创建域

img

点击创建之后,第一次设置需要等待5-8分钟。

img

域创建完成,会有下面的提示:SageMaker域已准备就绪

img

域创建完成之后,点击名称

img

接下来点击启动按钮中Canvas按钮,到 Amazon SageMaker Canvas 页面。

img

第一次进入加载时间比较慢,需要等5-8分钟。

img

进去之后主页如下图所示。

img

接下来,我们来体验下图像中的文本检测功能。选择左侧第二个菜单之后。选择Text detection in images(图像中的文本检测)

img

点击Upload Image进行上传图片

img

上传之后,对图片中的文本进行检测,检测结果如下所示(该功能对中文支持做的特别好,主要识别英文)。

img

Amazon SageMaker Canvas还有其他许多功能,你可以亲自尝试一下。官网:https://aws.amazon.com/cn/sagemaker/canvas/

总结

Amazon SageMaker的功能创新让我深切感受到机器学习这条道路越来越顺畅,案例构建、训练以及部署ML模型更加便利,并且在性能上有很大的提升,速度越来越快。从创建notebook实例到推理终端节点生成自定义图片,之后又下载数据集并对数据进行处理,这个过程让我真切体会到了Inference部署扩展能力,又详细探讨了HyperPod、Clarify、Canvas等功能,让我感受良多。

1、在使用SageMaker进行自定义图片生成以及数据处理过程中,速度非常快,并且允许多个模型部署到同一个实例,非常nice

2、分布式训练的模式能在很大程度上减少模型训练时间,并且在过程中可以监控集群的状态,为模型训练稳定进行保驾护航

3、不用怕模型训练存在偏差,Clarify提供了多种方式以及在不同时间对数据进行检测,保证了训练结果准确性。

4、如果用户不知道如何选择哪个模型,它还能根据用户选择的参数评估、比较,帮助用户适合其特定用例的最佳模型,以支持组织负责任地使用AI。

5、Canvas功能非常多,尤其是无代码的可视化操作,对新手非常友好,大大减少机器学习成本。并且提供了各种常见的模型应用,方便我们上手操作,直接使用模型来进行预测,提取数据。

6、SageMaker提供的这些扩展功能对用户来说非常友好,更重要是对模型训练的整体性能有很多提升,灵活度也更大,不仅可以自己去进行模型训练,还能直接拿现成的应用操作。

总而言之,SageMaker应用案例十分广泛,并且能够实现任何用途的高性能、低成本机器学习,用户也能够更轻松地构建、训练和部署生成人工智能模型,机器学习优势十分显著,推荐大家也快来体验一波。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/246607.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据结构之树

1. 遍历 b站收藏夹 2. 二叉树的存储 2.1 顺序存储 Linear_Tree.c 不推荐使用&#xff0c;因为会造成空间浪费 #include "stdio.h" #include "stdlib.h" #include "string.h" #include<stdbool.h> typedef bool status;#define MAXSIZE 3/…

【NSX-T】7. 搭建NSX-T环境 —— 部署和配置 Edge Cluster

目录 7. 部署和配置 Edge Cluster7.1 配置 Edge 节点&#xff08;1&#xff09;Name and Description&#xff08;2&#xff09;Credentials&#xff08;3&#xff09;Configure Deployment&#xff08;4&#xff09;Configure Node Settings&#xff08;5&#xff09;Configur…

RS485数据采集网关如何采集传感器、仪器仪表数据?

在工业自动化和数据采集领域&#xff0c;RS485作为一种常见的通信接口&#xff0c;被广泛应用于连接传感器、仪器仪表等设备。为了满足对这些设备数据的采集和处理需求&#xff0c;RS485数据采集网关应运而生。本文将围绕“RS485数据采集网关如何采集传感器、仪器仪表数据&…

说说对React高阶组件的理解?应用场景?

面试官&#xff1a;说说对高阶组件的理解&#xff1f;应用场景? 一、是什么 高阶函数&#xff08;Higher-order function&#xff09;&#xff0c;至少满足下列一个条件的函数 接受一个或多个函数作为输入输出一个函数 在React中&#xff0c;高阶组件即接受一个或多个组件作…

C# WPF上位机开发(键盘绘图控制)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 在软件开发中&#xff0c;如果存在canvas图像的话&#xff0c;一般有几种控制方法。一种是鼠标控制&#xff1b;一种是键盘控制&#xff1b;还有一…

玄关柜和鞋柜是一回事吗?福州中宅装饰,福州装修

玄关柜和鞋柜虽然都用于存放鞋子&#xff0c;但它们在概念上有所不同。玄关柜是一个更大的概念&#xff0c;它包括鞋柜和其他功能区域&#xff0c;可以说鞋柜是玄关柜的一部分。 1️⃣概念上的不同 玄关柜是一种集成了鞋柜、挂衣架、换鞋凳等多种功能于一体的家居家具&#xf…

忘记了路由器的用户名和密码,怎么办?

注意&#xff1a;登录窗口会显示路由器型号&#xff0c;请务必确认是您自己路由器的界面。 解决方法 尝试输入登录密码 如果您的确忘了设置好的密码&#xff0c;就只能把路由器恢复出厂设置&#xff0c;没有超级密码。 恢复出厂前&#xff0c;不妨尝试输入可能的管理密码。一…

【STM32】USART串口协议

1 通信接口 通信的目的&#xff1a;将一个设备的数据传送到另一个设备&#xff0c;扩展硬件系统 通信协议&#xff1a;制定通信的规则&#xff0c;通信双方按照协议规则进行数据收发 USRT&#xff1a;TX是数据发送引脚&#xff0c;RX是数据接受引脚&#xff1b; I2C&#xf…

数字孪生因何备受青睐?

数字孪生&#xff08;Digital Twin&#xff09;作为一个概念&#xff0c;正在不断引起各行各业的关注和迅速发展。它是一种将物理实体或系统与其数字化虚拟模型相结合的技术&#xff0c;为企业和组织提供了全新的可能性。下面我就以可视化设计从业者的角度来进行简单探讨。 数字…

坚鹏:美国智库认为中国在70%战略产业里领先,美国正迅速衰落

【重榜】2023年12月13日&#xff0c;美国智库信息技术与创新基金会&#xff08;ITIF&#xff09;发布重榜报告&#xff0c;认为中国在70%战略产业里领先&#xff0c;美国正迅速衰落。美国智库ITIF认为在计算机和电子产品、化工品、机器设备、机动车、基本金属、金属制品、电气设…

19.(vue3.x+vite)v-if和v-for哪个优先级更高

前端技术社区总目录(订阅之前请先查看该博客) v-if和v-for哪个优先级更高 (1)实践中不应该把v-for和v-if放一起,可以包一层template (2)在vue2中,v-for的优先级是高于v-if (3)在vue3中,v-for的优先级是低于v-if 组件代码 <template><div><!--包一…

React受控组件和非受控组件的理解?应用场景?

面试官&#xff1a;说说对受控组件和非受控组件的理解&#xff1f;应用场景&#xff1f; 一、受控组件 受控组件&#xff0c;简单来讲&#xff0c;就是受我们控制的组件&#xff0c;组件的状态全程响应外部数据 举个简单的例子&#xff1a; class TestComponent extends Rea…

arp欺骗原理以及实现方式

我们知道了arp的作用&#xff0c;那么此时我们怎么可以用他来进行攻击呢&#xff1f;在一个局域网中&#xff0c;我们怎么实现呢&#xff1f; 原理&#xff1a; 这样B就可以做到中间人了&#xff0c;可以接受到两个主机的数据了。换句话来说&#xff0c;在同一个局域网内&…

STM32 PVD掉电检测功能的使用方法

STM32 PVD掉电检测功能的使用方法 前言 在实际应用场景中&#xff0c;可能会出现设备电源电压异常下降或掉电的情况&#xff0c;因此&#xff0c;有时候需要检测设备是否掉电&#xff0c;或者在设备掉电的瞬间做一些紧急关机处理&#xff0c;比如保存重要的用户数据&#xff…

gRPC 一种现代、开源、高性能的远程过程调用 (RPC) 可以在任何地方运行的框架

背景介绍 gRPC 是一种现代开源高性能远程过程调用 &#xff08;RPC&#xff09; 可以在任何环境中运行的框架。它可以有效地连接服务 在数据中心内和数据中心之间&#xff0c;具有对负载平衡、跟踪、 运行状况检查和身份验证。它也适用于最后一英里 分布式计算&#xff0c;用于…

qt-C++笔记之addAction和addMenu的区别以及QAction的使用场景

qt-C笔记之addAction和addMenu的区别以及QAction的使用场景 code review! 文章目录 qt-C笔记之addAction和addMenu的区别以及QAction的使用场景1.QMenu和QMenuBar的关系与区别2.addMenu和addAction的使用场景区别3.将QAction的信号连接到槽函数4.QAction的使用场景5.将例1修改…

新能源汽车生产污废水需要哪些工艺及设备

新能源汽车的快速发展带来了许多环境问题&#xff0c;其中之一就是生产过程中产生的污废水。由于新能源汽车的生产过程与传统汽车有所不同&#xff0c;因此需要采用特定的工艺和设备来处理和处理这些废水。 首先&#xff0c;新能源汽车生产过程中产生的污废水主要来自洗涤和冷却…

【稳定检索|投稿优惠】2024年机电控制系统与机械工程国际会议(ICMECSME 2024)

2024年机电控制系统与机械工程国际会议(ICMECSME 2024) 2024 International Conference on Mechanical and Electrical Control Systems and Mechanical Engineering(ICMECSME) 一、【会议简介】 2024年智慧交通与城市建设工程国际会议(ICSTUCE 2024)将在中国广州盛大开幕。这场…

C语言——字符函数和字符串函数(二)

&#x1f4dd;前言&#xff1a; 上一篇文章C语言——字符函数和字符串函数&#xff08;一&#xff09;对字符函数和字符串函数strlen&#xff0c;strcpy和strncpy&#xff0c;strcat和strncat进行了初步的讲解 这篇文章主要再讲解几个我们常用到的其他字符串函数&#xff08;附…

2023-12-14 二叉树的最大深度和二叉树的最小深度以及完全二叉树的节点个数

二叉树的最大深度和二叉树的最小深度以及完全二叉树的节点个数 104. 二叉树的最大深度 思想&#xff1a;可以使用迭代法或者递归&#xff01;使用递归更好&#xff0c;帮助理解递归思路&#xff01;明确递归三部曲–①确定参数以及返回参数 ②递归结束条件 ③单层逻辑是怎么样…