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