把任務與模型拆開的 DSPy
The Unreasonable Effectiveness of Separating the Task from the Model — Maxime Rivest & Isaac Miller

Maxime Rivest 與 Isaac Miller 主張把 AI 任務寫成 specs、code、evals 三件事,實作交給優化去換,並預告 DSPy 4 的 DSPy.Flex 與 Qualitative Learning。
這場講了什麼
- 任務當成函式來寫:Maxime Rivest 認為 AI 程式也該像函式,有名字、輸入、輸出,別人只要知道合約就能當黑盒使用。介面固定之後,裡面的提示、agent、工具怎麼換,外面都不用動。
- 三種語言定義任務:這是 DSPy 作者提出的想法。instructions 說明該發生什麼,code 寫死一定要成立的限制,evals 靠範例涵蓋說不清的長尾行為。三者齊備,目標才算完整指定,才能自動優化。
- 優化對象一路往上:Maxime 回顧 DSPy 早期用程式找 few-shot 範例,後來能自動優化 instructions,接下來希望連實作細節都交出去。
- 換實作可以省很多錢:Isaac Miller 說企業用 DSPy 有兩個好處,其中之一是實作變便宜。Shopify 從昂貴模型換成便宜模型,保留同一套 evals,做到便宜 550 倍。
- 新技術一行就能試:像 RLM 這樣的研究成果進到 DSPy 之後,加一行就能試,signature 不變,有沒有用自己看。Isaac 也預告了 DSPy 4 的 DSPy.Flex 與 Qualitative Learning。
- AGI 之後仍要最後一哩學習:Isaac 認為再聰明的模型也不知道你的任務與脈絡,還是需要最後一哩的學習;面對每個新技術,則要拿資料去驗它能不能解自己的問題。
影片從哪一段開始看14 段
- 00:12開場:函式的啟發Maxime 以程式設計裡的函式類比,主張 AI 程式也該把任務與模型、harness、實作細節分開。
- 01:52為什麼要固定介面這三年新名詞、新技巧不斷冒出,新模型幾乎兩週一個,但都只是實作手段,應該包在清楚的合約裡,才有彈性換來換去。
- 02:27自己做過的小程式Maxime 舉自己的例子:從農場發票抽出稅務數值,以及鍵盤指令修正或改寫剪貼簿文字。
- 03:38大任務與不變的邊界用 RLM 為整個收件匣的新信擬回覆,或給 spec 與 repo 產出 PR;邊界固定後,裡面從簡單提示換成 agent、工具、loop engineering,外面都不動。
- 04:38指定任務要三件事光有 signature 不夠;DSPy 作者提出要有 instructions、code、evals 三種語言,才能自動優化;先講 instructions,用自然語言表達需求。
- 06:09code:一定要成立的限制以稅務程式為例:第一次沒抽到就改用 chain of thought 重跑,數值小於零就丟錯誤交給人看。
- 07:14evals:說不清的長尾Maxime 講農場上父親說不出怎麼認出楓樹,自己是靠大量範例學會;這類潛在行為要靠 evals 表達。
- 08:17三者齊備後開始優化specs、code、evals 到位後可用 GEPA 這類方法優化;DSPy 早期靠程式找 few-shot,後來自動優化 instructions,接著要交出實作細節。
- 09:23企業用法:實作變便宜Isaac 接手,說明靈活實作可以搜尋出便宜的解法;Shopify 換成便宜模型、沿用同一套 evals,成本便宜 550 倍。
- 10:30生態系的新技巧這些技術不保證解你的問題,但能解子問題;一位 MIT 博士生的 Recursive Language Models 一行就能加進來試,過去一年還有 GEPA、Better Together、Multi-Module GRPO。
- 11:37DSPy.Flex新模組,優化對象從 few-shot 到提示再到程式碼,可以替任何函式學出一套專屬 harness,實作長怎樣不重要。
- 12:26Qualitative Learning建 evals 很難:好壞難定義、定義時會丟細節、資料集只是現實的代理;想讓模型從 production 的 traces、使用者行為與分析中,自動改進 evals。
- 14:14AGI 之後怎麼辦就算模型很聰明,也不知道你的任務、脈絡與人際關係,仍需要最後一哩的學習。
- 15:27收尾:資料驅動地檢驗DSPy 從 2022 年起就圍繞 specs、code、evals;優化對象從 few-shot、提示、harness 走到 evals,但每個新技術都該拿資料問它能不能解自己的問題。
值得記的話5 句
Functions are reusable, composable, testable, and optimizable.
函式可重用、可組合、可測試、可優化00:46Well, these are all just implementation tactics.
這些都只是實作手段02:09it's one line and your signature stays the same.
只要一行,signature 完全不變11:04Intelligence is very different from being all knowing.
聰明和無所不知是兩回事14:30you should hold your prompts, models, and code accountable to the problem that you need them to solve.
要讓提示、模型和程式對你想解的問題負責15:46
名詞與人物8 個
- DSPy
- 開源的 Python 框架,把函式的性質帶給 AI 程式,提供定義與優化任務的工具
- signature
- DSPy 裡宣告輸入與輸出介面的寫法,也放自然語言的 instructions
- specs / code / evals
- 定義任務的三種語言:該發生什麼、一定要成立什麼、說不清的長尾行為
- Recursive Language Models(RLM)
- 一位 MIT 博士生的論文,用來處理某些長 context 問題,DSPy 可以一行加入
- GEPA
- Isaac 說是 Berkeley 出的 prompt optimizer,可依指標優化程式
- DSPy.Flex
- DSPy 4 預告的新模組,替任一函式學出客製的 harness
- Qualitative Learning
- 研究中的方向,讓模型把環境裡的文字回饋轉成 evals,持續改進
- Shopify
- Isaac 舉的企業案例,換成便宜模型並沿用同一套 evals
提到但沒有展開
- Isaac 用 Einstein 打比方:請他幫忙回 email,他大概會先問 email 是什麼;AGI 會懂 email,但不會懂你要打交道的那些人,那得靠時間慢慢學。
- Qualitative Learning 的回饋來源包括 production 的 traces、使用者行為、產品分析,以及模型主動詢問資料該怎麼表示。
同一站:Prompt Engineering2 場
- 駕馭 Fable 的四個心法001 · Thariq Shihipar(Anthropic) · 19 分
- 把任務與模型拆開的 DSPy你在這裡