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