国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

[原]數(shù)據(jù)科學(xué)教程: 如何使用 mlflow 管理數(shù)據(jù)科學(xué)工作流

MadPecker / 1950人閱讀

摘要:背景近年來,人工智能與數(shù)據(jù)科學(xué)領(lǐng)域發(fā)展迅速,傳統(tǒng)項目在演化中也越來越復(fù)雜了,如何管理大量的機器學(xué)習(xí)項目成為一個難題。在真正的機器學(xué)習(xí)項目中,我們需要在模型之外花費大量的時間。

背景

近年來,人工智能與數(shù)據(jù)科學(xué)領(lǐng)域發(fā)展迅速,傳統(tǒng)項目在演化中也越來越復(fù)雜了,如何管理大量的機器學(xué)習(xí)項目成為一個難題。

在真正的機器學(xué)習(xí)項目中,我們需要在模型之外花費大量的時間。比如:

跟蹤實驗效果

機器學(xué)習(xí)算法有可配置的超參通常都是十幾個到幾十個不等,如何跟蹤這些參數(shù)、代碼以及數(shù)據(jù)在每個實驗中的表現(xiàn)目前業(yè)界也沒有一個統(tǒng)一的解決方案,更多都是根據(jù)某個實驗進行多帶帶的開發(fā)。

部署ML模型

部署ML模型通常都需要將模型文件和線上環(huán)境Service/Spark Job/SDK(Java/Scala/C++)對接,而大部分?jǐn)?shù)據(jù)科學(xué)家通常都不太熟悉這些工程開發(fā)語言。因此,將模型遷移到不同平臺是具有挑戰(zhàn)性的,它意味著數(shù)據(jù)科學(xué)家還需要考慮線上部署的性能問題,目前業(yè)界也缺少比較通用的模型部署工具。

目前,在大廠內(nèi)部已經(jīng)孵化出這樣的一些機器學(xué)習(xí)平臺,比如 Uber 的 Michelangelo、Google 的 TFX,但是他們都與大廠的基礎(chǔ)架構(gòu)深度耦合,所以也沒有在開源社區(qū)流行起來。

在這樣的背景下, mlflow 框架橫空出世,它的出現(xiàn)旨在將效果追蹤、模型調(diào)參、模型訓(xùn)練、模型代碼、模型發(fā)布等模塊集中一處,提升數(shù)據(jù)科學(xué)工作流的管理效率。

簡介

mlflow 將數(shù)據(jù)科學(xué)工作流分為3個部分:

模型追蹤:支持記錄和查詢實驗周圍的數(shù)據(jù),如評估指標(biāo)和參數(shù)

項目管理:如何將模型封裝在 pipeline 中,以便與可重復(fù)執(zhí)行

模型發(fā)布:管理模型部署并提供 RestFul API

模型追蹤:

mlflow tracking 提供了一個入口,用于將機器學(xué)習(xí)的參數(shù)、代碼版本、代碼路徑、評估指標(biāo)等統(tǒng)一管理,輸出到系統(tǒng)中可視化管理。通常我們模型會迭代很多次,這樣每次輸出的結(jié)果就可以集中對比效果的好壞。

比如:

library(mlflow)

# 記錄超參
my_int <- mlflow_param("my_int", 1, "integer")
my_num <- mlflow_param("my_num", 1.0, "numeric")

# 記錄指標(biāo)
mlflow_log_metric("accuracy", 0.45)

# 記錄輸出文件(模型、feature importance圖)等
mlflow_log_atrifact("roc.png")
mlflow_log_artifact("model.pkl")
項目管理

mlflow project 提供了打包可重用數(shù)據(jù)科學(xué)代碼的標(biāo)準(zhǔn)格式,項目通過本地文件/git管理代碼,通過 yaml 文件來描述。

name: FinanceR Project
conda_env: conda.yaml
entry_points:
main:
parameters:
data_file: path
regularization: {type: double, default: 0.1}
command: "python train.py -r {regularization} {data_file}"
validate:
parameters:
data_file: path
command: "python validate.py {data_file}"

codna 將提供統(tǒng)一的虛擬環(huán)境服務(wù),通過 mlflow run 可以任意執(zhí)行項目的 pipeline

mlflow run example/project -P num_dimensions=5

mlflow run git@github.com:xxx/xxx.git -P num_dimensions=5

下面舉一個官網(wǎng)的具體例子:

舉例 初始化
devtools::install_github("mlflow/mlflow", subdir = "mlflow/R/mlflow")
mlflow::mlflow_install()
模型參數(shù)
# Sample R code showing logging model parameters
library(mlflow)

# Define parameters
my_int <- mlflow_param("my_int", 1, "integer")
my_num <- mlflow_param("my_num", 1.0, "numeric")
my_str <- mlflow_param("my_str", "a", "string")

# Log parameters
mlflow_log_param("param_int", my_int)
mlflow_log_param("param_num", my_num)
mlflow_log_param("param_str", my_str)
模型訓(xùn)練
# Sample R code training a linear model
library(mlflow)

# Read parameters
column <- mlflow_log_param("column", 1)

# Log total rows
mlflow_log_metric("rows", nrow(iris))

# Train model
model <- lm(Sepal.Width ~ iris[[column]], iris)

# Log models intercept
mlflow_log_metric("intercept", model$coefficients[["(Intercept)"]])
線上實驗
library(mlflow)
# Create and activate the “R-Test” experiment
mlflow_create_experiment("R-Test")

mlflow_active_run()
啟動界面
mlflow_ui()

默認(rèn)需要在瀏覽器中訪問 localhost:5000

添加注釋

超參調(diào)優(yōu)

超參調(diào)優(yōu)支持3種模式:

Random: 完全隨機探索策略

Gpyopt: 基于高斯過程的探索策略

Hyperopt: 基于數(shù)據(jù)庫的分布式探索方法

mlflow run -e random --experiment-id   -P 
    training_experiment_id= examples/r_wine --entry-point train.R

其中 train.R 為

library(mlflow)

# read parameters
column <- mlflow_log_param("column", 1)

# log total rows
mlflow_log_metric("rows", nrow(iris))

# train model
model <- lm(
  Sepal.Width ~ x,
  data.frame(Sepal.Width = iris$Sepal.Width, x = iris[,column])
)

# log models intercept
mlflow_log_metric("intercept", model$coefficients[["(Intercept)"]])

# save model
mlflow_save_model(
  crate(~ stats::predict(model, .x), model)
)
模型部署
mlflow rfunc serve model

模型推斷
mlflow_rfunc_predict("model", data = data.frame(x = c(0.3, 0.2)))
## Warning in mlflow_snapshot_warning(): Running without restoring the
## packages snapshot may not reload the model correctly. Consider running
## "mlflow_restore_snapshot()" or setting the "restore" parameter to "TRUE".

## 3.400381396714573.40656987651099

##        1        2 
## 3.400381 3.406570

或者在命令行中調(diào)用

mlflow rfunc predict model data.json
總結(jié)

mlflow 的出現(xiàn)極大方便了煉丹師傅們的工作,提供了堪比 michelangelo 的用戶體驗,并且全面支持 sklearn、spark、pytorch、tensorflow、mxnet、mlr、xgboost、keras 等主流算法框架。更多 mlflow 的詳細(xì)資料可以參見官方文檔。

參考資料

MLflow v0.7.0 Features New R API by RStudio

mlflow-r-interface-for-mlflow

mlflow hyperparam

https://www.slideshare.net/da...

Uber michelangelo

作為分享主義者(sharism),本人所有互聯(lián)網(wǎng)發(fā)布的圖文均遵從CC版權(quán),轉(zhuǎn)載請保留作者信息并注明作者 Harry Zhu 的 FinanceR專欄:https://segmentfault.com/blog...,如果涉及源代碼請注明GitHub地址:https://github.com/harryprince。微信號: harryzhustudio
商業(yè)使用請聯(lián)系作者。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/19843.html

相關(guān)文章

  • []數(shù)據(jù)科學(xué)教程: 如何使用 mlflow 管理數(shù)據(jù)科學(xué)作流

    摘要:背景近年來,人工智能與數(shù)據(jù)科學(xué)領(lǐng)域發(fā)展迅速,傳統(tǒng)項目在演化中也越來越復(fù)雜了,如何管理大量的機器學(xué)習(xí)項目成為一個難題。在真正的機器學(xué)習(xí)項目中,我們需要在模型之外花費大量的時間。 showImg(https://segmentfault.com/img/remote/1460000016855989?w=800&h=450); 背景 近年來,人工智能與數(shù)據(jù)科學(xué)領(lǐng)域發(fā)展迅速,傳統(tǒng)項目在演化中...

    Travis 評論0 收藏0
  • []數(shù)據(jù)科學(xué)教程如何使用Airflow調(diào)度數(shù)據(jù)科學(xué)作流

    摘要:概述是一個我們正在用的工作流調(diào)度器,相對于傳統(tǒng)的任務(wù)管理,很好的為我們理清了復(fù)雜的任務(wù)依賴關(guān)系監(jiān)控任務(wù)執(zhí)行的情況。步驟三修改默認(rèn)數(shù)據(jù)庫找到配置文件修改配置注意到,之前使用的的方式是行不通的。微信號商業(yè)使用請聯(lián)系作者。 showImg(https://segmentfault.com/img/remote/1460000006760428?w=1918&h=1556); 概述 Airfl...

    v1 評論0 收藏0
  • 如何創(chuàng)建一個數(shù)據(jù)科學(xué)項目?

    摘要:雖然我們可以在網(wǎng)上參照各種模板項目文章博客等創(chuàng)建一個數(shù)據(jù)科學(xué)項目,但是目前也沒有教科書對這些知識做一個統(tǒng)一的回答。舉個例子來說,數(shù)據(jù)科學(xué)分析項目通常就不需要部署和監(jiān)控這兩個過程。創(chuàng)建文件描述源數(shù)據(jù)及位置。進一步探索和報告在整個數(shù)據(jù)科學(xué)項目中 摘要:?在一個新的數(shù)據(jù)科學(xué)項目,你應(yīng)該如何組織你的項目流程?數(shù)據(jù)和代碼要放在那里?應(yīng)該使用什么工具?在對數(shù)據(jù)處理之前,需要考慮哪些方面?讀完本文...

    Aceyclee 評論0 收藏0
  • []文檔定義應(yīng)用:數(shù)據(jù)科學(xué)的文檔革命

    摘要:對于數(shù)據(jù)科學(xué)的研究可以說已經(jīng)是本文我將介紹如何以文檔定義應(yīng)用的方式成為數(shù)據(jù)科學(xué)中的標(biāo)準(zhǔn)交付。參考前文解密的數(shù)據(jù)科學(xué)部門如果構(gòu)建知識倉庫,作為一個謝大大的死忠,我很自然選擇了作為我文檔輸出的首選工具。 showImg(https://segmentfault.com/img/remote/1460000006760433?w=423&h=426); 概述 隨著近年來,Rstudio 通過...

    wh469012917 評論0 收藏0
  • []打造數(shù)據(jù)產(chǎn)品的快速型:Django的Docker之旅

    摘要:而大多數(shù)數(shù)據(jù)科學(xué)研究的場景下,更快的速度也意味著更早地發(fā)現(xiàn)問題和完成檢驗假設(shè)的閉環(huán)。通常,數(shù)據(jù)科學(xué)被認(rèn)為研究成果立即應(yīng)用到生產(chǎn)環(huán)境都是比較緩慢的一個過程。 showImg(https://segmentfault.com/img/remote/1460000005771293); 概述 在數(shù)據(jù)科學(xué)研究中,快速驗證想法是非常關(guān)鍵的一環(huán),而如何快速開發(fā)出數(shù)據(jù)產(chǎn)品則可以有效推動整個數(shù)據(jù)科學(xué)項...

    zhoutao 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<