面對日均億萬級違規內容,如何構建彈性深度學習計算平臺?

本文做者: @彭垚 ,七牛雲技術總監,人工智能實驗室發起人和負責人,主導了七牛雲人工智能和機器學習雲的架構和發展。在分佈式計算存儲,富媒體海量數據分析與深度學習領域有超過 10 年的產品研發經驗,曾擔任 IBM 系統與科技實驗室研發架構和管理工做多年,在美國、法國發表數篇專業領域發明專利。程序員

七牛雲人工智能實驗室於去年 6 月份創立。今天演講的主要內容包括人工智能實驗室的來龍去脈,如今在作的深度學習主要是機器視覺方面研發的成果和近況,以及深度學習計算平臺的框架架構。算法


人工智能實驗室的來龍去脈

七牛雲以存儲起家,服務移動互聯網已經五六年的時間了。這幾年移動互聯網變成了一個富媒體的時代。從社交網站上的圖片開始到短視頻,今年短視頻又開始復甦,包括去年很是火的直播。七牛一直跟着這股風潮在服務平臺上廣大的用戶。docker

 


前面這五六年七牛一直在作一件事情,這件事情統一地叫作一個詞「 Connect」,就是鏈接。鏈接主要作的事情,最先作的是數據存儲,就是讓你們把各自 App 上用戶上傳的圖像、視頻、音頻內容存放在七牛雲存儲上。以後基於雲存儲又作了一些富媒體的編解碼、圖像處理和其餘數據處理等,以後又給你們作了 CDN,使你們獲得更好的用戶體驗,可以更好地訪問這些數據、瀏覽這些數據。數據庫

去年又給你們提供了直播雲**和點播雲。咱們一直在作的關鍵事,就是讓用戶和用戶鏈接起來。那麼怎樣把用戶體驗作好,這麼多年一直在作的事情就是用戶體驗,這個用戶體驗體如今什麼地方?就是把人跟人之間的鏈接,把基礎服務提供給 App,提供給咱們的客戶。七牛雲存儲

後來發現天天用戶上傳的數據很是多,天天用戶上傳的圖像超過 10 億張,有超過萬億小時的視頻在雲存儲上。網絡

 

這麼多客戶在咱們的雲存儲上存了這麼多內容,接下來該如何給用戶提供更好的用戶體驗。因而咱們去問客戶需不須要知道這三種內容具體是什麼,即圖像、視頻、音頻的具體內容。客戶經過 App 上傳,天天在瀏覽,在分享的內容究竟是什麼,因此咱們就開始思考這個問題,而後發現有這麼幾件事情,其實他們已經本身在作了。架構

 


第一件事是不少 App 有本身專門的內容審覈團隊,審覈客戶上傳的東西內容是否是合法,有沒有涉黃、涉及反政府的信息在傳播。框架

其次,對這些圖像、視頻、音頻的內容,已經有客戶有本身的數據運營團隊去分析 App 客戶上傳的具體內容,可能用抽樣的方法,或者機器學習的方法去分析。機器學習

內容分析提及來很簡單,就是你上傳一個圖像具體是什麼,可是實際上又很複雜,很難說清楚,內容是什麼?分佈式

好比拿出一張圖片,每一個人描述一張圖片裏面有什麼東西,這個叫圖片描述。每一個人的描述可能都不同。主要問題是咱們在看到東西,聽到東西的時候,作出的反應,作出的事情跟大腦處理的任務相關。因此內容總結起來實際上是跟內容最後的目的相關的。

怎麼理解內容。首先能夠去把內容解析成不少目的。第一個是分類,分類是基本內容的解析,好比判別這個圖片是否是黃色圖片。第二個就是檢測,好比檢測這個視頻裏面有沒有人臉,這些人臉是誰,裏面出現了哪些物體,有沒有車,車的型號是什麼。還有分割,好比說一個畫面裏面,這我的的形狀是怎樣的,他跟背景的界限在哪裏,這就是一個很簡單的分割問題。
而後就是跟蹤,好比說一個視頻中,有人臉在走動,這就是一個跟蹤問題。以及一個視頻的描述,一個視頻每一段裏出現了什麼事件,每一段裏面有多少人物,這些是一個描述。還有搜索,我看了不少圖片以後搜關鍵的信息出來,再之上可能就是分析,還可能作不少的處理。

 

其實咱們去解讀 content,最關鍵的是內容的目的。首先會去看對這些內容須要作哪一些事情,以上羅列的就是咱們常常作的一些項目的相關內容。

從去年開始作了一個很大的轉變,咱們從鏈接基礎服務的提供商,變成去給客戶作智能的提供商,也就是說咱們但願幫助客戶去作智能,去提供一些智能的解決方案,讓客戶去作一些更智能、更互動性的,更瞭解本身內容的一些行爲。這就是咱們提出要把咱們的鏈接生意作成智能的生意。咱們如今有海量的數據,而圖像和視頻的泛化能力是很強的,咱們經過平臺上的數據跟用戶一塊兒共建,一塊兒訓練,就能夠獲得不少有價值、有意思的東西出來。


如今這個時代常常提人工智能,智能這個詞語究竟是什麼意思?其實好久之前圖靈機的時候就已經有智能這件事情了,而到如今你們對智能尚未一個準確真實的答案,怎麼樣算是一個智能,我我的理解的智能是相似於人同樣直覺型地思考反饋不少的東西,這可能就是最基本初級的智能。

 


其實咱們如今作人工智能,要具有泛化的能力。好比要用深度學習解決像機器視覺這樣的問題,首先要解決的最重要的兩個問題,一個是大數據的問題,還有一個就是深度學習,也就是機器學習算法的問題。天天咱們平臺上傳處理的圖像很是多,可能超過 10 億,咱們不可能把全部的上傳圖像都拿來學習一次,因此大數據的處理能力很是重要。其次就是咱們不可能把全部圖像都拿去人工作標註,這個工程量很是大。因此咱們會結合不少算法作一些半監督的機器學習,再加上標註,再加上深度的神經網絡取得最終的結果。也就是說人工智能實驗室在解決兩個問題:一個是大數據,另一個是機器學習的問題。

 


圖中是咱們去年成立的實驗室 Ataraxia AI Lab。這個名稱來源於一個古希臘的哲學學派,這個學派是個懷疑論的,Ataraxia 是指人對世界的認知是有缺陷的,你永遠不可能瞭解事物的本質,就像我剛纔提出來智能這個問題,其實每個階段都有人提出智能的含義,圖靈認爲智能能用機器製做出來,後面有希爾樂等等人反駁了他,其實智能這些東西跟用機器模仿出來的東西徹底不同。

咱們作人工智能、作認知這件事情,咱們一直在質疑本身,最終想達到的境界就是 Ataraxia 的境界,一直在不停地追求永遠達不到的一個境界,這個就是古希臘文翻譯出來的一個哲學的單詞。

機器視覺方面研發的成果和近況

咱們作的第一件事情就是把一張圖片扔進 CNN(卷積神經網絡) ,識別這張照片是色情、性感仍是正常的。若是這有搞機器視覺的朋友就會以爲這是一個很是常見、很是基礎的一個分類問題。可是這個分類問題,它其實不那麼好解決。由於會有各類各樣的圖像表述它是色情的,是性感的,因此模型須要去學習、去標註的內容很是多。咱們在去年剛建實驗室的時候,有不少實習生在實驗室天天標註這些色情內容。固然如今已經少了,由於咱們天天會有半監督打標的迭代過程,咱們一直在優化鑑別色情暴恐的系統。咱們一直固定有人在作圖像標註,包括有一些兼職的,在學校裏面在幫咱們作的,咱們本身作了一套網絡上的標註系統。

 

咱們線上已經有超過 700 萬的樣本一直在滾動,天天新增的數據就有一兩萬,一直往樣本中添加,還須要作大量的評估,以及過濾掉大量不須要打標學習的數據。咱們對算法的要求已經固化了,算法基本中止了迭代,可是數據還在不停地迭代,鑑黃項目是一個數據量很大,要滾動起來自動迭代的一個項目。

第二個是識別圖片具體內容的項目,就是人臉識別。須要對人臉提取特徵,而後對大量的圖片進行人臉聚類。好比說標註它是 id1 類的人,能夠作一些特徵的分類,像戴不戴眼鏡、年齡、性別、顏值。後面就是場景識別,場景識別如今支持 300 多類場景的識別。戶外的場景識別準確率很是高,室內會有不少誤判,好比說教室和辦公室等等。由於若是學習一個單一任務,可能會有疏漏,好比若是一張圖片裏有學生,場景是教室的機率就會很是高,成爲 Office 的機率就會很是低。如今基本的分類算法,若是要提高背景的準確率,圖像裏面的人物內容都要結合學習。

還有就是審查,咱們可以審查斷定圖像內容是非色情、非暴力、很健康的。

 

還有一些跟圖像描述相關,就是經過 CNN 提取特徵,經過 RNN(循環神經網絡) 去作圖像和視頻描述相關的內容,好比咱們在與廣電的一部分工程作嘗試,對一些球賽作分析,會學習不少名人的人臉,大概有 5000 多類名人的人臉。咱們一直在蒐集、迭代這些數據庫並對球賽的動做去作學習和描述,這就是我前面提到的描述。

 


第三個就是視頻,視頻的識別涉及到場景的概念。什麼叫場景?你能夠想象咱們在拍電影,你們就會很是容易理解鏡頭,就是 Shot 這種概念。好比咱們在拍攝這幾我的在說話作事情,忽然切了一個你們在戶外開摩托的場景,這就是場景的變化。它最根本的是對人臉和物體的跟蹤,若是忽然發現這些東西沒了,那就說明場景切換了,這就是基本的場景識別。咱們會把視頻根據場景先切開,切開之後會把場景中的事件 一、事件 2 列出來,好比說有人在打棒球,有人在開摩托車這樣的事件羅列出來。

 

以後會檢測視頻裏的人臉,作一些人臉的識別加跟蹤。視頻是每幀圖像持續的表述,通常會用 CNN 識別圖像特徵,圖像特徵上會用 RNN 網絡作時序學習。

深度學習和計算平臺

計算平臺同時在解決兩個問題,一個是大數據,一個是深度學習算法,抽象來說計算平臺在作一些什麼事情呢。

首先是用戶行爲,這些用戶的行爲會產生不少上傳的圖像、視頻,包括調整相冊這些動做,會告訴抽樣整理模塊,這些圖像標註的信息是什麼,或者說系統須要蒐集這些信息,而抽樣整理模塊是分佈式的富媒體處理模塊,會不停地處理抽樣和調整的工做,抽樣調整完了以後就能夠生成目標樣本集。經過抽樣整理不停地迭代整個樣本,獲得這個樣本集以後咱們就會繼續上傳到訓練集羣裏。

 

訓練集羣完成後會生成線上的模型,咱們的樣本集也會有一部分持續投到模型評估的模塊裏,模型會根據一套 API 生成器自動上線到推理服務上。最後利用用戶數據去訪問推理服務,會獲得相應的推理結果,這是比較簡單的 AVA 的一個基本邏輯。

 


上圖是 AVA 總體的架構圖。最底層經過七牛雲存儲了大量線上的圖像、視頻、音頻的數據,這些數據會經過統一的 IO 接口作統一讀寫管理,這之上咱們有兩套系統。一套系統專門用於數據抽樣和數據整理。Data Flow 裏會作數據的清洗,以及數據的放大,數據放大是指對圖像的二次加工,經過把同一張圖像作裁剪、旋轉等操做增長數據樣本。

另外一套是基於 Docker 的編排系統,這套編排系統與 Kubernetes 有點像,也是七牛很早以前在作的事情,和 Kubernetes 出來的時間差很少,七牛不少線上的圖像處理一直在用。Docker 編排系統支撐的是 DataFlow 大數據分佈式系統以及支撐了 Caffe、MXnet 、TensorFlow 三個主要的機器視覺框架。模型訓練結束之後會自動經過 API Manager 的自動代碼生成器生成線上的 Inference API,Inference API 生成自動評估模塊以及作自動化的灰度發佈。

最上一層咱們基於下面的基礎系統作了幾個 App 應用系統,第一個就是自動迭代的訓練系統,這套自動迭代系統主要用於持續學習的項目。咱們天天會有不少新增數據投到訓練數據池中。咱們會按期地,好比到上一個模型迭代週期結束以後,把這些數據自動化投進訓練池中從新清洗,清洗以後從新訓練,這就是迭代系統。

還有一個自增加數據集系統。好比鑑黃系統,針對天天都會增加的數據,咱們會採起流式的深度學習訓練模式,系統在某一個 snapshot 的時候引進一個新的數據集,而後會用這批新的數據再去學習。這個系統能夠解決一些對訓練出模型頻率要求比較高的問題,好比最近比較熱的黃色信息。

另外是作了一個半監督打標的系統,這套系統跟咱們的打標軟件鏈接。咱們用一些輕量的模型,甚至 svm 這種小的分類器先作自動的圖像預標註,跟咱們的分類器的中心作比較,比較出來以後,拿出一部分的數據再去學習,投入到咱們應該要學習的樣本中。這其實也是模型融合的一點。

咱們作了大量的模型融合。咱們會選不一樣的 CNN 網絡,在一些大一點的和小一點的不一樣的狀況下作模型的融合。

模型融合確實比較有效,可是它比較費資源,費人力,因此咱們就把這個單獨作成一個 App 自動化地運行,有時候在一些特定的場景仍是須要模型融合的方法才能把準確率優化到能達到商用。

訓練的過程還有一塊是 Pipeline,這個 Pipeline 實際上是對日誌作迭代收集,作 transform,到不一樣的存儲結構上,這些多是一些圖像的標籤,視頻的標籤這些內容,這就是咱們總體的 AVA 平臺的架構。

這裏我沒有提到 multi task。實際上它的處理比較複雜,不像鑑黃那麼簡單,大部分問題都不會這麼簡單。舉個特別簡單的例子,好比說人臉聚類,也有三個小模型,首先要檢測到圖像里人臉的位置,其次要用機器學習抽取圖片的人臉特徵,以後利用這些特徵作聚類。至少須要三個模型。

 

這個其實和人腦也很像,人腦解決問題是像這樣的圖。圖中有 L1 到 L5,大腦皮層每一層都是這麼處理問題的。信息從最底層扔給幾個基礎的模型,去作一些抽象、完成一些任務,到第二層的時候再去解決更高維的一些任務,好比像聚類這樣感知型的任務,再上面作一些更具體的任務,好比搜索、判別這類事情。最高維就是在作一些預警,一些業務層的事情。已有的 AVA 只能解決單一的問題,不能知足整我的工智能的設計框架。因此咱們作了一套 Argus 系統,實際上就是 API 的總體網狀管理系統,它支持 Pipeline,也支持並行處理。能夠直接用 Pipeline 的語義解決這種事情。

 

Argus 系統最底層是經過 AVA 訓練出來的原子 API,有了原子的 API 以後上層是感知層,感知層會作基於原子 API 的抽象作一些複雜任務,好比聚類。再之上是一些高級的任務,最後是一些與視覺相關的綜合 API,再往上是業務邏輯大數據分析,在 Vision 層我已經無論了,我把這個東西扔到抽象層結構化數據,或者說 vision 跟語言相關的加了一些 RNN 把語意描述出來以後就扔給業務邏輯處理了。因此如今 API 的 framework 總體設計成這個樣子。

設計成這套系統後,有不少是咱們新研發的,Argus 系統現有的是藍色的,原子 API 是經過 AVA 訓練出來的,AVA 尚未公開,原子的基礎視覺 API 都是咱們本身研發的。咱們但願以後跟你們公開用 AVA 訓練出來的特定的一些識別模型。咱們也在嘗試性地找一些想作這個事情的長期合做夥伴。

 


上面業務層的 API 客戶能夠獨立開發應用,包括像感知層、綜合的總體業務邏輯的 API,直接能夠經過咱們 user-defined 圖像處理模塊,直接寫一些簡單的 docker 處理鏡像 load 進來參與到 Argus 的機器視覺系統裏。也就是說高層的業務層或者說智能的大數據分析能力是開放給客戶的。

這是咱們如今總體上 Argus 的圖像認知,有不少基礎服務,包括一些業務層的好比人臉檢測、類似度比對、人臉聚類、鑑黃、暴恐,這些基礎的模型之下,有一個一直在迭代運算的 AVA 深度學習平臺,它一直不停地產出一些基礎的原子 API 給 Argus 系統,Argus 系統跟客戶走得更近,讓客戶能夠本身在 Argus 上編 Docker 鏡像,load 上來,一塊兒完成智能的任務。


不管是企業仍是程序員,都在向人工智能靠攏。如今是一個很精彩的時刻,有不少不一樣的事情能夠作,咱們期待有更多的同道中人加入「NewTech觀察圈」,呈現他們眼中的 AI 世界。咱們聯合了6位一線 AI 大咖,邀您加入一塊兒談談人工智能。狂掃下方二維碼,成爲 AI 浪潮中的一員。

相關文章
相關標籤/搜索