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