關(guān)注TechLead,分享AI全維度知識(shí)。作者擁有10+年互聯(lián)網(wǎng)服務(wù)架構(gòu)、AI產(chǎn)品研發(fā)經(jīng)驗(yàn)、團(tuán)隊(duì)管理經(jīng)驗(yàn),同濟(jì)本復(fù)旦碩,復(fù)旦機(jī)器人智能實(shí)驗(yàn)室成員,阿里云認(rèn)證的資深架構(gòu)師,項(xiàng)目管理專業(yè)人士,上億營(yíng)收AI產(chǎn)品研發(fā)負(fù)責(zé)人。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-719171.html
本文內(nèi)容
了解如何在 Azure 機(jī)器學(xué)習(xí)云工作站上使用筆記本開發(fā)訓(xùn)練腳本。 本教程涵蓋入門所需的基礎(chǔ)知識(shí):
- 設(shè)置和配置云工作站。 云工作站由 Azure 機(jī)器學(xué)習(xí)計(jì)算實(shí)例提供支持,該實(shí)例預(yù)配置了環(huán)境以支持各種模型開發(fā)需求。
- 使用基于云的開發(fā)環(huán)境。
- 使用 MLflow 跟蹤模型指標(biāo),所有都是在筆記本中完成的。
先決條件
若要使用 Azure 機(jī)器學(xué)習(xí),你首先需要一個(gè)工作區(qū)。 如果沒有工作區(qū),請(qǐng)完成“創(chuàng)建開始使用所需的資源”以創(chuàng)建工作區(qū)并詳細(xì)了解如何使用它。
從“筆記本”開始
工作區(qū)中的“筆記本”部分是開始了解 Azure 機(jī)器學(xué)習(xí)及其功能的好地方。 在這里,可以連接到計(jì)算資源、使用終端,以及編輯和運(yùn)行 Jupyter Notebook 和腳本。
- 登錄到 Azure 機(jī)器學(xué)習(xí)工作室。
- 選擇你的工作區(qū)(如果它尚未打開)。
- 在左側(cè)導(dǎo)航中,選擇“筆記本”。
- 如果沒有計(jì)算實(shí)例,屏幕中間會(huì)顯示“創(chuàng)建計(jì)算”。 選擇“創(chuàng)建計(jì)算”并填寫表單。 可以使用所有默認(rèn)值。 (如果已有計(jì)算實(shí)例,則會(huì)在該位置看到“終端”。本教程稍后會(huì)使用“終端”。)
設(shè)置用于原型制作的新環(huán)境(可選)
為使腳本運(yùn)行,需要在配置了代碼所需的依賴項(xiàng)和庫(kù)的環(huán)境中工作。 本部分可幫助你創(chuàng)建適合代碼的環(huán)境。 若要?jiǎng)?chuàng)建筆記本連接到的新 Jupyter 內(nèi)核,請(qǐng)使用定義依賴項(xiàng)的 YAML 文件。
- 上傳文件
上傳的文件存儲(chǔ)在 Azure 文件共享中,這些文件將裝載到每個(gè)計(jì)算實(shí)例并在工作區(qū)中共享。
1. 使用右上角的 下載原始文件 按鈕,將此 conda 環(huán)境文件 [workstation_env.yml](github.com) 下載到計(jì)算機(jī)。
1. 選擇“添加文件”,然后選擇“上傳文件”,將其上傳到工作區(qū)。
2. 選擇“瀏覽并選擇文件”。
3. 選擇下載的 workstation_env.yml 文件。
4. 選擇“上傳”。
你將在“文件”選項(xiàng)卡的用戶名文件夾下看到 workstation_env.yml 文件。請(qǐng)選擇此文件以預(yù)覽它,并查看它指定的依賴項(xiàng)。 你將看到如下所示的內(nèi)容:
name: workstation_env
dependencies:
- python=3.8
- pip=21.2.4
- scikit-learn=0.24.2
- scipy=1.7.1
- pandas>=1.1,<1.2
- pip:
- mlflow==2.4.1
- azureml-mlflow==1.51.0
- psutil>=5.8,<5.9
- ipykernel~=6.0
- matplotlib
- 創(chuàng)建內(nèi)核
現(xiàn)在,使用 Azure 機(jī)器學(xué)習(xí)終端基于 workstation_env.yml 文件創(chuàng)建新的 Jupyter 內(nèi)核。
1. 選擇“終端”以打開終端窗口。 還可以從左側(cè)命令欄打開終端:
2. 如果計(jì)算實(shí)例已停止,請(qǐng)選擇“啟動(dòng)計(jì)算”,并等待它運(yùn)行。
3. 計(jì)算運(yùn)行后,終端中會(huì)顯示一條歡迎消息,可以開始鍵入命令。
4. 查看當(dāng)前的 conda 環(huán)境。 活動(dòng)環(huán)境標(biāo)有 *。
conda env list
5. 如果為本教程創(chuàng)建了子文件夾,請(qǐng)立即運(yùn)行 `cd` 轉(zhuǎn)到該文件夾。
6. 根據(jù)提供的 conda 文件創(chuàng)建環(huán)境。 構(gòu)建此環(huán)境需要幾分鐘時(shí)間。
conda env create -f workstation_env.yml
7. 激活新環(huán)境。
conda activate workstation_env
8. 驗(yàn)證正確的環(huán)境是否處于活動(dòng)狀態(tài),再次查找標(biāo)有 * 的環(huán)境。
conda env list
9. 基于活動(dòng)環(huán)境創(chuàng)建新的 Jupyter 內(nèi)核。
python -m ipykernel install --user --name workstation_env --display-name "Tutorial Workstation Env"
10. 關(guān)閉終端窗口。
創(chuàng)建筆記本
-
選擇“添加文件”,然后選擇“創(chuàng)建新文件”。
-
將新筆記本命名為 develop-tutorial.ipynb(或輸入首選名稱)。
-
如果計(jì)算實(shí)例已停止,請(qǐng)選擇“啟動(dòng)計(jì)算”,并等待它運(yùn)行。
-
你將在右上角看到筆記本已連接到默認(rèn)內(nèi)核。 如果創(chuàng)建了內(nèi)核,請(qǐng)切換到使用 Tutorial Workstation Env 內(nèi)核。
開發(fā)訓(xùn)練腳本
在本部分中,你將使用 UCI 數(shù)據(jù)集中準(zhǔn)備好的測(cè)試和訓(xùn)練數(shù)據(jù)集開發(fā)一個(gè) Python 訓(xùn)練腳本,用于預(yù)測(cè)信用卡默認(rèn)付款。
此代碼使用 sklearn
進(jìn)行訓(xùn)練,使用 MLflow 來(lái)記錄指標(biāo)。
-
從可導(dǎo)入將在訓(xùn)練腳本中使用的包和庫(kù)的代碼開始。
import os import argparse import pandas as pd import mlflow import mlflow.sklearn from sklearn.ensemble import GradientBoostingClassifier from sklearn.metrics import classification_report from sklearn.model_selection import train_test_split
-
接下來(lái),加載并處理此試驗(yàn)的數(shù)據(jù)。 在本教程中,將從 Internet 上的一個(gè)文件讀取數(shù)據(jù)。
# load the data credit_df = pd.read_csv( "https://azuremlexamples.blob.core.windows.net/datasets/credit_card/default_of_credit_card_clients.csv", header=1, index_col=0, ) train_df, test_df = train_test_split( credit_df, test_size=0.25, )
-
準(zhǔn)備好數(shù)據(jù)進(jìn)行訓(xùn)練:
# Extracting the label column y_train = train_df.pop("default payment next month") # convert the dataframe values to array X_train = train_df.values # Extracting the label column y_test = test_df.pop("default payment next month") # convert the dataframe values to array X_test = test_df.values
-
添加代碼以使用
MLflow
開始自動(dòng)記錄,以便可以跟蹤指標(biāo)和結(jié)果。MLflow
具有模型開發(fā)的迭代性質(zhì),可幫助你記錄模型參數(shù)和結(jié)果。 請(qǐng)回顧這些運(yùn)行,比較并了解模型的性能。 這些日志還為你準(zhǔn)備好從 Azure 機(jī)器學(xué)習(xí)中工作流的開發(fā)階段轉(zhuǎn)到訓(xùn)練階段提供上下文。# set name for logging mlflow.set_experiment("Develop on cloud tutorial") # enable autologging with MLflow mlflow.sklearn.autolog()
-
訓(xùn)練模型。
# Train Gradient Boosting Classifier print(f"Training with data of shape {X_train.shape}") mlflow.start_run() clf = GradientBoostingClassifier(n_estimators=100, learning_rate=0.1) clf.fit(X_train, y_train) y_pred = clf.predict(X_test) print(classification_report(y_test, y_pred)) # Stop logging for this model mlflow.end_run()
注意
可以忽略 mlflow 警告。 你仍將獲得需要跟蹤的所有結(jié)果。
迭代
現(xiàn)在你已經(jīng)有了模型結(jié)果,可能需要更改某些內(nèi)容,然后重試。 例如,請(qǐng)嘗試其他分類器技術(shù):
# Train AdaBoost Classifier
from sklearn.ensemble import AdaBoostClassifier
print(f"Training with data of shape {X_train.shape}")
mlflow.start_run()
ada = AdaBoostClassifier()
ada.fit(X_train, y_train)
y_pred = ada.predict(X_test)
print(classification_report(y_test, y_pred))
# Stop logging for this model
mlflow.end_run()
注意
可以忽略 mlflow 警告。 你仍將獲得需要跟蹤的所有結(jié)果。
檢查結(jié)果
現(xiàn)在,你已嘗試兩個(gè)不同的模型,請(qǐng)使用 MLflow
跟蹤的結(jié)果來(lái)確定哪個(gè)模型更好。 可以引用準(zhǔn)確性等指標(biāo),或者引用對(duì)方案最重要的其他指標(biāo)。 可以通過(guò)查看 MLflow
創(chuàng)建的作業(yè)來(lái)更詳細(xì)地了解這些結(jié)果。
-
在左側(cè)導(dǎo)航欄中,選擇“作業(yè)”。
-
選擇“在云上開發(fā)教程”的鏈接。
-
顯示了兩個(gè)不同的作業(yè),每個(gè)已嘗試的模型對(duì)應(yīng)一個(gè)。 這些名稱是自動(dòng)生成的。 將鼠標(biāo)懸停在某個(gè)名稱上時(shí),如果要重命名該名稱,請(qǐng)使用名稱旁邊的鉛筆工具。
-
選擇第一個(gè)作業(yè)的鏈接。 名稱顯示在頂部。 還可以在此處使用鉛筆工具重命名它。
-
該頁(yè)顯示作業(yè)的詳細(xì)信息,例如屬性、輸出、標(biāo)記和參數(shù)。 在“標(biāo)記”下,你將看到 estimator_name,其描述模型的類型。
-
選擇“指標(biāo)”選項(xiàng)卡以查看
MLflow
記錄的指標(biāo)。 (預(yù)期結(jié)果會(huì)有所不同,因?yàn)橛?xùn)練集不同。) -
選擇“圖像”選項(xiàng)卡以查看
MLflow
生成的圖像。 -
返回并查看其他模型的指標(biāo)和圖像。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-719171.html
關(guān)注TechLead,分享AI全維度知識(shí)。作者擁有10+年互聯(lián)網(wǎng)服務(wù)架構(gòu)、AI產(chǎn)品研發(fā)經(jīng)驗(yàn)、團(tuán)隊(duì)管理經(jīng)驗(yàn),同濟(jì)本復(fù)旦碩,復(fù)旦機(jī)器人智能實(shí)驗(yàn)室成員,阿里云認(rèn)證的資深架構(gòu)師,項(xiàng)目管理專業(yè)人士,上億營(yíng)收AI產(chǎn)品研發(fā)負(fù)責(zé)人。
到了這里,關(guān)于Azure云工作站上做Machine Learning模型開發(fā) - 全流程演示的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!