Azure OpenAI 서비스는 OpenAI 의 강력한 언어 모델에 대한 액세스를 제공합니다. 이 문서에서는 다중 테넌트 솔루션에 도움이 되는 Azure OpenAI의 주요 기능을 설명합니다. 권장 리소스를 검토하여 접근 방식을 계획하고 Azure OpenAI를 사용하는 데 도움이 됩니다.
격리 모델
Azure OpenAI를 사용하는 다중 테넌트 시스템이 있는 경우 테넌트에 필요한 격리 수준을 결정해야 합니다. 다음 요인에 따라 격리 모델을 디자인해야 합니다.
- 가질 테넌트 수
- 테넌트에 네트워크 또는 인프라 격리가 필요한 규정 준수 요구 사항이 있는지 여부
- 테넌트에 자체 데이터를 사용하여 미세 조정된 모델이 필요한지 여부
- 테넌트에 다른 모델 버전 또는 모델 수명 주기가 필요한지 여부
다음 표에는 다중 테넌트 시스템에서 Azure OpenAI를 사용할 때 수행할 수 있는 배포 방법이 요약되어 있습니다.
고려 사항 | 전용 Azure OpenAI 서비스 | 공유 Azure OpenAI 서비스, 각 테넌트에 대한 전용 모델 배포 | 공유 Azure OpenAI 서비스 및 모델 배포 공유 | 테넌트 제공 Azure OpenAI 서비스 |
---|---|---|---|---|
데이터 격리 | 높음 | 중간 | 낮음 | 높음 |
성능 격리 | 높음 | 높음 | 각 테넌트에 대한 TPM(분당 토큰) 사용량에 따라 낮음에서 보통으로. | 높음 |
배포 복잡성 | 테넌트 수에 따라 낮음에서 중간으로. | 중간 수준으로 배포 이름과 할당량을 관리해야 합니다. | 낮음 | 해당 없음, 고객이 관리합니다. |
운영 복잡성 | 낮음 | 중간 | 높음 | 공급자의 경우 낮습니다. 테넌트를 위한 중간에서 높은 수준 |
예제 시나리오 | 다른 테넌트에서 네트워크 격리가 필요한 단일 테넌트 배포 | 특정 모델 수명 주기 또는 미세 조정 요구 사항이 있는 테넌트입니다. | 공유 애플리케이션 계층이 있는 대규모 다중 테넌트 솔루션입니다. | 특정 규정 준수 또는 미세 조정 요구 사항이 있는 테넌트. |
전용 Azure OpenAI 서비스
서비스 공급자인 경우 Azure 구독의 각 테넌트에 대해 Azure OpenAI 인스턴스를 배포하는 것이 좋습니다. 이 방법은 각 테넌트에 대한 데이터 격리를 제공합니다. 테넌트 수를 늘리면 점점 더 많은 Azure OpenAI 리소스를 배포하고 관리해야 합니다.
각 테넌트에 대해 별도의 애플리케이션 배포가 있거나 할당량 또는 분당 요청과 같은 제한을 피해야 하는 경우 이 방법을 사용합니다. 자세한 내용은 Azure OpenAI 할당량 및 한도를 참조하세요.
다음 다이어그램에서는 공급자 구독의 각 테넌트에 대한 Azure OpenAI 모델을 보여 줍니다.
공유 Azure OpenAI 서비스
여러 테넌트 간에 Azure OpenAI 인스턴스를 공유하도록 선택할 수 있습니다. Azure OpenAI 리소스는 (서비스 공급자의) Azure 구독에 배포됩니다. 관리 책임이 있습니다. 이 솔루션은 구현하기 가장 쉽지만 최소한의 데이터 격리 및 성능 격리를 제공합니다.
Azure OpenAI 리소스를 공유해도 각 모델 배포에 대한 보안 구분이 제공되지 않습니다. 테넌트는 사용할 권한이 없는 모델을 사용할 수 있습니다. 따라서 미세 조정된 모델을 사용하는 경우 Azure OpenAI 인스턴스를 공유하지 않습니다. 중요한 정보를 노출하고 테넌트별 데이터 또는 리소스에 대한 무단 액세스를 허용할 수 있습니다.
여러 테넌트 간에 Azure OpenAI 인스턴스를 공유하면 시끄러운 인접 문제가 발생할 수도 있습니다. 일부 테넌트에 대해 대기 시간이 더 많이 발생할 수 있습니다. 또한 애플리케이션 코드를 다중 테넌트 인식으로 만들어야 합니다. 예를 들어 고객에게 공유 Azure OpenAI 인스턴스의 사용 비용을 청구하려는 경우 애플리케이션의 각 테넌트에 대한 총 토큰 수를 추적하는 논리를 구현합니다.
여러 공유 Azure OpenAI 인스턴스를 배포할 수도 있습니다. 예를 들어 배포 스탬프 패턴을 따르는 경우 각 스탬프에 공유 Azure OpenAI 인스턴스를 배포합니다. 여러 지역에 솔루션을 배포하는 경우 각 지역에 Azure OpenAI를 배포하여 다음을 수행해야 합니다.
- 지역 간 트래픽 대기 시간을 방지합니다.
- 데이터 보존 요구 사항을 지원합니다.
- 동일한 지역 배포가 필요한 다른 서비스 내에서 지역별 Azure OpenAI를 사용하도록 설정합니다.
공유 Azure OpenAI 인스턴스가 있는 경우 해당 제한을 고려하고 할당량을 관리하는 것이 중요합니다.
다음 다이어그램에서는 공유 Azure OpenAI 모델을 보여 줍니다.
공유 Azure OpenAI 서비스를 배포할 때 서비스 내의 모델 배포도 공유되는지 또는 특정 고객에게 전용인지 결정할 수 있습니다.
테넌트 간에 공유 모델 배포
테넌트 간에 모델 배포를 공유하면 관리할 배포가 적고 추적할 모델 버전이 적기 때문에 운영 부담이 간소화됩니다. 가능한 경우 공유 모델 배포를 사용하도록 계획하고, 제공하는 기능이 필요한 경우에만 전용 모델 배포를 만듭니다.
각 테넌트에 대한 전용 모델 배포
공유 모델 배포를 사용하여 충족할 수 없는 특별한 요구 사항이 있는 각 테넌트 또는 테넌트에 대한 모델 배포를 만들 수 있습니다. 테넌트에 전용 모델 배포를 사용하는 일반적인 이유는 다음과 같습니다.
할당량 및 비용 관리. 전용 모델 배포는 각 모델이 사용하는 토큰 수를 추적하여 테넌트별 TPM 할당을 용이하게 합니다. 이 숫자를 사용하여 비용을 정확하게 할당하고 각 테넌트의 사용량을 관리할 수 있습니다. 프로비전된 처리량 단위(PTU)를 사용하는 경우 특정 고객에게PTU를 할당하고 다른 고객에 대해 다른 청구 모델을 사용할 수 있습니다.
콘텐츠 필터링 정책. 경우에 따라 특정 테넌트에 허용되지 않는 단어의 테넌트별 차단 목록과 같은 고유한 콘텐츠 필터링 정책이 필요할 수 있습니다. 모델 배포 범위에서 콘텐츠 필터링 정책을 지정합니다.
모델 유형 및 버전. 다른 테넌트에 대해 다른 모델 또는 모델 버전을 사용해야 할 수 있습니다. 테넌트에는 자체 모델 수명 주기 관리 프로세스가 필요할 수도 있습니다.
테넌트별 미세 조정 각 테넌트에 대해 고유하게 미세 조정된 모델을 만드는 경우 미세 조정된 각 모델에 대해 별도의 모델 배포를 만들어야 합니다.
대부분의 사용 사례에는 미세 조정이 필요하지 않습니다. 일반적으로 Azure OpenAI On Your Data 또는 다른 검색 기반 생성(RAG) 접근 방식을 사용하여 모델을 접지하는 것이 더 좋습니다.
데이터 거주지. 이 방법은 고유한 데이터 상주 요구 사항을 지원합니다. 예를 들어 엄격한 데이터 상주 요구 사항이 있는 테넌트에 지역 모델 배포를 제공하고 다른 테넌트에 전역 모델 배포를 사용할 수 있습니다.
각 모델 배포에는 고유한 URL이 있지만 기본 모델은 다른 Azure 고객과 공유된다는 점을 기억해야 합니다. 또한 모델은 Azure 인프라를 공유합니다.
Azure OpenAI는 각 모델 배포에 대한 액세스 제어를 적용하지 않으므로 애플리케이션은 어떤 테넌트가 모델 배포에 도달할 수 있는지 제어해야 합니다.
테넌트 제공 Azure OpenAI 리소스
일부 시나리오에서 테넌트는 자체 Azure 구독에서 Azure OpenAI 인스턴스를 만들고 애플리케이션에 액세스 권한을 부여할 수 있습니다. 이 방법은 다음 시나리오에서 적합할 수 있습니다.
테넌트에는 다양한 모델에 대한 액세스, 정의된 콘텐츠 필터링 정책 및 프로비전된 처리량 사용을 포함하여 Microsoft의 특정 할당량 및 권한이 있습니다.
테넌트에는 솔루션에서 사용해야 하는 미세 조정된 모델이 있습니다.
테넌트는 처리를 위해 고객 관리형 Azure OpenAI 인스턴스를 통해 데이터를 처리하고 전송하기 위해 해당 환경의 구성 요소가 필요합니다.
테넌트의 구독에서 Azure OpenAI 인스턴스에 액세스하려면 테넌트가 애플리케이션에 액세스 권한을 제공해야 합니다. 애플리케이션은 Microsoft Entra 인스턴스를 통해 인증해야 합니다. 한 가지 방법은 멀티테넌트 Microsoft Entra 애플리케이션을 게시하는 것입니다. 다음 워크플로에서는 이 방법을 간략하게 설명합니다.
테넌트는 자체 Microsoft Entra 테넌트에 다중 테넌트 Microsoft Entra 애플리케이션을 등록합니다.
테넌트는 다중 테넌트 Microsoft Entra 애플리케이션에 Azure OpenAI 리소스에 대한 적절한 수준의 액세스 권한을 부여합니다. 예를 들어 테넌트는 역할 기반 액세스 제어를 사용하여 Azure AI 서비스 사용자 역할에 애플리케이션을 할당할 수 있습니다.
테넌트는 만든 Azure OpenAI 리소스의 리소스 ID를 제공합니다.
애플리케이션 코드는 사용자 고유의 Microsoft Entra 인스턴스에서 다중 테넌트 Microsoft Entra 애플리케이션과 연결된 서비스 주체를 사용하여 테넌트의 Azure OpenAI 인스턴스에 액세스할 수 있습니다.
또는 각 테넌트에게 귀하의 서비스에서 사용할 서비스 주체를 생성하고 해당 자격 증명을 제공하도록 요청할 수 있습니다. 이 방법을 사용하려면 각 테넌트에 대한 자격 증명을 안전하게 저장하고 관리해야 하며 이는 잠재적인 보안 책임입니다.
테넌트가 Azure OpenAI 인스턴스에서 네트워크 액세스 제어를 구성하는 경우 액세스할 수 있는지 확인합니다.
다음 다이어그램에서는 테넌트의 구독에 있는 각 테넌트에 대한 Azure OpenAI에 대한 모델을 보여 줍니다.
다중 테넌시를 지원하는 Azure OpenAI의 기능
Azure OpenAI는 다중 테넌트 기능을 지원하는 다음과 같은 기능을 제공합니다.
어시스턴트 API
Assistants API는 AI 도우미를 만드는 데 적합한 기능을 Azure OpenAI 서비스에 추가합니다. 여기에는 도구 및 API를 호출하고 파일을 검색하여 모델이 생성하는 답변을 접지하는 기능이 포함됩니다. 이를 통해 서비스는 영구 대화 스레드를 관리할 수 있습니다. API는 샌드박스 환경 내에서 코드를 생성하고 실행할 수도 있습니다. 이러한 기능을 지원하려면 Assistants API에서 일부 데이터를 저장해야 합니다.
다중 테넌트 솔루션에서 Assistants API를 사용하는 경우 단일 테넌트 전용 도우미를 만들거나 여러 테넌트 간에 도우미를 공유할 수 있습니다. 특히 공유 도우미의 경우 저장된 모든 데이터에서 테넌트 격리를 고려하는 것이 중요합니다. 예를 들어 대화형 스레드가 각 테넌트에 대해 별도로 저장되도록 해야 합니다.
Assistants API는 호출할 함수 및 포함할 인수에 대한 애플리케이션 지침을 보내는 함수 호출을 지원합니다. 사용자가 만드는 모든 함수 호출이 다중 테넌트 인식인지 확인합니다. 한 가지 방법은 다운스트림 시스템 호출에 테넌트 ID를 포함하는 것입니다. 애플리케이션 내에서 테넌트 ID를 확인하고 언어 모델을 사용하여 테넌트 ID를 전파하지 마세요.
데이터 기반 Azure OpenAI
Azure OpenAI On Your Data 기능을 사용하면 큰 언어 모델이 언어 모델에서 응답을 생성하는 과정의 일부로 인덱스 및 데이터베이스와 같은 지식 원본을 직접 쿼리할 수 있습니다.
요청을 수행할 때 쿼리해야 하는 데이터 원본을 지정할 수 있습니다. 다중 테넌트 솔루션에서 데이터 원본이 다중 테넌트를 인식하고 요청에 테넌트 필터를 지정할 수 있는지 확인합니다. 테넌트 ID를 데이터 원본에 적절하게 전파합니다. 예를 들어 Azure AI Search를 쿼리한다고 가정합니다. 단일 인덱스에 여러 테넌트에 대한 데이터가 있는 경우 검색된 결과를 현재 테넌트의 ID로 제한하는 필터를 지정합니다. 또는 각 테넌트에 대한 인덱스가 만들어지면 현재 테넌트에 대한 올바른 인덱스 지정이 있는지 확인합니다.
묶음 배포
일괄 배포를 사용하여 Azure OpenAI에서 일부 모델을 배포할 수 있습니다. 일괄 처리 배포를 사용하면 별도의 일괄 처리 할당량을 사용하여 그룹화된 요청을 비동기 처리할 수 있습니다. 일괄 처리 배포로 전송되는 요청은 24시간의 목표 소요 시간을 가지며 표준 배포보다 비용이 적게 듭니다. 표준 배포와 달리 일괄 처리 할당량은 TPM 대신 큐에 추가된 토큰 수를 제한합니다.
이 배포 유형은 즉각적인 응답이 필요하지 않고 대량의 요청을 처리해도 실시간 응답을 방해할 수 없는 시나리오에 적합합니다.
예를 들어 사용자 피드백 감정을 분석하는 시스템은 일괄 처리 배포를 사용하여 다른 애플리케이션에서 실시간 상호 작용을 수행하는 데 필요한 표준 배포 할당량을 제한하지 않도록 할 수 있습니다. 이 방법은 처리 비용도 줄여줍니다.
다중 테넌트 솔루션에서 일괄 처리 배포는 모든 테넌트 간에 공유하거나 각 테넌트에 대해 별도로 만들 수 있습니다.
각 테넌트에 대한 별도의 일괄 처리 배포:
각 테넌트별 일괄 처리 배포에 토큰 할당량을 할당하면 단일 테넌트가 리소스를 독점하지 못하게 됩니다. 또한 이 방법을 사용하면 테넌트당 토큰 사용량을 추적할 수 있으며 이는 비용 할당에 유용합니다.
공유 일괄 처리 배포:
공유 일괄 처리 배포는 결합되거나 별도의 일괄 처리 작업에서 여러 테넌트에서 요청을 처리할 수 있습니다. 여러 테넌트에서 단일 일괄 처리 작업으로 요청을 결합하는 경우 응답을 적절한 테넌트에 올바르게 다시 매핑할 수 있는지 확인합니다.
Batch 작업은 작업 수준에서 관리되므로 테넌트별로 구분하는 것이 좋습니다. 이 방법을 사용하면 각 테넌트에 대한 작업을 취소하거나 삭제할 수 있습니다. 일괄 처리 내의 개별 요청은 취소하거나 삭제할 수 없습니다.
일괄 처리 배포를 신중하게 관리하여 테넌트 격리 및 운영 유연성을 유지하면서 비용 효율성과 리소스 할당의 균형을 유지할 수 있습니다.
기여자
Microsoft는 이 문서를 유지 관리합니다. 다음 기여자는 이 문서를 작성했습니다.
주요 작성자
- 소피아 페레이라 | 소프트웨어 엔지니어, ISV 및 DN Coe
기타 기여자:
- John Downs | 소프트웨어 수석 엔지니어
- 랜던 피어스 | 고객 엔지니어, ISV 및 DN Coe
- 파올로 살바토리 | 주요 고객 엔지니어, ISV 및 DN Coe
- 다니엘 스콧-레인스포드 | 파트너 솔루션 설계자
- 아르센 블라디미르스키 | 주요 고객 엔지니어, ISV 및 DN Coe
LinkedIn 비공개 프로필을 보려면, LinkedIn에 로그인하세요.