Prompt-提示詞, completions-補全,meta-learning-元學(xué)習(xí) 原創(chuàng)
“ 老話說溫故而知新,在大模型不斷的使用過程中,慢慢會發(fā)現(xiàn)一些自己之前沒有注意過的東西 ”
今天我們來認識幾個名詞,當(dāng)然這些名詞也已經(jīng)不是新名詞了,但之前對它們的理解只停留在表面,而今天要來加深一些理解。
提示詞和補全以及元學(xué)習(xí)
理論上來說提示詞是與大模型打交道的基礎(chǔ),人類要想和大模型進行交互就必須通過提示詞來實現(xiàn)。而從表面上來看,任何文本都可以作為提示詞,但如何編寫一個有效的提示詞,才能讓大模型更好地理解我們。
提示詞就類似于我們?nèi)祟愔g交流的語言,人類與計算機交流的編程語言;歸根結(jié)底,語言只是一種手段,而怎么把自己的意思說明白,并且讓別人(人類,計算機,大模型)理解我們才最重要。
所以,按照我們平常的交流習(xí)慣來看,在交流一個問題的時候最好加入一些指令和例子,這樣更加有助于其他人進行理解;因此,關(guān)于提示詞編寫的樣本提示就被提出來了。
所謂的樣本提示主要有三種:
- zero-shot prompts 零樣本提示
- one-shot prompts 一次提示
- few shot prompts 少樣本提示
雖然官方從未對提示詞做過任何約束,任何文本都可以作為提示詞,不論是一個字,還是一句話或者一個問題;但按照樣本提示的標準撰寫提示詞效果會更好。
而更重要的是,在文本補全方面,提示詞能直接影響到大模型的補全效果;比如說,提示詞為宮廷玉液酒,大模型就可以慣性補全為一百八一杯;雖然你也可以直接把一杯宮廷玉液酒多少錢作為提示詞,但感覺上總是怪怪的。
另一個因素就是prompt的大小,我們知道大模型是有窗口限制的,當(dāng)超過窗口限制時,超過的部分就會被丟掉;而寫一個短小精悍的提示詞就變得更加重要;而且還能節(jié)省成本。
最后,你知道文本生成,對話和聊天補全的區(qū)別嗎?
元學(xué)習(xí)
先思考一個問題,什么是元學(xué)習(xí)?
元學(xué)習(xí)是完全不同于機器學(xué)習(xí)和遷移學(xué)習(xí)的一種學(xué)習(xí)方式;先回顧一下傳統(tǒng)的機器學(xué)習(xí)和遷移學(xué)習(xí)。
不論是機器學(xué)習(xí),還是遷移學(xué)習(xí),亦或者是神經(jīng)網(wǎng)絡(luò)模型,都是通過使用某個場景的大量數(shù)據(jù)進行模型訓(xùn)練;而一旦任務(wù)場景發(fā)生改變,則模型就需要整理新的場景數(shù)據(jù),進行重新訓(xùn)練。
但就人類的學(xué)習(xí)經(jīng)歷來看,有一個詞叫做觸類旁通,就是說學(xué)過某個東西之后再學(xué)習(xí)其它新的東西就可以很容易的學(xué)會,原因是你具備了學(xué)習(xí)的能力,一法通萬法通,而不用每種新東西都要重新學(xué)習(xí)。
所以,元學(xué)習(xí)的概念就被提出來了;元學(xué)習(xí)就是讓阿爾法狗學(xué)會下象棋,讓GPT學(xué)會下圍棋。
需要注意的是,雖然同樣有“預(yù)訓(xùn)練”的意思在里面,但是元學(xué)習(xí)的內(nèi)核區(qū)別于遷移學(xué)習(xí)(Transfer Learning)。
在機器學(xué)習(xí)中,訓(xùn)練單位是一條數(shù)據(jù),通過數(shù)據(jù)來對模型進行優(yōu)化;數(shù)據(jù)可以分為訓(xùn)練集、測試集和驗證集。在元學(xué)習(xí)中,訓(xùn)練單位分層級了,第一層訓(xùn)練單位是任務(wù),也就是說,元學(xué)習(xí)中要準備許多任務(wù)來進行學(xué)習(xí),第二層訓(xùn)練單位才是每個任務(wù)對應(yīng)的數(shù)據(jù)。
二者的目的都是找一個Function,只是兩個Function的功能不同,要做的事情不一樣。機器學(xué)習(xí)中的Function直接作用于特征和標簽,去尋找特征與標簽之間的關(guān)聯(lián);而元學(xué)習(xí)中的Function是用于尋找新的f,新的f才會應(yīng)用于具體的任務(wù),有種不同階導(dǎo)數(shù)的感覺。
可能很多人看了上面的內(nèi)容都有點迷糊,但這個可以類比于高中數(shù)學(xué);函數(shù)f(x) = x +1; 學(xué)過高中數(shù)學(xué)的人應(yīng)該都知道,這是一個基礎(chǔ)的數(shù)學(xué)函數(shù),變量f(x) 是變量x的函數(shù)表示,f是x的函數(shù)關(guān)系。
而機器學(xué)習(xí)就類似于這個函數(shù),你知道了x和它的函數(shù)關(guān)系f,就是把x+1;以后遇到這樣的問題就可以按照這種方式進行計算;這在一元一次方程中是沒有問題的。
但我們都知道函數(shù)的種類有很多,除了一元函數(shù)之外,還有二元函數(shù),多元函數(shù),復(fù)變函數(shù),三角函數(shù)等等。
而如果你想讓一個只會處理一元函數(shù)的模型去處理二元函數(shù),那么就需要讓它重新進行訓(xùn)練,重新學(xué)習(xí);但元學(xué)習(xí)不是這樣的。
元學(xué)習(xí)是通過培養(yǎng)你的數(shù)學(xué)邏輯思維能力,而不是教你學(xué)習(xí)一個函數(shù)公式;這樣,你就可以通過大量的研究,去自己發(fā)現(xiàn)不同函數(shù)之間的關(guān)系,然后自己列出其函數(shù)公式;這樣,以后不論你遇到什么樣的函數(shù),不論多么復(fù)雜的數(shù)學(xué)問題,你都可以自己解決,這樣就不用每次都去學(xué)習(xí)一堆數(shù)學(xué)公式。
對于大多數(shù) NLP 系統(tǒng),在訓(xùn)練底層 ML 模型時,提供的數(shù)據(jù)是用于指導(dǎo)模型如何完成特定NLP任務(wù)的。所以,為了提高對給定NLP任務(wù)的效果,模型必須重新訓(xùn)練,得到新版本的模型。但是元學(xué)習(xí)不一樣,因為它不需要針對任何特定任務(wù)進行重訓(xùn)練。它旨在識別提示(Prompts)文本中的模式(patterns)并通過使用底層通用模型來繼續(xù)模式。這種方法被稱為元學(xué)習(xí)(Meta-learning),因為提示用于教導(dǎo)大模型如何生成最佳的補全(completion),而不需要重新訓(xùn)練。因此,實際上,可以使用不同的提示類型(零提示、一次提示和多次提示)為不同類型的任務(wù)對大模型進行編程,并且您可以在提示中提供大量指令(instuctions)。
本文轉(zhuǎn)載自公眾號AI探索時代 作者:DFires
原文鏈接:??https://mp.weixin.qq.com/s/dXiGeAT-TkZbPHpv8MJy1w??
