使用大語言模型(LLMs)進行建構變得越來越可行和方便,但要從令人印象深刻的演示過渡到有效的現實應用,仍然存在不少挑戰。本指南分享了作者們一年的實踐經驗,分為三個部分:戰術、操作和戰略。
📌 戰術:使用LLMs的基礎
如果你整理的檔案對人類閱讀毫無幫助,同樣也不會對 AI 智能體有益。
提示 (Prompt Engineering)
鏈式思維(Chain-of-Thought,CoT)提示:鼓勵LLMs在給出最終答案之前列出思維過程,從而減少錯誤資訊的產生。
檢索增強生成(Retrieval Augmented Generation,RAG):通過提供相關的文字片段來支援模型的回答,提高品質並減少錯誤資訊。應指示模型優先使用這些資源。
結構化輸入和輸出:不同的LLM家族偏好不同的格式(例如,Claude偏好XML,GPT偏好Markdown和JSON)。結構化輸入有助於模型更好地理解上下文,並生成更可靠的輸出。
重新評估上下文:定期檢查最終提示,識別並消除冗餘、矛盾和格式不良的問題,以確保對人類和AI智能體的清晰度。
RAG(檢索增強生成)
檢索文件的質量:檢索到的文件的相關性、密度和細節對於模型輸出的有效性至關重要。通過測試檢索結果的隨機化,可以揭示其對性能的影響。
混合搜尋:結合關鍵詞搜尋和基於嵌入的檢索方法,通過利用兩種方法的優勢來提高性能。
檢索索引分區:通過限制對特定組織資料的訪問,確保資料的隱私和安全。
最佳化工作流
設計工作流:有效的LLM應用程式需要良好結構的工作流,而不僅僅是單個提示。經驗豐富的開發人員通常將LLMs管理得類似於初級工程師,設定明確的目標和具體計畫。
快取:為項目(例如新聞文章或產品評論)實施唯一ID可以通過重用已稽核的響應來節省成本和減少延遲。
評估和防護措施:過度強調特定評估如“大海撈針”(Needle-in-a-Haystack,NIAH)可能會影響整體性能。有效的評估應多樣化且任務特定。
.
📌 操作:日常和組織關注點
要獲得高品質的資料標註,一個有效的方式是將人在環中 (Human-in-the-Loop, HITL) 融入到使用者體驗 (User Experience, UX) 的設計中。
通過便捷的反饋和更正方式,我們不僅能即時最佳化輸出結果,還能收集寶貴資料,進而提升模型的性能。
在進行產品或項目規劃時,要預留足夠的時間用於建立評估系統和進行多次實驗。可以參考工程產品的規格書,但要在其中加入明確的評估標準。
在制定項目路線圖時,不要低估實驗和評估所需的時間—預計在正式投入生產前,需要多次迭代開發和評估。
資料管理
開發與生產資料差異:定期檢查和減輕開發與生產資料之間的差異,以確保模型性能的一致性。
每日輸入和輸出審查:定期記錄和審查LLM的輸入和輸出,識別新模式和失敗模式,並進行及時調整。
模型管理
選擇合適的模型:從滿足需求的最小模型開始,以降低成本和延遲。鏈式思維和少樣本提示等技術可以提升較小模型的性能。
人類在環(Human-in-the-Loop,HITL):將HITL整合到使用者體驗設計中可以改善即時輸出質量,並收集有價值的資料以改進模型。這種模式廣泛用於編碼助手和聊天機器人等應用中。
優先考慮需求:嚴格優先考慮需求,以專注於最小可行產品。可靠性和無害性是不可妥協的,而其他因素如可擴展性和成本可以隨著時間的推移進行平衡。
.
📌 戰略:建構LLMs應用而不被超越
模型並非產品本身,真正的產品是圍繞它的系統。
微調和託管
避免過早微調:只有在證明其必要性並擁有足夠資料後才考慮微調。過度依賴微調會分散核心產品開發的資源。
推理API與自託管:使用推理API進行快速整合和迭代,但在受監管的行業中為了更大的控制力,可以考慮自託管。
建構持久性
系統重於模型:專注於圍繞模型建構穩健的系統,包括評估、防護措施、快取和資料飛輪。這些元素提供了超越基礎模型能力的持久價值。
專業化和信任:開發特定領域的專業工具,以建立可靠和值得信賴的使用者體驗。對系統能力的透明度可以建立使用者信心。
LLMOps:採用有助於更快迭代和持續改進的工具和實踐,將評估深度整合到開發過程中。