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