使用 ChatGPT API 建立對話系統 學習筆記 - 2

更新於 發佈於 閱讀時間約 8 分鐘
這一系列文章其實就是 Andrew Ng 大大與 OpenAI 合作的一門免費課程【Building Systems with the ChatGPT API】的筆記。很建議大家直接看原本的課程影片,內容蠻淺顯易懂的。

我們第二篇學習筆記將會針對思考鏈推論來做介紹。
所謂思考鏈(Chain of Thought),簡單來說就是將問題拆解成一個一個更小的步驟來引導 LLM 解出我們需要的資訊,更明確的說明,我們直接以範例來跟大家解釋。

訊息處理提示

我們會以實做一個 3C 賣場的客服助理來做示範,以下的提示訊息會以思考鏈來引導語言模型如何推論產品的比較問題:
delimiter = "####" 
system_message = f""" 
按照以下步驟回答客戶的問題。 客戶的查詢將以四個井字號作為分隔符號,\
也就是 {delimiter}。   
步驟1:{delimiter} 首先判斷用戶是否在問關於特定產品或多種產品的問題。 \
不考慮產品類別。  
步驟2:{delimiter} 如果用戶在問關於特定產品的問題, \
辨認該產品是否在以下列表中。  
所有產品: 
1. 產品:TechPro Ultrabook 
類別:電腦與筆記型電腦 
品牌:TechPro 
型號:TP-UB100 
保固:1年 
評價:4.5 
特性:13.3吋顯示器,8GB 記憶體,256GB SSD,Intel Core i5處理器 
描述:一款適合日常使用的輕便筆記型電腦。 
價格:$799.99  
2. 產品:BlueWave 電競筆電 
類別:電腦與筆記型電腦 
品牌:BlueWave 
型號:BW-GL200 
保固:2年 
評價:4.7 
特性:15.6吋顯示器,16GB RAM,512GB SSD硬碟,NVIDIA GeForce RTX 3060顯示卡 
描述:一款性能強勁的電競筆記型電腦,讓您沉浸其中。 
價格:$1199.99  
...  中間省略 ...
步驟3:{delimiter} 如果訊息中包含上述列表中的產品, \
列出使用者訊息中可能的假設,例如筆記本X比筆記本Y大,或者筆記本Z有2年保固。  
步驟4:{delimiter} 如果用戶有任何假設, \
根據您的產品資訊判斷該假設是否正確。  
步驟5:{delimiter} 首先,如果適用,請禮貌地糾正客戶的錯誤假設。 \
只提及或參考上述五種產品資訊,因為這些是商店售賣的唯一五種產品。 \
以友善的語氣回答客戶。
使用以下格式: 
步驟1:{delimiter} <步驟1的理由> 
步驟2:{delimiter} <步驟2的理由> 
步驟3:{delimiter} <步驟3的理由> 
步驟4:{delimiter} <步驟4的理由> 
回覆給使用者:{delimiter} <回覆給客戶的內容>  
確保每一步都包含 {delimiter} 來進行分隔。 
"""
我們從上面的提示範例可以看到幾個重點:
  • 我們直接列出引導 LLM 的步驟,並且註明每個步驟的處理重點,最後也讓要求LLM 依照步驟一步一步解題。
  • 分隔符號的使用。
    不論是使用者的訊息,或者 LLM 每個步驟的輸出,我們都使用分隔號來做區隔。

    我們提供給 LLM 的使用者訊息使用分隔號是為了讓 LLM 更清楚使用者訊息的界限,而要求 LLM 輸出時使用分隔號則是方便我們稍後可以簡單切割出來我們要的回應訊息,這個部分在稍後會跟大家介紹。
  • 最後,我們也可以觀察到每個步驟後方的角括弧,這實質上提供了一個讓語言模型進行填充的空間。

使用者訊息測試一

透過以上的提示,語言模型會如何處理客戶端產品比較問題呢? 我們直接來看測試範例:
user_message = f"""
你們的 BlueWave Chromebook 比 TechPro 桌機貴多少?
"""
messages =  [
{'role':'system',
 'content': system_message},
{'role':'user',
 'content': f"{delimiter}{user_message}{delimiter}"},
]
response = get_completion_from_messages(messages)
print(response)
--- 以下是 LLM 的回覆 ---
步驟1:#### 用戶在問關於特定產品的問題,不考慮產品類別。 
步驟2:#### 該產品 BlueWave Chromebook 在產品列表中,價格為 $249.99。
TechPro 桌機也在產品列表中,價格為 $999.99。 
步驟3:#### 用戶沒有提供任何假設。 
步驟4:#### 無需判斷假設是否正確。 
回覆給使用者:#### BlueWave Chromebook 的價格是 $249.99,
而 TechPro 桌機的價格是 $999.99。
因此,BlueWave Chromebook 比 TechPro 桌機便宜了 $750。
另外我們再來看一個反例,如果客戶詢問的產品沒有在我們的產品清單內,它會怎麼反應呢?

使用者訊息測試二

user_message = f"""
你們有賣電視嗎?
""" 
messages =  [
{'role':'system',
 'content': system_message},
{'role':'user',
 'content': f"{delimiter}{user_message}{delimiter}"},
]
response = get_completion_from_messages(messages)
print(response)
--- 以下是 LLM 的回覆 ---
步驟1:#### 客戶詢問關於特定產品或多種產品的問題。不考慮產品類別。
步驟2:#### 由於客戶沒有詢問特定產品,因此我們無法回答關於產品的問題。
請問您需要關於哪種類型的產品的資訊? 例如,電腦、手機、家電等等。
回覆給客戶:#### 請問您需要關於哪種類型的產品的資訊?
例如,電腦、手機、家電等等。
看到這裏大家應該更有感覺,什麼是思考鏈以及思考鏈的威力了吧!?
最後,讓我們探討如何從思考鏈的思考程序中,提取出最後要回傳給使用者的訊息。

回覆訊息的提取

我們前面已經提及,在列出步驟時使用的分隔號,其主要目的就是便於我們提取回覆訊息。下面就是一個簡單版本的提取函式以及提取出來的內容:
try:
    # 使用分隔符號來切割訊息,並且取出真的要回覆的內容
    final_response = response.split(delimiter)[-1].strip()
except Exception as e:
    # 發現無法處理的訊息時的回覆訊息
    final_response = """很抱歉,我無法處理你這個問題,
        請您試著詢問其他問題。"""
      
print(final_response)
--- 提取後的回覆訊息 ---
BlueWave Chromebook 的價格是 $249.99,而 TechPro 桌機的價格是 $999.99。
因此,BlueWave Chromebook 比 TechPro 桌機便宜了 $750。
以上思考鏈在實際應用時的其中一個示範。
為什麼會看到廣告
avatar-img
18會員
19內容數
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Ted Chen的沙龍 的其他內容
這堂課闡述開發ChatGPT所需的重要概念和工具。涵蓋語言模型如何處理文字(Token),LLM的兩種類型(Base LLM和Instruction tuned LLM),系統、助手和用戶的角色定義。並介紹以Prompting簡化AI開發流程,且透過實戰教學說明如何進行分類和預防注入提示
本文探討大資料對模型的影響。研究指出,大資料量對模型的語法和世界知識理解有顯著影響。固定運算資源下,DeepMind發現適應參數數量更重要,這使模型Chinchilla以較小規模但更多訓練資料,在實際任務中優於Gopher模型。這說明增大模型的規模已不具有太大意義,應增加訓練資料。
本文探討了大型語言模型中的特殊現象,包括頓悟現象,大模型的隱藏知識引導,以及模型越大對某些問題的理解越偏離的U型曲線。文章強調,當模型不夠理想時,我們需要更好地引導模型或了解問題的本質,而非只是增加模型的大小。
本文探討大型語言模型的兩種主要類型:GPT和BERT。GPT,如ChatGPT,被視為"通才",能執行多種任務。BERT則被視為"專才"的基本語言模型。兩者各有優點:專才模型在特定任務上準確度高,而通才模型靈活多功能。選擇哪種取決於需求和目標。
本文介紹了生成式學習中的兩種策略:「各個擊破」和「一次到位」。這兩種策略在生成速度和品質之間達到平衡。為了提高速度,可以採用"N次到位"的Diffusion Model策略。在語音和影像生成中,可以結合這兩種策略以充分利用優勢。融合策略可以同時確保品質和速度,展現人工智慧的潛力。
本文深入探討機器學習的核心概念,包括迴歸、分類和生成式學習。我們解釋了如何使用特定函式來實現期望任務,並將此過程分為設定範圍、確立標準和實現目標三個階段。文章還介紹了如何使用機器學習來訓練和測試模型,並以寶可夢應用為例說明迴歸和分類問題。
這堂課闡述開發ChatGPT所需的重要概念和工具。涵蓋語言模型如何處理文字(Token),LLM的兩種類型(Base LLM和Instruction tuned LLM),系統、助手和用戶的角色定義。並介紹以Prompting簡化AI開發流程,且透過實戰教學說明如何進行分類和預防注入提示
本文探討大資料對模型的影響。研究指出,大資料量對模型的語法和世界知識理解有顯著影響。固定運算資源下,DeepMind發現適應參數數量更重要,這使模型Chinchilla以較小規模但更多訓練資料,在實際任務中優於Gopher模型。這說明增大模型的規模已不具有太大意義,應增加訓練資料。
本文探討了大型語言模型中的特殊現象,包括頓悟現象,大模型的隱藏知識引導,以及模型越大對某些問題的理解越偏離的U型曲線。文章強調,當模型不夠理想時,我們需要更好地引導模型或了解問題的本質,而非只是增加模型的大小。
本文探討大型語言模型的兩種主要類型:GPT和BERT。GPT,如ChatGPT,被視為"通才",能執行多種任務。BERT則被視為"專才"的基本語言模型。兩者各有優點:專才模型在特定任務上準確度高,而通才模型靈活多功能。選擇哪種取決於需求和目標。
本文介紹了生成式學習中的兩種策略:「各個擊破」和「一次到位」。這兩種策略在生成速度和品質之間達到平衡。為了提高速度,可以採用"N次到位"的Diffusion Model策略。在語音和影像生成中,可以結合這兩種策略以充分利用優勢。融合策略可以同時確保品質和速度,展現人工智慧的潛力。
本文深入探討機器學習的核心概念,包括迴歸、分類和生成式學習。我們解釋了如何使用特定函式來實現期望任務,並將此過程分為設定範圍、確立標準和實現目標三個階段。文章還介紹了如何使用機器學習來訓練和測試模型,並以寶可夢應用為例說明迴歸和分類問題。
你可能也想看
Google News 追蹤
Thumbnail
現代社會跟以前不同了,人人都有一支手機,只要打開就可以獲得各種資訊。過去想要辦卡或是開戶就要跑一趟銀行,然而如今科技快速發展之下,金融App無聲無息地進到你生活中。但同樣的,每一家銀行都有自己的App時,我們又該如何選擇呢?(本文係由國泰世華銀行邀約) 今天我會用不同角度帶大家看這款國泰世華CUB
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
我們人類和ChatGPT的對話技巧也是需要學習的,有鑑於此,我想要一天分享一點「和ChatGPT對話的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 加州理工學院噴射推進實驗室的 David Van Buren 深入研究了大型語言模型 (LLM) 在模擬
Thumbnail
最近在上LLM線上課 來分享我所學到的 LangChain LangChian是把ChatGPT API 轉換為物件導向的形式來使用我所學到 LangChain 的五個方法 : Prompt Template / LLMChain / OutputParser / Agent / Conversat
我們人類和ChatGPT的對話技巧也是需要學習的,有鑑於此,我想要一天分享一點「和ChatGPT對話的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 再來談一個使用 TOCD 這個 Prompt 範本,建立「食譜推薦」的完整 Prompt,TOCD 的說
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 仔細看 AI說書 - 從0開始 - 66 中,Decoder 的 Multi-Head Attention 框框,會發現有一條線空接,其實它是有意義的,之所以空接,是因
我們人類和ChatGPT的對話技巧也是需要學習的,有鑑於此,我想要一天分享一點「和ChatGPT對話的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 在複雜的軟體開發和人工智慧世界中,設計模板作為概念工具出現,幫助工程師巧妙地應對複雜的情況,當涉及 Pr
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 延續AI說書 - 從0開始 - 25示範了ChatGPT程式的能力,同時在AI說書 - 從0開始 - 26靠ChatGPT產生Decision Tree程式,現在我們來
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 延續AI說書 - 從0開始 - 24示範了ChatGPT程式的能力,現在我們繼續做下去。 Train a decision tree classifier mod
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 延續AI說書 - 從0開始 - 23示範了ChatGPT回答的能力,現在我們來看看ChatGPT撰寫程式的能力。 嘗試問以下問題:Write a detailed
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 延續AI說書 - 從0開始 - 22解釋Foundation Model與Engines意涵後,我們來試用看看ChatGPT。 嘗試問以下問題:Provide a
Thumbnail
本文介紹「思維鏈」(Chain of Thought,CoT)的提問技巧,探討其如何影響ChatGPT等生成式AI工具的表現。由於「思維鏈」能使機器人模仿人類推理的過程,因此,建議在使用大型語言模型進行提示工程時加入類似「讓我們循序思考」等提示詞,以提高多步驟問題的解決能力。
Thumbnail
現代社會跟以前不同了,人人都有一支手機,只要打開就可以獲得各種資訊。過去想要辦卡或是開戶就要跑一趟銀行,然而如今科技快速發展之下,金融App無聲無息地進到你生活中。但同樣的,每一家銀行都有自己的App時,我們又該如何選擇呢?(本文係由國泰世華銀行邀約) 今天我會用不同角度帶大家看這款國泰世華CUB
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
我們人類和ChatGPT的對話技巧也是需要學習的,有鑑於此,我想要一天分享一點「和ChatGPT對話的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 加州理工學院噴射推進實驗室的 David Van Buren 深入研究了大型語言模型 (LLM) 在模擬
Thumbnail
最近在上LLM線上課 來分享我所學到的 LangChain LangChian是把ChatGPT API 轉換為物件導向的形式來使用我所學到 LangChain 的五個方法 : Prompt Template / LLMChain / OutputParser / Agent / Conversat
我們人類和ChatGPT的對話技巧也是需要學習的,有鑑於此,我想要一天分享一點「和ChatGPT對話的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 再來談一個使用 TOCD 這個 Prompt 範本,建立「食譜推薦」的完整 Prompt,TOCD 的說
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 仔細看 AI說書 - 從0開始 - 66 中,Decoder 的 Multi-Head Attention 框框,會發現有一條線空接,其實它是有意義的,之所以空接,是因
我們人類和ChatGPT的對話技巧也是需要學習的,有鑑於此,我想要一天分享一點「和ChatGPT對話的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 在複雜的軟體開發和人工智慧世界中,設計模板作為概念工具出現,幫助工程師巧妙地應對複雜的情況,當涉及 Pr
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 延續AI說書 - 從0開始 - 25示範了ChatGPT程式的能力,同時在AI說書 - 從0開始 - 26靠ChatGPT產生Decision Tree程式,現在我們來
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 延續AI說書 - 從0開始 - 24示範了ChatGPT程式的能力,現在我們繼續做下去。 Train a decision tree classifier mod
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 延續AI說書 - 從0開始 - 23示範了ChatGPT回答的能力,現在我們來看看ChatGPT撰寫程式的能力。 嘗試問以下問題:Write a detailed
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 延續AI說書 - 從0開始 - 22解釋Foundation Model與Engines意涵後,我們來試用看看ChatGPT。 嘗試問以下問題:Provide a
Thumbnail
本文介紹「思維鏈」(Chain of Thought,CoT)的提問技巧,探討其如何影響ChatGPT等生成式AI工具的表現。由於「思維鏈」能使機器人模仿人類推理的過程,因此,建議在使用大型語言模型進行提示工程時加入類似「讓我們循序思考」等提示詞,以提高多步驟問題的解決能力。