Prompt:更好的提示與迭代

歡迎來到啾啾的博客🐱。
記錄學習點滴。分享工作思考和實用技巧,偶爾也分享一些雜談💬。
有很多很多不足的地方,歡迎評論交流,感謝您的閱讀和評論😄。

目錄

  • 1 引言
    • 1.1 引用資料
  • 2 更好的提示
    • 2.1 情景學習ICL
      • 2.1.1 基礎指令式Prompt(Zero-shot)
      • 2.1.2 少量樣本提示的Prompt(Few-shot)
      • 2.1.3 QA
    • 2.2 Chain of Thought(CoT)
      • 2.2.1 零樣本思維鏈(Zero-shot CoT)
      • 2.2.2 少樣本思維鏈 (Few-shot CoT)
      • 2.2.3 自我一致性(Self-Consistency)
    • 2.3 其他
  • 3 迭代技巧
    • 3.1 直接提問
    • 3.2 任務驗證
    • 3.3 引導反思法
  • 4 總結

1 引言

在上一篇中,我們了解了提示詞Prompt的構成、評估、優化和抄作業方法。
了解到了可以通過LLM預處理、核心共識等手段優化或寫出一個好的提示詞,也建立了好的提示詞應該是給予LLM引導的認知。
本篇我們繼續深入了解Prompt,了解寫好Prompt的細節。

1.1 引用資料

《Can Generalist Foundation Models Outcompete Special-Purpose Tuning? Case Study in Medicine》

https://huggingface.co/docs/transformers/main/tasks/prompting

2 更好的提示

2.1 情景學習ICL

情境學習(ICL)是基礎模型的一項關鍵能力,允許模型僅通過少數任務示例即可解決新任務。例如,可以通過在測試問題前加上幾個不同的問題示例和期望結果來創建 ICL 提示。ICL 不需要更新模型參數,但可以提供類似于微調的效果。在少樣本提示中使用的示例選擇可以顯著影響模型性能。

ICL核心思想是給予情景/角色+提供示例+定義輸出格式+明確任務邊界:

  1. 給予情景/角色: 開頭設定了“專業的數據分析師”角色,引導模型以更專業的標準進行判斷。
  2. 提供范例 (Few-shot Learning): 提供了兩個清晰的示例,讓模型學習到任務的具體要求和判斷標準。
  3. 定義輸出格式: 示例本身就規定了清晰的分類:結果格式,模型會大概率遵循這個格式,確保輸出的統一性和規范性。
  4. 明確任務邊界: 使用分隔符—清晰地將引導部分和實際任務分開。

即,創建提示詞時給出情景可以引導LLM更好地完成任務。

2.1.1 基礎指令式Prompt(Zero-shot)

這個例子直接給出任務,不提供任何背景情景或格式示例。

任務:將以下客戶評論總結為“積極”或“消極”兩類。評論:
1. “我上周買的這雙鞋,穿起來非常舒服,而且款式也很新潮,朋友們都問我在哪買的。”
2. “等了兩個星期才到貨,結果發現尺碼發錯了,聯系客服也沒人理,太失望了。”
3. “這款咖啡機的設計很漂亮,放在廚房里很有格調。磨出來的咖啡豆也很香醇。”
  • Qwen3深度思考 時間:20250616
    ![[Prompt細節補充.png]]

這個 Prompt 很直接,但它依賴于模型自身對“積極”和“消極”的理解,并且沒有指定輸出格式。模型可能會給出正確的答案,但輸出形式可能不統一。
例如這里Qwen3直接給出“[積極,消極,積極]”列表。我們再次請求(每次請求均新開對話)
![[Prompt細節補充-3.png]]

![[Prompt細節補充-4.png]]

可以看到每次輸出都不一致。

2.1.2 少量樣本提示的Prompt(Few-shot)

這個例子通過提供背景角色、明確的任務指令,并給出幾個完整的“問題-答案”范例,來為模型設定清晰的情景和預期的輸出格式。

你是一位專業的數據分析師,負責處理電商平臺的客戶反饋。你的任務是將客戶的原始評論精準地分類為“積極”或“消極”。請嚴格按照我給出的格式完成任務。以下是一些示例:# 示例 1
評論:“這款耳機的音質超出了我的預期,降噪效果也很棒,通勤路上終于可以安靜地聽音樂了。”
分類:積極# 示例 2
評論:“我訂的是套餐A,但送來的是套餐B,而且食物都冷了。”
分類:消極
---現在,請根據以上標準和格式,對以下新的評論進行分類:評論:
1. “我上周買的這雙鞋,穿起來非常舒服,而且款式也很新潮,朋友們都問我在哪買的。”
2. “等了兩個星期才到貨,結果發現尺碼發錯了,聯系客服也沒人理,太失望了。”
3. “這款咖啡機的設計很漂亮,放在廚房里很有格調。磨出來的咖啡豆也很香醇。”
  • Qwen3深度思考 時間:20250616
    ![[Prompt細節補充-2.png]]

再次請求:
![[Prompt細節補充-5.png]]

這個 Prompt 給予了模型更豐富的上下文和更明確的引導,通常會比第一個 Prompt 獲得更準確、更穩定的結果。

2.1.3 QA

Q:怎么穩定LLM每次的輸出格式
A:給予示例。少樣本學習是最有效的情景學習方法。通過提示方法,通過少量示例,基礎模型能夠快速適應特定領域,并學會遵循任務格式。

2.2 Chain of Thought(CoT)

思維鏈(CoT)使用自然語言語句,例如“讓我們一步步思考”,明確鼓勵模型生成一系列中間推理步驟。該方法已被發現能顯著提升基礎模型進行復雜推理的能力。大多數思維鏈方法都集中在使用專家手動編寫包含思維鏈的少樣本示例用于提示。

CoT就是引導LLM進行推理、思考。它將一個復雜的任務從 “輸入 -> 輸出” 的黑盒模式,轉變為 “輸入 -> 推理步驟 -> 輸出” 的白盒模式。
但是自我生成的CoT推理鏈存在風險,可能包含幻覺或錯誤的推理鏈。

2.2.1 零樣本思維鏈(Zero-shot CoT)

不給出推理示例,在prompt后面加:

  • 讓我們一步步思考。 (Let’s think step-by-step.)”
  • 請詳細說明你的推理過程。
  • 請分解問題并逐步解決。

這種方法非常便捷,對于能力較強的大模型(如 GPT-4)在大多數中等難度的推理任務上效果顯著。

2.2.2 少樣本思維鏈 (Few-shot CoT)

這是更強大、更可控的方式。引導LLM思考并給出思考示范。

你是一位資深的客戶支持主管,需要分析客戶投訴的根本原因并提供解決方案。請遵循嚴謹的邏輯推理過程。# 示例 1
評論:“等了兩個星期才到貨,結果發現尺碼發錯了,聯系客服也沒人理,太失望了。”
分析過程:
1.  識別客戶的核心不滿點:物流慢、商品錯發、客服響應不及時。
2.  問題歸因:物流部門延遲發貨;倉庫部門揀貨錯誤;客服部門人手不足或流程問題。
3.  根本原因:多部門協同流程存在漏洞。
最終結論:這是一個涉及物流、倉儲和客服的綜合性服務失敗案例。---現在,請根據以上分析范例,處理以下新評論:評論:“我買的吸塵器用了一次就充不進電了,申請售后,你們的維修點居然在另一個城市,來回郵費比我買個新的還貴!”

2.2.3 自我一致性(Self-Consistency)

可以通過多次運行和投票來消除單次推理的偶然性錯誤。

  1. 不只讓模型思考一次,而是讓它用多種方式思考多次(例如,使用略有不同的措辭提問,或者讓模型以不同的溫度參數生成多個回答)。
  2. 然后檢查這些不同的“思維鏈”最終導向了哪個答案。
  3. 選擇那個出現次數最多、最一致的答案作為最終結果。

![[Prompt細節補充-6.png]]

2.3 其他

另外,大量研究和實踐表明,大型語言模型(LLM)對 Prompt 開頭和結尾的信息最為敏感,而處在中間部分的信息則有可能被“遺忘”或忽略。 這種現象被稱為“中間忽略 (Lost in the Middle)”效應。
這與模型處理長文本的內部機制(如注意力機制)有關。模型在生成下一個詞時,會“回顧”整個輸入文本,但它分配給不同位置的“注意力權重”是不均勻的。通常,開頭部分為任務設定了基調和目標,結尾部分是它要直接回應的最新指令,這兩部分自然會獲得最高的權重。

所以,在實戰應用中,我們需要:

  • 重要指令放兩頭
    將最關鍵的任務指令、角色設定或輸出格式要求,明確地放在 Prompt 的最開始。然后,在所有上下文、示例都提供完畢之后,于結尾處再次重申核心任務或直接提問。

優化前:

請扮演一位營銷專家。這里有一些我們產品的背景資料:[...大量背景資料...],以及一些成功的營銷案例:[...大量案例...]。請為我們的新產品寫一個營銷文案。

優化后:

**任務:為新產品撰寫一份引人注目的營銷文案。**
**角色:你是一位頂級的營銷專家。****產品資料:**
[...大量背景資料...]**參考案例:**
[...大量案例...]**輸出要求:**
請現在根據以上所有信息,為我們的新產品撰寫一份營銷文案,要求風格活潑,不超過200字。

3 迭代技巧

我們在持續調整、迭代prompt時,需要確認LLM記住的規則是否跑偏。
所以,我們需要使用一些指令來查詢LLM的上下文,總結我們給的指令。

3.1 直接提問

通用模板:

  • “請總結一下到目前為止,你被賦予了什么角色,以及需要遵守哪些核心要求?”
  • “在我們繼續之前,請確認一下你當前的角色設定和任務目標。”
  • “你正在扮演什么角色?為了完成我的任務,你需要遵循哪些具體的輸出格式或限制?”

3.2 任務驗證

設計一個“測試任務”,看模型的行為是否符合你之前的設定。這能更好地檢驗模型是否真正“理解”并“應用”了規則。

通用模板:

  • “作為一個小測試,請用你現在的角色/格式,處理以下這個簡單任務:[一個與任務無關的簡單輸入]”
  • “為了確保你已理解,請用你被要求的格式,重新組織一下這句話:[一句話]”

3.3 引導反思法

和CoT思路類似。引導模型在回答前先“自我反思”一遍規則。

通用模板:

  • “對于我接下來的問題,請先在內部思考并一步步確認你需要遵循的指令,然后再給出符合所有要求的最終答案。” (這種方式你看不到它的思考過程,但能提升結果的準確性)
  • “請先列出你將要遵循的1、2、3條核心指令,然后在分割線下方,再正式回答我的問題。” (這種方式最透明)

4 總結

結合上篇內容,做一些Prompt編寫小技巧總結。

https://huggingface.co/docs/transformers/main/tasks/prompting 有總結最佳實踐哦

  • 清晰結構
    至少要有核心公式RPC:規則(Rules)+角色(Persona)+上下文(Context)。

  • 給予結果示例(少樣本學習)
    引導中包含示例

  • 要求推理思考
    在prompt附帶思考示例。

  • 調整然后多次運行
    調整然后多次運行,以獲取偶然性最小的結果。

  • 重要指令放兩頭
    將最關鍵的任務指令、角色設定或輸出格式要求,明確地放在 Prompt 的最開始。然后,在所有上下文、示例都提供完畢之后,于結尾處再次重申核心任務或直接提問。

  • 格式要求(一種分離解耦)
    使用 — 或者 # 分隔符分割劃分不同區域,來幫助模型更好地理解結構。

  • 多說“做什么”,少說“不做什么”
    模型更容易理解和執行正面指令。盡量使用積極、肯定的指令。與其說“不要在回答中使用專業術語”,不如說“請用通俗易懂的語言向初學者解釋”。

  • 持續迭代
    從簡短且簡單的提示開始,并對其進行迭代以獲得更好的結果。

  • 寫出結果簡單開頭
    通過寫出第一個詞甚至第一句話來引導模型生成正確的輸出。

總結一下就是“給示例、要思考、多嘗試”。

另外需要注意的是,雖然提示是處理 LLMs 的強大方式,但在某些情況下,使用微調模型甚至進行模型微調效果更好。

以下是一些使用微調模型是合理的情況。

  • Your domain is extremely different from what a LLM was pretrained on, and extensive prompting didn’t produce the results you want.
    你的領域與 LLM 預訓練的內容極其不同,并且廣泛的提示沒有產生你想要的結果。
  • Your model needs to work well in a low-resource language.
    您的模型需要在低資源語言環境中表現良好。
  • Your model needs to be trained on sensitive data that have strict regulatory requirements.
    您的模型需要在嚴格監管要求的數據上進行訓練。
  • You’re using a small model due to cost, privacy, infrastructure, or other constraints.
    由于成本、隱私、基礎設施或其他限制,你正在使用一個小模型。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/85696.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/85696.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/85696.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SQL85 統計每個產品的銷售情況

SQL85 統計每個產品的銷售情況 好復雜,俺不中了。。 問題描述 本查詢旨在分析2023年各產品的銷售情況,包括: 每個產品的總銷售額、單價、總銷量和月均銷售額每個產品銷量最高的月份及其銷量每個產品購買量最高的客戶年齡段 解題思路 1. 基…

Django MAC Pycharm 命令行建立項目,注冊app運行失敗,找不到views導入包

相對復雜的情況 你沒有直接在Pycharm中建立一個Django項目,而是直接建立某個項目或者打開某個項目,使用命令后安裝Django后,使用命令后建立了Django項目,盡管你的目錄盡可能干凈,只有Django項目,但是這仍然…

窄帶和寬帶誰略誰優

窄帶(Narrowband)與寬帶(Broadband)深度對比 ——涵蓋 優缺點、適用場景、調制方式 1. 窄帶(Narrowband) 1.1 核心特點 帶寬:≤25 kHz(典型值,如NB-IoT僅占用180kHz&a…

李佳琦直播間618收官:6成銷量為國貨,多品類增超25%

618大促迎來收官,作為電商消費的關鍵風向標,李佳琦直播間生動呈現了當下消費市場的多元趨勢。 據「TMT星球」了解,在長達近40天的大促里,李佳琦直播間不僅延續過往的高人氣與強帶貨力,更在高質價比產品、高質量服務保…

c++ noexcept關鍵字

noexcept 是 C11 中引入的一個關鍵字,用來標記函數聲明,表示該函數不會拋出異常。它可以用于函數、函數指針、Lambda 表達式等。使用 noexcept 可以幫助編譯器進行優化,提高代碼的執行效率,并且讓程序在處理異常時更加明確。 1. …

騰訊混元3D制作簡單模型教程-2

以下是騰訊混元3D制作簡單模型的詳細教程,整合最新版本特性(截至2025年6月),操作門檻低且無需專業基礎: 🖥 一、在線生成(最快30秒完成) ?訪問平臺? 打開 騰訊混元3D創作引擎官網…

阿里云申請ssl證書,同時需要綁定域名,下載nginx壓縮包,nginx添加證書路徑即可

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 文章目錄 一、ssl是什么?二、登錄阿里云三、圖片教程四、添加域名前綴(www)如:www.baidu.com總結 一、ssl是什么? …

額度互動促進金融健康,螞蟻消金創新智能實時交互式風控系統

“螞蟻消金希望利用交互式智能風控技術,挖掘年輕人努力成長的證明”。6月19日,在上海舉行的2025中國國際金融展上,螞蟻消金首席風險官林嘉南分享了,如何將大模型技術應用在交互式智能風控領域,從而促進額度的互動性&am…

SAP-ABAP:LOOP ... ASSIGNING高效處理內表數據詳解

在ABAP中&#xff0c;LOOP ... ASSIGNING 是高效處理內表數據的關鍵技術&#xff0c;它通過字段符號(field symbol) 直接訪問內表內存地址&#xff0c;避免數據副本創建。以下是詳細用法指南&#xff1a; 一、基礎語法結構 FIELD-SYMBOLS: <fs_line> TYPE any. " …

Tomcat本地部署Maven Java Web項目

接下來是在widows部署maven javaweb 首先要配置tomcat&#xff0c;我這里是聯合項目&#xff0c;需要配置多個tomcat 選擇每個對應的war包 這里的項目名和端口號要改&#xff0c;否則多個項目啟動會因為端口號占用無法啟動 Tomcat運行項目 打包 在右邊的Maven視圖里面找到…

golang--具名返回值、匿名返回值與 defer 語句之間的關系,以及 panic 對它們的影響

好的&#xff0c;我們來詳細探討 Go 語言中具名返回值、匿名返回值與 defer 語句之間的關系&#xff0c;以及 panic 對它們的影響。這是 Go 錯誤處理和資源管理中的核心機制。 核心概念 具名返回值 (Named Return Values): 在函數簽名中聲明返回變量名。例如&#xff1a;fun…

FFmpeg 超級詳細安裝與配置教程(Windows 系統)

1. 前言 FFmpeg 是一個用于處理視頻、音頻等多媒體文件的開源工具包。它支持幾乎所有的多媒體格式轉換、剪輯和編輯&#xff0c;是開發者和多媒體工作者必備的工具。本文詳細講解如何在 Windows 系統上安裝 FFmpeg 并進行基本配置。 2. 下載 FFmpeg 安裝包 打開 Download FFmp…

Pytorch中gather()函數詳解和實戰示例

在 PyTorch 中&#xff0c;torch.gather() 是一個非常實用的張量操作函數&#xff0c;主要用于根據索引從輸入張量中選擇特定位置的值。它常用于注意力機制、序列處理等場景。 函數定義 torch.gather(input, dim, index) → Tensorinput&#xff1a;待提取數據的張量。dim&…

uniapp 微信小程序在線引入字體圖標

在線引入字體圖標&#xff0c;出現體驗版&#xff0c;真機調試字體圖標不出來&#xff0c;模擬器上是好的 由于字體圖標和小程序域名不在同一個&#xff0c;所以出現了跨域問題&#xff0c;將字體圖標文件放到小程序同一個域名下就好了

macOS版的節點小寶上架蘋果APP Store了

前言 前段時間很多小伙伴按照小白的教程在飛牛NAS部署了節點小寶之后&#xff0c;Windows的小伙伴玩得不亦樂乎&#xff01; 反觀macOS用戶……因為沒有#macOS版本的節點小寶&#xff0c;就算是在飛牛NAS上部署了節點小寶&#xff0c;卻一點也開心不起來。 畢竟iOS版本的節點…

tensor向量按任意維度進行切片、拆分、組合

torch.index_select(input_tensor, 切片維度, 切片索引) 注意&#xff1a;切完之后&#xff0c;轉onnx時會生成Gather節點&#xff1b; torch自帶切片操作&#xff1a; start : end : step&#xff1a; 范圍前閉后開&#xff0c;將其放在哪個維度上&#xff0c;就對那個維度…

(八)Linux進程程序替換

1 進程替換 進程替換是為了讓程序能在不創建新進程的情況下&#xff0c;讓父進程和子進程執行不同的代碼&#xff0c;以實現控制清晰、執行高效的程序調度機制。 1.1 先看效果 #include <stdio.h> #include <unistd.h> int main() {printf("before:I am a p…

支持 TDengine 的數據庫管理工具—qStudio

qStudio qStudio 是一款免費的多平臺 SQL 數據分析工具&#xff0c;可以輕松瀏覽數據庫中的表、變量、函數和配置設置。最新版本 qStudio 內嵌支持 TDengine。 前置條件? 使用 qStudio 連接 TDengine 需要以下幾方面的準備工作。 安裝 qStudio。qStudio 支持主流操作系統包…

破解 VMP+OLLVM 混淆:通過 Hook jstring 快速定位加密算法入口

版權歸作者所有&#xff0c;如有轉發&#xff0c;請注明文章出處&#xff1a;https://cyrus-studio.github.io/blog/ VMP 殼 OLLVM 的加密算法 某電商APP的加密算法經過dex脫殼分析&#xff0c;找到參數加密的方法在 DuHelper.doWork 中 package com.shizhuang.duapp.common…

Automatisch:開源的工作流自動化利器

在當今數字化的時代,企業和個人都在尋找高效的方式來自動化業務流程,減少手動操作帶來的時間和成本消耗。Automatisch 作為一款開源的 Zapier 替代方案,為我們提供了一個強大而靈活的工具,讓工作流自動化變得更加簡單和可控。 一、Automatisch 簡介 Automatisch 是一個商…