愛好 AI Engineer 電子報 🚀 評估驅動開發和 Prompt 自動最佳化 #17

歡迎訂閱 📬 愛好 AI Engineer 電子報 過往期數點這 📚

Hello! 各位 AI 開發者大家好 👋

我是 ihower,很高興這期跟大家分享我最近的演講內容。

🔝評估驅動開發: 生成式 AI 軟體不確定性的解決方法

這是我這個月演講分享的投影片,定義了 5-Level 開發 Prompt 的評估成熟度等級,幫助大家更好理解如何進行評估。如果資料不夠看的話,我還有整理筆記在這裡。

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

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

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

🎯What is prompt optimization?

如果你對 Prompt 最佳化無法想像,Jason Liu 的這篇帶你簡單認識什麼是 Prompt 最佳化,從挑選 few-shot examples 開始。

🚧Claude 的官方課程

Claude 推出的這個官方課程非常不錯,我推薦看 Real world prompting 這個,可以了解 prompt engineering 和手工做評估的過程。

👊OpenAI 能輸出你想要的格式 (JSON Schema)

YWC 寫的這篇結構化輸出文章很不錯。若要說哪一個功能是我最近開發 AI 最實用的功能,OpenAI 的 Structured Outputs 可以排第一。
透過定義 JSON Schema 可以確保回傳的 JSON 格式,經我實際使用上萬次的 API 呼叫都沒有 JSON 解析出錯,非常好用。
並且 OpenAI 借鑑了 Jason Liu 的 Instructor 框架,使用 Python 的 Pydantic 語法來定義 JSON Schema,整個 code 變得非常簡潔。
於是你就不需要其他結構化的框架了,基本上就是 Pydantic is all you need 和 Pydantic is STILL all you need

可惜其他家模型目前還沒有這樣的功能,如果想找 structured LLM output 框架可以參考這篇這篇

(2024/10/6) 補充: 這篇 Diving Deeper with Structured Outputs 不錯。


希望你會喜歡這期的內容,祝開發順利!

– ihower

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

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

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

閱讀全文〈提示詞 Prompt 自動最佳化: Textgrad 和 DSPy 通用範例〉

評估驅動開發: 生成式 AI 軟體不確定性的解決方法

2024/9/11 在 Hello World Dev Conference 分享的演講投影片  ➡️ 這裡下載 PDF (18.3mb)

後續有補充 Textgrad 和 DSPy 的最佳化 colab 通用範例在這裡

如果你還沒有訂閱我的電子報,歡迎訂閱 📬 愛好 AI Engineer 電子報

議程介紹:

Eval-Driven Development (EDD) 是一種通過特定任務評估,來引導開發 LLM-based 的應用軟體。我們會合成和製作資料集,設計評估指標,然後在評估的輔助下,實現 LLM 應用功能。簡單來說,就是先寫評估再開發。

在評估機制的支持下,我們可以自動最佳化超參數,包括自動提示詞生成 ,來提高應用性能。我們也可以透過這個機制,確保提示詞變更或升級更換模型時,AI 性能不會退化。

最後,評估流程還可以搭配 LLMOps 收集線上數據,進行數據飛輪不斷迭代改進,持續提升 AI 性能。

聽眾收穫:

聽眾將掌握先寫評估再開發的方法論,確保開發出的 AI 軟體能夠達到預期的性能指標。在開發初期就確立明確的目標,從而提高開發效率和結果的可靠性。並且透過自動最佳化超參數技術,可以顯著減少人工調參的工作量,並提升和保障軟體的整體 AI 性能。

愛好 AI Engineer 電子報 🚀 建構 LLMs 應用的戰略、運營和戰術經驗分享 #16

Hello! 你好 👋

我是 ihower,這期累積了不少精彩內容分享給大家。

🔝What We’ve Learned From A Year of Building with LLMs

這包括作者們的 Blog 長文、在 AI Engineer World’s Fair 大會的演講影片,以及我的截圖版本

這是由六位大神一起寫的 What We Learned From A Year of Building With LLMs (我們從一年使用大型語言模型的開發中學到了什麼) 資訊量很高,乾貨滿滿。把開發 LLM-based AI 產品的經驗,分成 戰術、營運和戰略層面,以下摘要節錄: 

閱讀全文〈愛好 AI Engineer 電子報 🚀 建構 LLMs 應用的戰略、運營和戰術經驗分享 #16〉

使用繁體中文評測 RAG 的 Chunking 切塊策略

延續之前做 EmbeddingReranker 評測,這次來研究 RAG 系統中的 Chunking 切塊環節。由於 embedding 和 LLM 模型的長度限制,我們必須將所有文本資料,拆成小塊後再轉成向量放進向量資料庫。

七月份 Chroma 做的這篇非常棒 Evaluating Chunking Strategies for Retrieval,評測了幾個 Chunking 策略,並且提出兩種新的切塊策略,想當然他是用英文文本做的。

因為他有公開 Github Repo 程式碼可以重現他的實驗(非常棒,是真的可以順利執行的),因此我就改成用繁體中文文本試試,排列組合出評測 38 種不同 chunking 的方式。

閱讀全文〈使用繁體中文評測 RAG 的 Chunking 切塊策略〉

愛好 AI Engineer 電子報 🚀 檢索增強生成 RAG 特輯 #15

Hello! 你好 👋

我是 ihower,這集是 RAG 進階特輯。如果不知道什麼是基本的 naive RAG(或叫做 top-k RAG) ,可以先看我的入門投影片有關 RAG 的介紹。簡單講,RAG 就是根據用戶問題,檢索出最相關的內容,然後放到 Prompt 裡面讓模型做參考回答。

閱讀全文〈愛好 AI Engineer 電子報 🚀 檢索增強生成 RAG 特輯 #15〉