今天我們要開始搞 Sagemaker 的部分, 說到 Machine Learning (ML),
的部分,從 0-1 的過程,我們前置工作要做非常多事情,首先我們要準備訓練資料
並且要拿這些資料進行分類,拿分類的資料給模型訓練,模型訓練完後,還要微調,調整等
這以上涉及到幾個面向的事情
資料準備與探索
:整合多種資料源,提供資料標註和預處理工具模型開發
:多種ML框架和演算法模型訓練
:可擴展的訓練基礎設施,支援分散式訓練模型部署
:一鍵部署到生產環境,支援A/B測試和自動擴展也因為這樣,所以我們要建構一個龐大的系統去做這件事情,
仿間所聽到關於 deepLearning 或是 Machine Learning 相關的 像是 pytorch
或是 Tenserflow
等
Amazon 有些服務,說起來有些簡單有些複雜,像是 AWS EC2 你可以說他就是虛擬機 (VM)
你可以說 S3 就是 Object storage ,很直觀簡單易懂,但 sagemaker 你只會說這是一個 ai 應用的東西,
但是什麼,要一次說明不容易。
sageMaker 基本上你可以當作一個大平台,當涵蓋了以上我說的,資料探索,開發,訓練,到部署的大平台
可以參考 這個,看外國人怎說
可以涵蓋到 AI 應用相關的大平台
所以這樣講聽起來不簡單,對~~不剪單
sageMaker studio
sageMaker notebook instance
SageMaker Training Jobs
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": "*"
}
]
}
開啟SageMaker控制台
點擊「Notebook instances」→「Create notebook instance」
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}")
# 安裝額外套件
!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 環境以及相關設定