다음을 통해 공유


MRL 압축을 사용하여 차원 자르기(미리 보기)

Important

이 기능은 추가 사용 약관에 따라 공개 미리 보기로 제공됩니다. 미리 보기 REST API는 이 기능을 지원합니다.

텍스트 포함-3 모델에서 더 적은 차원을 사용하는 기능을 연습합니다. Azure OpenAI에서 text-embedding-3 모델은 다양한 수준의 압축에서 여러 벡터 표현을 생성하는 MRL(Matryoshka Representation Learning) 기술을 다시 학습합니다. 이 방법은 의미 체계 정보의 손실을 최소화하면서 더 빠른 검색 및 스토리지 비용을 절감합니다.

Azure AI Search에서 MRL은 스칼라 및 이진 양자화를 보완합니다. 두 양자화 방법 중 하나를 truncationDimension 사용하는 경우 벡터 필드에 속성을 지정하여 텍스트 포함의 차원을 줄일 수도 있습니다.

MRL 다단계 압축은 벡터 스토리지를 저장하고 텍스트 포함을 기반으로 벡터 쿼리에 대한 쿼리 응답 시간을 향상시킵니다. Azure AI Search에서 MRL 지원은 다른 정량화 방법과 함께만 제공됩니다. MRL과 함께 이진 양자화를 사용하면 최대 벡터 인덱스 크기가 감소합니다. 최대 스토리지 감소를 달성하려면 MRL stored 과 함께 이진 양자화를 사용하고 false로 설정합니다.

이 기능은 프리뷰로 제공됩니다. 해당 미리 보기 API 버전을 대상으로 하는 베타 SDK 패키지 및 베타에서 사용할 수 있습니다 2024-09-01-preview .

필수 조건

지원되는 클라이언트

REST API 또는 Azure SDK 베타 패키지를 사용하여 MRL 압축을 구현할 수 있습니다.

현재 Azure Portal 또는 Azure AI Studio 지원은 없습니다.

MRL 확장 텍스트 포함을 사용하는 방법

MRL은 이미 사용 중인 텍스트 포함 모델에 기본 제공되는 기능입니다. Azure AI Search에서 이러한 기능을 활용하려면 다음 단계를 수행합니다.

  1. 인덱스 만들기 또는 업데이트(미리 보기) 또는 해당하는 API를 사용하여 인덱스 스키마를 지정합니다.

  2. 인덱스 정의에 벡터 필드를 추가합니다.

  3. 인덱스 정의에 개체를 vectorSearch.compressions 지정합니다.

  4. 스칼라 또는 이진(권장)의 양자화 메서드를 포함합니다.

  5. truncationDimension 512로 설정된 매개 변수를 포함하거나 텍스트 포함-3 대용량 모델을 사용하는 경우 256으로 낮습니다.

  6. HNSW 알고리즘 및 벡터 압축 개체를 지정하는 벡터 프로필을 지정합니다.

  7. 형식 Edm.Half 의 벡터 필드 또는 Edm.Single 필드 컬렉션에 벡터 프로필을 할당합니다.

MRL 지원 텍스트 포함 모델을 사용하기 위한 쿼리 쪽 수정은 없습니다. 통합 벡터화, 쿼리 시 텍스트-쿼리 변환, 의미 체계 순위 및 원래 벡터로 재전송 및 오버샘플링과 같은 기타 관련성 향상 기능은 MRL 지원의 영향을 받지 않습니다.

추가 단계로 인해 인덱싱 속도가 느려지지만 쿼리는 더 빠릅니다.

MRL을 지원하는 벡터 검색 구성의 예

다음 예제에서는 MRL의 요구 사항 및 권장 사항을 충족하는 벡터 검색 구성을 보여 줍니다.

truncationDimension 는 압축 속성입니다. 스칼라 또는 이진 압축과 같은 압축 방법과 함께 메모리의 벡터 그래프를 축소할 크기를 지정합니다. 이진 정량화의 경우 truncationDimension 1,024개 이상을 사용하는 것이 좋습니다. 1,000 미만의 차원은 MRL 및 이진 압축을 사용할 때 검색 결과의 품질을 저하합니다.

{ 
  "vectorSearch": { 
    "profiles": [ 
      { 
        "name": "use-bq-with-mrl", 
        "compression": "use-mrl,use-bq", 
        "algorithm": "use-hnsw" 
      } 
    ],
    "algorithms": [
       {
          "name": "use-hnsw",
          "kind": "hnsw",
          "hnswParameters": {
             "m": 4,
             "efConstruction": 400,
             "efSearch": 500,
             "metric": "cosine"
          }
       }
    ],
    "compressions": [ 
      { 
        "name": "use-mrl", 
        "kind": "truncation", 
        "rerankWithOriginalVectors": true, 
        "defaultOversampling": 10, 
        "truncationDimension": 1024
      }, 
      { 
        "name": "use-bq", 
        "kind": "binaryQuantization", 
        "rerankWithOriginalVectors": true,
        "defaultOversampling": 10
       } 
    ] 
  } 
} 

다음은 MRL에 대한 요구 사항을 충족하는 완전히 지정된 벡터 필드 정의 의 예입니다.

벡터 필드는 형식 Edm.Half 이거나 Edm.Single. 벡터 필드에는 vectorSearchProfile 알고리즘 및 압축 설정을 결정하는 속성이 있어야 합니다. 벡터 필드에는 dimensions 점수 매기기 및 순위 결과에 대한 차원 수를 지정하는 데 사용되는 속성이 있습니다. 해당 값은 사용 중인 모델의 차원 제한이어야 합니다(텍스트 포함-3-small의 경우 1,536).

{
    "name": "text_vector",
    "type": "Collection(Edm.Single)",
    "searchable": true,
    "filterable": false,
    "retrievable": false,
    "stored": false,
    "sortable": false,
    "facetable": false,
    "key": false,
    "indexAnalyzer": null,
    "searchAnalyzer": null,
    "analyzer": null,
    "normalizer": null,
    "dimensions": 1536,
    "vectorSearchProfile": "use-bq-with-mrl",
    "vectorEncoding": null,
    "synonymMaps": []
}