iT邦幫忙

2025 iThome 鐵人賽

DAY 5
0

前言

今天我們要開始搞 Sagemaker 的部分, 說到 Machine Learning (ML),
的部分,從 0-1 的過程,我們前置工作要做非常多事情,首先我們要準備訓練資料
並且要拿這些資料進行分類,拿分類的資料給模型訓練,模型訓練完後,還要微調,調整等

概念

這以上涉及到幾個面向的事情

  • 資料準備與探索:整合多種資料源,提供資料標註和預處理工具
  • 模型開發:多種ML框架和演算法
  • 模型訓練:可擴展的訓練基礎設施,支援分散式訓練
  • 模型部署:一鍵部署到生產環境,支援A/B測試和自動擴展

也因為這樣,所以我們要建構一個龐大的系統去做這件事情,
仿間所聽到關於 deepLearning 或是 Machine Learning 相關的 像是 pytorch 或是 Tenserflow

所以 sageMaker 是蝦米碗糕?

Amazon 有些服務,說起來有些簡單有些複雜,像是 AWS EC2 你可以說他就是虛擬機 (VM)
你可以說 S3 就是 Object storage ,很直觀簡單易懂,但 sagemaker 你只會說這是一個 ai 應用的東西,
但是什麼,要一次說明不容易。

sageMaker 基本上你可以當作一個大平台,當涵蓋了以上我說的,資料探索,開發,訓練,到部署的大平台
可以參考 這個,看外國人怎說

可以涵蓋到 AI 應用相關的大平台

所以這樣講聽起來不簡單,對~~不剪單

更深入了解一下 sageMaker 有什麼(sageMaker 的核心元件)

  1. sageMaker studio

  2. sageMaker notebook instance

  3. SageMaker Training Jobs

  4. SageMaker Endpoint

所以要說 sageMaker 是什麼,我個人認為答案就是 ai 相關的整合工具,
可以說在 aws 來說每個服務都會依照需求和架構建置整體服務模式

就像馬路有十字路口,四通八達, sageMaker 就如同通往 ai 到路的十字路口

環境設置

權限相關設置

因為基本上個人測試,普遍都用 adminFullAccess 權限,如果有需求的話可以按照以下步驟執行使用

開啟IAM控制台
點擊「角色」→「建立角色」
選擇「AWS服務」→「SageMaker」

附加以下權限策略
`AmazonSageMakerFullAccess`
`AmazonS3FullAccess`(用於資料存取)
`AmazonBedrockFullAccess`(整合Bedrock服務)

如果習慣看 policy 可以用這個

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "sagemaker:*",
                "s3:GetObject",
                "s3:PutObject",
                "s3:DeleteObject",
                "s3:ListBucket",
                "bedrock:*"
            ],
            "Resource": "*"
        }
    ]
}

notebook instance

開啟SageMaker控制台
點擊「Notebook instances」→「Create notebook instance」

設定基本資訊:

  • Notebook instance name: my-ml-notebook
  • Notebook instance type: ml.t3.medium(學習用途足夠)
  • Platform identifier: Amazon Linux 2, Jupyter Lab 3

權限設定:

IAM role: 選擇剛才建立的角色
Root access: Enabled(方便安裝額外套件)

網路設定(可選):

VPC: 預設或選擇現有VPC
Subnet: 選擇public subnet

環境驗證

建立Notebook Instance後,點擊「Open Jupyter」進入開發環境。建立新的Notebook來驗證環境:

# 驗證SageMaker環境
import sagemaker
import boto3
from sagemaker import get_execution_role

print(f"SageMaker版本: {sagemaker.__version__}")

# 取得執行角色
role = get_execution_role()
print(f"SageMaker執行角色: {role}")

# 建立SageMaker session
sess = sagemaker.Session()
print(f"預設S3儲存桶: {sess.default_bucket()}")

# 取得可用的實例類型
ec2 = boto3.client('ec2')
print("可用的訓練實例類型範例:")
training_instance_types = ['ml.m5.large', 'ml.m5.xlarge', 'ml.c5.xlarge']
for instance_type in training_instance_types:
    print(f"  - {instance_type}")

設定 aws-cli

# 安裝額外套件
!pip install --upgrade pip
!pip install pandas numpy matplotlib seaborn scikit-learn
!pip install boto3 awscli
!pip install transformers datasets

# 驗證安裝
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import sklearn
import boto3

print("所有套件安裝成功!")

可以參考的其他資料

常見問題整理

Q1:Notebook Instance啟動失敗
A:

檢查IAM角色權限
確認所選擇的實例類型在該區域可用
檢查VPC和subnet設定

Q2:無法存取S3資料
A:

檢查IAM角色是否有S3存取權限
確認S3儲存桶區域設定
檢查儲存桶策略

Q3:套件安裝失敗
A :

pip install package_name --python-version=<python 版本號>

以上搞出 sageMaker 環境以及相關設定


上一篇
Bedrock實作:對話式聊天機器人
系列文
從零開始的AWS AI之路:用Bedrock與SageMaker打造智慧應用的30天實戰5
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言