女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

ML規模復雜的相關基礎架構

Tensorflowers ? 來源:TensorFlow ? 作者:TensorFlow ? 2021-10-21 14:07 ? 次閱讀

Waze 是世界上最大的基于社區的交通和導航應用。該應用借助實時數據來幫助用戶避開路上的障礙,享受無憂旅途。除了移動導航功能,Waze 還提供網絡平臺、拼車、合作服務、廣告投放等功能。如此廣泛的服務組合帶來了多種技術挑戰和豐富案例。

Waze 的 ML 應用

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

預測 ETA

匹配乘客和司機(拼車)

推送適當的廣告

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

復雜的相關基礎架構

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

上述理由很好地解釋了,為什么不經周密安排就開始在 Waze 中實施 ML 會造成混亂局面。對我們來說,這表現為:

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

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

培訓、驗證和部署使用半手動操作

從想法到投入生產的開發周期異常漫長

總的來說,數據科學家最終把大量的時間耗費在運算和監控上,而不能專注于實際的建模和數據處理。

業務發展到一定程度時,我們決定整改這混亂的局面,在自動化和流程方面投資,以便能夠更快地擴大業務規模。我們決定采用全周期數據科學理念,重點投資能夠大幅提高速度和質量的方法。這意味著,在我們想要建立的這個新方法中,只需一個數據科學家就能完成從研究到生產級服務的產品周期。

在新方法中,數據科學家可以直接為生產做出貢獻,發揮自己最大優勢。他們可專注于建模和數據處理,獲得許多基礎架構和開箱即用的運算。雖然上述愿景還沒有完全實現,但我們覺得本文所闡述的內容對實現最終目的來說至關重要。

Waze 的 ML 堆棧

為將上述理念轉化為技術規范,我們決心創建一個簡單、穩定、自動化和統一的方法來構建 Waze 的 ML 流水線。

深入研究技術要求后,我們得出了以下評判標準:

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

可托管——沒有服務器,沒有硬件,只有代碼

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

可擴容——自動可擴容的數據處理、訓練、推理

利用 Python——我們需要一些已經可以投入生產的工具,可以兼容當今大多數工具和代碼,并且適合一般的數據科學家?,F在除了 Python,幾乎沒有其他選擇

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

TFX

https://tensorflow.google.cn/tfx

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

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

Vertex Pipelines

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

連同我們的數據技術棧,Waze 的整體 ML 架構(均符合可托管、可擴容,且利用 Python 等標準)如下:

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

TFX 指的是 TensorFlow(盡管這種說法已經不再完全準確了,但我們假設它是這個意思)。

已經不再完全準確了

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

當你處理許多不同的案例時,這些警告一開始可能看起來會有點嚇人。

幸運的是,TF 生態系統很豐富,而且 Waze 的優點是有規模足夠大的數據,神經網絡會收斂。

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

Waze TFX

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

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

這能帶來以下好處:

可以淘汰樣板文件

可隱藏所有通用的 TFX 組件,這讓數據科學家可以只專注于特征工程和建模,并免費獲得整個流水線

可生成基于 BigQuery 的訓練/評估分塊

可提供預先實現的可選通用特征轉換(例如,擴容、歸一化、插補)

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

效用函數(例如,TF 列的準備)

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

使用安裝了所有 TFX 軟件包的云運行實例,從 Airflow 中協調和調度流水線運行(無需在 Airflow Composer 上安裝)

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

在上文中,我們為數據科學家提供了一個超級詳細的演示、使用指南和代碼模板,所以常見的 DS 工作流是:創建分支,改變配置,稍微調整一下代碼,部署。

作為參考,這里提供了一個簡單的 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.協調

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,
)

很簡單,對不對?

配置文件提交到代碼庫后,系統就會對其進行部署并設置持續訓練以及一個完整的流水線,包括所有 TFX 和 Vertex AI 方法,如數據驗證、部署到 Dataflow 的轉換、監控等。

總結

當我們的一位數據科學家休完長假回來,不得不使用這個新的框架來處理一個案例時,我們知道本項研究取得了不錯的結果。據她所說,她能夠在幾個小時內啟動一個可投入生產的完整流水線,而在她休假之前,她需要花幾周的時間才能做到這一點。

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

我們正在計劃有關部署的其他改進工作。希望在保證部署質量的同時,盡可能地實現自動化。

我們目前正在探索的一種方式是使用 Canary 部署。數據科學家只需要配置一個評估指標,框架(使用 Vertex Prediction 數據流量分塊功能和其他持續評估方法)將在生產環境中測試新模型,并根據評估指標逐步部署或回滾。


責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 模型
    +關注

    關注

    1

    文章

    3488

    瀏覽量

    49999
  • 代碼
    +關注

    關注

    30

    文章

    4887

    瀏覽量

    70266

原文標題:了解 Waze 如何利用 TFX 擴大可以投入生產的 ML 規模

文章出處:【微信號:tensorflowers,微信公眾號:Tensorflowers】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    面向半定制AI基礎架構的NVIDIA NVLink Fusion技術

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

    知識分享 | 評估模型架構——如何實現?

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

    構建大規模Simulink模型的標準化最佳實踐

    隨著系統規模復雜性的增長,工程團隊面臨著一系列在小規模上不存在的全新挑戰。
    的頭像 發表于 04-24 13:03 ?266次閱讀
    構建大<b class='flag-5'>規模</b>Simulink模型的標準化最佳實踐

    AI原生架構升級:RAKsmart服務器在超大規模模型訓練中的算力突破

    近年來,隨著千億級參數模型的崛起,AI訓練對算力的需求呈現指數級增長。傳統服務器架構在應對分布式訓練、高并發計算和顯存優化等場景時逐漸顯露瓶頸。而RAKsmart為超大規模模型訓練提供了全新的算力解決方案。
    的頭像 發表于 04-24 09:27 ?198次閱讀

    EM儲能網關 ZWS智慧儲能云應用(11) — 一級架構 主從架構

    ZWS智慧儲能云針對儲能場景下不同的架構體系進行了兼容,可以適配用戶面臨的復雜現場環境,滿足更深層次的管理和維護需求。簡介儲能系統包含PCS、BMS、EMS等多個組件,不同儲能架構管理和決策方式也有
    的頭像 發表于 04-17 13:00 ?177次閱讀
    EM儲能網關 ZWS智慧儲能云應用(11) — 一級<b class='flag-5'>架構</b> 主從<b class='flag-5'>架構</b>

    關于ML4842輸出PWM波形失真問題?

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

    Arm發布基于Armv9架構的Cortex-A320處理器

    邊緣 AI 需要更卓越的計算性能、更強大的安全性,以及更出色的軟件靈活性。隨著軟件愈發復雜化,Armv9 架構應運而生,以提供先進的機器學習 (ML) 和 AI 功能,并具備增強的安全特性。該
    的頭像 發表于 02-27 17:10 ?714次閱讀

    SPEC ML基準測試新增模算效率指標

    近日,國際標準性能評估組織SPEC宣布了AI基準測試SPEC ML的最新進展。此次更新標志著SPEC ML基準測試在面向不同AI負載下的軟硬件系統性能評估方面取得了重要突破,成功構建了性能、擴展性
    的頭像 發表于 01-15 14:28 ?445次閱讀

    Silicon Labs攜手Eta Compute簡化邊緣ML開發

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

    ML307A 4G模組硬件設計手冊

    基于ML307A ?4G模組的硬件設計指導手冊
    發表于 10-24 16:50 ?39次下載

    架構與設計 常見微服務分層架構的區別和落地實踐

    前言 從強調內外隔離的六邊形架構,逐漸發展衍生出的層層遞進、注重領域模型的洋蔥架構,再到和DDD完美契合的整潔架構。架構風格的不斷演進,其實就是為了適應軟件需求越來越
    的頭像 發表于 10-22 15:34 ?574次閱讀
    <b class='flag-5'>架構</b>與設計 常見微服務分層<b class='flag-5'>架構</b>的區別和落地實踐

    RISC--V架構的目標和特點

    一套指令集支持所有架構?;局噶钭蛹瘍H40余條指令,以此為共有 基礎,加上其他常用模塊子集指令總指令數也僅幾十條 易實現性 硬件實現的復雜度高 硬件設計與編譯器實現非常簡單僅支持小端格式存儲器訪問指令
    發表于 08-23 00:42

    ML-01-SC 手冊

    ML-01-SC 高頻混頻器 用于將高頻信號轉換為低頻信號或從低頻信號轉換為高頻信號,適用于各種高頻通信和信號處理應用的
    發表于 08-02 09:29 ?1次下載

    CISC(復雜指令集)與RISC(精簡指令集)的區別  

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

    軟件架構搞好了,還用擔心代碼可讀性差?

    :硬件多樣性:嵌入式系統常常面臨不同硬件平臺和設備的多樣性,需要一個靈活的軟件架構來適應這些差異。軟件復雜性:隨著嵌入式系統功能的不斷增加,軟件規模復雜度也在增加
    的頭像 發表于 06-14 08:10 ?522次閱讀
    軟件<b class='flag-5'>架構</b>搞好了,還用擔心代碼可讀性差?