검색 쿼리와 문서에 사용할 포함 생성
Azure AI 검색은 벡터화 모델을 호스트하지 않으므로 쿼리 입력과 출력에 대한 포함을 만드는 것이 과제 중 하나입니다. 지원되는 모든 포함 모델을 사용할 수 있지만, 이 문서에서는 단계에 Azure OpenAI 포함 모델을 사용한다고 가정합니다.
기본 제공 데이터 청크 분할 및 벡터화를 제공하는 통합된 벡터화를 사용하는 것이 좋습니다. 통합된 벡터화는 Azure AI Search 외부에서 실행되는 모델을 가리키는 인덱서, 기술 세트 및 기본 제공 또는 사용자 지정 기술에 대한 종속성을 취합니다.
데이터 청크 분할 및 벡터화를 직접 처리하려는 경우 샘플 리포지토리에서 다른 커뮤니티 솔루션과 통합하는 방법을 보여주는 데모가 제공됩니다.
벡터 쿼리에 포함 모델을 사용하는 방법
쿼리 입력은 벡터이거나 쿼리 처리 중에 벡터로 변환되는 텍스트 또는 이미지입니다. Azure AI Search의 기본 제공 솔루션은 벡터라이저를 사용하는 것입니다.
또는 선택한 포함 모델에 쿼리 입력을 전달하여 직접 변환을 처리할 수도 있습니다. 속도 제한을 방지하려면 워크로드에서 재시도 논리를 구현하면 됩니다. Python 데모에서는 tenacity를 사용했습니다.
쿼리 출력은 검색 인덱스에 있는 일치하는 문서입니다. 검색 인덱스는 이전에 포함이 포함된 벡터 필드가 하나 이상 있는 문서와 함께 로드되어야 합니다. 인덱싱에 사용한 포함 모델이 무엇이든 쿼리에도 동일한 모델을 사용합니다.
리소스를 같은 지역에 만듭니다.
통합 벡터화를 위해서는 리소스가 동일한 지역에 있어야 합니다.
의미 체계 순위 지정을 포함하는 하이브리드 쿼리를 지원하거나 AI 보강 파이프라인에서 사용자 지정 기술을 사용하여 기계 학습 모델 통합을 시도하려는 경우 해당 기능을 제공하는 Azure AI 검색 지역을 선택합니다.
즉석 쿼리의 포함 생성
다음 Python 코드는 벡터 쿼리의 "values" 속성에 붙여넣을 수 있는 포함을 생성합니다.
!pip install openai
import openai
openai.api_type = "azure"
openai.api_key = "YOUR-API-KEY"
openai.api_base = "https://YOUR-OPENAI-RESOURCE.openai.azure.com"
openai.api_version = "2024-02-01"
response = openai.Embedding.create(
input="How do I use Python in VSCode?",
engine="text-embedding-ada-002"
)
embeddings = response['data'][0]['embedding']
print(embeddings)
출력은 1,536차원의 벡터 배열입니다.
모델 통합 포함에 대한 팁 및 권장 사항
사용 사례 식별: 벡터 검색 기능에 모델 통합을 포함하면 검색 솔루션에 값이 추가될 수 있는 특정 사용 사례를 평가합니다. 여기에는 다중 모달 또는 텍스트 콘텐츠와 일치하는 이미지 콘텐츠, 다국어 검색 또는 유사성 검색이 포함될 수 있습니다.
청크 분할 전략 설계: 포함 모델에는 수용할 수 있는 토큰 수에 제한이 있으므로 대용량 파일에 대한 데이터 청크 분할 요구 사항이 따릅니다. 자세한 내용은 벡터 검색 솔루션을 위한 대용량 문서 청크 분할을 참조하세요.
비용 및 성능 최적화: 벡터 검색은 리소스를 많이 사용할 수 있으며 최대 한도가 적용되므로 의미 체계 의미가 포함된 필드만 벡터화하는 것이 좋습니다. 벡터 크기를 줄이면 동일한 가격으로 더 많은 벡터를 저장할 수 있습니다.
올바른 포함 모델 선택: 텍스트 기반 검색에 대한 단어 포함 또는 시각적 검색을 위한 이미지 포함과 같은 특정 사용 사례에 적합한 모델을 선택합니다. OpenAI의 text-embedding-ada-002 또는 Azure AI Computer Vision의 이미지 검색 REST API와 같은 미리 학습된 모델을 사용하는 것이 좋습니다.
벡터 길이 정규화: 벡터 길이를 검색 인덱스에 저장하기 전에 정규화하여 유사성 검색의 정확도와 성능이 향상됐는지 확인합니다. 대부분의 미리 학습된 모델은 이미 정규화되어 있지만 전부는 아닙니다.
모델 미세 조정: 필요한 경우 도메인별 데이터에서 선택한 모델을 미세 조정하여 검색 애플리케이션의 성능과 관련성을 향상시킵니다.
테스트 및 반복: 원하는 검색 성능과 사용자 만족이 충족되도록 포함 모델 통합을 지속적으로 테스트하고 구체화합니다.