面對日均億萬級違規內容,如何構建彈性深度學習計算平台?
新媒體管家
七牛為什麼會投身到最熱的行業——人工智慧?
基於富媒體大數據的彈性深度學習計算平台能夠為富媒體時代帶來什麼樣積極的影響?
NewTech觀察圈首批成員——七牛雲人工智慧實驗室的負責人彭垚本次將為我們進行深度解答。
文章字數:5464
閱讀時長:10分鐘左右
查看文末,了解程序員如何向人工智慧靠攏
|彭垚,七牛雲技術總監,人工智慧實驗室發起人和負責人,主導了七牛雲人工智慧和機器學習雲的架構和發展。在分散式計算存儲,富媒體海量數據分析與深度學習領域有超過 10 年的產品研發經驗,曾擔任 IBM 系統與科技實驗室研發架構和管理工作多年,在美國、法國發表數篇專業領域發明專利。
七牛雲人工實驗室於去年 6 月份創立。今天演講的主要內容包括人工智慧實驗室的前因後果,現在在做的深度學習主要是機器視覺方面研發的成果和近況,以及深度學習計算平台的框架架構。
1
人工智慧實驗室的前因後果
七牛雲以存儲起家,服務移動互聯網已經五六年的時間了。這幾年移動互聯網變成了一個富媒體的時代。從社交網站上的圖片開始到短視頻,今年短視頻又開始復甦,包括去年非常火的直播。七牛一直跟著這股風潮在服務平台上廣大的用戶。
前面這五六年七牛一直在做一件事情,這件事情統一地叫做一個詞「 Connect」,就是連接。連接主要做的事情,最早做的是數據存儲,就是讓大家把各自 App 上用戶上傳的圖像、視頻、音頻內容存放在七牛雲存儲上。之後基於雲存儲又做了一些富媒體的編解碼、圖像處理和其他數據處理等,之後又給大家做了 CDN,使大家得到更好的用戶體驗,能夠更好地訪問這些數據、瀏覽這些數據。
去年又給大家提供了直播和點播雲。我們一直在做的關鍵事,就是讓用戶和用戶連接起來。那麼怎樣把用戶體驗做好,這麼多年一直在做的事情就是用戶體驗,這個用戶體驗體現在什麼地方?就是把人跟人之間的連接,把基礎服務提供給 App,提供給我們的客戶。
後來發現每天用戶上傳的數據非常多,每天用戶上傳的圖像超過 10 億張,有超過萬億小時的視頻在雲存儲上。
這麼多客戶在我們的雲存儲上存了這麼多內容,接下來該如何給用戶提供更好的用戶體驗。於是我們去問客戶需不需要知道這三種內容具體是什麼,即圖像、視頻、音頻的具體內容。客戶通過 App 上傳,每天在瀏覽,在分享的內容到底是什麼,所以我們就開始思考這個問題,然後發現有這麼幾件事情,其實他們已經自己在做了。
第一件事是很多 App 有自己專門的內容審核團隊,審核客戶上傳的東西內容是不是合法,有沒有涉黃、涉及反政府的信息在傳播。
其次,對這些圖像、視頻、音頻的內容,已經有客戶有自己的數據運營團隊去分析 App 客戶上傳的具體內容,可能用抽樣的方法,或者機器學習的方法去分析。
內容分析說起來很簡單,就是你上傳一個圖像具體是什麼,但是實際上又很複雜,很難說清楚,內容是什麼?
比如拿出一張圖片,每個人描述一張圖片裡面有什麼東西,這個叫圖片描述。每個人的描述可能都不一樣。主要問題是我們在看到東西,聽到東西的時候,做出的反應,做出的事情跟大腦處理的任務相關。所以內容總結起來其實是跟內容最後的目的相關的。
怎麼理解內容。首先可以去把內容解析成很多目的。第一個是分類,分類是基本內容的解析,比如判別這個圖片是不是黃色圖片。第二個就是檢測,比如檢測這個視頻裡面有沒有人臉,這些人臉是誰,裡面出現了哪些物體,有沒有車,車的型號是什麼。還有分割,比如說一個畫面裡面,這個人的形狀是怎樣的,他跟背景的界限在哪裡,這就是一個很簡單的分割問題。然後就是跟蹤,比如說一個視頻中,有人臉在走動,這就是一個跟蹤問題。以及一個視頻的描述,一個視頻每一段里出現了什麼事件,每一段裡面有多少人物,這些是一個描述。還有搜索,我看了很多圖片之後搜關鍵的信息出來,再之上可能就是分析,還可能做很多的處理。
其實我們去解讀 content,最關鍵的是內容的目的。首先會去看對這些內容需要做哪一些事情,以上羅列的就是我們經常做的一些項目的相關內容。
從去年開始做了一個很大的轉變,我們從連接基礎服務的提供商,變成去給客戶做智能的提供商,也就是說我們希望幫助客戶去做智能,去提供一些智能的解決方案,讓客戶去做一些更智能、更互動性的,更了解自己內容的一些行為。這就是我們提出要把我們的連接生意做成智能的生意。我們現在有海量的數據,而圖像和視頻的泛化能力是很強的,我們通過平台上的數據跟用戶一起共建,一起訓練,就可以得到很多有價值、有意思的東西出來。
現在這個時代經常提人工智慧,智能這個詞語到底是什麼意思?其實很久以前圖靈機的時候就已經有智能這件事情了,而到現在大家對智能還沒有一個準確真實的答案,怎麼樣算是一個智能,我個人理解的智能是類似於人一樣直覺型地思考反饋很多的東西,這可能就是最基本初級的智能。
其實我們現在做人工智慧,要具備泛化的能力。比如要用深度學習解決像機器視覺這樣的問題,首先要解決的最重要的兩個問題,一個是大數據的問題,還有一個就是深度學習,也就是機器學習演算法的問題。每天我們平台上傳處理的圖像非常多,可能超過 10 億,我們不可能把所有的上傳圖像都拿來學習一次,所以大數據的處理能力非常重要。其次就是我們不可能把所有圖像都拿去人工做標註,這個工程量非常大。所以我們會結合很多演算法做一些半監督的機器學習,再加上標註,再加上深度的神經網路取得最終的結果。也就是說人工智慧實驗室在解決兩個問題:一個是大數據,另外一個是機器學習的問題。
圖中是我們去年成立的實驗室Ataraxia AI Lab。這個名稱來源於一個古希臘的哲學學派,這個學派是個懷疑論的,Ataraxia 是指人對世界的認知是有缺陷的,你永遠不可能了解事物的本質,就像我剛才提出來智能這個問題,其實每一個階段都有人提出智能的含義,圖靈認為智能能用機器製作出來,後面有希爾樂等等人反駁了他,其實智能這些東西跟用機器模仿出來的東西完全不一樣。
我們做人工智慧、做認知這件事情,我們一直在質疑自己,最終想達到的境界就是 Ataraxia 的境界,一直在不停地追求永遠達不到的一個境界,這個就是古希臘文翻譯出來的一個哲學的單詞。
2
機器視覺方面研發的成果和近況
我們做的第一件事情就是把一張圖片扔進 CNN(卷積神經網路) ,識別這張照片是色情、性感還是正常的。如果這有搞機器視覺的朋友就會覺得這是一個非常常見、非常基礎的一個分類問題。但是這個分類問題,它其實不那麼好解決。因為會有各種各樣的圖像表述它是色情的,是性感的,所以模型需要去學習、去標註的內容非常多。我們在去年剛建實驗室的時候,有很多實習生在實驗室每天標註這些色情內容。當然現在已經少了,因為我們每天會有半監督打標的迭代過程,我們一直在優化鑒別色情暴恐的系統。我們一直固定有人在做圖像標註,包括有一些兼職的,在學校裡面在幫我們做的,我們自己做了一套網路上的標註系統。
我們線上已經有超過 700 萬的樣本一直在滾動,每天新增的數據就有一兩萬,一直往樣本中添加,還需要做大量的評估,以及過濾掉大量不需要打標學習的數據。我們對演算法的要求已經固化了,演算法基本停止了迭代,但是數據還在不停地迭代,鑒黃項目是一個數據量很大,要滾動起來自動迭代的一個項目。
第二個是識別圖片具體內容的項目,就是人臉識別。需要對人臉提取特徵,然後對大量的圖片進行人臉聚類。比如說標註它是 id1 類的人,可以做一些特徵的分類,像戴不戴眼鏡、年齡、性別、顏值。後面就是場景識別,場景識別現在支持 300 多類場景的識別。戶外的場景識別準確率非常高,室內會有很多誤判,比如說教室和辦公室等等。因為如果學習一個單一任務,可能會有疏漏,比如如果一張圖片里有學生,場景是教室的概率就會非常高,成為 Office 的概率就會非常低。現在基本的分類演算法,如果要提升背景的準確率,圖像裡面的人物內容都要結合學習。
還有就是審查,我們能夠審查判定圖像內容是非色情、非暴力、很健康的。
還有一些跟圖像描述相關,就是通過 CNN 提取特徵,通過 RNN(循環神經網路) 去做圖像和視頻描述相關的內容,比如我們在與廣電的一部分工程做嘗試,對一些球賽做分析,會學習很多名人的人臉,大概有 5000 多類名人的人臉。我們一直在搜集、迭代這些資料庫並對球賽的動作去做學習和描述,這就是我前面提到的描述。
第三個就是視頻,視頻的識別涉及到場景的概念。什麼叫場景?你可以想像我們在拍電影,大家就會非常容易理解鏡頭,就是 Shot 這種概念。比如我們在拍攝這幾個人在說話做事情,突然切了一個大家在戶外開摩托的場景,這就是場景的變化。它最根本的是對人臉和物體的跟蹤,如果突然發現這些東西沒了,那就說明場景切換了,這就是基本的場景識別。我們會把視頻根據場景先切開,切開以後會把場景中的事件 1、事件 2 列出來,比如說有人在打棒球,有人在開摩托車這樣的事件羅列出來。
之後會檢測視頻里的人臉,做一些人臉的識別加跟蹤。視頻是每幀圖像持續的表述,一般會用 CNN 識別圖像特徵,圖像特徵上會用 RNN 網路做時序學習。
3
深度學習和計算平台
計算平台同時在解決兩個問題,一個是大數據,一個是深度學習演算法,抽象來講計算平台在做一些什麼事情呢。
首先是用戶行為,這些用戶的行為會產生很多上傳的圖像、視頻,包括調整相冊這些動作,會告訴抽樣整理模塊,這些圖像標註的信息是什麼,或者說系統需要搜集這些信息,而抽樣整理模塊是分散式的富媒體處理模塊,會不停地處理抽樣和調整的工作,抽樣調整完了之後就可以生成目標樣本集。通過抽樣整理不停地迭代整個樣本,得到這個樣本集之後我們就會繼續上傳到訓練集群里。
訓練集群完成後會生成線上的模型,我們的樣本集也會有一部分持續投到模型評估的模塊里,模型會根據一套 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 上來,一起完成智能的任務。
— END —
無論是企業還是程序員,都在向人工智慧靠攏。現在是一個很精彩的時刻,有很多不同的事情可以做,我們期待有更多的同道中人加入「NewTech觀察圈」,呈現他們眼中的 AI 世界。9 月 27 日,6 位導師邀您洞見 AI,引導未來科技方向。
點擊展開全文


※七牛雲 Golang 周報九月第 4 期
※七牛雲 Golang 周報九月第 3 期
※七牛雲 Go 語言周報九月第 1 期
TAG:七牛雲 |