Integrar o servidor flexível do Base de Dados do Azure para PostgreSQL com os Serviços de Machine Learning do Azure

A extensão de IA do Azure permite invocar quaisquer modelos de aprendizagem automática implementados em endpoints online do Azure Machine Learning no SQL. Esses modelos podem ser do catálogo do Azure Machine Learning ou modelos personalizados treinados e implantados.

Pré-requisitos

  • Habilite e configure a azure_ai extensão.
  • Crie um espaço de trabalho de aprendizado de máquina e implante um modelo com um ponto de extremidade online usando CLI, Python ou o estúdio Azure Machine Learning ou implante um modelo mlflow em um ponto de extremidade online.
  • Certifique-se de que o estado da implementação indica que o modelo foi implementado com êxito e teste o modelo invocando o endpoint para confirmar que o modelo é executado com êxito.
  • Obtenha o URI e a Chave, que são necessários para configurar a extensão para se comunicar com o Azure Machine Learning.

Observação

Você pode explorar exemplos do Azure Machine Learning.

Configurar o ponto final do Azure Machine Learning

No estúdio do Azure Machine Learning, em Endpoints>Escolha o seu ponto final>Consumir, pode encontrar o URI e a Chave do ponto final online. Utilize estes valores para configurar a extensão azure_ai para utilizar o ponto final de inferência online.

select azure_ai.set_setting('azure_ml.scoring_endpoint','<URI>');
select azure_ai.set_setting('azure_ml.endpoint_key', '<Key>');

azure_ml.invoke

Classifica os dados de entrada invocando a implementação de um modelo do Azure Machine Learning num ponto final online.

azure_ml.invoke(input_data jsonb, timeout_ms integer DEFAULT NULL, throw_on_error boolean DEFAULT true, deployment_name text DEFAULT NULL)

Arguments

input_data

jsonb JSON contendo a carga útil da solicitação para o modelo.

deployment_name

text nome da implementação correspondente ao modelo implementado no ponto final de inferência online do Azure Machine Learning

timeout_ms

integer DEFAULT NULL tempo limite em milissegundos após o qual a operação é interrompida. A implantação de um modelo em si pode ter um tempo limite especificado que é um valor menor do que o parâmetro de tempo limite na função definida pelo usuário. Se esse tempo limite for excedido, a operação de pontuação falhará.

throw_on_error

boolean DEFAULT true em caso de erro, a função deverá lançar uma exceção, resultando na reversão das transações envolventes.

max_attempts

integer DEFAULT 1 número de vezes que a extensão tenta voltar a chamar o ponto final do Azure Machine Learning se ocorrer um erro que permita nova tentativa.

retry_delay_ms

integer DEFAULT 1000 tempo (em milissegundos) que a extensão aguarda antes de chamar o endpoint do Azure Machine Learning quando ocorre um erro passível de repetição.

Tipo de retorno

jsonb resultado da pontuação para o modelo invocado em JSONB.

Examples

Invoque o modelo de aprendizado de máquina

Isto invoca o modelo com o input_data e devolve uma carga útil JSONB.

-- Invoke model, input data depends on the model.
  SELECT * FROM azure_ml.invoke('
  {
    "input_data": [
      [1,2,3,4,5,6,7,8],
      [-1,-2,-3,-4,-5,-6,-7,-8]
    ],
    "params": {}
  }', deployment_name=>'Housingprediction' )

-- Get JSON elements from model output
SELECT jsonb_array_elements(invoke.invoke) as MedianHousePrediction
FROM azure_ml.invoke('
{
  "input_data": [
    [1,2,3,4,5,6,7,8],
    [-1,-2,-3,-4,-5,-6,-7,-8]
  ],
 "params": {}
}', deployment_name=>'Housingprediction' )