百度全功能AI開發平臺BML自動超參搜索技術全面解析

2021-01-08 極客公園

在人工智慧領域,算法工程師在訓練神經網絡模型的過程中,完成網絡構建和準備好訓練數據後,往往需要對模型進行各種參數優化,以獲得更好的模型效果。但調參其實並不簡單,背後往往是通宵達旦的參數調試與效果驗證,並需要做大量的實驗,不僅耗時也耗費大量算力。

這個時候,往往想嘗試自動超參搜索,但又開始擔心算力要求所帶來的額外訓練成本。

莫慌!百度全功能AI開發平臺BML帶著免費算力額度與自動超參搜索能力來了!

先來介紹百度最近全新升級的BML,何方神聖?

全功能AI開發平臺BML(Baidu Machine Learning),是為企業和個人開發者提供機器學習和深度學習一站式AI開發服務,並提供高性價比的算力資源,助力企業快速構建高精度AI應用。BML提供了從數據採集、數據清洗、數據標註、智能標註與多人標註、模型訓練生產到模型管理、雲端及離線推理服務管理等AI開發過程的全生命周期管理功能。

BML內置百度超大規模預訓練模型,只需少量數據即可獲得高精度模型效果。目前,BML已經支持腳本調參、Notebook與自定義作業這三種開發建模方式,靈活匹配企業開發者的開發習慣。

在目前的腳本調參使用流程中,BML已經預設了模型超參數,但由於用戶數據集內容豐富多樣,預設的超參數很難在所有的數據集上得到很好的訓練效果。用戶可以自行調整超參數,但是手動調參十分耗費人力。為了減輕用戶在調參上的精力投入, BML的研發大佬們日夜奮戰,為用戶上線了自動超參搜索的功能,幫助用戶自動搜索效果較優的超參組合,省去調參的煩惱。

話不多說,進入本次正題,百度BML的自動超參搜索技術有哪些亮點?

提供多種搜索算法

所謂「超參」,有別於模型網絡結構內部各層的參數,是指需要人為調整,通過人為經驗設置來提高模型效果的參數,常見的超參包括學習率(learning_rate)、批樣本數量(batch_size)等。在超參搜索的過程中,由於模型複雜、計算成本很高,且每個超參數都有較大的取值範圍,導致搜索空間十分龐大,因此我們需要有「自動」超參搜索。

自動超參搜索相比於人工調參,主要是省去了人工觀察實驗結果並調整參數再試驗的過程,自動超參搜索把這個步驟用各種搜索算法來代替。

BML提供的搜索算法有:

隨機搜索

顧名思義是在參數變量的變化區間中隨機採樣參數組合成候選集,應用候選集進行訓練和效果對比。隨機搜索是普適的效率較高的搜索方法,通常作為基線標準,適用於對效率要求較高的情況,但不能保證一定能搜索到最佳的超參。

貝葉斯搜索

在搜索空間中隨機選取初始超參數點,然後根據已有超參對應的指標結果擬合概率模型,通過概率模型推測最佳超參點,接著再試驗得到這些超參點的結果。如此反覆優化,再有限試驗次數中搜索出合適的超參數。基於模型的序貫優化方法(SMBO, Sequential Model-Based Optimization)是貝葉斯搜索的一種範式,包括兩個部分:代理模型(surrogate model)和採集函數(acquisition function)。根據代理模型和採集函數的不同,貝葉斯搜索方法也有許多實現形式,其中TPE(Tree-structured Parzen Estimator)是一種全局探索能力較佳的方法,採用核密度估計方法(KDE, Kernel Density Estimation)生成代理模型,採用EI(Expected Improvement)作為其採集函數生成新採樣點。

進化算法

進化算法是一種基於種群概念的超參搜索策略,把超參配置視為一個種群,並行優化多個種群並在種群內部進行優勝劣汰的篩選,最終輸出最佳模型。這個過程(如下圖所示)是從遺傳算法獲得的靈感,種群的初始化採用隨機的方式生成,個體的優勝劣汰具體指利用(exploit)和探索(explore)兩個步驟,不僅可能會從表現較好的個體中複製參數,它還能通過隨機擾動修正當前的值而探索新的超參數組合。

百度創新提出了隨機微分方程無梯度優化算法PSHE2,採用哈密爾頓動力系統搜索參數空間中「勢能」最低的點以替代隨機擾動,加速迭代收斂。超參搜索過程中想要求得最優解就是要找到更新超參數組合的方法,即如何更新超參數,才能讓算法更快更好的收斂到最優解。PSHE2算法根據超參數本身歷史的最優,在一定隨機擾動的情況下決定下一步的更新方向。過程如圖所示。

自動超參搜索方法比較

上表歸納了一下這些搜索方法的優缺點。總之,網格搜索和隨機搜索實現上比較簡單,不利用先驗知識選擇下一組超參數,其中隨機搜索效率相對較高。貝葉斯搜索和進化算法需要用前一輪的信息進行迭代搜索,搜索效率明顯提升。

BML自動超參搜索的實現:系統架構

BML自動超參搜索功能基於百度自研自動超參搜索服務,服務運行過程如下圖所示,依靠百度智能雲CCE算力,支持多自動搜索任務並發。為了提供一個「好用」的自動超參搜索服務,架構實現時在並發搜索效率提升和系統容錯方面著重進行了考慮。

一次超參搜索任務包含以下流程:

1.業務平臺把超參搜索任務的用戶配置信息提交到超參搜索服務,會創建一次搜索實驗(Experiment),並記錄到db中。

2.搜索服務把任務提交到Experimentcontroller,由controller初始化創建Trial管理模塊,並負責Experiment生命周期的管理。

3. Trial是具體的訓練試驗,一個Experiment會產生多個Trial來探索不同超參數組合的最終效果。Tuner是超參生成的模塊,會根據選擇的超參搜索算法,推薦下一個Trial所使用的超參值。在Trial管理模塊中,Exp Manager會負責生成若干Trial,向Tuner請求具體的試驗超參數,並向Trial Scheduler發送Trial任務信息。

4. Trial Scheduler會與底層資源交互實際啟動Trial。Trial Scheduler會管理所有Trial的生命周期。

5.每個Trial運行完成後,會向Exp Manager匯報指標等信息,用於匯報給tuner並記錄到db。

BML自動超參搜索主要有以下特性:

1、簡單易用:相比於同類產品的複雜配置,BML在為用戶提供必須的開放配置項的前提下,儘可能減少超參配置的繁瑣程度,凡是可以自動化的工作均不對用戶可見。

2、模型豐富:與腳本調參上提供的豐富的模型打通,可以直接配置化完成相應任務的搜索,甚至不用寫代碼!

3、容錯機制:自動超參搜索任務具有模型訓練次數多、任務整體運行時間長的特點,受顯存資源限制,有些搜索出的超參數無法成功運行。兼顧搜索效果和可用產出,增設模型訓練失敗次數閾值,把Experiment和Trial這樣多任務的複雜狀態管理分拆到各層模塊中,儘可能為用戶提供搜索出的可用結果。

4、支持早停與採樣:搜索框架內部支持自動早停,當達到設定的預期結果時即可自動停止;同時也支持在界面上手動提前停止,減少用戶的等待時間,避免不必要的算力消耗。支持用戶選擇大數據集時自動進行採樣,減少超參搜索訓練耗時,以儘快搜索出合適的超參為上。

5、高效分布式智能搜索:深度學習模型的訓練時間往往較長,對於大規模數據集或者複雜模型的搜索任務,單機串行的搜索方式幾乎不可用。我們注意到有的搜索算法中每次試驗是可以獨立進行訓練的(如網格搜索、隨機搜索),可以直接對所有試驗並行化;有的搜索算法雖然本質基於迭代,但每個迭代中的試驗運行仍然是相互獨立的,因此我們可以在迭代內部進行並行化搜索。BML內部實現了智能調度系統,根據不同的算法類型,採用不同的並發策略,可以大幅度降低整體搜索時間。

上手實操:自動超參搜索使用攻略

1.首先在BML首頁點擊「立即開始」,並在左側「模型訓練」模塊創建一個腳本調參項目,如果已經有項目了,直接用就可以!目前支持超參搜索的項目類型有圖像分類(單標籤和多標籤)及物體檢測,創建對應類型的項目就可以了。

2.在項目裡新建任務,配置好任務的網絡、數據、腳本之後,就可以看到「配置超參數」的選項了。這裡如果已經有超參搜索的結果,可以直接勾選「已有超參搜索結果」來使用,如果第一次使用還沒有,就直接選擇「自動超參搜索」。

3.目前BML支持了三種超參搜索算法,如圖,分別是貝葉斯搜索、隨機搜索和進化算法,可以根據自己需要選擇一種來搜索。具體配置項說明可以參考技術文檔。

3.1貝葉斯搜索的參數說明

【初始點數量】代表貝葉斯搜索中,初始化時參數點的數量,該算法基於這些參數信息推測最優點,填寫範圍1-20。

【最大並發量】貝葉斯搜索中,同時進行試驗的數量,並發量越大,搜索效率越高,填寫範圍1-20。不過這個並發量也會受限於頁面最下方選擇的GPU數量,實際並發量是二者的較小值。

【超參範圍設置】:可以是默認配置,也可以手動配置。默認的話百度的工程師們已經幫我們對不同網絡、GPU卡型設置了一個基本靠譜的搜索範圍,直接用就可以。當然也可以手動配置,可以自定義各個超參的範圍,可以看到物體檢測支持以下這些超參自定義搜索範圍:

【最大搜索次數】:是指最多組合出多少組超參並跑試驗,當然有可能會因為提前達到目標而停止,節約費用。

【數據採樣比例】:使用超參搜索時,會對原始數據集進行採樣後再訓練,加快搜索速度。當數據集並不大時,不推薦採樣喲,可能會影響最終效果,只有大數據量時才有使用採樣的必要。

【最高mAP/最高精確率】:是指大家期望模型效果可以達到的mAP(物體檢測)或準確率(圖像分類)的值,當試驗中達到這個值了搜索就會停止,避免後續浪費搜索時間。

3.2隨機搜索參數說明

隨機搜索最簡單啦,就不需要再額外配置算法相關的參數了,其它公用的選項和貝葉斯搜索的含義是一樣的,參考貝葉斯搜索即可。

3.3進化算法參數說明

進化算法是一種效果較好的算法,應用此算法時也需要進行較多的選項設置:

【迭代輪數】:進化算法運行中迭代的輪數,範圍5-50。

【擾動間隔】:進化算法每隔幾個epoch就會進行隨機擾動,利用隨機因素防止算法結果收斂於局部最優解。

【擾動比例】:類似於染色體交叉的形式,迭代中一個種群內最好與最壞的個體依據擾動比例進行交叉。

【隨機初始化概率】:在擾動中,有一定概率對個體的超參數進行初始化。

【種群個體數量】:一個個體代表一種超參數設置,一個種群中包含多個個體。其它選項和貝葉斯搜索的含義一致,也不重複了。進化算法的配置需要對算法的原理有一定的了解,如果對算法不明白的,就直接用百度給的默認值吧!

1.超參的選項設置完成了,最後選擇GPU卡類型和數量,以及最大搜索時間,就可以提交任務啦!這裡默認的搜索時間是24小時,畢竟超參搜索會運行多次試驗,時間會比較長,需要耐心等待,當然如果選的GPU卡數越多,並發試驗數就越高,從提交任務到搜索完成的耗時就會變少,這是顯而易見的

2.任務提交之後,過一會當任務進入「超參搜索中」的狀態時,就可以看到各個試驗的進度了,包括各個試驗的狀態、日誌和準確率(mAP)

3.超參搜索訓練完成後,效果最優的5次試驗可以看到詳細的評估結果,也能用於後續的效果校驗和發布。當然,如果在超參搜索時對數據進行了採樣,這時候可以重新發起一次訓練任務,用這次搜索出來效果滿意的超參數進行全量數據訓練,從而獲得完整數據的模型效果。

效果才是硬道理:超參搜索效果提升高達20%+

我們對比了圖像分類、物體檢測、實例分割等任務在使用普通腳本調參和超參搜索的效果情況,以下是5個不同數據集在BML平臺上分別使用默認腳本調參參數、超參搜索使用進化算法、超參搜索使用貝葉斯搜索算法的效果對比。圖中左邊縱軸為模型的準確率,右邊縱軸為超參搜索算法在效果上提升的比例。可以看到在不同數據集上使用超參搜索後效果均有提升,在默認參數精度已經超過85%的情況下,使用超參搜索仍能提升約5%,在默認參數效果較差的情況下,超參搜索的提升效果更為明顯,可高達22%。

在常規操作下,可用的深度學習自動超參搜索由於需要集群計算資源,往往被認為只有大公司才能配置,普通開發者難以上手嘗試。通過使用百度全功能AI開發平臺BML,預算有限也有機會用上自動超參搜索,開發效率瞬間搭上火箭速度,擺脫人力「煉丹」的束縛。BML新用戶現在還提供100小時免費P4顯卡算力,羊毛在向你招手,快來薅一把!

相關焦點

  • 乾貨速遞,百度BML自動超參搜索技術原理揭秘與實戰攻略!
    但調參其實並不簡單,背後往往是通宵達旦的參數調試與效果驗證,並需要做大量的實驗,不僅耗時也耗費大量算力。  這個時候,往往想嘗試自動超參搜索,但又開始擔心算力要求所帶來的額外訓練成本。  莫慌!百度全功能AI開發平臺BML帶著免費算力額度與自動超參搜索能力來了!  先來介紹百度最近全新升級的BML,何方神聖?
  • 調參到脫髮?自動超參搜索帶著免費算力資源拯救你!_發現頻道_中國...
    但調參其實並不簡單,背後往往是通宵達旦的參數調試與效果驗證,並需要做大量的實驗,不僅耗時也耗費大量算力。  這個時候,往往想嘗試自動超參搜索,但又開始擔心算力要求所帶來的額外訓練成本。  莫慌!百度全功能AI開發平臺BML帶著免費算力額度與自動超參搜索能力來了!  先來介紹百度最近全新升級的BML,何方神聖?
  • 夏日專刊AI產品上新升級集錦,50餘項軟硬能力加速場景落地
    往期已開放簡歷解析、人崗匹配邀測功能,本期簡歷畫像功能開放邀測,可基於簡歷輸出人才評分、簡歷分類、多維度標籤(簡歷標籤、項目經歷標籤、工作經歷標籤、技能標籤欄位)。法律政務領域方案 智能庭審輔助解決方案開放邀測基於自然語言處理、知識圖譜等技術解析處理行業文書,實現庭審要素的自動識別、歸納與推薦,提供案由要素提取、案件相關聯推薦、案件智能檢索功能,與法律行業深度結合。
  • 百度「學術搜索」功能上線
    百度「學術搜索」功能上線 記者日前發現,百度悄然上線了「學術搜索」功能,通過與萬方數據知識服務平臺、維普諮詢網等多家國內領先的學術數據提供商合作,收錄上千萬篇學術論文,藉助百度領先的「框計算」技術和數據開放平臺
  • 百度AI的2020
    開源開放已經成為驅動技術創新和加速產業發展的核心動能。飛槳是中國首個開源開放、功能完備、自主可控的產業級深度學習平臺。飛槳開源框架 V2.0RC 版本,帶來「編程一致、動靜統一」的全新開發體驗,代碼開發更加簡潔,降低遷移成本,同時為深度概率編程、量子機器學習等前沿學術研究提供更好的支持。
  • 搶佔AI翻譯賽道,搜索平臺為何不約而同發力NMT?
    搜索公司在AI翻譯這個事上扎堆並不令人意外。2016年,GNMT技術(谷歌的神經網絡機器翻譯技術,模仿人腦的神經思考模式)全面布局於谷歌翻譯系統中,隨後,谷歌聲稱其AI翻譯的譯文質量誤差降低了55%-85%,並且將此技術廣泛應用於網頁翻譯與手機應用。
  • 華為全棧全場景AI助力智能升級,一文看懂企業AI開發路線
    2 ModelArts:全流程加快 AI 應用開發和部署  有了 AI 計算框架,下一步就需要一套端到端的 AI 開發平臺來實現 AI 應用的快速落地。華為雲 ModelArts 架構師白小龍博士就此分享了華為雲 ModelArts 一站式 AI 開發平臺及關鍵技術,應用案例。
  • Yes AI Do! 百度從AI技術領先向應用領先強勢進化 | 2018百度世界...
    Road、Efficient City)——這是一個全棧式解決方案平臺,基於百度全球領先的自動駕駛Apollo、智能雲、百度大腦等技術和能力,打造城市級平臺生態。李彥宏表示,百度AI城市將率先落地北京和上海。北京將打造成為超大型城市智能化治理樣板,而上海則以超前理念探索構建智能新城。百度大腦深入三大國民經濟產業百度大腦是在2016年9月,百度首次向外界展示的人工智慧綜合平臺,同時向開發者、創業者以及傳統企業開放百度大腦的核心功能和底層技術。
  • 百度為自動駕駛申請多個apollai 商標 ,阿波羅計劃背後的AI技術...
    據網友曝料,「百度申請了多個apollai 商標,新創名詞apollo+ai=apollai」。Apollo(阿波羅)是百度在2017年4月發布的向汽車行業及自動駕駛領域的合作夥伴提供的軟體平臺,旨在向汽車行業及自動駕駛領域的合作夥伴提供一個開放、完整、安全的軟體平臺,幫助他們結合車輛和硬體系統,快速搭建一套屬於自己的完整的自動駕駛系統。之所以將計劃命名為「Apollo」計劃,就是借用了阿波羅登月計劃的含義。
  • 【BDTC先睹為快】百度沈國龍:BML百度大規模機器學習雲平臺實踐
    在推薦系統論壇,本次大會邀請到了百度基礎架構部高級架構師沈國龍擔任演講嘉賓,進行題為「 BML百度大規模機器學習雲平臺實踐」的主題演講,分享百度機器學習平臺BML的底層框架實現,包括框架演進、算法研究過程等,以及在不同的業務場景下是如何應用這些算法。沈國龍在接受CSDN的會前採訪中表示,大數據其實是一個綜合學科,開發者需要具備多方面的知識儲備才能勝任。
  • 全面AI化的百度地圖 才是百度無人車戰略的大殺器
    不過除了對「三天造出巡跡自動駕駛汽車」的不可思議以及對百度這次徹底全面開放大氣魄、大野心的讚嘆之外,筆者卻在關注一個很關鍵的細節,那就是百度人工智慧布局的另一重器——百度地圖在這家巨頭網際網路公司全面布局人工智慧的方略中起到了什麼作用。
  • 從谷歌AutoML到百度EasyDL,AI大生產時代,調參師不再是剛需
    2018 年 4 月,百度宣布全面開放EasyDL,基於百度飛槳在深度學習領域深厚的技術積累,EasyDL 開始走上快車道。 作為百度大腦推出的零門檻AI開發平臺,EasyDL 支持面向各行各業有定製 AI 需求的企業用戶及開發者使用。
  • 百度大腦產品上新&技術升級:圖像處理、智能寫作平臺、語音識別
    百度大腦一月一次的最新技術&產品盤點來了。在這裡,與百度大腦一起成長,見證 AI 的力量。您可以從 PC 端訪問百度 AI 開放平臺(ai.baidu.com)申請邀測,或使用最新產品。新開放 AI 技術能力語音識別語音識別極速版支持60秒內音頻使用 REST API 方式進行調用,簡單易用。
  • 人民日報創作大腦背後的AI支撐:百度大腦智能創作平臺技術解密
    人民日報"創作大腦"具備直播智能拆條、在線視頻快編、圖片智能處理、智能字幕製作、可視化大數據、智能寫作、新聞轉視頻、實時新聞監測等18項重點功能,是集輕應用平臺、智慧媒體雲、知識社區、開放生態於一身的一站式智能創作平臺,能夠為媒體機構提供全媒體生態智能解決方案。人民日報"創作大腦"背後,是百度智能雲提供領先的雲+AI技術支持,尤其是來自百度大腦智能創作平臺的支持。
  • 百度EasyDL自研數據增強服務加持AI模型開發
    基於對建模思路的評估和判斷,百度工程師決定將遺傳進化和可微分思路應用到零門檻 AI 開發平臺 EasyDL 中,便於開發者進一步優化模型效果。EasyDL 面向企業開發者提供智能標註、模型訓練、服務部署等全流程功能,針對 AI 模型開發過程中繁雜的工作,提供便捷高效的平臺化解決方案,並且內置了豐富的預訓練模型與優化的多種算法網絡,用戶可在少量業務數據上獲得高精度的模型效果。
  • 百度發布阿波羅計劃,全球首家對外開放自動駕駛技術與平臺
    「Apollo」平臺的結構包括車輛平臺、硬體平臺、軟體平臺、雲端數據服務等四部分。4月19日,百度宣布了一項旨在開放自動駕駛技術的「Apollo計劃」,希望將成熟的技術分享出來,與無數致力於推動自動駕駛技術發展的夥伴一起,更好更快探索自動駕駛領域。
  • 百度發布阿波羅計劃 全球首家對外開放自動駕駛技術與平臺
    百度將向汽車行業及自動駕駛領域的合作夥伴提供一個開放、完整、安全的軟體平臺,幫助他們結合車輛和硬體系統,快速搭建一套屬於自己的完整的自動駕駛系統。  「Apollo」平臺的結構包括一套完整的軟硬體和服務體系,包括車輛平臺、硬體平臺、軟體平臺、雲端數據服務等四大部分。
  • 免費計算資源,百度一站式開發平臺:AI Studio零門檻實現AI能力
    2018 年 7 月 4 日-5 日,百度在國家會議中心舉辦第二屆 AI 開發者大會。在今年的開發者大會上,百度發布了 PaddlePaddle3.0,既升級了核心框架,又提供了 EasyDL 快速應用平臺、AutoDL 網絡結構自動化設計,以及 AI Studio 在線實訓平臺。
  • 百度學術搜索打造國內億級中英索引量學術平臺
    說起論文,幾乎每個學生都有奔波於各大圖書館、跳轉於多個網際網路知識平臺查找資料的經歷,但困難往往不在於缺乏資料,而在於信息海量且資源分散。6月13日,百度學術搜索正式上線(http://www.baidu.com/?
  • 百度地圖智能化蛻變:AI技術如何讓導航更加準確、易用?
    當然,百度地圖也沒有把自己局限在導航指路等基礎功能上,而是要成為一個綜合性的「智能化位置服務平臺」。今年的新冠疫情來勢洶洶,在這場抗疫戰中,百度地圖作為「智能化位置服務平臺」,也發揮了重要作用。疫情期間,基於時空大數據及人工智慧技術,百度地圖推出了遷徙大數據平臺和實時路況平臺,為民眾日常出行、物資運送以及疫情防控決策提供重要的參考。