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