九章云極DataCanvas多模態大模型平臺的實踐和思考
一、多模態大模型的歷史發展
上圖這張照片是1956 年在美國達特茅斯學院召開的第一屆人工智能workshop,這次會議也被認為拉開了人工智能的序幕,與會者主要是符號邏輯學屆的前驅(除了前排中間的神經生物學家Peter Milner)。
然而這套符號邏輯學理論在隨后的很長一段時間內都無法實現,甚至到 80 年代90年代還迎來了第一次AI寒冬期。直到最近大語言模型的落地,我們才發現真正承載這個邏輯思維的是神經網絡,神經生物學家Peter Milner的工作激發了后來人工神經網絡的發展,也正因為此他被邀請參加了這個學術研討會。
2012年,Tesla自動駕駛主管Andrew在博客上發布了上面這張圖,顯示當時美國總統奧巴馬和自己的下屬開玩笑。要讓人工智能去理解這張圖,不僅是一個視覺感知任務,因為除了要識別物體,還需要理解他們之間的關系;只有知道體重秤的物理原理,才能知道圖里描述的故事:奧巴馬踩了秤,導致秤上的人體重升高,他因此做出了這個奇怪的表情,同時其他人在一旁笑。這樣的邏輯思維顯然已經超出了純粹的視覺感知范疇,因此必須將視覺認知和邏輯思維結合到一起,才能擺脫“人工智障”的尷尬,而多模態大模型的重要性和困難性也體現在這里。
上圖是人類大腦的解剖結構圖,圖中的語言邏輯區對應的就是大語言模型,而其他的區域則分別對應著不同的感官,包括視覺、聽覺、觸覺、運動、記憶等等。雖然人工神經網絡并不是真正意義上的腦神經網絡,但還是可以從中受到一些啟發,即構造大模型的時候,可以將不同的功能聯合在一起,這也是多模態模型構建的基本思想。
1、多模態大模型可以做什么?
多模態大模型可以為我們做很多事情,例如視頻理解,大模型可以幫我們總結視頻的摘要以及關鍵信息,從而節約我們看視頻的時間;大模型還可以幫助我們進行視頻的后期分析,例如節目分類、節目收視率統計等;此外,文生圖也是多模態大模型的一個重要的應用領域。
而大模型如果和人的運動,或者機器人的運動聯合在一起,就會產生一個具身智能體,就像人一樣,基于過往經驗規劃最佳路徑的方法,并應用到全新的場景中,解決一些先前沒有遇見過的問題,同時規避風險;甚至可以在執行過程中修改原有計劃,直到最后獲得成功。這也是一個具有廣泛前景的應用場景。
2、多模態大模型
上圖是多模態大模型在發展過程中的一些重要節點:
- 2020年的ViT模型(Vision Transformer)是大模型的開端,首次將Transformer架構用到除語言和邏輯處理外的其它類型數據(視覺數據),并且顯示了良好的泛化能力;
- 隨后通過OpenAI開源的CLIP模型,再次證明了通過ViT和大語言模型的使用,視覺任務實現了很強的長尾泛化能力,即通過常識推測先前沒有見過的類別
- 到了2023年,各式各樣的多模態大模型逐漸顯現,從PaLM-E(機器人),到 whisper(語音識別),再到ImageBind(圖像對齊),再到Sam(語義分割),最后到地理圖像;還包括微軟的統一多模態架構Kosmos2,多模態大模型發展迅速。
- 特斯拉在6月的CVPR還提出了通用世界模型這樣的愿景。
從上圖可以看出,短短半年時間,大模型就發生了非常多的變化,其迭代速度是非常快的。
3、模態對齊架構
上圖是多模態大模型的通用架構圖,包含一個語言模型、一個視覺模型,通過固定語言模型和固定視覺模型進而學習對齊模型;而對齊就是將視覺模型的矢量空間和語言模型的矢量空間進行聯合,進而在統一的矢量空間里完成兩者內在邏輯關系的理解。
圖中所示的Flamingo模型和BLIP2模型都采用類似的結構(Flamingo模型采用Perceiver架構,而BLIP2模型采用改良版的Transformer架構);然后通過多種對比學習的方法進行預訓練,對海量的token進行大量學習,獲得較好的對齊效果;最后根據特定的任務對模型進行微調。
二、九章云極DataCanvas的多模態大模型平臺
1、AI Foundation Software (AIFS)
九章云極DataCanvas是人工智能基礎軟件提供商,同時提供算力資源(包括GPU集群),進行高性能的存儲和網絡優化,在此基礎上提供大模型的訓練工具,包括數據標注建模實驗沙盒等。九章云極DataCanvas不僅支持市面上常見的開源大模型,同時也在自主研發元識多模態大模型。在應用層,提供了工具對提示詞進行管理,對模型進行微調,并提供模型運維機制。同時,還開源了一款多模向量數據庫,讓基礎軟件架構更加豐富。
2、模型工具LMOPS
九章云極DataCanvas專注于全生命周期的開發的優化,包括數據準備(數據標注支持人工標注和智能標注)、模型開發、模型評估(包括橫向評估和縱向評估)、模型推理(支持模型量化、知識蒸餾等加速推理機制)、模型應用等。
3、LMB –Large Model Builder
在構建模型時,進行了很多分布式高效優化工作,包括數據并行、Tensor并行、管道并行等。這些分布式優化工作是一鍵式完成的,并支持可視化調控,可以大大減少人力成本,提升開發效率。
4、LMB –Large Model Builder
對于大模型tuning也進行了優化,包括常見的continue training、supervise tuning,以及reinforcement learning中的human feedback等。此外,對于中文也進行了很多優化,例如中文詞表的自動擴展。因為很多中文詞匯并未包含在開源大模型中,這些詞匯可能會被拆分成多個token;將這些詞匯進行自動擴充,可以讓模型更好地使用這些詞匯。
5、LMS –Large Model Serving
大模型的serving也是非常重要的一個組成部分,平臺對模型量化、知識蒸餾等環節也進行了大量的優化,大大降低了計算成本,并通過逐層知識蒸餾來加速transformer,減少其計算量。與此同時,也做了很多剪枝工作(包括結構化剪枝、稀疏剪枝等),大大提升了大模型的推理速度。
此外,對交互式對話過程也進行了優化。例如多輪對話Transformer中,每個tensor的key和value是可以記住的,無需重復計算。因此,可將其存入Vector DB中,實現對話歷史記憶功能,提升交互過程中的用戶體驗。
6、Prompt Manager
大模型提示詞設計和構建工具Prompt Manager,通過幫助用戶設計更好的提示詞,引導大模型生成更加準確、可靠、符合預期的輸出內容。該工具既可面向技術人員提供development toolkit的開發模式,也可以面向非技術人員提供人機交互的操作模式,滿足不同人群使用大模型的需求。
其主要功能包括:AI模型管理、場景管理、提示詞模板管理、提示詞開發和提示詞應用等。
平臺提供了常用的提示詞管理工具,可實現版本控制,并提供常用模板來加速提示詞的實現。
三、九章云極DataCanvas多模態大模型的實踐
1、多模態大模型——有記憶體
介紹完平臺功能,接下來會分享多模態大模型開發實踐。
上圖是九章云極DataCanvas多模態大模型的基本框架,與其它多模態大模型不同的一點是,它包含記憶體,可以提升開源大模型的推理能力。
一般開源大模型的參數量相對較低,如果再耗用一部分參數量進行記憶,其推理能力將會大幅下降。如果給開源大模型增加記憶體,則會同時提升推理能力和記憶能力。
此外,類似大多數模型,多模態大模型也會固定大語言模型和固定數據編碼,針對對齊功能進行單獨的模塊化的訓練;因此,所有不同的數據模態都會對齊到文本中的邏輯部分;在推理的過程,首先對語言進行翻譯,然后進行融合,最后進行推理工作。
2、非結構化數據ETL Pipeline
由于我們的DingoDB多模向量數據庫結合了多模態與ETL的功能,因此能夠提供良好的非結構化數據管理能力。平臺提供pipeline ETL功能,并做了很多優化,包括算子編譯、并行處理,以及緩存優化等。
此外,平臺提供Hub,可以將pipeline重復使用,實現最高效的開發體驗。同時,支持 Huggingface上的眾多編碼器,可以實現對不同模態數據的最優編碼。
3、多模態大模型構建方法
九章云極DataCanvas將元識多模態大模型作為底座,支持用戶選擇其它開源大模型,也支持用戶使用自己的模態數據進行訓練。
多模態大模型的構建大概分為三個階段:
- 第一階段:固定大語言模型和模態編碼器訓練對齊和查詢;
- 第二階段(可選,支持多模態搜索):固定大語言模型,模態編碼器,對齊和查詢模塊,訓練檢索模塊;
- 第三階段(可選,對特定任務):指令微調大語言模型。
4、案例-知識庫建設
大模型中的記憶體架構,可以幫助我們實現多模態知識庫建設,該知識庫實際上是模型的應用。知乎就是一個典型的多模態知識庫應用模塊,其專業知識是可以溯源的。
為了保證知識的確定性和安全性,往往需要對專業知識進行溯源,知識庫就可以幫助我們實現這此功能,同時新的知識添加也會比較方便,無需修改模型參數,直接把知識添加進數據庫即可。
具體來說,將專業知識通過編碼器進行不同的編碼選擇,同時根據不同的評價方法進行統一評價,通過一鍵評價來實現編碼器的選擇。最后應用編碼器向量化之后存入DingoDB多模向量數據庫,再通過大模型的多模態模塊進行相關信息提取,通過語言模型來進行推理。
模型的最后一部分往往需要進行指令精調,由于不同用戶的需求不太一樣,因此需要對整個多模態大模型進行精調。由于多模態知識庫在組織信息這部分特殊的優勢,使得模型具備學習檢索的能力,這也是我們在文本的段落化過程中做的創新。
一般的知識庫是將文檔進行段落化,然后對每一段進行獨立的文本解鎖。這種方法容易受到噪聲的干擾,對于很多大的文檔,很難判定段落劃分的標準。
而我們的模型中,檢索模塊進行學習,模型自動尋找合適的結構化信息組織。對于某個具體產品,從產品說明書開始,首先定位大的目錄段落,再定位到具體的段落。同時由于是多模態的信息集成,除了文字以外往往還會包含圖像表格等,也可以進行向量化表達,再結合Meta信息,實現聯合檢索,從而提升檢索效率。
值得說明的是,檢索模塊使用內存注意力機制,相較于同類算法可提升10%的召回率;同時可將內存注意力機制用于多模態文檔處理,這也是非常有優勢的一個方面。
四、對未來的思考與展望
1、企業數據管理 -- 知識庫
企業中85%的數據都是非結構化數據,只有15%是結構化的數據。過去的20年,人工智能主要是圍繞結構化數據展開的,而非結構化數據是非常難以利用的,需要非常大的精力和代價將其轉化處理為結構化數據。而借助多模態大模型和多模態知識庫,通過人工智能新范式,可以大大提升企業內部管理中非結構化數據的利用率,未來可能會帶來10倍的價值增長。
2、知識庫--> 智能體(Agent)
多模態知識庫作為智能體的基礎,之上的研發agent、客服agent、銷售agent、法律agent,人力資源agent,企業運維 agent等功能都可以通過知識庫進行運作。
以銷售agent為例,常見架構包括兩個agent同時存在,其中一個負責決策,另一個負責銷售階段的分析。這兩個模塊都可以通過多模態知識庫尋找相關信息,包括產品信息、歷史銷售統計資料、客戶畫像、過往銷售經驗等,這些信息整合到一起,幫助這兩個agent做最好、最正確的決定,這些決定反過來幫助用戶獲得最好的銷售信息,再記錄到多模態數據庫集中,如此循環往復,不斷提升銷售業績。
我們相信未來最有價值的企業,是將智能體落到實處的企業。希望九章云極DataCanvas可以跟大家一路同行,相互助力。