Announcing our new Course: AI Red-Teaming and AI Safety Masterclass

Check it out →

🟢 聊天機器人 + 知識庫

最後更新於August 7, 2024,作者:桑德舒爾霍夫

GPT-3ChatGPT 等大型語言模型 (LLM) 的最新進展中可以看出,在技術行業引起了很大的關注。這些模型對內容生成非常強大,但它們也有一些缺點,例如偏差1 和幻覺2。LLM 在聊天機器人開發方面特別有用。 ”

基於意圖的聊天機器人

傳統聊天機器人通常是基於意圖的(intent-based),這意味著它們被設計為響應特定的使用者意圖。每個意圖由一組樣本問題和相應的響應組成。例如,"天氣" 意圖可能包括類似 "今天天氣如何?" 或 "今天會下雨嗎?" 這樣的樣本問題,並且可能輸出 "今天將是晴天" 的響應。當用戶提出問題時,聊天機器人將其與最相似的樣本問題匹配意圖,並返回相應的響應。

傳統基於意圖的聊天機器人的工作原理。影象由作者製作。

然而,基於意圖的聊天機器人也有自己的問題。其中一個問題是,它們需要大量特定的意圖才能給出特定的答案。例如,使用者說 "我無法登入"、"我忘記了密碼" 或 "登入錯誤" 等話語可能需要三個不同的答案和三個不同的意圖,儘管它們都非常相似。

GPT-3 如何幫助

這就是 GPT-3 可以發揮的特別用處。每個意圖可以更廣泛,利用您的知識庫文件。知識庫 Knowledge Base 是儲存為結構化和非結構化資料的資訊,可用於分析或推斷。您的知識庫可能由一系列文件組成,解釋如何使用您的產品。

因此,每個意圖與文件相關聯,而不是一組問題和特定答案,例如,一個 "登入問題" 的意圖,一個 "如何訂閱" 的意圖等等。當用戶詢問有關登入的問題時,我們可以將 "登入問題" 文件傳遞給 GPT-3 作為上下文資訊,併為使用者的問題生成特定的響應。

利用GPT-3的聊天機器人工作原理。作者提供的圖片。

這種方法減少了需要處理的意圖數量,並允許更好地適應每個問題的答案。此外,如果與意圖關聯的文件描述了不同的流程(例如 "在網站上登入" 的流程和 "在移動應用程式上登入" 的流程),GPT-3 可以在給出最終答案之前自動詢問使用者以獲得更多的上下文資訊。

為什麼不能將整個知識庫傳遞給 GPT-3?

今天,像 GPT-3 這樣的 LLM 模型的最大提示的長度約為 4k 令牌(對於text-davinci-003模型),這很多,但不足以將整個知識庫塞入單個提示中。 LLM 由於計算原因具有最大提示的長度限制,因為使用它們生成文字涉及多個計算,隨著提示大小的增加,計算量也會迅速增加。

未來的 LLM 可能不會有這種限制,同時保留文字生成能力。然而,就目前而言,我們需要一個設計解決方案來解決這個問題。

如何使用 GPT-3 構建一個聊天機器人

聊天機器人的流程可以分為以下兩個步驟:

首先,我們需要為使用者的問題選擇適當的意圖,即我們需要從知識庫中檢索正確的文件。 然後,一旦我們有了正確的文件,我們就可以利用 GPT-3 為使用者生成適當的答案。在這樣做的過程中,我們需要精心製作一個良好的提示。

第一步可以使用語義搜尋semantic search解決。我們可以使用sentence-transformers庫中的預訓練模型,輕鬆地為每個文件分配一個分數。分數最高的文件將用於生成聊天機器人答案。

如何利用 GPT-3 讓聊天機器人工作。GPT-3 可以利用知識庫文件中的資訊生成適當的答案。圖片由作者提供。

使用 GPT-3 生成答案

一旦我們有了正確的文件,我們需要建立一個好的提示,以便將其用於 GPT-3 生成答案。在以下實驗中,我們將始終使用 temperature 為 0.7 的 text-davinci-003 模型。

為了製作提示,我們將嘗試使用以下內容

  • 角色提示: 一種啟發式技術,為 AI 設定特定的角色。
  • 相關的知識庫資訊: 即在語義搜尋步驟中檢索到的文件。
  • 使用者和聊天機器人之間最後一次交換的訊息: 這對於使用者傳送的未指定整個上下文的訊息非常有用。我們將在後面的例子中看到它。請檢視此範例 瞭解如何使用 GPT-3 管理對話。
  • 使用者的問題

Information used to craft our GPT-3 prompt. Image by the author.

讓我們使用

角色提示 技術開始我們的提示。

作為一名高階聊天機器人 Skippy,您的主要目標是盡力幫助使用者。


然後,假設語義搜尋步驟從我們的知識庫中提取了以下文件。所有文件都描述了類似於 Instagram 的虛構產品 VideoGram 的工作方式,但僅用於影片。

解釋 VideoGram 登入方式的文件。作者提供的影像。

我們可以在提示中這樣新增

它的內容

作為一款名為 Skippy 的高階聊天機器人,您的主要目標是盡力幫助使用者。



開始上下文


從網站登入到 VideoGram


  1. 開啟您的網路瀏覽器並前往 VideoGram 網站。

  1. 單擊頁面右上角的"登入"按鈕。

  1. 在登入頁面上,輸入您的 VideoGram 使用者名稱和密碼。

  1. 輸入憑據後,單擊"登入"按鈕。

  1. 您現在應該已經登入到您的 VideoGram 帳戶中。


從移動應用登入到 VideoGram


  1. 在您的移動裝置上開啟 VideoGram 應用。

  1. 在主頁面上,點選位於右下角的"登入"按鈕。3. 在登入頁面上,輸入您的 VideoGram 使用者名稱和密碼。

  1. 輸入憑據後,點選"登入"按鈕。

  1. 您現在應該已經登入到您的 VideoGram 帳戶中。

結束上下文


最後,我們需要將

對話和使用者問題 新增到提示的末尾,就像以下範例中那樣。

作為一款名為 Skippy 的高階聊天機器人,您的主要目標是盡力幫助使用者。



開始上下文


從網站登入到 VideoGram


  1. 開啟您的網路瀏覽器並前往 VideoGram 網站。

  1. 單擊頁面右上角的"登入"按鈕。

  1. 在登入頁面上,輸入您的 VideoGram 使用者名稱和密碼。

  1. 輸入憑據後,單擊"登入"按鈕。

  1. 您現在應該已經登入到您的 VideoGram 帳戶中。


從移動應用登入到 VideoGram


  1. 在您的移動裝置上開啟 VideoGram 應用。

  1. 在主頁面上,點選位於右下角的"登入"按鈕。3. 在登入頁面上,輸入您的 VideoGram 使用者名稱和密碼。

  1. 輸入憑據後,點選"登入"按鈕。

  1. 您現在應該已經登入到您的 VideoGram 帳戶中。

結束上下文



SKIPPY:您好,我是 Skippy!我能為您做些什麼?


使用者:我找不到登入按鈕。


SKIPPY:


將此提示傳遞給 GPT-3,我得到了以下生成的答案。

沒問題! 在網站上,登入按鈕位於頁面右上角。 在移動應用程式上,登入按鈕位於頁面右下角。如果您需要進一步的幫助,請告訴我!

請注意,生成的答案中的資訊來自知識庫文件。

用 GPT-3 消歧使用者問題

我們來試試更模糊的使用者輸入,比如

"無法登入" 。這是完整的提示。

作為一個名叫 Skippy 的高階聊天機器人,您的主要目標是盡力幫助使用者。



START CONTEXT


從網站登入到 VideoGram


  1. 開啟您的 Web 瀏覽器,然後轉到 VideoGram 網站。

  1. 點選頁面右上角的"登入"按鈕。

  1. 在登入頁面上,輸入您的 VideoGram 使用者名稱和密碼。

  1. 輸入您的憑據後,單擊"登入"按鈕。

  1. 您現在應該已經登入到 VideoGram 帳戶。


從移動應用程式登入到 VideoGram


  1. 開啟您的移動裝置上的 VideoGram 應用程式。

  1. 在主頁面上,點選右下角的"登入"按鈕。 3. 在登入頁面上,輸入您的 VideoGram 使用者名稱和密碼。

  1. 輸入您的憑據後,點選"登入"按鈕。

  1. 您現在應該已經登入到 VideoGram 帳戶。

END CONTEXT



SKIPPY: 你好,我是 Skippy!我能幫你什麼忙?


USER: 無法登入


SKIPPY:


GPT-3 試圖更好地理解使用者的問題,給出了以下回答。

很抱歉聽到這個訊息。您能告訴我您是在嘗試透過 VideoGram 網站還是移動應用程式登入嗎?

接下來,這是完整的對話內容。為了方便檢視,這裡省略了提示的其他部分。

USER: 無法登入


SKIPPY: 很抱歉聽到這個訊息。您能告訴我您是在嘗試透過 VideoGram 網站還是移動應用程式登入嗎?


USER: 移動應用程式


SKIPPY: 好的,沒問題。要透過移動應用程式登入,請開啟您的移動裝置上的 VideoGram 應用程式。在主頁面上,點選右下角的"登入"按鈕。在登入頁面上,輸入您的 VideoGram 使用者名稱和密碼。輸入您的憑據後,點選"登入"按鈕。您現在應該已經登入到 VideoGram 帳戶。如果您需要進一步的幫助,請告訴我。


只要有正確的上下文資訊,GPT-3 就可以進行消除歧義。

使用 GPT-3 生成答案時可能出現的問題

前面的例子都很正常執行。然而,這種聊天機器人可能會失敗的幾種方式。

如果我們詢問 "移動應用程式是否免費?",將登入文件作為上下文傳遞給 GPT-3,你通常會得到一個答案,比如 "是的,VideoGram 移動應用程式是免費下載和使用的",即使這樣的資訊並沒有包含在上下文資訊中。生成虛假資訊對於客戶服務聊天機器人來說非常糟糕!

當用戶問題可以在上下文中找到答案時,GPT-3 很少生成虛假資訊。由於使用者問題通常是短小模糊的文字,我們不能總是依賴語義搜尋步驟來檢索正確的文件,因此我們總是容易受到虛假資訊生成的影響。

結論

GPT-3 非常適用於建立對話式聊天機器人,並能夠根據插入的上下文資訊回答一系列具體問題。然而,僅依靠上下文資訊使模型產生答案很困難,因為模型往往會產生幻覺(即生成新資訊,可能是錯誤的)。生成虛假資訊是一個不同嚴重程度的問題,這取決於使用情況。

Written by Fabio Chiusano.

Footnotes

  1. Nadeem, M., Bethke, A., & Reddy, S. (2021). StereoSet: Measuring stereotypical bias in pretrained language models. Proceedings of the 59th Annual Meeting of the Association for Computational Linguistics and the 11th International Joint Conference on Natural Language Processing (Volume 1: Long Papers), 5356–5371. https://doi.org/10.18653/v1/2021.acl-long.416

  2. Ji, Z., Lee, N., Frieske, R., Yu, T., Su, D., Xu, Y., Ishii, E., Bang, Y., Madotto, A., & Fung, P. (2022). Survey of Hallucination in Natural Language Generation. ACM Computing Surveys. https://doi.org/10.1145/3571730

Edit this page
Word count: 0
Copyright © 2024 Learn Prompting.