prompt engineering ## prompt engineering ## prompt engineering ## prompt engineering
一、定義
Prompt 工程(Prompt Engineering)是指在使用語言模型(如 ChatGPT、文心一言等)等人工智能工具時,設計和優化輸入提示(prompts)的過程。這些輸入提示是用戶向模型提出的文本指令,用于引導模型生成滿足特定需求的高質量輸出,比如回答問題、生成文本內容(故事、詩歌、代碼等)。
二、 概念
樣本提示
樣本提示是指在prompt engineering過程中,通過向大模型定數量的示例,以便引導大模型生成特定的、高
質量的輸出。從提供樣本數量的角度,可以分為zero-shot和few-shot,此外我們基于實際使用,增加了一種
新的定義:full-shot,即全量樣本。
zero-shot | few-shot | full-shot | |
---|---|---|---|
定義 | 指在沒有提供任何示例的情況下, 利用經過大量數據訓練并調整指令 的大型語言模型(LLM)來執行任 務。 | few-shot是指通過在提示中提供少量示 例來引導模型進行上下文學習,使大模 型捕獲示例的特征,輸出更符合預期的 結果。 | 是指通過枚舉所有可能性來制作樣 本,輸入大模型,讓大模型在樣本的 范圍內返回內容。 |
prompt舉例 | 翻譯任務: 請將用戶給定的內容進行中文和 英文互譯 | 情感分析: 請分析用戶給定內容的情感,屬于正 面、負面或者中性,示例: 我今天感覺棒極了!–正面 這真是糟糕透頂的一天。–負面 今天是星期三。–中性 | 根據用戶偏好中每周運動天數安排 周計劃的運動日和休息日 {{exercise_days}為0時,每周運 動日應為0天,休息日為7天。 {{exercise_days}為1時,每周運 動日應為1天,休息日為6天。 {{exercise_days}為2時,每周運 動日應為2天,休息日為5天。 {{exercise_days}為3時,每周運 動日應為3天,休息日為4天。 {{exercise_days}為4時,每周運 動日應為4天,休息日為3天。 {{exercise_days}}為5時,每周運 動日應為5天,休息日為2天。 {{exercise_days}為6時,每周運 動日應為6天,休息日為1天。 {{exercise_days}為7時,每周運 動日應為7天,休息日為0天。 |
使用場景 | 適用于模型已經在大量數據上進行 了訓練,能夠理解和執行某些任務 的場景。如: 判斷內容的情感傾向或者正面/負 面 | 適用于模型在沒有足夠數據的情況下, 難以準確執行任務的場景。如: 物體識別、特征識別 | 適用于可能性數量較小且確定的場 景,限定大模型自由發揮的空間,確 保生成結果不超出預設范圍。 |
思考方式
- Chain - of - Thought (COT)
- 定義
- 思維鏈(Chain - of - Thought)是一種在自然語言處理中用于提升語言模型推理能力的技術。它通過在提示(prompt)中加入中間推理步驟,引導語言模型像人類一樣逐步思考并解決問題,而不是直接給出答案。
- 工作原理
- 以一個數學文字題為例,如 “小明有 5 個蘋果,小紅的蘋果數是小明的 3 倍少 2 個,問小紅有幾個蘋果?”。傳統的 prompt 可能只是簡單地將問題輸入給語言模型,要求其輸出答案。而在 COT 中,prompt 會這樣設計:“首先,我們知道小明有 5 個蘋果。然后,計算小明蘋果數的 3 倍,即 5×3 = 15 個。接著,因為小紅的蘋果數是小明的 3 倍少 2 個,所以用 15 - 2 = 13 個。所以,小紅有 13 個蘋果。”
- 通過這種逐步推理的提示,語言模型能夠更好地理解問題的解決邏輯,并且在遇到類似的推理問題時,按照這種思維鏈模式進行思考和回答。
- 應用場景
- 數學和邏輯推理問題:在解決復雜的數學方程式、幾何證明以及邏輯謎題等方面表現出色。例如,在證明幾何定理時,思維鏈可以引導模型從已知條件出發,逐步推導出結論。
- 知識問答和文本理解:對于需要深度理解和推理的知識問答,如歷史事件的因果分析、科學原理的解釋等,COT 可以幫助模型提供更有條理的回答。例如,在回答 “工業革命對社會結構產生了什么深遠影響?” 時,模型可以通過思維鏈先闡述工業革命帶來的生產力變化,再說明這種變化如何導致社會階層的分化和重組等。
- 定義
檢索增強生成(Retrieval-Augmented Generation, RAG)
檢索增強生成(Retrieval-Augmented Generation, RAG)是一種結合信息檢索和生成模型的技術,旨在提高生成式模型的準確性和信息豐富性。傳統的生成模型(如GPT-3)在生成文本時主要依賴于訓練數據中的知識,而檢索增強生成通過引入外部知識庫或文檔庫,能夠在生成過程中動態獲取相關信息,從而生成更為準確和上下文相關的內容。
RAG 的基本流程包括以下幾個步驟:
- 檢索階段:在生成文本之前,系統會根據輸入查詢從一個大型的外部文檔庫中檢索出與查詢相關的文檔或信息片段。這通常使用信息檢索技術,如向量檢索(如使用 ByteGraph)。
- 生成階段:將檢索到的相關文檔或信息片段與原始輸入一起傳遞給大語言模型,以生成最終的輸出文本。大語言模型會利用這些附加信息來提高生成內容的準確性和相關性。
這種方法的優點在于:
- 增強知識覆蓋:通過訪問外部知識庫,生成模型可以利用最新的信息,而不局限于訓練數據。
- 提高準確性:檢索到的相關信息可以幫助生成模型避免常識性錯誤或過時的信息。
- 靈活性:可以根據不同的任務或領域,動態調整檢索的文檔庫,以適應不同的需求。
RAG 在問答系統、對話系統和內容生成等領域有廣泛的應用,尤其是在企業內部需要高準確性和實時信息的場景中表現出色。
工具(Tooling)
大語言模型最初主要用于來生成文本。為了增強其功能和實用性,現代大語言模型可以與外部工具(也稱為“函數(function)”或“API”)集成。這種集成使得模型能夠執行更復雜的任務,超越其原始的文本生成能力。
工具(Tools)通常是外部的API或函數,提供特定的功能或服務。大語言模型可以通過調用這些工具來獲取信息或執行特定任務。例如,模型可以調用一個天氣API來獲取實時天氣信息,或者調用一個計算器函數來執行復雜的數學運算。工具的集成與調用包括:
- API調用:模型通過HTTP請求與外部API進行通信。API通常提供RESTful接口,模型可以發送請求并解析響應。
- 插件系統:如 Coze 這樣的平臺為大語言模型提供插件系統和自動化流程系統,使得模型可以動態加載和使用不同的工具。
- 函數調用:在某些實現中,模型可以直接調用預定義的函數,這些函數可以是本地的或遠程的。
大模型工具的使用,可以:
- 擴展能力:通過工具集成,模型的能力可以大大擴展,能夠處理更廣泛的任務。
- 實時性:工具可以提供實時數據和信息,使得模型的輸出更加準確和相關。
- 專業性:通過調用專門的工具,模型可以在特定領域提供更專業和深入的服務。
典型的應用場景包括:
- 數據查詢分析:數據查詢分析領域可以執行通過可以執行 SQL 的工具訪問企業內部的數據,調用飛書的 API 接口生成飛書文檔,并提醒飛書聯系人關注。
- 客戶服務:在客戶服務中,模型可以調用CRM系統API來獲取客戶和訂單信息,從而提供個性化的服務。
- 金融分析:在金融領域,模型可以調用市場數據API來分析股票趨勢和進行投資建議。