Prompt基本建議:
1.在查詢中包含詳細信息以獲得更相關的答案
總結會議筆記:先將會議筆記總結為一段,然后寫一份演講者的打分表,列出他們的每個要點;最后列出發言者建議的下一步行動或者行動項目(如果有的話)
2.讓模型扮演一個角色
3.使用分隔符清楚的指示輸入的不同部分
總結以下文本:1234
總結由三個引號分割的文本
"""12342132131"""
4.指定完成任務所需任務
5.提供示例
6.指定所需的輸出長度
提示工程
Few-shot
大多數情況下我們寫的Prompt一般稱為One-shot(零樣本)通常依賴模型已經學到的知識
Few-shot 少量樣本教導模型使用非常少量的訓練數據來識別新對象
示例的作用有時超過千言萬語
Few-shot并不復雜,只需要將一些類似的問題和答案作為提示的一部分輸入即可
示例:
- 例題 1:“如果 3 個蘋果售價 6 元,那么 5 個蘋果多少錢?” → 解答:6÷3×5=10 元
- 例題 2:“4 支鉛筆 8 元,買 7 支需要多少錢?” → 解答:8÷4×7=14 元
待解問題:“2 個筆記本 10 元,買 6 個筆記本要花多少錢?” → 模型應輸出 “10÷2×6=30 元”
通過思維鏈提示法提升模型推理能力?
核心:通過在輸入序列中精心設計一系列有序的,邏輯相連的提示或者問題,促使AI模型不僅關注當前任務的直接需求,還能追溯并整合過往信息,形成一條條邏輯清晰的思維軌跡。
充分利用思維鏈提示法的關鍵是:設計高度結構化且具有引導性的提示序列,要求設計者深刻理解目標問題的內在邏輯,布局問題框架,鋪設從簡單導復雜的思考路徑。
動態調整提示策略,根據模型反饋靈活修正思維鏈的方向和深度,也是優化中的重要環節。
最基礎的思維鏈:在輸入末尾加上“let's think step by step" 稱為 Zero-shot-CoT
Few-shot-CoT
通過編寫思維鏈樣本作為提示,讓模型學會思維鏈的推導方式
示例:
輸入文本:
“請解決下面的數學問題,解題時請先寫出詳細的推理步驟,再給出答案。
示例 1:
問題:小明有 5 顆糖,媽媽又買了 7 顆,分給同學 3 顆,還剩幾顆?
推理:
小明原本有 5 顆糖,媽媽買了 7 顆后,現在有 5+7=12 顆。
分給同學 3 顆后,剩下的數量是 12-3=9 顆。
答案:9示例 2:
問題:一個書架有 4 層,每層放 6 本書,借出去 10 本,還剩多少本?
推理:
書架每層 6 本,4 層一共有 4×6=24 本書。
借出去 10 本后,剩下 24-10=14 本。
答案:14現在請解決:
問題:3 個小朋友每人有 4 個氣球,不小心飛走了 5 個,還剩多少個氣球?
請先推理,再給出答案。”
- 思維鏈要 “接地氣”:模仿人類自然推理的口語化表達(如 “首先”“然后”“因為… 所以…”),避免過于簡潔或抽象。
- 示例數量適中:2-5 個示例效果最佳(太少則模型學不會推理模式,太多則可能稀釋重點)。
- 明確提示 “先推理后答案”:在最后一個問題前強調 “請先寫出推理步驟,再給出答案”,防止模型跳過思維鏈。
- 答案格式統一:示例中答案的標注方式要一致(如均用 “答案:XXX”“最終答案:XXX”),方便模型對齊輸出。
- 復雜問題利用此方法準確率依然不夠好
?
Least-to-Most Promoting?
通過人工編的思維鏈提示樣本可能并不能很好的遷移到其他問題中:泛化能力不夠
Google提出兩階段進行的方法
1:自上而下的分解問題
2:自下而上的依次解決問題
LtM的核心不僅在于引導模型拆分問題,還要將子問題的問題和答案回傳給子模型,理論上,整個過程會有三次調用大模型的過程:
- 原始問題 提問 拆分為子問題
- 子問題 提問 獲得子問題回答
- 原始問題 子問題加答案 獲得原始問題回答
主問題:A、B、C、D 四人排隊,A 不在第一個,B 在 C 的前面,D 在 A 的后面,第一個人是誰?
Least-to-Most 提示過程:
子問題 1:根據 “B 在 C 的前面”,可能的位置順序有哪些(只考慮 B 和 C)?
推理:B 必須在 C 左邊,可能的順序是 B→C(中間可隔人)。
答案:B 在 C 前,如 BXXXC、BX CX、BCXX 等子問題 2:結合 “A 不在第一個”,A 可能的位置是?
推理:總共有 4 個位置(1 到 4),A 不能在 1,所以可能在 2、3、4。
答案:A 在 2、3 或 4 位子問題 3:結合 “D 在 A 的后面”,A 和 D 的位置關系是?
推理:D 必須在 A 右邊,即若 A 在 2,D 可在 3/4;A 在 3,D 在 4;A 在 4,D 無位置(排除)。
答案:A 在 2→D 在 3/4;A 在 3→D 在 4主問題(整合子問題):第一個人是誰?
推理:
由子問題 1:B 在 C 前,所以 C 不能在 1;
由子問題 2:A 不能在 1;
由子問題 3:D 在 A 后,若 D 在 1,則 A 需在 D 前(不可能),故 D 不能在 1;
剩下只能是 B 在 1。
答案:B
提示框架
BROKE:背景,角色,目標,關鍵結果,改進
COAST:上下文,目標,行動,場景,任務
ROSES:角色,目標,場景,解決方案,步驟
1. BROKE 框架
背景:
動態Job Shop Scheduling Problem(JSP)涉及在生產過程中處理作業和機器之間的調度問題。隨著任務和作業的動態變化,如何在不確定性中實現高效調度成為一個挑戰。現代算法,如遺傳算法、啟發式算法和強化學習,能夠有效應對這一挑戰。
角色:
調度系統(負責優化任務分配)
生產經理(決策和目標設定)
作業和機器(受調度影響的對象)
目標:
開發一個靈活的調度算法,能夠根據動態輸入(如作業到達、機器故障、生產任務變更等)自動調整和優化調度計劃,以最大化生產效率和減少延誤。
關鍵結果:
提高調度的實時響應能力,能快速處理動態變化
降低作業的延誤時間和機器的空閑時間
提升整體生產效率和成本效益
改進:
探索基于強化學習的調度優化策略,以應對復雜的動態變化
考慮多目標優化,兼顧生產效率、資源使用和任務完成時間
2. COAST 框架
上下文:
在動態JSP環境中,生產過程中可能出現作業需求的突然變化,機器故障或突發事件,這些都要求調度算法能夠快速響應。傳統的靜態調度方法無法適應這種動態變化,需要新的調度方法來優化決策。
目標:
優化動態環境下的作業調度,提高生產效率和機器利用率,減少作業的等待時間,并最大化按時交貨率。
行動:
設計并實現一個動態調度算法,能夠實時調整調度計劃
將遺傳算法與啟發式算法結合,以處理動態作業調度的挑戰
利用機器學習模型預測可能的作業需求和機器狀態變化,從而提前做出調度決策
場景:
制造業車間,多個作業和機器同時運行
每個作業有多個工序,需要依賴不同的機器執行
作業到達時間和任務要求是動態變化的
任務:
實時監控和響應車間中作業和機器的狀態變化
動態調整調度方案,確保盡可能減少生產瓶頸和延誤
進行在線優化,考慮時間窗約束、優先級和機器能力限制等多種因素
3. ROSES 框架
角色:
調度系統:負責管理和優化作業調度
生產管理人員:通過調度系統獲取生產狀態反饋,并做出決策
作業任務:需按特定順序和資源約束完成
機器設備:提供資源來完成作業操作
目標:
實現一個能夠適應動態變化(如作業到達、機器故障)的調度系統,并在保持高效生產的同時,減少因這些變化導致的延誤和資源浪費。
場景:
在一個現代化生產車間中,多個作業和多個機器同時運行。作業到達時間、工序執行時間和機器狀態是動態的,可能在執行過程中出現故障或優先級變化。
解決方案:
設計一個動態調度系統,利用進化算法(如遺傳算法)處理動態變化的作業調度問題
結合智能預測技術(如機器學習)預測未來可能的生產瓶頸,并根據預測調整調度策略
動態調度不僅考慮作業的完成時間,還考慮機器的利用率、設備的維護狀態和作業的優先級
步驟:
建立一個系統模型,描述作業、機器、任務等對象的關系
實現一個動態調度框架,支持實時數據輸入和調度調整
設計和實施遺傳算法或其他進化算法,作為調度優化策略
集成機器學習模型來預測系統的動態變化并優化調度
在實際環境中進行測試和調整,確保系統能有效應對突發事件和需求變化