目錄 
1. 基本提示 (Basic Prompt)
2. 動態提示 (Dynamic Prompt)
3. 提示連結 (Prompt Chaining)
4. 無幻覺問答 RAG (Question-answering without hallucinations)
5. 聊天提示 (Chat Prompt)
6. 聊天對話 (Chat Conversation)
7. 壓縮長討論 (Compressing long discussions)


1. 基本提示

最基本的LLM概念:
- 向模型發送一段文字(稱為 Prompt)
- 模型會回應另一段文字(通常稱為 Completion)。

從根本上來說,LLM只是嘗試預測最有統計機率的下一個單字來完成你的提示。因此,稱之為「補全」。這是理解和利用這些模型某些行為的關鍵。

2. 動態提示
LLM 應用程式中的常見做法是建立一個“提示範本”,並在將最終提示傳送給 LLM 之前動態地用使用者資料替換其中的部分內容。

範例:
寫一則訊息給 $NAME 告知會議的行程在 $DATE,變數可用程式代入

3. 提示連結

在某些情況下,一次LLM可能還不夠。也許是因為任務很複雜,或者完整的回應不適合上下文視窗(模型可以根據請求讀取和寫入的最大標記/單字)。這時您可以使用提示連結:將第一個呼叫的回應合併到下一個呼叫的提示中。

範例:
1st LLM
U: 列出建立 Web 應用程式的步驟
G:
  1. 選擇工具或語言
  2. 確定特徵
  ...
2st LLM
U: 我正在創建一個網頁應用程序,請解釋如何[步驟]
G: 常見的 Web 開發語言包括 HTML、CSS、JavaScript、PHP 和 Python,而流行的開發工具包括....


4. 無幻覺問答(RAG)
由於 LLM 會本能地回答問題,他們有時會給出不正確的答案,稱為“幻覺”。對於客戶支援等與事實相關的用例來說,這是一個問題。

然而,雖然法學碩士不擅長處理事實,但他們擅長數據提取和重新措辭。減輕幻覺的解決方案是為模型提供多種資源,並要求它使用這些資源找到答案或回答「我不知道」。

範例:
U: 我該如何聯絡 IT 團隊?
DB_Query: 內部有用號碼: 人力資源:555 000 123 電話:555 999 987
Prompt: 
基於以下內容:{DB_Query} 回答使用者問題:{U} 如果註釋中沒有訊息,請說您不知道。
用戶提問
G: 您可以撥打 555 999 987 聯絡 IT 團隊。

5. 聊天提示
由 OpenAI 及其流行的GPT-3.5-turbo模型引入,聊天提示使用稍微不同的格式來表示討論,其中完成將是序列中的下一則訊息。

範例:

系統:您是一名 Al 客戶支援代理。幫助用戶解決他們的問題。
AI: 您好,今天需要什麼幫助您嗎?
U:我的網路連線速度很慢。
G: 讓我們看看我們能做些什麼來幫助您。首先,您是否嘗試過重新啟動調變解調器或路由器?有時,簡單的重新啟動可以幫助解決網路速度問題。


6. 聊天對話
LLM 是無狀態的,這意味著它們不儲存先前呼叫的數據,並將每個請求視為唯一的。然而,當你與人工智慧聊天時,它需要知道你最後一個問題之前所說的內容。 

為了解決這個問題,您可以將聊天歷史記錄儲存在您的應用程式中,並將其包含在每個請求中。


7. 壓縮長討論

LLM 對它們可以在稱為「上下文視窗」的單一請求中讀取和寫入的令牌數量(≈ 字)有限制。

例如,如果視窗大小為 4096 個令牌的模型收到 3900 個令牌的提示,則其完成將限制為 196 個令牌。 

為了避免達到此限制並降低 API 成本(因為提供者根據輸入/輸出令牌收費),解決方案是使用中間提示來匯總舊訊息。 

🧐 因為這個總結會花費你第二次 LLM 請求,所以在經常做或不夠做之間存在一個弱點。


☝ 也要知道更大的上下文視窗很少是解決方案。具有更大上下文視窗的模型更昂貴,更大的請求更慢,並且太多的上下文可能會適得其反。https://x.com/remitoffoli/status/1678758803754610689