다음을 통해 공유


Azure Vision 멀티모달 포함 기술

중요합니다

이 기술은 추가 사용 약관에 따라 공개 미리 보기로 제공됩니다. 2024-05-01-Preview REST API 및 최신 미리 보기 API는 이 기능을 지원합니다.

Azure Vision multimodal embeddings 기술은 Foundry Tools의 Azure Vision에서 멀티모달 embeddings API를 사용하여 텍스트 또는 이미지 입력에 대한 포함을 생성합니다.

하루에 인덱서당 문서가 20개 초과되는 트랜잭션의 경우 이 기술을 사용하려면 청구 가능한 Microsoft Foundry 리소스를 기술 세트에 연결해야 합니다. 기본 제공 기술의 실행은 기존 Foundry 도구 표준 가격으로 청구됩니다. 이미지 추출은 Azure AI Search에서도 청구할 수 있습니다.

리소스 위치는 청구에 대한 고려 사항입니다. 미리 보기 REST API 버전을 사용하여 미리 보기 기술을 포함하는 기술 세트를 만들기 때문에 키 없는 연결을 사용하여 동일한 지역 요구 사항을 무시할 수 있습니다. 그러나 키 기반 연결의 경우 Azure AI Search 및 Foundry는 동일한 지역에 있어야 합니다. 지역 호환성을 보장하려면 다음을 수행합니다.

  1. 멀티모달 포함에 지원되는 지역을 찾습니다.
  2. 지역이 AI 보강을 제공하는지 확인합니다.

Foundry 리소스는 청구 목적으로만 사용됩니다. 콘텐츠 처리는 동일한 지역 내에서 Azure AI Search에서 관리 및 유지 관리하는 별도의 리소스에서 발생합니다. 데이터는 리소스가 배포된 지역에서 처리됩니다.

@odata.type

Microsoft.Skills.Vision.VectorizeSkill

데이터 제한

기술에 대한 입력 제한은 이미지 및 텍스트에 대한 Azure Vision 설명서 에서 찾을 수 있습니다. 텍스트 입력에 데이터 청크가 필요한 경우 텍스트 분할 기술을 사용하는 것이 좋습니다.

적용 가능한 입력은 다음과 같습니다.

  • 이미지 입력 파일 크기는 20MB 미만이어야 합니다. 이미지 크기는 10 x 10 픽셀보다 크고 16,000 x 16,000 픽셀 미만이어야 합니다.
  • 텍스트 입력 문자열은 단어 1개와 단어 70개 사이여야 합니다.

기술 매개 변수

매개 변수는 대/소문자를 구분합니다.

입력 설명
modelVersion (필수) 포함을 생성하기 위해 Azure Vision 멀티모달 embeddings API에 전달할 모델 버전(2023-04-15)입니다. 벡터 포함은 동일한 모델 형식의 경우에만 비교 및 일치시킬 수 있습니다. 한 모델로 벡터화된 이미지는 다른 모델을 통해 검색할 수 없습니다. 최신 이미지 분석 API는 다음 두 가지 모델을 제공합니다.
  • 2023-04-15 여러 언어로 된 텍스트 검색을 지원하는 버전입니다. Azure AI Search는 이 버전을 사용합니다.
  • 영어만 지원하는 레거시 2022-04-11 모델입니다.

기술 입력

기술 정의 입력에는 이름, 원본 및 입력이 포함됩니다. 다음 표에서는 입력 이름에 유효한 값을 제공합니다. 재귀 입력을 지정할 수도 있습니다. 자세한 내용은 REST API 참조기술 세트 만들기를 참조하세요.

입력 설명
text 벡터화할 입력 텍스트입니다. 데이터 청크를 사용하는 경우 원본은 /document/pages/*일 수 있습니다.
image 복합 형식입니다. imageActionnone 이외의 값으로 설정된 경우 현재 Azure Blob 인덱서에서 생성된 “/document/normalized_images” 필드에만 작동합니다.
url 벡터화할 이미지를 다운로드할 URL입니다.
queryString 벡터화할 이미지를 다운로드할 URL의 쿼리 문자열입니다. URL 및 SAS 토큰을 별도의 경로에 저장하는 경우에 유용합니다.

기술의 단일 인스턴스에 대해 text, image 또는 url/queryString 중 하나만 구성할 수 있습니다. 동일한 기술 세트 내에서 이미지와 텍스트를 둘 다 벡터화하려는 경우 이 기술의 두 인스턴스를 기술 세트 정의에 포함합니다. 하나는 사용하려는 각 입력 유형에 대해 하나씩입니다.

기술 출력

출력 설명
vector 입력 텍스트 또는 이미지에 대한 부동 소수 자릿수 배열을 포함하는 출력입니다.

샘플 정의

텍스트 입력의 경우 다음 콘텐츠가 있는 Blob을 고려합니다.

{
    "content": "Forests, grasslands, deserts, and mountains are all part of the Patagonian landscape that spans more than a million square  kilometers of South America."
}

텍스트 입력의 경우 기술 정의는 다음과 같을 수 있습니다.

{ 
    "@odata.type": "#Microsoft.Skills.Vision.VectorizeSkill", 
    "context": "/document", 
    "modelVersion": "2023-04-15", 
    "inputs": [ 
        { 
            "name": "text", 
            "source": "/document/content" 
        } 
    ], 
    "outputs": [ 
        { 
            "name": "vector",
            "targetName": "text_vector"
        } 
    ] 
} 

이미지 입력의 경우 동일한 기술 세트의 두 번째 기술 정의는 다음과 같을 수 있습니다.

{
    "@odata.type": "#Microsoft.Skills.Vision.VectorizeSkill",
    "context": "/document/normalized_images/*",
    "modelVersion": "2023-04-15", 
    "inputs": [
        {
            "name": "image",
            "source": "/document/normalized_images/*"
        }
    ],
    "outputs": [
        {
            "name": "vector",
            "targetName": "image_vector"
        }
    ]
}

인덱싱하는 동안 이미지를 추출하는 대신 Blob Storage 데이터 원본에서 직접 이미지를 벡터화하려는 경우 기술 정의는 스토리지 보안에 따라 URL 및 SAS 토큰을 지정해야 합니다. 이 시나리오의 경우 기술 정의는 다음과 같을 수 있습니다.

{
    "@odata.type": "#Microsoft.Skills.Vision.VectorizeSkill",
    "context": "/document",
    "modelVersion": "2023-04-15", 
    "inputs": [
        {
            "name": "url",
            "source": "/document/metadata_storage_path"
        },
        {
            "name": "queryString",
            "source": "/document/metadata_storage_sas_token"
        }
    ],
    "outputs": [
        {
            "name": "vector",
            "targetName": "image_vector"
        }
    ]
}

샘플 출력

지정된 입력의 경우 벡터화된 포함 출력이 생성됩니다. 출력은 1,024차원으로, Azure Vision 멀티모달 API에서 지원하는 차원 수입니다.

{
  "text_vector": [
        0.018990106880664825,
        -0.0073809814639389515,
        .... 
        0.021276434883475304,
      ]
}

출력은 메모리에 상주합니다. 이 출력을 검색 인덱스의 필드로 보내려면 벡터화된 포함 출력(배열)을 벡터 필드에 매핑하는 outputFieldMapping을 정의해야 합니다. 기술 출력이 문서의 벡터 노드에 있고 content_vector 검색 인덱스의 필드라고 가정하면 인덱서의 outputFieldMapping은 다음과 같습니다.

  "outputFieldMappings": [
    {
      "sourceFieldName": "/document/vector/*",
      "targetFieldName": "content_vector"
    }
  ]

인덱스에 이미지 포함을 매핑하는 경우 인덱스 프로젝션을 사용합니다. 페이 indexProjections 로드는 다음 예제와 유사할 수 있습니다. image_content_vector 인덱스의 필드이며 normalized_images 배열의벡터에 있는 콘텐츠로 채워집니다.

"indexProjections": {
    "selectors": [
        {
            "targetIndexName": "myTargetIndex",
            "parentKeyFieldName": "ParentKey",
            "sourceContext": "/document/normalized_images/*",
            "mappings": [
                {
                    "name": "image_content_vector",
                    "source": "/document/normalized_images/*/vector"
                }
            ]
        }
    ]
}

참고 항목