共用方式為


適用於 PostgreSQL 的 Azure 資料庫彈性伺服器 - 彈性伺服器 (預覽版) 的 azure_local_ai 延伸模組是什麼

適用於 PostgreSQL 的 Azure 資料庫彈性伺服器的 azure_local_ai 延伸模組,可讓您使用本機部署至適用於 PostgreSQL 的 Azure 資料庫伺服器上,已註冊且預先訓練的開放原始碼模型。 這些模型可用來建立文字內嵌,在您建置豐富的生成式 AI 應用程式時,為擷取擴增生成 (RAG) 模式提供內容。  azure_local_ai 延伸模組讓資料庫不需要對裝載於 PostgreSQL 界限外的 AI 內嵌模型進行更多遠端 API 呼叫,可呼叫本機部署的模型,從文字資料建立向量內嵌,簡化開發流程,以及減少延遲。 在此版本,延伸模組將單一模型 multilingual-e5-small 部署到適用於 PostgreSQL 的 Azure 資料庫彈性伺服器執行個體。 其他第三方開放原始碼模型可能持續可供安裝。

本機內嵌可協助客戶:

  • 減少建立內嵌時發生延遲。

  • 以可預測的成本使用內嵌模型。

  • 讓資料留在資料庫內,不需要將資料傳輸到遠端端端點。

在此公開預覽期間,azure_local_ai延伸模組將在下列 Azure 區域中提供:

 

  • 澳大利亞東部

  • 美國東部

  • 法國中部

  • 日本東部

  • 英國南部

  • 西歐

  • 美國西部

這項預覽功能也適用於新部署 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例。

重要

azure_local_ai 延伸模組目前為預覽狀態。 透過 Azure Local AI 延伸模組安裝的 Microsoft 開放原始碼 AI 模型,根據 Microsoft 產品條款視為非 Microsoft 產品。 客戶使用開放原始碼 AI 模型,受與透過 azure_local_ai 延伸模組提供之這類模型相關聯產品文件提供的個別授權條款約束。 補充使用規定:有限存取 AI 服務(預覽版)

啟用 azure_local_ai 延伸模組 (預覽版)

在適用於 PostgreSQL 的 Azure 資料庫彈性伺服器執行個體啟用 azure_local_ai 之前,您必須先將它新增至允許清單 (如如何使用 PostgreSQL 延伸模組所述),並執行下列 SQL 陳述式 SHOW azure.extensions; 確認新增正確與否。

重要

在資料庫裝載語言模型,需要大量磁碟使用量。 為了支援這項需求,azure_local_ai只支援 記憶體優化的 Azure VM SKU,且至少有 4 個虛擬核心。 目前,如果您使用不符合最低需求的 VM,azure_local_ai擴充功能不會出現在伺服器參數可用的擴充功能清單中。 從適用於 PostgreSQL 的 Azure 資料庫彈性伺服器 Microsoft Azure 入口網站頁面,[資源] 功能表的 [設定] 區段中,選取 [伺服器參數]。

PostgreSQL 伺服器參數頁面的螢幕擷取畫面。

搜尋 “extensions” 或 “azure.extensions”

適用於 Postgresql 的 Azure 資料庫 - 彈性伺服器,允許清單可用延伸模組的螢幕擷取畫面。

從延伸模組清單選取 [AZURE_LOCAL_AI]。

Azure Local AI 延伸模組的延伸模組允許清單螢幕擷取畫面。

選取 [儲存] 以套用變更,並開始允許清單部署流程。

Azure Local AI 延伸模組之儲存於允許清單的延伸模組螢幕擷取畫面。

您可以透過 Microsoft Azure 入口網站頂端的鈴鐺圖示監視此部署。

Azure Local AI 延伸模組之延伸模組允許清單部署的螢幕擷取畫面。

完成允許清單部署之後,您就可以繼續進行安裝流程。

注意

啟用 Azure 本機 AI 預覽會將 multilingual-e5-small 模型部署至適用於 PostgreSQL 的 Azure 資料庫彈性伺服器執行個體。 連結的文件提供 e5 小組的授權條款。 其他第三方開放原始碼模型可能持續可供安裝。

現在,您可以連線到目標資料庫並執行 CREATE EXTENSION 命令來安裝延伸模組。 您必須為每個您希望延伸模組可供使用的資料庫分別重複該命令。

Azure 入口網站 - 伺服器參數頁面的資料庫允許清單延伸模組。

SHOW azure.extensions;

在資料庫建立延伸模組。

CREATE EXTENSION azure_local_ai;

安裝延伸模組 azure_local_ai 會建立下列結構描述:

  • azure_local_ai:延伸模組建立資料表、函式,及其實作及公開功能所需的任何其他 SQL 相關物件時使用的主要結構描述。

重要

不妨啟用向量延伸模組,,因為您必須將文字內嵌儲存於 PostgreSQL 資料庫。

azure_local_ai 延伸模組所提供的函式

azure_local_ai 延伸模組提供一組函式。 這些函式可讓您從文字資料建立向量內嵌,讓您更輕鬆地開發生成式 AI 應用程式。 此延伸模組提供用來建立內嵌、取得設定等功能的函式。 藉由使用這些函式,您可以簡化開發流程,並不需要對裝載於 PostgreSQL 界限外的 AI 內嵌模型進行額外的遠端 API 呼叫,以減少延遲。

結構描述 名稱 結果資料類型 引數資料類型
azure_local_ai create_embeddings TABLE (內嵌 real[]) model_uri 文字、輸入文字[]、batch_size bigint DEFAULT 128、timeout_ms 整數 DEFAULT 3600000
azure_local_ai create_embeddings real[] model_uri 文字、輸入文字、timeout_ms 整數 DEFAULT 3600000
azure_local_ai get_setting jsonb keys text[] DEFAULT ARRAY[]:: text[], timeout_ms 整數 DEFAULT 36000000
azure_local_ai get_setting text 索引鍵文字,timeout_ms 整數 DEFAULT 3600000
azure_local_ai model_metadata jsonb model_uri 文字

這些可以透過 PSQL 命令來顯示,

\df azure_local_ai.*

azure_local_ai.create_embeddings

azure_local_ai 延伸模組可讓您建立及更新純量和批次格式的內嵌,並叫用本機部署的 LLM。

azure_local_ai.create_embeddings(model_uri text, input text, batch_size bigint DEFAULT 128, timeout_ms integer DEFAULT 3600000);
azure_local_ai.create_embeddings(model_uri text, array[inputs [text]], batch_size bigint DEFAULT 128, timeout_ms integer DEFAULT 3600000);

引數

model_uri

叫用文字內嵌模型 text 名稱,以建立內嵌。

input

texttext[] 單一文字或文字陣列,視用來建立內嵌的函式多載而定。

batch_size

一次要處理的 bigint DEFAULT 128 記錄數目 (僅適用於參數 input 屬於 text[] 型別之函式的多載)。

timeout_ms

作業停止之前的 integer DEFAULT 3600000 逾時 (以毫秒為單位)。

簡單的建立內嵌範例:

SELECT azure_local_ai.create_embeddings('model_uri TEXT', 'query: input TEXT');
SELECT azure_local_ai.create_embeddings('multilingual-e5-small:v1', 'query: Vector databases are awesome');
SELECT azure_local_ai.create_embeddings('model_uri TEXT', array['input TEXT', 'input TEXT']);
SELECT azure_local_ai.create_embeddings('multilingual-e5-small:v1', array['Hello', 'World']);

檢查 azure_local_ai 延伸模組版本

SELECT * FROM pg_available_extensions
WHERE NAME ='azure_local_ai';

ONNX 執行階段設定

azure_local_ai.get_setting

用來取得設定選項目前的值。

SELECT azure_local_ai.get_setting(key TEXT)

azure_local_ai 支援檢閱 ONNX 執行階段服務內 ONNX 執行階段執行緒集區的設定參數。 目前不允許變更。 請參閱 ONNX 執行階段效能微調。

引數

Key

key 的有效值為:

  • intra_op_parallelism:設定 ONNX Runtime 執行階段執行緒集區用於平行處理單一運算子的執行緒總數。 根據預設,我們會儘可能將內部作業執行緒數目最大化,以大幅改善整體輸送量 (預設所有可用的 CPU)。
  • inter_op_parallelism:設定 ONNX 執行階段執行緒集區平行計算多個運算子所使用的執行緒總數。 根據預設,我們會將它設定為可能的執行緒最小值,也就是 1。 增加這個值通常會因為執行緒之間頻繁的環境切換而造成效能降低。
  • spin_control:為要求切換 ONNX 執行階段執行緒集區旋轉。 停用時,它使用的 CPU 減少,因而造成進一步延遲。 預設設定為 true (已啟用)。

傳回類型

TEXT 代表所選設定目前的值。