掌握這3大提示技巧,讓你秒變GPT達人!

23-04-09 15:15
閱讀本文需 14 分鐘
总结 AI 總結
看總結 收起
原文標題:《你一直以來都用錯了 ChatGPT!掌握這 3 大提示技巧,讓你秒變 GPT 達人!》
原文作者:Normanrockon,MultiSig


爲什麼提示工程如此重要?


提示工程的目標是通過提供清晰、簡潔且結構良好的輸入來提高語言模型的性能,這些輸入需要針對模型所用於的特定任務或應用進行定製。可以將提示工程比喻成與人交流時使用清晰明瞭的語言,讓對方更容易理解你的意圖,從而做出更滿意的迴應。


那麼接下來,我們將依次介紹 OpenAI 提供的提示工程最佳實踐,FushionAI 的自動生成功能,以及讓 GPT 進行自我反思。我們還會提供一個額外的實用小技巧,請多留心!


OpenAI 的官方最佳提示技巧


1. 使用最新的模型


爲了獲得最佳效果,我們建議使用最新、性能最強大的模型。截至 2022 年 11 月,文本生成方面的最佳選擇是「text-davinci-003」模型,代碼生成方面的最佳選擇是「code-davinci-002」模型。能使用 GPT-4 當然會比 ChatGPT 要更好。


2. 將指令放在提示的開頭,並用 ### 或"""將指令與文本分開


效果不佳:

將下面的文本摘要成一個關鍵要點的項目列表。

{輸入文本}


更好的選擇:

將下面的文本摘要成一個關鍵要點的項目列表。

文本:

""" {輸入文本} """


3. 對所需的上下文、結果、長度、格式、風格等儘可能具體、詳細和描述性


效果不佳:

寫一首關於 OpenAI 的詩。


更好的選擇:

寫一首關於 OpenAI 的短篇勵志詩,重點描述 DALL-E 產品發佈(DALL-E 是一個文本到圖像的機器學習模型),風格仿照 {著名詩人}。


4. 通過示例(示例 1,示例 2)明確所需輸出格式


效果不佳:

從下面的文本中提取實體。提取以下 4 種實體類型:公司名稱、人名、特定主題和主題。

文本:{文本}


更好的選擇:

從下面的文本中提取重要實體。首先提取所有公司名稱,然後提取所有人名,然後提取與內容相關的特定主題,最後提取總體主題。

期望格式:

公司名稱:<逗號分隔的公司名稱列表> 

人名:-||- 

特定主題:-||- 

總體主題:-||-

文本:{文本}


5. 從零次學習開始,然後進行少次學習,如果這些方法都不起作用,那麼進行微調


零次學習

從下面的文本中提取關鍵詞。

文本:{文本}

關鍵詞:


少次學習 - 提供幾個示例

從下面的文本中提取關鍵詞。

文本 1:Stripe 爲 Web 開發人員提供了 API,以便他們將支付處理集成到自己的網站和移動應用程序中。

關鍵詞 1:Stripe,支付處理,API,Web 開發人員,網站,移動應用程序

文本 2:OpenAI 已經訓練出了處理和生成文本方面非常優秀的語言模型。我們的 API 可以讓您使用這些模型,解決幾乎任何涉及處理語言的任務。

關鍵詞 2:OpenAI,語言模型,文本處理,API。

文本 3:{文本} 

關鍵詞 3:


微調:請參閱參考文獻裏的微調最佳實踐指南。


6. 減少模糊和不精確的描述


效果不佳:

這個產品的描述應該比較簡短,只有幾句話,不要太多。


更好的選擇:

用 3 至 5 句話的段落來描述這個產品。


7. 不僅要說不做什麼,更應該說做什麼


效果不佳:

以下是代理和客戶之間的對話。不要詢問用戶名或密碼。不要重複。

客戶:我無法登錄我的賬戶。代理:


更好的選擇:

以下是代理和客戶之間的對話。代理將嘗試診斷問題並提出解決方案,同時避免詢問任何與個人身份信息(PII)有關的問題。不要詢問用戶名或密碼,而是引導用戶查閱幫助文章 www.samplewebsite.com/help/faq

客戶:我無法登錄我的賬戶。代理:


8. 代碼生成 - 使用「引導詞」引導模型生成特定模式


效果不佳:

編寫一個簡單的 Python 函數 

1. 詢問我一個以英里爲單位的數字 

2. 將英里換算成公里


在下面的代碼示例中,添加「import」提示模型應該以 Python 語言開始編寫。(類似地,「SELECT」是 SQL 語句開始的好提示。)


更好的選擇:

編寫一個簡單的 Python 函數 

1. 詢問我一個以英里爲單位的數字 

2. 將英里換算成公里

import


FusionAI, 自動生成更好的提示


圖片


FusionAI 是一個可以自動生成更適合 GPT 提示並生成相應文章的 AI 軟件,我會建議新手期時將它當作學習提示工程的教程來使用。


例如,當我給出提示:「I want to have a blog of prompt engineering」FusionAI 會修改此提示爲


圖片


可以看出來這樣生成出來的提示對照了前文提到的第 3 和第 6 條技巧,規定了輸入長度,要求變得更精確了,讓 AI 聚焦於提示工程的好處和挑戰,並且舉出相應例子。


讓我們用中文輸入挑戰一下 FusionAI。給出提示:「給我一篇關於提示工程的博客」。FusionAI 修改提示爲:


圖片


可以看出來這個提示是有嚴重偏差的,詞不達意,無法使用。這其實給我們提了個醒,語言和指令在轉譯的時候是會有信息損失的,轉譯的次數越多信息差就越大,直到不可辨別。因此我們要儘量接觸和使用一手信息,在 AI 上也適用。


我們不建議使用各種模版或者類似 FusionAI 的工具來生成內容,因爲噪音太大。當然,在你還不瞭解提示工程的時候可以參考它們來學習,這是可以的。


GPT,你得學會自我反思


在 Eric Jang 的一篇最新的博客《Can LLMs Critique and Iterate on Their Own Outputs?》裏,他提到 LLM 可以在沒有任何基礎反饋的情況下自我糾正,並嘗試將這樣的自我反思作爲一種提示工程的技巧。(注意,目前只有 GPT-4 有這個功能)


你可以把這種情況想象成某人向你發送了一條短信,然後迅速「取消發送」,再發送一條新的短信。


讓我們舉個例子,當我們讓 GPT-4 寫出一首不押韻的詩:「can you write a poem that does not rhyme? think carefully about the assignment」,GPT-4 給出的回答是:


圖片


很明顯,節選的小詩是押韻的,這並不符合我們的要求。那麼我們給出進一步的指令讓 GPT-4 進行自我反思:「did the poem meet the assignment?」,那麼 GPT-4 會回答:


圖片


可以看出來,這次 GPT-4 生成的小詩確實是不押韻的,在沒有給出任何額外反饋的前提下 GPT-4 完成了自我的提示工程。筆者猜想這可能跟 LLM 的無監督學習有關,但爲什麼 GPT-4 擁有此功能而 GPT-3.5 卻沒有,就不得而知了。


當然,這樣的能力也是有侷限的。如果你願意,你可以要求 GPT-4 隨機給出兩個五位數並且求出它們的乘積。接下來你會發現,無論你讓 GPT-4 怎麼反思,它都無法給出正確的答案。GPT-4 只會不斷客氣地胡說八道而已。對於想深入研究的讀者,可以從文末鏈接閱讀 Eric 的博客和一篇最新的預印版論文《Reflection》


One more thing


有心的讀者可能已經發現了,作者在使用 LLM 一般都選擇英文作爲提示語言。這是因爲作爲預訓練模型,其表現的優異程序與預訓練時的數據集有關係,一般來說數據越多則被訓練得越好。而英語作爲全球第一的使用語言,數據量是遠超中文的。所以除非你需要輸出與中文語境強相關的文章,否則我會建議使用英文來作爲提示語言。


總結


在這篇文章裏我們介紹了三種提示工程的方法。分別是 OpenAI 推薦的前置提示工程,AI 自動生成,以及以反思爲主的後置提示工程。同時,我們也建議非英語母語者嘗試使用英語作爲與 LLM 交互的語言。


參考文獻:
https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api
https://docs.google.com/document/d/1h-GTjNDDKPKU_Rsd0t1lXCAnHltaXTAzQ8K2HRhQf9U/edit#

https://fusion.tiiny.site/home.html

https://evjang.com/2023/03/26/self-reflection.html

https://arxiv.org/pdf/2303.11366.pdf


原文鏈接


欢迎加入律动 BlockBeats 官方社群:

Telegram 订阅群:https://t.me/theblockbeats

Telegram 交流群:https://t.me/BlockBeats_App

Twitter 官方账号:https://twitter.com/BlockBeatsAsia

举报 糾錯/舉報
本平台現已全面集成Farcaster協議, 如果您已有Farcaster帳戶, 可以登錄 後發表評論
選擇文庫
新增文庫
取消
完成
新增文庫
僅自己可見
公開
保存
糾錯/舉報
提交