SageMaker-建構Pipelines真的有必要嗎?

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

一.引言

  除了上篇提到的 Data Wrangler 外,SageMaker 還有許多配套的功能,其中有個叫做 Pipelines 的東西,說是可以用來構建、 管理及自動化深度學習流程,能夠節省人工操作,有那麼神?這次就來試試 Pipelines 能夠為我們帶來什麼體驗。

二.Pipelines 介紹

  SageMaker Pipelines 提供了一個框架,讓你定義和自動化機器學習工作流程中的所有步驟(Step),包括資料預處理、特徵工程、模型訓練、模型評估和模型部署。 每個步驟可以由不同的SageMaker元件組成。

Step 為 Pipeline 中的基本單位,每個 Step 表示一個特定的任務或操作 :

  • ProcessingStep:用於資料處理和特徵工程
  • TrainingStep:用於模型訓練
  • TransformStep:用於批量推理
  • TuningStep:用於超參數調優
  • ConditionStep:用於條件判斷
  • CallbackStep:用於呼叫外部系統或服務
  • LambdaStep:用於執行自訂邏輯

接下來便簡易搭建一個 Pipeline 流程 :

1.準備環境

import sagemaker
from sagemaker.workflow.pipeline import Pipeline
from sagemaker.workflow.steps import ProcessingStep, TrainingStep
from sagemaker.processing import ScriptProcessor
from sagemaker.estimator import Estimator
from sagemaker.workflow.parameters import ParameterString
from sagemaker.workflow.pipeline_context import PipelineSession

# SageMaker 會話和腳色
sagemaker_session = sagemaker.Session()
role = 'your-iam-role'
bucket = 'your-s3-bucket'
prefix = 'your-data-prefix'
# Pipeline 會話
pipeline_session = PipelineSession()

2.定義參數

# 定義數據​前處理用執行個體
processing_instance_type = ParameterString(name="ProcessingInstanceType",
default_value="ml.m5.xlarge")
# 定義訓練用執行個體​
training_instance_type = ParameterString(name="TrainingInstanceType",
default_value="ml.p3.2xlarge")

3.定義數據前處理step

# 定義數據處理流程
processor = ScriptProcessor(
role=role,
image_uri='your-processing-container',
command=['python3'],
instance_count=1,
instance_type=processing_instance_type,
sagemaker_session=sagemaker_session
)
# 定義 Step​
step_process = ProcessingStep(
name='DataProcessing',
processor=processor,
inputs=[sagemaker.processing.ProcessingInput(
source=f's3://{bucket}/{prefix}/raw-data',
destination='/opt/ml/processing/input'
)],
outputs=[sagemaker.processing.ProcessingOutput(
source='/opt/ml/processing/output',
destination=f's3://{bucket}/{prefix}/processed-data'
)],
code='processing_script.py'
)

4.定義訓練Step

# 定義訓練流程
estimator = PyTorch(
entry_point='train.py',
role=role,
instance_count=1,
instance_type=training_instance_type,
framework_version='1.8.0',
py_version='py37',
script_mode=True,
output_path='s3://your-bucket/your-prefix/model',
sagemaker_session=sagemaker_session
)
# 定義訓練Step​
step_train = TrainingStep(
name='ModelTraining',
estimator=estimator,
inputs={'train': 's3://your-bucket/your-prefix/processed-data'}
)

5.定義模型部屬Step

model = Model(
image_uri='your-inference-container',
model_data=step_train.properties.ModelArtifacts.S3ModelArtifacts,
role=role
)

step_model = ModelStep(
name='ModelDeployment',
model=model,
instance_count=1,
instance_type='ml.m5.large'
)

6.定義及創建Pipeline

# 定义Pipeline
pipeline = Pipeline(
name='MyPipeline',
parameters=[processing_instance_type, training_instance_type],
steps=[step_process, step_train, step_model]
)

# 创建和启动Pipeline
pipeline.upsert(role=role)
pipeline.start()

  以上程式碼定義了三個 Step,分別包含數據前處理、模型訓練、模型部屬,並交由Pipeline 去順序執行,從示例可以看到,我們可以針對不同 Step 指定不同的執行個體,這意味著我們可以根據不同 Step 的運算需求使用最適合的環境,並且因為分離成不同的 Step,在維護及管理上便可以視為單一獨立的區塊去處理,在工作細化及分工上都可以帶來幫助。

三.總結

  SageMaker Pipeline 將整個訓練流程細分成多個 Step ,雖然增加了分工及管理上的優點,但前提是有著良好的分工狀態,若是專案不夠龐大,需要的處理不夠複雜,還是將所有流程寫在同一份程式碼內會相對好處理很多。

所以統整下大概符合下列條件再建構 Pipeline 才會有比較好的體驗 :

  • 資料量大且處理複雜:每天產生大量數據,需要多階段處理和特徵工程
  • 超參數調優和模型選擇:需要並行訓練多個模型並自動選擇最佳模型
  • 持續整合和部署:頻繁更新資料和模型,需要自動化CI/CD流程
  • 跨團隊協作和大規模管理:多個團隊協作,定義和管理複雜的工作流程
avatar-img
8會員
21內容數
AI、電腦視覺、圖像處理、AWS等等持續學習時的學習筆記,也包含一些心得,主要是幫助自己學習,若能同時幫助到不小心來到這裡的人,那也是好事一件 : )
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
貓貓學習筆記 的其他內容
  在上篇我們已經學習到怎麼在 SageMaker 上進行簡易訓練,可以說是踏入了第一步, SageMaker 提供了不少工具用來協助使用者能夠更快速的進行訓練,其中 Data Wrangler 便是用於訓練資料處理的工具,那麼,他好用嗎?必須用嗎?
  上回練習了一個官方示例,但其中對於一些細節沒有練習到的感覺,這次我們實際將之前練習的風格轉換訓練推上去看看,看是否能體驗到更多細節。
  先前在中國的工作環境相對封閉,並沒有使用雲端產品進行AI訓練及部屬,只有在本機端進行建置調試,但如今回到台灣了,該是時候接觸一下這些雲端的 AI 服務,而在 AWS 中,深度學習相關的服務鈴瑯滿目,但聽到有人提到 SageMaker ,這次就來看看它是個什麼樣的服務吧。
實踐AWS中使用Lambda來負責登入簽核及與OpenAI API溝通,並利用S3容器託管一個靜態網頁做為前端
  在上篇我們已經學習到怎麼在 SageMaker 上進行簡易訓練,可以說是踏入了第一步, SageMaker 提供了不少工具用來協助使用者能夠更快速的進行訓練,其中 Data Wrangler 便是用於訓練資料處理的工具,那麼,他好用嗎?必須用嗎?
  上回練習了一個官方示例,但其中對於一些細節沒有練習到的感覺,這次我們實際將之前練習的風格轉換訓練推上去看看,看是否能體驗到更多細節。
  先前在中國的工作環境相對封閉,並沒有使用雲端產品進行AI訓練及部屬,只有在本機端進行建置調試,但如今回到台灣了,該是時候接觸一下這些雲端的 AI 服務,而在 AWS 中,深度學習相關的服務鈴瑯滿目,但聽到有人提到 SageMaker ,這次就來看看它是個什麼樣的服務吧。
實踐AWS中使用Lambda來負責登入簽核及與OpenAI API溝通,並利用S3容器託管一個靜態網頁做為前端
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
事先擬定具備彈性的計畫,讓大腦得以釋出空間,跳脫預設模式,讓我們更專注有效的運用時間。
「我們將擁有一種比我們所有人都聰明的智能,而我們對發生了什麼毫不知情。」
自我是甚麼? 最近的生活像沙子一樣,悄然無息的流逝掉了, 25歲的尾巴,還是會去看別人的好,而忽視了自己,討厭自己的情緒和模樣 我還是得繼續活下去,朝著我更想要的樣子前進 寫日記這件事情,才能幫助我釐清重要的事情,找到我自己的重心, 做選擇的時候去釐清哪個部分是自己的聲音,當聲音層層堆疊的
Thumbnail
2024春夏高級訂製服系列時裝周模特兒名單中,台灣模特兒再添一位,那便是過去主要據點為米蘭的張雨宸YuChen Chang。
Thumbnail
前言: 「倘若你不以自己為主體,倘若你一直認為自己是別人的一部分:甚是以別人為主自己為奴。那不管你擁有了甚麼珍貴的東西,隨時可能會被剝奪與失去。真心希望國民黨能以台灣為主體,而非視台灣為中國的邊陲或附屬。甚還堅持"必須相信習近平""台灣可以接受統一"。... 猶太人亡國千年以後,二戰後,終於
Thumbnail
Amazon SageMaker Canvas 是一項無須程式碼機器學習 (ML) 服務,可以幫助商業分析師透過機器學習(ML)在幾分鐘內從數千個文件、圖像和文字行中產生見解。 可以隨時存取即用型模型,建立自訂文字和圖像分類模型以及先前支援的表格資料自訂模型,所有這些操作都無需具備機器學習經驗,也無
Thumbnail
前幾個禮拜,AWS 舉行 Startup Day Taiwan。想當然爾,最熱門的主題非生成式 AI (Generative AI) 莫屬。既然 AWS 有現成的工具,身為一名工程師,自然看看無妨,這篇文章算是新手開箱文,會說明如何部署一套基礎模型,並使用 AWS SDK 與其互動。
Thumbnail
前言 我在工作中沒有什麼機會接觸到機器學習,學生時期也沒有學習過相關知識。 作為一個業餘小白,我對機器學習非常感興趣。在自學的過程中,我逐漸意識到利用機器學習可以做很多有趣的事情。 因此,我決定嘗試使用 AWS SageMaker JumpStart 來實驗文字生成式繪圖 AI ,以了解機
Thumbnail
我們可以利用這些邏輯應用在企畫書、讀書計畫、等等,本質來說這些都是目標設定的學問。另外,操作者也需要完全理解作業流程的方向以及具體的操作,操作者本身也需要定時進修,掌握技術之外,也需要適時反應標準作業流程的問題,或是需要更深入了解設計的意義。不論任何框架,其目的都是要讓理想更具體的能夠執行。
Thumbnail
「這世上的女人從未意識到她們擁有的力量....我下一次再墜入愛河時,我 會張大眼睛做出聰明的選擇。我會先確定那個女孩愛我比我愛她多一些。 」西羅是在乎的,她從沒有給過他的暗戀相對的回應,可是,親眼看見她跟神父「在一起」,西羅心碎了,未來幾年都還是會隱隱作痛.....
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
事先擬定具備彈性的計畫,讓大腦得以釋出空間,跳脫預設模式,讓我們更專注有效的運用時間。
「我們將擁有一種比我們所有人都聰明的智能,而我們對發生了什麼毫不知情。」
自我是甚麼? 最近的生活像沙子一樣,悄然無息的流逝掉了, 25歲的尾巴,還是會去看別人的好,而忽視了自己,討厭自己的情緒和模樣 我還是得繼續活下去,朝著我更想要的樣子前進 寫日記這件事情,才能幫助我釐清重要的事情,找到我自己的重心, 做選擇的時候去釐清哪個部分是自己的聲音,當聲音層層堆疊的
Thumbnail
2024春夏高級訂製服系列時裝周模特兒名單中,台灣模特兒再添一位,那便是過去主要據點為米蘭的張雨宸YuChen Chang。
Thumbnail
前言: 「倘若你不以自己為主體,倘若你一直認為自己是別人的一部分:甚是以別人為主自己為奴。那不管你擁有了甚麼珍貴的東西,隨時可能會被剝奪與失去。真心希望國民黨能以台灣為主體,而非視台灣為中國的邊陲或附屬。甚還堅持"必須相信習近平""台灣可以接受統一"。... 猶太人亡國千年以後,二戰後,終於
Thumbnail
Amazon SageMaker Canvas 是一項無須程式碼機器學習 (ML) 服務,可以幫助商業分析師透過機器學習(ML)在幾分鐘內從數千個文件、圖像和文字行中產生見解。 可以隨時存取即用型模型,建立自訂文字和圖像分類模型以及先前支援的表格資料自訂模型,所有這些操作都無需具備機器學習經驗,也無
Thumbnail
前幾個禮拜,AWS 舉行 Startup Day Taiwan。想當然爾,最熱門的主題非生成式 AI (Generative AI) 莫屬。既然 AWS 有現成的工具,身為一名工程師,自然看看無妨,這篇文章算是新手開箱文,會說明如何部署一套基礎模型,並使用 AWS SDK 與其互動。
Thumbnail
前言 我在工作中沒有什麼機會接觸到機器學習,學生時期也沒有學習過相關知識。 作為一個業餘小白,我對機器學習非常感興趣。在自學的過程中,我逐漸意識到利用機器學習可以做很多有趣的事情。 因此,我決定嘗試使用 AWS SageMaker JumpStart 來實驗文字生成式繪圖 AI ,以了解機
Thumbnail
我們可以利用這些邏輯應用在企畫書、讀書計畫、等等,本質來說這些都是目標設定的學問。另外,操作者也需要完全理解作業流程的方向以及具體的操作,操作者本身也需要定時進修,掌握技術之外,也需要適時反應標準作業流程的問題,或是需要更深入了解設計的意義。不論任何框架,其目的都是要讓理想更具體的能夠執行。
Thumbnail
「這世上的女人從未意識到她們擁有的力量....我下一次再墜入愛河時,我 會張大眼睛做出聰明的選擇。我會先確定那個女孩愛我比我愛她多一些。 」西羅是在乎的,她從沒有給過他的暗戀相對的回應,可是,親眼看見她跟神父「在一起」,西羅心碎了,未來幾年都還是會隱隱作痛.....