隨著chatGPT的火爆,大家越來越認(rèn)識到到語言大模型的潛力,國內(nèi)的類chatGPT的生成式語言大模型(LLM)也如雨后春筍般冒出來。
如今大家都在探索各種prompt的技巧,其實從我個人看來,LLM其實也是一種檢索模型,只不過它的檢索粒度更加細(xì)致,更加語義化,盡管如此,現(xiàn)如今的LLM其實遠(yuǎn)沒有達(dá)到人類大腦的理解能力,其生成能力仍然很大程度受到它們的模型機(jī)制以及訓(xùn)練預(yù)料的數(shù)據(jù)分布的限制。
下面我就結(jié)合使用文心一言編寫代碼的實踐,來談一下自己的prompt經(jīng)驗。先看具體case:

prompt.png
好了,大家可以看到通過我的promt,文心一言給出的答案還是比較不錯的,當(dāng)然這里不得不提一下文心一言目前在代碼生成方面和chatGPT差距還是比較大的,盡管如此,如果有好的prompt,文心一言仍然可以給出相對不錯的代碼。
下面我就談一下我在設(shè)計出這樣的propmt的時候是怎么想的。
- 對答案進(jìn)行拆分,克服長答案中斷的問題。當(dāng)前文心一言的上下文長度還比較小,在答案內(nèi)容很多的情況下,經(jīng)常中斷,如果用“繼續(xù)”等prompt往往不能很好地銜接,尤其是代碼相關(guān)的內(nèi)容。所以我的prompt中,明確的要求文心一言將答案拆分成多個部分(
代碼包括html、css和javascript三部分,下面請先單獨給出html代碼,等我再次給出指令時再給出其余代碼。),分步給出答案,每個部分相對獨立,這樣當(dāng)一次輸出的答案不完整時再補(bǔ)全就比較容易了。 - 要求盡量詳細(xì),同時給出專業(yè)的術(shù)語詞匯。比如我結(jié)合前端的領(lǐng)域知識給出了
配色、間距、布局等要求。如果沒有的話,很可能css樣式就被文心一言給忽略了。 - 立人設(shè)(
充當(dāng)一個工作10年以上的資深前端開發(fā)工程師),這個是借鑒的別人經(jīng)驗,我也說不上緣由,但是既然大家都有這樣的共識,那就用吧。后面我猜大模型可能會針對這種形式的prompt進(jìn)行優(yōu)化訓(xùn)練。