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