今天小編分享的科技經驗:華為在手機上,率先實現本地端自然語言搜圖功能,歡迎閱讀。
機器之心原創
作者:澤南
在手機上用自然語言搜本地相冊圖片,業界首個移動端多模态語義檢索引擎,改變了我們的手機使用體驗。
習慣了搜索引擎的我們,在手機上找本地檔案的時候往往卻束手無策:如今每個人的智能手機上,存上千張照片已是常态,有時候想找某張具體的照片就像大海撈針。
不過在今年華為的 P60 系列發布會上出現了這樣一項功能 —— 智慧搜圖,基于多模态大模型技術在端側輕量化應用,手機上第一次有了自然語言圖片搜索能力。既然是自然語言,就意味着在找圖這件事上可以對手機講人話了。
如果記不得想找的照片是何時何地拍攝的,只大概記得照片中出現的人或物怎麼辦?只要把能想到的幾個詞寫到搜索框裡,智慧搜索就能給你找到:
或者用語音喚醒小藝用一句話形容想要找的照片内容,比如搜索「去年在長白山滑雪的照片」,就可以直接找到手機裡所有那次去玩的照片:
再進一步,你也可以搜索「騎自行車的人」、「戶外的聚會」等描述性的概念。
相比以前基于标籤的照片搜索方式,智慧搜圖可以讓手機更加「聰明」,響應速度更快,輸出結果更高效。結合多模态語義模型技術,華為的智慧搜圖在雲端對上億級圖文數據進行了預訓練,對更通用化的語義擁有了理解能力。更重要的是,模型部署在端側,搜索計算是在本地完成的,進一步保護隐私安全。
這不禁讓人懷疑,華為的手機是不是已經有了破解圖形驗證碼的能力?
手機自然語言搜圖,為啥這麼難?
以前在很多手機上,你可以通過輸入時間、人物、地點等關鍵詞找到想要的特定照片。這是通過 AI 算法識别圖片類型和文字,以及地理信息等檔案固有标籤來實現的,不過一般來說,它們只能識别出有限的類别。
在使用「常規」方法時,你需要通過短标籤及其組合進行搜索,例如「風景」、「貓」、「食物」等等,手機支持的短标籤數量有限,只能滿足你的一小部分意圖,大部分時候還是需要手動去相冊裡翻找,效率很低。
标籤都給你打好了,但選擇的種類有限。
這并不奇怪,因為在它的後端頂多是簡單的影像識别模型,搜索的自由度趨近于無,當然也不能理解人的意圖。在使用這樣的系統時,有時候結果會變成讓我們猜模型到底能識别哪些标籤。
要想實現「智慧搜圖」,AI 模型需要能同時理解自然語言與影像兩種模态的數據,而在手機上,我們還需要使用一系列壓縮算法盡可能利用有限的算力,并從工程角度盡量加快推理速度。
具體而言,先不管部署到手機端的困難,要想實現對圖片和文本的語義級理解,讓手機自己「看懂照片」,我們需要經歷一段三步走的過程。
物理世界產生的非結構化數據如圖片、語音和文本,在 AI 算法中會被轉化為結構化的多維向量,向量标識出關系,檢索就是在計算向量之間的距離,通常距離越近相似度就越高。
構建智慧的搜圖技術,首先需要訓練多模态語義模型,通過對比學習令相同語義的文字與圖片距離特别近,不同語義的數據距離特别遠,從而把自然語言及圖片等多模态數據轉換成相同語義空間下的向量;其次,我們需要使用該多模态模型編碼被檢索的圖片;最後當我們輸入一句話時,手機就會通過檢索系統快速地定位與内容相匹配的圖片了。
在整個語義搜圖的過程中,首要的挑戰是如何更好地将語義相同的圖片與文字匹配起來。多模态模型需要編碼用戶的個人圖片,最好是将模型部署在手機端側,而部署到手機端,就意味着必須對多模态模型進行壓縮與加速,這裡将需要大量的工程實踐。
業界首個手機端多模态語義模型
這個「智慧搜圖」的背後,是華為通過輕量化的多模态語義模型,讓手機可以高效理解自然語言和照片含義,實現了業界首個可端側部署的輕量化多模态語義模型。相比傳統打标籤的方式,它的體驗可是要好太多了。我們不再需要猜測圖片的标籤,直接輸入自然語言就能檢索到對應的圖片。毫不誇張地說,它讓手機本地搜圖,從難用跳到了好用。
基礎:多模态模型
在人工智能領網域裡,Transformer 是個裡程碑式的技術,它既催生了 ChatGPT 這樣的 NLP 技術突破,也在視覺領網域上擁有非常不錯的效果。通過 Transformer 對文本與圖片同時進行表征,再通過弱監督對比學習拉近相同語義的圖片與文字,拉遠不同語義的圖片與文字,我們就能獲得一個不錯的多模态模型。
這其中的重點在于對比學習,如下圖所示,常規的對比學習方法會将圖片與文本分别編碼為不同的向量,并将該向量映射到聯合多模态語義空間之中。因為不同模态的數據表示之間可能存在差異,無法進行直接的比較,因此先将不同模态的數據映射到同一個多模态空間,從而有利于後續的模型訓練。
選自 arxiv: 2102.12092。
在多模态的對比學習中,其目标函數即讓正樣本對(上圖藍框部分,I1T1、I2T2... )相似度很高,負樣本對(上圖白框部分)相似度很低。通過這種訓練,自然語言天然就能和影像匹配上,不同模态的數據就能對齊。
為了提升模态間的對齊效果,華為通過提高正樣本的相關性,并在算法層面對負樣本去噪,再借助更大、更高質量的數據源,提升模型表征的準确性,從而提升語義搜索的準确性和召回率。與以往基于有限的标籤集合給圖片打标籤,再通過标籤來進行搜索的方式相比,基于語義表征進行搜索的方式能大幅提升圖片檢索的靈活性。
優化:模型的極致壓縮
多模态是當前非常熱門的 AI 研究領網域,但除了華為的「智慧搜圖」,還沒有人能把整個推理過程都部署到手機端。其中的工程難點,顯然在于如何将多模态模型在效果基本無損失的情況下,壓縮到能在手機等邊緣設備上運行。
在這裡,也許我們需要考慮整個模型架構的參數效率,優化模型結構以在最小的計算量上達到最優的效果。例如卷積神經網絡中 EfficientNet,Transformer 類模型中的 Multi Query Attention,它們都嘗試優化模型結構以令參數效率達到更優。「智慧搜圖」也一樣,通過優化多模态模型架構,使得整體訓練能獲得更好的效果。
除了技術上的更新,部署到移動端更大的挑戰還是在工程上。與平常我們在 GPU 上訓練與推理模型不同,移動端缺少便捷高效的算子實現,優化起來也困難重重。舉例來說,手機端的 CPU 芯片基本是精簡指令集 Arm 架構的,那麼機器學習編譯器在做優化時就需要考慮很多指令層面并行處理,來最大程度利用有限的計算力。
針對底層硬體的優化适配,華為将模型的海量矩陣乘法分解到手機端 CPU 與 NPU 等設備上,并通過圖算融合等方式構建出能在手機端高效運行的底層算子,進而支持整個模型的高效推理。
總結來說,華為「智慧搜圖」輕量化模型通過更多的數據、更優的算法等補償性設計及一些模型輕量化技術,首次将多模态模型部署到手機端,從而提供更好的圖搜體驗。
實用:向量檢索引擎
我們期望通過圖片信息、時空維度等不同線索,快速找到與心中期待相符的圖片,而圖片與自然語言請求都是多模态語義空間的向量。因此,華為面向端側場景自研輕量級向量檢索引擎,支持對海量數據進行向量索引構建,且支持時空(時間、地點)語義一站式融合檢索,可以便捷、高效地通過 Query 語義特征找出匹配的照片。
上圖是一個簡單的向量檢索引擎,假設移動端多模态模型已經将相冊内的圖片編碼為一條條向量,并持久化存儲到「Vector Database」中。每當用戶有需要搜索的請求,該請求将通過「Embedding Model」,即多模态模型中的文本 Encoder 部分,将文本編碼為一條向量,該向量會從向量數據庫中搜索以找到一批最接近的影像。
為了在移動端獲得更好的搜圖效果,華為自研的輕量化向量檢索引擎做了一系列創新與優化。
在構建索引時,如果采用雲側常用的離線定期全量構建的方式,将會顯著的增加功耗開銷,因此華為在手機端采用增量實時寫入的方式。并且出于可靠性目的,增量寫入的數據會持久化到索引中。
同時,為了提高索引加載和檢索的效率,索引的格式也是特别定制的,語義向量檢索将地點、時間等信息作為索引的一部分,在檢索時可以快速實現條件過濾,并返回與查詢語句最相關的結果。只要關鍵字落在時間、地點等常見搜索條件,索引格式創新帶來的加速,相比純數據庫檢索,能快十多倍。
但定制化的索引格式也會帶來一些困難,即新寫入的索引數據不一定都保存在索引的尾部。例如在故宮新拍了一張照片,那麼該照片向量的索引,需要插到同地點的那一部分索引當中,也就導致之前所有的索引都需要覆蓋重寫一遍。尤其是數據越來越多,如果我有十萬張圖片,難道每次拍一張照,十萬多條索引都需要重寫一遍?
在這裡,華為再次找到了創新解法,其采用索引分段及壓縮合并兩種方式進行優化,索引分段能顯著降低單次插入索引時間,通過定期進行壓縮合并,完成已删除數據占用内存 / 磁盤資源的回收,達到了顯著降低資源開銷的目的。
一系列優化後,智慧搜圖的能力也不僅限于高配置的旗艦級手機。除目前的 P60 系列和 Mate X3 之外,更多設備未來也會随 HarmonyOS 3.1 的更新陸續獲得這樣的能力。
智慧搜索:打造 HarmonyOS 生态的系統級入口
當然,最新的 HarmonyOS 3.1 版中,智慧搜圖只是眾多新能力的一小部分。光是搜索上,華為就帶來了不少黑科技。
除了智慧搜圖之外,華為智慧搜索将不斷跨越不同 App、端側設備、雲端和本地的邊界,實現真正意義上的全局搜索,結合華為長期實踐的「軟硬芯雲一體化」能力,讓端側預置 AI 模型實現毫秒級響應速度,消除跨終端聯動的延遲感,實現「多台設備合體」的搜索體驗。
現在是以 App 為主的移動互聯網時代,搜索有很大一部分已從網頁轉移到了更封閉的 App 上,華為智慧搜索卻可以做到從一站式的入口獲取全局内容,打破信息孤島。
在打通所有邊界之後,華為還通過 AI 技術實現了高效率的服務流轉和更聰明的「意圖搜索」能力。讓搜索引擎理解人的意圖,提供最合适的智慧服務,手機上的搜索框再也不是簡單的查詢工具。
還記得四年前華為在開發者大會上發布的初版 HarmonyOS 嗎?當時 HarmonyOS 的定義是一個全場景分布式系統,現在的 HarmonyOS 已經發展出了豐富的生态,下一步要做的則是統一:通過系統級能力的提升做到一個框架,掌控全局。
這種整合落到搜索上,就是無感知的大範圍能力調用和響應,華為内部将其稱為「全搜」能力。智慧搜索或将成為 HarmonyOS 生态的系統級入口,帶來遠超搜索框定義的功能與服務。
當需求不再被設備和形式所限制,一切以人為中心,這才是萬物互聯時代該有的樣子。這也讓我們對下一個 HarmonyOS 的產品,充滿了期待。
© THE END
轉載請聯系本公眾号獲得授權
投稿或尋求報道:[email protected]