關于如何設計AI的方法變革——大模型的AI設計方法
大模型推動人工智能應用的設計方式產生了根本性的變革。無論你是AI資深設計專家還是外行人員,這篇文章都可以啟發你對AI設計的思考,帶你探索過去現在和未來的AI該如何進行設計。
- 如果你已經是一個AI設計人員,熟知基本的AI設計方法,可以直接跳到第三部分“三、大模型的AI設計方式變化”然后再與我探討想法。
- 如果你只對大模型出現后的應用和前景感興趣,不關心大模型的原理以及基于原理,也不想成為大模型或者行業應用的設計人員,可以直接跳到“理解大模型的應用與方向”和“建構大模型的生態”部分。
- 如果你不是一個AI設計人員,可以先讀第一部分“一、大模型出現以前AI設計方式”了解下過去的AI設計,相信大部分設計方式都可以在平時工作找到對應。
本文定位是一篇AI從業者分享一些大模型對個人設計理念帶來的沖擊,對于大模型的技術發展更多給出一些二次思考內容,原始的技術文獻不會直接搬運或者詳細解釋,不過談及到的每個部分的技術都附帶了文獻來源,可供自行翻閱。
寫這篇文章的動機之一是關于大模型的社群討論偏于低質,而且從大模型出現到現在,有意義的文章大多都圍繞模型本身的技術研究和工程復現進行,很少有人從非純粹的技術層面探討一些大模型對于設計理念和行業相關方巨變的思考,因此希望可以通過分享自己的思考吸引更多愿意深度思考這件長期機會的人。
這些對于目前的從業人士門檻、行業發展、應用場景都具有很大的影響。作為一個一直在AI行業中的參與者,我把自己更多從非技術研究層面的思考和實踐經驗記錄下來,匯總成關于大模型時代AI的設計和看待問題的新方式。
本文視角其實更多的是站在AI設計的視角上探討問題,關于商業模式、技術原理等等會簡短討論,本文更多的探討基于當下的研究產生的一些思考,對于研究信息僅會提供一些引用鏈接,核心在于探討下AI設計的方式以及未來展望的看法。本文計劃集中分享以下幾個問題的思考:
- 過去的AI設計是怎么做的?
- 關于收益估算、任務定義、級聯模式、誤差評估等等專業設計怎么做?
- 大模型對于設計方式產生了什么沖擊?
- 大模型的哪些能力導致了這些沖擊?
- 目前AI設計的門檻產生了什么變化?
- 消噪與序列預測到底帶來了哪些可以發散想像的方向?
- 大模型本身的限制有哪些應用沒有辦法完成?
如果你是資深的AI行業設計人員,對于這些問題已經有了答案,希望你可以直接拉到文章最后,聯系到我和我探討下大模型對于你的設計方式產生了什么樣的沖擊和變化。如果你是非從業人員,看完我的思考之后,不知道你是不是覺得自己也理解了AI產品該如何設計,也可以開始做AI的設計工作了。
一、大模型出現以前AI產品設計方式
在大模型出現以前,結合過去的實踐經驗,我將AI產品的設計總結為四個階段:目標定義階段,收益估算階段,設計階段,迭代階段,下面結合一些實踐的案例分享一些個人思考。
1. 目標定義階段
在討論AI產品的目標定義時,實際上與其他類型產品的目標定義相差并不太大,因為AI產品本質上還是以一種更高效的方式在解決實際業務問題,因此這個方面就不重點談到,會在下面環節的案例里穿插一些。
例如,針對面向消費者(To C)的產品,關注增長曲線是否達到自然傳播率、產品是否跨越了技術采用生命周期等等。
而針對面向企業(To B)的產品,需要關注利益相關方的市場收益、客戶認知,還有特殊的奢侈品和禮品類產品邏輯。
唯一的差異在于,過去AI的產品設計需要額外關注【技術可達性】,另一方面因為客戶基本上完全不懂AI,不能指望客戶提供關于他所在行業的AI設計思路,而是需要想辦法先把自己變成客戶行業的專家,告訴客戶需要什么,就像拿著錘子找釘子,這一點和一般的設計有很大不同。
對于商業方面的目標設定問題,許多業界大咖已經在商業分析、OKR、增長等領域有深刻的時間和研討,就不班門弄斧了,這里強烈推薦大家直接關注劉潤老師,作為劉潤老師的五年死忠粉,他對于商業思想和方法,尤其是早期的很多內容總能給我帶來極大的啟發和幫助。
2. 收益估算階段
收益估算是在對于相關行業或者目標場景具有一定了解之后,決定是否要投入這塊市場或需求場景,以及以什么樣的投入力度進入,資深的設計者在估算收益之后,基本就已經確定好大致的設計方案了。一般來講,收益估算會分為三個部分。
1)目標大盤估算
比如目標大盤的覆蓋率、用戶量、活躍率、交互量等信息,一般來說需要來源于市場研究與洞察,如果是C端會來源于用研或者數據分析(一般是session分析)。
比如我需要構建一個數據標注平臺,我需要決策標注平臺是要自建還是采購三方,那其實我就大概需要對這個市場的大盤做一個分析,評估其中的關鍵資源和關鍵利益相關方我是否能夠撬動?多大成本能否撬動?以來決策這件事情是否值得做。例如我可以做如下分析:
1.標注任務類似滴滴打車,是典型的供給者(標注員)、平臺、消費者(需求企業)的三方市場。
2.三方市場要做起來,評估需要先撬動哪一端,評估我的資源優勢能夠撬動標注員,還是撬動企業B端客戶渠道,能否更加高效的獲取客戶,比如我具有很強的個人品牌、企業品牌、第三方背書等都可以顯著降低獲客或者渠道成本。
3.若要建設標注自研,一定是標注員的人均標注成本能夠顯著低于采購(對內部工具而言),或者能夠以極低成本獲取外部客戶(對于做外部市場而言),如果我兩者優勢均不具備,或者生產成本顯著高于外采,那就應該放棄自建。
4.當然如果是出于企業信息安全,或者絕密信息保護的需要,那就完全是另一種邏輯,完全不可以用投產比來衡量。
2)影響面估算
影響面決定打算開始做這件事的上限,就算技術持續發展,理想情況可以100%的解決問題,影響面也就是可能得最大收益了,當然隨著要求效果的持續提升,需要的數據量和成本都會指數上升,而每次優化帶來的收益會遞減,經常很多AI產品做到差不多就不會優化了。
① 一般如果有線上數據的話,影響面估算主要來源于數據觀察和現象抽象的總結,就是采用歸納法來分析,例如線上搜索數據的多樣性不足,對線上日志分析后發現問題的占比可能在5%,或者線上用戶有一些潛在情感交流訴求的比例在15%,這些都可以通過session分析的方式得到。
一般這種方式,TO B產品的數據分布相對比較固定,如果是TO C產品,會有兩種典型問題:
1.新用戶都有【能力邊界試探現象】,會出現大量“無法理解”“閑聊”類的數據,而一般7天后則會收斂到設備可滿足的一些交互領域,之后交互比例也會相對固定。試探類交互有可能并不是用戶的真實需求。
2.因為TO C的AI類產品一般都很難像觸控產品一樣,把自己的能力邊界直接在界面展示給用戶看,因此產品能力會影響用戶行為。因為新用戶階段用戶除了試探外,更多會嘗試自己未來希望產品幫自己解決的問題,而當產品無法解決問題的時候,慢慢用戶就不再會發起這些需求,但是這些往往是設計者希望持續擴展的產品能力,所以很多新需求的挖掘往往要從新用戶數據來。這個也是7天左右新用戶需求收斂的原因。
② 如果是缺乏一些線上交互數據,則和一般產品設計相同,需要采用市場調研或者用戶研究的方式開展調研,輔以邏輯推理和統計學的后向歸納,得到一些可靠結論,比如最近招募用研,我就很喜歡問如何驗證數據可靠性以及推理相關性的問題。
3)收益估算
一般采用邏輯演繹方式估計收益,在過去,和算法合作經驗豐富,經常閱讀一些相關論文的資深AI產品,可以做到估算的相對較準(當然實際還取決于算法人員水準),這一點尤其在TO B業務的客戶交流判斷方案和可行性時尤其重要,也是區分資深和非資深的因素。諸如有監督的文本分類任務可以做到多少,無監督的文本聚類任務SOTA效果是多少,那些任務技術可達,哪些任務技術不可達。
實際業務里,收益的估算一般會更復雜一些,因為實際系統一般不會是一個任務就可以完成,甚至在大模型以前,很多因為單任務技術不可達,需要把一個任務拆解為多個任務組合才能實現,這樣的收益估算就更加困難一些,和實際的偏差也會更大一些。
3. 設計階段
AI產品的設計一般也是分幾個階段進行,我把這個總結成六步設計,包括【問題定義】【拆解問題要素】【制定路徑/藍圖】【定義子任務】【定義子任務流程】【可行性推演】。以下主要結合兩年前的一個實踐案例,大致介紹下設計階段流程,因脫敏需要,案例的前置估算和部分設計細節會被我省略,省略部分會盡量插入一些其他案例。
對于AI設計來說,邏輯基本素養尤其重要,在對于現實問題的抽象過程中,經常發現一些隱含的邏輯,而把這些邏輯全部抽象出來變成機器任務就是設計者的關鍵人物。經常碰到的問題有:
- 存在隱含的前提:比如某兩個維度之間存在因果關系或者相關關系,比如趨勢永遠整體向上等等。這些很多都會被當成人工先驗知識,在模型里設置,而不是讓模型自己去學?;蛘弑热缥艺f“去把垃圾扔一下”,隱含的前提假設是“你知道家里垃圾桶在哪”&“你知道丟垃圾的垃圾車在哪”
- 假設需要明確定義:比如我們假設數據是離散的還是連續的,數據之間是否具有關聯性。以丟垃圾的例子來說,可能是我假設“垃圾中沒有什么超出你知識或者力量范圍的需要處理的物品”
這一部分用一個復雜度相對較低的例子分享下一些思考。在兩年前,業務部的老業務遭遇天花板,需要挖掘一些潛在的新業務出來。結合當時業務的交互量越來越大,提了一個目標是“從交互中發掘潛在需求”,對這個目標進行一個邏輯三段論的分析,會發現其實它其實隱含了一些沒有被明確定義的前提,以下問題:
- 需要定義什么叫“潛在需求”?
- 交互中包含什么可以利用的信息?
- 如何進行發掘的流程設計?
介紹下AI設計中的我理解的“任務”概念,機器學習和人工智能的專業書籍上有很多關于這塊的介紹,我主要從非算法人員視角,結合過去經驗說下我的理解:
1.怎么理解任務:給AI明確邊界和達成量化條件的課題工作,最需要關注的兩個點也就是“明確的邊界”和“明確的可量化完成狀態”;
2.怎么理解子問題:根據具體的任務目標,拆解出需要解決的子問題,并且制定出大問題的解決路徑,子任務可以不完全貼合機器視角,從邏輯推衍上看如何實現目標;
3.怎么理解子任務:子任務可以說是從AI的視角,由子問題對應到的具體算法任務,每一個任務需要用一套算法或者組合算法來解決,關于這一塊,在后面的步驟中會詳細談一下;
4.一般任務的目標如何定義,由于目標是結合具體場景定義而來的,對于每個場景的深刻洞察我覺得才是設計者的核心能力,是一種把實際問題抽象化的能力,定義系統要解決的場景核心是什么設計目標,一般來說會有一些常見參考,例如精準,召回,多樣,排序,相關等等,目標并不等同于指標,諸如F1、AUC等單純評估模型性能的指標就不能算做設計目標,同樣的更多的場景其實需要根據場景,設計獨立的評價業務指標,過去基本每項任務其實都有根據業務目的設計的復合指標來衡量目的是否達到,知名的BLEU、ROUGE等也屬于具體業務指標。
1)問題定義
① 問題是什么
本質上是重新審視問題,定義要解決的問題本質是什么,因為AI行業的客戶需求是模糊的,客戶無法定義到問題,所以需要把一個抽象的想法轉變為定性或者定量的具象問題。
同時需要對需求場景進行分析,不同業務場景需要的目標差別很大,需要設計人員首先確定對于業務場景來說,最重要的是什么。這里面其實更多的考驗的是設計人員對于文化、社會、行為、人類學、生物學、腦科學甚至心理學的理解(我不是很喜歡單純靠心理學得出結論的方式)。
比如三年前我們重新考慮語音搜索場景的搜索引擎問題的時候,就發現這個場景和全文檢索(百度搜索)有很大不同,對于精準的要求尤其高,但是召回數量上反而要求要少,因為大家都希望一句話直達播放。
另一個例子是因為擴散模型的火爆,有些人用來設計一些擦邊福利圖片,然后就對于這種應用場景進行了一些思考。
對于這種場景來說,其實多樣性就是一個最重要的指標,提供的一定不能是單一女人,風格一致的女人或者真實世界存在的女人,因為從生物進化視角來說,幻想“性”和真實“性”一定要有差異,幻想不可以是真實生活可接觸的一些特性,這一點花花公司老板海夫納尤其懂得,《花花公子》上的女人的著裝、行為、性格在現實生活不可能找到,這也就是海夫納的生意經。
第三個想到的例子,是去年一直在做虛擬人的東西,本質上其實是在探索情感這種非剛需的價值。關于這一點,主要是參考了腦科學和心理學的交叉,包括心智系統、鏡像神經元、邊緣系統、海馬體的構成,以及據此總結的共情與共感兩類對外情感基礎的形成。
這里因為我們業務目標希望虛擬人和用戶之間建立情感信任,因此選擇共情路線,這就代表整個會話系統設計目標是引起情感共鳴,和正常人人機會話、人和人的交流都顯著不同。例如用戶表達偏向情感類事件的時候,一般情況下會話情感設定上,都需要對用戶表達贊同和理解,不論談論內容如何。
關于這一部分,我的下一篇文章計劃是就打算詳細分享一下虛擬人設計的實踐,調研和運用關于人的感性認知如何建立,文學小說撰寫方法論及動畫設計方法論等多學科領域知識,同時在交互上借鑒了【艾迪芬奇的記憶】,對于這款游戲的研究刷新了我對于人機交互設計的理解。
關于問題如何定義強烈建議可以看一下《你的燈亮著嗎》,里面有大量啟發性的案例,比如關于錯誤定義問題導致成本大量浪費,或者正確定義問題使得復雜問題一夜之間解決的例子。舉個例子,書里有提到“解決電梯擁堵問題的一種方案,在每個上下班路上裝上鏡子,讓過路人都停下來整理妝容,就可以很好的解決電梯擁堵問題?!?/p>
② 目標場景最關注什么
第二個是需要分析對于目標場景來說,最關注的是哪個維度。下圖是一個抽象的曲線來描述這個問題,由于準召屬于一堆蹺蹺板指標,在模型性能等同時候,往往是在根據業務場景在選擇曲線上滑動選擇一端的點作為能力輸出。
這首先需要定義問題所處的用戶場景中,是“精準”更關鍵還是“召回”更加關鍵。雖然對于模型來說,可以用AUC來衡量模型整體的性能情況的,但是在相同性能情況下,可以根據目標場景調整召回和精準的傾向性。在某些情況下,如果所在場景里,某個維度的重要性遠超其他維度,即使模型整體性能下降了,最關鍵的維度顯著提升,也可能是一次有意義的優化。
2)要素拆解
主要是拆分問題得到解決需要的一些關鍵要素,哪些是解決問題必備的關鍵要素,哪些是對于問題有增益但是不關鍵的要素,這樣可以對后續的子任務拆分以及每個子任務的資源投入力度有一定的預期。熟悉TO C產品設計的應該都熟悉TO C的業務藍圖繪制方式,目的都是一樣的,找到需要重資源投入解決的關鍵問題。
結合兩年前“從交互中發掘潛在需求”的案例,首先對于“潛在需求”,我找了一些關鍵特性來描述這個概念,這些其實就可以算作這件事情拆分出來的要素?;谝貙膯栴},即可以找到系統設計的子任務,簡單的子問題對應一般對應到一個子任務,這里需要保證的是拆分出的要素和對應的子任務是機器可以理解的。
對于這個案例來說,核心就是如何看待“潛在需求”,我們可以想到一些要素來嘗試描述下理想中的潛在需求:
- 目前沒有被滿足:目的挖掘新的領域,而不是單純的挖掘交互失敗的case,畢竟挖掘已知需求或者已知需求的新表達范式并不是目標。
- 用戶的需求是普遍的:畢竟是商業公司,肯定是希望優先做投入產出比最高的事。
- 未來有增長潛力:同樣的,商業公司考慮持續收益,但是這件事可以推理出如果我要預測一兩年后需求發展情況,做一個長周期時序預測,必然不確定性極高,完全不具備可商業性,這種問題就應當交給人解決。
從上面的三個要素,可以發現首先機器獨立一定無法完成任務,這個任務一定是人機耦合的。其次前兩個要素都有共性問題,就是AI還是無法直接完成,因為找不到這些要素和問題的邊界和明確的量化完成狀態,我就以“用戶需求普遍性”要素為例,做一下要素拆解。
因為邏輯上來說我沒法一步得到投產比這種復合結果,我可以先計算收益,收益這個概念其實分析下,也會發現其實是由【影響面】和【轉化率】組成的復合指標,轉化率這件事我認為機器是不可達的,也需要人工判斷,那就只能進行【影響面】的挖掘和預測。因此到這里我們其實已經可以修正下我們的第一步的目標了。
目前來看,我們的目標實際上是設計一個“新需求領域的影響面挖掘系統”+“一套可視化后臺用于人工結合市場知識判斷新領域預期轉化率”。
應該注意兩點:
1.熟悉概率、統計或者信息論的都了解,實際上每一次拆分,或者用組合方式解決問題,都再次引入了誤差,代表系統整體效率的下降,所以應當盡可能端到端的輸入輸出直接解決問題,避免過多的問題和任務分解設計;
2.對于很多問題實際上機器完全不可達,不可達原因可能是完全無法收集到數據、任務完全無法定義或者當前技術效果無法商用,這個時候經典的做法就是把問題交還給用戶,采用人機耦合方式解決問題,這個時候系統設計的目標也應該從【直接解決問題】改變為【輔助提高人類的問題解決效率】,其實很多產品都可以看到這類影子,比如經典的“幫助中心”或者“客服中心”。
實際上到這一步,大致的可達路徑其實心里已經大致有數了。
3)路徑制定
以“從交互中發掘潛在需求”這個例子分享下我的一些思考,在最開始的拆解中,我分解了三個初始問題:
- 定義什么叫“潛在需求”?
- 交互中包含什么可以利用的信息?
- 如何進行發掘的流程設計?
在前面我做了第一個問題的分析,下面兩個問題因為涉密用戶和業務信息了,我就簡要闡述下:
① 交互中包含的可以利用的信息
實際上這個是經典的信息論原理的利用,一般應用到的會包括以下兩點,同樣的我以非算法的視角闡述下我的理解:
A. 信息的輸入一定要大于輸出,存在冗余才能通過算法壓縮輸出需要的信息,并且還原信息。
通俗點,比如模型完全沒有學習過小學數學,就不可能可以解決小學數學題。
像GPT這種大模型可以讓你輸入很短的幾句話,就幫你寫出論文,原因在于GPT本質上是一個語言模型,是語言模型訓練過程輸入壓縮了相關的知識信息,因此才可以在很少輸入的情況下,讓語言模型補足需要的輸出。其實從GPT計算小學內容經常出錯也可以看出這個原理,因為這類信息不在GPT的訓練數據中。
另一個直觀的理解方式是,給定1的輸入就最多只能有1的輸出,不可能產生1.1,實際上AI需要冗余信息,才可以保證壓縮傳遞后能夠輸出一樣的結果,即10的輸入產生1的輸出,因為處理就一定會損失一些東西,有冗余才可以容忍更多處理空間。
B. 引入解決問題需要的更多維度,尤其是正交維度的信息,就可以顯著提升模型效果。
其實這也是最常用的大幅優化效果的方式,例如在語音類的AI設計中,【用戶輸入的語音音頻】和【用戶的語言表達】就是兩個不重疊的正交維度,即使一些純粹的語音AI能力,例如聲紋識別、語音合成,引入語言的維度也可以大幅提升效果,因此尋找需要解決場景的更多相關正交維度,就是一種最常見的優化方式。
當然信息論的原理有很多條,只是在這件事上,我主要應用了以上兩條。因為AI的基礎是信息論,即使是在大模型時代,信息論的基本原理就像物理學基本法則,屬于目前基于統計的AI無法逾越的基本法則。
對于語音交互來說,一般尋找到的正交可利用信息維度類別有用戶音頻、用戶文本、用戶操作、交互周圍環境、操作發生時間等等方面進行尋找,這個其實很簡單我就省略了。
② 如何進行發掘的流程設計
對于這件事,其實本質上是檢驗邏輯鏈合理性和前提假設成立可能性,做過基本的邏輯學訓練的人都可以做到,實際這件事我也是指導一個校招生就讓他完成了,大致可以這么思考這件事:
A. 首先通過定義一些交互失敗的特征,一般都是通過定義【顯性正反饋】【顯性負反饋】【隱性正反饋】【隱性負反饋】來實現交互失敗的case判斷,敏感原因我省略具體特征。但是其實這樣無法區別幾類問題:
- 效果有問題:因為算法效果問題、或者用戶自身問題導致交互失?。?/li>
- 已有需求新的表達范式:例如【影視】新增“制片商說法方式”;
- 新領域需求:比如奧運會來了,我們需要重新定義一個奧運會領域。
對于這種邊界很模糊的分類問題,AI基本無能為力,因此思路上只能并行構造兩套系統,一套挖掘“效果問題”的case,一套挖掘“新需求/新范式”的case,一套設計上側重利用已有知識挖掘關聯性,一套側重新需求發現。兩套系統一定會有重疊,但是配合也可以解決問題。
一種典型的交互失敗案例
B. 要實施挖掘,可以想到的邏輯鏈及匹配的前提假設有:
a. 假設線上用戶的交互說法,同類的需求具備一些明顯的共性,不同類的具有顯著差異。
- a.i. 那可以直接嘗試先進行無監督聚類,將數據劃分成一堆類別,即可拿到比如,線上100w數據,有幾類需求(比如天氣1w,股票2w),當然沒有先驗知識注入的情況下我只能得到【category1】【category2】【category3】
- a.ii. 接下來第二步處理如何知道【category1】【category2】【category3】,分別是什么,可以想到最簡單的方式是,假設我可以先給系統注入知識,告訴它什么樣的數據叫“天氣”那不就可以完成任務
需求挖掘流程的簡單想法
b. 這種流程下,接下來的子任務定義就很簡單,“聚類+分類”就可以實現,但是這中邏輯鏈存在明顯的問題:
問題1:這個流程里無監督聚類的準確度是最重要的,因為后續的分類環節是基于已有聚類流程開展的,邏輯上第一個環節的效果就尤其重要,因為如果第一個環節效果只有50%,那基本后面就和拋硬幣瞎猜一樣了。
然而實際上,調研了下業界的無監督聚類SOTA,確實低的嚇人,但是可以看到在加入一些知識做半監督之后,效果提升明顯,但是與此同時卻喪失了發現訓練外的新需求的能力,這個對于我們業務場景來說是不可接受的。
Discovering New Intents with Deep Aligned Clustering(https://arxiv.org/abs/2012.08987)
問題2:假設我真的有這樣一份結構化的知識,那本質上我的任務還沒開始其實已經完成了,因為我既然已經都可以知道什么數據是什么需求了,直接去匹配就可以了,沒必要做一個挖掘系統了,這是一個典型的先有雞還是先有蛋的問題。
c. 所以在我們沒有一個完善的結構化知識,并且無監督聚類效果肯定無法商用的前提下,要怎么來做這件事呢?這里細節就不闡述了,以下是當初思考的某幾個想法:
- 思路1:我拿不到精準的結構化知識,那么我是否可以拿到一些相對粗的知識呢?比如維基百科、SNS社區、各種門戶網站都有很好的粗粒度非結構化或者半結構化知識;
- 思路2:像Google、Baidu這類搜索引擎,他們構造原理上需要爬蟲爬取全世界的網頁,并且進行相關性檢索,因此我們可以假設一個新query的相關實體或者query本身,搜索引擎可以提供高相關度的網頁,那我們就可以用搜索接口的Top N結果去挖掘一些潛在粗粒度知識;
- 思路3:直接拿到大量數據聚類處理不可行的話,我們是否借鑒“新query發現”的思路,從單條數據切入,先找到單條的新需求數據,然后再推廣找到類似新需求范式的影響面,但是其實這樣設計會有一個問題,就是以【新范式】代替了【新需求】,范式定義就很重要,比如引入語義、語法等等就比單純的文本近似靠譜得多,但是這樣實際上挖掘到的需求影響面會比實際小;
- 思路4:技術不可達的話,通過人機耦合來完成任務,比如構造一個挖掘平臺,每天把挖掘到的同一類的新大類需求拋到上面,由人工去標記這是什么需求。這種思路的話就需要內部拉通一個“需求閉環團隊”,要求大家每天都上平臺做需求分析。
這里每種思路的后續設計思考我就省略了,簡單說做一些可行性的推衍之后,各種思路結合做了第一版的簡單路徑設計,細節諸如粗粒度知識如何獲取之類的就省略了:
直接處理全部數據聚類效果不可達,逆向思維,從單條數據開始找單條數據的近似類
如果目前想不到什么假設,或者對于場景沒有什么了解,則需要先補充自己對于這塊的了解,一般來說是從現網交互數據,或者線下用研中獲取一些信息。
4)子任務定義
核心是把之前拆解的子問題和路徑,轉化成算法上的AI子任務,子任務定義從技術上來說可以說是決定整個系統效果上限的動作,定義錯了子任務后面的算法結構再怎么優化,再怎么加高質量數據,效果也很難上得去。建議和算法負責人討論完成,需要資深算法人員的深度參與,因為從這里開始已經要開始規劃技術路線了,甚至我其實覺得算法才是起到主導作用。這部分我只是從非算法的視角結合案例談一點粗淺理解。
從大類來說,AI可以分為兩個大類任務【判別】和【生成】,其實這也分別標識了兩條AI發展路線。除此以外AI我個人認為,主要需要了解的通用AI子任務有以下幾類:
- 分類(Classification):將數據劃分到預先定義好的類別中。
- 聚類(Clustering):根據相似性對數據進行分組。
- 回歸(Regression):預測一個連續值變量。
- 排序(Ranking):對項目按照相關性或優先級進行排序。
- 檢索(Retrieval):從大量數據中查找與查詢相關的信息。
- 關聯規則挖掘(Association Rule Mining):發現變量之間的關聯關系。
- 時序分析(Time Series Analysis):預測基于時間序列數據的未來值或趨勢。
- 異常檢測(Anomaly Detection):識別數據中的異?;螂x群值。
其他的一些子任務很多是算法中間過程,例如超參優化、Embedding等等,這些我覺得非算法了解大致用途即可?;蛘呤且恍┚唧w業務場景可能用到的,例如自然語言處理中的NER、句法分析、指代消解等等,這些根據業務場景需要補充對應知識。
這個方便理解重要性可以舉一個四年前的案例。當時的背景是我們發現全文檢索方案在語音場景的搜索中效果很一般,需要重新設計一個語音場景的搜索引擎,其中有一個子問題,當初我想首先必須了解用戶表達的資源的結構化知識是什么樣子的,例如《戰狼》的主演是誰、出品公司是啥、角色哪些討喜、情節是啥、輿論評價如何等等。這樣我可以有更多維度的輸入,最終的輸出設計空間就很大。
針對這件事,我們覺得需要一個豐富的影視知識圖譜,然后我們想到以下幾個點:
1.比如豆瓣、貓眼、時光網這種三方網站,其實有大量的線上線下影視結構數據、影評數據等等,甚至微博、小紅書、Twitter等等有相關輿論討論;
2.比如騰訊、優酷、愛奇藝、Netflix、Hulu、HBO等等網站,每家有自己版權的影視,其中也含有不少獨家影視知識信息;
3.當時和算法負責人合計把多個來源整合到一起,就可以得到一份最全的影視知識圖譜,比如我們有豆瓣的《小豬佩奇》和HBO的《小豬佩奇》,把兩邊字段合并就可以得到更全的《小豬佩奇》知識。
4.然后合并這一步,我們想當然的認為,這是一個分類任務,因為我只要判斷豆瓣的《小豬佩奇》和HBO的《小豬佩奇》是不是一個東西,是就合并到一起就可以了。
再把其他的子問題思考加入,到這里至少當初我們覺得邏輯上沒有任何問題,結果做出來我們發現不管怎么優化模型結構和數據,效果都做不上去,甚至神經網絡的效果和用來做demo對比的傳統機器學習的效果基本一致。后來復盤我們才發現子任務定義錯了,這個場景實際上是一個排序任務,因為《小豬佩奇》各個來源可能有上百部,以一個來源為基礎逐一對比增加信息,實際上模型看不到其他來源的信息,如果是排序任務,模型就可以一次性輸入全部信息比對。
子任務定義后需要注意以下幾點:
- 子任務是否符合需求場景:即子任務定義是否正確。
- 子任務是否具備可行性:對于計算機來說不可計算任務,比如無法通過圖靈機測試的;或者時間或者成本過高的任務,例如參數訓練需要30臺超級計算機計算3年(當然看公司經濟實力),這些都可以認為不具備可行性。
- 子任務效果上是否ok:可以先調研下業界的子任務Sota,效果無法商用的也沒有意義。
這里還是用上面的影視知識圖譜舉個例子,當時我們引入了影視海報作為額外正交維度,提升合并效果,這件事也犯過一個小的定義錯誤,最開始想當然認為比對圖像相似度即可,后來發現實際任務要復雜得多,只是這次問題在設計階段就糾正了。
當然除了調整子任務定義,上述問題還可以通過清洗數據解決,訓練數據中的噪音對于AI來說會嚴重影響效果,即使是語音識別中的噪音環境中的識別,更多也是單獨對固定頻率的噪音建模,過濾這些噪音信號,訓練數據的高質量是保證AI效果的關鍵。對于子任務定義,案例涉密的分析過程我就省略了,這件事確實很看水平。
5)子任務流程
子任務定義完成之后,就需要設計一套流程將其組合成完整的解決方案,這里除了邏輯上怎么把子任務關聯起來以外,經驗上來說有兩種常用到設計模式:
① 級聯結構:一個子任務的輸出會被下一個子任務所使用。
經常在一些【分類子任務+其他子任務】的模式中使用,例如如果是一個購物網站,我們可以先把用戶分類成“購物狂人”、“剛需購買”、“優惠券狂人”、“奢侈品愛好者”等等類型,然后對每個類型的用戶分別構建模型,由分類模型判定后,每種模型分別打分,輸出結果后吧結果拋給對應的推薦模型給出推薦結果。
② 中立類:在分類任務中比較常用,比如分類任務中經常有一些不認識的數據,或者搖擺數據,就可以加入拒識模式或者定義一個搖擺類,就可以讓分類效果大幅提升。
例如自然語言理解的意圖分類里,就可以定義“影視、音樂、笑話、天氣、拒識”幾個類別,再比如要分析運動對于治療頸椎病是否有效,就可以定義“有效、無效、中立”幾個類別,比單純定義“有效、無效”會好很多。
其他的則需要根據業務場景需要看如何設計,比如上文提到的“從交互中發掘潛在需求”的流程中,實際上就是一個持續運行的分類任務,同時維護一個待聚類池,滿足一定條件設定就觸發聚類。
當然實際算法要處理的設計問題要多的多,諸如檢查點設置、數據Pipeline、重平衡等等,只是作為非算法人員,我認為主要以上是需要考慮的,其他的了解即可,相信你的算法負責人的專業性。
驗收指標制定
實際上,一般AI產品或者能力都會有個驗收階段,例如觀察混淆矩陣,AUC等離線驗收模型效果,觀察制定的業務指標在各種集合上的表現。這里主要是分享一些關于設計的思考,就不仔細談這件事,但是根據應用場景特性制定業務的驗收指標這件事很重要。這個指標和模型的性能評價指標無關,有些時候模型的性能指標不變甚至有所下降,但是業務關鍵指標提升了,對具體業務來說也是一次有益的優化。
關于業務關鍵指標制定,一般來說都不是精準度、召回率、多樣性等等這種單一維度指標,一般都是復合指標,而且為了排除絕對數量的影響,一般都是比例型指標。關于驗收另外重要的一點是,指標一定是分兩類的:
- 在線評價指標:用于在系統做好之后進行驗收的指標??梢岳斫鉃榧词共欢畠炔窟壿嫷男“祝灿幸粋€直觀方法評判結果如何。以人機會話舉例的話,可以設計例如對話回復是否符合常識,人設是否凸顯等等。
- 離線評價指標:用于在系統研發階段評估系統質量的指標??梢岳斫鉃閮炔慨a研人員評估每個維度的效果是否達到預期,指導迭代的指標。以人機會話舉例的話,可以設計例如QA相關度、情緒識別準確度、情緒應對策略是否合理、回復文本風格是否幽默等等。
假設為上述的“交互需求挖掘”制定業務指標,雖然中間有很多的子任務,但是我可以關注每條數據是否被正確分類了。因為這本質上是一個效率系統,而且我已知聚類的SOTA其實不高,但是這個誤差我可以接受,我其實更關注盡量少的使用人工,例如我可以定義“保證每類需求95%類純度基礎上,被正確召回到類別里的數據占80%以上”,當然實際不是這個指標,只是隨便舉個例子。
6)可行性推演
主要是回頭評估整個解決方案的問題,在檢驗子任務定義和流程設計之后,主要是需要預估下整個系統的誤差和冗余大概有多少,以及評估應用場景是否可以接受這種級別的誤差。
① 誤差評估
對于誤差評估來說,我認為設計人員應該在設計完之后,大致就對自己的整個解決方案的誤差大致量級,或者說實現了原始目標的百分之多少有一個預估。
- 首先還是先分析需求場景的特性,不同場景對于誤差的容忍度是不同的,這個其實很好理解,比如軍工、安全等引用場景,誤差容忍度就很低,比如很多99.74%的【3-sigma法則】甚至很多企業實施的【6-sigma準則】。
- 不同場景對于不同指標的誤差容忍度也是不同的,這個也是為什么一般需要先定義目標是什么(精準,召回,多樣,排序,相關),比如軍工安全上,模型性能不變的情況下,可以犧牲召回來換得高精準度。
- 任務定義和初始目標之間就有Gap,但是為了把抽象目標變成可實施的,就會產生。
- 子問題拆解或者子任務定義過程中,因為某些子問題走不通,或者子任務不可達,導致需要做一些邏輯降級,比如解決其中的一部分,讓系統變得可以實現,這個天然也就引入誤差。
- 定義設計流程中,如果不是以單一模型的方式設計的,而是采用的級聯模式,那么級聯本身就會帶來誤差,這個直觀上其實也很好理解,第一級輸出的誤差會被帶入到第二級。過往語音識別采用“聲學模型+語言模型”兩個正交維度分別建模的級聯模式設計,現在更多都采用“端到端識別模型”統一建模了,也是優化掉這種誤差??梢员划敵商卣骰蛘呔S度設計到一個模型里的,就盡量不要用級聯設計。
- 當然還有一種誤差是模型本身可以做到多少效果,比如90%的效果,就這個模型這一環節有10%的誤差需要考慮。然后每一級的誤差和下一級的誤差之間是疊加關系,而不是簡單加法。
- 有些任務天然需要對誤差保持高度敏感,例如生成式模型(例如大型語言模型GPT),相比于判別式模型,每一個環節的誤差都會被傳遞到下一次預測中被放大,因為語言模型是逐字預測的,起初可能只是小數點后幾位的微小誤差,在最后會被放大到30%甚至50%的巨大誤差,像這類任務需要對誤差高度敏感。
3年前當初做過一個【無注冊聲紋識別系統】,這個系統是在用戶交互過程中,可以無感知的就實時判斷出“用戶是誰”、“性別年齡情況如何”兩個重要畫像信息,而不需要用戶實現注冊自己的聲音,實現真正無感知。這個對于一些多人共用設備(例如電視、冰箱等家電)或者經常有外人往來的地方(例畢竟外人不可能提前注冊)有很廣的應用前景。
簡單設想一下,這項能力可以用來做以下兩件事:
- 用來實時做交互人的識別,識別到是誰之后,可以把這個設備調整到這人的個性化設定上去,例如內容推薦、鬧鐘習慣、閑聊風格等等;
- 用來做推薦系統,識別出是誰之后,可以把個人的交互數據計算成畫像,讓公用設備也可以具備個性化推薦能力。
對以上兩個場景來說,“實時交互人識別”對于誤差的容忍度就很低,具體來說其實是精準度要求極高,因為誤差會連續傳遞到全部服務上。實際上基于單純“聲學”或者“語言”一維到兩維信息的無注冊聲紋已經效果已經不可達了,需要引入視覺維度做“多模交互人識別”,或者干脆把系統做成注冊式聲紋。
“推薦系統”對于誤差的容忍度就相對高,具體來說召回要求不高,就算一個人被識別成了兩個人,導致畫像計算數據變少,其實影響也很小,另一方面精準度要求也不高,因為其實即使識別錯了,用戶也比較難感知到。
如果以上面的視角方式再回頭審視下“交互中挖掘需求”這件事,就會發現之前設計的流程存在很多問題。
A. 首先其實是有個概念偷換,且不論只能評估【需求影響面】,【轉化率】則需要人工評估這種問題,其實在定義“文本聚類”子任務的時候,已經是再用【表達范式影響面】在替換【需求影響面】了,可以大概理解成其實只能挖掘某個需求的某個意圖,例如“看XXX的(XX年上映的)電影”,其實這只是影視需求的一種表達范式。
即使加入了【知識】給模型提供了一定的泛化能力,也需要知道這種泛化相對有限,畢竟【知識】本身承載的范式就有限,而人的表達范式是無限的。
B. 第二個當然就是“分類+聚類”這種級聯結構,導致誤差傳遞,每一級的誤差都被放大了;
C. 還有問題是如果帶入業務場景分析子任務流程,就會發現如果聚類時候召回不足,會導致沒被召回的結果變成新需求,結果就是有【CAT1(影視1)】【CAT2(影視2)】等等同一需求多個子類。同時業務上會發現如果我們每天的全量數據都拿去全量聚類,計算一次要48h,也就是說輸入一批數據三天后才出結果,而系統還在不斷入數據,越堆積越多,并且三天一看數據也不符合業務快速試錯的要求。
所以最后結合上述問題,初版的設計問題其中一種解法是改成以下的子任務和流程,最終的子任務并不是【聚類+分類】而是【分類+聚類+檢索+類比對】的流式設計,而流程也變成輪次聚類的設計方式,具體分析過程就省略了,以下給出了大致的設計思路示意圖。
② 冗余評估
這個一般是評估系統的效果上限、可優化空間和優化成本,比如如果系統已經沒有太多優化空間,也沒有其他正交維度可以引入了,那這個系統其實就是一錘子買賣,后面的效果運營服務即使想做也沒有任何收益,商業角度看就應該側重思考怎么降本了。如果存在優化空間,也要衡量效果優化的投入,效果每提升1個點需要的成本都是指數上升的,效果越高再優化的成本也就越高,甚至可能就是重構一套新解決方案,所以其實有些不產生流量價值收入的TO B生意經常做成一錘子買賣。
4. 迭代階段
在談AI如何迭代發展之前,想先探討一下關于AI能力邊界的問題。關于這個問題,我個人意見認為吳軍老師提到過的他的導師總結的人工智能三大問題總結的最為精煉。
1)設計者意志:可以說AI目前依舊是設計者意志的體現,是設計者用他的設計意志代替了全人類意志在設計。
關于這一點,我一個關系要好的算法負責人講過他的觀點是AI是一種“重構+共現”,我覺得可以直觀理解成一種高級復讀機,不論是定義需要獲取的數據,還是定義任務,基于統計的AI還是一種對于信息的歸納和總結,來復現輸入的信息量。
這其實代表使用的AI代表的就是設計者的意志。即使是大模型,我使用OpenAI的GPT4和Antropic的Cluade做東西,也發現兩者在輸出信息傾向和邏輯上有明顯不同,有興趣的可以到https://nat.dev/ 或者What is the Vercel AI Playground?試用下。
2)隱私性:AI的隱私性問題和安全問題討論已經很多了,就不贅述了,近年的聯邦學習技術對這個問題提供了一些有益的解決方向思路。
3)非連續性:這里涉及一個基本邊界問題,AI的前提假設是涉及的事務都是連續的,但是實際上現實世界的很多事情都是離散的、稀疏的,這有可能是因為沒有收集到足夠的信息,有可能是更多信息本身無法被收集,這就造成:
- 第一,并不是所有的問題都可以被AI抽象。
- 第二,實際上AI抽象現實問題的時候,離散問題會被當做連續性問題解決,導致誤差。
因為AI可以簡單理解為一種基于統計學的高級復讀機,所以其實本質上無法處理預料之外的情況,雖然可以對意外情況做一些兜底處理,但單靠模型的話,未定義的部分其實就相當于在拋硬幣了。比如吳軍老師經常舉一個例子,對于自動駕駛來說,如果車不認識“沙袋”,那車路上碰到沙袋就只能停下,或者極端一點,一個人突然攔在車前面不走,車也只能停下,這就是非連續性。
為什么講這個呢,因為一般大的迭代方向和這些限制就有關系,一般來講迭代的方向有幾種:
1)基于業務場景的基線版本,擴展更多的業務其他應用場景
- 例如用于縮減成本的本地化方案:把計算轉移到本地,就可以節省云端服務器費用;
- 例如降低隱私問題的聯邦學習方案:和區塊鏈的思路就有些相近。
2)提升到更好的效果
- 以前的AI有一個大問題是,如果不更新訓練數據,效果就會持續下降,當然有些設計時候可以預留一些字典,可以后續靠填充字典數據,不更新模型提升對于新數據的適應,減少下降趨勢。
- 如果可以尋找到更好的流程,或者更精準的子任務定義,可以大幅提升整個系統的效果。
- 算法模型結構本身的更新,這個問題就相信你的算法負責人就可以了。
3)根據不同業務應用場景的定制化
a. 比如前面提過的聲紋的例子,如果做家庭個人健康檔案,依據無注冊的聲紋就無法做到,因為無注冊聲紋的上限相對較低,優勢在于便利和實時性。但這種場景需要至少95%以上的高精準度才能使用,此時就要重新考慮方案。
b. 聲紋這個例子里,就可以使用注冊式聲紋(即現在大部分聲紋方案),先讓用戶說幾句話,然后生成一個人,因為這種情況下可以人機耦合來解決噪音干擾問題,可以保障。
- i. 聚合數據完全純凈,因為是人工專門錄制的音頻嘛,后面只需要和這個聚合類比對下是不是一個人就完了;
- ii. 同時可以設計各種發音場景或者發音質量校驗標準(比如百度地圖錄制一個自己的發音人,就會校驗音頻信噪比、音頻質量、文本匹配度等等,總會提示音頻質量不過關重錄),來讓訓練數據的質量變得無比高;
二、預訓練帶來了什么變化
預訓練首先是對于傳統的監督學習的改變,Transformer這種有史以來最高效的特征抽取器的廣泛應用,讓LM通過共享預訓練模型的參數連接起各個任務,GPT/Bert的兩種研究范式也就就此確立的。對于之前主要廣泛受關注的是以Bert為代表的“雙向語言模型預訓練+應用Fine-tuning”模式,使得語言模型適應下游的任務,基于預訓練的思路,模型更大了,效果更好了,各種人工智能的最終任務,諸如完形填空、目標檢測、關鍵要素抽取、機器翻譯、自動摘要、圖像識別、物品推薦等等均取得了不同程度的提升。
從我的視角來看,我對BERT范式的模型理解是這樣的:
1)模型的通用性差:雖然預訓練讓模型適應下游任務,但是實際上應用方面比較窄,這個可能和這種范式與人類語言習慣的距離更遠,不如生成范式接近人類的表達,和Bert的訓練數據也有相當大的關系。
2)預訓練的信息輸入量遠高于以前的訓練模式,通過大量提高輸入的方式必然會使得輸出有提升。因為我理解AI算法本質是壓縮輸入,已經從輸入里總結歸納,并且在輸出端復現輸入,即使是生成式的算法也是這樣,例如大型語言模型加入COT可以使得結果的邏輯性和合理性更強。
3)數據和模型大小變化帶來的收益較低,原本效果上無法商用的一些方案和技術,依舊無法商用。這個可能和模型本身的規模沒有達到某個量級有關,因為同樣是雙向的T5和BART在生成類任務上也取得了不錯的效果(BERT本身就不具備這種場景能力,不做談論)。
4)模型量級在指數上升,且模型的規模擴張速度已經超過了摩爾定律的硬件性能提升速度,也就是說就算拋開效果提升了多少來看,成本的上升速度超過了收益,成本的上升速度有些過快了。關于這一點雖然openai和deepmind都分別測試了模型量級和數據量的縮放法則來說明必要性,但是成本上升卻也是事實。
Pre-train, Prompt, and Predict: A Systematic Survey ofPrompting Methods in Natural Language Processing(https://arxiv.org/pdf/2107.13586.pdf)
這篇綜述文章很好的闡述了研究的范式發展思路,到GPT這一代的時候,Prompt方式已經將任務調整到語言模型中進行實現而不是讓語言模型適應下游的任務,這種方式帶來了相當多的變化。
三、大模型的AI設計方式變化
1. 大模型帶來的變化:普通人的AI設計時代
Prompt標識的第三波大模型的變化(我并不喜歡稱這種方式是自回歸的語言模型的時代,或者單向語言模型的時代,至于原因下面會提到),從結果上來看,我覺得最大的變化是理解成本和應用價值都向C端的一般用戶逐漸靠攏。
過去的AI其實從理解成本上來看,普通用戶很難理解是怎么一回事,因為人與AI無法把完整的交流都通過人類可以理解的方式進行。就這好比文藝復興的時代,宗教比科學一直以來都更加容易被人接受,就是因為宗教的語言交流方式距離一般人的直覺更近,大家可以無需學習很多科學知識就可以對這件事進行理解和探討,而現在相同的事情正在大模型上發生。
第二點就是應用價值的變化,過去的AI實際上在To C的普通消費者上一直比較難產生直接價值,這實際上是“交互”這種AI應用場景的困境,實質上“交互”本身一直都很難找到一個能直接產生價值的點,這也導致大量的To C的AI產品實際上的銷售模式很多都是依托供應商分銷完成,這種模式實質上很多廠商把貨物壓到分銷商手里,銷售環節就已經算結束了,這里的具體原因我們不做深入探討。
但是大模型實際上改變了這個情況,從Chatgpt開始,大量面向To C產生實際價值的產品需求被釋放了,對于大模型所有人都可以輕而易舉的想到幾個和自己有關的價值場景,可以說To C的價值在大模型這里才真正被釋放了出來。
Prompt的方式,對于AI設計來說,其結果就是帶來了各個維度的AI設計門檻的變化,以及理解成本的極大降低,大模型時代可能只要具備基本的邏輯學修養,就可以進行AI產品設計,讓我不禁感覺“人人都是AI設計者”的時代可能近在眼前了。所有人都可以很直白的理解AI可以做什么的時候,各種有趣好玩的AI應用涌現就近在眼前了。
為什么到了GPT的方式才讓我產生這個感覺,主要源自它帶來的一些人機交互方面的巨大變化。關于大模型技術國內外論文已經相當多了,諸如RLHF、COT、Zero shot prompting等等,因為文章整體整體更多分享個人見解,不是一篇技術分享文章,這些部分我只大概引用佐證說明觀點,明細就壓縮掉了,如果不了解相關的一些背景信息,可以直接看Openai、Antropic、Google、Deepmind、Meta、國內外知名大學和研究機構的論文,或者國內外大佬的解讀博客。每個部分的佐證我都有引用標注,如果想要了解到技術細節還是建議自己勤動手吧。
1)人機交互界面變得自然,貼近人類的交互界面
大模型帶來的一個核心變化之一是,過去的人機交互,機器只能理解有限范式的指令,而大模型做到了統一范式:
- 在信息輸入時,統一了范式使得多種類型的輸入都可以作為信息輸入AI(T5論文論證了這一點),這其實意味著我們可能不需要逐個類型任務設計不同的AI,例如圖像和文本都可以統一形式輸入同一個AI,然而實際上語言模型確實可以把這些連續性信息都抽象成語言進行理解;
- 因為壓縮了世界知識,使得AI具備了通用的理解能力,而不是僅僅理解定義的有限范式,這其實另一方面也代表了語言模型具備輸出多種范式的內容潛力,事實上本文談打的另一種圖像類大模型擴散模型,我覺得最終會被語言模型所替代掉。
Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer(https://arxiv.org/abs/1910.10683)
人機交互界面是一個泛指,以完成人機交互需要交互人具備的專業能力要求來看,可以劃分為三個階段,下圖是我用Dell-E生成的表達人機交互界面發展階段的示意圖,雖然我盡力調整了,但是圖片依舊有點文不切題,這個讓我更加確信了現在的圖像生成一定需要語言模型的必要性:
① 專業人士+有限集能力:可以類比“遙控器+電視機”的模式。
這種模式可以看成是經過了兩次編碼,一次是人把需求轉化成遙控器的按鍵指令的編碼,一次是遙控器把接收到的指令編碼成執行指令給到電視機執行,所以一般這種產品都是具有學習成本的,即使是移動時代的app也可以理解成這種模式,既然有學習成本,就不是所有人都天然會使用的,這也是為什么老年人很難學會的原因。
② 普羅大眾+有限集能力:這時已經可以把“遙控器”這一個環節的編碼載體去除了,變成了“自然人+電視機”的交互模式。
人已經可以通過自然語言和設備進行交互了,但是這并不是需求不需要進行編碼了,只是因為自然語言這種需求編碼方式,人人都掌握了所以學習成本消失了。關于人類使用自然語言對本身需求進行編碼的效率問題,這是另一個話題了,留給以后有機會再談吧。
上面這種模式實際上就可以理解成過去的自然語言處理范式,雖然使用門檻被降的很低,但是是依靠預定義的有限范式支持的,這里面需要大量的設計和算法人工定義工作,可預期的也是支持的自然語言范圍很窄,經常不理解,算法在有限預定義集合上做各種語義泛化工作,但是實際上還是在追求有限集合上的輸入復現。
這種方式預定義擴展的范式越多,用戶用起來就覺得越自然,支持的說法越多,所以在之前的人機交互設計中,大家普遍圍繞線上用戶交互失敗的query,不斷挖掘、不斷豐富和擴展自己的范式,讓用戶用的更爽。
③ 普通大眾+通用能力:在這種模式下,大概可以理解成“電視機”本身也被一種萬能工具替代了,大眾通過自然語言直接和需要的影片交互。
可以大致認為這個時候用戶可以用自然語言發起各類需求,而這些需求都可以被大模型編碼成執行指令,直接給到資源方執行。這也是大模型的重要的通用性的特性,我的理解是這個可以說是數據帶來的,而不是AI本身的特性。關于這個特性在下面會談一下我對于這個“通用性”和“全知全能”之間的差距的理解。
④ 其實看擴散模型的Playground也可以看出這種演化趨勢,Stable diffusion還需要具備一定的代碼能力才可以使用,到Dell-e和Midjourney已經可以直接在網頁或者Discord上使用自然語言交互。
但是實際上,實現雖然Dell-e和Midjourney可以用自然語言交互,但是和普羅大眾的需求語言還是存在巨大差距,本質上和Stable diffusion用機器代碼指令交互區別并不大,只是使用門檻降低了一些,本質上還是需要以機器能夠理解的會話范式來說話,例如下面是一個在Midjourney的Discord社區隨便翻了一個案例,專業語言的Prompt我是用GPT幫我寫的。
Midjourney的Discord社區某個案例,文本我用翻譯軟件翻成中文了
交互界面的自然化,帶來的必然結果就是對使用人的專業技能要求少了,比如我們不需要會使用設計工具和代碼,就可以使用Midjourney,但是如果讓我們輸出專業的Prompt,就會需要一些專業知識。如果讓GPT來做專業語言prompt生成,也需要做到從設計語言層面做需求拆解,這其實依舊和普通人模糊不清的需求描述有差別。
這一部分的需求拆解工作是不能讓AI來執行的,因為這件事沒有現有知識可以總結,而是需要基于已有的少量輸入,推理出遠超輸入的大量輸出。大型語言模型可見的問題是不具備基于已有推理未知的能力,給的結果更多可以理解為是AI從數據總結歸納的結果,而不是推理的結果,這種結果可想而知是接近千篇一律的。
所以其實自然度也是有限度的,至少各專業領域的需求拆解工作目前并不會被替代,其實抽象一下也就是說,各個領域里面真正產生新信息的工作不可能被替代掉。
但是即使語言模型有能力邊界,其實這種程度的交互自然度已經使得相當多的專業性知識在實際使用中變得缺乏意義,但是我依舊認為了解領域專業知識的人才可以具備創造新信息的能力,不了解的人甚至不具備評價某一成果好壞的能力。
2)大模型的通用性,高成本領域定制方案的消失
過去的AI往往一種AI只能解決一種任務,這就使得大千世界里形形色色的行業和領域都需要各種算法能力定制,但是GPT的預訓練使得大模型表現出了對于人類語言的通用理解能力和推理能力,因此在各種領域都顯示一定的基礎理解力和應用潛力。
加之低成本定制方案FLAN、P-tuning、Lora的應用,微調的技術證明了可以用少量數據強化大模型的指定方向的效果,這意味著通用人工智能+低成本的定制,取代了過去逐個場景定制的高成本方案,可能一般用戶見的最多的就是基于Stable Diffusion微調的各種風格的圖像生成模型:
① Lamda和Alpaca的相關研究證明了只需要幾萬指定方向的高質量數據微調就可把指定方向的效果拉升到可用水平,相比于天文數字的預訓練來說,這個量級的數據可以很快收集到。
這意味著具備了“一個通用大模型+低成本定制領域方案”的一套解決方案可以低成本,并且快速的實現基于通用大模型的各領域應用定制工作。斯坦福的論文闡述這一項工作開銷低于500美元,斯坦福使用的LLaMa模型較小,但是依舊有很強的參考意義。舉個例子,如果我需要把強化大模型的多樣性,我只需要幾萬的Finetune或者P-tuning的多樣性數據集來調整即可。
Alpaca: A Strong, Replicable Instruction-Following Model(https://crfm.stanford.edu/2023/03/13/alpaca.html)
② Lora在NLP領域以及圖像領域Stable Diffusion的廣泛應用,使得可以在不對大模型進行有損調整的情況下,低成本的強化指定場景效果。從下圖可以看出,相比于Finetune需要調整的參數,Lora調整的參數規模和達到效果實在可觀,這意味著Lora的微調成本更低,成效更好。當然Lora可能更加適合單任務或者單特性的強化,對于多任務或者模型整體的調整可能并不適合通過Lora解決。
LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS(https://arxiv.org/pdf/2106.09685.pdf)
另一方面,大模型的通用性代表,即使無法收集到一些某些領域的數據,依靠大模型的通用能力+Prompt提示的方式,也可以實現在指定領域不錯的效果,即使沒有在指定領域進行過精調。
實際上,在實踐中也發現如果是通過Tuning的方式實現,一般精調的數據集并不宜過多,過多的數據集會導致大模型原本特性和能力效果出現下降,可能對話的相關性和多輪連續性都會受到很大的影響。所以目前似乎精簡的高質量集合是相對合理的,如何精簡精調數據集本身又是一項充滿門道的事情。
大模型的通用性來源于對世界的壓縮,可以認為大模型把整個人類世界壓縮作為了輸入,因此大模型才可以做到在用戶僅僅給出很少量信息的問題時,可以輸出遠超過輸入端信息量的輸出。
在移動互聯時代,大家還在講信息爆炸的影響,但是現在對于大模型來說,數據渴求已經是一個更普遍的現象。世界上的很多信息并不存在于互聯網上,因此即使把整個互聯網那個的信息輸入大模型,通用性依舊是有限的,這個其實就會需要能夠收集線下模態信息的模型出現。
從另一個維度講,即使現在模型的膨脹速度已經超越了摩爾定律的硬件擴張速度,大模型對于世界的壓縮效率也是很恐怖的,我并不知道這個會不會影響到信息論信息量計算公式的基本定理,但是只要大模型依舊按照統計的路線,信息論的基本原理始終是生效的。對于算法人員來說,大模型的通用性意味著算法可能真的是在革自己的命,首先收到沖擊影響的可能是算法從業者。
但是其實上面說的大模型的通用性,并不是真正可以實現多種現實任務的“多任務人工智能”,關于真正的多任務人工智能,目前依舊停留在學界的理論上,但是真正的通用AI我覺得還需要等待多任務的人工智能的進步。
3)“效果上不可達”可能可以根本解決
Google的經典論文闡述在模型參量達到13B(10^22)以后,大模型涌現出沒有定義過的新能力,這項新能力的效果,在參數量達到量級之后,很多原本效果接近于隨機的任務,效果突然出現大幅度的提升。
雖然一些論文闡述評估方法具有平滑性的問題,但是效果出現了跨越式提升卻是事實。一個直觀的感覺就是,如果對比過GPT4和Chatgpt,或者更小的語言模型比如Alpaca,其實就會發現,小語言模型對于語言本身的理解更像是一種范式模仿,不具備語言的邏輯連續性和推理能力,即小語言模型其實沒有理解語言這件事本身,而GPT4已經在逐漸逼近理解這件事,雖然它依舊存在很多問題。
對于大語言模型來說,因為對于語言的理解更加高維和深層,從而出現了一些Emergent Abilities,原本效果上不可行的任務都變得可商用了,因為我們可以寄希望于伴隨著訓練數據規模和模型參量的提升,大模型從訓練數據中學習到一些更深層的語言知識,transformer的中層和高層得到更充分的利用。這意味著設計需要的經驗和能力要求大幅降低了:
Emergent Abilities of Large Language Models(https://arxiv.org/abs/2206.07682)
① 在上文提到之前AI設計方式的例子中,由于一些子任務不可行而需要進行復雜任務流程和子任務重新定義的設計不再需要了,設計可以被極大的簡化。
② 原本需要資深人士經驗推斷才能判斷一項任務是否可行,或者效果能達到什么程度的經驗判斷變得意義較?。ɑ蛘呖赡茏兊脽o法評估,因為無法推斷模型擴張到什么程度會引發能力涌現)?!炯夹g可達性】這個問題原本是需要踩過很多坑,有大量子任務經驗,這類資深的設計人員,可以讓公司在設計和驗證方案階段的成本最小化,這一原本AI方案設計的巨大門檻,被基本消除了,各種方案都有可能在某個量級下能夠成立,可能真正的條條大路通羅馬了。
這其實引發我思考一個恐慌的問題,就是AI是否擺脫了“設計者意志”,是否設計者都不再需要了。但是這件事即使我在Openai的Discord也較少看到討論(我發出的提問也并沒有人回應),就我的對于大語言模型的使用體會,結合個人理解以及和算法朋友的討論,我個人直觀上感覺Emergent abilities可能與兩種情況有關聯:
① 是和人工定義的原始子任務存在一些關聯的,可能語言模型學到了一些更高層次的潛在語言關聯,這個現象并沒有辦法在任意一個任務上就憑空出現。
② 因為模型數據量和規模的擴大,模型從語言本身學到了更深層的東西,把他們存儲在了transformer中。
下面有一個例子是我使用中發現的一種典型現象,如果GPT-4幫助你決策,在引導下GPT-4可以主動詢問一些做決策缺失的信息,并做到穩定復現,但是Chatgpt即使給出Prompt也無法穩定實現。這個應該就是語言模型慢慢具備了“常識”,國內很多復刻的大模型其實主要不足也就在這里。
但是“常識”其實我覺得是一個很抽象的詞匯,它可能包括了“歷史的沿襲”、“主體和主體屬性”、“主體間關系”等很多方面,這些問題也放在下篇文章再討論吧。
③ 模型和數據量的擴大,導致模型對于語言的表達理解更深了,同樣的一句話GPT4已經都可以理解,Chatgpt則會給出完全不同的回應,雖然每種回應包含的信息量都有巨大差異,但是即使選擇信息量最小的一種提示方式,GPT4也可以立刻反應過來,而這種非顯性的交流,更加接近真實場景中人的會話方式:
- 你沒有什么需要我提供的信息來提供具體建議嗎(反問+質疑+提示)
- 你沒有什么要問我的嗎(反問+質疑)
- 你有什么要問我的嘛(缺失提示信息,也沒有反問和質疑態度)
BIG-BENCH中有類似的Sufficient Information測試任務集合(https://github.com/google/BIG-bench/tree/main/bigbench/benchmark_tasks/sufficient_information),但是我感覺big-bench上的測試集偏向于知識推理(e.g., How much water is in a full 4 inch tall cylindrical glass? Answer: what is the radius of the glass?).而不是一些基于社會運行常識的一些推理,例如著裝需要依據不同的工作性質、場合、性別、外貌特點以及個人希望他人對自己形成的社會認知。
至少從我幾個月的使用體驗中,我認為AI依舊存在“設計者意志問題”,甚至因為微調對于激發模型表現的巨大影響,以及預訓練數據的范式對于模型語言理解傾向的巨大影響,設計者通過數據向語言模型施加的影響更大了。關于預訓練范式如何影響語言模型的問題下面會再另外談到。
4)很多中間子任務變得沒有意義
大模型導致很多的AI中間子任務不再具有意義,很多問題可以端到端的直接解決,這不僅是很多AI的子任務失去了研究意義,很多業務子流程設計的時候也不再需要轉化成繁瑣的AI子任務,可能僅僅依靠基本的邏輯素養,只要制定出合理的任務路徑,就可以期待大模型可以端到端的直接解決此類問題。
舉個例子,假設我們想設計一個基于情感的聊天會話系統(先不考慮知識和常識怎么來的問題),在以前會可能需要做如下的任務分解:
在上面的任務流程里,“會話歷史的理解與關鍵抽取”、“會話情景的綜合分析”、“主動挑起話題的能力”、“話題主體的預測與選擇”、“風格化”等等都需要單獨制定方案逐一解決。
這種思路在過往的AI設計中很常見,因為無法端到端直接輸出想要的結果,就把一個任務拆解細碎的小任務組合,最早的語音識別是將任務分解成識別音節、詞性、語法等小任務(即使現在語音識別分成聲學和語言兩個維度,也是放在統一端到端模型了)。
而之前對于情感這件事,具體的AI子任務會有更加細碎的分解,例如之前小米對于情感對話這塊的實踐就是這樣的思路,把情感這件事拆分成“Exploration”、“Comforting”和“Action”三步來實現,并且借鑒了Maarten Sap 等人建構“if-then”圖譜的思路。
MISC: A MIxed Strategy-Aware Model Integrating COMET for Emotional Support Conversation(https://arxiv.org/pdf/2203.13560.pdf)
ATOMIC: An Atlas of Machine Commonsense for If-Then Reasoning(https://arxiv.org/pdf/1811.00146v3.pdf)
而對于大模型來說,我只需要定義好情感的精調數據應該長成什么樣子,就可以借助精調數據激發大模型的能力,端到端的實現情感會話。這樣的端到端設計方式直接導致了三個結果:
- 專業的子任務定義工作不需要了,設計者甚至不需要理解子任務是什么,人工智能存在哪些子任務這些基本知識,就可以上手做設計。
- 任務拆解和路徑拆解的工作變得非常簡單,因為不存在效果不可達,并且問題只需要端到端解決,看起來沒必要分析任務的構成要素,拆解解決路徑了。甚至目標本身可能就是任務,例如“我需要一種面向老年用戶情感陪伴的聊天系統”,可能直接就是這個目標唯一也是不需要分解的任務。
- 數據的重要性變得比預訓練時代還要重要,以前我們可以認為要達到很好的效果,模型占20%,數據占80%,現在數據的比重再度提高了。這也導致了一個問題,就是數據集定義和設計的怎么樣,就直接決定了最終效果。機器學習的名言“trash in,trash out”,可以說在大模型中會得到極致的體現,大模型對于數據的敏感性比過去的模型都更高,3%的訓練集噪音就可以直接毀掉整個系統,使系統變得根本無法使用,而在以前,這個噪音容忍度可能是5%或者更高。
看起來既不需要做路徑拆解也不需要做子任務定義了,但是我覺得其實這更加考驗對于“情感”這件事的本質理解了,畢竟定義出來數據集長什么樣就直接影響了最終的輸出效果,“數據集應該是什么樣的”這個問題可能更考驗對于社會學、腦科學、家國文化、心理等方面的理解,以及對于“會話”這件事的本質理解。
5)大模型的應用會有哪些問題
打造一個大模型需要巨大的訓練費用和調用費用,這一部分在很多大模型的工程復現文章中都有成本的詳細論證,就不做贅述。想談幾個被較少提及的應用問題,但是包括訓練和調用成本在內,這些問題并不是無解的,只是需要行業內共同大模型的健康發展去逐步解決。
① 成本問題展望
A. 成本的擴張
關于目前“AI模型規模的增長速度超過了摩爾定律的硬件擴展速度”各種論證和說明有很多,但是當下這個輿論風向的話,可能Sam Altman的說辭更有說服力一些吧。眾所周知,AI的效果每提升一點,模型規模和需要的計算資源都是指數上升的,一定不止摩爾定律的兩倍這么多。當然摩爾定律本質上也是商業行為逆推整個行業技術改進速度的案例,所以Sam Altman這個很有當年英特爾和微軟那味。
另一件事是,目前互聯網上可得到和使用的數據,相比于目前模型消耗數據的速度已經顯得有些不夠用了,尤其是信噪比低的高質量數據可見的十分有限。這導致后面有可能需要從線下去收集數據進行線上化,線下數據的線上化本身對于資源的消耗就可見的十分巨大。比如看看Palm-E消耗的資源量和達成的效果,就可以理解線下維度的數據收集有多么困難。
B. 成本下降的展望
算法優化的本質,我的理解是不斷的提高無損壓縮信息的壓縮比,因此可以以更小的資源消耗實現等同的效果本身就是算法的優化目標。
在模型規模指數級的提升背景下,OpenAI自2019年開始,也提出了需要模型運行效率的問題。另一方面這個問往往不至于算法本身,很多工程化的手段都可以在效果不損失的前提下,在很短的時間內把計算消耗降低一到幾個數量級。GALM和HunggingGPT讓一部分專家系統起作用,而不是整個系統起作用也是一種思路。
Measuring the Algorithmic Efficiency of Neural Networks(https://cdn.openai.com/papers/ai_and_efficiency.pdf)
第二個有幫助的點是,可以通過增加訓練數據量使同等規模大小下模型得到更充分的訓練,這樣雖然對于一次性的訓練成本有上升,但是在調用模型時候這種流動成本可以降低。
雖然openai(Scaling Laws for Neural Language Models)和deepmind(Training Compute-Optimal Large Language Models)有通過實驗給出最佳的模型規模和訓練數據量匹配比例,但是不論如何訓練數據量單獨擴增對于充分訓練之前的效果提升也有很大的幫助。另一方面,精調數據集對于效果幫助則更大,InstructGPT已經證明經過精調的小模型性能表現上甚至可以超過大模型。
目前的這種稀疏的大模型,在實際推理時,只有模型的一部分參數在起作用,通過進一步理解大模型的作用原則,我覺得后面通過控制部分參數參與推理來實現成本的下降可能也是可行的。另一方面一個分發大模型+一堆專家小模型的MOE思路也可以大幅降低成本,例如GLam雖然參量是GPT3的七倍多,但是實際上成本卻比GPT3少得多。
GLaM: Efficient Scaling of Language Models with Mixture-of-Experts(https://arxiv.org/pdf/2112.06905.pdf)
當然這一部分是純粹的算法和工程問題,我覺得了解可行性與方向即可,專業的問題還是就留給專業的人解決。
② 合規和人機合作的定位
對于GPT來說,本質上生成內容是不可控的,其實從微軟和Google在開始推廣前,都開掉了自己的合規團隊就可以看出一些端倪。在我理解里處理方式無非是幾種:
- 引導:通過引入人工反饋強化和精調來對大模型的輸出方向進行引導;
- 后處理:也就是加一些規則處理做敏感過濾,這個最容易想到,大模型廠商也都有做;
- 清洗數據:這個是最徹底的,但是也是最難的,因為一方面清洗數據或者強制給模型預設某些條件,會導致模型的性能下降;另一方面精調數據的清洗還好,預訓練數據的清洗是一個世界難題,雖然有研究證明似乎可以精準定位到發生問題的訓練數據和模型局部,但是路還是很遠。
綜合來看,對于GPT來說,人機合作的設計路線更加合理。過去的人機交互意志有一個比較尷尬的實際問題,就是to c其實很難產生直接價值,to b雖然產生了價值,但是往往敏感性很高,可控性這個可能是過去Bert路線這么受追捧的原因。
但是對于可控性較差的GPT而言,可能AI作為輔助角色,引入人工干預可能是未來的長期路線。類似自動駕駛形態的人機合作,最有可能成為大模型的產品定位終局,比如大模型可能不能直接成為家教,但是可以成為家長教育孩子最好的輔助工具。
這件事如果從系統論思考,結論也是類似的。從系統論來說,一個不受管理的封閉系統始終是熵增趨勢,會逐步走向無序與混亂,而解決熵增的方式就是與外部系統建立關系,引入負熵,讓系統無序性降低。
對于人這個系統來說,與其他外部系統之間的負熵引入尤其重要,如果AI本身都是讓人在自己的圈子里去活動,那只會讓整個系統越來越無序和混亂,所以AI如何成為輔助鏈接外部負熵的輔助,從系統論視角來看這個可能是終局,其實這種熵增變化對于AI本身也是一樣。
③國產化的精度問題
受美國制裁影響對于大模型本身其實影響很大,且不說先進軟件技術都在美國的問題,國產化的計算芯片和NVIDIA的差距就會對大模型輸出效果造成巨大影響。就像上面提到的,GPT這種生成式模型對于每一個字預測的誤差都很敏感,因為誤差會被逐級放大,在過去幾億參數較小規模的生成模型上經驗來看,國產化因為浮點計算的小數點位后2-3位開始和NVIDIA產生偏差,同樣的模型在國產化芯片和NVIDIA上一致性只有差不多50%-60%,而這種問題在大模型上會被放大的更加劇烈。
目前國內還有一些渠道獲取A100或者A800,但后續感覺還是要看國產化芯片計算精度,畢竟對生成式模型來說,不光是計算資源是否足夠問題,計算精度一位的差異都會在逐漸生成的過程中被無限的放大。
④ 數據渴求與模型規模
對于大模型來說,模型規模越大,訓練數據越多,模型效果就越好。那么對于大模型來說,目前的數據是否夠用呢?會不會出現現實世界中的數據被消耗完,從而達到AI能力極限的問題呢?
這個問題此前的估算模型是OpenAI輸出的訓練數據和模型規模的配比,但是按照Deepmind團隊最新的Chinchilla的評估提出了修正,假設按照Chinchilla測算,模型規模和訓練數據應該1:1同比擴大,可以說目前的大模型都屬于訓練數據量不足,訓練不充分的階段。比如以GPT3的1750億參數規模,至少訓練數據應該擴充11倍以上。下表是論文給出的三種不同評估方法的一些評估值。
Training Compute-Optimal Large Language Models(https://arxiv.org/pdf/2203.15556.pdf)
Training Compute-Optimal Large Language Models(https://arxiv.org/pdf/2203.15556.pdf)
按照充分訓練發揮模型最大效能的方式來進行,現行的數據量足夠支撐模型訓練嗎?會不會出現數據不足的情況?我覺得這個問題有這么幾點已知信息:
- 按照Chinchilla的評估,我大概認為要實現ChatGPT或者GPT4的效果,可能需要的模型參數量要小得多,但是訓練數據量和訓練充分度要大得多,可能從效率上來說合理的事更小的模型更多的數據。而目前的ChatGPT或者GPT4其實效果已經相當可觀了。
- GPT4的訓練集tokens數量比ChatGPT可能要大至少一個數量級,但是從之前的45T清洗到1T的訓練集來看,依舊是英文互聯網的一部分。目前的英文互聯網上的高質量數據集依舊有相當多可以被用于拓展訓練集。
- 中文互聯網上,我記得在哪里看到過有人清洗了幾百T的數據集只得到了幾T的訓練集。從常識來看,中文互聯網的高質量數據集也很少,因為互聯網發展時間短,很遺憾像百科、各類圖書的電子化、國際高質量學術論文平臺和雜志,這種高質量信息建設的工作在中文互聯網很少。各類線下高質量數據的線上化程度也不高,所以中文的高質量數據集是否足夠這個問題我覺得是有很大疑問的。
2. 設計方式的變化:設計者最好的時代來了
目前的大模型來看,雖然可以替代一些專業工作者的工作,甚至于算法研究本身的工作,但是依舊擺脫不了設計者意志問題。因為大模型在效果上和通用性上的巨大進步,突破了之前的AI能力邊界,各行各業被能力邊界壓制的需求都涌現了出來。所以確實可以說,設計者大展拳腳的時代來了。
① 大模型時代AI設計:端到端設計方式&極端的數據主導權
大模型對于效果的突破進展,以及其設計思路,沖擊性的改變了三件事情:
- 依靠語言模型一種技術解決了過去需要多重任務、級聯設計才能解決的問題;
- LLM同時解決了多種任務,雖然達不到真正的多任務人工智能水準,但是可解決的問題范圍已經相當大(關于這一點后面講大模型應用會談到);
- 數據變得無比重要,無論是“數據集的質量”還是“覆蓋到世界知識的可收集維度”都分別在【精調】和【預訓練】兩個階段產生巨大的影響,其影響已經遠遠超過了模型本身。
這三種變化組合起來,對于設計的沖擊是巨大的。這意味著以下幾點的巨大變化:
- A. 設計需要的門檻大幅下降了,因為大模型的巨大通用性,子任務定義這個環節,在大部分的AI應用場景中都不需要了,設計者只需要定義最終任務,而最終任務即使對于入門者理解它也是很容易的。當然如果你是大模型的設計者本身,而不是行業應用,這件事可能依舊是需要的。
- B. 設計再也不需要考慮效果可達性問題,因為對于大模型來說,可以抱有一個美好的預期,在達到某一個體量(參量+數據)之后,新定義的任務效果就可以涌現出來,大幅提升到可用水準,(當然這件事是否在任何任務上都可以成立,還是需要技術的驗證)
- C. 大模型本身甚至讓目標和路徑邏輯拆解變得及其簡單了,很多復雜的拆解設計工作也都可以簡化到端到端的方案實現。這不僅意味著需要拆解和定義的任務數量的減少,甚至大多數時候的任務都可以簡化成一個最終任務,而調整它的方法就是調整和定義它的訓練集。
- D. 數據的重要性變得無比高,什么樣的訓練數據才是我們需要的數據,因為所有關于需求場景分析,各種維度需要達成的目標期待,全部都靠一份數據集實現,如何定義這份數據集應該長成什么樣子,就顯得十分的重要。如前文所述,這份數據集不能以數量來取代質量,因為過大的精調數據集會讓大模型原本的一些能力消失,會話本身都會成為問題,這顯然得不償失。
- E. 從什么地方拿到高質量的數據,如何清洗數據,如何構造一條持續的數據收集通道。這些在原本AI框架中相對不重要的事情,如今變得極其的重要。相應的,這方面的數據供應行業也會早就巨大的機會,誰能以更低廉成本提供高質量數據,誰能把線下各種非結構化的數據抽象到線上數據集中,這些數據市場的機會會變得無比大。
舉個例子,上文我提到了參考關于小米的情感會話的一些實現方案,如果這件事放在大模型來實現,其設計就可以簡單的多,只需要定義“精調數據集+prompt”長成什么樣子,就可以激發模型這塊的能力。
但是實際上對于設計者來說思考工作量可能變化不大,因為只靠一份精調數據集就決定最終效果,更加考驗設計者對于【會話情感】這件事思考是否透徹,這些思考會反映在數據集范式的定義上,一旦數據集定義的不好,最終也就無法實現出好的效果。
如果我們實際把兩種設計流拉出來,比較一下兩種設計流的門檻,可以發現:
A. 過去的專業設計流:從【需求分析階段】到【開發實現】,還有一個專業的【系統設計】階段,這個階段需要大量的專業知識和閱讀量,這就讓設計本身變得門檻極高。
藍色部分需要對于技術的研讀和經驗才能進行。當然說實話,過去見過的AI設計按照這個流程能完成設計的很少,很多設計的工作被忽略了??梢钥闯鲞^去的設計流程里面對于需求的分析把握以及對于技術的了解度都占了比較大的比重。
過去的方式有一項的工作就是任務分解,在各種邊界條件限制下無耐不斷進行任務和子任務的分解和重新定義,而就像前面所說的,每一次分解都代表了更多誤差的引入,和對設計者更高門檻的要求。
B. 大模型的端到端設計流:從【需求分析階段】到【開發實現】也可以直接的解決了,因為沒有必要在拆分復雜的子任務,甚至對于【需求分析】本身,要求的邏輯能力也變弱了,更多的是要求模仿目標場景的范式被定義出來。
對于大模型設計來說,大概可以認為只要對于場景和問題的分析做的足夠好,問題的拆解可能可以直接作為系統的任務定義,問題解決的邏輯路徑可能可以直接作為任務系統的任務流程。而唯一有可能需要的只是需要大概了解下有哪些經典設計模式。
這個工作流其實已經相當接近普通To C或者To B產品的設計流了,在這種設計模式下,任務基本是可以端到端的直接解決,無需進行分解,或者說分解和定義的工作實際是在定義訓練數據,而不是定義系統組成。
設計門檻的變化,最有可能的結果就是,人人都是AI設計者的時代可能要到了。
但是其實要我說的話,雖然門檻變低了,但是這件事的分析難度可能沒有太多變化,在過去實踐中我們發現在定義數據集的時候,能否注意到目標場景的大量隱前提,例如會話中的主客體關系和主導角色,這些都構成了影響prompt和訓練效果的關鍵。只會粗淺的收集數據和范式模仿,可能永遠也達不到目標效果,至少在我們的大模型實踐中是這樣的。
② 大模型時代設計者角色:大模型設計者&行業應用設計者
大模型極大的降低了設計門檻,讓很多不具備專業知識的普通人可以加入AI設計行列。同時因為大模型的通用性+低成本微調的特性,導致大部分的應用場景都可以基于大模型的微調開展,無需再像之前一樣逐個場景定制AI,因此設計門檻也出現了分化:
A. 基礎大模型的設計者:這類設計者更加需要關心一些世界抽象問題,基于不同的抽象維度的深度理解去設計基礎的大模型。同時這類工作依舊需要一定的算法理解,但是理解深度要求就淺的多了,因為實際操作定義可能是最終任務,而不是子任務,這讓理解成本降低了很多。
B. 行業應用的設計者:這類設計者則更加關心具體應用場景的問題,對于應用場景的理解力,應用場景的會話范式和成立前提,決定了該如何定義應用場景的精調數據集,這項工作雖然門檻基本沒有了,但是因為幾乎只有數據一個影響因素了,數據集定義質量就是關鍵,而數據集定義取決于對于場景的理解深刻度有多少。
a. 大模型方案的設計
就像上面提到的,大模型讓一些中間狀態的子任務,詞性、句法、依存、指代消解、語義角色標注等等都不再具有研究意義,甚至NER、Embedding這類在大部分通用場景下也不需要單獨再做為一個獨立子任務進行方案和研究設計。但是目前其實針對大模型的效果測試集中,其實依舊可以看見這些子任務的身影。
BIG BENCH測試集中的傳統NLP任務(https://github.com/google/BIG-bench/blob/main/bigbench/benchmark_tasks/keywords_to_tasks.md)
研究可以更多的關注于最終任務,諸如完形填空、機器翻譯、摘要總結、情感分類等等。這種最終任務的理解成本就變低了很多,比如即使沒有閱讀過NLP領域的研究,也大概都可以通過簡短的介紹大概知道上面哪些最終任務是什么意思,以及大概的應用場景是什么。
中間任務的消失,和任務解決越來越端到端化的趨勢,讓大模型設計者更加需要具有對于一些技術外的抽象現實任務本質的深刻理解。例如對于Chatgpt的場景來說,對于【什么是會話】【什么是寫作】的理解,就是對于這種任務場景的洞察力的體現。
作為設計者來說,算法知識需要了解的更少了,怎么能夠從對于世界的理解中抽象出一些基本任務,并且對這些人類社會的現象本質具備深刻洞察和理解,成為設計者的關鍵素質。而這些端到端的設計最開始的應用,就是取代了算法人員自己,因為看起來需要具備算法素養的場景越來越少了,算法確實是自己革掉了自己的命。
對于目前的人機交互形式來看,我覺得可以抽象成“寫作”和“會話”兩種本質任務,關于總結、范式轉換類的工作可以理解成是一種寫作,關于知識、交互、情感類的工作可以理解成是一種會話。
在22年的虛擬人交互實踐過程中,我注意到一些跨學科的應用,對于研究這類抽象事物的本質尤其重要。例如【小說寫作】【動畫設計】這兩個行業的知識對于“會話”和“人機交互”產生了很大的幫助,《生命的幻想》《經典人物原型45種》《情節與人物》等等其他領域書籍,以及《艾迪芬奇的記憶》這款游戲,這些從其他領域借鑒的方法論和設計指南起到了很大的幫助。同時對于一些腦科學、生物學等跨學科知識,也都成為了重要的設計基礎,原本打算整理下時間經驗,但是文章寫寫停停,終于還是沒寫完。
今年大模型導致AI同行交流都越來越變的閉塞,而大模型的想象空間又讓我明顯感覺到和行內人士,及各行人士交流的重要性,因此打算開始有計劃做一些分享和交流,下期打算就拿出虛擬人這塊的事情和大家談談關于“會話”和“寫作”兩個話題的理解,這篇就不做詳細闡述。
b. 行業AI應用設計
大模型的微調技術證明,大模型可以以很少的訓練數據量實現一種全新的目標場景拓展應用,或者針對性的提高模型某一方面的特性表現,典型的例如:
- 模型特性:例如提高對話的自然度,提高會話的趣味性,或者形成一種全新的會話人設。
- 應用場景:AI法律顧問,AI家庭教師,汽車管家,家庭管家等等。
這一點我覺得是AI最大的機會,人人都可以在自己行業找到AI應用場景,而這個應用的設計門檻又被無限的下降,成本也被降低到了個人即可使用的程度,這一切都預示著大量的從未涉足過AI行業的設計者的出現,以及大量具有創造性的新場景的涌現,這是一個長期機會窗口的開始。
而我理解這并不代表大模型時代資深者就不再存在,機會可能在于可以提出比別人用更少的參數量,更少的數據量可以達到等價效果的方案。這可能是AI行業成熟期的開始,更高的效率更高的利潤,成熟期市場的標志會逐漸成為方案設計的核心。
商業世界里,能夠壓低生產成本本身就是公司一個過硬的核心能力,能以50%的成本實現其他公司100%的等同效果,這就意味著可以以0.7倍的成本價,出讓20%-30%的利潤,逼迫能力不足的競爭對手退出。我個人覺得對于行內人來說,最怕的就是演變成幾年前CV算法四小龍同質化競爭,一堆廠家建一個算法池,客戶豪氣的講“想用哪家的隨便用”這種格局。
③ 邁向搶奪定價權的時代
商業里有一句經典的話,“沒有核心能力的企業,消費者會掌握定價權”。舉個不太恰當的例子,這句話的典型行業可以看手機市場。雷軍自己都曾經表達過,小米手機賣多少錢取決于消費者愿意出多少錢,和手機制造成本是多少錢沒有關系。因此小米把尋找消費者可接受的最合理價位作為售價,然后通過規模效應把成本壓到售價以下,這種變化也是行業從紅利走向成熟期的標志。
對于AI行業來說,也是同樣,所有參與者都希望把自己高昂的技術成本轉換成公司的核心能力,也就是希望企業本身能夠掌握定價權。
而對于AI企業來說,資深設計者掌握的高效設計模式決定了企業可以以更低的成本實現更好的代差級效果。
當然這里面還有誰能掌握更加核心和不公開的低噪音數據的問題,但是這些都是企業為了掌握定價權的動作。這里面對于掌握高效收集清洗數據,高效設計模式的資深設計者來說,機會也是變得更多了,更多的初級人員的加入并不意味著資深者的出局。
從目前大模型之后行業趨勢來看,大家慢慢的都開始做CloseAI了,從論文到使用的數據集,都不再像以前一樣完全開源供大家使用,甚至于很多的大模型連一個playground都沒有。大模型對于數據質量更加嚴重改的依賴,導致大家會盡一切可能保護自己真正核心的數據資產。
④ 理解大模型的應用與方向
A. 理解大模型應用場景
目前最主要的大模型可以歸結為語言模型(應用包括語音識別、多模態識別、蛋白質序列預測、電路設計、代碼撰寫、PPT生成等等)、擴散模型(圖片生成、3D自動建模等等)以及兩者的聯合使用(視頻生成)。
- 擴散模型本質我理解是一種消噪過程,我理解一些可以抽象成噪音消除預測的場景就可能是擴散模型未來的場景,這些場景是獨立的,不要求上下文相關性的,簡單說就是內部不要求邏輯合理這種要素存在,單純的復現輸入,因此像藝術類的工作,諸如建模、畫圖等就可以用這個實現。但是藝術設計的前向工作,比如靈感產生、設計理念、前期設定等等前期工作,其實沒有辦法解決。
- 而語言模型側重于連續序列的預測,側重上下文的關聯性,從人類社會的視角來看,這個的應用前景明顯更加廣闊,所以很多人談起大模型就談到Chatgpt,做個不恰當的比喻,這個相當于在嘗試解決解決人類大腦可以解決的問題。為什么說是不恰當的比喻,因為語言模型本質上來說,其實沒法辦法像大腦一樣推理思考,更多是在對輸入進行歸納、總結和壓縮,使輸出看起來符合邏輯性。
- 其實綜合上面來看,很容易想到的就是擴散模型看起來偏重輸出表現層的東西,語言模型看起來強在邏輯性,兩個組合不就可以輸出需要邏輯性表現的東西,用LLM理解語義和動作序列,用擴散模型生成每一幀的序列,例如視頻、3D動作等等。這方面確實有研究,例如CogVideo、Imagen等等。
- 也有很多研究諸如斯坦福的《Diffusion-LM Improves Controllable Text Generation》或者關于應用擴散過程做Masked Language Model的研究,就是用擴散過程做語言模型,因為語言模型的Masked再預測的過程確實可以看作是一種消噪過程,甚至自監督學習本身就可以理解成是對query的一種帶噪重構,所以最終兩者會不會殊途同歸這個還是留給專業算法去研究吧。
從替代人類工作的視角來看,我的理解和吳軍老師對于大模型的解釋類似,大模型尤其是熱炒的大型語言模型,并不會替代信息創造者的工作,更多是替代了不做信息創造僅僅做信息加工和傳遞的工作。以使用人使用交互工具需要的能力來看,可以從兩類人來看待這件事,一類是知識或者信息的生產者,一類是知識或者信息的消費者。
⑤ 對生產者來說,大模型是一種絕對的效率工具
我的理解是,對于世界運行的本質任務抽象度越高的大模型,未來的應用前景也就愈加廣闊。例如語言模型之所以應用場景比擴散模型要廣闊得多,影響力也大得多,原因在于語言本身相比于圖像就是一種高度抽象的世界概括方式,因此語言模型也可以視作對于人類社會中其中一個維度的高度抽象。”圖像、視頻、文本、音樂、生物結構等等”一系列均有上下文序列強關聯的事務,均可以被抽象地視為“語言”的一種范式。
未來是否會有一個終極抽象的大模型能夠真正實現“通用的多任務人工智能”這個我不知道,但是至少從各個人類社會的抽象維度一定都會誕生出大模型,如果不是單純的比拼垂類任務精度,而是比拼通用性的覆蓋廣度,那么抽象度低的大模型一定會被抽象度更高的大模型替代掉。
實際上我覺得垂類任務的精度問題也可以通過擴展模型和數據量,或者指望“能力涌現”解決這個問題,比如擴散模型我覺得其實有可能會被語言模型替代掉,因為語言模型在設計這件事上甚至可以做的更好。
A. 擴散模型之于創作
其實很好理解,相當于把設計者從工具使用里解放出來,充分發揮設計本身的能力和對成果的鑒賞修正力,典型設計的例子如《一拳超人》,ONE老師做構思和設定,村田雄介做原畫,這樣爆品漫畫就產生了??梢哉f擴散模型可以發揮ONE老師這類信息生產者的創作潛力,而且效率相比于村田老師更高。
設計這件事的工具,因為人機交互工具自然度的進化,使用門檻被降低了,從圖像擴撒模型的演進過程也可以看出這一點,stable diffusion需要具備一定的代碼能力,而到了midjourney和dell-e,已經可以通過可以專業人士的自然語言交互直接使用了。但是我覺得對于資深專業者來說,并不構成問題:
- 1業知識最根本的,我認為是策劃能力,并不是產品策劃,技術架構策劃,藝術設計策劃、科研的策劃都屬于這類工作。這件事本質上是需要利用及其有限的輸入信息,利用邏輯推演或者跨學科關聯知識創造更多的輸出信息量,而這件事本身是違反信息論原理的,因此大模型其實永遠也無法實現這類工作。
- 對于工具而言,使用成本的降低是必然的演進趨勢。需要門檻的專業工具本身就會慢慢被無成本的工具替代。而這種替代正是可以把專業人士從繁重的工具使用中解放,釋放專業人士策劃創造信息能力。
擴散模型可以說在圖形、圖像、視頻、音樂這類專業領域,都可以用于生成然后用其他模型指導連續性,也可以多種語言模型聯合使用,例如如下的輸出方式,Socratic Models 研究了多種這種大模型組合使用,或者外掛其他工具的場景和案例,這個其實很容易想到,就不贅述了,可以自己去看:
Socratic Models: Composing Zero-ShotMultimodal Reasoning with Language
這個可以說是目前最高效的工具了。雖然之前火爆的主要是圖像的擴散模型,但是未來像各種模式的富媒體生成應該都可以沿用擴散模型的思路實現。但是我的直觀感覺是擴散模型的抽象度其實并不夠高。
相比語言模型,擴散模型更像是從信息的各種形式中歸納出來的一種范式。雖然自從電視出現后,圖像信息承載了人類社會83%的信息量,聲音信息承載了11%的信息量,但是這種直接歸納得到的范式,我覺得抽象效率并不夠高,很有可能未來會被其他更加通用高效的工具所替代掉。
B. 語言模型之于序列預測
目前國內外看到的大模型的各種應用,還屬于比較基本的能力復現使用,但是即使是這樣,大模型已經在相當大的范圍內可以得到應用。大模型的主要能力可以抽象到四個方面:
a. 范式轉換能力:相同類型的信息從一種范式轉換為另一種范式,其信息量進行了一定的壓縮,例如:
- 給出一段詳細的文字描述,將其轉換為圖片或者視頻輸出;
- 語音識別和語音合成,其實可以算作語音轉文本和文本轉語音的范式轉換;
- 給出詳細的需求描述讓AI轉換成代碼;
- 給予明確詳細的指令和情景分析,讓機器人執行動作;
- 文字和圖像排版;
- ……
b. 明確范式的內容輸出:給出簡短的信息,要求LLM填充更多的信息量輸出,因為信息量增加實際上不符合信息論原理,所以這種輸出的信息本質上來源于預訓練的數據中,所以這種應用會有兩個局限:
- 預訓練沒有見過的數據,LLM沒法給出很好的效果,甚至可能輸出都是“幻覺”,因為LLM往往預訓練數據很多,可以做這樣的實驗,如果你給LLM一些反人類對話習慣的會話方式,比如每句話都要強調一下相同的內容和前提,就會發現LLM在會話過程中越來越不像人的會話,甚至可能會話都不通順;
- 對于具有明確且固定的范式可以輸出的很好,例如工作周報、健身計劃、季度財報、非業務代碼、甚至學術論文等等,但是對于不固定的范式就很難可以輸出質量很好,例如讓LLM模擬某個人的寫作風格很容易,但是讓LLM自己寫出自己獨特的文采和風格的文章,質量就停留在中學生水準,差強人意。
綜合以上的應用局限,可以比較好的應用這種能力的場景也大概可以想得到了。例如如果讓LLM寫一些能力代碼或者單元測試,LLM可以很好給出,但是如果讓LLM寫業務代碼實際上沒法輸出,因為業務代碼里往往蘊含了相當多的研發自己對于需求的解讀和信息豐富。
c. 總結歸納的能力:從大量信息中,總結提煉出關鍵的信息,這個能力實際上可以解決信息過多的情況下,人工不足以進行全部客觀的分析解讀的問題。這一方面其實如果結合得當的知識更新注入方案,行業應用場景會相當廣闊,當然目前主流的知識注入方式還是外掛單獨的小模型或者檢索的方式給大模型注入知識,然后要求大模型基于外掛的知識進行輸出信息的改寫:
- 收集大量信息總結提煉,但是不輸出新的信息的新聞稿撰寫;
- 上市公司的財報客觀解讀,這些需要客觀性,規避偏見和虛假的東西LLM甚至比人做得好;
- 某一市場狀況的總結分析和解讀;
- 大規模的綜合數據分析和解讀;
- 知識總結和摘要提煉,可以用于教育行業;
- ……
d. 連續序列推理預測:對于可以抽象成具有連續規律序列的事物,都是利用LLM能力的最好的場景,這種能力其實最接近LLM能力生效的本質,其限制也很明顯,就是不具有規律性或者信息稀疏的事物上,這種能力并不生效,所以這種能力的本質在于事物本身是否可以看做具有連續規律性。這種能力經常被應用于需要天文數字的計算量或者人工實驗量才能解決或者得出結論的問題。
- 人類語言、語音、歌曲、影視等具有連續規律的事物;
- 蛋白質設計、芯片電路設計、路線規劃等等具有連續規律性,或者可以看做具有規律性的事物;
- 科研實驗試錯的最好助手,例如藥物分子設計,大規模轉基因實驗等等各種科研實驗領域上;
- Dota、麻將、紙牌等等策略取決于連續上個動作和下個動作的游戲AI;(OpenAI早期用強化學習做過一個Dota對戰機器人,我覺得現在其實可以考慮用LLM做一個更強的)
- 植物生長情況預測,環境變化預測等等放大到大范圍上的預測;
- 當然以上都是開腦洞的應用,模擬人類說話和寫作本身其實就可以看做連續預測;
- …….
當然即使是科研領域,也有大模型解決不了的領域,例如考古或者天文學,都屬于可觀測數據極其有限的領域。例如天文學因為沒有足夠數量樣本驗證定義是特例誤差,還是統計標準,其實是依靠構建出大量的定理,依靠關聯定理數量的多少來決定哪些定理是科學的,從而在極少的幾個觀測實體上驗證假設。
對于參與以統計學為科學基地的AI行業的我個人來說,這種少樣本的科學方法論,拓寬了個人看待世界的方式的另一種維度。
這四個方面的能力并不是只能單獨使用,可以同時應用產生在一種應用中,例如指定“給我蛋糕食譜并且配上每個環節的操作示意圖”這種需求就會應用到多種能力。
其實理解了上面的大模型的能力,對于大模型能做什么不能做什么就有一些邊界預期,目前的LLM遠不是通用人工智能,甚至不是真正的多任務人工智能,但是其應用場景也絕對不止目前大家簡單應用的一點能力復用,所有符合上述抽象邏輯的問題和問題組合,理論上都可以通過LLM來解決。
相比于擴散模型,語言模型更貼近人類社會一種連續性維度的抽象理解,因此其掀起的熱炒也遠比擴散模型高得多。目前的語言模型我認為主要抽象了兩種本質范式,已替代了過去零零碎碎的各種場景定制范式:
1. “會話”:類比人類社會中的各種交流形式,不論是一對多的大眾傳媒,還是一對一的社交活動都在會話的場景可以得到體現,而會話的核心場景就是信息量不產生在一方,總有一個相互的信息交互過程,這代表了有很多隱含的社會約定俗成的規則在“會話”范式中。
我認為可能“協作”更像是這種范式的終極形態,交互雙方相互填補信息空缺,綜合輸出一份共創結果。模型規模的擴大,對于語言深層的理解逐步在強化,但是至少從目前對于GPT4的使用過程可以發現,其實目前的GPT4還沒有辦法完全自主的理解這種范式。
什么是語言中更高更深層的東西,對于會話來說,就目前的一些實踐經驗來看,我覺得其實這個問題可以分為兩部分:
1.會話成立的前提:這一點很容易被忽視,我發現對于GPT來說如果不給它指明,GPT本身也不會關注這個問題。例如【會話的主客體關系】【會話主導角色】【誰在填充信息量】【做出評價與總結】等等。這一部分的信息必須在few shot或者后續糾錯中補充給gpt,gpt才能理解,或者以精調的方式激發這方面的能力表現。從這個意義上來說,可以再次證明大模型對于設計者意志的依賴。
2.語言文本中蘊含的深層信息,大概語言模型的發展也是按照這種方式,從最開始的形式(詞性、句法、成分)走向含義(語義),到現在的會話情感,對于會話中的顯性情感GPT已經可以完全理解,但是對于一些隱性情感及回應的情感態度選擇,這塊語言模型的潛力還有待被進一步挖掘。
關于“對話”和“寫作”本質我的理解打算在下一篇關于虛擬人的大模型實踐里詳細分享一下,這里就不細談了。
或者我讓大模型理解一下更抽象的內容,比如什么叫做“協作”。也可以發現大模型其實完全不理解這件事,只是在語言層面模仿的比較順暢,關于協作的本質大模型完全不理解,給出的只是浮于表面的人類行為模仿,以及語言順暢度的潤色。其實這個也可以看出設計者并沒有為大模型定義這種任務和能力,有可能會是未來大模型下一代大迭代的方向。
下面是我讓GPT4模擬一下協作流程,GPT4給出的,可以看出各參與成員之間其實完全沒有發生信息量的交互行為以及共創產生新信息量的行為,有的只是一種已有信息的不斷傳遞、總結和形式轉化(這個過程我覺得其實也可以說是是語言模型的本質)。后面我又嘗試讓GPT4做了各種方向的調整和prompt,但是目前的GPT4始終無法理解什么是協作。
2. “寫作”:或者說“類寫作”的創作工作范式,我覺得用與發散思維對立的演繹思維來歸納這種范式并不是很全面。因為只要是上一個元素和下一個元素之間存在某種關聯性,基于此將輸入的大量信息作總結,或者在某些少量信息提示下,進行大段信息的輸出,都可以歸入這種范式。我覺得這種范式大致歸納為:
- 預輸入信息:AAAABBCCCDDEEFFFFFGGGGG…..
- 信息總結:ABCDEFG..
- 提問:給一個符合某種邊界條件的序列組合
- 輸出:AYHCNHNFKEHZCDSE…
關于這種范式最近看到一篇闡述如何強化LLM的推理和決策能力的論文覺得思路和我很像,都是理解人類處理這類范式事情的本質會有哪些前提和邏輯過程,然后把它應用到LLM中。
作者提出了一個REACT方法,發現人在執行任務過程中,每兩個子動作之間其實會穿插一段推理和思考,重新掌握下目前的情況,如下圖右邊部分就是這種思路的應用,相比于左邊的COT方法的幻覺,REACT方法可以正確得出結論。雖然右側的執行動作看起來像是一個全部用窮舉法解決問題的小孩子,但是我覺得這個思考方向是正確的。
REAC T: SYNERGIZING REASONING AND ACTING INLANGUAGE MODELS(https://arxiv.org/pdf/2210.03629.pdf)
所以我覺得類比人類社會,對創造類工作流程的模仿更適合這種范式。但是只是模仿不創造新信息的價值是什么呢?我認為是可以讓機器無限次的不斷模擬試錯過程,把人類創作的試錯成本降到最低。這個其實就已經在很多領域可以極大的降低人力投入,把以前因為人力投入過多導致不可能的工作開展下去,例如復雜蛋白質的設計就屬于這類工作范疇。
- “科研試錯工作(實驗試錯、結構設計、甚至公式推導)”
- “設計試錯工具(工程結構、電子電路)”
- “日常模板化工作的模仿(郵件、財報、新聞、論文等等)”
這里模擬試錯的效率就是算法模型設計的效率。但是始終AI還是模仿流程,沒法真正的做創作,因為究其根本,語言模型還是在做復述而不是創作。如果我們可以把全世界做信息創造者創造信息的輸入給到模型,可以實現創作嗎,我覺得這個可以替代掉重復性信息創造的工作,讓創造者更加關注于創造新的信息。
那么對LLM來說,有哪些是能力邊界之外的呢?
1. 非連續性場景:對于人類社會來說,有相當大量的場景實際上是非連續的,這也是為什么說LLM無法解決創作性問題的一個原因,例如我們可以發現LLM可以寫論文,但是創作一個笑話卻很困難,因為笑話往往是非連續性的,雖然笑話也具有一定的固定范式,但是LLM往往只能模仿這些范式:
2. 需要全局視角或者審視全局上下文情況的場景:因為GPT是單向語言模型,這意味著當GPT輸出內容的時候,實際上無法像人一樣,對已經輸出的內容進行修正。
例如人可以在推理過程中,發現上文矛盾的地方,涂改修正推理路徑,但是對于GPT來說只能硬著頭皮繼續解釋錯誤,【幻覺】的出現我覺得和這個有脫不開的關系,有可能對于需要全局視野的事實,大家最后依舊會用到雙向語言模型的技術,因為雙向意味著可以檢查和修正上下文,只是可能不是Bert那種判別式模型的形式,可能是類似過往的XLNET的雙向自回歸的思路開展,例如T5就是一種雙向的語言模型,當然這個問題還是期待算法大佬的實踐與思考分享。
3. 引用微軟GPT4的報告內容做個結語:適用于LLM的例子包括寫摘要、回答事實性問題、根據給定的韻律方案創作詩歌或解決遵循標準過程的數學問題。而對于不連續任務的例子包括解決需要公式的新穎或創造性應用的數學問題,編寫笑話或謎語,提出科學假設或哲學論點,或創建新的寫作流派或風格。(Sparks of Artifificial General Intelligence: Early experiments with GPT-4)
AI行業和一般的行業有一個巨大差異,在于真正理解AI和應用范圍的人很少,客戶一般情況下更是只了解一些具體應用的案例,這就導致AI行業找應用場景一直處于拿著錘子找釘子的狀態。
一般AI行業的設計者都是先設想會有很多人在某某方向有很多應用場景,或者自己找一些側面佐證數據,或者找幾個關系好的客戶聊一下意向,本質上其實是設計者先按自己的想法設計,然后再給市場推廣告訴市場有什么什么用,期望市場接受。而一般其他行業客戶對于自己的需求本身有比較明確的分析和預期,可以有相對明確的訴求,這一點和AI行業很不一樣,AI行業客戶往往等著設計者去介紹有什么樣的特性,然后判斷下自己是否可以用得上。
在大模型時代,這個問題得到緩解了嗎?我覺得其實并沒有,雖然大模型的火爆讓很多人知道了如何簡單的應用AI,但是如果要能夠自主分析需求,依舊需要研讀較多的基本資料,這一點可以說是AI的需求分析門檻了,即使在大模型時代,如果知識照貓畫虎的看看新聞報道,依舊只能停留在簡單的基本能力應用模仿上。
⑥ 大模型會有哪些方向
關于大模型的演進,經常提的是在五感信息方面擴展,比如在語言基礎上疊加視覺多模態,或者疊加觸覺類的動作能力。
我覺得這件事可以從世界信息的維度來看,雖然大模型都是在壓縮世界知識,但是世界知識收集的維度有很多來源,比如互聯網上的信息(統一歸結為線上社交互動)、線下人與物之間的交互、線下的社交活動行為、人與商業服務實體的互動、商業關聯實體間的互動等等。不同維度的信息需要搭建不同的數據收集通道,以及不同的數字化的方式,而大模型可以壓縮的各個維度的世界知識越多,大模型可以輸出的能力也就越豐富。在不考慮信息收集成本的前提下,大模型無限收集和壓縮世界知識確實可以實現全知全能的信息復現能力。
對于國內來說,有另一層的問題,就是很多線下信息的線上化程度不足,比如國內的圖書館信息因為線上化的程度小,就沒法像沒過一樣把這些信息全部輸入大模型充分利用。這個有可能也會是一種機會,就像美國當年的加利福尼亞淘金熱,淘金的人賺錢的沒有多少,而送水、住宿、賣稿子的都賺的盆滿缽滿。另一方面,這種淘金熱也直接讓美國西部出現了新興的城市圈,對現在的美國長期產生深遠影響。我覺得可以預期就算大模型從業人員確實不會有很多人賺到錢,但是對于整個社會來說一定會產生長遠的正向收益。
數據的重要性這件事,從最近OpenAI發布的“過程監督(PRM)”的訓練方法也可以側面看出數據的重要性。對于數據質量的要求越來越高,不止于最終結果,已經拓展到推理過程中。不過這也變現的導致數據的標注成本越來越高,大模型對于高質量數據的需求,隨著大模型國產化的進程,市場空間一定會越來越大。
Let’s Verify Step by Step(https://arxiv.org/pdf/2305.20050.pdf)
第三個問題就是,國內的AI競爭格局來說,跟風扎堆現象很重。像CV四小龍當年最后落得變成各個客戶算法池中的一員,這種競爭格局肯定是不希望在大模型上看到的。
打造一個基本能用的通用大型語言模型,可能只是人力和成本問題,在路線明朗的現在,難度上并不高,這也是給了行業扎堆的理由,用錢可以解決的問題一般都不會成為問題。
但是在國內的算法廠商和應用廠商之間,都會有一層中臺系統,這個系統負責調度大模型的能力,以及進行業務的分配。實際上,最后真正掌握了中臺系統建設和話語權的廠商,才是最后控制行業話語權的廠商,對大模型來說,往往沒有AI能力的廠商對于大模型理解不充分,具備大模型能力的廠商又看不太起這種純粹的力氣活,我覺得這里面可能就看誰最先具備了“知識+投入決心”,誰就有可能是這盤棋的最后贏家。
除了上面的幾個大問題之外,關于大模型的能力演進方向,我覺得微軟總結的算是比較全面的,現在的各大國內公司在大模型內不斷增加的功能和特性也都可以在里面看得到,加之我自己對于各個維度的一些理解,搬了過來:
- 置信度校準(Confifidence calibration):通過引用外部工具(例如搜索引擎)或者其他方式緩解幻覺問題,或者讓模型判斷什么時候對輸出結果有信心,RAG的檢索增強技術就是一種最常用的校準方式。
- 長時記憶(Long-term memory): 賦予模型需要長期記住的一些知識或者前提,例如解讀歷史的時候,需要對一些基本背景有一些了解,同時簡化情景的一些假設往往才是討論的前提。
- 持續學習(Continual learning): 這也是經常被談及的通用人工智能準則,可以像人一樣從經驗中學習。
- 個性化(Personalization): 基于用戶畫像的個性化,這個概念對于國內來說可太熟了,放到交互上, 就是每個面向對象交互的各方各面都力求個性化。
- 計劃與概念發散(Planning and conceptual leaps): 這個其實說的就是具備非連續性的能力,或者以人的思考方式來類比,就是具備腦暴那種發散性思考能力。
- 透明度、可解釋性與一致性(Transparency, interpretability and consistency): 目前的GPT可以認為是事后解釋,為自己的行為進行合理化,但是這種在行為學里明顯會有“過度合理化”的問題,如何讓解釋性做在輸出之前,讓模型真正做到先解釋思考再輸出就是一個方向。COT可以認為是一個很好的開端,但是遠遠不夠。
- 認知偏見和非理性(Cognitive fallacies and irrationality): 因為數據對大模型的巨大影響,人類社會一般的偏見,例如職業和性別的偏見就會影響大模型。
- 對敏感輸入的挑戰(Challenges with sensitivity to inputs): 目前的大模型的設計方式導致prompt內容十分敏感,但是如果我們缺乏專業的Few shot知識或者時間來去撰寫它,是否也能讓大模型對于輸入很敏感。
另外,從目前對于大模型的個人分析,我覺得有幾個方向也值得大模型的研究者關注:
- 思考的連續性:如果仔細對比GPT4和Chatgpt,可以發現兩者最大的區別就在于GPT4的所有輸出都是經過一系列連續步驟的思考的,而Chatgpt很多時候則是直接輸出結果,這種直接輸出的結果經常都是錯誤的。這就意味著思維鏈這種思考模式,以及這種連續性思考能力的不斷深入的推理能力,可能是大模型進化需要具備的最重要的能力,我理解這也是為什么Openai做了過程監督(PRM)進一步強化這個過程。從表現來看,Chatgpt的輸出永遠都是不連貫的,像是一個在給自己的結果找理由的小孩,而GPT4則一定程度上實現了一步一步的連續性推理。
- 訓練數據的范式:Chatgpt傾向于直接輸出錯誤的結果(尤其在數學計算中),可能與訓練數據中基本都是傾向于要給出答案的范式有關。在我體驗的cluade和GPT的差異中,我也可以明顯的感覺出來訓練數據不同的范式傾向,傾向討論問題還是傾向輸出結果,傾向于與人協作補充信息還是堅持自己的看法不斷找理由,我覺得設計者對于這些數據的定義傾向就決定了大模型的傾向。其中一個最明顯的例子就是即使是GPT4強化了思考連續性,甚至給出了Few-shot,在很多數學計算中,還是會忽略計算過程直接給一個錯誤的結果,而如果讓GPT把過程呈現出來,GPT就會輸出正確結果。
- 動態規劃能力:數學建模領域中,除了連續性的思考以及引用外部各領域物理學定律知識之外,還有一種重要的能力就是動態規劃能力,可以實時的格局當下的情景做出當下的最優決策,即使以大模型的計算能力來說,這種能力對于處理現實的復雜問題也有明顯的優勢和好處。
- 大模型、人和環境的交互:鑒于我一直是人機合作的忠實支持者,我始終認為人機融合的交互方式,能夠相互補位,并且能夠與環境進行互動的理念才是發展的終極方向。
⑦ 建構大模型的生態
對于大模型來說,依據大模型的數據和調整方式,可以分為三種“基礎大模型”、“微調行業大模型”、“大模型+Prompt插件”,分別對應了大模型中的三種數據“預訓練數據+SFT”、“微調數據集”和“實時交互的Prompt”。三種模式分別有對應的應用場景和所需的最低成本投入,所以其實一般看一家做大模型的公司投入情況,大概就可以猜出他們的實現方案是用的哪一種,以及大概效果會怎么樣。關于效果其實更多的是說模型對于語言的深層理解如何,單純的模仿某種行業的場景進行回答,這個其實在較數B量級就可以做到,然而這種模仿小模型實際上做一些推理或者解決行業深度問題的時候就完全力不從心:
- 基礎大模型:論證復現一個gpt需要多少錢的文章其實很多,大家可以自己去查,大致來說不到數億的投入基本都說明這個廠商并沒有在做自己的基礎大模型;
- 行業應用模型:這個其實成本空間上下限就很大,Lora這種微調可以在幾個小時幾百塊就微調出一個效果看起來很不錯的行業應用,并且Lora可以不將大模型私有化部署,因為本質上只是一種外掛,并沒有動到模型本身,和F-tune、P-tune很不同。但是如果采用Tuning的路線,往往從行業知識建立到定制優化需要數十人的團隊來做,但是這種優化方式其實穩定性和應用潛力都會更高一些。
- Prompt插件:更多針對個人應用者,因為大模型對于Prompt高度敏感,所以給大模型一個prompt設定,大模型基本可以較好的完成絕大多數的個人問題。這也就導致大模型的插件(或者function)生態很強。
不論大模型(特指LM)如何強大,本質上依舊是一個預測下一個單詞的語言模型,但是其對于語言的深刻理解,實際上賦予了它可以應用到各行各業的潛力。成本下降、輕定制、交互界面自然化這三件事實際上加速促進了這個進程,這一未來體系中,除了基礎大模型的提供者之外,可能會有如下重要的參與者出現:
- 專家系統提供者:訓練自己的expert模型,成為MOE架構下的專家系統之一,這種相對封閉生態模式類似于加入基礎大模型的開放平臺,成為服務供應商之一,按調用次數收費;
- 行業垂直應用:基于Finetune、P-tuning精調大模型的訪問方式,以低成本實現垂直行業的應用;
- Lora開放生態:為什么單挑Lora出來了,因為現在非AI行業的產品都需要自己的定制方案,但是一般大模型都作為核心資產存在大模型廠商云端,而lora這種在大模型之外外掛微調的方式,就可以做到不影響原始大模型的基礎上,開放出去進行微調,同時這種輕量級微調的成本也更低;
- Function開發者:大模型的一些問題也可以指望通過生態解決,例如GPT4最近推出的Function Call這種類似外掛知識+檢索的方式,這個同時相當于賦予了大模型在語言之外可以直接“操作”的權利,作為提供這種接口的開發者有點像成為安卓或者IOS的開發者;
- 個人應用者:對于不希望與大模型定制做交互的普通應用者,可以以Prompt插件的方式在會話中訪問大模型的某一部分能力,因為大模型對于Prompt具有極高的敏感性,僅僅Prompt提示以及in-context-learning就可以讓大模型指定領域效果相當出眾,所以才會有相當多人提及Prompt工程師的出現。
圖片摘自C站社區,隨便找了一張圖
實際上,我認為后面大模型調整的界面有可能也會越來越UI化,就像SD的webui“AUTOMATIC1111”,通過戳戳點點實現模型調整,當然其實這并不意味著不需要具備算法知識了,以圖像生成舉例,相當多的SD微調模型都是一些基礎模型的簡單衍生,真正調整的人依舊需要“面向模型debug”,只是把別人告知的參數直接生套在任何場景上,效果必然不佳。
另一方面,大模型的一些典型問題,例如知識幻覺,相當多的論文解決知識幻覺的思路也是加入知識外掛檢索環節,這些生態必然對大模型的應用豐富性有增益。但是究其本質,我覺得這些問題還是需要大模型本身去解決問題,例如單向語言模型無法回顧和修改上文輸出,導致推理過程錯誤,這種是否就應該考慮雙向語言模型的發展方向。
⑧ 大模型的評估方法
大模型的評估原則和小模型沒有本質區別,依舊是“評估模型性能的離線指標”和“評估實際業務場景的業務指標”,兩種方式結合。但是實際上因為大模型的規模和通用性,評估大模型實際上是一件更加復雜的事情,這方面有相當多的論文提出了各種指標作為評價依據,還有一些提出了很多主觀性指標例如“攻擊性”“不確定性”“毒害性”等等,但是在這之中,微軟對于GPT4的測試方法我覺得是最為合理的。
對于離線指標:
- 除了模型基本性能的準召、F1、AUC等等各項指標之外,針對每一項子任務可以采用對應的指標例例如文本生成類的BLEU、ROUGE等等,圖像類的CIDER、METEOR、SPICE等等。
- 另外針對于每種子任務,目前專門測試集在逐步完善。例如BIG-BENCH(https://github.com/google/BIG-bench/tree/main/bigbench/benchmark_tasks)上面有214多種各個維度的任務數據集,這些測試集都可以用來測試大模型在某個維度的具體效果如何。
對于業務指標:這里不討論類似CTR(點擊率)這種上線后用戶操作反饋的指標。
對于類似BIG-BENCH這種集合來說,我感覺其實對于真正測試大模型的效果可能過于簡單了,更像是測試大模型覆蓋了哪些子任務的子任務測試集,類比的話我感覺更像是功能測試集,而不是效果測試集。
實際上BIG-BENCH中很多都是類似【俄語問答】、【上下文沖突】等等具有明確的正確錯誤概念的任務。例如上面圖片中是我翻閱了我認為相對正誤邊界模糊一些的【Sufficient Information】的任務中的一些示例,依舊可以看出問題其實相對于現實真實問題來說,測試集中的問題邊界清晰度高得。
例如現實問題中不會出現“我有一些書,我丟了一半,我現在還有幾本書”這種顯性缺失的情況,而更可能是我上面以GPT4的會話能力舉例的“今天我是第一天上班,我應該穿什么衣服”,要解答這個問題實際上需要至少知道“個人性別身高體重”、“公司著裝規定”、“個人著裝偏好”、“天氣情況”等等前置信息才能給出答案,甚至還需要考慮不同國家地區的文化差異。
而這些隱含信息LLM是否能夠判斷出來是缺失的,我覺得這種問題才是真正能夠測試大模型能力的問題。
上面的闡述的核心觀點在于,我認為目前還沒有人提出一個真正可以測試大模型各個方面真實能力的測試集合。它可能需要像專家測試初學者的人類一樣,以專業者的視角提出各種深度的問題組成一個測試集合來進行測試。
我很希望聚合各領域專家的知識,創造這種公開的能力測試集,以能真正推動大模型在實用上更進一步。實際上,大模型在很多的真實事務場景中都表現并不好,另一個典型的例子是如果我讓大模型寫一份年終總結,大模型甚至會把樓下包子店的小李也放進去,大模型不認為有主次的概念,我覺得這些真實場景的模型能力都有待加強。
因此我其實十分推崇Miscrosoft對于大模型的測試評估方案,針對大模型的認知學、數學、情感等等各個領域以評估人類心智的題目方式來對大模型進行測試評估,這種方式是更加合理的?!禨parks of Artificial General Intelligence: Early experiments with GPT-4 》這篇測試確實寫的很好,我覺得與其我斷章取義,不如去看下原文https://arxiv.org/pdf/2303.12712.pdf。
另一層面,對于大模型真實應用場景的業務指標,需要像微軟一樣以領域專業人士測試人類的方式,來構造對應的測試集合和數據指標,以來評估大模型某一方面的能力,當然這首先可能需要測試人員成為這一領域的入門專家,了解如何以一個專家的視角來審查大模型的能力水平。
四、后記
1. 以另一個視角對大模型扯點別的
因為最近年初對于法律領域也稍微涉獵了一些功利主義“最多數人最大善”的問題,這些啟發我從另一個層面的思考大模型這件事:
- 大模型本身依舊是效率的化身,效率是否總是有益的?這件問題其實很有意思,比如如果我們以電商減少了線下人與人之間的社交場景來看待電商,就會發現在生產大于消費的時代下,電商實際上對于社會整體收入創造是減少的。那么對于大模型來說,其實也會有類似的情況,如果所應用的行業、甚至公司個體,整體是生產大于消費的階段,那么再提效其實只會降低整體的產出收入總額。
- 大模型的高投入會帶來一個問題,真正可以進入的玩家數量很少,普通人甚至提出一個自己的假設都沒有辦法去實施驗證(普通人總沒辦法買一堆A100每天做Fintune甚至預訓練來實驗自己的想法對吧)。這種格局實際上很容易導致壟斷現象,對于商業而言,壟斷的問題不在于寡頭借助壟斷地位賺高額利潤,相反,過去的壟斷行業巨頭都傾向于不斷提高產品效率和質量,而降低產品的售價。借助這種方式可以讓后來的玩家進入門檻越來越高,對于大模型來說更是這樣,當你花費了相當多的投資人的錢和時間,做出來一個東西,但是頭部玩家已經把效果提升了一倍,成本壓低了一倍,這個事情就完全沒有價值。
2. 談一談后續計劃
目前確定的一個計劃是,這次文章雖然寫了很長,但是因為過度壓縮了,其實真正想展開談的內容并沒有展開談,因此關于【對話】【寫作】【情感】這些人類社會抽象問題的理解和實踐思路,打算拿出來虛擬人設計的一些實踐經驗,和大家分享討論下我對這些本質問題的一些理解。在我們的實踐中,這些發現和理解每一條其實都讓輸出的效果產生了極大的變化。
再一個可能得計劃是,因為自己一直保持著商業學習的興趣,一直也希望和更多人探討,只是這方面咨詢公司和顧問大佬太多,我的觀點也基本和大佬們雷同,說實話沒啥信心能談啥新東西,暫定看看再說吧。
在我寫這篇文章的過程中,其實我也重新審視了下寫作這件事,發現這篇是純粹的分享類型的寫作方式,要點穿插在文章內部,如果是科普文章或者教科書可能就會根據要點來組織文章,如果是匯報和總結就會按照總分組織文章,這種觀察我覺得是大模型時代設計的重要動作。這些范式的定義行為決定了大模型對于【寫作】這件事的理解是怎么樣的,也就是所謂的“設計者意志”問題。
關于這篇文章,一開始也提了本質上只是個人抱著希望更多專業人士來找我交流探討的目的寫的。雖然大模型出現之后加了一些討論群,但是群里充斥著基礎的問題解答、新聞稿搬運,還有外行看熱鬧的討論。讓我對這些社群相當失望,關于大模型本身的運作機制,一些未來方向的實踐,這些問題都需要:
- 一個高質量的討論環境,這個環境應該具備一些基本要求,比如討論人大模型的基本論文至少需要讀過,當然可能是我沒有接觸到,如果有的話,希望能夠進入圈子:
- 一個實驗想法的環境,這個環境具備大模型基本的訓練和調試資源,可以以相對低廉的復用成本進行各方向應用的嘗試,這種實踐的環境對于大模型來說實在寶貴;
這些變化對于偏好不確定性的人(比如我)來說,我覺得是一個十分有趣的變化。歡迎各位通過各種方式聯系到我,期待與各位的交流與研討。
本文由 @MrMa 原創發布于人人都是產品經理,未經許可,禁止轉載。
題圖來自 Unsplash,基于CC0協議。
該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務。
干貨滿滿,正在研讀
干貨慢慢,正在研讀
學習了
個人微信號:歡迎找我討論
hopemrma