自然语言模型算法太杂乱?国产统一 AI 开源框架来了!
2019年8月,基于深度學習的語音和自然語言理解模型訓練平臺DELTA正式開源。一經開源,DELTA登上GitHub?熱榜,獲得 1k+的Star數,受到深度學習框架Keras的作者Fran?ois Chollet的關注。DELTA可助力AI開發者創建、部署自然語言處理和語音模型,構建高效的解決方案,讓NLP應用更好落地。
在滴滴里,NLP和語音技術有重要的應用:通過智能客服系統來輔助人工客服,通過語音識別和自然語言理解技術來研發駕駛員語音助手,讓日本、澳洲等地的滴滴司機通過語音“免接觸”接單。這些業務的背后,均使用到DELTA作為后臺模型。
DELTA的原理是什么?為何要做這樣一款AI開源項目?對此,本期「AI技術生態論」欄目專訪滴滴AI Labs研究員、DELTA項目負責人,韓堃,來一探究竟。
韓堃
模型算法很多?為何不統一起來?
韓堃在機器學習領域已有10余年研究經驗:自2008年起,他來到美國俄亥俄州立大學攻讀博士,研究方向是基于機器學習的語音處理。2014年畢業后加入Facebook,從事語音識別、自然語言理解、推薦系統方面的工作。
自2018年起韓堃加入了滴滴AI Labs,目前帶領一支十多人的團隊做自然語言理解和語音處理方面的研究和產品開發工作。
談及DELTA的研究初衷,是在韓堃加入滴滴之際,發現團隊里用到各種深度學習和自然語言理解的模型算法很多。
特別在代碼層面,有從開源項目拿來的,也有內部開發的,其中很多東西在功能上是可以復用的。
在這種情況下,韓堃和團隊開始思考:如果能把各種模型算法納入統一的框架下,將會加速算法開發迭代,也能促進團隊更好的合作。
于是技術團隊對自然語言理解的代碼進行整體重構,把各種模型算法用一套系統統一起來,使代碼易用易讀易開發。在開發過程中,他們發現這套系統對于滴滴外部也是很有價值的,于是開始考慮把代碼開源,并朝這一方面努力。
底層框架升級,掉入兼容大坑
在DELTA快速迭代的過程中,團隊為了想使用到底層框架新版本的新功能,也曾掉入兼容的坑里:
一開始DELTA是基于TensorFlow 1.12系統來構建的,在技術迭代的過程中發現TensorFlow升級到1.14,引入很多新功能。團隊為了使用新功能,迅速將DELTA的核心模塊升級到1.14。
結果導致參與研發DELTA的其他開發者的代碼不兼容,出現了一些Bug。大伙立即停下手上的工作來抓緊時間修復DELTA,影響了整體的研發節奏。
經此一役,韓堃表示:在項目合作的過程中,涉及到升級版本是很常見的事。但是我們開發者需謹慎推進,畢竟涉及到很多其他人的工作和穩定性。
吸取經驗總結,在TensorFlow升級到2.0時,DELTA以兼容的方式同時支持2.0和1.14的代碼后,再逐步優化代碼來升級到2.0。
?
實現技術架構詳解
由于自然語言處理模型和語音模型是眾多AI系統與用戶交互的接口,DELTA旨在進一步降低開發者創建、部署自然語言處理系統和語音模型的難度。
DELTA的實現細節:
DELTA主要基于TensorFlow構建,能同時支持NLP和語音任務及數值型特征的訓練。整合了包括文本分類、命名實體識別、自然語言推理、問答、序列到序列文本生成、語音識別、說話人驗證、語音情感識別等重要算法模型,形成一致的代碼組織架構,整體包裝統一接口。
當用戶準備好模型訓練數據,并指定好配置Configuration,模型訓練pipeline可以根據配置進行數據處理,并選擇相應的任務和模型,進行模型訓練。
在訓練結束之后,自動生成模型文件保存。該模型文件形成統一接口,可以直接上線使用,快速產品化,能讓從研究到生產變得更容易。
值得注意的是,除可支持多種模型的訓練,DELTA還支持靈活配置,開發者可基于DELTA搭建成多達幾十種的復雜的模型。
此外,DELTA在多種常用任務上提供了穩定高效的基準,用戶可以簡單快速地復現論文中的模型的結果,同時可在此基礎上擴展新的模型。在模型構建完成后,用戶可以使用DELTA的部署流程工具,迅速完成模型上線。從論文到產品部署無縫銜接。
?
三大優勢
與其他自然語言處理和語音處理的開源項目相比,像Google的Tensor2tensor和Facebook的PyText等項目較側重研究,主要用于快速的模型搭建和實驗。而團隊花很多時間針對模型的產品化做開發,力求DELTA在工業級應用的支持上,能幫助快速上線和產品化。
總體來說,DELTA具有三大特點:
1、便捷使用
支持常用的語音和文本處理的任務模型,用戶開箱即用,直接訓練常用模型;
針對工業界常用的多模態場景,支持語音、文本、外部特征的多模態聯合學習;優化并行數據處理前段和高速的模型實現,快速訓練海量數據;
可定制的配置文件,用戶可以深度配置模型結構和參數。
2、簡潔上線
訓練和上線無縫銜接。各種特征提取和預處理模塊均以TensorFlow Op形式實現,整體統一封裝成TF Graph,打通數據-模型-上線流程;
所有模型對接統一輸入輸出,模型對外部透明,對任何新模型部署,無需改動上線代碼。
3、快捷開發
內部模型和任務組件高度模塊化,比如CNN、RNN、attention等,開發者可以方便調用;
基本模塊均經過完整測試,性能高效穩定,適合重用。
滴滴夸、車載語音交互系統都在用DELTA!
在滴滴內部,DELTA應用在很多語音和自然語言處理的項目上,例如前陣子網友熱議對司機發送“彩虹屁”的滴滴夸,其背后便是DELTA支持的自然語言理解模塊:
另外,在滴滴與外部合作伙伴研發的車載語音交互系統中,整套對話交互系統是基于DELTA研發的。
談及未來,韓堃表示在技術上,準備將DELTA的使用門檻進一步降低,讓使用者更容易上手。開發Auto ML的功能,把參數調優進一步簡化。在生態上,一是繼續推廣DELTA,二是考慮加入頂級開源項目的孵化計劃,以更高的標準去推動項目。
關于開源的建議
滴滴開源是滴滴出行高級副總裁章文嵩推動起來,目前滴滴已對外開源了39個項目,涵蓋AI、小程序、智慧交通、中間件、前端框架、研發工具等,Star數已超過5.6W。
技術團隊一開始是奔著內部項目來開發DELTA,在內部開源后,得到一些積極反饋后,于是往外部開源,并在2019年的ACL會議上,配合滴滴的活動正式開源。
談及開源,在CSDN 《2019-2020 中國開發者調查報告》中,77%的開發者每周在開源上投入時間不超過5小時,其中1小時以內的占31%。對此,據韓堃觀察,國內互聯網行業工作壓力較大,在工作之余去做一個開源項目確實不容易。
另外,在國內的IT環境里,一些開發者對于技術本身長期深入追求不是特別大,更多的是看中短期的收益。但韓堃認為,好的開源項目往往是經過前期相當長的開發和積累之后再發力的,這可能會使得國內開源開發者的動力不足。
韓堃表示,開源本身是有樂趣的,熱愛開源的開發者會繼續下去的。以其相識的國外開源開發者為例,他們非常積極地參加各種Meetup和講座,并與非開源圈子內的人做交流,讓更多的人認識開源、并參與進來,這些都是非常有幫助的。
那么如何改善國內的開源生態?
韓堃表示,一方面需要業界領頭人主動認識到開源的重要性,從頂層設計上去推動開源活動,另一方面也需要開發者們多和外界交流,讓更多的人認識到開源不僅僅是開發者的自娛自樂,而是有巨大價值的。
傳送門:https://github.com/didi/delta
?
總結
以上是生活随笔為你收集整理的自然语言模型算法太杂乱?国产统一 AI 开源框架来了!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NUXT 入门第一课: 关于 Nuxt.
- 下一篇: bubbliiiing/keras-fa