從失望到精通:AI 大模型的掌握與運用技巧(1)
前言
曾經有一批強大的 AI 模型擺在我面前,我卻未曾珍惜,知道發(fā)現別人能夠輕松駕馭它發(fā)揮巨大價值,才后悔莫及,如果上天給我重來一次的機會,我會努力學習經驗和技巧,成為第一批熟練駕馭 AI 模型的人!
隨著 ChatGPT 的問世,各行各業(yè)深受震撼,國內外各種新的大模型也如雨后春筍般相繼出現。一些對機遇反應迅速的人已經開始將 AI 運用到學習和工作中,甚至已經開始借助 AI 賺錢了。
目前市場上的 AI 模型眾多,包括國外的 ChatGPT、Claude、Bard 等,國內的文心一言、通義千問、訊飛星火大模型等?,F階段不是缺少 AI 工具,而是缺乏使用這些工具的經驗。多人由于缺乏經驗,用了幾次大模型后發(fā)現回答不符合預期就感到失望棄之不用,這非常可惜。其實不同的模型之間能力有差異,但是相同的模型不同人用起來效果也會相差很大,這里的關鍵在于提示詞技巧和使用和業(yè)務接入過程中遇到的常見問題是否有好的辦法去解決。
雖然現在已經進入 AI 時代,已經可以用自然語言和模型交互,但對提示詞的要求還是有點高,在 AI 工具發(fā)展的相對早期,很多問題還沒有完全解決,很多功能還不完善。在我看來,現在大多數人使用大模型存在兩類主要問題:
一類是提示詞寫的不夠好,導致回答不滿意;
一類是大模型的使用和接入經驗不足,很多常見問題不知道該如何解決。
提示詞掌握不好,可能會遇到下面的困惑:
大模型的回答總是簡略、空洞和機械,怎么辦?
大模型的回答總是不能夠按照自己想要的格式輸出,怎么辦?
大模型的回答總是不夠完善,怎么辦?
大模型使用技巧掌握不足,可能會遇到下面的困惑:
優(yōu)化了很多版本提示詞,答案總不滿意,怎么辦?
想在公司里使用 ChatGPT ,但是又擔心數據泄露,怎么辦?
和 AI 多輪對話之后, AI 似乎忘記了自己的任務是什么,怎么辦?
問 AI 問題,但又擔心它“說假話”,怎么辦?
每次都要輸入相似的提示詞,嫌麻煩,怎么辦?
收費模型有次數限制(如 GPT-4),如何讓它發(fā)揮更大作用?
業(yè)務接入大模型的經驗不足,可能會遇到下面的問題:
認為大模型是萬能的,啥功能都想用大模型來解決,結果事倍功半。
剛開始調通模型就匆忙上線,導致效果不理想,用戶流失。
構造人工標注太耗費時間。
算法工程師不足,開發(fā)人員自己訓練模型,做了很多優(yōu)化效果都不理想。
如果你也遇到上述問題,那么本文將對你有所幫助。接下來我將主要介紹如何通過精準的提示詞技巧獲得想要的答案,以及在使用大模型使用和接入的過程中遇到的常見問題該如何解決。
很多人試用幾次大模型,得不到想要的答案,頓感失望然后棄之不用。其實多半是自己的提示詞寫的不夠好導致的。網上的提示詞教程五花八門,要么不成體系,要么過于復雜。接下來將用相對接地氣的方式,談談提示詞的標準、提示詞該如何寫效果更好。
2.1.1 提示詞的標準和原則在我看來,一個粗略而簡單的標準就是:你身邊的人是否能夠輕松聽懂。如果你寫一個提示詞,還需要別人再問你好幾個問題才能真正明白什么意思,那么這個提示詞就不是好的提示詞。
好的提示詞應該遵循清晰具體,重點突出,充分詳盡的原則。在提示詞中給出他回答問題所需要的主要信息,并且清楚具體地告訴它要做什么事情。
2.1.2 提示詞公式
對于相對簡單、通用的任務,由于模型對這類任務通常比較擅長,一般遵循前面所講的原則直接寫提示詞即可
示例 1:
請根據 XXX 起 5 個有吸引力的標題
示例 2:
請幫我找出下面段落中的錯別字,段落內容為:XXX。
示例 3:
請給我一個 Java 語言實現策略設計模式的示例代碼。
對于相對復雜、專用的任務,可以參考下面的公式:立角色 + 說問題 + 定目標 + 給示例 + 加背景+ 補要求,往往可以得到更好的回答。實際使用過程中并非這四項都要有,可以根據實際情況進行靈活組合。
示例:
2.1.3 提示詞技巧我想讓你充當我的導游(立角色),我計劃從青島出發(fā)去杭州旅游,預算是 10000 元,總共 2 個人,行程 3 天,請給我出一份攻略(說問題,定目標)。注意行程不要安排過于緊湊,不想去網紅打卡點,想去有文化底蘊的景點,另外推薦景點時,請附上景點的價格,不去太高檔的餐廳吃飯(補要求)。
提示詞的技巧有很多,這里給出一些自己實踐過的非常有用的一些經驗,更多進階技巧大家可以再網上搜索更多資料進一步學習。
加分隔符幫助模型區(qū)分不同的區(qū)塊如果提示詞包含多個部分,為了更好地區(qū)分開來,可以使用分隔符。如使用三個反引號將命令和待處理的段落分開。
示例 :
執(zhí)行下面的步驟:
1 將下面由三個引號分隔的文本總結為一句話。
2 將總結翻譯成英文
3 統(tǒng)計英文中的每個字母的數量
4 參考三個#分割的文本格式進行輸出
"""{text}"""
###{"a":1,"b":2}###
通過加限定詞提要求規(guī)范模型的輸出
如果 AI 模型輸出的風格不符合你的要求,可以通過設置口吻、說明面向的人群等,讓大模型按照你的意圖來回答問題。如果 AI 模型輸出的內容存在 Bad Case,你可以通過強勢的情態(tài)副詞對結果進行干預,如“一定要”,"一定不要","必須"、“不許”、“應該”等。身邊就有朋友反饋用 AI 寫出的內容有“機器味道”,采用了通過設置口吻和設定要求等優(yōu)化提示詞后,寫出的內容讓他非常滿意。
示例 1:
你是一位知名兒童文學作家,請使用親和力的口吻,幫我寫一篇面向幼兒園兒童的,能夠體現親情重要性的故事。
要求:
1 文章內容需要涉及至少兩個動物。
2 文章內容要具有想象力。
3 文章內容需積極向上,絕不能出現血腥、暴力的內容。
4 ...
說明:提示詞中講口吻、面向人群和具體要求給出到模型,更容易寫出讓你滿意的故事。在提示詞中通過“絕不能”的限定,模型構造故事時會刻意避免。
示例 2:
請使用 PlantUML 的語法,幫我生成一個時序圖。
時序的對象包括:A、B、C。時序如下:XXX
說明:如果不交代時序對象,模型提取的對象可能和你想的有偏差,而提示詞中直接將時序對象交代給 AI 模型,更容易繪制出讓你滿意的時序圖。
示例3:
執(zhí)行下面的步驟:
1 將下面由三個引號分隔的文本總結為一句話。
2 將總結翻譯成英文
3 統(tǒng)計英文中的每個字母的數量
4 參考三個#分割的文本格式進行輸出
5 不需要輸出中間過程,只需要參考三個#分割的文本格式輸出最終結果即可(一定不要輸出開頭和結尾分隔符#)
"""{text}"""
###{"a":1,"b":2}###
說明:如果不加上 “一定不要輸出開頭和結尾的分隔符#”,有些模型會輸出結果時前后帶上三個 #,通過限定可以完美解決這個問題。
提供參考示例讓模型更好理解你的意圖
在提示詞中給出一些示例,有助于大模型更好地理解你的意圖,回答出更符合你要求的答案。
示例 1:
請你充當標題優(yōu)化助手,我將給你發(fā)送一個主題,請從下面的原則中選擇最適合的一個原則,給出 5 個參考標題。
好的文章標題遵循三個原則:
(1)數字法則。如“寫文章的 5 種技巧”、“工作 5 年,我學到了這 10 點”、“3 種姿勢幫你做出精美簡歷”。
(2)給出結論和價值。如“重構的必要性和方法”、“關于軟件復雜度的思考”、“工程師也要有產品思維”。
(3)激發(fā)好奇心。如“DDD 最短學習路徑”、“原來設計模式還可以這么用”、“ 99% 程序員理解錯了字符串的可變性”、“不寫代碼,程序員最重要的技能”。
主題:XXX
示例 2:
請幫我寫一個正則表達式,匹配的規(guī)則如下:數字或下劃線#some.com,并且不能以下劃線開頭。
正確示例:123#some.com 、 123#some.com、1_23#some.com
錯誤示例:123#some.com、12ac#some.com
示例 3:
你是一個知名互聯網論壇的編輯,請幫我校對一篇專業(yè)博文,請指出其中的專業(yè)術語錯誤、拗口的句子等,并給出修改建議。
參考輸出格式見三個引號分隔的部分:
"""
第1處
原文:在軟件開發(fā)流程中代碼審校非常重要,能夠幫助程序員提前發(fā)現問題。
原因:“代碼審?!睂I(yè)術語錯誤,應該是“代碼審查”
修改:在軟件開發(fā)流程中代碼審校非常重要,能夠幫助程序員提前發(fā)現問題。
第2處
原文:使用命令 dune init project my_compiler 創(chuàng)建新項目。
原因:此句中對命令的描述不夠通順,建議增加“來”字來連接動作與目的。
修改:使用命令 dune init project my_compiler 來創(chuàng)建新項目。
"""
思維鏈 (Chain-of-Thought,CoT)
人們解決復雜問題時,通常會將其分為一些中間的步驟逐步解決,最終得到答案。思維鏈就是參考人類的解決辦法,思維鏈提示詞模式包括輸入問題、思維鏈和輸出結論。讓模型可以學習這種推理過程,從而提高大模型在復雜推理時的準確率。
(圖片來源:《Chain-of-Thought Prompting Elicits Reasoning in Large Language Models 》論文)
2.2 模型使用過程中常見問題和解決辦法2.2.1 想使用外部大模型,又擔心業(yè)務數據泄露很多人想在公司里使用 AI 工具,但對業(yè)務數據泄露持有顧慮。
如果你在大廠,可以考慮公司內部自研的合規(guī)模型。也可以選擇公司代理(會進行安全過濾)的外國 AI 模型。如果想直接使用 ChatGPT 、Bard 之類的外國大語言模型試試效果,可以將數據先脫敏、構造 mock 數據或者嘗試將遇到的問題轉成一個通用的問題來提問即可,得到靠譜的方案或代碼再移植到公司內部。
*博客內容為網友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。