大模型提示詞進階,零樣本提示, 一次樣本提示和少樣本提示以及思維鏈(Chain of Thought, Cot) 原創(chuàng)
“ 技術的核心只有兩點,一個是把技術做好,一個是把技術用好 ”
在之前的文章中曾經(jīng)說過,預訓練和微調是為了打造一個更好用的大模型,而提示學習是為了更好的使用大模型,激發(fā)大模型的潛能。
而基于提示學習發(fā)展起來的提示詞工程,也就是怎么寫一個更好的提示詞;網(wǎng)絡上已經(jīng)有很多經(jīng)過檢驗的提示詞框架,比如APE,BROKE等。
提示詞工程是一門基于經(jīng)驗的科學,因此沒有最好的提示詞框架,只有不同任務下最合適的提示詞框架。
而經(jīng)過研究發(fā)現(xiàn)了提示詞更加高級的玩法——樣本提示和思維鏈。
樣本提示
樣本提示包括Zero-Shot,One-Shot,Few-Shot等多種形式,簡單來說就是在提示詞中加入一些例子。
比如
“whatpu” 是一種生長在坦桑尼亞的小型毛茸茸的動物。使用 whatpu 這個詞的一個例子是:
我們在非洲旅行,看到了這些非常可愛的 whatpu。 --舉例
“farduddle” 的意思是快速跳躍。使用 farduddle 這個詞的一個例子是:
這就是一個少樣本提示的例子,上部分是例子,淺綠色部分就是大模型的回答。
根據(jù)不同的大模型和任務類型,可以適當?shù)慕o出一個到多個例子,而我們平常直接問大模型的問題屬于零樣本提示,也就是不給出案例,直接讓大模型回答。
因此樣本提示就類似于我們人類平常討論問題,可能對方對你的問題不是很了解,這時我們下意識的反應就是,我給你舉個例子。
這就是樣本提示的作用,在使用樣本提示的過程中,可以適當?shù)脑黾佣鄠€樣本,F(xiàn)ew-Shot中的few就是大于等于1的意思。
以下就是一個給出三個例子的少樣本提示:
思維鏈
思維鏈是為了解決復雜問題而推出的一種方式,就是在提示詞中加入思考過程。
舉例如下:
這個是沒用思維鏈的方式
問:小明有三個蘋果,他的媽媽又給他買了兩個蘋果,小明吃掉了一個,小明還剩幾個蘋果?
答:4個
這個是使用思維鏈的方式
問:小明有三個蘋果,他的媽媽又給他買了兩個蘋果,小明吃掉了一個,還剩幾個蘋果?
答:小明起初有三個蘋果,他的媽媽又買了兩個,之后又吃掉一個,因此3 + 2 - 1 = 4,所以小明有四個蘋果。
問:小麗有三個網(wǎng)球,她又購買了兩罐網(wǎng)球,每罐三個,這時小麗有幾個網(wǎng)球?
在某些大模型中,如果不使用思維鏈的方式,關于小麗的問題,可能就會回答錯誤,而使用了思維鏈可以提升大模型回答的準確率,當然也不能完全避免回答錯誤的情況。
這里只是舉個簡單的例子,如果我們在執(zhí)行更加復雜的任務時,使用思維鏈可以大大提升大模型的輸出質量。特別是在Agent中,Agent利用思維鏈來優(yōu)化大模型的推理規(guī)劃能力和過程,這樣就可以讓Agent完成更加復雜的任務。
樣本提示與思維鏈結合
樣本提示和思維鏈是兩種不同的優(yōu)化大模型表現(xiàn)能力的方式,一個是給出案例,一個是逐步拆解,但它們的最終目的都是為了更好的使用大模型。
因此,在實際的應用過程中處理復雜任務時,一般會把樣本提示與思維鏈兩者相結合,即給出案例,又給出思考過程。
如下圖所示:
在一些問答系統(tǒng)中,使用樣本提示+思維鏈的方式能夠更好的回答問題,以及做一些復雜任務的拆解。
而如果把樣本提示+思維鏈的方式,再使用大模型的function call的方式來實現(xiàn)Agent,就可以讓大模型完成一些更加復雜的任務,比如使用思維鏈做完規(guī)劃之后,調用工具來完成每一步的任務。
通過這樣的方式,就可以把大模型與具體的垂直領域相結合,創(chuàng)建垂直領域的智能體。
大模型技術的核心只有兩點,一是怎么把模型做的更好,更強大;二是怎么用好大模型,讓大模型解決具體領域的問題。
思維鏈和樣本學習是解決兩種不同問題而提出的技術,而且可以把兩者結合起來,使得模型表現(xiàn)的更好。
本文轉載自公眾號AI探索時代 作者:DFires
原文鏈接:??https://mp.weixin.qq.com/s/zeRnkYfhXh7PkgY3bFU6tA??
