1. 程式人生 > >Amazon SageMaker – 加快機器學習程序

Amazon SageMaker – 加快機器學習程序

機器學習是許多初創公司和企業的關鍵技術。儘管經歷了數十年的投入和改進,開發、訓練和維護機器學習模型的過程仍然繁瑣且欠缺通用性。將機器學習技術整合到應用程式中的過程往往需要一個專家團隊進行為期數月的調整和修補,而且設定還不一致。企業和開發人員需要一個端到端、開發到生產的機器學習管道。

Amazon SageMaker 簡介

Amazon SageMaker 是一種完全託管的端到端機器學習服務,資料科研人員、開發人員和機器學習專家可以快速、大規模地構建、訓練和託管機器學習模型。這極大地推進了您所有的機器學習工作,讓您能夠將機器學習技術迅速融入生產應用程式。

Amazon SageMaker 包含三個主要元件:

  • 編寫:零設定託管式 Jupyter 筆記本 IDE,可進行資料探索、清理和預處理。您可以在一般例項型別或 GPU 驅動例項上執行上述功能。
  • 模型訓練:分散式模型構建、訓練和驗證服務。您可以使用內建的通用監督式和非監督式學習演算法和框架,也可以藉助 Docker 容器建立自己的訓練。訓練可以擴充套件到數十個例項以支援更快的模型構建。從 S3 讀取訓練資料,並將模型構件存放到 S3。模型構件是資料相關的模型引數,而不是允許您從模型進行推理的程式碼。這種問題隔離策略簡化了將經過 Amazon SageMaker 培訓的模型部署到物聯網裝置等其他平臺的過程。
  • 模型託管:一種模型託管服務,可通過 HTTPS 終端節點呼叫模型獲取實時推理。這些終端節點能夠擴充套件以支援流量,允許您同時對多個模型進行 A/B 測試。同樣,您可以使用內建軟體開發工具包構建這些終端節點,也可以利用 Docker 映象提供自定義配置。

這些元件中的每一個都可以獨立使用,這使得使用 Amazon SageMaker 填補現有管道中的空白變得極其簡單。也就是說,在端到端管道中使用此服務時,您可以獲得一些非常強大的功能。

使用 SageMaker

我打算構建、訓練和部署一個基於 Apache MXNet

的影象分類器。我將使用 Gluon 語言、CIFAR-10 資料集和 ResNet V2 模型架構。

使用 Jupyter 筆記本編寫


建立筆記本例項時,它會啟動一個 ML 計算例項,其中包含深度學習應用中常見的 Anaconda 包和庫、一個 5 GB ML 儲存卷和幾個演示各種演算法的示例筆記本。我可以選擇配置 VPC 支援來在我的 VPC 中建立一個 ENI,以方便、安全地訪問我的資源。

待例項完成預配置後,我就可以開啟筆記本開始編寫程式碼了!

模型訓練

對於任何型別的 Amazon SageMaker 常見框架訓練,您都可以實現類似下面的簡單訓練介面。為簡潔起見,這裡省略了實際的模型訓練程式碼:

def train(
    channel_input_dirs, hyperparameters, output_data_dir,
    model_dir, num_gpus, hosts, current_host):
    pass

def save(model):
    pass

我打算在 Amazon SageMaker 基礎設施上的 4 個 ml.p2.xlarge 例項上建立一個分散式訓練作業。我已經下載了本地所需的全部資料。

import sagemaker
from sagemaker.mxnet import MXNet
m = MXNet("cifar10.py", role=role, 
          train_instance_count=4, train_instance_type="ml.p2.xlarge",
          hyperparameters={'batch_size': 128, 'epochs': 50, 
                           'learning_rate': 0.1, 'momentum': 0.9})

現在,我們構建好了模型訓練作業,可以通過下面的呼叫為其提供資料: m.fit("s3://randall-likes-sagemaker/data/gluon-cifar10")

導航到作業控制檯,可以看到系統正在執行此作業!

託管和實時推理

現在,我的模型已完成訓練,可以開始生成預測了!我使用跟以前相同的程式碼建立和啟動一個終端節點。


predictor = m.deploy(initial_instance_count=1, instance_type='ml.c4.xlarge')

呼叫終端節點的操作十分簡單,直接執行: predictor.predict(img_input)!

這就是一個程式碼不足 100 行的端到端機器學習管道。

下面我們再演練一個示例,瞭解一下如何只使用 Amazon SageMaker 的模型託管元件。

使用自定義 Docker 容器

Amazon SageMaker 為 Docker 容器定義了一個簡單的規範,讓您能夠輕鬆編寫自定義訓練演算法或自定義推理容器。

我有一個基於此處所述架構的現有模型,我打算託管此模型進行實時推理。

我建立了一個簡單的 Dockerfile 和 flask 應用程式來提供推理。

由於載入模型和生成預測的程式碼因實際應用而異,此處省略了這些程式碼。從本質上說,我構建了一個方法來從輸入 URL 下載影象,然後將此影象資料傳遞給 MXNet 模型進行預測。

from flask import Flask, request, jsonify
import predict
app = Flask(__name__)

@app.route('/ping')
def ping():
    return ("", 200)

@app.route('/invocations', methods=["POST"])
def invoke():
    data = request.get_json(force=True)
    return jsonify(predict.download_and_predict(data['url']))

if __name__ == '__main__':
    app.run(port=8080)
FROM mxnet/python:latest
WORKDIR /app
COPY *.py /app/
COPY models /app/models
RUN pip install -U numpy flask scikit-image
ENTRYPOINT ["python", "app.py"]
EXPOSE 8080

我將這個影象推送到 ECR,然後導航到 Amazon SageMaker 中的模型控制檯來建立一個新模型。

建立新模型後,我還預配置了一個終端節點。

現在我可以從 AWS Lambda 或任何其他應用程式呼叫此終端節點了!我設定了一個 Twitter 賬戶來展示這個模型。您可以通過 Twitter 向 @WhereML 推送一張圖片,看看它能否猜出位置!


import boto3
import json
sagemaker = boto3.client('sagemaker-runtime')
data = {'url': 'https://pbs.twimg.com/media/DPwe4kMUMAAWCd_.jpg'}
result = sagemaker.invoke_endpoint(
    EndpointName='predict',
	Body=json.dumps(data)
)

定價

作為 AWS 免費套餐的一部分,您可以免費開始使用 Amazon SageMaker。在前兩個月,您每月可以免費使用:250 小時的 t2.medium 筆記本用量、50 小時的 m4.xlarge 用量和 125 小時的 m4.xlarge 用量。超出免費套餐部分的定價因地區而異,但基於以下要素計費:例項用量 (秒)、儲存 (GB) 和傳入/傳出服務的資料量 (GB)。

Jeff 告訴我,在今年的 re:Invent 大會舉辦之前,不要撰寫“太過重磅”的文章。顯然,我沒把持住。在 re:Invent 2017 釋出的眾多美妙產品中,Amazon SageMaker 是我最喜歡的服務。我已經迫不及待想要知道我們的客戶能夠利用這個令人興奮的工具套件完成哪些“壯舉”了。

相關推薦

Amazon SageMaker加快機器學習程序

機器學習是許多初創公司和企業的關鍵技術。儘管經歷了數十年的投入和改進,開發、訓練和維護機器學習模型的過程仍然繁瑣且欠缺通用性。將機器學習技術整合到應用程式中的過程往往需要一個專家團隊進行為期數月的調整和修補,而且設定還不一致。企業和開發人員需要一個端到端、開發到生產的機器學習管道。

Amazon Machine Learning_機器學習服務

Amazon Machine Learning 提供視覺化工具和嚮導來指導您完成機器學習 (ML) 模型的建立過程,您不必學習複雜的 ML 演算法和技術。當您的模型準備好以後,Amazon Machine Learning 只要使用簡單的 API 即可讓您的應用程式輕鬆獲得預測能力,而無需實

Amazon Machine Learning 機器學習_機器學習服務

20 多年來,Amazon 在人工智慧領域投入了大量資金。機器學習 (ML) 演算法驅動了我們的許多內部系統。這也是我們客戶所體驗的功能的核心 – 從我們運營中心的路徑優化和 Amazon.com 的推薦引擎到 Alexa 提供技術支援的 Echo、我們的無人駕駛飛機 Prime Air 以

Amazon SageMaker 機器學習_機器學習模型構建訓練部署

Amazon SageMaker 是一個完全託管的平臺,可以幫助開發人員和資料科學家快速而輕鬆地構建、訓練和部署任何規模的機器學習模型。Amazon SageMaker 消除了通常會阻礙開發人員使用機器學習的所有障礙。 大多數開發人員通常覺得機器學習要比它本身難得多,因為構建

機器學習實戰》中的程序清單2-1 k近鄰算法classify0都做了什麽

列表 關鍵字 難解 items 位置 class 做了 ict top k def start(): group,labels = createDataSet() return classify0([3,3], group, l

使用Java程序消費SAP Leonardo的機器學習API

在哪裏 替換 圖1 pom.xml gson 選擇 完成 判斷 ear 以sap leonardo作為關鍵字在微信上搜索,能搜到不少文章。但是我瀏覽了一下,好像沒有發現有從具體編程角度上來介紹的。所以我就貢獻一篇。 需求 開發一個Java程序,用戶可以指定一張圖片,該Ja

機器學習-支持向量機算法實現與實例程序

training mage 線性 opts 線性可分 tps gist 填充 rain 一. SMO算法基礎 支持向量就是離分隔超平面最近的那些點。分隔超平面是將數據集分開來的決策邊界。 支持向量機將向量映射到一個更高維的空間裏,在這個空間裏建立有一個最大間隔超

利用機器學習實現微信小程序-加減大師自動答題

ray ear scree 使用 ims mode sklearn 小結 -i 之前有看到微信小程序《跳一跳》別人用python實現自動運行,後來看到別人用hash碼實現《加減大師》的自動答題領取娃娃,最近一直在研究深度學習,為啥不用機器學習實現呢?不就是一個分類問題嗎 如

機器學習中幾大距離定義及程序實現

def numpy 返回 字符串 坐標 算法 info 定義 idea 一、歐氏距離(Euclidean Distance) 1、定義:兩點間的直線距離 2、公式: (1)、二維平面a(x1,y1),b(x2,y2)的歐式距離

AWS 神器為資料科學家輕鬆打造機器學習全流程 –– EMR Spark + SageMaker 黃金搭檔

工欲善其事,必先利其器。在機器學習的世界裡,要想成為一名出色的資料科學家,必須要善於使用機器學習的工具。 資料科學家經常使用 Apache Spark 來做資料的預處理,Apache Spark 提供的 MLlib 庫不但包含很多常用的機器學習演算法(如 K-Means,分類

Amazon Macie 雲安全-基於機器學習的資料安全服務

Amazon Macie 是一種安全服務,可通過機器學習自動發現、分類和保護 AWS 中的敏感資料。Amazon Macie 可識別個人身份資訊 (PII) 或智慧財產權等敏感資料,併為您提供控制面板和警報,使您可以看到這些資料是如何被訪問或移動的。這一完全託管的服務可持續監控資料訪問活

Amazon Deep Learning AMI_機器學習服務

AWS Deep Learning AMI 可以為機器學習從業人員和研究人員提供基礎設施和各種工具,從而加快在雲中進行任意規模的深度學習的速度。您可以快速啟動預先安裝了常見深度學習框架 (如 Apache MXNet 和 Gluon、TensorFlow、Microsoft Cognitiv

Amazon ML Solutions Lab_機器學習解決方案計劃

Amazon ML Solutions Lab 計劃可幫助您加速產品和流程中的機器學習使用。 Amazon ML Solutions Lab 將您的團隊與 Amazon 機器學習專家配對,以準備資料、構建和訓練模型,並將模型投入生產。它將動手教育研討

機器學習】【線性迴歸】梯度下降的三種方式(BGD+SGD+MSGD)以及三種調優方法(加快收斂速度)

1.梯度下降演算法梯度下降演算法的核心思路和公式推導,可以詳見前面的文章:梯度下降演算法的核心思路和公式推導如果代價函式是凸函式,用梯度下降演算法一定可以求得最優解。2.梯度下降的三種方式在ML中,梯度下降有三種方式:1)批量梯度下降(Batch Gradient  Desc

Amazon Project Zero計劃啟動!用機器學習技術辨別仿冒商品

ria ges roc 消費者 oval 完成 image 刪除 type Amazon宣布啟動Project Zero計劃,協助品牌業者利用Amazon的機器學習技術,加上自己對自家商品的知識,來找出仿冒商品,該計劃包含自動化保護、自助移除仿冒商品(Self-servic

《深入淺出Python機器學習(段小手)》PDF代碼+《推薦系統與深度學習》PDF及代碼+《自然語言處理理論與實戰(唐聃)》PDF代碼源程序

數學分析 tar 認知 愛好者 代碼 pdf ima 收獲 c++ prime 《深入淺出Python機器學習》PDF,280頁,帶書簽目錄,文字可以復制;配套源代碼。 作者:段小手 下載: https://pan.baidu.com/s/1XUs-94n0qKR1F9

機器學習第三練:為慈善機構尋找捐助者

alt earch .get 變量 照相 標簽 log 比較 random 這個任務同樣是在Jupyter Notebook中完成, 項目目的是通過前面的所有特征列,當然去掉序號列,然後預測最後一列,收入‘income‘,究竟是大於50K,還是小於等於50K. 第一

機器學習筆記(Washington University)- Regression Specialization-week five

ril ... des stl it is idg evaluate date lec 1. Feature selection Sometimes, we need to decrease the number of features Efficiency: With f

機器學習算法-python實現】PCA 主成分分析、降維

pre gre text iss 主成分分析 int 找到 nts 導入 1.背景 PCA(Principal Component Analysis),PAC的作用主要是減少數據集的維度,然後挑選出基本的特征。 PCA的主要思想是移動坐標軸,找

機器學習筆記(Washington University)- Regression Specialization-week six

lar fec space cti different only similar ant var 1. Fit locally If the true model changes much, we want to fit our function locally to di