在問答場景裡,為了讓 AI 回答更加準確,一般會在問題里加條件。比如讓 AI 推薦一部電影給你 Recommend a movie to me
。但這個 prompt 太空泛了,AI 無法直接回答,接著它會問你想要什麼型別的電影,但這樣你就需要跟 AI 聊很多輪,效率比較低。
所以,為了提高效率,一般會在 prompt 裡看到類似這樣的話(意思是不要詢問我對什麼感興趣,或者問我的個人資訊):
DO NOT ASK FOR INTERESTS. DO NOT ASK FOR PERSONAL INFORMATION.
如果你在 ChatGPT 裡這樣提問,或者使用 ChatGPT 最新的 API ,它就不會問你問題,而是直接推薦一部電影給你,它的 Output 是這樣的:
Certainly! If you're in the mood for an action-packed movie, you might enjoy "John Wick" (2014), directed by Chad Stahelski and starring Keanu Reeves. The movie follows a retired hitman named John Wick who seeks vengeance against the people who wronged him. It's a fast-paced and stylish film with lots of thrilling action sequences and an engaging story. If you're looking for something that will keep you on the edge of your seat, "John Wick" is definitely worth a watch!
但如果你使用的是如 Davinci-003 這樣的模型,它的 Output 很可能是這樣的,它還會問你的興趣愛好:
Sure, I can recommend a movie based on your interests. What kind of movie would you like to watch? Do you prefer action, comedy, romance, or something else?
所以 OpenAI 的 API 最佳實踐檔案裡,提到了一個這樣的最佳實踐:
Instead of just saying what not to do, say what to do instead. 與其告知模型不能幹什麼,不妨告訴模型能幹什麼。
我自己的實踐是,雖然現在最新的模型已經理解什麼是 Not Todo ,但如果你想要的是明確的答案,加入更多限定詞,告知模型能幹什麼,回答的效率會更高,且預期會更明確。還是電影推薦這個案例,你可以加入一個限定詞:
Recommend a movie from the top global trending movies to me.
當然並不是 Not Todo 就不能用,如果:
以下是一些場景案例,我整理了兩個 Less Effective(不太有效的) 和 Better(更好的) prompt,你可以自己嘗試下這些案例:
場景 | Less Effective | Better | 原因 |
---|---|---|---|
推薦雅思必背英文單詞 | Please suggest me some essential words for IELTS | Please suggest me 10 essential words for IELTS | 後者 prompt 會更加明確,前者會給大概 20 個單詞。這個仍然有提升的空間,比如增加更多的限定詞語,像字母 A 開頭的詞語。 |
推薦香港值得遊玩的地方 | Please recommend me some places to visit in Hong Kong. Do not recommend museums. | Please recommend me some places to visit in Hong Kong including amusement parks. | 後者的推薦會更準確高效一些,但如果你想進行一些探索,那前者也能用。 |
直接告知 AI 什麼能做,什麼不能做外。在某些場景下,我們能比較簡單地向 AI 描述出什麼能做,什麼不能做。但有些場景,有些需求很難通過文字指令傳遞給 AI,即使描述出來了,AI 也不能很好地理解。
比如給寵物起英文名,裡面會夾雜著一些所謂的名字風格。此時你就可以在 prompt裡增加一些例子,我們看看這個例子:
Suggest three names for a horse that is a superhero.
Output 是這樣的,第一個感覺還行,第二個 Captain 有 hero 的感覺,但 Canter 就像是說這匹馬跑得很慢,而且三個都比較一般,不夠酷。
Thunder Hooves, Captain Canter, Mighty Gallop
此時你就可以在 prompt 裡增加一些案例:
Suggest three names for an animal that is a superhero.
Animal: Cat
Names: Captain Sharpclaw, Agent Fluffball, The Incredible Feline
Animal: Dog
Names: Ruff the Protector, Wonder Canine, Sir Barks-a-Lot
Animal: Horse
Names:
增加例子後,輸出的結果就更酷一些,或者說是我想要的那種風格的名字。
Gallop Guardian, Equine Avenger, The Mighty Stallion
以下是一些場景案例,我整理了兩個 Less Effective(不太有效的) 和 Better(更好的) prompt,你可以自己嘗試下這些案例:
場景 | Less Effective | Better | 原因 |
---|---|---|---|
起英文名 | Suggest three English names for a boy. | Suggest three English names for a boy. Here are some examples: Jimmy、Jason、James |
可以在下方執行這個案例,在不給範例的情況下 AI 會給你什麼答案。 |
將電影名稱轉為 emoji | Convert Star Wars into emoji. | Convert movie titles into emoji. Back to the Future: |