如何有效的向 AI 提問 ?

image.png

〇、導言

隨著人工智能技術(shù)的迅猛發(fā)展,大語言模型(LLM)以微軟 OpenAI 為代表,初次問世,為新一次的 AI 革命打響了第一槍。在短短的幾個月內(nèi),GPT-3.5 和 GPT-4 的加持下,New Bing、Copilot、Cursor 等產(chǎn)品也相繼問世,推動了產(chǎn)品開發(fā)的新思路。國內(nèi)廠商也緊隨其后,百度文心一言、華為盤古大模型、阿里通義千問、訊飛星火認知大模型相繼發(fā)布。

我們現(xiàn)在可以通過與 AI 進行對話來獲取各種信息和解決問題。但想要獲得更準確、有用的回答,我們需要掌握如何向 AI 提問的技巧和方法。本文將探討一些技巧,幫助您在與 ChatGPT 和其他類 ChatGPT 的大語言模型對話時更加有效且高效。


一、Base LLM 與 Instruction Tuned LLM

在開始之前,我覺得獲取有必要向大家講解一個關(guān)于 Base LLM(基礎(chǔ)大語言模型)與 Instruction Tuned LLM(指令調(diào)整型大語言模型)的知識點,來幫助大家更好地了解大家更好了解之后的內(nèi)容。如果你對 Base LLM 與 Instruction Tuned LLM 有一定的了解,可以跳過這部分來加速閱讀完這篇文章。

Base LLM(Base Language Model)是指大型語言模型的基礎(chǔ)版本。這些模型具有廣泛的語言理解和生成能力,能夠生成連貫、有邏輯的文本回答,并在部分任務和應用中展現(xiàn)出強大的表現(xiàn);最常見的應用就是文章續(xù)寫,大家可能見過的應用比如早期 github 上的狗屁不通生成器、夸克瀏覽器中的 AI 作文靈感生成器、不少人喜歡拿來寫文案的秘塔寫作貓。

image.png

然而,盡管Base LLM在很多方面表現(xiàn)出色,它們?nèi)匀淮嬖谝恍┚窒扌?。比如訓練?shù)據(jù)大多都是來自于互聯(lián)網(wǎng),社交平臺等易于獲取的數(shù)據(jù),Base LLM可能會在某些情況下給出不準確或不合適的回答。此外,它們在理解特定領(lǐng)域或任務相關(guān)指令時的表現(xiàn)也相對較弱;比如我要詢問 “安徽有哪些好玩的地方?”,根據(jù)所訓練的網(wǎng)絡(luò)數(shù)據(jù)的不同,Base LLM 生成的內(nèi)容可能會有 Answer 1 與 Answer 2 以下兩種結(jié)果:

  • Answer 1,像是一些旅游推薦,搜索推薦所產(chǎn)生的的文本,不是特別符合我們的預期;
  • Answer 2,像是出自一些旅游文章或者博客,比較符合我們的預期。
image.png

Base LLM 在生成內(nèi)容時,可能被一些不確定的數(shù)據(jù)所污染,導致產(chǎn)生的結(jié)果并不是我們所預期的結(jié)果。為了克服這些限制,研究人員提出了Instruction Tuned LLM(指令調(diào)整型語言模型)。Instruction Tuned LLM是一種經(jīng)過專門優(yōu)化以更好地理解和執(zhí)行指令的語言模型。它們通過額外的訓練和微調(diào),針對特定任務或領(lǐng)域進行了特定的優(yōu)化。

與Base LLM相比,Instruction Tuned LLM在特定任務上的性能和準確性更高。它們能夠更好地理解并執(zhí)行給定的指令,生成更符合特定任務需求的回答。通過對模型進行精細調(diào)整和針對性訓練,Instruction Tuned LLM可以提供更加定制化和個性化的輸出。

需要注意的是,Instruction Tuned LLM通常需要更多的訓練數(shù)據(jù)和計算資源來進行優(yōu)化,因此在實際應用中可能會受到一些限制。此外,對于不同的任務和領(lǐng)域,可能需要針對性地進行模型調(diào)整和優(yōu)化。

總而言之,Base LLM是大型語言模型的基礎(chǔ)版本,具備廣泛的語言理解和生成能力。而 Instruction Tuned LLM是通過針對特定任務和領(lǐng)域進行優(yōu)化的版本,能夠提供更加定制化和個性化的輸出。這兩種模型在不同的應用場景中發(fā)揮著重要的作用,并為人工智能技術(shù)的發(fā)展帶來了更多的可能性。接下來,我們以較為成熟的 ChatGPT,來講一下如何有效的向 AI 提問。

二、如何提出有效的問題 ?

How To Ask Questions The Smart Way? 向別人提問一直是一門藝術(shù),向 AI 提問也是如此;有效的問題能夠更容易獲得你想要的答案,下面就來從語義方面簡單講一下如何向 AI 提出有效的問題。

1. 明確問題:

在向AI提問之前,要先明確自己的問題。盡量用簡潔、清晰的語言表達問題的核心。如果問題過于寬泛或含糊不清,AI可能會給出模糊或不相關(guān)的回答。下面給出幾個例子便于大家理解:

  • 不明確的問題: "最近的電影有什么好看的?"
  • 明確的問題: "請推薦一些最近上映的懸疑電影。"
  • 不明確的問題: "如何學好外語?"
  • 明確的問題: "我想學習法語,你有什么建議和資源推薦嗎?"
  • 不明確的問題: "旅游的最佳時間是什么時候?"
  • 明確的問題: "我計劃去巴黎旅游,你能告訴我巴黎的最佳旅游季節(jié)嗎?"

通過將問題具體化和明確化,AI可以更好地理解您的需求并給出更有針對性的回答。確切的問題有助于AI系統(tǒng)準確定位并提供您真正需要的信息,從而提高對話的效果和滿意度。

2. 簡明扼要:

AI 喜歡簡潔明了的問題。避免冗長的描述和復雜的句子結(jié)構(gòu)。用簡單直接的語言表達問題,可以提高AI理解問題的準確性。例如,

  • 冗長的問題: "我在這個城市有一個會議,我需要一個在市中心附近、價格適中的酒店,帶有免費早餐和免費停車場的。你能推薦一些嗎?"
  • 簡明的問題: "請推薦一個價格適中、位于市中心的酒店,帶免費早餐和免費停車場。"
  • 冗長的問題: "我對新聞感興趣,尤其是科技和娛樂方面的新聞。你有什么推薦的新聞源嗎?"
  • 簡明的問題: "請推薦一些科技和娛樂新聞源。"
  • 冗長的問題: "我在學習編程,我想知道最好的在線編程課程是什么,哪個平臺有最好的編程教學資源?"
  • 簡明的問題: "請推薦一些在線編程課程和優(yōu)質(zhì)的編程教學平臺。"

通過使用簡潔明了的語言,您可以讓問題更易于理解和處理。這有助于AI系統(tǒng)更好地捕捉到您問題的核心,提供更相關(guān)和準確的回答。避免過多的細節(jié)和復雜的句子結(jié)構(gòu),有助于提高交流的效率和準確性,使您與AI的對話更加流暢和順利。

3. 避免二義性:

確保您的問題不會引起歧義或模棱兩可的回答。AI可能會根據(jù)您的問題字面意思進行回答,而忽略其中的潛在含義。如果您的問題有多種解釋,請?zhí)峁└嗌舷挛男畔⒁员苊饣煜?。下面是一些例子?/p>

  • 二義性問題: "請告訴我有關(guān)蘋果的信息。"
  • 避免二義性: "我對蘋果公司感興趣,你能提供一些關(guān)于其歷史和產(chǎn)品的信息嗎?"
  • 二義性問題: "這部電影好看嗎?"
  • 避免二義性: "你個人認為這部電影是否值得觀看?"
  • 二義性問題: "明天的天氣怎么樣?"
  • 避免二義性: "請告訴我明天早上8點在紐約的天氣預報。"

在避免二義性問題時,需要提供足夠的上下文或具體細節(jié),以確保AI能夠正確理解您的意圖。通過明確指定對象、時間、地點等關(guān)鍵信息,可以避免不必要的歧義和混淆。盡量將問題的背景和條件清晰地傳達給AI,以便它能夠提供更準確和有針對性的回答。

記住,AI系統(tǒng)是基于輸入的信息來進行處理和生成回答的,所以提供清晰明了的問題有助于AI準確地理解您的意圖,從而提供更好的回答和幫助。

4. 避免絕對化的問題:

AI通常不能提供關(guān)于絕對真理的回答。避免使用諸如“永遠”、“最好的”或“最適合”的絕對化詞匯。相反,盡量以更加客觀和相對的方式提問,以便AI可以給出更有用的答案。

避免絕對化問題是確保與AI交流準確性的關(guān)鍵,以下是一些舉例來說明如何避免絕對化問題:

  • 絕對化問題: "什么是世界上最好的手機?"
  • 避免絕對化: "請介紹一些當前市場上受歡迎的手機品牌和型號。"
  • 絕對化問題: "哪個城市是全球最美麗的城市?"
  • 避免絕對化: "你能推薦一些風景優(yōu)美的城市嗎?"
  • 絕對化問題: "什么是最有效的減肥方法?"
  • 避免絕對化: "你有一些建議來幫助我減肥嗎?"

避免使用諸如"最好的"、"最適合"、"永遠"等絕對化的詞匯,因為AI通常無法給出關(guān)于絕對真理的回答。相反,通過使用相對性的表達方式,可以讓AI提供更具有客觀性和實用性的答案。詢問用戶個人意見、建議或提供一些可選項和不同的觀點,可以幫助AI給出更靈活和有用的回答。

5. 利用引導詞:

在提問時,可以使用一些引導詞來指導AI的回答。例如,使用“如何”、“為什么”、“哪個”等引導詞可以引導AI提供更詳細和有針對性的回答。這樣可以幫助您更好地理解問題的背景和答案的原因。

利用引導詞可以幫助您引導AI的回答,使其更加詳細和有針對性。以下是一些舉例來說明如何利用引導詞:

  • 引導詞:"如何"
  • 問題:"如何學習一門新的編程語言?"
  • 這個引導詞可以引導AI提供關(guān)于學習編程語言的步驟、資源或技巧的回答。
  • 引導詞:"為什么"
  • 問題:"為什么鍛煉對身體健康很重要?"
  • 這個引導詞可以引導AI解釋鍛煉對身體健康的益處、影響或科學原理。
  • 引導詞:"哪個"
  • 問題:"在紐約市,哪個博物館是最受歡迎的?"
  • 這個引導詞可以引導AI提供關(guān)于紐約市最受歡迎博物館的信息和評價。

通過使用不同的引導詞,您可以調(diào)整問題的語氣和期望的回答類型。這些引導詞可以指示AI提供指導、解釋、推薦或比較的回答,以滿足您的具體需求和意圖。根據(jù)您的問題,選擇適當?shù)囊龑г~可以幫助AI更好地理解您的問題,并提供更加有針對性和詳細的回答。

需要注意的是,引導詞只是一種提示方式,AI仍然根據(jù)其訓練和模型來生成回答,所以結(jié)果可能因模型的理解和數(shù)據(jù)限制而有所差異。

6. 檢查語法和拼寫:

在與AI對話之前,檢查您的問題的語法和拼寫錯誤。雖然AI可以理解一些錯誤拼寫或語法錯誤,但確保問題清晰、準確無誤可以提高回答的質(zhì)量和效果。

7. 追問細節(jié):

有時候AI可能無法準確理解您的問題或需求。如果您得到的
ChatGPT 回答不完全符合您的期望,可以追問一些細節(jié)來進一步澄清。通過進一步的對話和交流,您可以與AI建立更好的理解和溝通,從而得到更準確的回答。以下是一些進行追問細節(jié)的例子:

  • 原始問題: "我正在計劃去旅行,你有什么建議?"
  • 回答: "您可以考慮去歐洲或亞洲旅行。"
  • 追問: "對于歐洲和亞洲,你能給我一些具體的目的地建議嗎?"
  • 原始問題: "我想買一本好書,有什么推薦的嗎?"
  • 回答: "您可以試試《1984》或《人類簡史》。"
  • 追問: "這兩本書的主題是什么?"
  • 原始問題: "我需要一份健康的早餐食譜。"
  • 回答: "您可以嘗試燕麥片和水果的組合。"
  • 追問: "你還有其他關(guān)于健康早餐的建議嗎?"

通過追問細節(jié),您可以向AI提供更具體和詳細的信息需求,以獲取更加準確和個性化的回答。這樣可以幫助AI更好地理解您的意圖,并提供更符合您具體需求的建議或答案。

需要注意的是,AI的回答可能基于其訓練數(shù)據(jù)和模型的限制,可能無法滿足所有細節(jié)要求。在進行追問細節(jié)時,要根據(jù)AI的回答和能力來判斷何時需要進一步追問或調(diào)整問題,以使對話更加有意義和有用。

三、如何將提問的內(nèi)容進行應用?

最近,300 + ChatGPT Prompts 火遍全網(wǎng),通過這些總結(jié)后的提示詞,我們能更方便的獲取自己想要的內(nèi)容,并將其用到應用開發(fā)上。在這之前,我們先來講述一下如何使用 Python 進行 ChatGPT 相關(guān)內(nèi)容的開發(fā)。

1. API 的基本使用

首先,我們要先使用 pip 下載 openai 組件,之后創(chuàng)建一個 Python 文件:

配置部分只需要兩句話,首先導入 openai 包,然后配置 openai 的 api_key,我這里不方便展示 api_key,所以把 api_key 配置到環(huán)境變量再通過 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 

接下來是一個函數(shù),用來向 openai 請求數(shù)據(jù),復制即可

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"]

完成上述的操作后,便可以開始接下來的內(nèi)容。

2. 格式化輸出 ?

眾所周知,ChatGPT 可以編寫代碼;ChatGPT 可以做的更多,只要進行合適的提問,ChatGPT 可以幫你輸出 JSON、HTML、表格等等內(nèi)容。下面舉個例子來演示一下:

下面是我編寫的一段 Prompt,通過這個 Prompt 可以生成 JSON 格式的數(shù)據(jù)

prompt = f"""
生成一個列表,其中包含三個虛構(gòu)的書名以及它們的作者和類型。

以JSON格式提供以下鍵:
Book_id,Book_name,author,genre。
"""

response = get_completion(prompt)
print(response)
image.png

可以看到,ChatGPT 將數(shù)據(jù)以 JSON 格式展示了出來;接下來,改變關(guān)鍵詞,分別修改成了以 HTML 、表格以及 SQL 的形式獲得數(shù)據(jù),結(jié)果如下:

HTML 格式:

image.png

表格 格式

image.png

SQL 語句

image.png

3. 角色扮演 ?

角色扮演?相信大家在童年時都玩過吧,不知道大家以前是扮演老師、奧特曼還是喜羊羊。而細看 300 + ChatGPT Prompts,其實就是一個角色扮演的過程,這些 Prompts 的前幾句都是 “I want you to act as ...”(我想讓你扮演...),而使用角色扮演的方式來進行 ChatGPT 的提問可以更好的代入情景,獲得更好的回答結(jié)果。

image.png

值得注意的是,ChatGPT 雖然可以扮演很多東西,但還是盡量扮演許多更加有用且廣為人知的職業(yè)或者東西,比如老師、花店老板、智能助理等等,而不是一些過于具體的動漫人物或者是一些過于抽象的人物,因為在訓練模型時,可能會將動漫人物的名稱當作一個詞,而不是當作一個名字進行訓練。

4. (應用) 十詞成文助記單詞

作為一個學生,我經(jīng)常會有背單詞的需求,然而市面上大多的背單詞軟件僅有拼寫、選詞等背單詞方法,功能單一,且使用這些功能很難記住單詞;因此不少背單詞軟件開始訓練模型來實現(xiàn)選詞成文的功能,使大家更容易記住單詞。但這些記單詞軟件所生成的文章會有邏輯錯誤,背誦時會很拗口,所以就會想到使用 ChatGPT 來實現(xiàn)該功能。


image.png

這里我先存儲了 10 個單詞,并在 prompt 中限制了生成單詞的數(shù)量,在應用開發(fā)過程中你還可以加入更多豐富的東西,比如生成文章的風格(科幻、古風、穿越等等),生成文章的題材(詩歌、小說、議論、散文等等),以此來提供更多選項來給客戶更豐富的體驗。下面是代碼以及輸出結(jié)果:

代碼:

words = ['apple', 'person', 'wind', 'history', 'author', 'boil', 'science', 'hunger', 'fiction', 'fantasy']
prompt = f"""
使用十個單詞生成一段話,字數(shù)在100詞以內(nèi)。

十個單詞如下:
'''{words}'''
"""

response = get_completion(prompt)
print(response)

結(jié)果:

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.

(翻譯后:作者寫了一本關(guān)于一個愛吃蘋果的人的小說。故事發(fā)生在一個風不停刮的世界里,給人們帶來了饑餓和困苦。主人公是一位科學家,他發(fā)現(xiàn)了一種將風煮沸并將其轉(zhuǎn)化為能量的方法。這一發(fā)現(xiàn)改變了歷史的進程,給這片土地帶來了繁榮。然而,作者也在故事中引入了幻想元素,在那里,樹上長著神奇的蘋果,可以治療任何疾病。故事中的人開始尋找這些蘋果,拯救他們所愛的人。)

5. (應用) AI 腦圖生成器(Chat MindMap)

思維腦圖,在大家整理閱讀資料,梳理腦海中的內(nèi)容的時候總是會用到,也算是日常學習科研生活中必不可少的一項工具。當文本字數(shù)較多時,整理腦圖可能是一件非常麻煩的事,比如我這樣懶的人可能會想著有一個提前生成好的腦圖,我只需要在上面簡單修改;或者 AI 直接生成一份腦圖,而我只需按照腦圖整理知識內(nèi)容。

下面是關(guān)于 AI 腦圖生成器的簡單講述。

text 是我所描述的一串文本,而接下來的過程,通過我所描述的一段 prompt,ChatGPT 將分析我所描述的 text 文本,并將其轉(zhuǎn)換成 OPML 文件適用的 XML 語言

# 文本轉(zhuǎn)化為 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"?>,<opml version="1.0">,<head>,<body>、<outline> and any other OPML label.And the outer <outline> label should be the title of converted OPML language, so the most outer <outline> should be deleted./

The text to be analyzed is as follows, please divide it into details and convert it into OPML language:
'''{text}'''
"""

response = get_completion(prompt)
print(response)

根據(jù)我所描述的文本生成的 opml 代碼如下,

<?xml version="1.0" encoding="UTF-8"?>
<opml version="1.0">
    <head>
        <title>我的手里有三種物品</title>
    </head>
    <body>
        <outline text="我的手里有三種物品">
            <outline text="一種是水果">
                <outline text="可能是蘋果"/>
                <outline text="可能是香蕉"/>
                <outline text="可能是梨子"/>
            </outline>
            <outline text="一種是蔬菜">
                <outline text="可能是胡蘿卜"/>
                <outline text="可能是青菜"/>
                <outline text="可能是土豆"/>
            </outline>
            <outline text="一種是零食">
                <outline text="可能是辣條"/>
                <outline text="可能是薯片"/>
                <outline text="可能是可樂"/>
            </outline>
        </outline>
    </body>
</opml>

緊接著,將 response 寫入到新創(chuàng)建的 opml 類型的中,寫入完成后使用幕布、MindManager 等能可以導入 OPML 的思維腦圖軟件導入你所創(chuàng)建完成的 OPML 腦圖文件即可看到 AI 生成的腦圖。

# 將內(nèi)容寫入 opml 文件
f = open(r'F:\test.opml','w', encoding='utf-8')
f.write(response)
f.close()

使用 MindManager 導入后的思維腦圖如下:

image.png

當然,如果你真的想要完成一個獨立的 AI 腦圖生成器(Chat MindMap),你可能需要實現(xiàn)一個獨立的 OPML 腦圖軟件,或者嘗試使用兼容 markdown 或其它開源輕量腦圖組件來完成自己獨立的項目。

四、總結(jié)

向AI提問是一個互動的過程,通過不斷的實踐和探索,我們可以進一步優(yōu)化和改進我們的提問技巧,使得與AI的對話更加流暢和有益,構(gòu)建更多豐富的應用程序。

希望本文的技巧和指導能夠?qū)δ谂cChatGPT和其他大語言模型進行對話時有所幫助,讓您能夠更好地利用AI技術(shù)解決問題和獲取信息。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容