? 碎碎念
2023 年,最火的可能就是 openAI 了,其組織代表的產(chǎn)品 chatGTP,相信大家已經(jīng)有所耳聞。不少同學已經(jīng)開始著手使用,并截圖曬出 ChatGPT 是多么得智能與神奇。而有的同學在使用之后覺得有點差強人意,指出頂多算是一個比較聰明的聊天機器人而已。
其實,ChatGPT 的難點,在于 Prompt(提示詞)的編寫。從 ChatGPT 發(fā)布之后,如何寫好 Prompt 已經(jīng)成為了一個分水嶺。熟練掌握 Prompt 編寫的人,能夠很快讓 ChatGPT 理解需求,并很好的執(zhí)行任務。
只要你的 Prompt 寫的足夠好,ChatGPT 可以幫你快速完成很多工作,包括寫爬蟲腳本、金融數(shù)據(jù)分析、文案潤色與翻譯等等,并且這些工作還做的比一般人出色。
?? 總結(jié)
通過學習,我認為編寫 prompt 是一個自我完善、優(yōu)化的過程。最開始我們可以從簡單開始,比如一句簡單的指令。當我們得到 AI 的反饋后,我們可以逐步去調(diào)教優(yōu)化迭代 prompt,直到 AI 給到我們滿意的反饋為止。
在實際操作中我發(fā)現(xiàn),只要通過一個好的迭代過程來不斷改進 Prompt,那么就能夠得到一個適合任務的 Prompt,最后 AI 會給到我期望的回答以完成任務。這個成就感是特別強烈的。
最終,一個優(yōu)秀的 prompt,通??梢詮倪@種通用性比較強的套路模板開始,然后逐步優(yōu)化迭代:
指令:想要模型執(zhí)行的特定任務或指令。
上下文:包含外部信息或額外的上下文信息,引導語言模型更好地響應。
輸入數(shù)據(jù):用戶輸入的內(nèi)容或問題。
輸出指示:指定輸出的類型或格式。
使用
?? 編寫 Prompt 的原則
- 編寫清晰、具體的指令
- 使用分隔符清晰地表示輸入的不同部分,分隔符可以是:```,"",<>,"<tag></tag>" 等
- 要求一個結(jié)構(gòu)化的輸出,可以是 Json、HTML 等格式
- 要求模型檢查是否滿足條件
- 提供少量示例
- 給模型時間去思考
- 指定完成任務所需的步驟
- 指導模型在下結(jié)論之前找出一個自己的解法
?? 舉例
編寫清晰、具體的指令
1.使用分隔符清晰地表示輸入的不同部分,分隔符可以是:```,"",<>,"<tag></tag>" 等
把用三個雙引號括起來的文本總結(jié)成一句話:
"""
你應該提供盡可能清晰、具體的指示,以表達你希望模型執(zhí)行的任務。這將引導模型朝向所需的輸出,并降低收到無關或不正確響應的可能性。不要將寫清晰的提示與寫簡短的提示混淆。在許多情況下,更長的提示可以為模型提供更多的清晰度和上下文信息,從而導致更詳細和相關的輸出。
"""
2.要求一個結(jié)構(gòu)化的輸出,可以是 Json、HTML 等格式
請生成包括書名、作者和類別的三本虛構(gòu)書籍清單,并以 JSON 格式提供,其中包含以下鍵:book_id、title、author、genre。
3.要求模型檢查是否滿足條件
如果任務做出的假設不一定滿足,我們可以告訴模型先檢查這些假設,如果不滿足,指示并停止執(zhí)行。
您將獲得由三個雙引號括起來的文本。如果它包含一系列的指令,則需要按照以下格式重新編寫這些指令:
第一步 - ...
第二步 - ...
...
第N步 - ...
如果文本中不包含一系列的指令,則直接寫"未提供步驟"。
"""
今天陽光明媚,鳥兒在歌唱。這是一個去公園散步的美好日子。鮮花盛開,樹枝在微風中輕輕搖曳。人們外出享受著這美好的天氣,有些人在野餐,有些人在玩游戲或者在草地上放松。這是一個完美的日子,可以在戶外度過并欣賞大自然的美景。
"""
4.要求模型檢查是否滿足條件
在要求模型執(zhí)行實際任務之前,提供給它少量成功執(zhí)行任務的示例,這樣 AI 會變得更加聰明
你的任務是以一致的風格回答問題。
<孩子>: 耐心是什么
<祖父母>: 挖出最深峽谷的河流源于一處不起眼的泉眼;最宏偉的交響樂從單一的音符開始;最復雜的掛毯以一根孤獨的線開始編織。
<孩子>: 韌性是什么
給模型時間去思考
1.指定完成任務所需的步驟
當一句話不能準確描述出需求時,我們可以通過列舉 1234 的方式來讓 AI 逐步進行
步驟:
"""
1. 用一句話概括下面用<>括起來的文本。
2. 將摘要翻譯成英語。
3. 在英語摘要中列出每個名稱。
4. 輸出一個 JSON 對象,其中包含以下鍵:English_summary,num_names。
"""
請使用以下格式輸出:
"""
文本:<要總結(jié)的文本>
摘要:<摘要>
翻譯:<摘要的翻譯>
名稱:<英語摘要中的名稱列表>
輸出 JSON:<帶有 English_summary 和 num_names 的 JSON>
"""
文本:
<在一個迷人的村莊里,兄妹杰克和吉爾出發(fā)去一個山頂井里打水。他們一邊唱著歡樂的歌,一邊往上爬,然而不幸降臨——杰克絆了一塊石頭,從山上滾了下來,吉爾緊隨其后。雖然略有些摔傷,但他們還是回到溫馨的家中。盡管出了這樣的意外,他們的冒險精神依然沒有減弱,繼續(xù)充滿愉悅地探索。>
2.指導模型在下結(jié)論之前找出一個自己的解法
在判斷正誤時,可以讓 AI 自己先思考解決方法,再進行對比,這樣我們會得到更好的結(jié)果
請判斷學生的解決方案是否正確,請通過如下步驟解決這個問題。
步驟:
"""
1. 首先,根據(jù)學生的解決方案格式自己先解決問題。
2. 然后將你的解決方案與學生的解決方案進行比較,并評估學生的解決方案是否正確。在自己完成問題之前,請勿決定學生的解決方案是否正確。
"""
使用以下格式輸出:
"""
問題:問題文本
學生的解決方案:學生的解決方案文本
你的解決方案和步驟:你的解決方案文本和步驟文本
學生的解決方案和你的解決方案是否相同:是或否
學生的成績:正確或不正確
"""
問題:
"""
我正在建造一個太陽能發(fā)電站,需要幫助計算財務:
- 土地費用為每平方英尺100美元
- 我可以以每平方英尺250美元的價格購買太陽能電池板
- 我已經(jīng)談判好了維護合同,每年需要支付固定的10萬美元,并額外支付每平方英尺10美元
請計算首年運營的總費用是多少?
"""
學生的解決方案:
"""
設x為發(fā)電站的大小,單位為平方英尺。
費用:
1. 土地費用:100x
2. 太陽能電池板費用:250x
3. 維護費用:100,000+100x
總費用:100x+250x+100,000+100x=450x+100,000
"""
參考資料:《ChatGPT Prompt Engineering for Developers》文章來源:http://www.zghlxwxcb.cn/news/detail-484737.html
文章來自 Yongchin'blog yongchin.xyz文章來源地址http://www.zghlxwxcb.cn/news/detail-484737.html
到了這里,關于Open AI ChatGPT Prompt 學習之基礎篇的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!