〇、導言
隨著人工智能技術的迅猛發展,大語言模型(LLM)以微軟 OpenAI 為代表,初次問世,為新一次的 AI 革命打響了第一槍。在短短的幾個月內,GPT-3.5 和 GPT-4 的加持下,New Bing、Copilot、Cursor 等產品也相繼問世,推動了產品開發的新思路。國內廠商也緊隨其后,百度文心一言、華為盤古大模型、阿里通義千問、訊飛星火認知大模型相繼發布。
我們現在可以通過與 AI 進行對話來獲取各種信息和解決問題。但想要獲得更準確、有用的回答,我們需要掌握如何向 AI 提問的技巧和方法。本文將探討一些技巧,幫助您在與 ChatGPT 和其他類 ChatGPT 的大語言模型對話時更加有效且高效。
一、Base LLM 與 Instruction Tuned LLM
在開始之前,我覺得獲取有必要向大家講解一個關于 Base LLM(基礎大語言模型)與 Instruction Tuned LLM(指令調整型大語言模型)的知識點,來幫助大家更好地了解大家更好了解之后的內容。如果你對 Base LLM 與 Instruction Tuned LLM 有一定的了解,可以跳過這部分來加速閱讀完這篇文章。
Base LLM(Base Language Model)是指大型語言模型的基礎版本。這些模型具有廣泛的語言理解和生成能力,能夠生成連貫、有邏輯的文本回答,并在部分任務和應用中展現出強大的表現;最常見的應用就是文章續寫,大家可能見過的應用比如早期 github 上的狗屁不通生成器、夸克瀏覽器中的 AI 作文靈感生成器、不少人喜歡拿來寫文案的秘塔寫作貓。
然而,盡管Base LLM在很多方面表現出色,它們仍然存在一些局限性。比如訓練數據大多都是來自于互聯網,社交平臺等易于獲取的數據,Base LLM可能會在某些情況下給出不準確或不合適的回答。此外,它們在理解特定領域或任務相關指令時的表現也相對較弱;比如我要詢問 “安徽有哪些好玩的地方?”,根據所訓練的網絡數據的不同,Base LLM 生成的內容可能會有 Answer 1 與 Answer 2 以下兩種結果:
- Answer 1,像是一些旅游推薦,搜索推薦所產生的的文本,不是特別符合我們的預期;
- Answer 2,像是出自一些旅游文章或者博客,比較符合我們的預期。
Base LLM 在生成內容時,可能被一些不確定的數據所污染,導致產生的結果并不是我們所預期的結果。為了克服這些限制,研究人員提出了Instruction Tuned LLM(指令調整型語言模型)。Instruction Tuned LLM是一種經過專門優化以更好地理解和執行指令的語言模型。它們通過額外的訓練和微調,針對特定任務或領域進行了特定的優化。
與Base LLM相比,Instruction Tuned LLM在特定任務上的性能和準確性更高。它們能夠更好地理解并執行給定的指令,生成更符合特定任務需求的回答。通過對模型進行精細調整和針對性訓練,Instruction Tuned LLM可以提供更加定制化和個性化的輸出。
需要注意的是,Instruction Tuned LLM通常需要更多的訓練數據和計算資源來進行優化,因此在實際應用中可能會受到一些限制。此外,對于不同的任務和領域,可能需要針對性地進行模型調整和優化。
總而言之,Base LLM是大型語言模型的基礎版本,具備廣泛的語言理解和生成能力。而 Instruction Tuned LLM是通過針對特定任務和領域進行優化的版本,能夠提供更加定制化和個性化的輸出。這兩種模型在不同的應用場景中發揮著重要的作用,并為人工智能技術的發展帶來了更多的可能性。接下來,我們以較為成熟的 ChatGPT,來講一下如何有效的向 AI 提問。
二、如何提出有效的問題 ?
How To Ask Questions The Smart Way? 向別人提問一直是一門藝術,向 AI 提問也是如此;有效的問題能夠更容易獲得你想要的答案,下面就來從語義方面簡單講一下如何向 AI 提出有效的問題。
1. 明確問題:
在向AI提問之前,要先明確自己的問題。盡量用簡潔、清晰的語言表達問題的核心。如果問題過于寬泛或含糊不清,AI可能會給出模糊或不相關的回答。下面給出幾個例子便于大家理解:
- 不明確的問題: "最近的電影有什么好看的?"
- 明確的問題: "請推薦一些最近上映的懸疑電影。"
- 不明確的問題: "如何學好外語?"
- 明確的問題: "我想學習法語,你有什么建議和資源推薦嗎?"
- 不明確的問題: "旅游的最佳時間是什么時候?"
- 明確的問題: "我計劃去巴黎旅游,你能告訴我巴黎的最佳旅游季節嗎?"
通過將問題具體化和明確化,AI可以更好地理解您的需求并給出更有針對性的回答。確切的問題有助于AI系統準確定位并提供您真正需要的信息,從而提高對話的效果和滿意度。
2. 簡明扼要:
AI 喜歡簡潔明了的問題。避免冗長的描述和復雜的句子結構。用簡單直接的語言表達問題,可以提高AI理解問題的準確性。例如,
- 冗長的問題: "我在這個城市有一個會議,我需要一個在市中心附近、價格適中的酒店,帶有免費早餐和免費停車場的。你能推薦一些嗎?"
- 簡明的問題: "請推薦一個價格適中、位于市中心的酒店,帶免費早餐和免費停車場。"
- 冗長的問題: "我對新聞感興趣,尤其是科技和娛樂方面的新聞。你有什么推薦的新聞源嗎?"
- 簡明的問題: "請推薦一些科技和娛樂新聞源。"
- 冗長的問題: "我在學習編程,我想知道最好的在線編程課程是什么,哪個平臺有最好的編程教學資源?"
- 簡明的問題: "請推薦一些在線編程課程和優質的編程教學平臺。"
通過使用簡潔明了的語言,您可以讓問題更易于理解和處理。這有助于AI系統更好地捕捉到您問題的核心,提供更相關和準確的回答。避免過多的細節和復雜的句子結構,有助于提高交流的效率和準確性,使您與AI的對話更加流暢和順利。
3. 避免二義性:
確保您的問題不會引起歧義或模棱兩可的回答。AI可能會根據您的問題字面意思進行回答,而忽略其中的潛在含義。如果您的問題有多種解釋,請提供更多上下文信息以避免混淆。下面是一些例子:
- 二義性問題: "請告訴我有關蘋果的信息。"
- 避免二義性: "我對蘋果公司感興趣,你能提供一些關于其歷史和產品的信息嗎?"
- 二義性問題: "這部電影好看嗎?"
- 避免二義性: "你個人認為這部電影是否值得觀看?"
- 二義性問題: "明天的天氣怎么樣?"
- 避免二義性: "請告訴我明天早上8點在紐約的天氣預報。"
在避免二義性問題時,需要提供足夠的上下文或具體細節,以確保AI能夠正確理解您的意圖。通過明確指定對象、時間、地點等關鍵信息,可以避免不必要的歧義和混淆。盡量將問題的背景和條件清晰地傳達給AI,以便它能夠提供更準確和有針對性的回答。
記住,AI系統是基于輸入的信息來進行處理和生成回答的,所以提供清晰明了的問題有助于AI準確地理解您的意圖,從而提供更好的回答和幫助。
4. 避免絕對化的問題:
AI通常不能提供關于絕對真理的回答。避免使用諸如“永遠”、“最好的”或“最適合”的絕對化詞匯。相反,盡量以更加客觀和相對的方式提問,以便AI可以給出更有用的答案。
避免絕對化問題是確保與AI交流準確性的關鍵,以下是一些舉例來說明如何避免絕對化問題:
- 絕對化問題: "哪個城市是全球最美麗的城市?"
- 避免絕對化: "你能推薦一些風景優美的城市嗎?"
- 絕對化問題: "什么是最有效的減肥方法?"
- 避免絕對化: "你有一些建議來幫助我減肥嗎?"
避免使用諸如"最好的"、"最適合"、"永遠"等絕對化的詞匯,因為AI通常無法給出關于絕對真理的回答。相反,通過使用相對性的表達方式,可以讓AI提供更具有客觀性和實用性的答案。詢問用戶個人意見、建議或提供一些可選項和不同的觀點,可以幫助AI給出更靈活和有用的回答。
5. 利用引導詞:
在提問時,可以使用一些引導詞來指導AI的回答。例如,使用“如何”、“為什么”、“哪個”等引導詞可以引導AI提供更詳細和有針對性的回答。這樣可以幫助您更好地理解問題的背景和答案的原因。
利用引導詞可以幫助您引導AI的回答,使其更加詳細和有針對性。以下是一些舉例來說明如何利用引導詞:
- 引導詞:"如何"
- 問題:"如何學習一門新的編程語言?"
- 這個引導詞可以引導AI提供關于學習編程語言的步驟、資源或技巧的回答。
- 引導詞:"為什么"
- 問題:"為什么鍛煉對身體健康很重要?"
- 這個引導詞可以引導AI解釋鍛煉對身體健康的益處、影響或科學原理。
- 引導詞:"哪個"
- 問題:"在紐約市,哪個博物館是最受歡迎的?"
- 這個引導詞可以引導AI提供關于紐約市最受歡迎博物館的信息和評價。
通過使用不同的引導詞,您可以調整問題的語氣和期望的回答類型。這些引導詞可以指示AI提供指導、解釋、推薦或比較的回答,以滿足您的具體需求和意圖。根據您的問題,選擇適當的引導詞可以幫助AI更好地理解您的問題,并提供更加有針對性和詳細的回答。
需要注意的是,引導詞只是一種提示方式,AI仍然根據其訓練和模型來生成回答,所以結果可能因模型的理解和數據限制而有所差異。
6. 檢查語法和拼寫:
在與AI對話之前,檢查您的問題的語法和拼寫錯誤。雖然AI可以理解一些錯誤拼寫或語法錯誤,但確保問題清晰、準確無誤可以提高回答的質量和效果。
7. 追問細節:
有時候AI可能無法準確理解您的問題或需求。如果您得到的
ChatGPT 回答不完全符合您的期望,可以追問一些細節來進一步澄清。通過進一步的對話和交流,您可以與AI建立更好的理解和溝通,從而得到更準確的回答。以下是一些進行追問細節的例子:
- 原始問題: "我正在計劃去旅行,你有什么建議?"
- 回答: "您可以考慮去歐洲或亞洲旅行。"
- 追問: "對于歐洲和亞洲,你能給我一些具體的目的地建議嗎?"
- 原始問題: "我想買一本好書,有什么推薦的嗎?"
- 回答: "您可以試試《1984》或《人類簡史》。"
- 追問: "這兩本書的主題是什么?"
- 原始問題: "我需要一份健康的早餐食譜。"
- 回答: "您可以嘗試燕麥片和水果的組合。"
- 追問: "你還有其他關于健康早餐的建議嗎?"
通過追問細節,您可以向AI提供更具體和詳細的信息需求,以獲取更加準確和個性化的回答。這樣可以幫助AI更好地理解您的意圖,并提供更符合您具體需求的建議或答案。
需要注意的是,AI的回答可能基于其訓練數據和模型的限制,可能無法滿足所有細節要求。在進行追問細節時,要根據AI的回答和能力來判斷何時需要進一步追問或調整問題,以使對話更加有意義和有用。
三、如何將提問的內容進行應用?
最近,300 + ChatGPT Prompts 火遍全網,通過這些總結后的提示詞,我們能更方便的獲取自己想要的內容,并將其用到應用開發上。在這之前,我們先來講述一下如何使用 Python 進行 ChatGPT 相關內容的開發。
- 英文版 ChatGPT Prompts:https://github.com/f/awesome-chatgpt-prompts
- 中文版 ChatGPT Prompts:https://github.com/PlexPt/awesome-chatgpt-prompts-zh
1. API 的基本使用
首先,我們要先使用 pip 下載 openai 組件,之后創建一個 Python 文件:
配置部分只需要兩句話,首先導入 openai 包,然后配置 openai 的 api_key,我這里不方便展示 api_key,所以把 api_key 配置到環境變量再通過 os 獲取。
import openai # 導入 openai 包
import os
from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv())
openai.api_key = os.getenv('CHATGPT_KEY') # 配置 openai 的 api_key
接下來是一個函數,用來向 openai 請求數據,復制即可
def get_completion(prompt, model="gpt-3.5-turbo"):
messages = [{"role": "user", "content": prompt}]
response = openai.ChatCompletion.create(
model = model,
messages = messages,
temperature = 0,
)
return response.choices[0].message["content"]
完成上述的操作后,便可以開始接下來的內容。
2. 格式化輸出 ?
眾所周知,ChatGPT 可以編寫代碼;ChatGPT 可以做的更多,只要進行合適的提問,ChatGPT 可以幫你輸出 JSON、HTML、表格等等內容。下面舉個例子來演示一下:
下面是我編寫的一段 Prompt,通過這個 Prompt 可以生成 JSON 格式的數據
prompt = f"""
生成一個列表,其中包含三個虛構的書名以及它們的作者和類型。
以JSON格式提供以下鍵:
Book_id,Book_name,author,genre。
"""
response = get_completion(prompt)
print(response)
可以看到,ChatGPT 將數據以 JSON 格式展示了出來;接下來,改變關鍵詞,分別修改成了以 HTML 、表格以及 SQL 的形式獲得數據,結果如下:
HTML 格式:
表格 格式 :
SQL 語句 :
3. 角色扮演 ?
角色扮演?相信大家在童年時都玩過吧,不知道大家以前是扮演老師、奧特曼還是喜羊羊。而細看 300 + ChatGPT Prompts ,其實就是一個角色扮演的過程,這些 Prompts 的前幾句都是 “ I want you to act as ... ”(我想讓你扮演...),而使用角色扮演的方式來進行 ChatGPT 的提問可以更好的代入情景,獲得更好的回答結果。
值得注意的是,ChatGPT 雖然可以扮演很多東西,但還是盡量扮演許多更加有用且廣為人知的職業或者東西,比如老師、花店老板、智能助理等等,而不是一些過于具體的動漫人物或者是一些過于抽象的人物,因為在訓練模型時,可能會將動漫人物的名稱當作一個詞,而不是當作一個名字進行訓練。
4. (應用) 十詞成文助記單詞
作為一個學生,我經常會有背單詞的需求,然而市面上大多的背單詞軟件僅有拼寫、選詞等背單詞方法,功能單一,且使用這些功能很難記住單詞;因此不少背單詞軟件開始訓練模型來實現選詞成文的功能,使大家更容易記住單詞。但這些記單詞軟件所生成的文章會有邏輯錯誤,背誦時會很拗口,所以就會想到使用 ChatGPT 來實現該功能。
這里我先存儲了 10 個單詞,并在 prompt 中限制了生成單詞的數量,在應用開發過程中你還可以加入更多豐富的東西,比如生成文章的風格(科幻、古風、穿越等等),生成文章的題材(詩歌、小說、議論、散文等等),以此來提供更多選項來給客戶更豐富的體驗。下面是代碼以及輸出結果:
代碼:
words = ['apple', 'person', 'wind', 'history', 'author', 'boil', 'science', 'hunger', 'fiction', 'fantasy']
prompt = f"""
使用十個單詞生成一段話,字數在100詞以內。
十個單詞如下:
'''{words}'''
"""
response = get_completion(prompt)
print(response)
結果:
The author wrote a fiction book about a person who loved apples. The story was set in a world where the wind never stopped blowing, causing hunger and hardship for the people. The protagonist, who was a scientist, discovered a way to boil the wind and turn it into energy. This discovery changed the course of history and brought prosperity to the land. However, the author also introduced a fantasy element to the story, where magical apples grew on trees that could cure any ailment. The person in the story embarked on a quest to find these apples and save their loved ones.
(翻譯后:作者寫了一本關于一個愛吃蘋果的人的小說。故事發生在一個風不停刮的世界里,給人們帶來了饑餓和困苦。主人公是一位科學家,他發現了一種將風煮沸并將其轉化為能量的方法。這一發現改變了歷史的進程,給這片土地帶來了繁榮。然而,作者也在故事中引入了幻想元素,在那里,樹上長著神奇的蘋果,可以治療任何疾病。故事中的人開始尋找這些蘋果,拯救他們所愛的人。)
5. (應用) AI 腦圖生成器(Chat MindMap)
思維腦圖,在大家整理閱讀資料,梳理腦海中的內容的時候總是會用到,也算是日常學習科研生活中必不可少的一項工具。當文本字數較多時,整理腦圖可能是一件非常麻煩的事,比如我這樣懶的人可能會想著有一個提前生成好的腦圖,我只需要在上面簡單修改;或者 AI 直接生成一份腦圖,而我只需按照腦圖整理知識內容。
下面是關于 AI 腦圖生成器的簡單講述。
text 是我所描述的一串文本,而接下來的過程,通過我所描述的一段 prompt,ChatGPT 將分析我所描述的 text 文本,并將其轉換成 OPML 文件適用的 XML 語言
# 文本轉化為 OPML 語言
text = '我的手里有三種物品。一種是水果,可能是蘋果、香蕉、梨子;一種是蔬菜,可能是胡蘿卜、青菜、土豆;一種是零食,可能是辣條、薯片、可樂。請分析我手里的三種物品是什么。'
prompt = f"""
You are a smart mind map software in OPML format, which analyzes text and convert text into OPML language. \\
The text after analyzed should be detailed, and divide the text into as many branches as possible; Then you could start to convert text into OPML language.\\
OPML language after converted should have ?xml version="1.0" encoding="UTF-8"?,
response = get_completion(prompt)
print(response)
根據我所描述的文本生成的 opml 代碼如下,
<opml version="1.0">
<head>
<title>我的手里有三種物品<span class="hljs-name"title>
<span class="hljs-name"head>
<body>
<outline text="我的手里有三種物品">
<outline text="一種是水果">
<outline text="可能是蘋果"/>
<outline text="可能是香蕉"/>
<outline text="可能是梨子"/>
<span class="hljs-name"outline>
<outline text="一種是蔬菜">
<outline text="可能是胡蘿卜"/>
<outline text="可能是青菜"/>
<outline text="可能是土豆"/>
<span class="hljs-name"outline>
<outline text="一種是零食">
<outline text="可能是辣條"/>
<outline text="可能是薯片"/>
<outline text="可能是可樂"/>
<span class="hljs-name"outline>
<span class="hljs-name"outline>
<span class="hljs-name"body>
<span class="hljs-name"opml>
緊接著,將 response 寫入到新創建的 opml 類型的中,寫入完成后使用幕布、MindManager 等能可以導入 OPML 的思維腦圖軟件導入你所創建完成的 OPML 腦圖文件即可看到 AI 生成的腦圖。
# 將內容寫入 opml 文件
f = open(r'F:\\test.opml','w', encoding='utf-8')
f.write(response)
f.close()
使用 MindManager 導入后的思維腦圖如下:
當然,如果你真的想要完成一個獨立的 AI 腦圖生成器(Chat MindMap),你可能需要實現一個獨立的 OPML 腦圖軟件,或者嘗試使用兼容 markdown 或其它開源輕量腦圖組件來完成自己獨立的項目。
四、總結
向AI提問是一個互動的過程,通過不斷的實踐和探索,我們可以進一步優化和改進我們的提問技巧,使得與AI的對話更加流暢和有益,構建更多豐富的應用程序。
希望本文的技巧和指導能夠對您在與ChatGPT和其他大語言模型進行對話時有所幫助,讓您能夠更好地利用AI技術解決問題和獲取信息。
審核編輯:湯梓紅
-
AI
+關注
關注
87文章
30239瀏覽量
268481 -
人工智能
+關注
關注
1791文章
46896瀏覽量
237672 -
ChatGPT
+關注
關注
29文章
1549瀏覽量
7509
發布評論請先 登錄
相關推薦
評論