三根操縱桿
當一個基礎模型沒有做到你要的事,你有三根操縱桿——而在提示、RAG 與微調之間做選擇是整個專案裡影響最深遠的設計決策。提示改變你送出的指令;RAG——檢索增強生成——在請求當下把相關事實餵給模型;微調則用進一步訓練改變模型的權重。它們不是對手;成熟的產品常常三者並用。錯誤在於一開始就去抓最重的那根桿子。
一个流程图:用户查询先检索文档,再将其加入提示,然后模型生成答案。
一套決策框架
從便宜又快、做到貴又慢,依序嘗試,一旦任務已經做得夠好就停下來。
- 先用一段紮實的提示加上最好的通用模型。出乎意料地,這常常就是全部的答案。
- 如果失敗來自缺漏或過時的事實,就加上 RAG:把你的文件切塊、嵌入到一個向量庫(vector store)裡、檢索最相符的幾筆,再注入到提示中。
- 如果任務是多步驟或會分岔,先用提示鏈接(prompt chaining)拆解它,再去動任何更重的東西。
- 只有當「提示加 RAG」已到瓶頸時才去微調:你需要一致的招牌風格、嚴格的輸出格式、更低的單次呼叫成本,或讓一個較小的模型在你那個狹窄任務上追上大模型。
人类偏好训练出一个奖励模型,再用它引导对语言模型策略的微调。
編排:把步驟黏在一起
一旦一個應用有不只一次模型呼叫——先檢索再作答、先分類再導向、先規劃再行動——你就需要編排(orchestration)。編排框架管理控制流:它為呼叫排序、在它們之間傳遞狀態、接上檢索與工具、處理重試,並讓你能在整條鏈上做追蹤。你可以自己手刻這些,而對簡單的應用你也應該這麼做;框架真正划算的時候,是當步驟的圖開始分岔、當你想要可抽換的元件,或當你需要開箱即用的可觀測性時。
一个由推理、行动、观察三步组成的循环,驱动多步骤的 LLM 应用。
常見的組合模式
經過編排的應用往往會長成幾種形狀。鏈(chain)依序執行固定的步驟;路由器(router)用一次便宜的分類呼叫來挑選由哪個分支(或哪個模型)處理請求;map-reduce 把一份巨大的文件切開、平行地摘要各個片段,再把它們合併;而代理(agent)則把控制權交給模型本身:它自己決定下一步要呼叫哪個工具、不斷迴圈、做完才停。鏈與路由器可預測、也容易評測;代理強大但更難做到可靠——這正是為什麼本學習軌的最後一篇把代理式產品當成前沿來談。