Last updated on August 7, 2024
從 GPT-3 和 ChatGPT 等大型語言模型 (LLM) 的最新進展中可以看出,在技術行業引起了很大的關注。這些模型對內容生成非常強大,但它們也有一些缺點,例如偏差 和幻覺。LLM 在聊天機器人開發方面特別有用。 ”
傳統聊天機器人通常是基於意圖的(intent-based),這意味著它們被設計為響應特定的使用者意圖。每個意圖由一組樣本問題和相應的響應組成。例如,"天氣" 意圖可能包括類似 "今天天氣如何?" 或 "今天會下雨嗎?" 這樣的樣本問題,並且可能輸出 "今天將是晴天" 的響應。當用戶提出問題時,聊天機器人將其與最相似的樣本問題匹配意圖,並返回相應的響應。
傳統基於意圖的聊天機器人的工作原理。影象由作者製作。
然而,基於意圖的聊天機器人也有自己的問題。其中一個問題是,它們需要大量特定的意圖才能給出特定的答案。例如,使用者說 "我無法登入"、"我忘記了密碼" 或 "登入錯誤" 等話語可能需要三個不同的答案和三個不同的意圖,儘管它們都非常相似。
這就是 GPT-3 可以發揮的特別用處。每個意圖可以更廣泛,利用您的知識庫文件。知識庫 Knowledge Base 是儲存為結構化和非結構化資料的資訊,可用於分析或推斷。您的知識庫可能由一系列文件組成,解釋如何使用您的產品。
因此,每個意圖與文件相關聯,而不是一組問題和特定答案,例如,一個 "登入問題" 的意圖,一個 "如何訂閱" 的意圖等等。當用戶詢問有關登入的問題時,我們可以將 "登入問題" 文件傳遞給 GPT-3 作為上下文資訊,併為使用者的問題生成特定的響應。
利用GPT-3的聊天機器人工作原理。作者提供的圖片。
這種方法減少了需要處理的意圖數量,並允許更好地適應每個問題的答案。此外,如果與意圖關聯的文件描述了不同的流程(例如 "在網站上登入" 的流程和 "在移動應用程式上登入" 的流程),GPT-3 可以在給出最終答案之前自動詢問使用者以獲得更多的上下文資訊。
今天,像 GPT-3 這樣的 LLM 模型的最大提示的長度約為 4k 令牌(對於text-davinci-003
模型),這很多,但不足以將整個知識庫塞入單個提示中。 LLM 由於計算原因具有最大提示的長度限制,因為使用它們生成文字涉及多個計算,隨著提示大小的增加,計算量也會迅速增加。
未來的 LLM 可能不會有這種限制,同時保留文字生成能力。然而,就目前而言,我們需要一個設計解決方案來解決這個問題。
聊天機器人的流程可以分為以下兩個步驟:
首先,我們需要為使用者的問題選擇適當的意圖,即我們需要從知識庫中檢索正確的文件。 然後,一旦我們有了正確的文件,我們就可以利用 GPT-3 為使用者生成適當的答案。在這樣做的過程中,我們需要精心製作一個良好的提示。
第一步可以使用語義搜尋semantic search解決。我們可以使用sentence-transformers
庫中的預訓練模型,輕鬆地為每個文件分配一個分數。分數最高的文件將用於生成聊天機器人答案。
如何利用 GPT-3 讓聊天機器人工作。GPT-3 可以利用知識庫文件中的資訊生成適當的答案。圖片由作者提供。
一旦我們有了正確的文件,我們需要建立一個好的提示,以便將其用於 GPT-3 生成答案。在以下實驗中,我們將始終使用 temperature
為 0.7 的 text-davinci-003
模型。
為了製作提示,我們將嘗試使用以下內容
Information used to craft our GPT-3 prompt. Image by the author.
讓我們使用
角色提示 技術開始我們的提示。
作為一名高階聊天機器人 Skippy,您的主要目標是盡力幫助使用者。
然後,假設語義搜尋步驟從我們的知識庫中提取了以下文件。所有文件都描述了類似於 Instagram 的虛構產品 VideoGram 的工作方式,但僅用於影片。
解釋 VideoGram 登入方式的文件。作者提供的影像。
我們可以在提示中這樣新增
它的內容。
作為一款名為 Skippy 的高階聊天機器人,您的主要目標是盡力幫助使用者。
開始上下文
從網站登入到 VideoGram
- 開啟您的網路瀏覽器並前往 VideoGram 網站。
- 單擊頁面右上角的"登入"按鈕。
- 在登入頁面上,輸入您的 VideoGram 使用者名稱和密碼。
- 輸入憑據後,單擊"登入"按鈕。
- 您現在應該已經登入到您的 VideoGram 帳戶中。
從移動應用登入到 VideoGram
- 在您的移動裝置上開啟 VideoGram 應用。
- 在主頁面上,點選位於右下角的"登入"按鈕。3. 在登入頁面上,輸入您的 VideoGram 使用者名稱和密碼。
- 輸入憑據後,點選"登入"按鈕。
- 您現在應該已經登入到您的 VideoGram 帳戶中。
結束上下文
最後,我們需要將
對話和使用者問題 新增到提示的末尾,就像以下範例中那樣。
作為一款名為 Skippy 的高階聊天機器人,您的主要目標是盡力幫助使用者。
開始上下文
從網站登入到 VideoGram
- 開啟您的網路瀏覽器並前往 VideoGram 網站。
- 單擊頁面右上角的"登入"按鈕。
- 在登入頁面上,輸入您的 VideoGram 使用者名稱和密碼。
- 輸入憑據後,單擊"登入"按鈕。
- 您現在應該已經登入到您的 VideoGram 帳戶中。
從移動應用登入到 VideoGram
- 在您的移動裝置上開啟 VideoGram 應用。
- 在主頁面上,點選位於右下角的"登入"按鈕。3. 在登入頁面上,輸入您的 VideoGram 使用者名稱和密碼。
- 輸入憑據後,點選"登入"按鈕。
- 您現在應該已經登入到您的 VideoGram 帳戶中。
結束上下文
SKIPPY:您好,我是 Skippy!我能為您做些什麼?
使用者:我找不到登入按鈕。
SKIPPY:
將此提示傳遞給 GPT-3,我得到了以下生成的答案。
沒問題! 在網站上,登入按鈕位於頁面右上角。
在移動應用程式上,登入按鈕位於頁面右下角。如果您需要進一步的幫助,請告訴我!
請注意,生成的答案中的資訊來自知識庫文件。
我們來試試更模糊的使用者輸入,比如
"無法登入" 。這是完整的提示。
作為一個名叫 Skippy 的高階聊天機器人,您的主要目標是盡力幫助使用者。
START CONTEXT
從網站登入到 VideoGram
- 開啟您的 Web 瀏覽器,然後轉到 VideoGram 網站。
- 點選頁面右上角的"登入"按鈕。
- 在登入頁面上,輸入您的 VideoGram 使用者名稱和密碼。
- 輸入您的憑據後,單擊"登入"按鈕。
- 您現在應該已經登入到 VideoGram 帳戶。
從移動應用程式登入到 VideoGram
- 開啟您的移動裝置上的 VideoGram 應用程式。
- 在主頁面上,點選右下角的"登入"按鈕。 3. 在登入頁面上,輸入您的 VideoGram 使用者名稱和密碼。
- 輸入您的憑據後,點選"登入"按鈕。
- 您現在應該已經登入到 VideoGram 帳戶。
END CONTEXT
SKIPPY: 你好,我是 Skippy!我能幫你什麼忙?
USER: 無法登入
SKIPPY:
GPT-3 試圖更好地理解使用者的問題,給出了以下回答。
很抱歉聽到這個訊息。您能告訴我您是在嘗試透過 VideoGram
網站還是移動應用程式登入嗎?
接下來,這是完整的對話內容。為了方便檢視,這裡省略了提示的其他部分。
USER: 無法登入
SKIPPY: 很抱歉聽到這個訊息。您能告訴我您是在嘗試透過 VideoGram 網站還是移動應用程式登入嗎?
USER: 移動應用程式
SKIPPY: 好的,沒問題。要透過移動應用程式登入,請開啟您的移動裝置上的 VideoGram 應用程式。在主頁面上,點選右下角的"登入"按鈕。在登入頁面上,輸入您的 VideoGram 使用者名稱和密碼。輸入您的憑據後,點選"登入"按鈕。您現在應該已經登入到 VideoGram 帳戶。如果您需要進一步的幫助,請告訴我。
只要有正確的上下文資訊,GPT-3 就可以進行消除歧義。
前面的例子都很正常執行。然而,這種聊天機器人可能會失敗的幾種方式。
如果我們詢問 "移動應用程式是否免費?",將登入文件作為上下文傳遞給 GPT-3,你通常會得到一個答案,比如 "是的,VideoGram 移動應用程式是免費下載和使用的",即使這樣的資訊並沒有包含在上下文資訊中。生成虛假資訊對於客戶服務聊天機器人來說非常糟糕!
當用戶問題可以在上下文中找到答案時,GPT-3 很少生成虛假資訊。由於使用者問題通常是短小模糊的文字,我們不能總是依賴語義搜尋步驟來檢索正確的文件,因此我們總是容易受到虛假資訊生成的影響。
GPT-3 非常適用於建立對話式聊天機器人,並能夠根據插入的上下文資訊回答一系列具體問題。然而,僅依靠上下文資訊使模型產生答案很困難,因為模型往往會產生幻覺(即生成新資訊,可能是錯誤的)。生成虛假資訊是一個不同嚴重程度的問題,這取決於使用情況。
Written by Fabio Chiusano.
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 ↩
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 ↩