題目與適用情境
你負責一個包含檢索、模型呼叫和工具執行的 GenAI 應用。團隊需要回答:哪個模型版本導致首 token 延遲上升?某個工具是否增加失敗率?成本是否集中在少數租戶?離線評估分數下降時,能否回放對應請求而不暴露提示中的個資?請使用 OpenTelemetry 語意約定設計 traces、metrics、events 和資料品質門檻。
本題考察觀測資料建模與驗證,不綁定特定廠商。OpenTelemetry 將語意約定定義為跨程式碼庫、函式庫和平台共享的屬性命名與意義;GenAI 約定涵蓋模型、工作階段、工具呼叫、token 用量和評估資訊,但部分內容仍在演進,不能把每個屬性都當成穩定協定。
面試官在考察什麼
面試官希望看到從業務問題反推訊號,而不是堆滿模型參數的日誌。高品質回答會把一次使用者請求關聯到檢索、模型、工具和最終結果,並保留足夠的版本與租戶維度來定位回歸。
也要說明資料邊界:原始提示、回覆、工具參數和檢索文件可能含有敏感資訊;高基數的工作階段 ID、使用者 ID 或完整內容不能無條件作為指標標籤。蒐集策略必須同時考慮隱私、儲存成本、取樣和保留。
最後要有品質門檻。缺少父子 span、模型版本、結束原因或 token 計數時,資料應標為不完整並進入監控,而不是生成看似精確的儀表板。
回答前需要釐清的問題
先問要最佳化的結果:是首 token 延遲、總延遲、每次請求成本、工具成功率、檢索召回還是答案品質?不同目標會改變 traces、metrics 與評估事件的優先順序。
再問資料敏感度與合規區域。是否允許儲存提示和回覆?是否需要跨區域隔離或按租戶刪除?若不能保存原文,就要依賴雜湊、脫敏摘要、引用 ID 和離線安全回放。
最後問流量和保留。請求量、模型呼叫次數、工具呼叫深度、取樣比例和保存期限會決定 collector、佇列、儲存分割以及成本預算。
30 秒回答框架
可以這樣回答:
「我先把使用者請求建成一條 trace,檢索、模型生成、工具呼叫和評估各自是帶版本的子 span 或 event。指標只使用低基數維度,例如模型、提供者、工作流和結果狀態;提示、回覆和工具參數進入受控事件流,經過脫敏、取樣和存取稽核。每筆記錄都驗證 trace 關聯、時間順序、模型版本和 token 計數,缺欄位就標記資料品質失敗。儀表板同時展示延遲、成本、錯誤和品質分,並用固定取樣的原始請求做回放。」
分步驟深入解答
先畫出端到端訊號圖
入口 span 記錄請求 ID、租戶摘要和工作流版本;檢索 span 記錄資料源 ID、查詢摘要與回傳數量;模型 span 記錄提供者、請求模型、回應模型、串流旗標、首 token 時間與 token 用量;工具 span 記錄工具類型、呼叫 ID、結果狀態;評估 event 記錄評估名稱、分數和解釋。
用低基數維度設計指標
按模型、提供者、工作流、區域、結果狀態和錯誤類別聚合延遲、token、成本和成功率。工作階段 ID、使用者 ID、文件 ID 和完整錯誤文字留在 trace 或事件中,不直接放進指標標籤,避免時間序列爆炸。
分離內容事件與執行指標
OpenTelemetry 的 GenAI 觀測說明將 traces、metrics 和 events 作為三類訊號;提示與回覆適合事件流,因為它們體積大、敏感且需要不同保留期限。執行指標只保留計數、延遲和成本,內容事件透過受控儲存、加密和短期保留處理。
記錄版本與因果鏈
每個 span 記錄模型、提示模板、檢索器、工具定義和評估器版本。一次回歸分析要能從結果分數回到具體模型請求和輸入資料版本;只記錄一個「模型名稱」無法區別別名漂移、路由變化和提示模板變化。
處理取樣與成本預算
用固定比例保留完整 trace,再對錯誤、高延遲、低品質分和新版本提高取樣率。token 和工具呼叫次數可即時聚合,超過租戶預算時觸發限流或降級。取樣規則必須寫入資料品質中繼資料,否則不同版本的指標不可直接比較。
做隱私與存取控制
在 SDK 或 collector 執行欄位級脫敏,阻止把密碼、個資和金鑰寫進屬性。將內容事件與執行指標分開授權,使用租戶範圍、加密引用和刪除索引支援合規請求。不能用「只在內部」作為不記錄敏感內容的理由。
驗證完整性與順序
每條 trace 檢查父子關係、時間單調性、結束狀態、模型版本和工具呼叫 ID。對 metrics 檢查單位、桶邊界、單調計數器與重複上報;對 events 檢查 schema 版本、脫敏狀態和大小上限。失敗記錄進入壞資料佇列並帶原因碼。
用評估事件連接品質
評估 event 至少包含評估名稱、分數、標籤和解釋引用。不要把自動評分當成事實;將評估器版本、樣本集版本和人工抽檢結果一起記錄。品質回歸應同時檢查延遲、成本、錯誤和分數,避免只最佳化某一個訊號。
高品質示範回答
「我會把一次請求建成可關聯的 trace:入口、檢索、模型、工具和評估分別記錄版本化的 span 或 event。指標只使用模型、提供者、工作流和結果狀態等低基數維度,聚合首 token、總延遲、token、成本和錯誤率。提示、回覆及工具參數進入經過脫敏和存取稽核的內容事件流,不當作指標標籤。蒐集層驗證父子關係、時間順序、Schema、模型版本和 token 計數,異常進入壞資料佇列。完整 trace 固定取樣,錯誤、慢請求和品質回歸提高取樣;儀表板同時連接執行指標與評估分數,並用樣本集和評估器版本做可重現回放。」
常見錯誤
把所有內容放進 metrics 標籤
錯誤表現:用使用者 ID、工作階段 ID 或完整提示作標籤。失敗原因:高基數會造成儲存與查詢失控,也放大隱私風險。修正方法:指標只保留低基數維度,內容放入受控事件。
只記錄模型名稱
錯誤表現:儀表板按模型名稱比較所有結果。失敗原因:別名路由、提示模板、檢索器或工具版本變化會被混在一起。修正方法:記錄請求模型、回應模型、工作流和依賴版本。
只看 token 成本
錯誤表現:成本下降就宣布系統改善。失敗原因:可能犧牲首 token、工具成功率或答案品質。修正方法:同時監控成本、延遲、錯誤、檢索結果和評估分。
直接保存提示與回覆
錯誤表現:為方便回放長期保存原文。失敗原因:內容可能包含個資、金鑰或跨租戶資訊。修正方法:欄位脫敏、短期保留、加密引用、按租戶存取和刪除索引。
忽略壞資料
錯誤表現:父 span 遺失或 token 為空時仍納入分母。失敗原因:指標看似完整卻無法解釋。修正方法:設定完整性門檻、壞資料佇列和品質儀表板,分離缺失資料與真實零值。
追問與應對
如果團隊要求記錄完整推理過程怎麼辦?
先確認業務需要的是可稽核證據、工具軌跡還是模型內部思維。優先記錄輸入引用、工具呼叫、版本、評估依據和結果摘要;不把不必要的敏感內容或內部推理文字寫入長期儲存。
如果 GenAI 語意約定發生遷移怎麼辦?
在 collector 和資料庫保存 Schema 版本,建立舊欄位到新欄位的映射,並透過雙寫或相容查詢完成遷移。儀表板按版本分組,避免把不同語意混算。
如果尖峰期無法保留完整 trace 怎麼辦?
保留所有錯誤和極端延遲的完整 trace,對正常流量做固定比例取樣;同時保留聚合指標和事件摘要。取樣率、觸發規則和丟棄原因要進入品質中繼資料。
如果評估分下降但延遲改善怎麼辦?
按模型、提示模板、檢索資料集、工具版本和租戶切片,先確認樣本集與評估器沒有變化。將品質回歸與效能收益交給發布門檻判斷,不能只看單一指標。
如何證明 trace 沒有跨租戶外洩?
在蒐集、傳輸、儲存和查詢層執行租戶邊界測試;用合成資料驗證屬性、事件和引用都帶租戶範圍,並對異常查詢發出稽核告警。刪除請求要能從索引找到所有衍生事件。