特徵工程與服務
此頁面涵蓋為 Unity Catalog 啟用之工作區的特徵工程和服務能力。 如果您的工作區未針對 Unity 目錄啟用,請參閱 工作區功能存放區 (舊版)。
為什麼要使用 Databricks 作為特徵存放區?
透過 Databricks Data Intelligence Platform,整個模型訓練工作流程可在單一平台上進行:
- 擷取原始數據、建立特徵數據表、定型模型,以及執行批次推斷的數據管線。 當您在 Unity 目錄中使用特徵工程來定型和記錄模型時,模型會以功能元數據封裝。 當您使用模型進行批次評分或在線推斷時,它會自動擷取特徵值。 呼叫端不需要了解這些資訊,也不需要包含查找或整合功能的邏輯來為新資料進行評分。
- 按一下就可使用並提供毫秒級延遲的模型和特徵服務端點。
- 資料和模型監測。
此外,平台也提供下列功能:
- 特徵探索。 您可以在 Databricks UI 中瀏覽和搜尋特徵。
- 治理。 功能數據表、函式和模型全都受到 Unity 目錄的控管。 當您訓練模型時,它會繼承訓練資料的權限。
- 譜系。 當您在 Azure Databricks 中建立功能數據表時,用來建立功能數據表的數據源會儲存並存取。 針對功能數據表中的每個功能,您也可以存取使用此功能的模型、筆記本、作業和端點。
- 跨工作區存取。 功能數據表、函式和模型會自動出現在任何可存取目錄的工作區中。
需求
- 您的工作區必須啟用 Unity Catalog。
- Unity 目錄中的功能工程需要 Databricks Runtime 13.3 LTS 或更新版本。
如果您的工作區不符合這些需求,請參閱 工作區功能存放區(舊版),瞭解如何使用舊版工作區功能存放區。
Databricks 的特徵工程如何運作?
在 Databricks 上使用特徵工程的一般機器學習工作流程會遵循下列路徑:
- 撰寫程式碼,將未經處理資料轉換為特徵,並建立包含所需特徵的 Spark DataFrame。
- 在 Unity 目錄中建立 Delta 數據表。 具有主鍵的任何 Delta 數據表都會自動成為功能數據表。
- 使用功能數據表來定型和記錄模型。 當您這樣做時,模型會儲存用於訓練的特徵規格。 當模型用於推斷時,它會自動從適當的功能數據表聯結特徵。
- 在模型登錄中註冊模型。
現在您可以使用模型從新資料中做出預測。 針對批次使用案例,模型會自動從特徵存放區擷取所需的特徵。
針對即時服務使用案例,請將功能發佈至 在線數據表。 也支援協力廠商線上存放區。 請參閱協力廠商線上存放區。
在推斷時,模型會從線上存放區讀取預先計算的特徵,並將其與用戶端要求中提供的資料一起聯結至模型服務端點。
開始使用特徵工程 — 範例筆記本
若要開始使用,請嘗試這些範例筆記本。 基本筆記本會逐步引導您建立功能數據表、使用它來定型模型,然後使用自動功能查閱執行批次評分。 它也會向您介紹特徵工程 UI,並示範如何使用它來搜尋特徵,並了解如何建立和使用特徵。
Unity Catalog 範例筆記本中的基本功能工程
計程車範例筆記本說明建立特徵、更新特徵以及將它們用於模型訓練和批次推斷的流程。
Unity Catalog 計程車範例筆記本中的特徵工程
支援的資料類型
Unity 目錄和舊版工作區功能存放區中的功能工程支援下列 PySpark 數據類型:
IntegerType
FloatType
BooleanType
StringType
DoubleType
LongType
TimestampType
DateType
ShortType
ArrayType
-
BinaryType
[1] -
DecimalType
[1] -
MapType
[1] -
StructType
[2]
[1] 在 Unity Catalog 的所有特性工程版本以及工作區特性存放區 v0.3.5 或更高版本中,BinaryType
、DecimalType
和 MapType
均獲得支援。
[2] 特徵工程 v0.6.0 或更新版本支援 StructType
。
上述資料類型支援機器學習應用程式中常見的特徵類型。 例如:
- 您可以將密集向量、張量和內嵌儲存為
ArrayType
。 - 您可以將疏鬆向量、張量和內嵌儲存為
MapType
。 - 您可以將文字儲存為
StringType
。
發佈至線上存放區時,ArrayType
和 MapType
特徵會以 JSON 格式儲存。
特徵存放區 UI 會顯示特徵資料類型的中繼資料:
其他相關資訊
如需最佳做法的詳細資訊,請下載特徵存放區的完整指南。