在服務端點的模型上設定 AI 閘道
在本文中,您將了解如何在服務端點的模型上設定 Mosaic AI 閘道。
需求
- 外部模型支持區域中的 Databricks 工作區。
- 完成建立外部模型服務端點的步驟 1 和 2。
使用 UI 設定 AI 閘道
本節說明如何使用服務 UI 在端點建立期間設定 AI 閘道。
如果您想要以程式設計方式執行這項操作,請參閱 Notebook 範例。
在端點建立頁面的 [AI 閘道] 區段中,您可以個別設定下列 AI 閘道功能:
功能 | 如何啟用 | 詳細資料 |
---|---|---|
使用情況追蹤 | 選取 [啟用使用量追蹤] 以啟用資料使用計量的追蹤和監視。 | - 您必須開啟 Unity 目錄。 - 帳戶管理員在使用系統資料表之前,必須先啟用服務系統資料表結構描述:會擷取端點每個要求的權杖計數的 system.serving.endpoint_usage ,以及會儲存每個外部模型的中繼資料的 system.serving.served_entities 。- 請參閱使用量追蹤資料表結構描述 - 只有帳戶管理員有權檢視或查詢 served_entities 資料表或 endpoint_usage 資料表,即使管理端點的使用者必須啟用使用量追蹤。 請參閱授與系統資料表的存取權- 如果模型未傳回權杖計數,輸入和輸出權杖計數估計為 ( text_length +1)/4。 |
酬載記錄 | 選取 [啟用推斷資料表],將端點的要求和回應自動記錄到 Unity 目錄所管理的差異資料表。 | - 您必須在指定的目錄結構描述中啟用 Unity 目錄和 CREATE_TABLE 存取。- AI 閘道所啟用的推斷數據表具有不同於 針對服務自定義模型之端點的模型所建立的推斷數據表 。 請參閱已啟用 AI 閘道的推斷資料表結構描述。 - 在查詢端點後不到一小時,酬載記錄資料會填入這些資料表。 - 未記錄大於 1 MB 的酬載。 - 回應酬載會彙總所有傳回區塊的回應。 - 支援串流。 在串流案例中,回應酬載會彙總傳回區塊的回應。 |
AI 護欄 | 請參閱在 UI 中設定 AI 護欄。 | - 護欄可防止模型與模型輸入和輸出中偵測到的不安全和有害內容互動。 - 內嵌模型或串流不支援輸出護欄。 |
速率限制 | 您可以強制執行要求速率限制,以管理每個使用者和每個端點的端點流量 | - 速率限制是在每分鐘查詢中定義的 (QPM)。 - 每個使用者和每個端點的預設值為沒有限制。 |
流量路由 | 若要在您的端點上設定流量路由,請參閱為端點提供多個外部模型。 |
在UI中設定 AI 護欄
下表顯示如何設定支援的護欄。
護欄 | 如何啟用 | 詳細資料 |
---|---|---|
安全性 | 選取 [安全] 以啟用保護功能,以防止您的模型與不安全和有害的內容互動。 | |
個人識別資訊 (PII) 偵測 | 選取 PII 偵測,以偵測 PII 資料,例如名稱、位址、信用卡號碼。 | |
有效主題 | 您可以直接在此欄位中輸入主題。 如果您有多個項目,請務必在每個主題之後按 Enter 鍵。 或者,您可以上傳 .csv 或 .txt 檔案。 |
最多可以指定 50 個有效主題。 每個主題不能超過 100 個字元 |
無效的關鍵字 | 您可以直接在此欄位中輸入主題。 如果您有多個項目,請務必在每個主題之後按 Enter 鍵。 或者,您可以上傳 .csv 或 .txt 檔案。 |
最多可以指定 50 個無效的關鍵字。 每個關鍵字不能超過 100 個字元。 |
使用量追蹤資料表結構描述
system.serving.served_entities
使用方式追蹤系統資料表具有下列結構描述:
資料行名稱 | 描述 | 類型 |
---|---|---|
served_entity_id |
接受服務之執行個體的唯一 ID。 | 字串 |
account_id |
差異共用的客戶帳戶 ID。 | 字串 |
workspace_id |
服務端點的客戶工作區 ID。 | 字串 |
created_by |
建立者的 ID。 | 字串 |
endpoint_name |
服務端點的名稱。 | 字串 |
endpoint_id |
服務端點的唯一 ID。 | 字串 |
served_entity_name |
接受服務之執行個體的名稱。 | 字串 |
entity_type |
接受服務之執行個體的類型。 可以是 FEATURE_SPEC 、EXTERNAL_MODEL 、FOUNDATION_MODEL 或 CUSTOM_MODEL |
字串 |
entity_name |
執行個體的基礎名稱。 與使用者所提供名稱的 served_entity_name 不同。 例如,entity_name 是 Unity 目錄模型的名稱。 |
字串 |
entity_version |
接受服務之執行個體的版本。 | 字串 |
endpoint_config_version |
端點組態的版本。 | INT |
task |
工作類型。 可以是 llm/v1/chat 、llm/v1/completions 或 llm/v1/embeddings 。 |
字串 |
external_model_config |
外部模型的組態。 例如,{Provider: OpenAI} |
STRUCT |
foundation_model_config |
基礎模型的組態。 例如{min_provisioned_throughput: 2200, max_provisioned_throughput: 4400} |
STRUCT |
custom_model_config |
自訂模型的組態。 例如,{ min_concurrency: 0, max_concurrency: 4, compute_type: CPU } |
STRUCT |
feature_spec_config |
功能規格的組態。 例如,{ min_concurrency: 0, max_concurrency: 4, compute_type: CPU } |
STRUCT |
change_time |
接受服務之執行個體的變更時間戳記。 | timestamp |
endpoint_delete_time |
執行個體刪除的時間戳記。 端點是存放接受服務之執行個體的容器。 端點刪除之後,接受服務之執行個體也會一併刪除。 | timestamp |
system.serving.endpoint_usage
使用方式追蹤系統資料表具有下列結構描述:
資料行名稱 | 描述 | 類型 |
---|---|---|
account_id |
客戶帳戶 ID。 | 字串 |
workspace_id |
服務端點的客戶工作區 ID。 | 字串 |
client_request_id |
使用者提供的要求識別碼,可在服務要求本文的模型中指定。 | 字串 |
databricks_request_id |
Azure Databricks 產生的要求識別碼附加至所有服務要求的模型。 | 字串 |
requester |
使用者或服務主體的 ID,其權限會用於服務端點的調用要求。 | 字串 |
status_code |
從模型傳回的 HTTP 狀態碼。 | INTEGER |
request_time |
接收到請求的時間戳記。 | timestamp |
input_token_count |
輸入的權杖計數。 | LONG |
output_token_count |
輸出的權杖計數。 | LONG |
input_character_count |
輸入字串或提示的字元計數。 | LONG |
output_character_count |
回應輸出字串的字元計數。 | LONG |
usage_context |
使用者提供的對應包含呼叫端點之使用者或客戶應用程式的識別碼。 請參閱使用 usage_context 進一步定義使用方式。 | MAP |
request_streaming |
要求是否處於串流模式。 | BOOLEAN |
served_entity_id |
用來與 system.serving.served_entities 維度資料表聯結的唯一 ID,以查閱端點和接受服務之執行個體的相關資訊。 |
字串 |
使用 usage_context
進一步定義使用方式
當您查詢已啟用使用追蹤的外部模型時,可以提供 Map[String, String]
類型的 usage_context
參數。 使用情境對應會出現在使用追蹤資料表的 usage_context
資料行中。 帳戶管理員可以根據使用情境彙總不同的資料列,以取得深入見解,並可將此資訊與酬載記錄資料表中的資訊聯結。 例如,您可以新增 end_user_to_charge
至 usage_context
,以便追蹤終端使用者的成本屬性。
{
"messages": [
{
"role": "user",
"content": "What is Databricks?"
}
],
"max_tokens": 128,
"usage_context":
{
"use_case": "external",
"project": "project1",
"priority": "high",
"end_user_to_charge": "abcde12345",
"a_b_test_group": "group_a"
}
}
已啟用 AI 閘道的推斷資料表結構描述
使用 AI 閘道開啟的推斷資料表具有下列結構描述:
資料行名稱 | 描述 | 類型 |
---|---|---|
request_date |
收到模型服務要求的 UTC 日期。 | 日期 |
databricks_request_id |
Azure Databricks 產生的要求識別碼附加至所有服務要求的模型。 | 字串 |
client_request_id |
選擇性客戶端產生的要求識別碼,可在服務要求主體的模型中指定。 | 字串 |
request_time |
接收到請求的時間戳記。 | timestamp |
status_code |
從模型傳回的 HTTP 狀態碼。 | INT |
sampling_fraction |
要求已縮小取樣之事件使用的取樣分數。 這個值介於 0 到 1 之間,其中 1 表示包含 100% 的傳入要求。 | DOUBLE |
execution_duration_ms |
模型執行推斷的毫秒數。 這不包括額外的網路等待時間,而且只代表模型產生預測所花費的時間。 | BIGINT |
request |
傳送至模型服務端點的原始要求 JSON 主體。 | 字串 |
response |
模型服務端點傳回的原始回覆 JSON 主體。 | 字串 |
served_entity_id |
受服務實體的唯一 ID。 | 字串 |
logging_error_codes |
ARRAY | |
requester |
使用者或服務主體的 ID,其權限會用於服務端點的調用要求。 | 字串 |
更新端點上的 AI 閘道功能
您可以在先前啟用的端點和未啟用端點的模型上更新 AI 閘道功能。 AI 閘道設定的更新需要約 20-40 秒才能套用,不過速率限制更新最多可能需要 60 秒的時間。
下列示範如何使用服務 UI,在模型服務端點上更新 AI 閘道功能。
在端點頁面的 [閘道] 區段中,您可以看到已啟用哪些功能。 若要更新這些功能,請按下 [編輯 AI 閘道]。
筆記本範例
下列筆記本示範如何以程式設計方式啟用及使用 Databricks Mosaic AI 閘道功能來管理及控管來自提供者的模型。 如需 REST API 詳細數據,請參閱下列內容: