> 我的 評估驅動開發 演講投影片: [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