提示詞 Prompt 自動最佳化: Textgrad 和 DSPy 通用範例

Prompt 自動最佳化的思路,就是用 AI 迭代產生上百上千個提示詞,透過自動化評估,從中挑一個表現最好的 prompt。

延續 評估驅動開發 的演講內容,我用 TextgradDSPy 這兩個史丹佛大學出品的最佳化框架,分別做了通用範例。只需要給任務描述,就可以快速完成 Prompt 自動最佳化的過程,拿到厲害的 prompt 結果。

Textgrad 最佳化 colab 範例

2024/9/18 在 生成式 AI 小聚 分享的 Google Colab 程式碼: 使用 Textgrad 進行 system prompt 的最佳化,只需要有 OpenAI API key 以及修改一下參數就可以跑了。

  • Textgrad 是由史丹佛大學提出的一個最佳化框架,採用文本梯度下降的迭代優化方式
  • 跑出來的結果是一個非常厲害的 zero-shot system prompt
  • 此 Colab 適合沒有標準答案的場景,評估的部分採用 LLM 自動化評估

最佳化過程說明

  1. 使用 o1-preview 合成訓練QA範例 (若你沒有 o1 API 權限,可以換成 gpt-4o)
  2. 使用 gpt-4o 進行 textgrad 最佳化,採用 LLM-as-a-judge 自動化評估
  3. 產生適合 gpt-4o-mini 執行的 system prompt

基本上就是用最貴最聰明的模型,來產生在特定場景下用便宜模型執行效果最好的 prompt。

成本: 在合成10個範例的情況下,此最佳化迭代大約要花5分鐘,耗費 USD 0.8 美金

DSPy 最佳化 colab 範例

2024/9/28 在 人工智慧年會 分享的 Google Colab 程式碼: 使用 DSPy 進行分類 few-shot prompt 的最佳化,只需要有 OpenAI API key 以及修改一下參數就可以跑了。

  • 使用 DSPy 進行分類任務 few-shot prompt 的最佳化,只需要有 OpenAI API key 以及修改參數就可以跑了。
  • DSPy 是由史丹佛大學提出的一個最佳化框架,透過寫 pipeline 程式,來最佳化 few-shot examples 和 prompt 的框架
  • 跑出來的結果是一個準確率超高的 few-shot prompt
  • 此 Colab 適合有標準答案的分類場景

最佳化過程說明

  1. 使用 o1-preview 合成訓練QA範例
  2. 使用 gpt-4o 進行 DSPy 最佳化,會同時最佳化 instruction 和挑選效果最好的 few-shot examples
  3. 產生適合 gpt-4o-mini 執行的 prompt

發佈留言

發表迴響