什麼是功能存放區?
此頁面說明功能存放區是什麼,以及它提供哪些優點,以及 Databricks 功能存放區的特定優點。
功能存放區是一個集中式存放庫,可讓數據科學家尋找和共用功能,並確保用來計算特徵值的相同程式代碼用於模型定型和推斷。
機器學習會使用現有的數據來建置模型,以預測未來的結果。 在幾乎所有情況下,原始數據都需要前置處理和轉換,才能用來建置模型。 此程式稱為特徵工程,而此程式的輸出稱為特徵 - 模型的建置組塊。
開發功能很複雜且耗時。 另一個併發症是,對於機器學習,需要針對模型定型完成特徵計算,然後在模型用來進行預測時再次進行。 這些實作可能不是由同一個小組或使用相同的程式代碼環境來完成,這可能會導致延遲和錯誤。 此外,組織中的不同小組通常會有類似的功能需求,但可能不知道其他小組已完成的工作。 功能存放區的設計目的是要解決這些問題。
為什麼要使用 Databricks 功能存放區?
Databricks 功能存放區已與 Azure Databricks 的其他元件完全整合。
- 可探索性。 可從 Databricks 工作區存取的功能存放區 UI 可讓您瀏覽和搜尋現有的功能。
- 譜系。 當您在 Azure Databricks 中建立功能數據表時,用來建立功能數據表的數據源會儲存並存取。 針對功能數據表中的每個功能,您也可以存取使用此功能的模型、筆記本、作業和端點。
- 與模型評分和服務整合。 當您使用功能存放區的功能來定型模型時,模型會封裝為功能元數據。 當您使用模型進行批次評分或在線推斷時,它會自動從功能存放區擷取功能。 呼叫端不需要知道它們,也不需要包含邏輯來查閱或聯結功能來為新數據評分。 這可讓模型部署和更新變得更容易。
- 時間點查閱。 功能存放區支援需要時間點正確性的時間序列和事件型使用案例。
Unity 目錄中的功能工程
使用 Databricks Runtime 13.3 LTS 和更新版本時,如果您的工作區已啟用 Unity 目錄,Unity 目錄就會變成您的功能存放區。 您可以使用 Unity 目錄中的任何 Delta 資料表或 Delta Live Table,將主鍵作為模型定型或推斷的功能數據表。 Unity 目錄提供功能探索、治理、譜系和跨工作區存取。
Databricks 功能存放區如何運作?
使用功能存放區的一般機器學習工作流程會遵循下列路徑:
- 撰寫程式代碼以將原始數據轉換成功能,並建立包含所需功能的Spark DataFrame。
- 針對針對 Unity 目錄啟用的工作區, 請將 DataFrame 寫入 Unity 目錄中做為功能數據表。 如果您的工作區未針對 Unity 目錄啟用, 請在工作區功能存放區中將 DataFrame 寫入為功能數據表。
- 使用功能存放區中的功能來定型模型。 當您這樣做時,模型會儲存用於定型的功能規格。 當模型用於推斷時,它會自動從適當的功能數據表聯結特徵。
- 在模型登錄中註冊模型。
您現在可以使用模型對新數據進行預測。
針對批次使用案例,模型會自動從功能存放區擷取所需的功能。
針對即時服務使用案例,請將功能發佈至 在線商店 或使用 在線數據表。
在推斷時,模型會從在線商店讀取預先計算的功能,並將其與用戶端要求中提供的數據聯結至服務端點的模型。
開始使用功能存放區
請參閱下列文章以開始使用功能存放區:
- 請嘗試其中 一個說明功能存放區功能的範例筆記本 。
- 請參閱功能存放區 Python API 的參考數據。
- 瞭解 使用功能存放區定型模型。
- 瞭解 Unity 目錄中的功能工程。
- 瞭解 工作區功能存放區。
- 使用 時間序列特徵數據表和時間點查閱 ,擷取最新的特徵值,作為定型或評分模型的特定時間。
- 瞭解如何將 功能發佈至在線商店 或 在線數據表 ,以進行即時服務和自動功能查閱。
- 瞭解 功能服務,讓 Databricks 平臺中的功能對部署在 Databricks 外部的模型或應用程式提供低延遲。
當您在 Unity 目錄中使用功能工程時,Unity 目錄會負責跨工作區共用功能數據表,並使用 Unity 目錄許可權 來控制功能數據表的存取權。 下列連結僅適用於工作區功能存放區:
支援的資料類型
Unity 目錄和工作區功能存放區中的功能工程支援下列 PySpark 資料類型:
IntegerType
FloatType
BooleanType
StringType
DoubleType
LongType
TimestampType
DateType
ShortType
ArrayType
BinaryType
[1]DecimalType
[1]MapType
[1]
[1] BinaryType
DecimalType
、 和 MapType
在所有版本的 Unity 目錄和工作區功能存放區 0.3.5 版或更新版本中都支援 和 。
上述數據類型支援機器學習應用程式中常見的功能類型。 例如:
- 您可以將密集向量、張量和內嵌儲存為
ArrayType
。 - 您可以將疏鬆向量、張量和內嵌儲存為
MapType
。 - 您可以將文字儲存為
StringType
。
發佈至在線商店時, ArrayType
功能 MapType
會以 JSON 格式儲存。
功能存放區 UI 會顯示功能資料類型的元資料:
其他相關資訊
如需使用功能存放區最佳做法的詳細資訊,請下載 功能存放區的完整指南。