Azure Vision 멀티모달 포함 기술(미리 보기)

메모

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

Important

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

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

인덱서당 하루에 20개를 초과하는 거래가 발생할 경우, 이 기술은 청구 가능한 Microsoft Foundry 리소스를 귀하의 스킬셋에 부착해야 합니다. 내장 기술 실행은 기존 파운드리 공구 표준 가격으로 부과됩니다. 이미지 추출은 Azure AI 검색<>c0> 청구 대상도 <.

Microsoft Foundry 리소스는 청구 목적으로만 사용됩니다. 콘텐츠 처리는 Azure AI 검색가 관리하고 유지하는 별도의 리소스에서 이루어집니다. 데이터는 자원이 배치된 지오(Geo )에서 처리됩니다.

지원되는 지역

지원되는 지역은 모달리티와 스킬이 Azure Vision 멀티모달 임베딩 API와 어떻게 연결되는지에 따라 다릅니다.

접근법 요구 사항
데이터 가져오기 마법사
  1. Azure Vision에서 다중 모달 임베딩을 지원하는 영역을 찾으세요.
  2. 영역이 Azure AI 검색에서 AI 강화를 지원하는지 확인하세요.
  3. 같은 지역에서 Azure AI 검색 서비스와 Azure AI 다중 서비스 계정을 생성하세요.
프로그래매틱, 청구를 위해 키 기반 연결을 사용하는 방식
  1. Azure Vision에서 다중 모달 임베딩을 지원하는 영역을 찾으세요.
  2. 영역이 Azure AI 검색에서 AI 강화를 지원하는지 확인하세요.
  3. 같은 지역 내에서 Azure AI 검색 서비스와 Microsoft Foundry 리소스를 생성하세요.
프로그래매틱, 키리스 연결을 이용한 청구 방식 동일 지역 요구사항은 없습니다. 각 서비스가 제공되는 지역에 Azure AI 검색 서비스와 파운드리 자원을 Microsoft하세요.

@odata.type

Microsoft.Skills.Vision.VectorizeSkill

데이터 제한

이 기술의 입력 제한은 이미지와 텍스트에 대한 Azure Vision 문서에서 확인할 수 있습니다. 텍스트 입력에 데이터 청킹이 필요하다면 텍스트 분할 스킬 을 고려해 보세요.

적용 가능한 입력 요소는 다음과 같습니다:

  • 이미지 입력 파일 크기는 20메가바이트(MB) 미만이어야 합니다. 이미지 크기는 10 x 10 픽셀 이상이어야 하며, 16,000 x 16,000 픽셀 미만이어야 합니다.
  • 텍스트 입력 문자열은 (포함) 단어 1단어에서 70단어 사이여야 합니다.

기술 매개 변수

매개변수는 대소문자에 구분됩니다.

입력 Description
modelVersion (필수) 모델 버전(2023-04-15)은 임베딩 생성을 위해 Azure Vision 멀티모달 임베딩 API에 전달됩니다. 벡터 임베딩은 같은 모델 유형에서만 비교 및 매칭이 가능합니다. 한 모델로 벡터화된 이미지는 다른 모델에서는 검색할 수 없습니다. 최신 이미지 분석 API는 두 가지 모델을 제공합니다:
  • 2023-04-15 이 버전은 여러 언어에서 텍스트 검색을 지원합니다. Azure AI 검색는 이 버전을 사용합니다.
  • 레거시 2022-04-11 모델은 영어만 지원합니다.

기술 입력

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

입력 Description
text 입력 텍스트를 벡터화해야 합니다. 데이터 청킹을 사용한다면, 소스가 아 /document/pages/*마 일 수 있습니다.
image 복합 형식입니다. 현재는 Azure 블롭 인덱서에서 imageAction가 none 이외의 값으로 설정되었을 때 생성되는 "/document/normalized_images" 필드에서만 작동합니다.
url 벡터화할 이미지를 다운로드할 수 있는 URL.
queryString 이미지를 벡터화할 URL의 쿼리 문자열을 다운로드하세요. URL과 SAS 토큰을 별도의 경로에 저장할 때 유용합니다.

스킬 인스턴스 중 textimage 하나만 , 또는url/queryString하나만 설정할 수 있습니다. 같은 스킬셋 내에서 이미지와 텍스트를 모두 벡터화하고 싶다면, 스킬셋 정의에 각 입력 유형별로 두 개의 인스턴스를 포함하세요.

기술 성과

출력 Description
vector 입력된 텍스트나 이미지에 대한 플로트 집합 임베딩 배열.

샘플 정의

텍스트 입력에 대해, 다음과 같은 내용을 가진 블롭을 생각해 보세요:

{
    "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"
        }
    ]
}

인덱싱 중에 이미지를 추출하는 대신 블롭 저장소 데이터 소스에서 직접 이미지를 벡터화하고 싶다면, 스킬 정의에 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"
                }
            ]
        }
    ]
}

참고하십시오