> 我的 評估驅動開發 演講投影片: [https://ihower.tw/blog/archives/12444](https://ihower.tw/blog/archives/12444)
思路是讓 LLM 自動幫你找最佳 prompt
* https://www.promptingguide.ai/techniques/ape
* https://github.com/keirp/automatic_prompt_engineer
* https://towardsdatascience.com/advanced-prompt-engineering-f07f9e55fe01
* https://zhuanlan.zhihu.com/p/658649353 (2023/12)
* 這篇把後來的 LLM as optimizer 也歸類在一起
* APE, APO, OPRO
* Automated Prompt Engineering (2024/3/10)
* https://towardsdatascience.com/automated-prompt-engineering-78678c6371b9
* 蠻好的一篇簡介概論
* 作者 分成 LLMs as Solvers 和 LLMs as Creators
* LLMs as Solvers 有標準答案
* 基於 accuracy 或 log probability of desired answer
* APE 實作 https://github.com/keirp/automatic_prompt_engineer
* OPRO
* LLMs as Creators 沒有標準答案
* 用 prompt template 透過 LLM 產生 example 後,人類給回饋進行迭代
* What is prompt optimization? (2024/5/22)
* https://jxnl.co/writing/2024/05/22/what-is-prompt-optimization/
* few-shot examples 就是超參數
* Introducing Cohere Prompt Tuner (2024/8/1)
* https://cohere.com/blog/intro-prompt-tuner
* Vertex AI Prompt Optimizer (2024/9/26)
* https://developers.googleblog.com/en/enhance-your-prompts-with-vertex-ai-prompt-optimizer/
* Automatic Prompt Optimization (2024/11/4)
* https://cameronrwolfe.substack.com/p/automatic-prompt-optimization
* https://x.com/cwolferesearch/status/1853465302031556725 (2024/11/4)
* Exploring Prompt Optimization (2025/1/28)
* https://blog.langchain.dev/exploring-prompt-optimization/
* 推薦 Claude Sonnet 3.5 作為首選的優化模型
## SPO | Self-Supervised Prompt Optimization
* https://github.com/geekan/MetaGPT/tree/main/examples/spo
* https://arxiv.org/abs/2502.06855
* https://x.com/dotey/status/1891700710305149122 (2025/2/18)
## Promptim
* https://github.com/hinthornw/promptimizer
* https://blog.langchain.dev/promptim/
## 2024/9/28
* 提示詞 Prompt 自動最佳化: Textgrad 和 DSPy 通用範例
* https://ihower.tw/blog/archives/12490
## 2024/4/17 淺談 Prompt 自動最佳化工具 talk
* 在 2024-4-17-AI小聚 有發表 https://ihower.tw/blog/archives/11996
* https://gamma.app/docs/Prompt--hjhqmaqlpqtcfxo
## claude 的 metaprompt
- https://docs.anthropic.com/claude/docs/helper-metaprompt-experimental
- 使用範例 https://twitter.com/moritzkremb/status/1766850258477482333 2024/3/10
- https://twitter.com/dotey/status/1767646284511314036
- 运行一次要 ~$0.15。 建议使用的时候,不要输入太多内容,否则就变成了翻译,而是内容少一点,让它自由发挥,然后你基于它的结果再手动修改测试可能效果更好
- youtube 解說: https://www.youtube.com/watch?v=hQDgV_IQV2w
- 這個沒有用 dataset 做迭代優化,只是用一個 few-shot prompting 幫忙產生一個適合 claude 的好 prompt
- 會有 scratchpad, explanation, answer, thinking, reasoning....etc 常見 claude 愛用的 XML 標籤
- 非常適合建立提示模板,即允許您填寫更多上下文的提示
* https://twitter.com/dr_cintas/status/1776625701401014446
* 這人拿 metaprompt 丟到 web ui 來做,就不需要 colab 了
- https://twitter.com/mattshumer_/status/1770823530394833242
- 如果您為 Claude 3 Haiku 提供約 10 個範例… 它通常會勝過 Claude 3 Opus,並且遠遠勝過 GPT-4
* 跟 claude 協作寫 prompt 案例 https://twitter.com/genie0309/status/1773019152049144212
* 論點? 不是所有 prompt 都適合全自動化像 dspy 那樣,沒有標準答案的輸出,其實 prompt 也沒有標準答案
* https://twitter.com/9hills/status/1772467763165958602 Claude 3 Opus + ChainForge 手動做: 產生合成數據
* 为什么选择 Claude3 Opus 而不是 GPT-4?因为实践发现, Claude 3 应该是在提示词编写这个任务上 SFT 过,效果明显好于 GPT-4.
* Alex 手動優化案例 https://twitter.com/alexalbert__/status/1767258557039378511
1. 先用 metaprompt 寫初版 prompt
2. 用 opus 產生 diverse test dataset
3. 手動跑測試看看,或用 https://github.com/anthropics/anthropic-cookbook/blob/main/misc/building_evals.ipynb
4. 用 opus 根據回饋再修改一次 prompt
優點: 最簡單, 甚至不需要 colab
缺點: 沒有 dataset,而且格式只針對 claude XML
* AWS 出的一個 Claude Prompt Generator app 版本
* https://github.com/aws-samples/claude-prompt-generator
* https://github.com/aws-samples/claude-prompt-generator/blob/main/src/metaprompt.txt
## OpenAI 的 meta-prompt
* playground 的 meta-prompt
* https://x.com/_philschmid/status/1841369960951546099
* https://gist.github.com/philschmid/3a0ecc9e45763716f4dd9c36b6445fca
* https://baoyu.io/blog/prompt/openais-meta-prompt-for-optimizing-gpt-prompts
* cookbook: https://cookbook.openai.com/examples/enhance_your_prompts_with_meta_prompting
* 官方文件 https://platform.openai.com/docs/guides/prompt-generation
## Claude-ception
* [ ] langchain 根據 Alex 的方案,用 langsmith 也做了一次
* https://twitter.com/LangChainAI/status/1770124528322318522 (2024/3/20)
* Claude-ception: Teaching Claude3 to prompt engineer itself
* elvis 評論 https://twitter.com/omarsar0/status/1770146262609981574
* 影片 https://www.youtube.com/watch?v=Vn8A3BxfplE
* code: https://github.com/langchain-ai/langsmith-cookbook/blob/main/optimization/assisted-prompt-bootstrapping/elvis-bot.ipynb
## gpt-prompt-engineer
- https://github.com/mshumer/gpt-prompt-engineer 7.9k
- https://twitter.com/mattshumer_/status/1770494629844074975 claude-prompt-engineer 3/21
- https://twitter.com/mattshumer_/status/1770942240191373770 claude-opus-to-haiku 3/22
* 有多個版本
* gpt-4 那個, openai 套件有版本問題要修
* 而且最好改 gpt-4-turbo 比較省錢,不然跑下來有點燒 tokens 喔
* 預設產生 10 個候選 prompts 來挑,兩兩對比
* gpt-4 分類版
* opus 版
* haiku 版
優點: 簡單,但需要 colab
## Large Language Models Are Human-Level Prompt Engineers (APE)
* 最早的 APE 論文,評分有用到 logprob
* https://arxiv.org/abs/2211.01910 (2022/11, 2023/3)
- APE 實作 https://github.com/keirp/automatic_prompt_engineer 967
- OpenAI Mark Chen 投影片有講到這個放了一頁
評估是 likelihood 評估 output 和 predict 有多相似
用產生出來的 instruction 搭配 input,會有一個 predict
用 outpout 去找 predict 中的 logprobs 加起來,就代表有多相似 (有點難)
缺點:
官方 code 是爛的,只支援 text-davinci-002,因為改 gpt-3.5-turbo 也沒用,因為 API 端點錯了
openai 也是舊版
需要定義 dataset 有 input 跟 output,但不需要手寫 prompt
覺得已經過時,因為 text-davinci-002 模型比較笨,才用 logsprobs 來做評估吧
現在模型比較聰明,讓模型直接評估答案就好了
## Large Language Models as Optimizers (OPRO)
Optimisation by PROmpting (OPRO)
我問 chatgpt 得到的優化 prompt 範例:
https://chat.openai.com/share/e/4787924c-6da1-436b-a6ba-cc4d940f1bd6
- Large Language Models as Optimizers https://arxiv.org/abs/2309.03409 (2023/9, 2023/12) DeepMind
- https://twitter.com/omarsar0/status/1700249035456598391
- https://twitter.com/Tisoga/status/1699977952363192475
- https://cobusgreyling.medium.com/a-new-prompt-technique-from-deepmind-called-optimisation-by-prompting-opro-918b1057eacd
code: https://github.com/google-deepmind/opro
缺點: 這個官方 code 是實作 paper 的 dataset (例如 MMLU, GSM8K) 而已,沒有提供包裝好的通用 library 跟 colab
## AutoPrompt
* paper: https://arxiv.org/abs/2402.03099 Intent-based Prompt Calibration: Enhancing prompt optimization with synthetic boundary cases (2024/2)
* https://twitter.com/LangChainAI/status/1761457211589689367
* 自動提示是一個提示優化框架,旨在增強和完善實際用例的提示。 它迭代地建立具有挑戰性的邊緣情況的資料集並相應地優化提示
- [ ] https://github.com/Eladlev/AutoPrompt 1.6k
## DSPy
另整理在 [[DSPy]]
## TextGrad
https://textgrad.com/
## AdaFlow
https://github.com/SylphAI-Inc/AdalFlow
## 梯度下降類型
* Prefix Tuning
* Prompt Tuning
* P-Tuning
https://learnprompting.org/docs/trainable/soft_prompting
等等,但是這些 LLM API 不提供喔
https://towardsdatascience.com/advanced-prompt-engineering-f07f9e55fe01
## 其他
* sammo
* A library for prompt engineering and optimization (SAMMO = Structure-aware Multi-Objective Metaprompt Optimization)
* https://github.com/microsoft/sammo
* trace
* End-to-end Generative Optimization for AI Agents
* https://microsoft.github.io/Trace/
* adalflow
* The Library to Build and Auto-optimize LLM Applications
* https://github.com/SylphAI-Inc/AdalFlow
* OpenPrompt: https://arxiv.org/abs/2111.01998 2021/11
* Promptbreeder: Self-Referential Self-Improvement Via Prompt Evolution (2024/9)
* https://arxiv.org/abs/2309.16797