什麼是功能存放區?

此頁面說明功能存放區是什麼,以及它提供哪些優點,以及 Databricks 功能存放區的特定優點。

功能存放區是一個集中式存放庫,可讓數據科學家尋找和共用功能,並確保用來計算特徵值的相同程式代碼用於模型定型和推斷。

機器學習會使用現有的數據來建置模型,以預測未來的結果。 在幾乎所有情況下,原始數據都需要前置處理和轉換,才能用來建置模型。 此程式稱為特徵工程,而此程式的輸出稱為特徵 - 模型的建置組塊。

開發功能很複雜且耗時。 另一個併發症是,對於機器學習,需要針對模型定型完成特徵計算,然後在模型用來進行預測時再次進行。 這些實作可能不是由同一個小組或使用相同的程式代碼環境來完成,這可能會導致延遲和錯誤。 此外,組織中的不同小組通常會有類似的功能需求,但可能不知道其他小組已完成的工作。 功能存放區的設計目的是要解決這些問題。

為什麼要使用 Databricks 功能存放區?

Databricks 功能存放區已與 Azure Databricks 的其他元件完全整合。

  • 可探索性。 可從 Databricks 工作區存取的功能存放區 UI 可讓您瀏覽和搜尋現有的功能。
  • 譜系。 當您在 Azure Databricks 中建立功能數據表時,用來建立功能數據表的數據源會儲存並存取。 針對功能數據表中的每個功能,您也可以存取使用此功能的模型、筆記本、作業和端點。
  • 與模型評分和服務整合。 當您使用功能存放區的功能來定型模型時,模型會封裝為功能元數據。 當您使用模型進行批次評分或在線推斷時,它會自動從功能存放區擷取功能。 呼叫端不需要知道它們,也不需要包含邏輯來查閱或聯結功能來為新數據評分。 這可讓模型部署和更新變得更容易。
  • 時間點查閱。 功能存放區支援需要時間點正確性的時間序列和事件型使用案例。

Unity 目錄中的功能工程

使用 Databricks Runtime 13.3 LTS 和更新版本時,如果您的工作區已啟用 Unity 目錄,Unity 目錄就會變成您的功能存放區。 您可以使用 Unity 目錄中的任何 Delta 資料表或 Delta Live Table,將主鍵作為模型定型或推斷的功能數據表。 Unity 目錄提供功能探索、治理、譜系和跨工作區存取。

Databricks 功能存放區如何運作?

使用功能存放區的一般機器學習工作流程會遵循下列路徑:

  1. 撰寫程式代碼以將原始數據轉換成功能,並建立包含所需功能的Spark DataFrame。
  2. 針對針對 Unity 目錄啟用的工作區, 請將 DataFrame 寫入 Unity 目錄中做為功能數據表。 如果您的工作區未針對 Unity 目錄啟用, 請在工作區功能存放區中將 DataFrame 寫入為功能數據表。
  3. 使用功能存放區中的功能來定型模型。 當您這樣做時,模型會儲存用於定型的功能規格。 當模型用於推斷時,它會自動從適當的功能數據表聯結特徵。
  4. 在模型登錄註冊模型。

您現在可以使用模型對新數據進行預測。

針對批次使用案例,模型會自動從功能存放區擷取所需的功能。

批次機器學習使用案例的功能存放區工作流程。

針對即時服務使用案例,請將功能發佈至 在線商店 或使用 在線數據表

在推斷時,模型會從在線商店讀取預先計算的功能,並將其與用戶端要求中提供的數據聯結至服務端點的模型。

提供機器學習模型的功能存放區流程。

開始使用功能存放區

請參閱下列文章以開始使用功能存放區:

當您在 Unity 目錄中使用功能工程時,Unity 目錄會負責跨工作區共用功能數據表,並使用 Unity 目錄許可權 來控制功能數據表的存取權。 下列連結僅適用於工作區功能存放區:

支援的資料類型

Unity 目錄和工作區功能存放區中的功能工程支援下列 PySpark 資料類型

  • IntegerType
  • FloatType
  • BooleanType
  • StringType
  • DoubleType
  • LongType
  • TimestampType
  • DateType
  • ShortType
  • ArrayType
  • BinaryType [1]
  • DecimalType [1]
  • MapType [1]

[1] BinaryTypeDecimalType、 和 MapType 在所有版本的 Unity 目錄和工作區功能存放區 0.3.5 版或更新版本中都支援 和 。

上述數據類型支援機器學習應用程式中常見的功能類型。 例如:

  • 您可以將密集向量、張量和內嵌儲存為 ArrayType
  • 您可以將疏鬆向量、張量和內嵌儲存為 MapType
  • 您可以將文字儲存為 StringType

發佈至在線商店時, ArrayType 功能 MapType 會以 JSON 格式儲存。

功能存放區 UI 會顯示功能資料類型的元資料:

複雜數據類型範例

其他相關資訊

如需使用功能存放區最佳做法的詳細資訊,請下載 功能存放區的完整指南。