0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

機器學(xué)習(xí)構(gòu)建ML模型實踐

jf_pJlTbmA9 ? 來源:NVIDIA ? 作者:NVIDIA ? 2023-07-05 16:30 ? 次閱讀

本系列介紹 開發(fā)和部署 ( M L ) 模型。在這篇文章中,您 訓(xùn)練并保存 ML 模型,因此它可以作為 ML 系統(tǒng)的一部分部署。 第 1 部分給出了一個 ML 工作流概括 ,考慮了使用機器學(xué)習(xí)和數(shù)據(jù)科學(xué)實現(xiàn)商業(yè)價值所涉及的各個階段。第 3 部分介紹 如何部署 ML 模型到 Google 云平臺( GCP )。

培訓(xùn)一個可以作為機器學(xué)習(xí)系統(tǒng)一部分的模型需要了解您的數(shù)據(jù)、業(yè)務(wù)目標(biāo)以及許多其他技術(shù)和組織要求。

在本文中,您創(chuàng)建了一個 Python 腳本,當(dāng)執(zhí)行該腳本時,它訓(xùn)練一個 ML 模型,然后將其保存以供將來使用。

首先,我強調(diào)了為應(yīng)用程序訓(xùn)練 ML 模型時的一些重要考慮事項。

培訓(xùn)模型前的注意事項

從模型選擇到數(shù)據(jù)集的復(fù)雜性和大小,數(shù)據(jù)從業(yè)者必須戰(zhàn)略性地規(guī)劃資源和期望的需求。在培訓(xùn)模型之前要考慮的因素包括:

型號的選擇

解釋能力

模型超參數(shù)

硬件的選擇

數(shù)據(jù)大小

型號的選擇

您可以使用許多類 ML 模型來解決問題。您選擇的模型取決于您的用例和可能的約束。

解釋能力

如果要將您的模型部署為在受監(jiān)管行業(yè)(如金融或醫(yī)療保?。┲羞\行的系統(tǒng)的一部分,則您的模型可能是 explainable 。這意味著,對于模型做出的任何預(yù)測,都可以說明模型做出該決定的原因。

在這種情況下,您可能希望使用易于解釋的 linear regression 或 logistic regression 等模型。

模型超參數(shù)

模型具有可調(diào)超參數(shù)。了解這些超參數(shù)對應(yīng)于什么以及它們?nèi)绾斡绊懩P头浅V匾?/p>

根據(jù)超參數(shù)的選擇,模型的性能可能會發(fā)生很大變化。

硬件的選擇

大多數(shù)數(shù)據(jù)從業(yè)者都知道,模型訓(xùn)練通??梢栽?GPU 上加速。但即使在您進入模型訓(xùn)練階段之前, GPU 也可以極大地幫助您的數(shù)據(jù)科學(xué)工作流。

從預(yù)處理管道到數(shù)據(jù)探索和可視化,一切都可以加快。這有助于您更快地迭代并嘗試更昂貴的計算技術(shù)。

數(shù)據(jù)大小

當(dāng)處理比一個內(nèi)核或機器上的內(nèi)存更大的數(shù)據(jù)時,重要的是要考慮充分利用所有數(shù)據(jù)的技術(shù)。

也許使用 RAPID 等工具轉(zhuǎn)移到 GPU 來加速 pandas 和 scikit-learn 風(fēng)格的工作流是有意義的?;蛘吣憧赡芟胙芯恳粋€擴展框架,比如 Dask ,它可以擴展模型訓(xùn)練和數(shù)據(jù)處理,無論你是在 CPU 還是 GPU 上工作。

了解數(shù)據(jù)集

在本文中,您在一個經(jīng)典數(shù)據(jù)集上訓(xùn)練一個模型: UCI Machine Learning Repository 中的 Iris Dataset 。這個數(shù)據(jù)集包含 150 朵鳶尾花的花瓣長度和寬度以及萼片長度和寬度的記錄。每個虹膜屬于三種類型之一: setosa 、 virginica 或 versicolor 。

你使用這些數(shù)據(jù)來訓(xùn)練分類模型,目的是根據(jù)花瓣和萼片的尺寸來預(yù)測虹膜的類型。

CPU 培訓(xùn)

在部署 ML 模型之前,必須首先構(gòu)建一個 ML 模型。首先下載流行的 Iris Dataset 。本示例假設(shè)虹膜數(shù)據(jù)集已下載并保存為當(dāng)前工作目錄中的iris.data。

要訓(xùn)練邏輯回歸模型,請執(zhí)行以下步驟:

閱讀培訓(xùn)數(shù)據(jù)。

將訓(xùn)練數(shù)據(jù)拆分為要素和標(biāo)簽。

將數(shù)據(jù)分成訓(xùn)練和測試集( 75% 是訓(xùn)練數(shù)據(jù), 25% 是測試數(shù)據(jù))。

訓(xùn)練 Logistic Regression 模型。

堅持訓(xùn)練后的模型。

import joblib
import pandas as pd
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split

def run_training():
    """
    Train the model
    """
    # Read the training data
    dataset = pd.read_csv(
        filepath_or_buffer="iris.data",
        names=["sepal_length_cm", "sepal_width_cm", "petal_length_cm", "petal_width_cm", "class"]
        )

    # Split into labels and targets
    X = dataset.drop("class", axis=1).copy()
    y = dataset["class"].copy()

    # Create train and test set
    X_train, X_test, y_train, y_test = train_test_split(
        X, y, test_size=0.25, random_state=26)

    # Training the model
    model = LogisticRegression(random_state=26)
    model.fit(X_train, y_train)

    # Persist the trained model
    joblib.dump(model, "logistic_regression_v1.pkl")

if __name__ == "__main__":
    run_training()

train_test_split和LogisticRegression調(diào)用中的random_state參數(shù)有助于確保該腳本每次運行時都產(chǎn)生相同的結(jié)果。

運行腳本會生成一個保存在文件logistic_regression_v1.pkl中的模型,您可以使用該模型根據(jù)花瓣和萼片的尺寸對其他虹膜進行分類。

GPU 加速模型訓(xùn)練

在本例中,您使用的是一個小數(shù)據(jù)集,僅包含 150 行數(shù)據(jù)。由于數(shù)據(jù)的簡單性,該模型在 CPU 上幾秒鐘就能訓(xùn)練。

然而,在處理真實世界數(shù)據(jù)集時,模型訓(xùn)練成為瓶頸并不罕見。在這種情況下,通常可以通過使用 GPU 而不是 CPU 來加快工作流的模型訓(xùn)練階段。

例如, RAPIDS 提供了一套開源軟件工具,使數(shù)據(jù)科學(xué)家和工程師能夠在 GPU 上快速運行工作負載和數(shù)據(jù)科學(xué)管道。通過模仿常見數(shù)據(jù)科學(xué)庫(如pandas和scikit-learn)的 API ,您可以通過少量代碼更改來加快機器學(xué)習(xí)模型訓(xùn)練(以及探索性數(shù)據(jù)科學(xué))。

接下來是什么?

現(xiàn)在您已經(jīng)有了一個經(jīng)過培訓(xùn)的模型,可以考慮將其部署到生產(chǎn)環(huán)境中。在下一篇文章 Machine Learning in Practice: Deploy an ML Model on Google Cloud Platform 中,您將學(xué)習(xí)在 GCP 上部署模型的三種方法。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • NVIDIA
    +關(guān)注

    關(guān)注

    14

    文章

    4814

    瀏覽量

    102631
  • AI
    AI
    +關(guān)注

    關(guān)注

    87

    文章

    29359

    瀏覽量

    267643
  • 機器學(xué)習(xí)
    +關(guān)注

    關(guān)注

    66

    文章

    8320

    瀏覽量

    132165
收藏 人收藏

    評論

    相關(guān)推薦

    如何使用TensorFlow構(gòu)建機器學(xué)習(xí)模型

    在這篇文章中,我將逐步講解如何使用 TensorFlow 創(chuàng)建一個簡單的機器學(xué)習(xí)模型
    的頭像 發(fā)表于 01-08 09:25 ?868次閱讀
    如何使用TensorFlow<b class='flag-5'>構(gòu)建</b><b class='flag-5'>機器</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>模型</b>

    機器學(xué)習(xí)實踐指南——案例應(yīng)用解析

    機器學(xué)習(xí)實踐指南——案例應(yīng)用解析
    發(fā)表于 04-13 16:40

    eIQ軟件對ML模型有何作用

    隨著產(chǎn)品越來越復(fù)雜,具有了更強大的處理能力和更高的速度,使得機器學(xué)習(xí)ML)技術(shù)逐漸擴展到邊緣應(yīng)用。借助eIQ軟件,現(xiàn)在可以非常輕松地將新的ML模型
    發(fā)表于 12-20 07:01

    什么是機器學(xué)習(xí)? 機器學(xué)習(xí)基礎(chǔ)入門

    本文旨在為硬件和嵌入式工程師提供機器學(xué)習(xí)(ML)的背景,它是什么,它是如何工作的,它為什么重要,以及 TinyML 是如何適應(yīng)的機器學(xué)習(xí)是一
    發(fā)表于 06-21 11:06

    部署基于嵌入的機器學(xué)習(xí)模型

    還需要處理模型的更新。模型更新的速度甚至可以非常高,因為模型需要定期地根據(jù)最新的數(shù)據(jù)進行再訓(xùn)練?! ”疚膶⒚枋鲆环N更復(fù)雜的機器學(xué)習(xí)系統(tǒng)的一般
    發(fā)表于 11-02 15:09

    機器學(xué)習(xí)43條軍規(guī):關(guān)于機器學(xué)習(xí)ML)工程的最佳實踐文檔

    簡單的啟發(fā)式算法有利于推出產(chǎn)品。但復(fù)雜的啟發(fā)式算法難以維護。當(dāng)您獲得足夠的數(shù)據(jù)并基本確定自己要嘗試實現(xiàn)的目標(biāo)后,請考慮使用ML技術(shù)。與大多數(shù)軟件工程任務(wù)一樣,您需要不斷更新方法(無論是啟發(fā)式算法還是ML模型),而且您會發(fā)現(xiàn)
    的頭像 發(fā)表于 05-23 14:23 ?3811次閱讀

    ML-Bench 1.0構(gòu)建和分析機器學(xué)習(xí)基準(zhǔn)

    本講座描述了用于構(gòu)建機器學(xué)習(xí)基準(zhǔn)的分析方法。
    的頭像 發(fā)表于 11-13 06:32 ?2378次閱讀

    機器學(xué)習(xí)的知識產(chǎn)權(quán)問題

    構(gòu)建用于維護的機器學(xué)習(xí)ML模型,必須收集并標(biāo)記正確的訓(xùn)練集,選擇正確的架構(gòu)和訓(xùn)練參數(shù)以實現(xiàn)算法精度和速度的優(yōu)化平衡,并投入計算時間來訓(xùn)
    發(fā)表于 04-08 11:19 ?1471次閱讀

    如何才能正確的構(gòu)建機器學(xué)習(xí)模型

    組織構(gòu)建一個可行的、可靠的、敏捷的機器學(xué)習(xí)模型來簡化操作和支持其業(yè)務(wù)計劃需要耐心、準(zhǔn)備以及毅力。各種組織都在為各行業(yè)中的眾多應(yīng)用實施人工智能項目。這些應(yīng)用包括預(yù)測分析、模式識別系統(tǒng)、自
    發(fā)表于 01-11 19:25 ?14次下載

    探究機器學(xué)習(xí) (ML) 模型的性能

    機器學(xué)習(xí) (ML) 模型的性能既取決于學(xué)習(xí)算法,也取決于用于訓(xùn)練和評估的數(shù)據(jù)。算法的作用已經(jīng)得到充分研究,也是眾多挑戰(zhàn)(如 SQuAD、GL
    的頭像 發(fā)表于 04-13 14:37 ?2563次閱讀

    詳談機器學(xué)習(xí)模型算法的質(zhì)量保障方案

    近年來,機器學(xué)習(xí)模型算法在越來越多的工業(yè)實踐中落地。在滴滴,大量線上策略由常規(guī)算法遷移到機器學(xué)習(xí)
    發(fā)表于 05-05 17:08 ?2243次閱讀
    詳談<b class='flag-5'>機器</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>模型</b>算法的質(zhì)量保障方案

    六個構(gòu)建機器學(xué)習(xí)模型需避免的錯誤

    近年來,機器學(xué)習(xí)在學(xué)術(shù)研究領(lǐng)域和實際應(yīng)用領(lǐng)域得到越來越多的關(guān)注。但構(gòu)建機器學(xué)習(xí)模型不是一件簡單的
    發(fā)表于 05-05 16:39 ?1391次閱讀

    FreeWheel基于機器學(xué)習(xí)的業(yè)務(wù)異常檢測實踐

    本文介紹了 FreeWheel 基于機器學(xué)習(xí)的業(yè)務(wù)異常檢測實踐,提煉了從零開始構(gòu)建業(yè)務(wù)異常檢測系統(tǒng)面臨的問題和解決方案,文章介紹了常用的異常檢測算法,比較了不同算法
    的頭像 發(fā)表于 10-28 14:35 ?843次閱讀

    如何部署ML模型到Google云平臺

    實踐中的機器學(xué)習(xí):在 Google 云平臺上部署 ML 模型
    的頭像 發(fā)表于 07-05 16:30 ?609次閱讀
    如何部署<b class='flag-5'>ML</b><b class='flag-5'>模型</b>到Google云平臺

    開發(fā)和部署ML模型介紹

    實踐中的機器學(xué)習(xí)ML 工作流
    的頭像 發(fā)表于 07-05 16:30 ?732次閱讀
    開發(fā)和部署<b class='flag-5'>ML</b><b class='flag-5'>模型</b>介紹