Amazon SageMaker + Stable Diffusion 搭建文本生成图像模型

如果我们的计算机视觉系统要真正理解视觉世界,它们不仅必须能够识别图像,而且必须能够生成图像文本到图像的 AI 模型仅根据简单的文字输入就可以生成图像

近两年,以ChatGPT为代表的AIGC技术崭露头角,逐渐从学术研究的象牙塔迈向工业应用的广阔天地。随着下游行业对快速处理柔性商业业务的需求日益增长,如何提供一个便捷、高效且完整的企业级人工智能解决方案成为了业界亟待解决的问题。幸运的是,亚马逊云服务推出了Amazon SageMaker平台,为企业提供了一站式的人工智能解决方案,满足了市场的迫切需求。

本篇文章将采用Amazon SageMaker+Stable Diffusion实现文本生成图像Demo!

一、Amazon SageMaker简介

Amazon SageMaker是一款亚马逊云服务旗下的全面托管机器学习平台。该平台集成了众多高效工具和服务,使得构建、训练和部署机器学习模型变得前所未有的简单。Amazon SageMaker拥有灵活的计算资源及配置选项,无论项目规模大小,它都能以强大的计算能力,助力训练大型模型。此外,它还提供了强大的管理和监控功能,确保机器学习工作流程的顺畅运行。

Amazon SageMaker机器学习平台提供了一系列能够快速构建、训练和部署机器学习模型的工具和服务,使机器学习工作流程更加高效、易用和可扩展。现在进入

亚马逊云科技: https://mic.anruicloud.com/url/1037

可以免费试用!

二、Amazon SageMaker + Stable Diffusion实践

2.1、创建Amazon SageMaker实例

首先打开亚马逊云控制台,在查找服务处搜索关键词SageMaker,进入Amazon SageMaker环境:

随后,在界面左侧定位至“笔记本”选项并点击。接着,依次选择“笔记本实例”和“创建笔记本实例”,进入配置页面。在此页面中,需注意选择适合的“笔记本实例类型”申请资源的类型,这里建议选择加速型g4dn.xlarge实例,确保高效的计算性能。

在操作系统方面,推荐选择Amazon Linux 2,并搭配Jupyter Lab 3这一交互式编程环境。“卷大小”可根据个人需求进行选择,建议至少设置为20GB,最后点击确定。

2.2、简单测试(可选)

创建实例成功后,可以新建一个初始notebook,复制并粘贴以下代码片段到笔记本的单元格,安装所需依赖

pip install --upgrade -q aiobotocore

pip install -q xgboost==1.3.1

然后复制并粘贴以下代码片段,点击run运行:

import pandas as pd
import boto3
import sagemaker
import json
import joblib
import xgboost as xgb
from sklearn.metrics import roc_auc_score

# Set SageMaker and S3 client variables
sess = sagemaker.Session()

region = sess.boto_region_name
s3_client = boto3.client("s3", region_name=region)

sagemaker_role = sagemaker.get_execution_role()

# Set read and write S3 buckets and locations
write_bucket = sess.default_bucket()
write_prefix = "fraud-detect-demo"

read_bucket = "sagemaker-sample-files"
read_prefix = "datasets/tabular/synthetic_automobile_claims" 

train_data_key = f"{read_prefix}/train.csv"
test_data_key = f"{read_prefix}/test.csv"
model_key = f"{write_prefix}/model"
output_key = f"{write_prefix}/output"

train_data_uri = f"s3://{read_bucket}/{train_data_key}"
test_data_uri = f"s3://{read_bucket}/{test_data_key}"
hyperparams = {
                "max_depth": 3,
                "eta": 0.2,
                "objective": "binary:logistic",
                "subsample" : 0.8,
                "colsample_bytree" : 0.8,
                "min_child_weight" : 3
              }

num_boost_round = 100
nfold = 3
early_stopping_rounds = 10



# Set up data input
label_col = "fraud"
data = pd.read_csv(train_data_uri)

# Read training data and target
train_features = data.drop(label_col, axis=1)
train_label = pd.DataFrame(data[label_col])
dtrain = xgb.DMatrix(train_features, label=train_label)

# Cross-validate on training data
cv_results = xgb.cv(
    params=hyperparams,
    dtrain=dtrain,
    num_boost_round=num_boost_round,
    nfold=nfold,
    early_stopping_rounds=early_stopping_rounds,
    metrics=["auc"],
    seed=10,
)


metrics_data = {
    "binary_classification_metrics": {
        "validation:auc": {
            "value": cv_results.iloc[-1]["test-auc-mean"],
            "standard_deviation": cv_results.iloc[-1]["test-auc-std"]
        },
        "train:auc": {
            "value": cv_results.iloc[-1]["train-auc-mean"],
            "standard_deviation": cv_results.iloc[-1]["train-auc-std"]
        },
    }
}


print(f"Cross-validated train-auc:{cv_results.iloc[-1]['train-auc-mean']:.2f}")
print(f"Cross-validated validation-auc:{cv_results.iloc[-1]['test-auc-mean']:.2f}")

这段代码的主要作用是在Amazon S3存储桶中的的汽车保险索赔数据集上,训练一个 XGBoost 二进制分类模型,并评估模型的性能并使用交叉验证来评估其性能,运行单元格后会显示交叉验证训练和验证 AUC 分数。

2.3、Stable Diffusion实践

上一步运行没问题后,我们重新打开Jupyter页面,进入对应实例,选择右侧upload,上传Notebook代码,代码下载链接:

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

上传到笔记本实例当中,上传成功后,点击打开,选择conda_pytorch_p39核,并点击set kernel

这个Diffusion Model的Amazon SageMaker Jupyter文件已经为我们写好了所有配置步骤,环境安装,我们直接点击Run:

该代码在笔记本实例中下载并测试Stable Diffusion模型文件,然后编写模型推理入口,打包模型文件,并上传至S3桶,最后使用代码部署模型至Amazon SageMaker Inference Endpoint。

在juypter notebook的最后,加上这样一段代码,然后将想要生成的句子可以写在prompt里面,就可以实现完整的文本生成图像功能:

from PIL import Image
from io import BytesIO
import base64

# helper decoderdef decode_base64_image(image_string):
    base64_image = base64.b64decode(image_string)
    buffer = BytesIO(base64_image)
    return Image.open(buffer)

#run prediction
response = predictor[SD_MODEL].predict(data={
    "prompt": [
        "A cute panda is sitting on the sofa",
        "a siamese cat wearing glasses,  working hard at the computer",
    ],
    "height" : 512,
    "width" : 512,
    "num_images_per_prompt":1
  }
)

#decode images
decoded_images = [decode_base64_image(image) for image in response["generated_images"]]

#visualize generationfor image in decoded_images:
    display(image)

如上,我们试着生成一张可爱的熊猫坐在沙发上面,等待几秒钟后,推理完成,得到如下结果:

三、Amazon SageMaker 的功能特性

Amazon SageMaker以其强大的功能特性和灵活的配置选项,为数据科学家、业务分析师以及广大开发者提供了全面、高效的机器学习解决方案。

首先,Amazon SageMaker能够让不同背景的用户都能够轻松利用机器学习进行创新。对于数据科学家而言,其提供了功能强大的集成开发环境(IDE),使得他们能够轻松构建、训练和部署复杂的机器学习模型。而对于业务分析师,其提供了无代码界面,即便没有深厚的编程背景,也能通过简单的操作实现机器学习的应用。

其次,Amazon SageMaker 支持如 TensorFlow、PyTorch 和 Apache MXNet多种主流的机器学习框架、支持如scikit-learn、XGBoost等各种机器学习工具包、支持Python、R 等多种编程语言,使得用户能够充分利用现有的技术资源和经验,在机器学习领域实现更快速、更高效的创新。无论是数据科学家、机器学习工程师还是开发者,都能从 Amazon SageMaker 中受益,推动机器学习技术的不断发展和应用。

最后,Amazon SageMaker拥有完全托管、可扩展的基础设施。用户无需担心底层硬件的维护和扩展问题,只需专注于模型的开发和优化。Amazon SageMaker通过高性能、经济实惠的基础设施支持,帮助用户轻松构建自己的机器学习模型和生成式人工智能应用程序的开发。

现在进入亚马逊云科技: https://mic.anruicloud.com/url/1037

可以获取Studio 笔记本上每月 250 个小时的 ml.t3.medium,或者按需笔记本实例上每月 250 个小时的 ml.t2 medium 或 ml.t3.medium,每月 50 个小时的 m4.xlarge 或150小时 的m5.xlarge 实例试用。除此之外,更有云服务器(Amazon EC2),云存储(Amazon S3),负载均衡(Elastic Load Balancing),虚拟服务器VPS(Amazon Lightsail)、视频会议(Amazon Chime )等等100 余种云产品或服务免费试用。

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

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

相关文章

面试笔记——MySQL(优化篇:定位慢查询、SQL执行计划、索引、SQL优化)

定位慢查询 在MySQL应用中,慢查询 通常指的是执行时间超过一定阈值的查询语句。这个阈值通常由管理员或开发人员根据具体情况设置,一般是以毫秒为单位。慢查询可能会影响系统性能和用户体验,因此需要及时识别和优化。 表象: 页面…

探秘开源隐语:架构深度剖析与隐私计算技术之旅

1.隐语架构 隐语(SecretFlow)作为蚂蚁集团开源的可信隐私计算框架,其架构设计具有多层次的特点,虽然具体分层名称可能会根据实际描述略有差异,但我们可以依据已有的技术和信息对其进行结构化的拆解: 硬件层…

第一单元日考技能

文章目录 第一单元1.请用c程序随机输入20个数(每小题10分)2.①按要求输出*形状3.计算题  s1*12*23*3...100*100 (每问10分)4.1. 使用 C 创建一个简单的计算器,可以实现 , -, *, / 。 if switch5.图形打印 第一单元 1…

Lua | 一篇文章讲清Lua语法及热更新

目录 一、环境搭建 二、Lua语法 1.输出print、单行注释、多行注释 2.变量 (1)nil (2)number (3)string (3.1)字符串长度 (3.2)字符串拼接 &#xf…

LeetCode每日一题——数组串联

数组串联OJ链接:1929. 数组串联 - 力扣(LeetCode) 题目: 思路: 题目说 ans 由两个 nums 数组 串联 形成。那么我们就只需要历遍两次nums数组,将它放在我们的ans数组里。 注意: 题目函数对于我…

Day22:过滤敏感词、开发发布帖子、帖子详情

过滤敏感词 前缀树 - 名称:Trie、字典树、查找树 - 特点:查找效率高,消耗内存大 - 应用:字符串检索、词频统计、字符串排序等在这里插入图片描述 敏感词过滤器的步骤 根节点不包含任何字符;其余每个节点只有一个字符;连接起来一条路就是字…

StarRocks 助力金融营销数字化进化之路

作者:平安银行 数据资产中心数据及 AI 平台团队负责人 廖晓格 平安银行五位一体,做零售金融的领先银行,五位一体是由开放银行、AI 银行、远程银行、线下银行、综合化银行协同构建的数据化、智能化的零售客户经营模式,这套模式以数…

python 爬虫爬取地理空间高程图GDEMV2 30m 中国地形

一.配置Python 爬虫 环境 from selenium import webdriver import time # from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.common.by import Byfrom selenium.webdriver.common.keys import Keys # from selenium.webdriver.comm…

算法体系-14 第十四 贪心算法(上)

一 、 递归套路解决判断完全二叉树 1.1 描述 1.2 分析 1.3 代码 public static boolean isCBT2(Node head) {return process(head).isCBT;}public static class Info {public boolean isFull;public boolean isCBT;public int height;public Info(boolean full, boolean cbt…

学习人工智能:Attention Is All You Need-1-介绍;Transformer模型架构

Transformer模型是目前最成功的chatGPT,Sora,文心一言,LLama,Grok的基础模型。 《Attention Is All You Need》是一篇由Google DeepMind团队在2017年发表的论文,该论文提出了一种新的神经网络模型,即Trans…

个人可以做知识付费网站吗

个人可以做知识付费网站吗 个人能够做学问付费网站吗?答案是肯定的!如今个人做学问付费网站并不需求太多的资金和技术支持,我们只需求购置一台效劳器或虚拟主机,然后在该主机空间上搭建一个WordPress网站,最后运用带有…

0基础学习VR全景平台篇第146篇:为什么需要3D元宇宙编辑器?

一.什么是3D元宇宙编辑器? 3D元宇宙编辑器是全新3DVR交互渲染创作工具,集3D建模、虚拟展厅、AI数字人等能力,渲染和虚拟现实技术于一身的生产力工具。 具有跨平台和随时随地编辑等特点,可广泛应用于展会、展厅、博物馆、可视化园…

基于python+vue的幼儿园管理系统flask-django-php-nodejs

随着信息时代的来临,过去的传统管理方式缺点逐渐暴露,对过去的传统管理方式的缺点进行分析,采取计算机方式构建幼儿园管理系统。本文通过课题背景、课题目的及意义相关技术,提出了一种活动信息、课程信息、菜谱信息、通知公告、家…

MySQL索引(图文并茂)

目录 一、索引的概念 二、索引的作用 三、创建索引的原则依据 四、索引的分类和创建 1、索引的分类 2、索引的创建 2.1 普通索引 2.1.1 直接创建索引 2.1.2 修改表方式创建 2.1.3 创建表的时候指定索引 2.2 唯一索引 2.2.1 直接创建唯一索引 2.2.2 修改表方式创建 …

机器学习——决策树(三)预剪枝

观前提示:这是本人机器学习决策树内容的第三篇博客,沿用了之前相关的代码,包括信息增益计算函数、结点类、预测函数和分类精度计算函数 完整代码指路 DrawPixel/decisionTree.ipynb at main ndsoi/DrawPixel (github.com) 前两篇博客详见…

水泥领域智慧工厂物联网解决方案

水泥领域智慧工厂物联网解决方案 在水泥生产行业中,构建智慧工厂物联网解决方案已经成为推动产业升级、实现智能制造的关键路径。该方案深度融合了先进的信息技术与传统的水泥生产工艺,通过全面感知、可靠传输、智能处理等环节,实现了对整个…

Macos docker安装达梦数据库

官网下载达梦docker镜像安装包 导入安装包 docker load -i /Users/yeungsinsin/Downloads/dm8_20230808_rev197096_x86_rh6_64_single.tar查看导入的镜像 docker images4. docker run 启动容器 docker run -d -p 30236:5236 --restartalways --name dm8 --privilegedtrue -e…

是德科技keysight N9917A微波分析仪

181/2461/8938产品概述: N9917A 是一款使用电池供电的便携式分析仪;基本功能是电缆和天线分析;配置还包括频谱和网络分析仪、可选的内置功率计和矢量电压表。 N9917A FieldFox 手持式微波分析仪 主要特性和功能 18 GHz 最大频率&#xfef…

基于Springboot的闲置图书分享(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的闲置图书分享(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构&…

MySQL的基础操作与管理

一.MySQL数据库基本操作知识: 1.SQL语句: 关系型数据库,都是使用SQL语句来管理数据库中的数据。 SQL,即结构化查询语言(Structured Query Language) 。 SQL语句用于维护管理数据库,包括数据查询、数据更新、访问控…