자습서: Azure AI 검색에서 RAG에 대한 포함 및 채팅 모델 선택
Azure AI 검색을 기반으로 하는 RAG 솔루션은 벡터화를 위한 모델 포함 및 데이터에 대한 대화형 검색을 위한 채팅 모델에 종속됩니다.
이 자습서에서는 다음을 수행합니다.
- 기본 제공 통합과 함께 작동하는 Azure 클라우드의 모델 알아보기
- 채팅에 사용되는 Azure 모델에 대해 알아보기
- 모델 배포 및 코드에 대한 모델 정보 수집
- Azure 모델에 대한 검색 엔진 액세스 구성
- 비 Azure 모델을 연결하기 위한 사용자 지정 기술 및 벡터라이저에 대해 알아봅니다.
Azure 구독이 아직 없는 경우 시작하기 전에 체험 계정을 만듭니다.
필수 조건
모델을 배포하고 Azure 클라우드에서 역할 할당을 구성하는 데 사용되는 Azure Portal입니다.
역할 할당을 만드는 데 필요한 Azure 구독의 소유자 또는 사용자 액세스 관리자 역할입니다. 이 자습서에서는 3개 이상의 Azure 리소스를 사용합니다. 연결은 역할을 만드는 기능이 필요한 Microsoft Entra ID를 사용하여 인증됩니다. 모델에 연결하기 위한 역할 할당은 이 문서에 설명되어 있습니다. 역할을 만들 수 없는 경우 대신 API 키를 사용할 수 있습니다.
Azure OpenAI, Azure AI Services 다중 서비스 리소스를 통한 Azure AI Vision 또는 Azure AI Studio와 같은 모델 공급자입니다.
이 자습서에서는 Azure OpenAI를 사용합니다. 통합 벡터화에 대한 옵션을 알 수 있도록 다른 공급자가 나열됩니다.
역할 할당에 사용되는 관리 ID를 제공하는 기본 계층 이상 Azure AI 검색
공유 지역입니다. 이 시리즈의 모든 자습서를 완료하려면 Azure AI 검색과 모델 공급자를 모두 지원해야 합니다. 지원되는 지역을 참조하세요.
Azure AI Search는 현재 일부 지역에서 제한된 가용성에 직면하고 있습니다. 지역 상태를 확인하려면 Azure AI Search 지역 목록을 확인 합니다.
팁
이 문서에서 겹치는 지역 목록을 확인합니다.
기본 제공 벡터화를 지원하는 모델 검토
벡터화된 콘텐츠는 RAG 솔루션의 쿼리 결과를 향상시킵니다. Azure AI Search는 인덱싱 파이프라인에서 기본 제공 벡터화 작업을 지원합니다. 또한 쿼리 시 벡터화를 지원하여 텍스트 또는 이미지 입력을 벡터 검색을 위한 포함으로 변환합니다. 이 단계에서는 콘텐츠 및 쿼리에 대해 작동하는 포함 모델을 식별합니다. 원시 벡터 데이터 및 원시 벡터 쿼리를 제공하거나 RAG 솔루션에 벡터 데이터가 포함되지 않은 경우 이 단계를 건너뜁니다.
텍스트-벡터 변환 단계를 포함하는 벡터 쿼리는 인덱싱 중에 사용된 것과 동일한 포함 모델을 사용해야 합니다. 다른 모델을 사용하는 경우 검색 엔진에서 오류를 throw하지 않지만 결과가 좋지 않습니다.
동일한 모델 요구 사항을 충족하려면 인덱싱 중 기술 및 쿼리 실행 중 벡터라이저를 통해 참조할 수 있는 모델 포함을 선택합니다. 다음 표에서는 기술과 벡터라이저 쌍을 나열합니다. 포함 모델이 사용되는 방법을 확인하려면 포함 기술과 일치하는 벡터라이저를 호출하는 코드에 대한 인덱싱 파이프라인 만들기로 건너뜁니다.
Azure AI 검색은 Azure 클라우드에 다음 포함 모델에 대한 기술 및 벡터라이저 지원을 제공합니다.
클라이언트 | 모델 포함 | 기술 | 벡터라이저 |
---|---|---|---|
Azure OpenAI | text-embedding-ada-002, text-embedding-3-large, text-embedding-3-small |
AzureOpenAIEmbedding | AzureOpenAIEmbedding |
Azure AI Vision | 다중 모달 4.0 1 | AzureAIVision | AzureAIVision |
Azure AI 스튜디오 모델 카탈로그 | OpenAI-CLIP-Image-Text-Embeddings-vit-base-patch32, OpenAI-CLIP-Image-Text-Embeddings-ViT-Large-Patch14-336, Facebook-DinoV2-Image-Embeddings-ViT-Base, Facebook-DinoV2-Image-Embeddings-ViT-Giant, Cohere-embed-v3-english, Cohere-embed-v3-multilingual |
AML 2 | Azure AI 스튜디오 모델 카탈로그 |
1 이미지 및 텍스트 벡터화를 지원합니다.
2 모델 카탈로그에 배포된 모델은 AML 엔드포인트를 통해 액세스됩니다. 이 연결에 기존 AML 기술을 사용합니다.
여기에 나열된 모델 외에 다른 모델을 사용할 수 있습니다. 자세한 내용은 이 문서의 포함에 비 Azure 모델 사용을 참조하세요.
참고 항목
포함 모델에 대한 입력은 일반적으로 청크 분할된 데이터입니다. Azure AI 검색 RAG 패턴에서 청크는 인덱서 파이프라인에서 처리되며 이 시리즈의 다른 자습서에서 다룹니다.
쿼리 시 생성 AI에 사용되는 모델 검토
Azure AI 검색에는 채팅 모델에 대한 통합 코드가 없으므로 익숙하고 요구 사항을 충족하는 LLM을 선택해야 합니다. 인덱스 다시 작성 또는 인덱싱 파이프라인의 일부를 다시 실행하지 않고도 다른 모델을 시도하도록 쿼리 코드를 수정할 수 있습니다. 채팅 모델을 호출하는 코드에 대한 검색을 검토하고 답변을 생성합니다.
다음 모델은 일반적으로 채팅 검색 환경에 사용됩니다.
클라이언트 | 채팅 모델 |
---|---|
Azure OpenAI | GPT-35-Turbo, GPT-4, GPT-4o, GPT-4 Turbo |
GPT-35-Turbo 및 GPT-4 모델은 대화형식의 입력 작업에 최적화되어 있습니다.
이 자습서에서는 GPT-4o를 사용합니다. 테스트하는 동안 자체 학습 데이터를 보완할 가능성이 적다는 것을 발견했습니다. 예를 들어 ,"얼마나 많은 지구가 물로 덮여 있습니까?"라는 쿼리를 감안할 때, GPT-35-Turbo는 지구에 대한 기본 제공 지식을 사용하여 샘플 데이터가 그 사실을 제공하지 않더라도 지구의 71%가 물로 덮여 있다고 말했습니다. 반면, GPT-4o는 "나는 모른다"로 (올바르게) 응답했다.
모델 배포 및 정보 수집
모델을 배포하고 엔드포인트를 통해 액세스할 수 있어야 합니다. 포함 관련 기술과 벡터라이저 모두 차원 수와 모델 이름이 필요합니다.
이 자습서 시리즈에서는 다음 모델 및 모델 공급자를 사용합니다.
- 포함을 위한 Azure OpenAI의 Text-embedding-3-large
- 채팅 완료를 위한 Azure OpenAI의 GPT-4o
Azure OpenAI에서 모델을 배포하려면 Cognitive Services OpenAI 기여자 이상이 있어야 합니다.
Azure AI 스튜디오로 이동합니다.
왼쪽 메뉴에서 배포를 선택합니다.
모델 배포>기본 모델 배포를 선택합니다.
드롭다운 목록에서 text-embedding-3-large를 선택하고 선택 항목을 확인합니다.
배포 이름을 지정합니다. "text-embedding-3-large"를 사용하는 것이 좋습니다.
기본값을 그대로 적용합니다.
배포를 선택합니다.
gpt-4o에 대해 이전 단계를 반복합니다.
모델 이름 및 엔드포인트를 기록해 둡니다. 기술 및 벡터라이저 포함은 전체 엔드포인트를 내부적으로 어셈블하므로 리소스 URI만 필요합니다. 예를 들어,
https://MY-FAKE-ACCOUNT.openai.azure.com/openai/deployments/text-embedding-3-large/embeddings?api-version=2024-06-01
에서 기술 및 벡터라이저 정의에서 제공해야 하는 엔드포인트는https://MY-FAKE-ACCOUNT.openai.azure.com
입니다.
Azure 모델에 대한 검색 엔진 액세스 구성
파이프라인 및 쿼리 실행의 경우 이 자습서에서는 인증 및 권한 부여를 위한 역할에 Microsoft Entra ID를 사용합니다.
Azure OpenAI에 대해 자신과 검색 서비스 ID 권한을 할당합니다. 이 자습서의 코드는 로컬로 실행됩니다. Azure OpenAI에 대한 요청은 시스템에서 시작됩니다. 또한 검색 엔진의 검색 결과가 Azure OpenAI에 전달됩니다. 이러한 이유로 자신과 검색 서비스 모두에 Azure OpenAI에 대한 권한이 필요합니다.
Azure Portal에 로그인하고 검색 서비스를 찾습니다.
시스템 관리 ID를 사용하도록 Azure AI 검색을 구성합니다.
Azure OpenAI 리소스를 찾습니다.
왼쪽 메뉴에서 액세스 제어(IAM) 를 선택합니다.
역할 할당 추가를 선택합니다.
Cognitive Services OpenAI 사용자를 선택합니다.
관리 ID를 선택한 다음 멤버를 선택합니다. 드롭다운 목록에서 검색 서비스에 대한 시스템 관리 ID를 찾습니다.
다음으로 사용자, 그룹 또는 서비스 주체를 선택한 다음 구성원을 선택합니다. 사용자 계정을 검색한 다음 드롭다운 목록에서 선택합니다.
역할에 할당된 두 개의 보안 주체가 있는지 확인합니다.
검토 및 할당을 선택하여 역할 할당을 만듭니다.
Azure AI 비전의 모델에 액세스하려면 Cognitive Services OpenAI 사용자를 할당합니다. Azure AI 스튜디오의 경우 Azure AI 개발자를 할당합니다.
포함에 비 Azure 모델 사용
임베딩 모델을 통합하는 패턴은 사용자 지정 기술과 사용자 지정 벡터라이저로 래핑하는 것입니다. 이 섹션에서는 참조 문서에 대한 링크를 제공합니다. 비 Azure 모델을 호출하는 코드 예제는 사용자 지정 포함 데모를 참조하세요.
클라이언트 | 모델 포함 | 기술 | 벡터라이저 |
---|---|---|---|
모두 | 모두 | 사용자 지정 기술 | 사용자 지정 벡터라이저 |