Azure Machine Learning Service와 Azure Database for PostgreSQL 통합
Azure AI 확장은 SQL 내에서 Azure Machine Learning 온라인 엔드포인트에 배포된 모든 기계 학습 모델을 호출하는 기능을 제공합니다. 이러한 모델은 Azure Machine Learning 카탈로그 또는 학습시켜 배포한 사용자 지정 모델에서 사용할 수 있습니다.
필수 조건
azure_ai
확장을 사용하도록 설정하고 구성합니다.- 기계 학습 작업 영역을 만들고 CLI, Python 또는 Azure Machine Learning 스튜디오를 사용하여 온라인 엔드포인트를 사용하여 모델을 배포하거나 온라인 엔드포인트에 mlflow 모델을 배포합니다.
- 모델이 성공적으로 배포되었는지 확인하기 위해 배포 상태를 확인하고 엔드포인트를 호출하는 모델을 테스트하여 모델이 성공적으로 실행되는지 확인합니다.
- Azure Machine Learning과 통신하도록 확장을 구성하는 데 필요한 URI 및 키를 가져옵니다.
참고 항목
Azure Machine Learning 예제를 살펴볼 수 있습니다.
Azure Machine Learning 엔드포인트 구성
Azure Machine Learning 스튜디오의 엔드포인트>엔드포인트 선택>사용에서 온라인 엔드포인트에 대한 엔드포인트 URI 및 키를 찾을 수 있습니다. 이러한 값을 사용하여 온라인 추론 엔드포인트를 사용하도록 azure_ai
확장을 구성합니다.
select azure_ai.set_setting('azure_ml.scoring_endpoint','<URI>');
select azure_ai.set_setting('azure_ml.endpoint_key', '<Key>');
azure_ml.invoke
온라인 엔드포인트에서 Azure Machine Learning 모델 배포를 호출하는 입력 데이터의 점수를 지정합니다.
azure_ml.invoke(input_data jsonb, timeout_ms integer DEFAULT NULL, throw_on_error boolean DEFAULT true, deployment_name text DEFAULT NULL)
인수
input_data
jsonb
모델에 대한 요청 페이로드를 포함하는 json
deployment_name
text
Azure Machine Learning 온라인 추론 엔드포인트에 배포된 모델에 해당하는 배포의 이름
timeout_ms
integer DEFAULT NULL
작업이 중지된 후의 시간 제한(밀리초)입니다. 모델 자체의 배포에는 사용자 정의 함수의 시간 제한 매개 변수보다 낮은 값으로 지정된 시간 제한이 있을 수 있습니다. 이 시간 제한을 초과하면 채점 작업이 실패합니다.
throw_on_error
boolean DEFAULT true
오류가 발생하면 함수가 예외를 발생시켜 래핑 트랜잭션이 롤백됩니다.
max_attempts
integer DEFAULT 1
다시 시도 가능한 오류로 인해 실패하는 경우 확장이 Azure Machine Learning 엔드포인트 호출을 다시 시도하는 횟수
retry_delay_ms
integer DEFAULT 1000
다시 시도 가능한 오류로 인해 실패하는 경우 확장이 Azure Machine Learning 엔드포인트를 호출하기 전에 확장이 대기하는 시간(밀리초)
반환 형식
jsonb
JSONB에서 호출된 모델에 대한 채점 출력
예제
기계 학습 모델 호출
input_data를 사용하여 모델을 호출하고 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' )