如果我們的計算機視覺系統(tǒng)要真正理解視覺世界,它們不僅必須能夠識別圖像,而且必須能夠生成圖像。文本到圖像的 AI 模型僅根據(jù)簡單的文字輸入就可以生成圖像。
近兩年,以ChatGPT為代表的AIGC技術嶄露頭角,逐漸從學術研究的象牙塔邁向工業(yè)應用的廣闊天地。隨著下游行業(yè)對快速處理柔性商業(yè)業(yè)務的需求日益增長,如何提供一個便捷、高效且完整的企業(yè)級人工智能解決方案成為了業(yè)界亟待解決的問題。幸運的是,亞馬遜云服務推出了Amazon SageMaker平臺,為企業(yè)提供了一站式的人工智能解決方案,滿足了市場的迫切需求。
本篇文章將采用Amazon SageMaker+Stable Diffusion實現(xiàn)文本生成圖像Demo!
一、Amazon SageMaker簡介
Amazon SageMaker是一款亞馬遜云服務旗下的全面托管機器學習平臺。該平臺集成了眾多高效工具和服務,使得構建、訓練和部署機器學習模型變得前所未有的簡單。Amazon SageMaker擁有靈活的計算資源及配置選項,無論項目規(guī)模大小,它都能以強大的計算能力,助力訓練大型模型。此外,它還提供了強大的管理和監(jiān)控功能,確保機器學習工作流程的順暢運行。
Amazon SageMaker機器學習平臺提供了一系列能夠快速構建、訓練和部署機器學習模型的工具和服務,使機器學習工作流程更加高效、易用和可擴展。現(xiàn)在進入
亞馬遜云科技:?https://mic.anruicloud.com/url/1037
可以免費試用!
?
二、Amazon SageMaker + Stable Diffusion實踐
2.1、創(chuàng)建Amazon SageMaker實例
首先打開亞馬遜云控制臺,在查找服務處搜索關鍵詞SageMaker,進入Amazon SageMaker環(huán)境:
?
隨后,在界面左側定位至“筆記本”選項并點擊。接著,依次選擇“筆記本實例”和“創(chuàng)建筆記本實例”,進入配置頁面。在此頁面中,需注意選擇適合的“筆記本實例類型”申請資源的類型,這里建議選擇加速型g4dn.xlarge實例,確保高效的計算性能。
?
在操作系統(tǒng)方面,推薦選擇Amazon Linux 2,并搭配Jupyter Lab 3這一交互式編程環(huán)境?!熬泶笮 笨筛鶕?jù)個人需求進行選擇,建議至少設置為20GB,最后點擊確定。
2.2、簡單測試(可選)
創(chuàng)建實例成功后,可以新建一個初始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存儲桶中的的汽車保險索賠數(shù)據(jù)集上,訓練一個 XGBoost 二進制分類模型,并評估模型的性能并使用交叉驗證來評估其性能,運行單元格后會顯示交叉驗證訓練和驗證 AUC 分數(shù)。
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文件已經(jīng)為我們寫好了所有配置步驟,環(huán)境安裝,我們直接點擊Run:
?
該代碼在筆記本實例中下載并測試Stable Diffusion模型文件,然后編寫模型推理入口,打包模型文件,并上傳至S3桶,最后使用代碼部署模型至Amazon SageMaker Inference Endpoint。
在juypter notebook的最后,加上這樣一段代碼,然后將想要生成的句子可以寫在prompt里面,就可以實現(xiàn)完整的文本生成圖像功能:
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)
如上,我們試著生成一張可愛的熊貓坐在沙發(fā)上面,等待幾秒鐘后,推理完成,得到如下結果:
?
三、Amazon SageMaker 的功能特性
Amazon SageMaker以其強大的功能特性和靈活的配置選項,為數(shù)據(jù)科學家、業(yè)務分析師以及廣大開發(fā)者提供了全面、高效的機器學習解決方案。
首先,Amazon SageMaker能夠讓不同背景的用戶都能夠輕松利用機器學習進行創(chuàng)新。對于數(shù)據(jù)科學家而言,其提供了功能強大的集成開發(fā)環(huán)境(IDE),使得他們能夠輕松構建、訓練和部署復雜的機器學習模型。而對于業(yè)務分析師,其提供了無代碼界面,即便沒有深厚的編程背景,也能通過簡單的操作實現(xiàn)機器學習的應用。
?
其次,Amazon SageMaker 支持如 TensorFlow、PyTorch 和 Apache MXNet多種主流的機器學習框架、支持如scikit-learn、XGBoost等各種機器學習工具包、支持Python、R 等多種編程語言,使得用戶能夠充分利用現(xiàn)有的技術資源和經(jīng)驗,在機器學習領域實現(xiàn)更快速、更高效的創(chuàng)新。無論是數(shù)據(jù)科學家、機器學習工程師還是開發(fā)者,都能從 Amazon SageMaker 中受益,推動機器學習技術的不斷發(fā)展和應用。
?
最后,Amazon SageMaker擁有完全托管、可擴展的基礎設施。用戶無需擔心底層硬件的維護和擴展問題,只需專注于模型的開發(fā)和優(yōu)化。Amazon SageMaker通過高性能、經(jīng)濟實惠的基礎設施支持,幫助用戶輕松構建自己的機器學習模型和生成式人工智能應用程序的開發(fā)。
現(xiàn)在進入亞馬遜云科技:?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 余種云產(chǎn)品或服務免費試用。文章來源:http://www.zghlxwxcb.cn/news/detail-845022.html
?文章來源地址http://www.zghlxwxcb.cn/news/detail-845022.html
到了這里,關于Amazon SageMaker + Stable Diffusion 搭建文本生成圖像模型的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!