중요합니다
이 기술은 추가 사용 약관에 따라 공개 미리 보기로 제공됩니다. 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는 동일한 지역에 있어야 합니다. 지역 호환성을 보장하려면 다음을 수행합니다.
- 멀티모달 포함에 지원되는 지역을 찾습니다.
- 지역이 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는 다음 두 가지 모델을 제공합니다.
|
기술 입력
기술 정의 입력에는 이름, 원본 및 입력이 포함됩니다. 다음 표에서는 입력 이름에 유효한 값을 제공합니다. 재귀 입력을 지정할 수도 있습니다. 자세한 내용은 REST API 참조 및 기술 세트 만들기를 참조하세요.
| 입력 | 설명 |
|---|---|
text |
벡터화할 입력 텍스트입니다. 데이터 청크를 사용하는 경우 원본은 /document/pages/*일 수 있습니다. |
image |
복합 형식입니다.
imageAction이 none 이외의 값으로 설정된 경우 현재 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"
}
]
}
]
}