chat GPT

如何更有效的與 Chat GPT 溝通

邱祈竣 2023/09/22 18:47:31
2366

 

Chat GPT是一種基於自然語言處理的人工智慧模型,特別訓練用於進行對話和文字生成任務。

它具有強大的語言理解和生成能力,能夠理解和回應各種自然語言輸入。

Chat GPT的應用非常廣泛,包括自動客服、虛擬助手、內容產生、程式幫助等。

它可以用於回答問題、產生文章、幫助解決問題,甚至參與有趣的對話。

例如對Chat GPT輸入:"假如你是李白,請幫我寫一首情詩,獻給我心愛的女孩"
那麼Chat GPT會回覆你這麼一首詩:
晨霞映彩雲,飛鳥遞芳尊。
芳心紅粉擁,情意寄君門。

蓮步踏春風,眉眸含幽魂。
楚楚傾城色,芳菲揚淑魂。

絲羅繞細腰,青衫舞麗顏。
嫣然笑蓮步,千嬌韻更妍。

愛戀如花開,世間難得見。
願與君相守,情繫此生意。

Chat GPT 的工作原理

Chat GPT 依賴語言模型技術,而這種模型並非邏輯框架,亦非生物學中的反饋系統,而是一個以數學公式構建的模型。
通過訓練過程學習語言知識,並根據提供的提示生成自然語言回應。
從本質上講, Chat GPT 的原理仍是在眾多候選中選擇概率或可能性最大的句子。
如何準確計算機率呢?
對於語言模型的參數統計並非簡單的數數,而是需要運用複雜的機器學習方法進行反復計算。
當今的 Chat GPT 語言模型所使用的訓練數據量也非常巨大,以 GPT-3 為例,使用了大約 5000 億個詞彙,相當於約 500 億個句子。


Chat GPT 的能力邊界

語言模型能做的事情分為三類:
第一類:將資訊從一種形式轉換為另一種形式,無論是語音識別還是機器翻譯。
第二類:根據要求產生文章。像回答問題、回覆信件、書寫簡單的文字。
第三類:把更多的資訊精簡為較少的資訊。


Chat GPT 的回答從哪裡來?

對於 ChatGPT 而言,除了「為什麼」和「怎麼做」之外,大多數問題都屬於簡單問題。
ChatGPT 利用語言模型回答簡單問題的方式並不僅僅是單純的一對一比對,而是根據問題提供多個可能的答案,然後按照答案的機率排序,提供最可能的答案。

當面對複雜問題時,人有三種方式來回答。
第一種情況是:你已經知道答案,直接回答。這種方法 ChatGPT 也使用。
第二種情況是:你不知道答案,但你懂得如何找到答案的知識,因此你利用你的知識推導出答案。
第三種情況是:你不知道答案,而且現有的知識也無法直接推導出答案,因此你進行研究。

那麼, Chat GPT 的答案從何而來呢?
不論是回答問題還是撰寫文章, Chat GPT 都基於對現有事實的提取、整合和歸納。
舉個例子,當我們提出一個複雜問題給 Chat GPT 時,它會搜索數十甚至數百篇可能包含答案的文章,然後從這些文章中提取出一些語句,構成可能的答案。
當然,為了使這些句子有邏輯且連貫地湊在一起,語言模型是必需的。
至於長篇文章的撰寫, Chat GPT 實際上是在模仿相似的文章,但會使用使用者提供的新資訊取代舊資訊。
無論你給它什麼樣的訓練數據,它都能根據這些數據生成相對應的文章。


如何使用 Chat GPT

理解了 Chat GPT 是如何產生答案之後,我們可以簡單歸納出他的三種能力「識別、理解、產生」。

識別:尋找,並從語句中篩選出特定的訊息;
理解:對資料加以解釋、概括和推理;
產生:基於識別和理解,產出新的資料;

例如將句子分類:

將文字分類為中性、負面或正面。
文字:我認為這次假期還可以。

例如文字篩選器:

請基於我提供的文字,分析文字的內容,如果文字主題與 AI 倫理相關,請為我保留下來,並輸出 100 字左右的簡單概述。我希望你能將所有保留的文字梳理成一篇簡報,並基於保留的文字輸出 200 字左右的綜述。

例如程式產生器:

你現在是一個 python 專家,我有一段程式碼,我預期這段程式碼可以判斷一個字串是不是制式回復,只是它通過不了 aacdeedcc 這個測試案例。請幫我找出我哪裡寫錯了,以及用正確的方式改寫。 [附上程式碼]

什麼是 prompt 

"Prompt" 是指用於啟動 ChatGPT 或其他自然語言處理模型的指令或問題。它是一個短語、一個句子或一段文字,通常包含一些上下文和指導,用來引導模型生成特定類型的回應。

如何使用 prompt

明確、具體的指令

在編輯指令時,一不小心就會陷入在指令中泛泛而談。
例如:「請為我寫一首詩」,這會讓模型不知道詩的風格、也不知道詩的字數。
若是改為:「請為我產生一首李白風格的七言絕句」,就會具體許多。

越是「明確、具體」的要求就越能得到精準的答案。

層次分明的格式

prompt 的輸入格式是有層次的。不同的內容類型最好以符號分區。
符號可以是任意的類型,核心原則是將不同的內容進入區分。
例如:I want you to act as an English translator, spelling corrector and improver. My first sentence is “不要懷疑!我就是專家”

特定的思考邏輯

模型在執行時也有自己的思考邏輯,當輸入某些複雜問題時,模型因為效率優先常會輸出貌似正確,實則荒唐的答案。
為了避免此類情況出現,在撰寫 prompt 時可以要求模型按照特定方式進行思考。
有兩種方法可以「框定」模型的思考邏輯,分別是案例法及框架法。

案例法:

在要求模型輸出結果之前,先為模型提供範例參考讓其學習。

框架法:

直接要求模型根據特定的模式進行思考。例如,要求模型根據指定的步驟進行思考。
框架法又可為兩種:

一致性思考:

當要求模型處理複雜問題時,要求模型從多個角度進行思考並最終以多數同意的方式給出答案;

ReAct框架

要求模型在輸出答案前先思考,接著再基於思考行動,通過行動得出結果後,呈現行動結果的答案。

輸出格式的要求

輸出格式可以包含兩種要求:內容要求及格式要求。

內容要求:要求輸出內容包含關鍵字。
格式要求:指定輸出的結果以表格、程式、 Markdown 等格式輸出,或是指定回答以特定文字格式回覆。

例外狀況的處理

要求模型檢查使用者提供的資訊,並確保資訊的完整性足以讓任務完成。
當執行途中遭遇異常時,能暫停產生資料並報錯。


範例

我們可以建立一個簡單的範例,讓 Chat GPT 幫我們釐清思緒。

例如對 Chat GPT 輸入:

你是一個流程圖專家,幫我繪製一個業務流程圖。
用途是食品外送的app,從點餐到外送的經過,需要包含使用者、系統管理、支付系統、商家、外送人員,並用markdown表示

Chat GPT會產生下方回答:

當然!以下是使用 Markdown 表示的食品外送 App 的業務流程圖:

```mermaid
graph LR
A[使用者] --> B[點餐]
B --> C[選擇外送地址]
C --> D[提交訂單]
D --> E[等待商家接單]
E --> F[商家接單]
F --> G[準備食物]
G --> H[完成食物準備]
H --> I[通知外送人員]
I --> J[外送人員接單]
J --> K[外送人員取餐]
K --> L[外送中]
L --> M[外送完成]
M --> N[使用者收到外送]
N --> O[支付]
O --> P[完成支付]
P --> Q[結束]

subgraph 系統管理
S[接收訂單] --> F
T[通知外送人員] --> I
end

subgraph 支付系統
O --> P
end

subgraph 商家
F --> G
end

subgraph 外送人員
J --> K
K --> L
end

```

這個業務流程圖涵蓋了食品外送 App 的點餐到外送的過程。使用者進行點餐,選擇外送地址,提交訂單後,等待商家接單。商家接單後,開始準備食物並通知外送人員。外送人員接單後,前往商家取餐,進行外送,直到外送完成。使用者收到外送後,進行支付,完成支付後結束流程。

系統管理部分負責接收訂單並通知外送人員。支付系統處理支付流程。商家負責接單並準備食物。外送人員接單後取餐並進行外送。

你可以將上述程式碼複製到 Markdown 編輯器中以正確顯示業務流程圖。希望這對你有所幫助!如有其他問題,請隨時提出。


將答案貼至支援 Mermaid 語法的 Markdown 編輯器後,可以取得如下的結果


 

總之,ChatGPT是一個靈活且多才多藝的語言模型,為我們的生活帶來了許多有趣和實用的應用機會。

為了實際體驗此工具的效果,本文標題、簡介及部分內容是與 Chat GPT 討論後產出。


參考:
Prompt Engineering Guide
deeplearning.ai
learnprompting
Azure Cognitive Services 
AI 时代的炼金术:Prompt 完全食用指南

邱祈竣