生成式AI大模型之提示詞工程實踐
提示工程是一個新興的領域,專注于開發、設計和優化提示,以增強 LLM 的輸出,從而滿足您的需求。它為您提供了一種引導模型的行為從而達到您想要實現的結果的方法。
提示工程與微調不同。在微調中,使用訓練數據調整權重或參數,目標是優化成本函數。就計算時間和實際成本而言,微調可能是一個昂貴的過程。然而,提示工程試圖引導經過訓練的 FM、LLM 或文本到圖像模型給出更相關、更準確的答案。
提示工程是充分發揮大語言模型的強大能力的最快方法。通過利用一系列問題、語句或指令與 LLM 交互,您可以根據您希望實現的輸出的特定上下文來調整 LLM 輸出行為。
有效的提示技術可以助力您的企業實現以下益處:
- 提高模型的能力,增強安全性。
- 使用領域知識和外部工具增強模型,而無需更改模型參數或進行微調。
- 與語言模型交互以掌握其全部能力。
- 通過更高質量的輸入獲得更高質量的輸出。
提示的要素
提示的形式取決于您給模型指定的任務。當您探索提示工程示例時,您會注意到提示包含以下部分或全部要素:
- ?指令:這是大語言模型要執行的任務。它提供模型應如何執行任務的描述或說明。
- ?上下文:這是用于引導模型的外部信息。
- 輸入數據:這是需要響應的輸入
輸出指示:這是輸出類型或格式
評估模型的響應
- 務必檢查模型的響應,以確保提示產生適當質量、類型和范圍的響應。根據需要更改提示。您甚至可以要求模型的一個副本改進或檢查模型的另一個副本的輸出。
- 通過反復嘗試,您將提升您撰寫和優化提示的直覺,從而最好地適應您的需求和模型。提示工程是一種可通過實踐不斷提高的迭代技能。
零樣本提示是這樣一種提示技術:用戶向 LLM 提出任務,而不給模型提供進一步示例。在這種技術中,用戶期望模型在沒有事先理解或嘗試任務的情況下執行任務。現代 LLM 表現出卓越的零樣本能力。
使用零樣本提示技術的技巧包括:
- ?LLM 越大,零樣本提示產生有效結果的可能性就越大。
- ?指令調整可以改進零樣本學習。您可以采用基于人類反饋的強化學習 (RLHF, reinforcement learning from human feedback) 來擴展指令調整,使現代 LLM 更好地適應人類偏好。
小樣本提示是這樣一種提示技術:您為模型提供有關所請求執行的任務的上下文信息。在這種技術中,您同時提供任務和所需輸出的示例。在提示條件中提供此上下文或少量樣本,可以使模型嚴格遵循任務指導。
小樣本提示中的標簽不必正確即可提高模型性能。通常,應用隨機標簽比完全不使用標簽要好。然而,演示指定的標簽空間和輸入文本的分布很重要。此上下文中使用的“標簽”一詞是指提示示例的輸出。“提示示例”中的語句所表達的情緒是標簽的示例。
如果您有大量示例可以利用,請使用技術來遵守模型的標記限制并動態填充提示模板。您可以使用基于語義相似度的示例選擇器來提供幫助。
思維鏈 (CoT, chain-of-thought) 提示通過中間推理步驟分解復雜的推理任務。您可以將零樣本提示技術和小樣本提示技術與 CoT 提示結合使用。 思維鏈提示特定于問題類型。您可以使用短語“一步一步地思考”在機器學習模型中調用 CoT 推理。
基本提示技術并不總是能提供您的特定業務任務所需的結果。本節課將向您介紹多種高級技術。您將學習每種高級技術的運作方式,您還將進一步了解哪種使用案例最適合每種策略。
自洽性是一種類似于思維鏈提示的提示技術。然而,自洽性技術不采取明顯的一步一步路徑或貪婪路徑,而是提示模型對各種推理路徑進行采樣。然后,模型根據來自各個路徑的多個數據點聚合最終答案。根據 Xuezhi Wang 等人撰寫的文章“利用自洽性提高語言模型中的思維鏈推理效果”(Self-Consistency Improves Chain of Thought Reasoning in Language Models),當用于一系列常見算術和常識推理基準時,自洽性可以改進 CoT 推理提示。
思維樹 (ToT, Tree of thoughts) 是另一種基于 CoT 提示技術的技術。CoT 提示按順序對思維進行采樣,但 ToT 提示遵循樹分支技術。通過 ToT 技術,LLM 可以采用細致入微的方式學習,考慮多條路徑而不是一條順序路徑。
對于涉及重要初始決策、未來策略和探索多種解決方案的任務,ToT 提示是一種特別有效的方法。大多數 LLM 通過遵循標準的從左到右的標記級推理來做出決策,但通過 ToT,LLM 可以自行評估選擇。
根據 Shunyu Yao 等人撰寫的文章“思維樹:讓大型語言模型深思熟慮地解決問題”(Tree of Thoughts: Deliberate Problem Solving with Large Language Models),ToT 顯著提高了模型處理需要重要規劃的任務時的性能。Yao 和其他研究人員在三個任務中測試了 ToT 方法:創意寫作、迷你填字游戲和 24 點游戲(一種數學學習游戲)。在 24 點游戲任務中,生成式預訓練變換器模型 4 (GPT-4, Generative Pre-trained Transformer 4) 通過 CoT 提示取得了 4% 的成功率。而模型通過 ToT 提示方法取得了 74% 的成功率。
檢索增強生成 (RAG, Retrieval Augmented Generation) 是一種提示技術,它提供領域相關的數據作為上下文,以基于這些數據和提示生成響應。該技術類似于微調。然而,RAG 不必使用一小組標注示例對 FM 進行微調,而是從大型語料庫中檢索一小組相關文檔,并使用這些文檔提供上下文來回答問題。RAG 不會改變基礎模型的權重,而微調會改變模型權重。
這種方法比常規微調更具成本效益,因為 RAG 方法不會產生對模型進行微調的成本。RAG 還解決了數據頻繁更改帶來的挑戰,因為它會檢索更新的相關信息,而不是依賴可能過時的數據集。
在 RAG 中,外部數據可以來自多個數據源,例如文檔存儲庫、數據庫或 API。在將 RAG 用于 LLM 之前,您必須準備知識庫并使其保持最新。下圖顯示了在 LLM 中使用 RAG 的概念化流程。要查看在知識庫準備好后模型進行學習的步驟,請分別選擇四個帶編號的標記。
與自洽性和 ToT 提示技術一樣,ART 是一種基于思維鏈過程的提示技術。Bhargavi Paranjape 撰寫的“ART:大語言模型的自動多步推理和工具使用”(ART: Automatic multi-step reasoning and tool-use for large language models) 一文詳細討論了 ART 技術,該技術專門用于多步推理任務。
該技術本質上是通過讓模型從任務庫中選擇多個或少量示例的演示來解構復雜的任務。在模型使用這種小樣本分解的同時,它使用預定義的外部工具(例如搜索和代碼生成)來執行任務。
研究表明,對于未見過的任務,ART 的表現明顯優于小樣本提示和自動 CoT,并且在大多數任務中,它的表現與手動 CoT 提示相當。使用 ART,人類還能夠更高效地更新任務庫中的信息,從而糾正錯誤并最終提高性能。
在 ReAct 提示中,LLM 可以將推理和動作結合起來。根據 Shunyu Yao 的文章“ReAct:語言模型中推理和動作的協同作用”(ReAct: Synergizing Reasoning and Acting in Language Models),模型通常用于推理或動作,但并不總是能同時有效地用于這兩者。
CoT 提示表明 LLM 有望為簡單的任務(例如數學)進行推理和生成動作。但是,無法在 CoT 提示下更新信息或訪問外部上下文,可能會導致輸出發生事實幻覺等錯誤。借助 ReAct 框架,LLM 可以生成基于外部工具(例如維基百科頁面或 SQL 數據庫)的推理跟蹤和特定于任務的動作。這種外部上下文可產生更準確可靠的輸出
提示注入
提示注入是一種通過使用提示中的指令來影響模型輸出的技術。例如,黑客可能會向文本生成模型提供包含有害、不道德或有偏差的內容的提示,以生成類似的有害、不道德或有偏差的文本。然后,黑客可以使用此文本大規模生成假新聞、教義宣傳或其他惡意內容。提示注入還可用于非惡意活動,例如覆蓋模型的響應、自定義翻譯以保留產品名稱等。
提示泄露
提示泄露是指生成式 AI 系統可能通過其生成的提示或示例泄露敏感或私人信息的風險。 例如,如果系統使用私人客戶數據進行訓練以生成產品建議,則可能會泄露有關客戶購物的詳細信息。該系統還可能通過為新客戶生成的建議泄露有關客戶瀏覽歷史記錄的詳細信息。這可能會侵犯客戶的隱私,影響客戶對系統的信任。
用于訓練 AI 模型的數據可能有偏差。如果數據有偏差,AI 模型可能會重現這些偏差。最終,您可能會得到有偏差或不公平的輸出。偏差可以通過以下兩種方式出現在提示工程中。
一,如果提示建立在假設的基礎上,那么提示本身可能是有偏差的。例如,如果查詢假設所有軟件開發人員都是男性,則可能會導致 AI 產生偏向于男性的結果。
二,即使編寫的提示沒有偏差,AI 模型有時也會產生有偏差的結果。產生這些結果是由于訓練數據中可能存在偏差。例如,即使給出性別中立的提示,如果 AI 模型在接受訓練時主要使用以男性軟件開發人員為特征的數據,那么它也可能會提供假設軟件開發人員是男性的響應。
如果在訓練模型時沒有足夠的數據,這種缺乏數據的情況可能會導致偏差。如果模型是在數據不足的情況下進行訓練的,則會導致模型置信度低。大多數毒性篩選條件和排序算法本質上會優先考慮模型置信度。這導致許多群體被推定為排除在外,從而使偏差長期存在。
以下三種技術可以幫助減少 FM 中的偏差。
- 更新提示。提供明確指引可大規模減少意外的表現。
- 增強數據集。提供不同類型的代詞并添加不同的示例。
- 使用訓練技術。使用公平損失函數、紅藍對抗、RLHF 等技術。