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

閱讀時間約 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流程
  • 跨團隊協作和大規模管理:多個團隊協作,定義和管理複雜的工作流程
7會員
21內容數
AI、電腦視覺、圖像處理、AWS等等持續學習時的學習筆記,也包含一些心得,主要是幫助自己學習,若能同時幫助到不小心來到這裡的人,那也是好事一件 : )
留言0
查看全部
發表第一個留言支持創作者!
貓貓學習筆記 的其他內容
SageMaker是什麼?好用嗎?
閱讀時間約 4 分鐘
SageMaker-讓自己的訓練上雲端
閱讀時間約 5 分鐘
你可能也想看
迎新活動「方格新手村」:新格友註冊加入方格子,知名日料吃到飽餐券送給你! 👉 還不是 vocus 的會員嗎?點此註冊,參與新手村活動 👈 近期站上也出現了不少新格友,為了歡迎各位的加入,「方格新手村」隨之登場! 即日起,只要是新註冊帳號於活動期間內發佈 3 則文章,就有機會抽獎獲得知名日料吃到飽餐券。原格友也可以一起同樂,我們準備了小任
Thumbnail
2024-06-21
103
什麼人適合國泰世華 CUBE App ?整理5大推薦原因你覺得哪間網銀的 App 最好用? 近幾年,我為了拿到很多家銀行的回饋,辦了很多家銀行的帳戶,數一數至少也有十幾間! 比較下來,國泰世華 CUBE App ,是我用起來最順手的 👍 國泰究竟贏在哪裡呢?讓我整理 5 個原因給大家~
Thumbnail
2024-07-05
66
川普當選,對台股是利多還是利空?川普在槍擊事件中所表現出來的英勇形象,讓他贏得美國總統大選幾乎已成定局。沒想到他隨口的一句話「台灣搶走美國的晶片生意,所以要付保護費」,就讓台積電在短短三天跌掉超過100 元,台股也跌掉1100點以上。台積電、台股會就此一路下跌嗎?未來該如何因應?  
Thumbnail
2024-07-20
80
建構好的日子才能創造自由事先擬定具備彈性的計畫,讓大腦得以釋出空間,跳脫預設模式,讓我們更專注有效的運用時間。
Thumbnail
2024-03-19
4
【建構好的判斷力】( 2/38)「我們將擁有一種比我們所有人都聰明的智能,而我們對發生了什麼毫不知情。」
2024-02-24
2
建構自我自我是甚麼? 最近的生活像沙子一樣,悄然無息的流逝掉了, 25歲的尾巴,還是會去看別人的好,而忽視了自己,討厭自己的情緒和模樣 我還是得繼續活下去,朝著我更想要的樣子前進 寫日記這件事情,才能幫助我釐清重要的事情,找到我自己的重心, 做選擇的時候去釐清哪個部分是自己的聲音,當聲音層層堆疊的
2024-02-04
2
【高訂】Yu Chen Chang張雨宸-Yara Shoemaker 2024春夏高級訂製服系列2024春夏高級訂製服系列時裝周模特兒名單中,台灣模特兒再添一位,那便是過去主要據點為米蘭的張雨宸YuChen Chang。
Thumbnail
2024-01-29
23
建構以台灣為主體的國族意識─談「去中國化」與「去奴化」(AI轉語音) 前言: 「倘若你不以自己為主體,倘若你一直認為自己是別人的一部分:甚是以別人為主自己為奴。那不管你擁有了甚麼珍貴的東西,隨時可能會被剝奪與失去。真心希望國民黨能以台灣為主體,而非視台灣為中國的邊陲或附屬。甚還堅持"必須相信習近平""台灣可以接受統一"。... 猶太人亡國千年以後,二戰後,終於
Thumbnail
2024-01-18
4
Amazon SageMaker Canvas 實作學習日記 (1)Amazon SageMaker Canvas 是一項無須程式碼機器學習 (ML) 服務,可以幫助商業分析師透過機器學習(ML)在幾分鐘內從數千個文件、圖像和文字行中產生見解。 可以隨時存取即用型模型,建立自訂文字和圖像分類模型以及先前支援的表格資料自訂模型,所有這些操作都無需具備機器學習經驗,也無
Thumbnail
2023-10-06
3
AWS SageMaker 開箱體驗前幾個禮拜,AWS 舉行 Startup Day Taiwan。想當然爾,最熱門的主題非生成式 AI (Generative AI) 莫屬。既然 AWS 有現成的工具,身為一名工程師,自然看看無妨,這篇文章算是新手開箱文,會說明如何部署一套基礎模型,並使用 AWS SDK 與其互動。
Thumbnail
2023-07-25
23
沒有機器學習經驗的我嘗試了 Amazon SageMaker JumpStart 前言 我在工作中沒有什麼機會接觸到機器學習,學生時期也沒有學習過相關知識。 作為一個業餘小白,我對機器學習非常感興趣。在自學的過程中,我逐漸意識到利用機器學習可以做很多有趣的事情。 因此,我決定嘗試使用 AWS SageMaker JumpStart 來實驗文字生成式繪圖 AI ,以了解機
Thumbnail
2023-07-18
31
建構做事的規範|標準作業流程的意義我們可以利用這些邏輯應用在企畫書、讀書計畫、等等,本質來說這些都是目標設定的學問。另外,操作者也需要完全理解作業流程的方向以及具體的操作,操作者本身也需要定時進修,掌握技術之外,也需要適時反應標準作業流程的問題,或是需要更深入了解設計的意義。不論任何框架,其目的都是要讓理想更具體的能夠執行。
Thumbnail
艾狄安娜《白朗峰上的約定 The Sboemaker's Wife》生命中的悲傷都有其意義「這世上的女人從未意識到她們擁有的力量....我下一次再墜入愛河時,我 會張大眼睛做出聰明的選擇。我會先確定那個女孩愛我比我愛她多一些。 」西羅是在乎的,她從沒有給過他的暗戀相對的回應,可是,親眼看見她跟神父「在一起」,西羅心碎了,未來幾年都還是會隱隱作痛.....
Thumbnail
2013-12-27
0
迎新活動「方格新手村」:新格友註冊加入方格子,知名日料吃到飽餐券送給你! 👉 還不是 vocus 的會員嗎?點此註冊,參與新手村活動 👈 近期站上也出現了不少新格友,為了歡迎各位的加入,「方格新手村」隨之登場! 即日起,只要是新註冊帳號於活動期間內發佈 3 則文章,就有機會抽獎獲得知名日料吃到飽餐券。原格友也可以一起同樂,我們準備了小任
Thumbnail
2024-06-21
103
什麼人適合國泰世華 CUBE App ?整理5大推薦原因你覺得哪間網銀的 App 最好用? 近幾年,我為了拿到很多家銀行的回饋,辦了很多家銀行的帳戶,數一數至少也有十幾間! 比較下來,國泰世華 CUBE App ,是我用起來最順手的 👍 國泰究竟贏在哪裡呢?讓我整理 5 個原因給大家~
Thumbnail
2024-07-05
66
川普當選,對台股是利多還是利空?川普在槍擊事件中所表現出來的英勇形象,讓他贏得美國總統大選幾乎已成定局。沒想到他隨口的一句話「台灣搶走美國的晶片生意,所以要付保護費」,就讓台積電在短短三天跌掉超過100 元,台股也跌掉1100點以上。台積電、台股會就此一路下跌嗎?未來該如何因應?  
Thumbnail
2024-07-20
80
建構好的日子才能創造自由事先擬定具備彈性的計畫,讓大腦得以釋出空間,跳脫預設模式,讓我們更專注有效的運用時間。
Thumbnail
2024-03-19
4
【建構好的判斷力】( 2/38)「我們將擁有一種比我們所有人都聰明的智能,而我們對發生了什麼毫不知情。」
2024-02-24
2
建構自我自我是甚麼? 最近的生活像沙子一樣,悄然無息的流逝掉了, 25歲的尾巴,還是會去看別人的好,而忽視了自己,討厭自己的情緒和模樣 我還是得繼續活下去,朝著我更想要的樣子前進 寫日記這件事情,才能幫助我釐清重要的事情,找到我自己的重心, 做選擇的時候去釐清哪個部分是自己的聲音,當聲音層層堆疊的
2024-02-04
2
【高訂】Yu Chen Chang張雨宸-Yara Shoemaker 2024春夏高級訂製服系列2024春夏高級訂製服系列時裝周模特兒名單中,台灣模特兒再添一位,那便是過去主要據點為米蘭的張雨宸YuChen Chang。
Thumbnail
2024-01-29
23
建構以台灣為主體的國族意識─談「去中國化」與「去奴化」(AI轉語音) 前言: 「倘若你不以自己為主體,倘若你一直認為自己是別人的一部分:甚是以別人為主自己為奴。那不管你擁有了甚麼珍貴的東西,隨時可能會被剝奪與失去。真心希望國民黨能以台灣為主體,而非視台灣為中國的邊陲或附屬。甚還堅持"必須相信習近平""台灣可以接受統一"。... 猶太人亡國千年以後,二戰後,終於
Thumbnail
2024-01-18
4
Amazon SageMaker Canvas 實作學習日記 (1)Amazon SageMaker Canvas 是一項無須程式碼機器學習 (ML) 服務,可以幫助商業分析師透過機器學習(ML)在幾分鐘內從數千個文件、圖像和文字行中產生見解。 可以隨時存取即用型模型,建立自訂文字和圖像分類模型以及先前支援的表格資料自訂模型,所有這些操作都無需具備機器學習經驗,也無
Thumbnail
2023-10-06
3
AWS SageMaker 開箱體驗前幾個禮拜,AWS 舉行 Startup Day Taiwan。想當然爾,最熱門的主題非生成式 AI (Generative AI) 莫屬。既然 AWS 有現成的工具,身為一名工程師,自然看看無妨,這篇文章算是新手開箱文,會說明如何部署一套基礎模型,並使用 AWS SDK 與其互動。
Thumbnail
2023-07-25
23
沒有機器學習經驗的我嘗試了 Amazon SageMaker JumpStart 前言 我在工作中沒有什麼機會接觸到機器學習,學生時期也沒有學習過相關知識。 作為一個業餘小白,我對機器學習非常感興趣。在自學的過程中,我逐漸意識到利用機器學習可以做很多有趣的事情。 因此,我決定嘗試使用 AWS SageMaker JumpStart 來實驗文字生成式繪圖 AI ,以了解機
Thumbnail
2023-07-18
31
建構做事的規範|標準作業流程的意義我們可以利用這些邏輯應用在企畫書、讀書計畫、等等,本質來說這些都是目標設定的學問。另外,操作者也需要完全理解作業流程的方向以及具體的操作,操作者本身也需要定時進修,掌握技術之外,也需要適時反應標準作業流程的問題,或是需要更深入了解設計的意義。不論任何框架,其目的都是要讓理想更具體的能夠執行。
Thumbnail
艾狄安娜《白朗峰上的約定 The Sboemaker's Wife》生命中的悲傷都有其意義「這世上的女人從未意識到她們擁有的力量....我下一次再墜入愛河時,我 會張大眼睛做出聰明的選擇。我會先確定那個女孩愛我比我愛她多一些。 」西羅是在乎的,她從沒有給過他的暗戀相對的回應,可是,親眼看見她跟神父「在一起」,西羅心碎了,未來幾年都還是會隱隱作痛.....
Thumbnail
2013-12-27
0