Uber宣布開源AI工具箱免代碼訓練和測試學習模型
Uber宣布開源Ludwig,一個基於TensorFlow的工具箱,該工具箱特點是不用寫代碼就能夠訓練和測試深度學習模型。Uber官方表示,對於AI開發者來說,Ludwig可以幫助他們更好地理解深度學習方面的能力,並能夠推進模型快速迭代。另一方面,對於AI專家來說,Ludwig可以簡化原型設計和數據處理過程,從而讓他們能夠專注於開發深度學習模型架構。
Ludwig 提供了一套AI 架構,可以組合起來,為給定的用例創建端到端的模型。開始模型訓練,只需要一個表格數據文件(如CSV)和一個YAML 配置文件——用於指定數據文件中哪些列是輸入特徵,哪些列是輸出目標變量。如果指定了多個輸出變量,Ludwig 將學會同時預測所有輸出。使用Ludwig 訓練模型,在模型定義中可以包含附加信息,比如數據集中每個特徵的預處理數據和模型訓練參數, 也能夠保存下來,可以在日後加載,對新數據進行預測。
對於Ludwig 支持的數據類型(文本、圖像、類別等),其提供了一個將原始數據映射到張量的編碼器,以及將張量映射到原始數據的解碼器(張量是線性代數中使用的數據結構)。內置的組合器,能夠自動將所有輸入編碼器的張量組合在一起,對它們進行處理,並將其返回給輸入解碼器。
Uber 表示,通過組合這些特定於數據類型的組件,用戶可以將Ludwig 用於各種任務。比如,組合文本編碼器和類別解碼器,就可以獲得一個文本分類器。
每種數據類型有多個編碼器和解碼器。例如,文本可以用卷積神經網絡(CNN),循環神經網絡(RNN)或其他編碼器編碼。用戶可以直接在模型定義文件中指定要使用的參數和超參數,而無需編寫單行代碼。
Ludwig採用的這種靈活的編碼器-解碼器架構,即使是經驗較少的深度學習者,也能夠輕鬆地為不同的任務訓練模型。比如文本分類、目標分類、圖像字幕、序列標籤、回歸、語言建模、機器翻譯、時間序列預測和問答等等。
此外,Ludwig 還提供了各種工具,且能夠使用開源分佈式培訓框架Horovod。目前,Ludwig 有用於二進制值,浮點數,類別,離散序列,集合,袋(bag),圖像,文本和時間序列的編碼器和解碼器,並且支持選定的預訓練模型。未來將支持更多資料的種類。