人工智慧模型是這樣構建的!探秘DL4J分布式訓練法!

2021-01-14 安勝

人工智慧的英文全名為Artificial Intelligence,我們通常簡稱為AI。廣義上講,AI可以指任何能夠從事某種智能活動的電腦程式。近年來深度學習在AI領域表現尤為突出,在這裡我們可以簡單的把AI理解為深度學習。

深度學習由深層神經網絡算法構成,大量的神經元輸入通過不斷的迭代更新參數完成模型定型。深度學習的計算強度較高,對於規模非常大的數據集而言,速度很重要。主流的深度學習框架有TensorFlow、Caffe、Keras、Theano等,它們大多在單節點伺服器通過GPU加速完成模型訓練。隨著大數據時代的來臨,採用分布式計算極大提高了計算性能。因此將分布式計算與深度學習結合成為必然趨勢。DL4J就是基於這樣的思想誕生的,是應用最廣泛的JVM開源深度學習框架,它可以利用Spark在多臺伺服器多個GPU上開展分布式的深度學習模型訓練,讓模型跑得再快一點。

運用Deeplearning4J高效的訓練一個完整神經網絡模型包括:神經網絡輸入數據ETL、配置神經網絡結構、設置參數監測可視化界面、模型訓練、模型評估、模型保存與加載。本期「安仔課堂」,ISEC實驗室的老師為大家詳解如何運用DL4J構建AI模型。

一、數據ETL

神經網絡所能識別的輸入數據是向量,訓練中涉及大量的矩陣運算。ND4J是神經網絡訓練進行必要的線性代數和微積分運算的科學計算庫,讓Java能夠訪問所需的原生庫,能夠使用多個CPU或GPU快速處理矩陣數據。DataVec是基於ND4J之上的一個工具包,通過它可以方便的對數據攝取、清理、聯接、縮放、標準化和轉換等處理,快速的將圖像、視頻、聲音、文本和時間序列等原始數據轉變為特徵向量,輸入神經網絡。示例如下:

圖1

二、配置網絡結構

MultiLayerConfiguration是用來設定網絡的層及其超參數。超參數是決定神經網絡學習方式的變量,包括模型的權重更新次數、如何初始化權重、為節點添加哪些激活函數、使用哪些優化算法以及模型的學習速度,通過調用layer添加網絡層,指定其在所有層中的先後位置、輸入及輸出節點數nIn和nOut。網絡配置的示例如下:

圖2

三、模型訓練

DL4J能夠依靠Spark來實現數據並行,以並行方式訓練模型,對這些模型產生的參數進行迭代式平均化,得到一個中央模型。首先創建一個TrainingMaster實例,指定分布式訓練的實際開展方式,然後用網絡配置和TrainingMaster對象創建SparkDl4jMultiLayer實例,最後SparkDl4jMultiLayer實例調用fit方法傳入數據進行模型訓練。

圖3

四、設置可視化界面

用戶界面可以在瀏覽器中對網絡狀態以及定型參數進行可視化。該用戶界面通常用於調試神經網絡,亦即通過選擇合適的超參數來提高網絡性能。在配合Spark使用時可以分兩個步驟,首先收集並保存相關統計數據,隨後再進行可視化:

圖4

之後可以用如下代碼加載並顯示已保存的信息:

圖5

五、模型評估

模型訓練完成後通常需要用一定數量的測試集來測試模型效果,這裡可以直接調用doEvaluation方法對測試數據集進行模型測試,調用evaluation.stats()可以輸出測試信息。

圖6

輸出結果:

圖7

輸出結果信息說明:

Accuracy(準確率):模型準確識別出的數量佔總數的百份比;

Precision(精確率):真正例的數量除以真正例與假正例的數之和;

Recall(召回率):真正例的數量除以真正例與假負例數之和;

F1 Score(F1值):精確率和召回率的加權平均值。

六、模型保存與加載

模型訓練完成後需要將模型保存以供模型加載部署。ModelSerializer是用於加載和保存模型的類。

圖8

以上步驟完整的完成了一個基於DL4J深度學習的建模方式,我們可將代碼打包提交到Spark集群運行。該模型可以在分布式環境中利用GPU實現高效運算,提升模型訓練效率。

相關焦點

  • 10 個頂尖的 Linux 開源人工智慧工具
    在這篇文章中,我們將介紹幾個頂級的開源 Linux 生態系統的人工智慧(AI)工具。
  • 【極道智能數據系統】直擊AI訓練痛點,助力自動駕駛
    構建高度可擴展的數據平臺和計算平臺,是自動駕駛系統的首要問題。高效的數據管理系統,MetaView人工智慧作為自動駕駛汽車的"大腦",所擁有的準確指揮能力並非與生俱來,而是靠前期的數據積累和後期的AI訓練。
  • TensorFlow 2.4來了:上線對分布式訓練和混合精度的新功能支持
    TensorFlow 2.4 的更新包括對於分布式訓練和混合精度的新功能支持,對 NumPy API 子集的試驗性支持以及一些用於監測性能瓶頸的新工具。官方博客,本次更新的主要內容整理如下:tf.distribute 中的新功能參數伺服器策略在 TensorFlow 2.4 中,tf.distribute 模塊引入了對使用 ParameterServerStrategy 和自定義訓練循環進行模型異步訓練的試驗性支持
  • 清華孵化、張鈸加盟的這家公司,現在把「第三代人工智慧」落地了
    本地只需花費幾十秒的模型訓練,在隱私保護下卻需要數小時;特徵篩選、調參、驗證又需要幾十上百次重複運行……2、不兼容於現有機器學習生態,改動投入大隱私保護機器學習不同於傳統機器學習,是分布式、密碼學、人工智慧三個領域的結合。
  • 82.3萬字筆記讓你徹底吃透分布式中的Spring Cloud微服務
    微服務系統作為分布式系統的一種形式,.必然會帶有分布式系統的各種弊病,因此本篇也會介紹分布式系統的一些常見知識,以更好滿足企業構建系統的需求。本篇從企業的真實需求出發,理論結合實際,深入講解SpringCloud微服務和分布式系統的知識。文中既包括SpringCloud微服務的各類常用組件的講解,又包括分布式系統的常用知識的介紹。
  • 基於人工智慧的存儲可以帶來什麼
    專注於分布式NoSQL資料庫技術的Splice Machine公司執行長Monte Zweben解釋說,「在這個大數據人工智慧世界的1.0版本中,企業認為它們必須由數據驅動。因此,他們專注於將所有數據存儲在存儲庫中以及該組中的所有人工智慧工作人員。」
  • 清華唐傑教授:認知圖譜是人工智慧的下一個瑰寶
    比如說高精度知識圖譜的構建,領域制度的應用系統,超大規模城市知識圖譜的構建,還有基於知識圖譜的搜索和推薦等。 邏輯生成。與計算模型相關,需要超大規模的預訓練模型,並且能夠自動進行內容生成。 認知推理。
  • 「明日專家直播」輕鬆玩轉中文預訓練模型的詳細攻略
    今年8月,百度重磅發布語義理解技術與平臺文心(ERNIE),為企業提供了一種革新性的應用範式,集先進的預訓練模型、全面的 NLP 算法集、端到端開發套件和平臺化服務於一體,提供一站式 NLP 開發與服務,讓企業用戶更簡單、高效地定製企業級文本模型。
  • 谷歌發布最大語言模型:等於9個GPT-3,訓練成本卻低得多
    這一語言模型正是Switch Transformer,自稱是迄今為止最大的模型,其預訓練速度是谷歌以前開發的最大語言模型(T5-XXL)的4倍。迄今最大語言模型Switch Transformer的設計原則是,用一種簡單有效的稀疏性擴展Transformer模型的參數量。它建立在專家混合的基礎上,這是90年代初首次提出的人工智慧模型範式。
  • 目前最佳的幾個人工智慧開發框架以及(GPT-3)模型簡介
    由舊金山的人工智慧研究實驗室OpenAI創建的gpt-n系列的第三代語言預測模型。 GPT-3於2020年5月發布,並於2020年7月進行了beta測試,它是面向訓練前語言表示的自然語言處理(NLP)系統趨勢的一部分。在GPT-3發布之前,最大的語言模型是微軟於2020年2月推出的圖靈NLG。與GPT-3相比,其容量為170億個參數,不足其10%。
  • 「開源」江湖前景廣闊,百度一馬當先推動人工智慧共同發展進步
    作為國內AI開源的扛把子,百度飛槳集深度學習核心訓練和推理框架、基礎模型庫、端到端開發套件和豐富的工具組件於一體,並根據本土化特點將開源框架與應用層面做了更好的結合,旨在打造自主可控的人工智慧作業系統,持續賦能廣大開發者,這意味著個人開發者也可以利用飛槳提供的平臺部署自己的深度學習模型。
  • 清華大學唐傑教授:認知圖譜是人工智慧的下一個瑰寶(附PPT下載)
    比如說高精度知識圖譜的構建,領域制度的應用系統,超大規模城市知識圖譜的構建,還有基於知識圖譜的搜索和推薦等。 邏輯生成。與計算模型相關,需要超大規模的預訓練模型,並且能夠自動進行內容生成。 認知推理。
  • 28.5萬個核心的AI超算機,最大語言模型...
    一、AI超級計算機亮相,針對大規模分布式AI模型訓練2019年7月,微軟宣布向人工智慧研究實驗室OpenAI投資10億美元,以共同構建一個新的Azure AI超算平臺,將主要用於訓練和運行更加先進的AI模型,其中包括基於微軟Azure AI超算技術。同時,這筆投資也將進一步幫助OpenAI開發AGI(通用人工智慧)技術。
  • 人工智慧的知識點科普
    其他類型的人工智慧有哪些? 人工智慧研究的另一個領域是進化計算,它借鑑了達爾文的自然選擇理論,並發現遺傳算法經歷了幾代人之間的隨機變異和組合,從而試圖發展出針對給定問題的最佳解決方案。 這種方法甚至被用來幫助設計人工智慧模型,有效地利用人工智慧來幫助構建人工智慧。
  • 人工智慧已經成為企業轉型的關鍵技術力量
    人工智慧API、人工智慧平臺、人工智慧開源社區等,也成為了產業發展的熱詞。 今年10月23日,2020年科大訊飛全球1024開發者節以「A.I.煥新•更美好」為主題,在合肥啟幕。在大會的上半場,科大訊飛高級副總裁、消費者事業群總裁發布了全新1024計劃4.0,同時,還公布了訊飛開發平臺聯合艾瑞諮詢發布的《2020中國人工智慧API經濟白皮書》。
  • 新記錄誕生,騰訊雲2分31秒打破ImageNet訓練記錄
    這次記錄是基於公有雲25Gbps的VPC網絡環境,使用128塊V100 GPU,藉助最新研製的Light大規模分布式多機多卡訓練框架創造的,最終成績定格在2分31秒訓練 ImageNet 28個epoch,TOP5精度達到93%,之前的業界最好成績是2分38秒。據了解,這項記錄的背後團隊來自騰訊雲智能鈦團隊、騰訊機智團隊、騰訊優圖實驗室以及香港浸會大學計算機科學系褚曉文教授團隊。
  • 同時掌握96門語言,多項世界突破,百度發布預訓練模型ERNIE-M
    然而,這些系統的構建往往依賴於大量的標註數據,而許多系統使用單一語言訓練,並不能直接應用於其他語言,這對於機器理解標註語料稀少的小語種(比如布列塔尼語、冰島語)來說無疑是一個巨大的挑戰。如何構建統一的語言模型,理解多種語言,是近年來自然語言處理領域研究的熱點。多語言模型對於小語種這種低資源語言的理解十分有幫助。
  • 分布式搜尋引擎可以挑戰Google的統治地位嗎?
    一些初創公司提出了分布式搜尋引擎的概念,著眼於構建Web 3.0背後的去中心化思想。儘管創建一個功能齊全且可行的分布式搜尋引擎非常複雜,但他們始終在嘗試各種模型以實現這一目標。誰能想到,這個推動網際網路興起的故事,會在後來誕生谷歌(Google),從此主宰了不斷發展的網際網路世界的進程?
  • ...Top5,Windows 應用全面統一,史上最大語言模型將開源
    在 Build 2020 大會上,微軟宣布了堪比世界 Top 5 的 AI 超級計算機,它用於訓練超大型人工智慧模型。微軟官方表示,該計算機是與 OpenAI 聯合構建的,專為訓練 OpenAI 的 AI 模型而設計。這將使下一代超大型 AI 模型和訓練這一模型所需的架構成為可供其他機構和開發人員開發的平臺——當然,這只是第一步。
  • 螞蟻金服推出分布式的圖神經知識表示框架,性能和可擴展性俱佳
    其次,他們是天生的直推式(Transductive)模型,即無法對沒出現在訓練集中的實體進行預測。最後,這些方法無法處理包含數以百萬計的實體和關係的工業級的大規模知識圖譜。為了解決這些問題,本文旨在建立一個可擴展的分布式知識圖表示框架,以靈活地提取豐富的知識,供下遊應用使用。該框架需要滿足以下三個關鍵特性:(1)語義豐富: 高階結構和屬性信息能夠有效地保存原始圖的屬性。