記錄語言模型 API 的令牌使用、提示與補全

在本文中,你將學習如何在 Azure API 管理 中設定語言模型 API 請求與回應的 Azure 監視器 日誌記錄。

API 管理管理員可利用語言模型的 API 請求與回應日誌,以及 API 管理閘道日誌,適用於以下情境:

  • 計算用量以計費。 根據每個應用程式或 API 消費者消耗的代幣數量(例如依訂閱 ID 或 IP 位址分段)計算計費使用指標。

  • 檢查訊息。 檢查並分析提示與完成事項,以協助除錯、稽核及模型評估。

深入瞭解:

先決條件

  • Azure API 管理 執行個體。
  • 與 Azure API 管理整合的受控語言模型對話補全 API。 例如, 匯入 Microsoft Foundry API。
  • 存取 Azure Log Analytics 工作區。
  • 在 API 管理 中設定診斷設定和存取記錄的適當許可權。

啟用語言模型 API 日誌的診斷設定

啟用診斷設定,以記錄閘道針對大型語言模型 REST API 處理的要求。 對於每個請求,Azure 監視器 會接收:

  • 關於代幣使用的資料,例如提示代幣、完成代幣和總代幣

  • 所用型號名稱

  • 選用的要求和回應訊息:提示詞和補全

    Azure 監視器 會將大型請求和回應拆分成多個日誌條目,並附有序列號,方便日後重建。

備註

API 管理從語言模型 API 的回應中擷取令牌使用資料。 在缺少令牌使用情況(例如資料串流中斷或連線終止)時,令牌使用可能未被記錄或不準確。

請依照以下步驟啟用診斷設定,將語言模型 API 日誌導向 Log Analytics 工作區。 如需詳細資訊,請參閱 啟用 Azure 監視器記錄的診斷設定。

  1. 在 Azure 入口網站中,流覽至您的 Azure API 管理 執行個體。

  2. 在左側功能表的 [監視] 底下,選取 [診斷設定>] + [新增診斷設定]。

  3. 設定此設定,將 AI 閘道記錄傳送至 Log Analytics 工作區:

    • 在 [記錄] 底下,選取 [與生成式 AI 閘道相關的記錄]。
    • 在 [目的地詳細資料] 底下,選取 [傳送至 Log Analytics 工作區]。
  4. 檢閱或設定其他設定,並視需要進行變更。

  5. 選取 [儲存]。

入口網站中的 AI 閘道日誌診斷設定螢幕擷取畫面。

啟用語言模型 API 的請求或回應記錄

您可以啟用所有 API 的診斷設定,或自訂特定 API 的記錄。 請依照以下步驟記錄 API 的語言模型請求與回應訊息。 如需詳細資訊,請參閱 修改 API 記錄設定。

  1. 在 API 管理實例的左側選單中,選擇 APIS>API, 然後選擇 API 名稱。
  2. 從上方欄選擇 設定 。
  3. 往下滑到 Diagnostic Logs 區塊,選擇 Azure 監視器。
  4. 在 記錄 LLM 訊息中,選取 已啟用。
  5. 選取 [記錄提示] ,然後輸入大小(以位元組為單位),例如 32768。
  6. 選取 [記錄完成] ,然後輸入大小(以位元組為單位),例如 32768。
  7. 檢查其他設定並視需要進行變更。 選取 [儲存]。

在入口網站中啟用 API 語言模型記錄的截圖。

備註

啟用蒐集功能後,語言模型的請求或回應訊息可以在同一項目中傳送,大小可達 32 KB。 大於 32 KB 的訊息會被拆分並登錄為 32 KB 的區塊,並附有序號以便日後重建。 要求訊息和回應訊息各不能超過 2 MB。

檢閱語言模型 API 的分析活頁簿

以 Azure 監視器為基礎的分析儀表板,會使用 Log Analytics 工作區中彙總的資料,提供語言模型 API 使用量和詞元耗用量的深入解析。 欲了解更多資訊,請參閱 Get API analytics in Azure API 管理。

  1. 在 API 管理 實例的左側功能表中,選取 [監視>分析]。
  2. 選取 [語言模型] 索引標籤。
  3. 檢視語言模型 API 代幣消費與請求的指標與視覺化,涵蓋選定 時間範圍。

入口網站中語言模型 API 分析的螢幕擷取畫面。

檢閱 Azure 監視器記錄以取得要求和回應

請參閱 ApiManagementGatewayLlmLog 日誌,了解語言模型請求與回應的詳細資訊,包括令牌消耗、模型部署情況,以及特定時間範圍內的其他細節。

請求與回應,包括大型請求與回應的分塊訊息,會分別出現在獨立的日誌條目中,你可以透過欄位 CorrelationId 來關聯。

基於稽核目的,請使用類似下列查詢的 Kusto 查詢,將每個要求和回應聯結在單一記錄中。 調整查詢以包含您要追蹤的欄位。

ApiManagementGatewayLlmLog
| extend RequestArray = parse_json(RequestMessages)
| extend ResponseArray = parse_json(ResponseMessages)
| mv-expand RequestArray
| mv-expand ResponseArray
| project
    CorrelationId,
    RequestContent = tostring(RequestArray.content),
    ResponseContent = tostring(ResponseArray.content)
| summarize
    Input = strcat_array(make_list(RequestContent), " . "),
    Output = strcat_array(make_list(ResponseContent), " . ")
    by CorrelationId
| where isnotempty(Input) and isnotempty(Output)

入口網站中語言模型日誌查詢結果的截圖。

上傳資料至 Microsoft Foundry 進行模型評估

你可以將語言模型日誌資料匯出為資料集,用於 Microsoft Foundry 中的模型評估。 透過模型評估,您可以使用內建或自訂評估指標,根據測試模型或資料集評估生成式 AI 模型和應用程式的效能。

使用語言模型日誌來作為模型評估的資料集:

  1. 將語言模型的請求與回應訊息合併成每一次互動的單一記錄,如 前一節所示。 包括您要用於模型評估的欄位。
  2. 將資料匯出為 CSV 格式,該格式與 Microsoft Foundry 相容。
  3. 在 Microsoft Foundry 入口網站中,進行新評估以便上傳和評估資料集。

欲了解如何在 Microsoft Foundry 中建立並執行模型評估,請參見 Run evaluations from the Microsoft Foundry portal。