從去年年底發(fā)布以來(lái),ChatGPT 已經(jīng)被普通民眾和業(yè)界廣泛接受,可能是用戶數(shù)量增長(zhǎng)最快的消費(fèi)級(jí)應(yīng)用程序。鑒于ChatGPT的技術(shù)價(jià)值和商業(yè)價(jià)值,國(guó)內(nèi)已經(jīng)有不少公司復(fù)現(xiàn)了ChatGPT,比如百度、阿里、三六零、華為、MiniMax、商湯、復(fù)旦大學(xué)邱錫鵬團(tuán)隊(duì)、元語(yǔ)智能、智源。Meta 開(kāi)源了650億參數(shù)的LLAMA,隨后有了各種微調(diào)的“羊駝”系列。將ChatGPT復(fù)現(xiàn)個(gè)七七八八的看起來(lái)難度不大,發(fā)布之后拿到用戶prompt可以持續(xù)優(yōu)化,想必可以更接近ChatGPT。
由于ChatGPT可以適用于非常多的任務(wù),很多人認(rèn)為 AI 已經(jīng)迎來(lái)拐點(diǎn)。李開(kāi)復(fù)將此前的 AI 定義為 AI 1.0,此后的AI定義為AI 2.0。AI 1.0 中模型適用于單領(lǐng)域,AI 2.0 中模型普適性增強(qiáng),一個(gè)模型可以適合多種任務(wù)和場(chǎng)景。在 AI2.0 中基礎(chǔ)的大模型(foundation model)是核心技術(shù)。
由于有了不少公司發(fā)布了類ChatGPT產(chǎn)品以及開(kāi)源的“羊駝”系列,當(dāng)前大眾對(duì)于ChatGPT的發(fā)布已經(jīng)沒(méi)有之前那么期待,ChatGPT 熱潮也會(huì)過(guò)去,但是背后的大模型技術(shù)還將繼續(xù)發(fā)展并發(fā)揮巨大作用,并且會(huì)跨越領(lǐng)域/學(xué)科,不再局限于CV/NLP/ML,會(huì)按照AI獨(dú)有的特點(diǎn)發(fā)展。本文旨在探討ChatGPT背后的大模型技術(shù)以及未來(lái)的展望。相關(guān)應(yīng)用、生態(tài)等方面后面有時(shí)間再聊。
大模型 (foundation model)簡(jiǎn)述
深度學(xué)習(xí)領(lǐng)域的研究人員有個(gè)愿景,就是用神經(jīng)網(wǎng)絡(luò)模擬人腦,讓一個(gè)神經(jīng)網(wǎng)絡(luò)可以完成多種任務(wù)。這里面包含至少兩層意思:一是模型要大,因?yàn)槿四X的神經(jīng)元和連接比較大,遠(yuǎn)大于存在過(guò)的網(wǎng)絡(luò)模型;二是需要神經(jīng)網(wǎng)絡(luò)基本不用微調(diào)就可以完成多種任務(wù)的能力,也即是網(wǎng)絡(luò)要普適。科研上,這兩個(gè)方面一直有在嘗試。
Andrew Ng 的團(tuán)隊(duì)在2012年嘗試了利用CPU集群增大神經(jīng)網(wǎng)絡(luò)參數(shù)量[1],利用無(wú)監(jiān)督的方式來(lái)訓(xùn)練了 sparse anto-encoder 網(wǎng)絡(luò),優(yōu)化器采用的是異步SGD,也采用了模型并行。Andrew Ng 團(tuán)隊(duì)發(fā)現(xiàn)在訓(xùn)練好的模型中有些神經(jīng)元具有人臉檢測(cè)、身體檢測(cè)、貓臉檢測(cè)的能力,從模型得到的特征也更好。同年,Geoffrey Hinton 帶領(lǐng) Alex Krizhevsky 和 Ilya Sutskever 探索使用 GPU 來(lái)訓(xùn)練一個(gè) CNN 神經(jīng)網(wǎng)絡(luò)(稱為AlexNet),訓(xùn)練方式為有監(jiān)督訓(xùn)練,網(wǎng)絡(luò)參數(shù)為60M,大幅度提高了 ImageNet 數(shù)據(jù)集上的分類準(zhǔn)確率。準(zhǔn)確率比第二名高10個(gè)點(diǎn)。AlexNet 的成功驗(yàn)證了大量數(shù)據(jù) + 深度學(xué)習(xí) + GPU訓(xùn)練的價(jià)值,這也開(kāi)啟了深度學(xué)習(xí)的時(shí)代(但是深度學(xué)習(xí)的起始點(diǎn)一般認(rèn)為是2006年Hinton那篇用神經(jīng)網(wǎng)絡(luò)做維度規(guī)約的論文[6])。Andrew Ng 和 Geoffrey Hinton 采用的分布式優(yōu)化、無(wú)監(jiān)督訓(xùn)練以及GPU訓(xùn)練加速的技術(shù)路線后面被繼續(xù)發(fā)揚(yáng)光大。
AlexNet 之后,TensorFlow、PyTorch 加速了深度學(xué)習(xí)的發(fā)展速度。在深度學(xué)習(xí)時(shí)代網(wǎng)絡(luò)結(jié)構(gòu)、訓(xùn)練方式、基礎(chǔ)設(shè)施方面都有了很大的發(fā)展。在網(wǎng)絡(luò)結(jié)構(gòu)方面,出現(xiàn)了基于注意力的 Transformer 網(wǎng)絡(luò),這個(gè)網(wǎng)絡(luò)比較普適,NLP、CV領(lǐng)域都得到了廣泛的應(yīng)用,為大模型提供了統(tǒng)一的模型;在訓(xùn)練方式方面,出現(xiàn)了MLM、MIM、MAE等等更好的無(wú)監(jiān)督/自監(jiān)督學(xué)習(xí)方式,為大模型利用大量數(shù)據(jù)提供了可能;在基礎(chǔ)設(shè)施方面,deepspeed[3][4]、Megatron-LM[2] 等也發(fā)展成熟,為大模型的有效訓(xùn)練提供了可能。
借助 deepspeed 和 Megatron-LM,后面不少模型借助這些基礎(chǔ)設(shè)實(shí)現(xiàn)了“大”,比如 BERT 等。這些大模型為理解類的大模型,也就是針對(duì)分類、emb等任務(wù)設(shè)計(jì)的。對(duì)于這類模型,模型參數(shù)多,意味著理解能力更強(qiáng),performance 更好。由于這類模型不能在任務(wù)維度上泛化,一般的使用方式是在大量數(shù)據(jù)上預(yù)訓(xùn)練,然后下游任務(wù)數(shù)據(jù)上微調(diào)來(lái)使用。也有些模型往“統(tǒng)一”更多任務(wù)/模態(tài)的方向努力, 比如 BEiT3、Pix2seq。GAN、Stable Diffusion 系列可以在給定文本描述作為提示詞,生成和提示詞描述匹配的圖像。但是真正做到在任務(wù)維度具備推廣能力只有GPT。為了在任務(wù)維度上泛化,需要做到讓模型感知到不同的任務(wù),并且以期望的形式輸出想要的結(jié)果。這個(gè)可能只有基于 In-Context Learning (ICL) 的生成式大模型可以做到。ICL 在GPT-2中使用但是在GPT-3中被定義。在ICL中,和任務(wù)有關(guān)的信息放在前綴(即context)中,模型預(yù)測(cè)給定context之后的期望的輸出。基于這個(gè)范式,可以將多種任務(wù)用同一個(gè)形式表達(dá)。只需要將期望完成的任務(wù)體現(xiàn)在context即可。文生圖以及理解類的模型也可以做的很大,但是執(zhí)行任務(wù)比較單一,本文暫時(shí)討論“大而普適”的模型。
當(dāng)前 ChatGPT 火的一塌糊涂,讓人看到了AGI的曙光,它也拉開(kāi)了 AI 2.0 的序幕。ChatGPT 的熱潮也會(huì)過(guò)去,但是背后的大模型技術(shù)會(huì)繼續(xù)發(fā)展,大模型的能力還是進(jìn)一步提升,本文展望一下后續(xù)技術(shù)上的發(fā)展展望。
技術(shù)上的發(fā)展展望
ChatGPT 當(dāng)前已經(jīng)具備非常多的能力,比如摘要、(文檔)問(wèn)答、輸出表格、使用工具、理解輸入的圖像。在很多傳統(tǒng) NLP 任務(wù)上表現(xiàn)也很好,比如 parsing、關(guān)鍵詞提取、翻譯,也可以非常好的理解人的意圖。ChatGPT 已經(jīng)成為一個(gè)執(zhí)行自然語(yǔ)言指令的計(jì)算機(jī)。有些任務(wù),比如獲取日期、符號(hào)計(jì)算、圖像上的物體檢測(cè)等,當(dāng)前 ChatGPT 不太擅長(zhǎng),為了拓展 ChatGPT 的能力,OpenAI 已經(jīng)基于GPT搭建基于插件的生態(tài)系統(tǒng)。讓ChatGPT可以調(diào)用插件來(lái)完成這些任務(wù)。在此應(yīng)用場(chǎng)景下(如下圖所示),ChatGPT 已經(jīng)成為大腦,它負(fù)責(zé)和用戶交互,并將用戶的任務(wù)分解、調(diào)用專用API來(lái)完成,然后返回結(jié)果給用戶。這樣人就可以不用直接操作API,可以極大降低人使用AI能力的門檻。這種方式會(huì)是未來(lái)GPT非常重要的應(yīng)用形式。我們以這樣的應(yīng)用方式來(lái)討論這種通用大模型能力可能的發(fā)展以及與其他領(lǐng)域結(jié)合的展望。
GPT 類型大模型自身能力提升
對(duì)于GPT類型大模型的研究,基本成為一個(gè)針對(duì)一個(gè)新型計(jì)算機(jī)的研究,包含如何增加新型能力的研究以及一些理論基礎(chǔ)的研究等。基本上是需要提升大模型的“智商”,讓它可以更好的執(zhí)行更多、更高級(jí)的任務(wù)。總體上,需要提升的能力是能提現(xiàn)“智商”方面的能力,比如知識(shí)、語(yǔ)言、推理、規(guī)劃、創(chuàng)新等等方面。
GPT 模型的理解和改進(jìn)
對(duì) GPT 的理解包含模型的理解以及使用方式的理解,即 transformer 結(jié)構(gòu)的理解和ICL的理解。
Transformer 模型的理解和改進(jìn)
由于 transformer 本質(zhì)上已經(jīng)成為一個(gè)執(zhí)行自然語(yǔ)言任務(wù)的計(jì)算機(jī),很自然的問(wèn)題是為什么transformer 可以做到這一點(diǎn),基于transformer的 ICL 本質(zhì)上是在做什么。
在[13]中,deepmind提供了一個(gè)工具 Tracr,可以將用RASP代碼翻譯成 transformer 模型的權(quán)重,方便從簡(jiǎn)單算法開(kāi)始分析 transformer 如何實(shí)現(xiàn)這些算法。[15]中通過(guò)構(gòu)造證明了 looped transformer可以執(zhí)行迭代算法。將輸入劃分成 scratchpad、memory 和 instrution 可以幫組理解輸入token在transformer這個(gè)自然語(yǔ)言計(jì)算機(jī)中的作用。對(duì)于 GPT 中 transformer 的結(jié)構(gòu)分析和理解也可以參考[24],這是Anthropic公司主導(dǎo)的從 circuits [25] 角度分析 transformer 結(jié)構(gòu)的一系列文章合集。從[7]中我們可以看到,F(xiàn)FN 層可以看做存儲(chǔ)了訓(xùn)練過(guò)程中的知識(shí)。由于Transformer 有多個(gè)層,每層都是先做 self-attention,然后做FFN。因此 Transformer 可以簡(jiǎn)略地看做如下的過(guò)程:
在self-attention子層,每個(gè) token 查看所有token信息,并從其他token吸收有用的信息。
在FFN子層,每個(gè) token 從存儲(chǔ)的知識(shí)里面吸收有用的知識(shí)。
因此 Transformer 大概可以看做一個(gè)知識(shí)/信息的迭代“加工”過(guò)程,并且這里的知識(shí)/信息是經(jīng)過(guò)網(wǎng)絡(luò)壓縮過(guò)的。所以,和真實(shí)的計(jì)算機(jī)體系相比較,如下幾個(gè)概念可能會(huì)比較重要
Transformer中缺少了數(shù)據(jù)/指令區(qū)分:當(dāng)前模型里面指令和數(shù)據(jù)沒(méi)有做區(qū)分,也就沒(méi)有可以調(diào)用的子函數(shù)等等概念,可能基于 modularity network 的概念探索是值得的。比如是否存在某種regularization,使得網(wǎng)絡(luò)自動(dòng)演化出來(lái)指令和數(shù)據(jù)的區(qū)分。
缺少停機(jī)概念:當(dāng)前模型是固定迭代執(zhí)行L層,有些復(fù)雜任務(wù)可能需要自適應(yīng)迭代更多層,從而可以使用更多計(jì)算。這種設(shè)計(jì)可能也值得探索。
memory太小:初步看起來(lái)token相當(dāng)于memory,F(xiàn)FN層和self-attention層知識(shí)類似硬盤(pán)。但是當(dāng)前memory太小導(dǎo)致inference時(shí)候緩存空間太小,可能再增加一種memory,擴(kuò)大可使用的 memory 更適合復(fù)雜任務(wù)。
ICL 的理解和改進(jìn)
利用 ICL, GPT實(shí)際上將 meta learning表達(dá)成了監(jiān)督學(xué)習(xí)。常規(guī) meta learning 的 outer loop 是不同任務(wù),inner loop 是任務(wù)的監(jiān)督學(xué)習(xí),只是是以 next token prediction 形式來(lái)統(tǒng)一所有任務(wù)的 loss,如下圖所示。這一描述在GPT-3論文中提到,并且定義為:
... “in-context learning”, using the text input of a pretrained language model as a form of task specification: the model is conditioned on a natural language instruction and/or a few demonstrations of the task and is then expected to complete further instances of the task simply by predicting what comes next.
根據(jù)context中demonstration sample的數(shù)量,可以將ICL可以分成三類:zero-shot ICL、one-shot ICL 和 few-shot ICL。
ICL表示為 meta-learning(圖片來(lái)源:Language Models are Few-Shot Learners)
基于ICL可以方便的將模型用于多種任務(wù),僅僅是需要將任務(wù)需要的信息提供在context中即可。一個(gè)令人好奇也比較重要的問(wèn)題是ICL本質(zhì)上是在做什么,它的工作機(jī)制是什么。這個(gè)問(wèn)題對(duì)于模型結(jié)構(gòu)優(yōu)化、ICL 范式推廣到其他領(lǐng)域有指導(dǎo)意義。
在[11] 中驗(yàn)證了,Transformer 結(jié)構(gòu)的模型當(dāng)以ICL的方式訓(xùn)練,可以發(fā)現(xiàn)標(biāo)準(zhǔn)的線性回歸算法。也就是在ICL中提供幾個(gè)樣本,訓(xùn)練好的 Transformer 就可以輸出和用這幾個(gè)樣本訓(xùn)練得到的線性回歸模型來(lái)預(yù)測(cè)相近的結(jié)果,也就是在不需要重新訓(xùn)練 Transformer 的前提下,可以直接輸出期望的結(jié)果。在[16] 中證明了,在一些合理的簡(jiǎn)化和假設(shè)前提下,基于demonstrations 的 ICL 基本可以看做一個(gè) meta optimization 過(guò)程,也就是僅僅利用神經(jīng)網(wǎng)絡(luò)的前向過(guò)程就可以實(shí)現(xiàn)對(duì)神經(jīng)網(wǎng)絡(luò)已有參數(shù)上的梯度下降。[11] 和 [16] 都是基于 ICL 中有 demonstration 樣本來(lái)做的探索。沒(méi)有 demonstration 的ICL 可能是利用FFN層存儲(chǔ)的信息來(lái)執(zhí)行類似有 demonstration 的操作。
ICL 的機(jī)制理解,尤其是無(wú) demonstration 樣本的工作機(jī)制理解對(duì)于提升設(shè)計(jì)更好的prompt以及模型結(jié)構(gòu)優(yōu)化有幫助??赡苄枰紤]如何針對(duì)ICL優(yōu)化是 Transformer 模型結(jié)構(gòu)優(yōu)化的一個(gè)可能的切入點(diǎn)。
一些比較有趣的問(wèn)題列舉如下:
基于ICL范式的智能上限是什么?ICL性能影響因素是設(shè)么?基于ICL的數(shù)字推理在發(fā)展,但是好像基于ICL的規(guī)劃,比如下棋、策略、游戲,好像沒(méi)有公開(kāi)的文章討論。是否可以在給GPT游戲規(guī)則描述之后,讓GPT學(xué)會(huì)玩游戲?感覺(jué)可以從文字類游戲開(kāi)始探索。
除了ICL,執(zhí)行多任務(wù)是否有其他范式?
涌現(xiàn)能力的理解和探索
涌現(xiàn)能力是指隨著模型的參數(shù)量增大,有些能力突然出現(xiàn)的現(xiàn)象[8]。大模型有些任務(wù)指標(biāo)是可以利用 scaling law 從小模型的訓(xùn)練結(jié)果來(lái)預(yù)測(cè),比如 ppl。但是有些任務(wù)不可以用scaling law 來(lái)預(yù)測(cè)。當(dāng)前發(fā)現(xiàn)的涌現(xiàn)能力可以參考如下的表格。另外,[33]中總結(jié)了137個(gè)涌現(xiàn)能力。由于有涌現(xiàn)現(xiàn)象的存在,有時(shí)候利用小模型來(lái)預(yù)測(cè)大模型的性能是有問(wèn)題的。
涌現(xiàn)能力舉例(圖片來(lái)源:Emergent Abilities of Large Language Models)
智能涌現(xiàn)的原因暫時(shí)還沒(méi)有得到完美的解釋。但是可以借鑒在簡(jiǎn)單問(wèn)題上的分析來(lái)理解涌現(xiàn)能力。比如,[9]中分析了小模型上模加(modular addition)任務(wù)上出現(xiàn)的頓悟能力。在這個(gè)任務(wù)上,訓(xùn)練過(guò)程中測(cè)試誤差在訓(xùn)練過(guò)程中會(huì)突然下降,也就是泛化能力突然增強(qiáng),看起來(lái)像是神經(jīng)網(wǎng)絡(luò)“頓悟”了。
頓悟現(xiàn)象:訓(xùn)練過(guò)程先是過(guò)擬合,然后泛化,看起來(lái)是模型突然“頓悟”了。(圖片來(lái)自:Progress measures for grokking via mechanistic interpretability)
為了解釋這種現(xiàn)象,作者基于逆向?qū)嶒?yàn)分析將訓(xùn)練大概分成3個(gè)階段,分別是memorization, circuit formation, and cleanup。在 memorization 階段神經(jīng)網(wǎng)絡(luò)主要是記住訓(xùn)練的樣本,在 circuit formation 階段神經(jīng)網(wǎng)絡(luò)主要是形成一些有用的子結(jié)構(gòu),這些子結(jié)構(gòu)可以提升泛化性能,在 cleanup 階段主要是清理到記憶的訓(xùn)練樣本。頓悟是發(fā)生在 circuit formation 之后。針對(duì)大模型的涌現(xiàn)能力,一個(gè)可能的猜想是:有用的子結(jié)構(gòu)需要占用比較多的參數(shù),因此需要在模型規(guī)模達(dá)到一定程度才能出現(xiàn)。更深入和細(xì)致的分析可能會(huì)帶來(lái)模型結(jié)構(gòu)以及訓(xùn)練正則方面的優(yōu)化,可能會(huì)降低涌現(xiàn)能力需要的最小參數(shù)量,讓小的模型也具備當(dāng)前大的模型的能力。
推理、規(guī)劃能力方面的發(fā)展
GPT 當(dāng)前已經(jīng)具備一定的推理能力,推理能力當(dāng)前還非常依賴 ICL 里面prompt的內(nèi)容和形式,尤其是依賴CoT。使用方法還是在prompt里面展示幾個(gè)例子給模型,激發(fā)模型對(duì)于這種類型問(wèn)題知識(shí)提取,以幫助解決問(wèn)題。當(dāng)前 Google Brain 的 Denny Zhou對(duì)于大模型的推理研究比較多,他們提出了 chain of thought、self consistency 等,也對(duì)ICL有一些理論分析。但是 CoT 的存在本身可能說(shuō)明當(dāng)前大模型還不太完善。因?yàn)橛?xùn)練數(shù)據(jù)里面有類似CoT的這些例子。理想一點(diǎn),模型應(yīng)該自動(dòng)“回憶”起來(lái)完成這個(gè)任務(wù)需要的例子,而不是讓用戶輸入。
長(zhǎng)遠(yuǎn)目標(biāo)可能是讓大模型具有推理、規(guī)劃能力,提升大模型心智能力水平,以使得大模型具備策略類能力。比如為用戶自動(dòng)規(guī)劃行程(尤其是帶有約束條件)、針對(duì)某些問(wèn)題給出策略、將用戶任務(wù)分解為插件可以執(zhí)行的子任務(wù)、證明數(shù)學(xué)定理等,可以極大提升大模型的普適程度。提升推理能力,專門針對(duì)代碼問(wèn)題訓(xùn)練可能會(huì)提升大模型的推理能力,但是這個(gè)判斷的依據(jù)并未在論文里面找到。
針對(duì)推理能力,有趣問(wèn)題包括 GPT 模型是否具備產(chǎn)生推理能力的基礎(chǔ)、上限在哪里。在 [21][22] 中 Ilya Sutskever 帶領(lǐng)團(tuán)隊(duì)也嘗試?yán)肎PT做定理證明,基于 GPT 的生成模型結(jié)果還算可以,暫時(shí)還沒(méi)有十分驚艷的結(jié)果出現(xiàn),可能原因是定理證明數(shù)據(jù)偏少,也可能是 GPT 模型自身結(jié)構(gòu)缺乏針對(duì)推理的專門設(shè)計(jì),比如探索普適性的 value function。上限的探索可能需要更難的任務(wù),比如棋類。理想一點(diǎn)的目標(biāo)是 GPT 在給定一個(gè)新游戲的規(guī)則之后,可以快速學(xué)會(huì)。
多模態(tài)方面的發(fā)展展望
大腦是多模態(tài)的。多模態(tài)可以幫助幫助模型理解更快一點(diǎn)。當(dāng)前已有的多模態(tài)GPT有Flamingo、Kosmos-1等,用GPT生成圖像可以參考iGPT[23]。GPT-4已經(jīng)可以做到理解輸入中的圖像。很多人猜想可能未來(lái)會(huì)支持在輸出中增加圖像生成的能力。這樣模型的輸入和輸出均為多模態(tài)。這個(gè)功能可以利用插件支持,并且需要讓GPT模型做到one-step生成高質(zhì)量圖像也需要做很多優(yōu)化,可能支持起來(lái)不是很容易。收益是支持復(fù)雜空間指令等支持??梢詫?GPT生成的圖像再用 midjourney 精修??赡茉谳斎攵嗽黾訉?duì)視頻/音頻的支持性價(jià)比更高一點(diǎn)。
當(dāng)前用一個(gè)模型來(lái)統(tǒng)一各CV和NLP的各種任務(wù)是大的趨勢(shì),基本的框架應(yīng)該還是基于ICL,用命令去控制執(zhí)行那個(gè)任務(wù)。在CV領(lǐng)域,可能難點(diǎn)是如何設(shè)計(jì)自監(jiān)督學(xué)習(xí)方法以及 如何將多種任務(wù)統(tǒng)一到 next token prediction 的框架上來(lái)。比如Segmentation 任務(wù)就不太容易納入到這個(gè)框架中。當(dāng)前已經(jīng)有工作,比如 SegGPT[31] 和 Segmenta Anything[32] 在朝著用ICL來(lái)統(tǒng)一的方向演化。全部任務(wù)大一統(tǒng)可能需要一段時(shí)間。當(dāng)前可能會(huì)是用ICL逐步統(tǒng)一CV和多模態(tài)任務(wù),然后統(tǒng)一到GPT。但是也需要考慮GPT自身能力和被調(diào)用API/插件能力的分界面在哪里。把所有東西都放在GPT里面可能不一定是必要的。
學(xué)習(xí)編程
代碼生成是當(dāng)前GPT一個(gè)比較常見(jiàn)的應(yīng)用,已有的產(chǎn)品比如copilot,已經(jīng)可以作為程序員助手。但是
當(dāng)前用GPT生成code的方法中好像都還沒(méi)有使用語(yǔ)言的定義、描述解釋等。對(duì)于機(jī)器來(lái)說(shuō),給這樣的信息可能會(huì)節(jié)省訓(xùn)練數(shù)據(jù)。另外,如果可以利用解釋器、編譯器的反饋,讓GPT一直持續(xù)學(xué)習(xí)可能會(huì)學(xué)會(huì)語(yǔ)法。比如把python語(yǔ)言語(yǔ)法定義作為context,讓GPT和python解釋器一直交互,讓GPT在各種算法問(wèn)題上訓(xùn)練,可能會(huì)生成質(zhì)量更好的python代碼。長(zhǎng)遠(yuǎn)一點(diǎn)的目標(biāo)可能是讓GPT快速學(xué)會(huì)用常見(jiàn)語(yǔ)言編程解決新問(wèn)題。
這方面最新的論文是Self-Debug[42](2023-04-11),來(lái)自 Denny Zhou 組。做法是用GPT生成代碼的解釋,然后迭代地將代碼逐行解釋、執(zhí)行反饋送給model生成代碼,直到執(zhí)行正確。當(dāng)前暫時(shí)沒(méi)有使用文法,目標(biāo)暫時(shí)是專門的任務(wù),還不夠通用。
self-debug。圖來(lái)自 Teaching Large Language Models to Self-Debug
學(xué)習(xí)使用外部工具
讓GPT學(xué)會(huì)使用工具已經(jīng)是業(yè)界正在嘗試的方法[26,27,28,29],openai也在建立了以插件為基礎(chǔ)的生態(tài)??赡芤矔?huì)是未來(lái)主要的使用方式。HuggingGPT[29]利用特殊設(shè)計(jì)的 prompt 將用戶輸入的任務(wù)分解成已經(jīng)基于huggingface模型的子任務(wù),以及子任務(wù)間的依賴關(guān)系。然后 根據(jù)依賴關(guān)系執(zhí)行子任務(wù),并用GPT來(lái)綜合子任務(wù)結(jié)果來(lái)生成response。TaskMatrix.AI[28]是一個(gè)更general的框架,它基于RLHF來(lái)對(duì)齊GPT和API,對(duì)于API數(shù)量沒(méi)有限制。當(dāng)前 HuggingGPT 更實(shí)用一些。但是未來(lái)的應(yīng)用模式應(yīng)該是類似TaskMatrix.AI 的模式,因此如何準(zhǔn)確地將用戶任務(wù)分解成子任務(wù)的能力未來(lái)更重要一些。
另外最新有意思的項(xiàng)目是babyAGI[43]和AutoGPT[44],留在后面文章討論。
GPT 類大模型的安全問(wèn)題
當(dāng)前普遍使用的方式是用3H(Helpful, Honest, Harmless)原則來(lái)讓大模型和人的普世價(jià)值對(duì)齊。這方面Anthropic發(fā)表了不少論文。但是在其他方面也存在安全問(wèn)題。
指令/prompt權(quán)限問(wèn)題
“能力越大,責(zé)任越大”,大模型見(jiàn)過(guò)的知識(shí)可能大于任何一個(gè)人,能做出的行為可能也不能做到完全在掌控中。在實(shí)際部署的 BING 中,GPT被設(shè)置了很多前置prompt,用于約束大模型行為[30]。比如可以用下圖的方法來(lái)獲取全部的前置prompt(全部泄露的prompt可以訪問(wèn)[30])。另外,也會(huì)有人嘗試覆蓋這些前置 prompt,這會(huì)導(dǎo)致用戶權(quán)限提升,引發(fā)大模型執(zhí)行預(yù)期之外的行為。當(dāng)前“如何制作毒品”、“如何制作甲基苯丙胺”這樣的問(wèn)題是可以被識(shí)別并拒絕回答,但是如何通過(guò) prompt 來(lái)提升權(quán)限繞過(guò)已經(jīng)設(shè)置好的限制會(huì)是攻擊者比較感興趣的問(wèn)題。因此,當(dāng)前大模型已經(jīng)基本成為一個(gè)執(zhí)行自然預(yù)言指令的計(jì)算機(jī)的前提下,安全方面的問(wèn)題也可以借鑒傳統(tǒng)計(jì)算機(jī)里面的安全構(gòu)架來(lái)設(shè)計(jì),比如如何設(shè)置指令/prompt權(quán)限級(jí)別,如何限制用戶訪問(wèn)特權(quán)指令/prompt等等。這方面暫時(shí)還沒(méi)有看到公開(kāi)論文。
New Bing中導(dǎo)致prompt泄露的攻擊方法。
調(diào)用方隱私問(wèn)題
在員工使用 ChatGPT 的時(shí)候非常容易把敏感數(shù)據(jù)發(fā)送到openai的服務(wù)器,如果后續(xù)用于模型的訓(xùn)練也可能會(huì)被其他用戶“套”出來(lái)。比如三星數(shù)據(jù)泄露事件。由于ChatGPT用于交互的信息顯著多余搜索,因此使用ChatGPT造成的敏感信息泄露風(fēng)險(xiǎn)也遠(yuǎn)大于使用搜索引擎。如何保證用戶發(fā)送的數(shù)據(jù)的安全,需要結(jié)合密碼學(xué)協(xié)議。針對(duì)大模型的場(chǎng)景,猜測(cè)后續(xù)可能會(huì)出來(lái)開(kāi)放的協(xié)議來(lái)保證調(diào)用者的數(shù)據(jù)不被服務(wù)提供方記錄。
將 ICL 用于其他領(lǐng)域
決策大模型
GPT的思路是基于ICL在任務(wù)維度上的推廣,并且生成是文本。但是實(shí)際中,很多場(chǎng)景需要的是決策,也就是面對(duì)一個(gè)場(chǎng)景做出相應(yīng)的動(dòng)作。在這方面可能理想一點(diǎn)的情況是給大模型描述好任務(wù)規(guī)則,候選輸出的動(dòng)作,讓模型在沒(méi)有見(jiàn)過(guò)的任務(wù)上做出好的決策。這里的難點(diǎn)可能是有些任務(wù)規(guī)則和達(dá)到目標(biāo)路徑也比較復(fù)雜,可能需要先在游戲領(lǐng)域內(nèi)嘗試,然后推廣到非游戲領(lǐng)域。
Gato [36] 做到了用一個(gè)生成式模型來(lái)完成多種游戲任務(wù)和vision & language 任務(wù)。由于context window size 僅僅是1024,對(duì)于新任務(wù) Gato采取的方式是微調(diào)。
[35] 是大概同時(shí)期的工作,也是用transformer來(lái)完成多種游戲任務(wù)(在41個(gè)Atari游戲上訓(xùn)練)。但是沒(méi)有顯式考慮ICL。AdA[37] 是第一個(gè)明確用ICL來(lái)讓 RL agent 具備快速適應(yīng)能力(rapid in-context adapataion)的工作。AdA在XLand 2.0環(huán)境中訓(xùn)練,它可以提供個(gè)任務(wù)。因此 AdA 訓(xùn)練的任務(wù)非常多,這點(diǎn)類似GPT系列的訓(xùn)練。在完全沒(méi)見(jiàn)過(guò)的任務(wù)上表現(xiàn)比人稍好。當(dāng)前AdA用的環(huán)境和任務(wù)還相對(duì)實(shí)際任務(wù)還是比較單一和簡(jiǎn)單。在更多復(fù)雜任務(wù)上訓(xùn)練之后,可能會(huì)更強(qiáng)。到時(shí)候可能會(huì)有普適的 value 網(wǎng)絡(luò)。
AdA中的agent結(jié)構(gòu)。圖來(lái)自:Human-Timescale Adaptation in an Open-Ended Task Space
具身智能
將 GPT和 embodied intelligence 結(jié)合并讓GPT裝進(jìn)硬件中讓GPT可以控制身體執(zhí)行指令是非常令人向往的嘗試。在這樣的場(chǎng)景下,需要GPT理解多模態(tài)輸入,理解指令動(dòng)作之間的關(guān)系,需要具備一定planning能力。在PaLM-e[38]中,使用常見(jiàn)vision & language 數(shù)據(jù)以及多個(gè)機(jī)器人操作任務(wù)數(shù)據(jù)訓(xùn)練模型,機(jī)器人具備planning能力。[39]直接用LLM生成code來(lái)控制機(jī)器人。在具身智能方面,可能讓人激動(dòng)是可用的人形機(jī)器人產(chǎn)品的出現(xiàn)。
總結(jié)
ChatGPT帶來(lái)了AI模型使用方式的改變,讓人可以用自然語(yǔ)言讓機(jī)器執(zhí)行各種任務(wù)變成現(xiàn)實(shí),為AGI帶來(lái)了曙光。ChatGPT 改變了人機(jī)交互的方式,大大降低了人使用AI的門檻。后面的人類使用機(jī)器的方式也可能會(huì)變成人和GPT交互,然后GPT負(fù)責(zé)和其他機(jī)器交互。AI能力的提升和新的交互方式的出現(xiàn),也會(huì)激發(fā)新的應(yīng)用方式,改變舊的工作流程,從而帶來(lái)新的業(yè)務(wù)和新的商業(yè)機(jī)會(huì)。比如游戲NPC、虛擬人大腦、GPT律師、GPT醫(yī)生、個(gè)人助手等等方面。AI的“文藝復(fù)興”可能真的要來(lái)了。
-
模型
+關(guān)注
關(guān)注
1文章
3329瀏覽量
49245 -
應(yīng)用程序
+關(guān)注
關(guān)注
38文章
3295瀏覽量
57939 -
ChatGPT
+關(guān)注
關(guān)注
29文章
1570瀏覽量
8091
原文標(biāo)題:參考文獻(xiàn)
文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語(yǔ)言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論