Azure AI 검색에 통합된 데이터 청크 및 포함

Important

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

통합 벡터화는 인덱서 기반 인덱싱 기술에 데이터 청크 및 텍스트-벡터 포함 기능을 추가합니다. 또한 쿼리에 텍스트를 벡터로 변환하는 기능을 추가합니다.

이 기능은 미리 보기 전용입니다. 일반 공급한 벡터 검색 버전과 이전 미리 보기 버전에서 데이터 청크 및 벡터화는 청크 및 벡터에 대한 외부 구성 요소에 의존하며 애플리케이션 코드는 각 단계를 처리하고 조정해야 합니다. 이 미리 보기에서는 기술과 인덱서를 통해 인덱싱에 청크 및 벡터화가 기본 제공됩니다. 텍스트 분할 기술을 사용하여 데이터를 청크하는 기술 세트를 설정한 다음, AzureOpenAIEmbedding 기술 또는 사용자 지정 기술을 사용하여 포함 모델을 호출할 수 있습니다. 인덱싱 중에 사용되는 모든 벡터라이저는 쿼리에서 호출되어 텍스트를 벡터로 변환할 수도 있습니다.

인덱싱을 위해 통합 벡터화에는 다음이 필요합니다.

문의사항:

  • 인덱스 스키마에 정의되고 벡터 필드에 할당되며 쿼리 시 자동으로 사용되어 텍스트 쿼리를 벡터로 변환하는 벡터라이저입니다.

벡터 변환은 단방향(텍스트에서 벡터 방향)입니다. 쿼리 또는 결과에 대한 벡터-텍스트 변환은 없습니다. 예를 들어, 벡터 결과를 사용자가 읽을 수 있는 문자열로 변환할 수 없습니다.

구성 요소 다이어그램

다음 다이어그램은 통합 벡터화의 구성 요소를 보여 줍니다.

통합된 벡터화 워크플로의 구성 요소 다이어그램.

통합 벡터화를 담당하는 구성 요소의 검사 목록은 다음과 같습니다.

  • 인덱서 기반 인덱싱을 위해 지원되는 데이터 원본입니다.
  • 벡터 필드를 할당하는 인덱스와 벡터 필드에 할당된 벡터라이저 정의입니다.
  • 데이터 청크를 위한 텍스트 분할 기술 및 벡터화 기술(AzureOpenAiEmbedding 기술 또는 외부 포함 모델을 가리키는 사용자 지정 기술)을 제공하는 기술 세트입니다.
  • 선택적으로 청크 분할 데이터를 보조 인덱스로 푸시하는 인덱스 프로젝션(기술 세트에도 정의됨)
  • Azure OpenAI에 배포되거나 HTTP 엔드포인트를 통해 사용할 수 있는 포함 모델입니다.
  • 프로세스를 처음부터 끝까지 진행하기 위한 인덱서입니다. 인덱서는 변경 검색을 위한 일정, 필드 매핑 및 속성도 지정합니다.

이 검사 목록은 통합 벡터화에 중점을 두고 있지만 사용자의 솔루션은 이 목록에만 국한되지 않습니다. AI 보강을 위한 더 많은 기술을 추가하고, 지식 저장소를 만들고, 의미 체계 순위 지정을 추가하고, 관련성 튜닝 및 기타 쿼리 기능을 추가할 수 있습니다.

가용성 및 가격 책정

통합 벡터화 가용성은 포함 모델을 기반으로 합니다. Azure OpenAI를 사용하는 경우 지역별 가용성을 확인합니다.

사용자 지정 기술과 Azure 호스팅 메커니즘(예: Azure 함수 앱, Azure 웹앱, Azure Kubernetes)을 사용하는 경우 지역별 제품 페이지에서 기능 사용 가능 여부를 확인합니다.

데이터 청크(텍스트 분할 기술)는 무료이며 모든 지역의 모든 Azure AI 서비스에서 사용할 수 있습니다.

참고 항목

2019년 1월 1일 이전에 만들어진 일부 이전 검색 서비스는 벡터 워크로드를 지원하지 않는 인프라에 배포됩니다. 스키마에 벡터 필드를 추가하려고 할 때 오류가 발생하는 경우 이는 오래된 서비스로 인한 것입니다. 이 상황에서는 벡터 기능을 사용해 보려면 새 검색 서비스를 만들어야 합니다.

통합 벡터화는 어떤 시나리오를 지원할 수 있나요?

  • 큰 문서를 여러 개의 청크로 세분화하여 벡터 시나리오 및 벡터가 아닌 시나리오에 유용합니다. 벡터의 경우 청크는 포함 모델의 입력 제약 조건을 충족하는 데 도움이 됩니다. 벡터가 아닌 시나리오의 경우 GPT가 인덱싱된 청크에서 응답을 수집하는 채팅 스타일 검색 앱이 있을 수 있습니다. 채팅 스타일 검색을 위해 벡터화된 청크 또는 벡터화되지 않은 청크를 사용할 수 있습니다.

  • 모든 필드가 벡터 필드이고 문서 ID(검색 인덱스에 필요함)가 유일한 문자열 필드인 벡터 저장소를 빌드합니다. 벡터 저장소를 쿼리하여 문서 ID를 쿼리한 다음 문서의 벡터 필드를 다른 모델로 보냅니다.

  • 의미 체계 순위 지정이 있거나 없는 하이브리드 검색을 위해 벡터와 텍스트 필드를 결합합니다. 통합된 벡터화는 벡터 검색이 지원하는 시나리오를 모두 간소화합니다.

통합 벡터화를 사용해야 하는 경우

Azure AI Studio의 기본 제공 벡터화 지원을 사용하는 것이 좋습니다. 이 방식이 요구 사항을 충족하지 않는 경우 Azure AI 검색의 프로그래밍 인터페이스를 사용하여 통합 벡터화를 호출하는 인덱서 및 기술 세트를 만들 수 있습니다.

통합 벡터화를 사용하는 방법

쿼리 전용 벡터화의 경우:

  1. 인덱스에 벡터라이저를 추가합니다. 인덱스에서 벡터를 생성하는 데 사용된 것과 동일한 포함 모델이어야 합니다.
  2. 벡터 프로필에 벡터라이저를 할당한 다음 벡터 필드에 벡터 프로필을 할당합니다.
  3. 벡터화할 텍스트 문자열을 지정하는 벡터 쿼리를 수식화합니다.

보다 일반적인 시나리오 - 인덱싱 중 데이터 청크 및 벡터화:

  1. 인덱서 기반 인덱스를 만들기 위해 지원되는 데이터 원본에 대한 데이터 원본 연결을 만듭니다.
  2. 청크를 만들기 위한 텍스트 분할 기술과 청크를 벡터화하기 위한 AzureOpenAIEmbeddingModel 또는 사용자 지정 기술을 호출하는 기술 세트를 만듭니다.
  3. 쿼리 시간에 대한 벡터라이저를 할당하는 인덱스를 만들고 이를 벡터 필드에 할당합니다.
  4. 인덱서를 만들어 데이터 검색부터 기술 실행까지 모든 것을 인덱싱을 통해 구동합니다.

선택적으로 청크 분할 콘텐츠가 하나의 인덱스에 있고 청크 분할되지 않은 콘텐츠가 다른 인덱스에 있는 고급 시나리오를 위해 보조 인덱스를 만듭니다. 청크 분할 인덱스(또는 보조 인덱스)는 RAG 앱에 유용합니다.

Azure Portal의 새로운 데이터 가져오기 및 벡터화 마법사를 사용하여 코드를 작성하기 전에 통합된 벡터화를 살펴봅니다.

또는 동일한 워크플로를 셀별로 실행하도록 Jupyter Notebook을 구성하여 각 단계의 작동 방식을 확인합니다.

제한 사항

모델 포함에 대한 Azure OpenAI 할당량 및 한도를 알고 있어야 합니다. Azure AI 검색에는 다시 시도 정책이 있지만 할당량이 모두 사용되면 다시 시도가 실패합니다.

분당 Azure OpenAI 토큰 제한은 모델별, 구독별로 적용됩니다. 쿼리 및 인덱싱 워크로드 모두에 포함 모델을 사용하는 경우 이 점을 유념해야 합니다. 가능하다면 모범 사례를 따릅니다. 각 워크로드에 대한 포함 모델을 갖고 이를 다른 구독에 배포해 보세요.

Azure AI 검색에는 계층 및 워크로드별로 서비스 제한이 있다는 점을 기억해야 합니다.

마지막으로 다음 기능은 현재 지원되지 않습니다.

통합 벡터화의 이점

통합 벡터화의 주요 이점은 다음과 같습니다.

  • 별도의 데이터 청크 및 벡터화 파이프라인이 없습니다. 코드를 작성하고 유지 관리하는 것이 더 간단합니다.

  • 인덱싱을 처음부터 끝까지 자동화합니다. 원본(예: Azure Storage, Azure SQL 또는 Cosmos DB)에서 데이터가 변경되면 인덱서는 선택적인 AI 보강, 데이터 청크, 벡터화 및 인덱싱을 통해 검색부터 문서 크래킹까지 전체 파이프라인을 통해 해당 업데이트를 이동할 수 있습니다.

  • 청크 분할 콘텐츠를 보조 인덱스에 투영합니다. 보조 인덱스는 검색 인덱스(필드 및 기타 구문이 포함된 스키마)와 마찬가지로 만들어지지만 인덱서에 의해 기본 인덱스와 함께 채워집니다. 각 원본 문서의 콘텐츠는 동일한 인덱싱 실행 중에 기본 및 보조 인덱스의 필드로 이동합니다.

    보조 인덱스는 데이터 청크 및 RAG(검색 증강 생성) 앱을 위한 것입니다. 큰 PDF를 원본 문서로 가정하면 기본 인덱스에는 기본 정보(제목, 날짜, 작성자, 설명)가 있을 수 있고 보조 인덱스에는 콘텐츠 청크가 있을 수 있습니다. 데이터 청크 수준의 벡터화를 사용하면 특히 채팅 스타일 검색 앱에서 관련 정보(각 청크는 검색 가능)를 더 쉽게 찾고 관련 응답을 반환할 수 있습니다.

청크 분할 인덱스

청크는 콘텐츠를 독립적으로 처리할 수 있는 관리 가능한 작은 부분(청크)으로 나누는 프로세스입니다. 원본 문서가 포함 또는 대규모 언어 모델의 최대 입력 크기에 비해 너무 큰 경우 청크가 필요하지만 RAG 패턴 및 채팅 스타일 검색을 위한 더 나은 인덱스 구조를 제공할 수도 있습니다.

다음 다이어그램은 청크 분할 인덱싱의 구성 요소를 보여 줍니다.

청크 및 벡터화 워크플로의 다이어그램.

다음 단계