다음을 통해 공유


Azure AI Search 보강 파이프라인의 AML 기술

Important

Azure AI Foundry 모델 카탈로그에 대한 인덱서 연결 지원은 추가 사용 약관에 따라 공개 미리 보기로 제공됩니다. 미리 보기 REST API는 이 기술을 지원합니다.

AML 기술을 사용하면 사용자 지정 AML(Azure Machine Learning) 모델 또는 Azure AI Foundry에 배포된 기본 포함 모델을 사용하여 AI 보강을 확장할 수 있습니다. AML 모델을 학습하고 배포하면 AML 기술이 이를 기술 세트에 통합합니다.

AML 기술 사용

다른 기본 제공 기술과 마찬가지로 사용자 지정 AML 기술에는 입력 및 출력이 있습니다. 입력은 배포된 AML 온라인 엔드포인트로 JSON 개체로 전송됩니다. 엔드포인트의 출력은 성공 상태 코드와 함께 응답의 JSON 페이로드여야 합니다. 데이터는 모델이 배포된 지역에서 처리됩니다. 응답은 AML 기술 정의에 지정된 출력을 제공해야 합니다. 다른 응답은 오류로 간주되며 강화는 수행되지 않습니다.

참고 항목

인덱서는 AML 온라인 엔드포인트에서 반환된 특정 표준 HTTP 상태 코드에 대해 다시 두 번 시도합니다. 이러한 HTTP 상태 코드는 다음과 같습니다.

  • 503 Service Unavailable
  • 429 Too Many Requests

AML 기술은 2024-07-01 안정적인 API 버전 또는 해당 Azure SDK 또는 Azure AI Foundry 포털의 모델 카탈로그에 연결하기 위한 2024-05-01-preview API 버전으로 호출할 수 있습니다.

Azure AI Foundry의 모델에 대한 AML 기술

2024-05-01-preview REST API 및 Azure Portal(2024-05-01-preview를 대상으로 하는)부터 Azure AI Search는 Azure AI Foundry 포털의 모델 카탈로그에 대한 쿼리 시간 연결을 위한 Azure AI Foundry 모델 카탈로그 벡터라이저를 제공합니다. 쿼리에 해당 벡터라이저를 사용하려는 경우 AML 기술은 Azure AI Foundry 모델 카탈로그의 모델을 사용하여 포함을 생성하기 위한 인덱싱 기술입니다.

인덱싱하는 동안 AML 기술은 모델 카탈로그에 연결하여 인덱스에 대한 벡터를 생성할 수 있습니다. 쿼리 시 쿼리는 벡터라이저를 사용하여 동일한 모델에 연결하여 벡터 쿼리에 대한 텍스트 문자열을 벡터화할 수 있습니다. 이 워크플로 에서는 인덱싱과 쿼리 모두에 동일한 포함 모델을 사용할 수 있도록 AML 기술과 모델 카탈로그 벡터라이저를 함께 사용해야 합니다. 자세한 내용 및 지원되는 포함 모델 목록은 Azure AI Foundry 모델 카탈로그포함 모델 사용을 참조하세요.

데이터 가져오기 및 벡터화 마법사를 사용하여 Azure AI Foundry에 배포된 포함 모델에 대한 AML 기술을 포함하는 기술 세트를 생성하는 것이 좋습니다. 입력, 출력 및 매핑에 대한 AML 기술 정의는 마법사에서 생성되므로 코드를 작성하기 전에 모델을 쉽게 테스트할 수 있습니다.

필수 조건

@odata.type

Microsoft.Skills.Custom.AmlSkill

기술 매개 변수

매개 변수는 대/소문자를 구분합니다. 사용할 매개 변수는 AML 온라인 엔드포인트에 필요한 인증(있는 경우)에 따라 달라집니다.

매개 변수 이름 설명
uri (키 인증에 필요) JSON 페이로드를 보낼 AML 온라인 엔드포인트의 채점 URI입니다. https URI 체계만 허용됩니다. Azure AI Foundry 모델 카탈로그에 모델을 포함하는 경우 대상 URI입니다.
key (키 인증필요) AML 온라인 엔드포인트 또는
resourceId (토큰 인증에 필요) AML 온라인 엔드포인트의 Azure Resource Manager 리소스 ID. subscriptions/{guid}/resourceGroups/{resource-group-name}/Microsoft.MachineLearningServices/workspaces/{workspace-name}/onlineendpoints/{endpoint_name} 형식이어야 합니다.
region (토큰 인증의 경우 선택 사항). AML 온라인 엔드포인트가 배포되는 지역.
timeout (선택 사항) 지정할 경우 API 호출을 수행하는 http 클라이언트에 대한 시간 제한을 나타냅니다. 형식은 XSD "dayTimeDuration" 값( ISO 8601 기간 값의 제한된 하위 집합)이어야 합니다. 예를 들어, 60초인 경우 PT60S입니다. 설정하지 않으면 기본값 30초가 선택됩니다. 시간 제한은 최대 230초, 최소 1초로 설정할 수 있습니다.
degreeOfParallelism (선택 사항) 지정된 경우 인덱서가 제공된 엔드포인트와 병렬로 수행하는 호출 수를 나타냅니다. 요청 부하가 너무 높은 상태에서 엔드포인트가 실패하는 경우 이 값을 줄일 수 있습니다. 엔드포인트가 더 많은 요청을 수락할 수 있고 인덱서의 성능을 향상시키려면 이 값을 늘릴 수 있습니다. 설정하지 않으면 기본값으로 5초가 사용됩니다. degreeOfParallelism은 최대 10개까지 설정할 수 있으며 최솟값은 1입니다.

인증

AML 온라인 엔드포인트는 다음 두 가지 인증 옵션을 제공합니다.

  • 키 기반 인증. 정적 키는 AML 기술에서 점수 매기기 요청을 인증하기 위해 제공됩니다. 이 연결에 uri 대한 매개 변수와 key 매개 변수를 설정합니다.

  • 토큰 기반 인증- 토큰 기반 인증을 사용하여 AML 온라인 엔드포인트를 배포합니다. Azure AI Search 서비스의 관리 ID 를 사용하도록 설정하고 작업 영역에 역할 할당이 있어야 합니다. 그런 다음, AML 기술은 서비스의 관리 ID를 사용하여 정적 키가 필요 없는 AML 온라인 엔드포인트에 대해 인증합니다. 검색 서비스 ID는 소유자 또는 참가자여야 합니다. 매개 변수를 resourceId 설정하고 검색 서비스가 AML 작업 영역과 다른 지역에 있는 경우 매개 변수를 region 설정합니다.

기술 입력

기술 입력은 문서 크래킹 중에 생성되는 보강된 문서의 노드입니다. 예를 들어 루트 문서, 정규화된 이미지 또는 Blob의 콘텐츠일 수 있습니다. 이 기술에 대해 미리 정의된 입력은 없습니다. 입력의 경우 AML 기술 실행 시 채워진 하나 이상의 노드를 지정해야 합니다.

기술 출력

기술 출력은 기술에서 만든 보강된 문서의 새 노드입니다. 이 기술에 대해 미리 정의된 출력은 없습니다. 출력의 경우 AML 기술의 JSON 응답에서 채울 수 있는 노드를 제공해야 합니다.

샘플 정의

  {
    "@odata.type": "#Microsoft.Skills.Custom.AmlSkill",
    "description": "A custom model that detects the language in a document.",
    "uri": "https://language-model.models.contoso.com/score",
    "context": "/document",
    "inputs": [
      {
        "name": "text",
        "source": "/document/content"
      }
    ],
    "outputs": [
      {
        "name": "detected_language_code"
      }
    ]
  }

샘플 입력 JSON 구조

JSON 구조는 AML 온라인 엔드포인트로 전송되는 페이로드를 나타냅니다. 구조의 최상위 필드는 기술 정의의 inputs 섹션에 지정된 “names”에 해당합니다. 해당 필드의 값은 해당 필드의 source(문서의 필드 또는 잠재적으로 다른 기술의 필드일 수 있음)에서 가져온 것입니다.

{
  "text": "Este es un contrato en Inglés"
}

샘플 출력 JSON 구조

출력은 AML 온라인 엔드포인트에서 반환된 응답에 해당합니다. AML 온라인 엔드포인트는 (Content-Type 응답 헤더에서 확인된) JSON 페이로드만 반환해야 하며, 필드가 output의 “이름”과 일치하고 값이 보강으로 간주되는 강화 개체여야 합니다.

{
    "detected_language_code": "es"
}

인라인 셰이핑 샘플 정의

  {
    "@odata.type": "#Microsoft.Skills.Custom.AmlSkill",
    "description": "A sample model that detects the language of sentence",
    "uri": "https://language-model.models.contoso.com/score",
    "context": "/document",
    "inputs": [
      {
        "name": "shapedText",
        "sourceContext": "/document",
        "inputs": [
            {
              "name": "content",
              "source": "/document/content"
            }
        ]
      }
    ],
    "outputs": [
      {
        "name": "detected_language_code"
      }
    ]
  }

인라인 셰이핑 입력 JSON 구조

{
  "shapedText": { "content": "Este es un contrato en Inglés" }
}

인라인 셰이핑 샘플 출력 JSON 구조

{
    "detected_language_code": "es"
}

오류 사례

AML이 사용 가능하지 않거나 성공하지 못한 상태 코드를 보내는 것 외에도 다음 상황이 잘못된 경우로 간주됩니다.

  • AML 온라인 엔드포인트는 성공 상태 코드를 반환하지만 응답은 그렇지 않음 application/json을 나타냅니다. 그러면 응답이 잘못된 것으로 간주되고 보강이 수행되지 않습니다.

  • AML 온라인 엔드포인트는 잘못된 JSON을 반환합니다.

AML 온라인 엔드포인트를 사용할 수 없거나 HTTP 오류를 반환하는 경우 HTTP 오류에 대한 사용 가능한 세부 정보가 포함된 친숙한 오류가 인덱서 실행 기록에 추가됩니다.

참고 항목