#分享 LinkedIn 開源 Avro2TF: TensorFlow 的開源特性轉換引擎

2019 年 4 月 4 日,我們宣佈開源一個新的項目Avro2TF。該項目提供了一種可伸縮的基於spark的機制,可以有效地將數據轉換爲供TensorFlow使用的格式。使用這種技術,開發人員可以更專注於構建模型而不是轉換數據,從而提高生產率。 LinkedIn 的深度學習數據管道 在 LinkedIn,深度學習已成功應用於多個與推薦和搜索相關的人工智能系統。我們從這個項目中學到的重要經驗之一是深深地感受到提供良好的深度學習平臺的重要性,這有助於我們的建模工程師變得更加高效和多產。Avro2TF 是爲了降低數據處理複雜性和提高高級建模速度這個目標做出的努力。除了推進深度學習技術,LinkedIn 多年來一直在分享很多領域關於機器學習 (ML) 方面的創新 (例如,推薦系統、可伸縮的機器學習系統等)。因爲效率和準確性至上,所以我們有許多不同的 ML 方法來處理每天產生的大量的數據。 爲了有效地支持深度學習和推進機器學習民主化的願景 (通過Pro-ML這樣的項目),我們必須首先解決數據處理步驟的問題。我們的 ML 算法 (例如 LinkedIn 的大規模個性化引擎Photon-ML) 使用的大部分數據集都是 Avro 格式的。Avro 數據集中的每個記錄本質上都是一個稀疏向量,並且可以被大多數現代分類器輕鬆使用。然而,領先的深度學習庫 TensorFlow 無法直接使用 Avro 這種格式。主要的阻礙因素是稀疏向量的格式與 TensorFlow 所期望的格式不同。我們相信這不是 LinkedIn 獨有的問題。許多公司擁有大量類似稀疏向量格式的 ML 數據,而 Tensor(張量)格式對許多公司來說仍然相對較新。 LinkedIn 的數據通常很大,格式也與傳統的深度學習庫不同。這就帶來了重大的挑戰,因爲許多管道都包含混合的數據處理邏輯和建模邏輯。它影響了構建新的深度學習模型的靈活性。根據用戶對 LinkedIn ML 垂直團隊的反饋,我們需要一個可伸縮的解決方案,專注於可伸縮的數據轉換。更具體地說,我們需要一個將 LinkedIn 數據類型 (例如稀疏向量、密集向量等) 轉換爲深度學習格式 (即張量) 的機制。
Avro2TF 彌補了這一差距,爲 ML 工程師提供了一個不錯的解決方案,讓他們可以專注於不同的深度學習算法。它爲建模者提供了一個簡單的配置,以便從現有的訓練數據中獲取張量。張量數據本身不是自包含的。爲了加載到 TensorFlow,張量數據需要攜帶元數據。爲了彌補這一差距,Avro2TF 還提供分佈式元數據收集工作。在 LinkedIn 內部,Avro2TF 是一個名爲 TensorFlowIn 的系統的組成部分,該系統可以幫助用戶輕鬆地將數據輸入到 TensorFlow 建模過程中。
TensorFlowIn 是一個與TonY、TensorFlow 和 Spark 兼容的深度學習訓練庫。它包含端到端訓練相關的實用程序和框架。上面的圖給出了 TensorFlowIn 的高級概覽。由於大規模的數據處理是一個重要的步驟,這不僅對許多 LinkedIn 應用程序至關重要,而且對更大的人工智能社區也很有用,所以我們在收到積極的內部反饋後決定開放這個引擎的源代碼。 Avro2TF 項目細節 下面簡要介紹 Avro2TF 的一些實現特性。 ● 輸入數據要求:我們支持 Spark 可以讀取的所有數據格式,包括 LinkedIn、Avro 和 ORC 中最流行的格式。對於分類或稀疏特性,我們要求它們以 NTV (name-term-value) 格式表示。 ● 輸出張量支持的數據類型:在 Avro2TF 中,輸出張量支持的數據類型 (dtype) 爲:int、long、float、double、string、boolean 和 bytes。我們還提供了一個特殊的數據類型 sparseVector 來表示分類 / 稀疏特性。一個 sparseVector 的張量類型有兩個字段:索引和值。 ● Avro2TF 配置:在頂層,配置文件包含關於張量的信息,這些張量將提供給深度學習訓練框架使用。對於每個指定的張量,它包含兩種信息: ● 輸入特徵信息,判斷應該使用哪些現有特徵來構造張量。 ● 輸出張量信息,包括期望輸出張量的名稱、類型和形狀。 ● Avro2TF 數據管道:它處理特徵提取、特徵轉換 (在 LinkedIn,這僅在 Pro-ML 不涉及的有限用例中)、張量元數據和特徵映射生成、將字符串轉換爲數值索引和張量序列化。 Avro2TF 現在是開源的 在 LinkedIn 成功使用 Avro2TF 之後,我們已經將該技術作爲開源軟件發佈。你可以在這裏找到 Avro2TF 的官方 GitHub 頁面。 我們還發布了 Avro2TF 的官方教程,可以在項目 wiki 頁面上找到。
愛心
15
1
全部留言