DSPy怎麼用 AI提示詞自動最佳化框架教程
更新時間:2026-10-16 15:38:24 釋出時間:8天前 閱讀:21 views次DSPy是一個由斯坦福大學開發的AI提示詞最佳化框架,不用手動寫提示詞,它自動幫你找到最優提示詞。更準確地說,你仍要說明任務、準備示例並設定評估指標;DSPy會據此搜尋和調整程式中的指令與示例,挑出表現更好的版本,而不是保證找到適用於所有資料的唯一最優提示詞。
第一步:安裝DSPy
先準備Python環境,建議在專案虛擬環境裡操作,避免和其他專案的依賴混在一起。終端執行:pip install dspy-ai。安裝後執行:python -c “import dspy; print(dspy.__version__)”。如果能顯示版本號,通常就說明安裝成功;遇到權限或環境問題,可先確認當前終端使用的是你準備執行專案的那個Python。
接著準備一個可呼叫的語言模型。DSPy本身負責組織和最佳化程式,實際生成仍需要配置模型及相應服務。不同模型提供方的初始化方式和依賴包可能不同,請按所用模型的介面配置。把金鑰放在環境變數或金鑰管理工具中,不要寫進公開程式碼,也別把真實金鑰提交到程式碼倉庫。
第二步:定義模組和任務
先把任務說清楚,例如“根據使用者評論判斷情緒,並輸出簡短理由”。在DSPy裡可用簽名描述輸入和輸出欄位,再選擇預測模組。下面是一個簡化示例:import dspy;class Sentiment(dspy.Signature): text = dspy.InputField(); label = dspy.OutputField();程式模組可以用 dspy.Predict(Sentiment)。簽名是任務說明,不必先把完整提示詞寫成固定模板。
然後配置語言模型,並準備少量有代表性的訓練樣例。樣例可用 dspy.Example(text=”物流很快,包裝完好”, label=”積極”).with_inputs(“text”) 這樣的形式;實際執行時按模型介面提供配置。資料要覆蓋常見表達、邊界案例和不同類別,標籤儘量一致。另留一份獨立驗證資料,避免只在訓練樣例上看起來效果很好。
最佳化前還要定義指標,明確怎樣才算答對。分類任務可以比較預測標籤與標準標籤是否一致;生成任務則可結合準確性、格式和內容要求。指標應貼近真實使用目標,而非只獎勵某種表面措辭。若輸出結構重要,也把格式檢查納入評分,這樣最佳化器才能根據可計算的結果比較候選程式。
編譯最佳化提示詞
選擇最佳化器後呼叫 compile,讓它依據訓練樣例、程式和指標嘗試改進。例如可從 dspy.MIPROv2(metric=你的指標, auto=”light”) 開始,再執行 optimizer.compile(program, trainset=trainset, valset=devset)。其中 metric 是評分函式,trainset 用來提供最佳化樣例,devset 用於比較候選效果。不同版本引數可能變化,執行前請檢視當前文件。
“編譯”不是把程式碼轉換成機器語言,而是搜尋更合適的指令和示例組合,並生成已調整的DSPy程式。第一次試跑可以使用較小預算,檢查耗時、模型呼叫量和評分變化;預算調大通常意味著更多評估與成本。最佳化器的結果取決於訓練資料、指標、模型和搜尋預算,不能把自動最佳化理解成百分之百正確。
第三步:執行和評估效果
用同一批未參與最佳化的測試樣例,分別執行原始程式和最佳化後的程式,再比較準確率、格式合格率或業務指標。測試集不要拿來反覆調參,否則結果會逐漸失去獨立性。建議同時抽查錯誤案例:整體分數提高,不代表每種輸入都改善;特別關注容易誤判的長文字、否定句和模糊表達。
確認效果後,可儲存最佳化後的程式供後續載入,並記錄模型名稱、資料版本、指標、最佳化器配置與測試結果,方便復現。部署前還要檢查響應時間、呼叫費用、異常處理和輸出安全性;模型或資料更新後,應重新評估。若分數不理想,優先檢查示例質量與評分規則,再調整最佳化預算或模組設計。
如果希望瞭解國內替代方案,可進一步看看01Agent:01agent.cgref.cn。比較時重點關注模型接入方式、工作流能力、評測方法和部署需求,再用自己的樣例做小規模試用。本文由潤滅整理,示例僅用於說明DSPy的基本思路,具體介面以你安裝版本的文件為準。