站長資訊網
最全最豐富的資訊網站

PaddleHub 1.0正式發布:一鍵模型加載,十行代碼完成遷移學習

  引言

  飛槳(PaddlePaddle)核心框架Paddle Fluid v1.5已經發布啦,而作為其關鍵工具用來遷移學習的PaddleHub也進行了全面更新,正式發布了1.0版本。全新的PaddleHub模型和任務更加豐富,為用戶提供了覆蓋文本、圖像和視頻三大領域八大任務的40+預訓練模型,同時還在飛槳官網上開辟了PaddleHub的網頁。本文將對PaddleHub及其更新做更加全面的介紹。

  PaddleHub是什么

  深度學習模型的價值在AI時代不斷增大。要想得到一個高質量的深度學習模型,離不開4個要素,優秀的算法、充足的算力、豐富的數據以及專家知識。大家在深度學習中常常遇到以下問題:

  1.一些研究領域只有少量標注數據,且數據標注成本較高,不足以訓練一個足夠魯棒的神經網絡

  2.大規模神經網絡的訓練依賴于大量的計算資源,這對于一般用戶而言難以實現

  3.應對于普適化需求的模型,在特定應用上表現不盡如人意

  PaddleHub就是為了解決對深度學習模型的需求而開發的工具。它基于飛槳領先的核心框架,精選效果優秀的算法,提供了百億級大數據訓練的預訓練模型,方便用戶不用花費大量精力從頭開始訓練一個模型。PaddleHub可以便捷地獲取這些預訓練模型,完成模型的管理和一鍵預測。配合使用Fine-tune API,可以基于大規模預訓練模型快速完成遷移學習,讓預訓練模型能更好地服務于用戶特定場景的應用。

  PaddleHub有什么特色

  1、通過PaddleHub,開發者可以便捷地獲取飛槳生態下的所有預訓練模型,涵蓋了圖像分類、目標檢測、詞法分析、語義模型、情感分析、語言模型、視頻分類、圖像生成八類主流模型40余個,如圖1 所示。飛槳還發布了PaddleHub的官方網頁,對各個預訓練模型的應用提供了詳實的介紹。

PaddleHub 1.0正式發布:一鍵模型加載,十行代碼完成遷移學習

圖1 PaddleHub提供了40+官方預訓練模型

  2、PaddleHub引入了模型即軟件的概念 通過Python API或者命令行工具,一鍵完成預訓練模型地預測。此外還借鑒了Anaconda和pip軟件包管理的理念設計了一套命令行接口。

  深度學習時代,模型發展的趨勢會逐漸向軟件工程靠攏;未來模型可以當作一個可執行程序,一鍵預測;也可以是第三方庫,通過模型插拔的方式提高開發者的開發效率。同時模型會有版本的概念,通過不斷迭代升級的方式提升我們模型的效果。通過命令行工具,可以方便快捷的完成模型的搜索、下載、安裝、預測等功能,對應的關鍵的命令分別是search,download,install,run等。

  如以下示例,在安裝完成飛槳和PaddleHub以后(具體安裝方法見后文示例),使用詞法分析模型LAC,可以一鍵實現分詞。

PaddleHub 1.0正式發布:一鍵模型加載,十行代碼完成遷移學習

  再如以下示例所示,是一個目標檢測的例子,通過hub run 調用不同的目標檢測模型,一行即可完成預測,同時也可以快速體驗哪個模型能更符合開發的需求。

PaddleHub 1.0正式發布:一鍵模型加載,十行代碼完成遷移學習
PaddleHub 1.0正式發布:一鍵模型加載,十行代碼完成遷移學習

圖2 PaddleHub一鍵完成預訓練模型地預測

  3、通過PaddleHub Fine-tune API,結合少量代碼即可完成大規模預訓練模型 的遷移學習。下面一節我們也會全面介紹PaddleHub的API。

  PaddleHub API全景

  PaddleHub API的全景圖如圖3所示。

  為了更好幫助用戶更好的應用預訓練模型,PaddleHub對Fine-tune做了6個層次的抽象

PaddleHub 1.0正式發布:一鍵模型加載,十行代碼完成遷移學習

圖3 PaddleHub Fine-tune API全景

  數據集 D ataset :PaddleHub提供多種NLP任務和CV任務的數據集,用戶也可以在自定義數據集上完成Fine-tune。

  數據預處理 R eader :PaddleHub的數據預處理模塊Reader對常見的NLP和CV任務進行了抽象。

  預訓練模型 M odule :Module代表了一個預訓練模型。

  優化策略 S trategy :在PaddleHub中,Strategy類封裝了一系列適用于遷移學習的Fine-tune策略。Strategy包含了對預訓練參數使用什么學習率變化策略,使用哪種類型的優化器,使用什么類型的正則化等。

  運行配置  RunConfig :在PaddleHub中,RunConfig代表了在對Task進行Fine-tune時的運行配置。包括運行的epoch次數、batch的大小、是否使用GPU訓練等。

  遷移任務 T ask : PaddleHub預置了常見任務的Task。Task代表了一個Fine-tune的任務。任務中包含了執行該任務相關的Program、數據Reader、運行配置等內容。每種Task都有自己特有的應用場景以及提供了對應的度量指標,用于適應用戶的不同需求。預置的任務類型包括圖像分類、文本分類、序列分類和多標簽分類各類任務。PaddleHub還支持用戶可以通過繼承BasicTask來實現自己的任務。PaddleHub封裝了finetune、eval、finetune_and_eval、predict等直觀的基礎接口,讓開發者更方便完成模型的遷移和應用。

  如何快速開始

  

PaddleHub 1.0正式發布:一鍵模型加載,十行代碼完成遷移學習

圖4 PaddleHub Fine-tune API使用

  接下來本文結合實際案例,講述如何快速使用PaddleHub實現十行代碼完成文本分類遷移。

  場景是標注數據不多中文文本分類場景,如何提高分類的精度和模型的泛化能力。

  這里的方案是借助ERNIE + PaddleHub Finetune API,除去安裝,只想要5個步驟,10行代碼即可解決這一問題。

  這里先介紹一下ERNIE,它是百度發布的知識增強的預訓練模型,通過建模海量數據中的詞、實體及實體關系,學習真實世界的語義知識。具體來說,ERNIE 模型通過對詞、實體等語義單元的掩碼,使得模型學習完整概念的語義表示。相較于 BERT 學習原始語言信號,ERNIE 直接對先驗語義知識單元進行建模,增強了模型語義表示能力。

  ERNIE在多個公開的中文數據集上進行了效果驗證,包括語言推斷、語義相似度、命名實體識別、情感分析、問答匹配等自然語言處理各類任務上,均超越了語義表示模型 BERT 的效果。

  接下來開始實戰演練PaddleHub。

  1.安裝

PaddleHub 1.0正式發布:一鍵模型加載,十行代碼完成遷移學習

  以上命令是安裝CPU或者GPU版本的飛槳。通過以下命令則可以安裝PaddleHub。

PaddleHub 1.0正式發布:一鍵模型加載,十行代碼完成遷移學習

  另外,PaddleHub內置了深度學習可視化工具VisualDL的依賴,通過VisualDL,可以很好的對深度學習任務進行可視化。

  2.選擇預訓練模型

  在完成安裝飛槳與PaddleHub,import導入相應模塊后,一行代碼即可加載預訓練模型。只要1分鐘,你就能得到萬級別GPU小時訓練出來的ERNIE模型。當然也可以支持BERT模型調用,只需要更換不同的模型名稱即可。

PaddleHub 1.0正式發布:一鍵模型加載,十行代碼完成遷移學習

  第二步是獲取模型上下文,包括了預訓練模型的輸入Tensor,輸出Tensor還有計算圖。這里面有個關鍵參數是trainable。如果trainable為True,那么就是一個fine-tune的任務,預訓練模型的參數會做微調,以更好的適應頂層的應用、如果trainable為False,那么就預訓練模型參數保持不變,將它當作特征提取器。對于ERNIE模型而言,不推薦使用特征提取,一定要通過Finetune的方式才能取得更好的效果。

  3.數據處理

  選擇模型后就是進行數據預處理,針對不同的遷移任務做了一系列數據處理的封裝。

PaddleHub 1.0正式發布:一鍵模型加載,十行代碼完成遷移學習

  hub.dataset.ChnSentiCorp() 會自動從網絡下載數據集并解壓到用戶目錄下。

  4.策略配置

  接下來開始配置Fine-tune時用到的優化策略。針對ERNIE與BERT類任務,PaddleHub封裝了適合這一任務的遷移學習優化策略AdamWeightDecayStrategy

PaddleHub 1.0正式發布:一鍵模型加載,十行代碼完成遷移學習

  5.創建遷移學習任務

  組建移學習任務這塊也非常簡單,首先是選擇預訓練的模型輸出,作為我們句子的特征。在這里ERNIE我們選擇pooled_output作為句子的特征輸出。也可以通過獲取sequence_output來得到詞粒度的特征,這個特征般用于序列標注。

PaddleHub 1.0正式發布:一鍵模型加載,十行代碼完成遷移學習

  Finetuning API非常智能,會自動完成評估,保存最優模型還有自動可視化的功能。Finetune API訓練過程中會自動對關鍵訓練指標進行打點,啟動程序后執行下面命令

PaddleHub 1.0正式發布:一鍵模型加載,十行代碼完成遷移學習

  其中${HOST_IP}為本機IP地址,如本機IP地址為192.168.0.1,用瀏覽器打開192.168.0.1:8040,其中8040為端口號,即可看到訓練過程中指標的變化情況

  6.模型預測

  通過Finetune完成模型訓練后,在對應的ckpt_dir目錄下,會自動保存驗證集上效果最好的模型。接下來可以按照如下的示例進行預測。

PaddleHub 1.0正式發布:一鍵模型加載,十行代碼完成遷移學習

  除了以上的介紹,PaddleHub還在AI Studio和AIBook上提供了IPython NoteBook形式的demo,開發者可以直接在平臺上在線體驗PaddleHub帶來的各種便捷。

  此外,AI studio平臺還發布了億元算力支持計劃,提供了“每日運行贈12小時”和“連續5天運行贈48小時”兩種機制共同服務,每天都得能輕松獲得! 該平臺集成算力、教程、 樣例模型、工程開發、在線部署的能力, 乃至比賽平臺,滿足從0基礎學習到技術落地的全生命周期,幫助開發者全面掌握深度學習技術的各方各面。

特別提醒:本網內容轉載自其他媒體,目的在于傳遞更多信息,并不代表本網贊同其觀點。其原創性以及文中陳述文字和內容未經本站證實,對本文以及其中全部或者部分內容、文字的真實性、完整性、及時性本站不作任何保證或承諾,并請自行核實相關內容。本站不承擔此類作品侵權行為的直接責任及連帶責任。如若本網有任何內容侵犯您的權益,請及時聯系我們,本站將會在24小時內處理完畢。

贊(0)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
日韩人妻无码精品久久免费一| 国产亚洲精品高清在线| 日韩精品一线二线三线优势| 91精品国产亚洲爽啪在线观看| 久久精品人人做人人爽电影| 久久久精品视频免费观看| 亚洲精品无码久久久| 亚洲欧美日韩国产成人| 国产乱码一二三区精品| 国产精品成人网站| 四虎成人精品一区二区免费网站| 国产精品反差婊在线观看| 55夜色66夜色国产精品视频| 精品久久久无码人妻中文字幕| 久久精品国产99久久无毒不卡| 久久一区二区精品综合| 久久精品94精品久久精品| 国产精品午睡沙发系列| 国产在线不卡午夜精品2021| 综合人妻久久一区二区精品| 人与狗精品AA毛片| 日本无码小泬粉嫩精品图| 成人精品一区二区三区不卡免费看| 久久久久亚洲精品无码网址| 国产2021久久精品| 国产偷国产偷高清精品| 久久狠狠一本精品综合网| 国产在线国偷精品免费看| 国产亚洲精品成人AA片新蒲金 | 日韩精品久久不卡中文字幕| 亚洲欧洲国产日韩精品| 日韩国产精品视频| 日韩精品中文乱码在线观看| 亚洲一日韩欧美中文字幕在线 | 久久精品无码专区免费东京热| 99久久综合精品免费| 2021在线观看视频精品免费| 亚洲午夜精品在线| 97人妻无码一区二区精品免费| 精品动漫一区二区无遮挡| 色欲AV永久无码精品无码|