SageMaker-使用TuningStep找尋最好的超參組合

更新於 2024/05/20閱讀時間約 9 分鐘

一.引言

  在上篇我們介紹了 SageMaker 中 Pipeline 的使用方法,其中的 TuningStep 功能,能夠讓我們能夠指定一連串參數組合進行實驗比對,最終找出最適合的參數組合,這回就讓我們試試看在 SageMaker 中的 TuningStep 使用上與 Python 庫的使用差異。

二.使用說明

  在不使用 SageMaker 中的 TuningStep 時,我們通常使用一些專業套件如 optuna來進行,以下為一個簡易示例 :

import optuna
import torch
import torch.nn as nn
import torch.optim as optim

# 定義目標函數
def objective(trial):
# 定義超參數搜索空間
lr = trial.suggest_loguniform('lr', 1e-5, 1e-1)
momentum = trial.suggest_uniform('momentum', 0.5, 0.9)

# 定義模型
model = nn.Sequential(
nn.Linear(28 * 28, 128),
nn.ReLU(),
nn.Linear(128, 10)
)
optimizer = optim.SGD(model.parameters(), lr=lr, momentum=momentum)
criterion = nn.CrossEntropyLoss()

# 模擬訓練和驗證過程(這裡簡化了訓練過程)
for epoch in range(10):
optimizer.zero_grad()
output = model(torch.randn(64, 28 * 28)) # 假設一個批次
loss = criterion(output, torch.randint(0, 10, (64,)))
loss.backward()
optimizer.step()

# 返回驗證損失作為目標函數值
return loss.item()

# 創建研究並開始超參數調優
study = optuna.create_study(direction='minimize')
study.optimize(objective, n_trials=100)

print('最佳超參數: ', study.best_params)

  而在 SageMaker 的 TuningStep 中,使用方法與建立其他種類 Step 類似,都是定義好 Step 後,使用 Pipiline 包裝起來後執行,當然也可以進行擴充,將上篇示例中的前處理跟後續部屬也一同放入同一個 Pipeline 內,但這邊為了不要太長,只演示 TuningStep 的使用場景。

import sagemaker
from sagemaker.workflow.pipeline import Pipeline
from sagemaker.workflow.pipeline_context import PipelineSession
from sagemaker.workflow.steps import TuningStep
from sagemaker.pytorch import PyTorch
from sagemaker.tuner import HyperparameterTuner, IntegerParameter, ContinuousParameter

# 定義輸入輸出S3容器位置、IAM腳色,執行個體等參數
s3_input_path = 's3://your-bucket/input-data'
s3_output_path = 's3://your-bucket/output-data'
role = 'your-iam-role'
tuning_instance_type = ParameterString(name="TrainingInstanceType",
default_value="ml.m5.xlarge")
pipeline_session = PipelineSession()

# 配置 Estimator
estimator = PyTorch(
entry_point='train.py',
role=role,
instance_count=1,
instance_type=tuning_instance_type,
framework_version='2.2.0',
py_version='py310',
output_path=s3_output_path,
hyperparameters={
'epochs': 10,
'batch_size': 64
}
)

# 配置超参数范围
hyperparameter_ranges = {
'learning_rate': ContinuousParameter(0.001, 0.1),
'batch_size': IntegerParameter(32, 128)
}

# 配置 TuningJob
tuner = HyperparameterTuner(
estimator=estimator,
objective_metric_name='validation:accuracy',
hyperparameter_ranges=hyperparameter_ranges,
max_jobs=20,
max_parallel_jobs=2
)

# 定義​ TuningStep
step_tuning = TuningStep(
name="HyperparameterTuning",
tuner=tuner,
inputs={ "train":s3_input_path, "validation": s3_input_path }
)

# 定義​ Pipeline
pipeline = Pipeline( name="YourPipelineName",
parameters=[tuning_instance_type],
steps=[step_tuning],
sagemaker_session=pipeline_session )

# 啟動 pipeline
pipeline.upsert(role_arn=role)
execution = pipeline.start()

三.總結

  SageMaker 的 TuningStep 與專門的 Python 套件在使用上的體驗是類似的,且功能上也沒有太大的變化,對於參數的監控若要產生同時監控多參數的效果,需要做的處理也大同小異,並沒有提供更方便的方法,唯一的優勢應該就是若你開始建構整體Pipeline 流程,SageMaker 單獨為 Tuning 功能切割出一塊給你,讓你可以模組化的去管理這塊部分。

  到現在這篇,SageMaker 系列也介紹了5篇,大致了解整個 SageMaker 該如何訓練,我想先暫時告一段落,因為到目前為止,體驗上我認為大同小異,主要就是需要學習新的 SageMaker 套件,去學習離線時的功能在 SageMaker 上要如何實現,除此之外,再來能介紹的功能大致上都是使用 AutoML 利用雲上資源快速地進行應用及實驗,但這部分需要有個實際案例比較能凸顯其特色,所以接下來,我會嘗試 SageMaker 外的其他 AWS AI 服務,看看與 SageMaker 的差異在哪?我們下篇再見。

avatar-img
8會員
21內容數
AI、電腦視覺、圖像處理、AWS等等持續學習時的學習筆記,也包含一些心得,主要是幫助自己學習,若能同時幫助到不小心來到這裡的人,那也是好事一件 : )
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
貓貓學習筆記 的其他內容
  除了上篇提到的 Data Wrangler 外,SageMaker 還有許多配套的功能,其中有個叫做 Pipelines 的東西,說是可以用來構建、 管理及自動化深度學習流程,能夠節省人工操作,有那麼神?這次就來試試 Pipelines 能夠為我們帶來什麼體驗。
  在上篇我們已經學習到怎麼在 SageMaker 上進行簡易訓練,可以說是踏入了第一步, SageMaker 提供了不少工具用來協助使用者能夠更快速的進行訓練,其中 Data Wrangler 便是用於訓練資料處理的工具,那麼,他好用嗎?必須用嗎?
  上回練習了一個官方示例,但其中對於一些細節沒有練習到的感覺,這次我們實際將之前練習的風格轉換訓練推上去看看,看是否能體驗到更多細節。
  先前在中國的工作環境相對封閉,並沒有使用雲端產品進行AI訓練及部屬,只有在本機端進行建置調試,但如今回到台灣了,該是時候接觸一下這些雲端的 AI 服務,而在 AWS 中,深度學習相關的服務鈴瑯滿目,但聽到有人提到 SageMaker ,這次就來看看它是個什麼樣的服務吧。
實踐AWS中使用Lambda來負責登入簽核及與OpenAI API溝通,並利用S3容器託管一個靜態網頁做為前端
  除了上篇提到的 Data Wrangler 外,SageMaker 還有許多配套的功能,其中有個叫做 Pipelines 的東西,說是可以用來構建、 管理及自動化深度學習流程,能夠節省人工操作,有那麼神?這次就來試試 Pipelines 能夠為我們帶來什麼體驗。
  在上篇我們已經學習到怎麼在 SageMaker 上進行簡易訓練,可以說是踏入了第一步, SageMaker 提供了不少工具用來協助使用者能夠更快速的進行訓練,其中 Data Wrangler 便是用於訓練資料處理的工具,那麼,他好用嗎?必須用嗎?
  上回練習了一個官方示例,但其中對於一些細節沒有練習到的感覺,這次我們實際將之前練習的風格轉換訓練推上去看看,看是否能體驗到更多細節。
  先前在中國的工作環境相對封閉,並沒有使用雲端產品進行AI訓練及部屬,只有在本機端進行建置調試,但如今回到台灣了,該是時候接觸一下這些雲端的 AI 服務,而在 AWS 中,深度學習相關的服務鈴瑯滿目,但聽到有人提到 SageMaker ,這次就來看看它是個什麼樣的服務吧。
實踐AWS中使用Lambda來負責登入簽核及與OpenAI API溝通,並利用S3容器託管一個靜態網頁做為前端
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
2024春夏高級訂製服系列時裝周模特兒名單中,台灣模特兒再添一位,那便是過去主要據點為米蘭的張雨宸YuChen Chang。
Thumbnail
Amazon SageMaker Canvas 是一項無須程式碼機器學習 (ML) 服務,可以幫助商業分析師透過機器學習(ML)在幾分鐘內從數千個文件、圖像和文字行中產生見解。 可以隨時存取即用型模型,建立自訂文字和圖像分類模型以及先前支援的表格資料自訂模型,所有這些操作都無需具備機器學習經驗,也無
Thumbnail
前幾個禮拜,AWS 舉行 Startup Day Taiwan。想當然爾,最熱門的主題非生成式 AI (Generative AI) 莫屬。既然 AWS 有現成的工具,身為一名工程師,自然看看無妨,這篇文章算是新手開箱文,會說明如何部署一套基礎模型,並使用 AWS SDK 與其互動。
Thumbnail
前言 我在工作中沒有什麼機會接觸到機器學習,學生時期也沒有學習過相關知識。 作為一個業餘小白,我對機器學習非常感興趣。在自學的過程中,我逐漸意識到利用機器學習可以做很多有趣的事情。 因此,我決定嘗試使用 AWS SageMaker JumpStart 來實驗文字生成式繪圖 AI ,以了解機
Thumbnail
PROCESS macro for SPSS 可以用非常簡單方式學會調節中介模式。本文將介紹四種類型的變項,並解釋調節式中介的公式,還有如何操作最4.0版本的PROCESS macro for SPSS。文末也會附上所有所有Process模型圖例,提供給讀者方便分析~
Thumbnail
PROCESS macro for SPSS 可以用非常簡單方式使用調節分析。本文將介紹三種類型的變項,還有如何操作最4.2版本的PROCESS macro for SPSS進行調節模式。文末也會附上所有所有Process模型圖例,提供給讀者方便分析~
Thumbnail
PROCESS macro for SPSS 可以用非常簡單方式進中介模式。本文將介紹三種類型的變項,還有如何操作最4.0版本的PROCESS macro for SPSS。文末也會附上所有所有Process模型圖例,提供給讀者方便分析~
Thumbnail
Potato Media雖然和方格子及Matters同樣歸類為寫作平台,同樣強調將內容變現,前者卻與後面兩者完全不同,當然,所獲得的收入報酬也不會一樣,更清楚一點來說,連獲得收益的方式也大不相同。
Thumbnail
「這世上的女人從未意識到她們擁有的力量....我下一次再墜入愛河時,我 會張大眼睛做出聰明的選擇。我會先確定那個女孩愛我比我愛她多一些。 」西羅是在乎的,她從沒有給過他的暗戀相對的回應,可是,親眼看見她跟神父「在一起」,西羅心碎了,未來幾年都還是會隱隱作痛.....
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
2024春夏高級訂製服系列時裝周模特兒名單中,台灣模特兒再添一位,那便是過去主要據點為米蘭的張雨宸YuChen Chang。
Thumbnail
Amazon SageMaker Canvas 是一項無須程式碼機器學習 (ML) 服務,可以幫助商業分析師透過機器學習(ML)在幾分鐘內從數千個文件、圖像和文字行中產生見解。 可以隨時存取即用型模型,建立自訂文字和圖像分類模型以及先前支援的表格資料自訂模型,所有這些操作都無需具備機器學習經驗,也無
Thumbnail
前幾個禮拜,AWS 舉行 Startup Day Taiwan。想當然爾,最熱門的主題非生成式 AI (Generative AI) 莫屬。既然 AWS 有現成的工具,身為一名工程師,自然看看無妨,這篇文章算是新手開箱文,會說明如何部署一套基礎模型,並使用 AWS SDK 與其互動。
Thumbnail
前言 我在工作中沒有什麼機會接觸到機器學習,學生時期也沒有學習過相關知識。 作為一個業餘小白,我對機器學習非常感興趣。在自學的過程中,我逐漸意識到利用機器學習可以做很多有趣的事情。 因此,我決定嘗試使用 AWS SageMaker JumpStart 來實驗文字生成式繪圖 AI ,以了解機
Thumbnail
PROCESS macro for SPSS 可以用非常簡單方式學會調節中介模式。本文將介紹四種類型的變項,並解釋調節式中介的公式,還有如何操作最4.0版本的PROCESS macro for SPSS。文末也會附上所有所有Process模型圖例,提供給讀者方便分析~
Thumbnail
PROCESS macro for SPSS 可以用非常簡單方式使用調節分析。本文將介紹三種類型的變項,還有如何操作最4.2版本的PROCESS macro for SPSS進行調節模式。文末也會附上所有所有Process模型圖例,提供給讀者方便分析~
Thumbnail
PROCESS macro for SPSS 可以用非常簡單方式進中介模式。本文將介紹三種類型的變項,還有如何操作最4.0版本的PROCESS macro for SPSS。文末也會附上所有所有Process模型圖例,提供給讀者方便分析~
Thumbnail
Potato Media雖然和方格子及Matters同樣歸類為寫作平台,同樣強調將內容變現,前者卻與後面兩者完全不同,當然,所獲得的收入報酬也不會一樣,更清楚一點來說,連獲得收益的方式也大不相同。
Thumbnail
「這世上的女人從未意識到她們擁有的力量....我下一次再墜入愛河時,我 會張大眼睛做出聰明的選擇。我會先確定那個女孩愛我比我愛她多一些。 」西羅是在乎的,她從沒有給過他的暗戀相對的回應,可是,親眼看見她跟神父「在一起」,西羅心碎了,未來幾年都還是會隱隱作痛.....