통합 벡터화(미리 보기)를 위해 Microsoft Foundry 모델 카탈로그의 포함 모델 사용

참고

Azure AI 검색 Azure 포털, REST API 및 Azure SDK 통해 사용할 수 있습니다. 또한 엔터프라이즈 콘텐츠를 Microsoft Foundry 포털의 에이전트에 대해 재사용 가능한 사용 권한 인식 기술 자료로 변환하는 관리되는 기술 계층인 Foundry IQ를 뒷받침합니다.

중요

기능, 기능 또는 표시된 속성(미리 보기)은 서비스 수준 계약에 포함되지 않으며 프로덕션 워크로드에는 권장되지 않으며 일반적으로 사용 가능해지기 전에 변경되거나 제한될 수 있습니다. Azure AI 검색 미리 보기 용어는 독립 실행형 기능이든 일반 공급 기능의 일부이든 관계없이 모든 미리 보기 기능에 적용됩니다.

이 문서에서는 Azure AI 검색 인덱싱 및 쿼리 실행 중에 통합 벡터화(미리 보기)에 Microsoft Foundry 모델 카탈로그 모델을 사용하는 방법을 알아봅니다.

워크플로를 사용하려면 카탈로그에서 모델을 배포해야 합니다. 여기에는 Microsoft 및 기타 회사의 모델 포함이 포함됩니다. 모델 배포는 각 공급자의 청구 구조에 따라 청구할 수 있습니다.

모델을 배포한 후에는 AML 기술을 사용하여 인덱싱하는 동안 통합 벡터화하거나 쿼리에 Microsoft Foundry 모델 카탈로그 벡터라이저 사용할 수 있습니다.

팁

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

필수 구성 요소

지원되는 임베딩 모델

모델 카탈로그에서 지원되는 포함 모델은 사용 방법에 따라 다릅니다.

모델 카탈로그에서 임베딩 모델을 배포합니다.

  1. 다음 포털 지침에 따라 지원되는 모델을 프로젝트에 배포합니다.

  2. 대상 URI, 키 및 모델 이름을 기록해 둡다. 검색 인덱스의 벡터라이저 정의 및 인덱싱 중에 모델 엔드포인트를 호출하는 기술 세트에 대해 이러한 값이 필요합니다.

    키 기반 인증에 토큰 인증 을 선호하는 경우 모델 이름만 복사하면 됩니다. 그러나 모델이 배포되는 지역을 기록해 둡다.

  3. 배포된 모델을 사용하도록 검색 인덱스 및 인덱서 구성

임베딩 모델을 서버리스 환경으로 배포하기

AML 기술 및 Microsoft Foundry 모델 카탈로그 벡터라이저는 Cohere 포함 모델의 서버리스 배포만 허용합니다. Microsoft Foundry 포털을 통한 서버리스 배포는 이러한 모델에 대해 지원되지 않으므로 Azure CLI 사용하여 배포를 만듭니다. 자세한 내용은 모델을 서버리스 API 배포로 배포하기를 참조하세요.

Cohere 서버리스 배포를 만들려면 다음을 수행합니다.

  1. ml 확장으로 Azure CLI 설치합니다.

    az extension add -n ml
    
  2. Azure 로그인하고 기본값을 설정합니다.

    az login
    az account set --subscription <subscription-id>
    az configure --defaults workspace=<project-name> group=<resource-group>
    
  3. 모델의 마켓플레이스 구독을 위해 subscribe.yaml 파일을 만듭니다.

    name: cohere-embed-v3-english-subscription
    model_id: azureml://registries/azureml-cohere/models/Cohere-embed-v3-english
    

    지원되는 다른 모델의 경우 모델 ID를 다음 값 중 하나로 바꿉니다.

    모델 모델 ID
    Cohere-embed-v3-english azureml://registries/azureml-cohere/models/Cohere-embed-v3-english
    Cohere-embed-v3-multilingual azureml://registries/azureml-cohere/models/Cohere-embed-v3-multilingual
    Cohere-embed-v4 azureml://registries/azureml-cohere/models/Cohere-embed-v4
  4. 다음 명령을 실행하여 구독을 만듭니다.

    az ml marketplace-subscription create --file subscribe.yaml
    
  5. 서버리스 엔드포인트를 생성하는 endpoint.yaml 파일을 만드십시오.

    name: cohere-embed-v3-english-endpoint
    model_id: azureml://registries/azureml-cohere/models/Cohere-embed-v3-english
    
  6. 다음 명령을 실행하여 엔드포인트를 만듭니다.

    az ml serverless-endpoint create --file endpoint.yaml
    
  7. 키 기반 인증의 경우 기술 또는 벡터라이저에 사용할 엔드포인트 URI 및 키를 가져옵니다.

    az ml serverless-endpoint show --name cohere-embed-v3-english-endpoint --query "scoring_uri"
    az ml serverless-endpoint get-credentials --name cohere-embed-v3-english-endpoint
    

샘플 AML 기술 페이로드

모델 카탈로그에서 포함 모델을 배포하는 경우 워크로드 인덱싱을 위해 Azure AI 검색 AML 기술을 사용하여 모델에 연결합니다.

이 섹션에서는 AML 기술 정의 및 인덱스 매핑에 대해 설명합니다. 여기에는 해당 배포된 엔드포인트에서 작동하도록 이미 구성된 샘플 페이로드가 포함되어 있습니다. 자세한 내용은 기술 컨텍스트 및 입력 주석 언어를 참조하세요.

코히어 임베딩 모델

이 AML 기술 페이로드는 다음 포함 모델에서 작동합니다.

  • Cohere-embed-v3-english
  • Cohere-embed-v3-multilingual
  • Cohere-embed-v4

텍스트 분할 기술을 사용하여 콘텐츠를 청크하는 것으로 가정하므로 벡터화할 텍스트가 경로에 /document/pages/* 있다고 가정합니다. 텍스트가 다른 경로에서 오는 경우, /document/pages/* 경로에 대한 모든 참조를 적절하게 수정하십시오.

Foundry 배포에서 복사한 URL의 끝에 경로를 추가 /v1/embed 해야 합니다. 사용 사례에 더 적합하도록 input_type, truncate, 및 embedding_types 입력의 값을 변경할 수도 있습니다. 사용 가능한 옵션에 대한 자세한 내용은 Cohere Embed API 참조를 검토하세요.

URI 및 키는 카탈로그에서 모델을 배포할 때 생성됩니다. 이러한 값에 대한 자세한 내용은 Foundry를 사용하여 Cohere Embed 모델을 배포하는 방법을 참조하세요.

{
  "@odata.type": "#Microsoft.Skills.Custom.AmlSkill",
  "context": "/document/pages/*",
  "uri": "https://cohere-embed-v3-multilingual-hin.eastus.models.ai.azure.com/v1/embed",
  "key": "aaaaaaaa-0b0b-1c1c-2d2d-333333333333",
  "inputs": [
    {
      "name": "texts",
      "source": "=[$(/document/pages/*)]"
    },
    {
      "name": "input_type",
      "source": "='search_document'"
    },
    {
      "name": "truncate",
      "source": "='NONE'"
    },
    {
      "name": "embedding_types",
      "source": "=['float']"
    }
  ],
  "outputs": [
    {
      "name": "embeddings",
      "targetName": "aml_vector_data"
    }
  ]
}

또한 Cohere 모델의 출력은 embeddings 배열이 아니라 이를 포함하는 JSON 개체입니다. indexProjections 또는 outputFieldMappings을 통해 인덱스 정의에 매핑할 때 적절히 선택해야 합니다. 다음은 이 매핑을 구현할 수 있는 샘플 indexProjections 페이로드입니다.

다른 embedding_types를 기술 정의에서 선택한 경우, 선택한 형식으로 float 경로의 source을(를) 변경하십시오.

"indexProjections": {
  "selectors": [
    {
      "targetIndexName": "<YOUR_TARGET_INDEX_NAME_HERE>",
      "parentKeyFieldName": "ParentKey", // Change this to the name of the field in your index definition where the parent key will be stored
      "sourceContext": "/document/pages/*",
      "mappings": [
        {
          "name": "aml_vector", // Change this to the name of the field in your index definition where the Cohere embedding will be stored
          "source": "/document/pages/*/aml_vector_data/float/0"
        }
      ]
    }
  ],
  "parameters": {}
}

샘플 벡터라이저 페이로드

AML 기술과 달리 Microsoft Foundry 모델 카탈로그 벡터라이저는 모델 카탈로그를 통해 배포할 수 있는 포함 모델에만 맞게 조정됩니다. 주요 차이점은 요청 및 응답 페이로드에 대해 걱정할 필요가 없다는 것입니다. 그러나 모델을 배포한 후 복사한 "모델 ID"에 해당하는 modelName 값을 제공해야 합니다.

다음은 Foundry에서 복사한 속성을 고려할 때 인덱스 정의에서 벡터라이저를 구성하는 방법에 대한 샘플 페이로드입니다.

Cohere 모델의 경우, 이전에 스킬에서 했던 것처럼 URL 끝에 /v1/embed 경로를 추가해서는 안 됩니다.

"vectorizers": [
    {
        "name": "<YOUR_VECTORIZER_NAME_HERE>",
        "kind": "aml",
        "amlParameters": {
            "uri": "<YOUR_URL_HERE>",
            "key": "<YOUR_PRIMARY_KEY_HERE>",
            "modelName": "<YOUR_MODEL_ID_HERE>"
        },
    }
]

토큰 인증을 사용하여 연결

키 기반 인증을 사용할 수 없는 경우 Azure 대한 역할 기반 액세스 제어를 통해 토큰 인증에 대한 AML 기술 및 Microsoft Foundry 모델 카탈로그 벡터라이저 연결을 구성할 수 있습니다.

검색 서비스에는 시스템 또는 사용자 할당 관리 ID가 있어야 하며, ID에는 프로젝트에 대한 소유자 또는 기여자 권한이 있어야 합니다. 그런 다음 기술 및 벡터라이저 정의에서 key 필드를 제거하고, 이를 resourceId으로 교체할 수 있습니다. 프로젝트와 검색 서비스가 서로 다른 지역에 있는 경우 region 필드를 추가로 제공하십시오.

"uri": "<YOUR_URL_HERE>",
"resourceId": "subscriptions/<YOUR_SUBSCRIPTION_ID_HERE>/resourceGroups/<YOUR_RESOURCE_GROUP_NAME_HERE>/providers/Microsoft.MachineLearningServices/workspaces/<YOUR_AML_WORKSPACE_NAME_HERE>/onlineendpoints/<YOUR_AML_ENDPOINT_NAME_HERE>",
"region": "westus", // Only needed if project is in different region from search service

참고

이 통합은 현재 Cohere 모델에 대한 토큰 인증을 지원하지 않습니다. 키 기반 인증을 사용해야 합니다.