一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

ML規(guī)模復(fù)雜的相關(guān)基礎(chǔ)架構(gòu)

Tensorflowers ? 來源:TensorFlow ? 作者:TensorFlow ? 2021-10-21 14:07 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Waze 是世界上最大的基于社區(qū)的交通和導(dǎo)航應(yīng)用。該應(yīng)用借助實(shí)時(shí)數(shù)據(jù)來幫助用戶避開路上的障礙,享受無憂旅途。除了移動(dòng)導(dǎo)航功能,Waze 還提供網(wǎng)絡(luò)平臺(tái)、拼車、合作服務(wù)、廣告投放等功能。如此廣泛的服務(wù)組合帶來了多種技術(shù)挑戰(zhàn)和豐富案例。

Waze 的 ML 應(yīng)用

Waze 依賴許多 ML 解決方案,其中包括:

預(yù)測 ETA

匹配乘客和司機(jī)(拼車)

推送適當(dāng)?shù)膹V告

但是,要把這些事情做好并達(dá)到“生產(chǎn)級(jí)別”并不是那么容易。這類項(xiàng)目通常需要復(fù)雜的相關(guān)基礎(chǔ)架構(gòu),以便將其投入生產(chǎn),因此需要多位工程師(數(shù)據(jù)科學(xué)家、軟件工程師和軟件可靠性工程師)一起投入大量時(shí)間。如果將大規(guī)模數(shù)據(jù)、低延遲(實(shí)際上為實(shí)時(shí))推理、多樣性案例和大量地理空間數(shù)據(jù)等 Waze 的特殊要求結(jié)合在一起,則難度更甚。

復(fù)雜的相關(guān)基礎(chǔ)架構(gòu)

https://papers.nips.cc/paper/5656-hidden-technical-debt-in-machine-learning-systems.pdf

上述理由很好地解釋了,為什么不經(jīng)周密安排就開始在 Waze 中實(shí)施 ML 會(huì)造成混亂局面。對(duì)我們來說,這表現(xiàn)為:

使用多個(gè) ML 框架——你能想到的都有(sklearn、XGBoost、TensorFlow、fbprophet、Java PMML、人工設(shè)定的框架等等)

ML 和運(yùn)算脫節(jié)——模型和特征工程被工程師嵌入 (Java) 后端服務(wù)器,監(jiān)控和驗(yàn)證能力有限

培訓(xùn)、驗(yàn)證和部署使用半手動(dòng)操作

從想法到投入生產(chǎn)的開發(fā)周期異常漫長

總的來說,數(shù)據(jù)科學(xué)家最終把大量的時(shí)間耗費(fèi)在運(yùn)算和監(jiān)控上,而不能專注于實(shí)際的建模和數(shù)據(jù)處理。

業(yè)務(wù)發(fā)展到一定程度時(shí),我們決定整改這混亂的局面,在自動(dòng)化和流程方面投資,以便能夠更快地?cái)U(kuò)大業(yè)務(wù)規(guī)模。我們決定采用全周期數(shù)據(jù)科學(xué)理念,重點(diǎn)投資能夠大幅提高速度和質(zhì)量的方法。這意味著,在我們想要建立的這個(gè)新方法中,只需一個(gè)數(shù)據(jù)科學(xué)家就能完成從研究到生產(chǎn)級(jí)服務(wù)的產(chǎn)品周期。

在新方法中,數(shù)據(jù)科學(xué)家可以直接為生產(chǎn)做出貢獻(xiàn),發(fā)揮自己最大優(yōu)勢。他們可專注于建模和數(shù)據(jù)處理,獲得許多基礎(chǔ)架構(gòu)和開箱即用的運(yùn)算。雖然上述愿景還沒有完全實(shí)現(xiàn),但我們覺得本文所闡述的內(nèi)容對(duì)實(shí)現(xiàn)最終目的來說至關(guān)重要。

Waze 的 ML 堆棧

為將上述理念轉(zhuǎn)化為技術(shù)規(guī)范,我們決心創(chuàng)建一個(gè)簡單、穩(wěn)定、自動(dòng)化和統(tǒng)一的方法來構(gòu)建 Waze 的 ML 流水線。

深入研究技術(shù)要求后,我們得出了以下評(píng)判標(biāo)準(zhǔn):

簡單——易于理解、使用和操作

可托管——沒有服務(wù)器,沒有硬件,只有代碼

可自定義——免費(fèi)獲得簡單的東西,但也有足夠的靈活性,可以為 5% 需要跳出局限的東西而激發(fā)奇思妙想

可擴(kuò)容——自動(dòng)可擴(kuò)容的數(shù)據(jù)處理、訓(xùn)練、推理

利用 Python——我們需要一些已經(jīng)可以投入生產(chǎn)的工具,可以兼容當(dāng)今大多數(shù)工具和代碼,并且適合一般的數(shù)據(jù)科學(xué)家?,F(xiàn)在除了 Python,幾乎沒有其他選擇

基于上述原因,我們選擇 TFX 及其內(nèi)置組件來提供這些功能,大部分是開箱即用的。

TFX

https://tensorflow.google.cn/tfx

值得一提的是,Waze 是在 Google Cloud Platform (GCP) 上運(yùn)行其技術(shù)棧。

GCP 恰好可提供一套名為 Vertex AI 的工具。Waze 就是在此 ML 基礎(chǔ)架構(gòu)平臺(tái)上構(gòu)建的。雖然我們使用了 Vertex AI 托管式服務(wù)的許多組件,但我們將在本文中重點(diǎn)介紹 Vertex Pipelines,這是 ML 流水線的一個(gè)框架,能夠幫助我們封裝 TFX(或任何流水線)的復(fù)雜性和設(shè)置。

Vertex Pipelines

https://cloud.google.com/vertex-ai/docs/pipelines

連同我們的數(shù)據(jù)技術(shù)棧,Waze 的整體 ML 架構(gòu)(均符合可托管、可擴(kuò)容,且利用 Python 等標(biāo)準(zhǔn))如下:

細(xì)心的讀者會(huì)在這里注意到所謂的警告:我們所有流程都通過 TensorFlow 進(jìn)行。

TFX 指的是 TensorFlow(盡管這種說法已經(jīng)不再完全準(zhǔn)確了,但我們假設(shè)它是這個(gè)意思)。

已經(jīng)不再完全準(zhǔn)確了

https://github.com/tensorflow/tfx/blob/master/tfx/examples/penguin/experimental/penguin_utils_sklearn.py

當(dāng)你處理許多不同的案例時(shí),這些警告一開始可能看起來會(huì)有點(diǎn)嚇人。

幸運(yùn)的是,TF 生態(tài)系統(tǒng)很豐富,而且 Waze 的優(yōu)點(diǎn)是有規(guī)模足夠大的數(shù)據(jù),神經(jīng)網(wǎng)絡(luò)會(huì)收斂。

自從開始這項(xiàng)工作以來,我們還沒有發(fā)現(xiàn)在哪個(gè)案例中, TF 不能像其他框架那樣更好地或充分地解決問題(在這里不討論微觀的百分點(diǎn),不進(jìn)行 Kaggle 比賽,而是想得到一些能夠投入生產(chǎn)的東西)。

Waze TFX

您可能認(rèn)為選擇 TFX 和 Vertex 流水線已解決我們所有的問題,但這并不完全正確。

為了讓這項(xiàng)工作真正變得簡單,我們不得不寫一些“膠水代碼”(整合上述架構(gòu)圖中的各種產(chǎn)品),并提取足夠的細(xì)節(jié),以便普通的數(shù)據(jù)科學(xué)家能夠有效和快速地使用這些東西。

這能帶來以下好處:

可以淘汰樣板文件

可隱藏所有通用的 TFX 組件,這讓數(shù)據(jù)科學(xué)家可以只專注于特征工程和建模,并免費(fèi)獲得整個(gè)流水線

可生成基于 BigQuery 的訓(xùn)練/評(píng)估分塊

可提供預(yù)先實(shí)現(xiàn)的可選通用特征轉(zhuǎn)換(例如,擴(kuò)容、歸一化、插補(bǔ))

可提供預(yù)先實(shí)現(xiàn)的 Keras 模型(例如 DNN/RNN 模型。其類似 TF Estimator,但在具有 TFX 特征的 Keras 中)

效用函數(shù)(例如,TF 列的準(zhǔn)備)

tf.transform 特征工程代碼的單元測試框架

使用安裝了所有 TFX 軟件包的云運(yùn)行實(shí)例,從 Airflow 中協(xié)調(diào)和調(diào)度流水線運(yùn)行(無需在 Airflow Composer 上安裝)

我們已經(jīng)將其全部放入一個(gè)易于使用的 Python 軟件包中,稱為 “wze-data-tfx”。

在上文中,我們?yōu)閿?shù)據(jù)科學(xué)家提供了一個(gè)超級(jí)詳細(xì)的演示、使用指南和代碼模板,所以常見的 DS 工作流是:創(chuàng)建分支,改變配置,稍微調(diào)整一下代碼,部署。

作為參考,這里提供了一個(gè)簡單的 waze-data-tfx 流水線:

1.配置

_DATASET_NAME = 'tfx_examples'
_TABLE_NAME = 'simple_template_data'

_LABEL_KEY = 'label'
_CATEGORICAL_INT_FEATURES = {
  "categorical_calculated": 2,
}
_DENSE_FLOAT_FEATURE_KEYS = ["numeric_feature1", "numeric_feature2"]
_BUCKET_FEATURES = {
  "numeric_feature1": 5,
}
_VOCAB_FEATURES = {
  "categorical_feature": {
      'top_k': 5,
      'num_oov_buckets': 3
  }
}

_TRAIN_BATCH_SIZE = 128
_EVAL_BATCH_SIZE = 128
_NUM_EPOCHS = 250

_TRAINING_ARGS = {
  'dnn_hidden_units': [6, 3],
  'optimizer': tf.keras.optimizers.Adam,
  'optimizer_kwargs': {
      'learning_rate': 0.01
  },
  'layer_activation': None,
  'metrics': ["Accuracy"]
}

_EVAL_METRIC_SPEC = create_metric_spec([
  mse_metric(upper_bound=25, absolute_change=1),
  accuracy_metric()
])

2.特征工程

def preprocessing_fn(inputs):
  """tf.transform's callback function for preprocessing inputs.

  Args:
      inputs: map from feature keys to raw not-yet-transformedfeatures.

  Returns:
      Map from string feature key to transformed feature operations.
  """
  outputs = features_transform(
      inputs=inputs,
      label_key=_LABEL_KEY,
      dense_features=_DENSE_FLOAT_FEATURE_KEYS,
      vocab_features=_VOCAB_FEATURES,
      bucket_features=_BUCKET_FEATURES,
  )
  return outputs

3.建模

def _build_keras_model(**training_args):
   """Build a keras model.

   Args:
       hidden_units: [int], the layer sizes of the DNN (input layer first).
       learning_rate: [float], learning rate of the Adam optimizer.

   Returns:
       A keras model
   """
   feature_columns = 
       prepare_feature_columns(
           dense_features=_DENSE_FLOAT_FEATURE_KEYS,
           vocab_features=_VOCAB_FEATURES,
           bucket_features=_BUCKET_FEATURES,
       )

   return _dnn_regressor(deep_columns=list(feature_columns.values()),
                         dnn_hidden_units=training_args.get(
                             "dnn_hidden_units"),
                         dense_features=_DENSE_FLOAT_FEATURE_KEYS,
                         vocab_features=_VOCAB_FEATURES,
                         bucket_features=_BUCKET_FEATURES,
                         )

4.協(xié)調(diào)

pipeline_run = WazeTFXPipelineOperator(
   dag=dag,
   task_id='pipeline_run',
   model_name='basic_pipeline_template',
   package=tfx_pipeline_basic,
   pipeline_project_id=EnvConfig.get_value('gcp-project-infra'),
   table_project_id=EnvConfig.get_value('gcp-project-infra'),
   project_utils_filename='utils.py',
   gcp_conn_id=gcp_conn_id,
   enable_pusher=True,
)

很簡單,對(duì)不對(duì)?

配置文件提交到代碼庫后,系統(tǒng)就會(huì)對(duì)其進(jìn)行部署并設(shè)置持續(xù)訓(xùn)練以及一個(gè)完整的流水線,包括所有 TFX 和 Vertex AI 方法,如數(shù)據(jù)驗(yàn)證、部署到 Dataflow 的轉(zhuǎn)換、監(jiān)控等。

總結(jié)

當(dāng)我們的一位數(shù)據(jù)科學(xué)家休完長假回來,不得不使用這個(gè)新的框架來處理一個(gè)案例時(shí),我們知道本項(xiàng)研究取得了不錯(cuò)的結(jié)果。據(jù)她所說,她能夠在幾個(gè)小時(shí)內(nèi)啟動(dòng)一個(gè)可投入生產(chǎn)的完整流水線,而在她休假之前,她需要花幾周的時(shí)間才能做到這一點(diǎn)。

展望未來,我們計(jì)劃在 waze-data-tfx 中融入更多內(nèi)容。我們認(rèn)為,擁有此通用基礎(chǔ)架構(gòu)的一個(gè)關(guān)鍵優(yōu)勢是:添加一個(gè)特征后,所有人都可以“免費(fèi)”使用該特征。例如,我們計(jì)劃在流水線中添加額外的組件,如 Infra Validator 和 Fairness Indicators。當(dāng)這些組件得到支持后,每個(gè)新的或現(xiàn)有的 ML 流水線將以開箱即用的方式添加這些組件,無需額外的代碼。

我們正在計(jì)劃有關(guān)部署的其他改進(jìn)工作。希望在保證部署質(zhì)量的同時(shí),盡可能地實(shí)現(xiàn)自動(dòng)化。

我們目前正在探索的一種方式是使用 Canary 部署。數(shù)據(jù)科學(xué)家只需要配置一個(gè)評(píng)估指標(biāo),框架(使用 Vertex Prediction 數(shù)據(jù)流量分塊功能和其他持續(xù)評(píng)估方法)將在生產(chǎn)環(huán)境中測試新模型,并根據(jù)評(píng)估指標(biāo)逐步部署或回滾。


責(zé)任編輯:haq

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

    關(guān)注

    1

    文章

    3516

    瀏覽量

    50368
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4899

    瀏覽量

    70658

原文標(biāo)題:了解 Waze 如何利用 TFX 擴(kuò)大可以投入生產(chǎn)的 ML 規(guī)模

文章出處:【微信號(hào):tensorflowers,微信公眾號(hào):Tensorflowers】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    聚徽廠家視角——X86 架構(gòu) vs. ARM 架構(gòu):工控一體機(jī)的算力、功耗與成本差異解析

    ,有助于企業(yè)精準(zhǔn)選型,實(shí)現(xiàn)工業(yè)生產(chǎn)效益最大化。 算力比拼:復(fù)雜運(yùn)算與高效并行的較量 X86 架構(gòu)復(fù)雜指令集下的計(jì)算強(qiáng)者 X86 架構(gòu)憑借復(fù)雜
    的頭像 發(fā)表于 06-07 14:56 ?279次閱讀

    面向半定制AI基礎(chǔ)架構(gòu)的NVIDIA NVLink Fusion技術(shù)

    為了高效應(yīng)對(duì) AI 工作負(fù)載,數(shù)據(jù)中心正在被重構(gòu)。這是一項(xiàng)非常復(fù)雜的工作,因此,NVIDIA 目前正在交付以 NVIDIA 機(jī)架級(jí)架構(gòu)為單位的 AI 工廠。為了讓 AI 工廠發(fā)揮最佳性能,許多加速器需要以更大的帶寬和更低的延遲在機(jī)架規(guī)模
    的頭像 發(fā)表于 06-06 14:59 ?486次閱讀
    面向半定制AI基礎(chǔ)<b class='flag-5'>架構(gòu)</b>的NVIDIA NVLink Fusion技術(shù)

    知識(shí)分享 | 評(píng)估模型架構(gòu)——如何實(shí)現(xiàn)?

    確保良好的模型架構(gòu)對(duì)于開發(fā)安全和可靠的軟件非常重要。本文為您介紹MES Model Examiner? (MXAM)如何優(yōu)化模型架構(gòu),簡化復(fù)雜度管理步驟,并最終提升軟件質(zhì)量。
    的頭像 發(fā)表于 06-05 11:46 ?138次閱讀
    知識(shí)分享 | 評(píng)估模型<b class='flag-5'>架構(gòu)</b>——如何實(shí)現(xiàn)?

    構(gòu)建大規(guī)模Simulink模型的標(biāo)準(zhǔn)化最佳實(shí)踐

    隨著系統(tǒng)規(guī)模復(fù)雜性的增長,工程團(tuán)隊(duì)面臨著一系列在小規(guī)模上不存在的全新挑戰(zhàn)。
    的頭像 發(fā)表于 04-24 13:03 ?403次閱讀
    構(gòu)建大<b class='flag-5'>規(guī)模</b>Simulink模型的標(biāo)準(zhǔn)化最佳實(shí)踐

    AI原生架構(gòu)升級(jí):RAKsmart服務(wù)器在超大規(guī)模模型訓(xùn)練中的算力突破

    近年來,隨著千億級(jí)參數(shù)模型的崛起,AI訓(xùn)練對(duì)算力的需求呈現(xiàn)指數(shù)級(jí)增長。傳統(tǒng)服務(wù)器架構(gòu)在應(yīng)對(duì)分布式訓(xùn)練、高并發(fā)計(jì)算和顯存優(yōu)化等場景時(shí)逐漸顯露瓶頸。而RAKsmart為超大規(guī)模模型訓(xùn)練提供了全新的算力解決方案。
    的頭像 發(fā)表于 04-24 09:27 ?283次閱讀

    EM儲(chǔ)能網(wǎng)關(guān) ZWS智慧儲(chǔ)能云應(yīng)用(11) — 一級(jí)架構(gòu) 主從架構(gòu)

    ZWS智慧儲(chǔ)能云針對(duì)儲(chǔ)能場景下不同的架構(gòu)體系進(jìn)行了兼容,可以適配用戶面臨的復(fù)雜現(xiàn)場環(huán)境,滿足更深層次的管理和維護(hù)需求。簡介儲(chǔ)能系統(tǒng)包含PCS、BMS、EMS等多個(gè)組件,不同儲(chǔ)能架構(gòu)管理和決策方式也有
    的頭像 發(fā)表于 04-17 13:00 ?274次閱讀
    EM儲(chǔ)能網(wǎng)關(guān) ZWS智慧儲(chǔ)能云應(yīng)用(11) — 一級(jí)<b class='flag-5'>架構(gòu)</b> 主從<b class='flag-5'>架構(gòu)</b>

    關(guān)于ML4842輸出PWM波形失真問題?

    如示波器波形所示,ML4842芯片11腳PWM輸出波形失真是什么原因造成,原理圖上的PWM輸出管已經(jīng)拆除,實(shí)際原理圖與圖上原理圖有區(qū)別,ML4842電壓VCC獨(dú)立供電
    發(fā)表于 04-09 14:52

    Arm發(fā)布基于Armv9架構(gòu)的Cortex-A320處理器

    邊緣 AI 需要更卓越的計(jì)算性能、更強(qiáng)大的安全性,以及更出色的軟件靈活性。隨著軟件愈發(fā)復(fù)雜化,Armv9 架構(gòu)應(yīng)運(yùn)而生,以提供先進(jìn)的機(jī)器學(xué)習(xí) (ML) 和 AI 功能,并具備增強(qiáng)的安全特性。該
    的頭像 發(fā)表于 02-27 17:10 ?780次閱讀

    SPEC ML基準(zhǔn)測試新增模算效率指標(biāo)

    近日,國際標(biāo)準(zhǔn)性能評(píng)估組織SPEC宣布了AI基準(zhǔn)測試SPEC ML的最新進(jìn)展。此次更新標(biāo)志著SPEC ML基準(zhǔn)測試在面向不同AI負(fù)載下的軟硬件系統(tǒng)性能評(píng)估方面取得了重要突破,成功構(gòu)建了性能、擴(kuò)展性
    的頭像 發(fā)表于 01-15 14:28 ?488次閱讀

    Silicon Labs攜手Eta Compute簡化邊緣ML開發(fā)

    Silicon Labs(芯科科技)與 Eta Compute近期共同宣布建立合作伙伴關(guān)系,將支持產(chǎn)品開發(fā)人員將機(jī)器學(xué)習(xí)(ML)高級(jí)功能無縫集成到其邊緣ML嵌入式產(chǎn)品中,以添加多樣應(yīng)用價(jià)值。
    的頭像 發(fā)表于 12-12 10:26 ?629次閱讀

    ML307A 4G模組硬件設(shè)計(jì)手冊

    基于ML307A ?4G模組的硬件設(shè)計(jì)指導(dǎo)手冊
    發(fā)表于 10-24 16:50 ?41次下載

    架構(gòu)與設(shè)計(jì) 常見微服務(wù)分層架構(gòu)的區(qū)別和落地實(shí)踐

    前言 從強(qiáng)調(diào)內(nèi)外隔離的六邊形架構(gòu),逐漸發(fā)展衍生出的層層遞進(jìn)、注重領(lǐng)域模型的洋蔥架構(gòu),再到和DDD完美契合的整潔架構(gòu)。架構(gòu)風(fēng)格的不斷演進(jìn),其實(shí)就是為了適應(yīng)軟件需求越來越
    的頭像 發(fā)表于 10-22 15:34 ?650次閱讀
    <b class='flag-5'>架構(gòu)</b>與設(shè)計(jì) 常見微服務(wù)分層<b class='flag-5'>架構(gòu)</b>的區(qū)別和落地實(shí)踐

    RISC--V架構(gòu)的目標(biāo)和特點(diǎn)

    一套指令集支持所有架構(gòu)。基本指令子集僅40余條指令,以此為共有 基礎(chǔ),加上其他常用模塊子集指令總指令數(shù)也僅幾十條 易實(shí)現(xiàn)性 硬件實(shí)現(xiàn)的復(fù)雜度高 硬件設(shè)計(jì)與編譯器實(shí)現(xiàn)非常簡單僅支持小端格式存儲(chǔ)器訪問指令
    發(fā)表于 08-23 00:42

    ML-01-SC 手冊

    ML-01-SC 高頻混頻器 用于將高頻信號(hào)轉(zhuǎn)換為低頻信號(hào)或從低頻信號(hào)轉(zhuǎn)換為高頻信號(hào),適用于各種高頻通信和信號(hào)處理應(yīng)用的
    發(fā)表于 08-02 09:29 ?1次下載

    CISC(復(fù)雜指令集)與RISC(精簡指令集)的區(qū)別  

    。這種架構(gòu)會(huì)增加CPU結(jié)構(gòu)的復(fù)雜性和對(duì)CPU工藝的要求,但對(duì)于編譯器的開發(fā)十分有利。比如上面的例子,C程序 中的a*=b就可以直接編譯為一條乘法指令。   RISC架構(gòu)要求軟件來指定各個(gè)操作步驟。上面
    發(fā)表于 07-30 17:21