當你走在大街上,迎面竄出來一隻狗。這時候,你的大腦會告訴你,這是一隻狗,而且可能具有攻擊性,請遠離它。對周遭任何環境的變化進行感知,是我們與生俱來的能力。
那麼,你有沒有想過,你的大腦是如何判斷出來這是一隻狗的呢?即使你從未與這隻狗見過面,也不曉得它的品種,但你過去“閱”狗無數,同樣與生俱來的學習能力,讓你可以根據它的大概輪廓外形、外貌長相,甚至奔跑的速度,就能判斷這是一隻狗。
而如果換作是近些年幫助人類做許多事情的AI,識别出來一隻狗的難度可能要超乎你的想象。比如,我們讓一隻哈士奇分别展現一下正面、背面、側面,亦或者讓它躺下、坐下、直立,AI識别這些可能都很無奈,那麼,你就需要告訴AI:這些都是哈士奇。
衆所周知,世界上可能有很類似的拆家方式,但并沒有兩隻完全一樣的哈士奇,所以,你還需要讓AI見識更多的哈士奇、見識更多的狗,讓它能夠對于狗有一個判斷,這叫長見識,也叫學習。對于AI來說,各種姿勢和各種拆家方式的哈士奇都是數據,也是AI的訓練集,隻有經曆了長時間、多模型的訓練之後,AI才能真正擁有“智能”。
AI是如何看世界的?
當我們在公司出入工區,有些人需要刷卡,有些人則很潇灑地走到閘機跟前,閘機就自動打開了。這是因為閘機有人工智能的加持,它能夠獲取經過的人臉,再用人臉識别的算法去認證,在閘機眼前,你就成了“最潇灑的仔”;當我們在一些電商平台購物,跟客服溝通的過程中,你會發現你給的一些問題,客服能夠很快地進行回複,但這時候如果你仔細體會,你可能會發現,其實跟你聊天的并不是一個人,這是NLP技術在聊天機器人的一個應用;當我們在微信上接到語音信息後,機器可以把聲音轉化成文字,并呈現到屏幕上 。
在我們日常生活中,AI早已經走進了我們身邊,并觀察着我們的“一舉一動”。但我們所知的并非是AI 的全部,AI在各行各業,都發揮着越來越大的作用。
◉ 在金融領域,許多量化交易的公司,用AI算法從事股票買賣。保險公司在對購買保險的人進行評估時,會用AI算法來評估風險;
◉ 在制造業,AI也有着許多應用,比如在聯想自身的工廠,通過計算機視覺技術監測筆記本、手機的屏幕缺陷;
◉ 在科學研究方面,一些科學家利用AI做災難預測,還有一些科學家利用AI發現新材料和新化學品。
那麼,AI到底是什麼原理呢?我們以計算機視覺技術與人眼作比較,當人眼看到一隻狗,這隻狗會先進入我們的眼睛,經過視網膜成像,這張照片再經由大腦後方的視神經去解讀、去“認證”這到底是不是一隻狗,這個過程其實是神經在傳導信息,神經元與神經元之間的連接相當複雜。而如何讓AI借鑒人的神經去設計,其中就涉及到一個經典的模型——卷積神經網絡。
所謂卷積神經網絡,其實是拿卷積運算去模拟神經元的連接,當一張圖經過許多卷積運算之後,會生成新的一層網絡,然後再重複這個過程,一直到最後一層輸出一個結果。這個結果就是AI對于一隻狗的确認率,比如,AI會告訴你,你拍攝的這張圖像有90%的概率是一隻狗子,因為從它對這隻狗的認知來說,它也不能确定肯定以及一定地告訴你。整個計算過程,從最開始,AI可能辨别的是一些很基礎的信息或者特征,比如狗的輪廓,越往後,其識别的信息或者特征越複雜,比如,這隻狗的毛色、品種,或者它識别出這是一隻狗的鼻子或者耳朵,直到最後,它拿到信息——這是不是一隻狗,這就是AI看待世界的一種方式。
當然,不管我們如何去用AI算法去模拟人的神經,對比真正的神經元,它的計算單元的計算能力和單元之間的連接都相對比較“低配”。
如何讓“低配”的模拟神經元擁有更高識别率地去認識一隻狗,這就涉及到了“煉AI”。
如何煉AI,目前業界有兩個觀點。
一是以模型為中心,當前的人工智能模型隻是比較複雜的統計和模式匹配,距離理想的人工智能還有很長的路要走。人工智能的進步依賴于模型的不斷升級;
二是以數據為中心,一個機器學習團隊80%的工作應該放在數據準備上,确保數據質量是最重要的工作。如果更多地強調以數據為中心而不是以模型為中心,那麼機器學習的發展會更快。
如果把整個AI的開發者看作是一個金字塔結構,那麼金字塔塔尖的可能是名校的博士或者是大廠的資深研究員,他們更适合去設計出更好的模型;金字塔中下部的人,則應該把更多的精力放在以數據為中心,更好地準備數據、處理數據,标注數據之後使用别人做好的模型進行訓練,讓這些模型在各行各業發揮更多作用,這種做法會更有效率。
“煉AI”不僅是一個動詞,還是一個名詞,聯想研究院通過自研,開發出了一款開發AI的平台,叫作“煉AI大師”。煉AI大師既支持能看懂Python代碼的專家級用戶使用,也支持沒有太多經驗的用戶去訓練AI。
當AI專家去煉AI時,他們會在煉AI大師上先申請一個預先配置好環境的工作空間,工作空間可以靈活的搭配計算資源。然後他們就可以在工作空間中寫代碼和運行程序了。煉AI大師的工作空間可以由用戶進一步的做環境定制化。如果用戶需要在定制化後的環境下同時用不同的超參數分别運行代碼,或者想把自己配置好的環境分享給同事去煉AI的話,那麼可以在平台上對工作空間進行克隆、分享等操作,幫助AI專家節省環境配置的時間。
對于沒有太多經驗的用戶,煉AI大師也能幫助他更好地煉AI。我們知道,數據、算力和算法是AI的三大基石。在數據處理方面,煉AI大師能夠幫用戶創建數據集,并支持多類不同的場景。這些場景分門别類針對AI的不同任務,以圖片分類為例,辨别一隻狗的圖片到底是不是一隻狗,或者說它是一隻貓還是一隻鳥,都屬于圖片分類的任務。再以圖片分割為例,煉AI大師能夠幫助你描繪一個圖片裡的人的輪廓。此外,還有檢測一個物體在圖片裡的位置等不同的場景。
如果你想從宏觀上了解數據集,煉AI大師獨步江湖的數據可視化功能就派上用場了。用放大鏡工具,你可以看到數據集裡有什麼數據,煉AI大師能幫用戶将相似的圖片聚在一起,當一堆鳥的照片中混進去一隻貓,煉AI大師可以将這隻貓單獨“拎出來”。如果給某一個數據加上了某個标簽,那麼可以用标簽傳播功能給所有和這個數據相似的數據自動打上同樣的标簽。
我們在煉AI時分以下幾步。第一步是訓練,标準的訓練流程要先訓練模型,然後經過模型評估之後進入到部署階段并提供API服務讓别人使用。模型訓練是個漫長的過程,為了解決這個問題,煉AI大師内置了分布式訓練,比如用戶可以使用20個GPU去訓練一個模型,達到20倍的加速。
分布式訓練的主要瓶頸在于通信開銷,煉AI大師通過無等待後向傳播,在計算的同時盡早發送數據,并且在發送數據時進行梯度壓縮,減少通訊負載。還創新性的通過基于動态延遲的循梯度更新的策略,降低通信頻率,實現了接近線性的加速比。
煉AI大師提供了快速的自動化模型搜索(AutoML)功能
通常情況下,AutoML搜索一個模型可能要好幾天甚至好幾周,聯想研究院在設計煉AI大師時做了許多前期的工作。一般,大家是将常用的模塊(比如卷積層)先做好,然後像搭積木一樣組裝,再用啟發式的方式組裝出符合目标大小、精度的模型。而煉AI大師在做這一步時,更進了一步,相當于先構造一個空間,在這個空間的每個關鍵點,都事先搜索出了模型的架構。當用戶給到煉AI大師一個需求,煉AI大師就能看到用戶的需求落在該空間的點,并匹配現有的、離其最近的架構,動态生成一個滿足用戶需求的模型結構。相比較一般的開發AI的平台,煉AI大師能夠在更快的時間内搜索到一個滿足用戶需求的模型。
1963年,美國的兩位科學家Held & Hein用兩隻貓做了一個實驗。
他們将兩隻剛出生的貓分别放在兩個不同的籃子裡,左邊的這隻貓,在一個籃子裡,雙腳不挨地,不能自主行走;右邊的這隻貓雙腳挨地,能夠自由地左右行走或者轉圈。當右邊的貓行走時,它會帶動左邊的貓一起。
兩個月之後,他們将兩隻貓“解救”了出來,右邊的貓像正常的貓一樣可以行走或者蹦跳,而左邊的貓卻跌跌撞撞,它不知道它的面前有沒有障礙,如果把它放在高處,它會直接摔下去,盡管它的眼睛可以成像,但它無法理解它看到的東西,所以,這隻貓跟瞎了沒有什麼區别。
這個實驗告訴我們兩個事情,第一,對于神經來說,反饋非常重要,當你與外界産生互動,外界的反饋會給你的大腦造成一些變化;第二,不管是人還是動物的神經元,他都會跟随外界的反饋産生連接,連接可以随着外界刺激建立,也可以随着刺激減少而斷開,甚至有可能永久斷開。
基于這個啟發,煉AI大師做了一個模型壓縮的工作,先對模型進行稀疏化操作,然後把權重很小的部分去掉。這樣就可以在基本不損失精度的情況下将它的體積壓縮到很小,比如,在一個具體的實驗中,煉AI大師能夠将一個100多兆的模型壓縮到30多兆。
訓練好模型後還需要一個模型評估的過程,将與訓練集類似的新數據輸入模型,模型測試會自動根據分類、目标檢測等不同任務的評估指标,評估AI模型是否已經煉好。
已經煉好的模型可以在煉AI大師上直接一鍵啟動服務并對外提供API調用,也可以下載SDK并部署到各種設備上。
煉AI大師不僅服務于聯想自身從事算法開發的人員,也幫助聯想的客戶進行算力管理,一方面提高了客戶的算力利用率,另一方面節約了客戶運維和開發的人力。未來,聯想希望,煉AI大師能夠面向整個社會,讓更多人、更多企業學會煉AI,讓AI在更多的行業賦能,讓世界變得越來越美好。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!