Azure Machine Learning 모델 호출

완료됨

azure_ml 스키마는 데이터베이스가 사용자 지정 기계 학습 모델의 기능과 상호 작용할 수 있도록 합니다. azure_ml 스키마를 활용하면 PostgreSQL 데이터베이스를 Azure Machine Learning Service와 원활하게 통합할 수 있습니다. 이러한 통합을 통해 데이터베이스에서 직접 기계 학습 모델을 배포하고 제공할 수 있으므로 실시간 유추가 효율적이고 확장 가능해집니다.

azure_ml 스키마를 사용한 실시간 유추

azure_ai 확장을 사용하는 경우 azure_ml 스키마는 데이터베이스에서 직접 실시간 유추를 수행하는 함수를 제공합니다. 이 스키마 내의 inference 함수는 Azure Machine Learning에서 학습된 모델을 사용하여 예측을 수행하거나 출력을 생성하는 것을 용이하게 하도록 설계되었습니다. 모델을 배포할 때 유추 함수를 사용하면 모델을 호출하고 새 데이터에 대한 예측을 가져올 수 있습니다.

azure_ml.inference(jsonb,integer,boolean,text)

inference() 함수에는 다음 입력 매개 변수가 필요합니다.

매개 변수 Type 기본값 설명
input jsonb Azure Machine Learning 모델과 상호 작용하는 데 필요한 input_data 개체가 포함된 JSON 개체입니다.
timeout_ms integer NULL::integer 시간 초과...
throw_on_error boolean true desc...
deployment_name text NULL::text (선택 사항) 지정된 Azure Machine Learning 엔드포인트를 대상으로 하는 모델 배포의 이름.

Azure Machine Learning 유추 엔드포인트는 JSON(JavaScript Object Notation) 개체를 입력으로 예상합니다. 그러나 이 개체의 구조는 기본 모델에 따라 달라집니다. 예를 들어, 인근 지역, 우편 번호, 침실 수, 욕실 수와 같은 특정 입력이 주어지면 시애틀 지역의 단기 주택 임대에 대한 일별 임대 가격을 예측하도록 학습된 회귀 모델의 형태는 다음과 같습니다.

{
  "input_data": {
    "columns": [
      "host_is_superhost",
      "host_has_profile_pic",
      "host_identity_verified",
      "neighbourhood_group_cleansed",
      "zipcode",
      "property_type",
      "room_type",
      "accommodates",
      "bathrooms",
      "bedrooms",
      "beds"
    ],
    "index": [0],
    "data": [["False", "False", "False", "Central Area", "98122", "House", "Entire home/apt", 4, 1.5, 3, 3]]
  }
}

예상되는 입력 개체 구조는 배포된 엔드포인트와 연결된 Swagger 정의를 검사하여 검색할 수 있습니다. 이 정의는 입력과 출력을 결정하는 데 사용할 수 있는 ServiceInputServiceOutput 구조를 지정합니다.

Azure Machine Learning에 대한 연결 구성

실시간 유추를 수행하기 위해 azure_ml.inference() 함수를 사용하기 전에 Azure Machine Learning 채점 엔드포인트 및 키를 사용하여 확장을 구성해야 합니다. azure_ml.scoring_endpoint의 값은 배포된 모델의 REST 엔드포인트입니다. azure_ml.endpoint_key의 값은 이 엔드포인트의 기본 키 또는 보조 키일 수 있습니다.

SELECT azure_ai.set_setting('azure_ml.scoring_endpoint', '{endpoint}');
SELECT azure_ai.set_setting('azure_ml.endpoint_key','{api-key}');