다중 테넌트 솔루션의 AI 및 ML에 대한 아키텍처 접근 방식
점점 더 많은 수의 다중 테넌트 솔루션이 AI(인공 지능) 및 ML(기계 학습)을 중심으로 구축됩니다. 다중 테넌트 AI/ML 솔루션은 임의 수의 테넌트에 유사한 ML 기반 기능을 제공하는 솔루션입니다. 테넌트는 일반적으로 다른 테넌트의 데이터를 보거나 공유할 수 없지만 경우에 따라 테넌트는 다른 테넌트와 동일한 모델을 사용할 수 있습니다.
다중 테넌트 AI/ML 아키텍처는 모델을 학습시키고 모델에서 유추를 수행하는 데 필요한 컴퓨팅 리소스뿐만 아니라 데이터 및 모델에 대한 요구 사항을 고려해야 합니다. 다중 테넌트 AI/ML 모델이 배포, 분산 및 오케스트레이션되는 방식을 고려하고 솔루션이 정확하고 안정적이며 확장 가능한지 확인하는 것이 중요합니다.
크고 작은 언어 모델로 구동되는 생성 AI 기술의 인기가 높아지고 있어 MLOps(Machine Learning Operations) 및 GenAIOps(LLMOps라고도 함)를 채택하여 프로덕션 환경에서 이러한 모델을 효과적으로 관리하기 위한 운영 방식과 전략을 수립하는 것이 절실히 필요합니다.
주요 고려 사항 및 요구 사항
AI 및 ML을 사용하는 경우 학습 및 유추에 대한 요구 사항을 별도로 고려하는 것이 중요합니다. 학습의 목적은 데이터 집합을 기반으로 하는 예측 모델을 만드는 것입니다. 모델을 사용하여 애플리케이션에서 무언가를 예측할 때 유추를 수행합니다. 이러한 각 프로세스에는 서로 다른 요구 사항이 있습니다. 다중 테넌트 솔루션에서는 테넌트 모델이 각 프로세스에 미치는 영향을 고려해야 합니다. 이러한 각 요구 사항을 고려하여 솔루션이 정확한 결과를 제공하고, 부하가 잘 수행되고, 비용 효율적이며, 향후 성장을 위해 확장할 수 있는지 확인할 수 있습니다.
테넌트 격리
테넌트가 다른 테넌트의 데이터 또는 모델에 대한 무단 또는 원치 않는 액세스 권한을 얻지 않도록 합니다. 모델을 학습시킨 원시 데이터와 비슷한 민감도로 모델을 처리합니다. 테넌트가 데이터를 사용하여 모델을 학습시키는 방법과 다른 테넌트의 데이터에 대해 학습된 모델을 워크로드에서 유추 목적으로 사용하는 방법을 이해해야 합니다.
다중 테넌트 솔루션에서 ML 모델을 사용하는 일반적인 방법은 테넌트별 모델, 공유 모델 및 튜닝된 공유 모델입니다.
테넌트별 모델
테넌트별 모델은 단일 테넌트의 데이터에 대해서만 학습된 다음 해당 단일 테넌트에 적용됩니다. 테넌트별 모델은 테넌트의 데이터가 중요한 경우 또는 한 테넌트가 제공한 데이터에서 학습할 범위가 거의 없고 모델을 다른 테넌트에 적용하는 경우에 적합합니다. 다음 다이어그램에서는 두 테넌트에 테넌트별 모델을 사용하여 솔루션을 빌드하는 방법을 보여 줍니다.
공유 모델
공유 모델을 사용하는 솔루션에서 모든 테넌트는 동일한 공유 모델을 기반으로 유추를 수행합니다. 공유 모델은 커뮤니티 원본에서 획득하거나 가져오는 미리 학습된 모델일 수 있습니다. 다음 다이어그램에서는 모든 테넌트에서 미리 학습된 단일 모델을 유추에 사용하는 방법을 보여 줍니다.
또한 모든 테넌트에서 제공하는 데이터로 학습하여 고유한 공유 모델을 빌드할 수 있습니다. 다음 다이어그램에서는 모든 테넌트의 데이터를 학습하는 단일 공유 모델을 보여 줍니다.
중요
테넌트의 데이터로 공유 모델을 학습하는 경우 테넌트가 데이터 사용을 이해하고 동의하는지 확인합니다. 식별 정보가 테넌트의 데이터에서 제거되었는지 확인합니다.
다른 테넌트에 적용될 모델을 학습하는 데 사용되는 데이터에 대한 테넌트 개체의 경우 수행할 작업을 고려합니다. 예를 들어 학습 데이터 집합에서 특정 테넌트의 데이터를 제외할 수 있나요?
튜닝된 공유 모델
또한 미리 학습된 기본 모델을 획득한 다음, 추가 모델 튜닝을 수행하여 자체 데이터를 기반으로 각 테넌트에 적용하는 것을 선택할 수도 있습니다. 다음 다이어그램에서는 이 접근 방식을 보여 줍니다.
확장성
솔루션의 증가가 AI 및 ML 구성 요소 사용에 미치는 영향을 고려합니다. 증가는 테넌트 수 증가, 각 테넌트에 대해 저장된 데이터 양, 사용자 수 및 솔루션에 대한 요청 볼륨을 참조할 수 있습니다.
학습: 모델을 학습시키는 데 필요한 리소스에 영향을 주는 몇 가지 요인이 있습니다. 이러한 요인에는 학습해야 하는 모델 수, 모델을 학습시키는 데이터 양 및 모델을 학습하거나 재학습하는 빈도가 포함됩니다. 테넌트별 모델을 만드는 경우 테넌트 수가 증가함에 따라 필요한 컴퓨팅 리소스 및 스토리지의 양도 증가할 수 있습니다. 공유 모델을 만들고 모든 테넌트의 데이터를 기반으로 학습하는 경우 학습 리소스가 테넌트 수 증가와 동일한 속도로 확장될 가능성은 적습니다. 그러나 전체 학습 데이터의 양이 증가하면 공유 모델과 테넌트별 모델을 모두 학습하기 위해 사용되는 리소스에 영향을 줍니다.
유추: 유추에 필요한 리소스는 일반적으로 유추를 위해 모델에 액세스하는 요청 수에 비례합니다. 테넌트 수가 증가함에 따라 요청 수도 증가할 수 있습니다.
확장이 잘 되는 Azure 서비스를 사용하는 것이 좋습니다. AI/ML 워크로드는 컨테이너를 사용하는 경향이 있으므로 AI/ML 워크로드는 일반적으로 AKS(Azure Kubernetes Service) 및 ACI(Azure Container Instances)를 선택합니다. AKS는 대개 많은 규모를 사용하도록 설정하고 수요에 따라 컴퓨팅 리소스를 동적으로 확장하는 데 적합합니다. 소규모 워크로드의 경우 ACI는 AKS만큼 쉽게 확장되지는 않지만 간단하게 구성하는 컴퓨팅 플랫폼이 될 수 있습니다.
성능
학습 및 유추를 위해 솔루션의 AI/ML 구성 요소에 대한 성능 요구 사항을 고려합니다. 필요에 따라 측정하고 개선할 수 있도록 각 프로세스의 대기 시간 및 성능 요구 사항을 명확히 하는 것이 중요합니다.
학습: 학습은 종종 일괄 처리 프로세스로 수행되므로 워크로드의 다른 부분만큼 성능에 민감하지 않을 수 있습니다. 그러나 크기 조정을 포함하여 모델 학습을 효율적으로 수행하기에 충분한 리소스를 프로비전해야 합니다.
유추: 유추는 대기 시간에 민감한 프로세스로, 종종 빠른 응답 또는 실시간 응답이 필요한 경우가 많습니다. 실시간으로 유추를 수행할 필요가 없더라도 솔루션의 성능을 모니터링하고 적절한 서비스를 사용하여 워크로드를 최적화해야 합니다.
AI 및 ML 워크로드에 Azure의 고성능 컴퓨팅 기능을 사용하는 것이 좋습니다. Azure는 다양한 유형의 가상 머신 및 기타 하드웨어 인스턴스를 제공합니다. 솔루션이 CPU, GPU, FPGA 또는 기타 하드웨어 가속 환경을 사용할 수 있는지 여부를 고려합니다. 또한 Azure는 NVIDIA Triton 유추 서버를 포함하여 NVIDIA GPU를 사용하여 실시간 유추를 제공합니다. 우선 순위가 낮은 컴퓨팅 요구 사항의 경우 AKS 스폿 노드 풀을 사용하는 것이 좋습니다. 다중 테넌트 솔루션에서 컴퓨팅 서비스를 최적화하는 방법에 대한 자세한 내용은 다중 테넌트 솔루션의 컴퓨팅에 대한 아키텍처 접근 방식을 참조하세요.
모델 학습에는 일반적으로 데이터 저장소와의 상호 작용이 많이 필요하므로 데이터 전략 및 데이터 계층에서 제공하는 성능을 고려하는 것도 중요합니다. 다중 테넌트 및 데이터 서비스에 대한 자세한 내용은 다중 테넌트 솔루션의 스토리지 및 데이터에 대한 아키텍처 접근 방식을 참조하세요.
솔루션의 성능을 프로파일링하는 것이 좋습니다. 예를 들어 Azure Machine Learning은 솔루션을 개발하고 계측할 때 사용할 수 있는 프로파일링 기능을 제공합니다.
구현 복잡성
AI 및 ML을 사용하는 솔루션을 빌드할 때 미리 빌드된 구성 요소를 사용하거나 사용자 지정 구성 요소를 빌드하도록 선택할 수 있습니다. 두 가지 주요 결정을 내려야 합니다. 첫 번째는 AI 및 ML에 사용하는 플랫폼 또는 서비스입니다. 두 번째는 미리 학습된 모델을 사용할지 아니면 사용자 지정 모델을 직접 빌드할지 여부입니다.
플랫폼: AI 및 ML 워크로드에 사용할 수 있는 많은 Azure 서비스가 있습니다. 예를 들어, Azure AI 서비스와 Azure OpenAI 서비스는 미리 빌드된 모델을 기준으로 유추하는 API를 제공하고 Microsoft는 기본 리소스를 관리합니다. Azure AI 서비스를 사용하면 새 솔루션을 신속하게 배포할 수 있지만 학습 및 유추가 수행되는 방식을 덜 제어할 수 있으며 모든 유형의 워크로드에 적합하지 않을 수 있습니다. 반면, Azure Machine Learning은 사용자 고유의 ML 모델을 빌드, 학습 및 사용할 수 있는 플랫폼입니다. Azure Machine Learning은 제어 및 유연성을 제공하지만 디자인 및 구현의 복잡성이 증가합니다. Microsoft의 기계 학습 제품 및 기술을 검토하여 접근 방식을 선택할 때 정보에 입각한 결정을 내릴 수 있습니다.
모델: Azure AI 서비스 같은 서비스에서 제공하는 전체 모델을 사용하지 않는 경우에도 미리 학습된 모델을 사용하여 개발을 가속화할 수 있습니다. 미리 학습된 모델이 요구 사항에 정확하게 맞지 않는 경우 전이 학습 또는 파인 튜닝이라는 기술을 적용하여 미리 학습된 모델을 확장하는 것이 좋습니다. 전이 학습을 사용하면 기존 모델을 확장하고 다른 도메인에 적용할 수 있습니다. 예를 들어 다중 테넌트 음악 추천 서비스를 빌드하는 경우 미리 학습된 음악 권장 사항 모델을 빌드하고 전이 학습을 사용하여 특정 사용자의 음악 기본 설정에 대한 모델을 학습하는 것이 좋습니다.
Azure AI 서비스 또는 Azure OpenAI 서비스 같은 미리 빌드된 ML 플랫폼 또는 미리 학습된 모델을 사용하면 초기 연구 및 개발 비용을 크게 줄일 수 있습니다. 미리 빌드된 플랫폼을 사용하면 수개월의 연구 시간을 절약할 수 있으며, 모델을 학습, 설계 및 최적화하기 위해 고도로 자격을 갖춘 데이터 과학자를 모집할 필요가 없습니다.
비용 최적화
일반적으로 AI 및 ML 워크로드는 모델 학습 및 유추에 필요한 컴퓨팅 리소스 비용 중 가장 큰 비율을 차지합니다. 다중 테넌트 솔루션의 컴퓨팅에 대한 아키텍처 접근 방식을 검토하여 요구 사항에 맞게 컴퓨팅 워크로드 비용을 최적화하는 방법을 이해합니다.
AI 및 ML 비용을 계획할 때 다음 요구 사항을 고려합니다.
- 학습 컴퓨팅 SKU를 결정합니다. 예를 들어 Azure Machine Learning을 사용하여 이 작업을 수행하는 방법에 대한 참고 자료를 참조하세요.
- 유추 컴퓨팅 SKU를 결정합니다. 유추에 대한 비용 예측 예제는 Azure Machine Learning에 대한 참고 자료를 참조하세요.
- 사용률을 모니터링합니다. 컴퓨팅 리소스의 사용률을 관찰하여 다른 SKU를 배포하여 용량을 줄이거나 늘릴지 또는 요구 사항이 변경되면 컴퓨팅 리소스의 크기를 조정해야 하는지를 결정할 수 있습니다. Azure Machine Learning 모니터를 참조하세요.
- 컴퓨팅 클러스터링 환경을 최적화합니다. 컴퓨팅 클러스터를 사용하는 경우 클러스터 사용률을 모니터링하거나 컴퓨팅 노드를 축소하도록 자동 크기 조정을 구성합니다.
- 컴퓨팅 리소스를 공유합니다. 여러 테넌트 간에 공유하여 컴퓨팅 리소스의 비용을 최적화할 수 있는지 여부를 고려합니다.
- 예산을 고려합니다. 고정 예산이 있는지 여부를 이해하고 그에 따라 사용량을 모니터링합니다. 초과 지출을 방지하고 테넌트 우선 순위에 따라 할당량을 할당하도록 예산을 설정할 수 있습니다.
고려해야 할 접근 방식 및 패턴
Azure는 AI 및 ML 워크로드를 사용하도록 설정하는 서비스 집합을 제공합니다. 다중 테넌트 솔루션에는 미리 빌드된 AI/ML 솔루션을 사용하고, Azure Machine Learning을 사용하여 사용자 지정 AI/ML 아키텍처를 빌드하고, Azure 분석 플랫폼 중 하나를 사용하는 몇 가지 일반적인 아키텍처 방법이 있습니다.
미리 빌드된 AI/ML 서비스 사용
미리 빌드된 AI/ML 서비스를 사용할 수 있는 경우 사용하는 것이 좋습니다. 예를 들어 조직에서 AI/ML을 살펴보기 시작하고 유용한 서비스와 신속하게 통합하려고 할 수 있습니다. 또는 사용자 지정 ML 모델 학습 및 개발이 필요하지 않은 기본 요구 사항이 있을 수 있습니다. 미리 빌드된 ML 서비스를 사용하면 고유한 모델을 빌드하고 학습하지 않고도 유추를 사용할 수 있습니다.
Azure는 언어 이해, 음성 인식, 지식, 문서 및 양식 인식, 컴퓨터 비전 등 다양한 도메인에서 AI 및 ML 기술을 제공하는 여러 서비스를 제공합니다. Azure의 미리 빌드된 AI/ML 서비스에는 Azure AI 서비스, Azure OpenAI 서비스, Azure AI 검색, Azure AI 문서 인텔리전스가 있습니다. 각 서비스는 통합을 위한 간단한 인터페이스와 미리 학습되고 테스트된 모델 컬렉션을 제공합니다. 관리되는 서비스로서 서비스 수준 계약을 제공하며 구성이나 지속적인 관리가 거의 필요하지 않습니다. 이러한 서비스를 사용하기 위해 자체 모델을 개발하거나 테스트할 필요가 없습니다.
관리되는 많은 ML 서비스에는 모델 학습 또는 데이터가 필요하지 않으므로 일반적으로 테넌트 데이터 격리 문제가 없습니다. 그러나 다중 테넌트 솔루션에서 AI 검색을 사용하는 경우에는 다중 테넌트 SaaS 애플리케이션 및 Azure AI 검색에 대한 디자인 패턴을 검토하세요.
솔루션 구성 요소에 대한 크기 조정 요구 사항을 고려합니다. 예를 들어, Azure AI 서비스 내의 많은 API는 초당 최대 요청 수를 지원합니다. 테넌트 간에 공유할 단일 AI 서비스 리소스를 배포하는 경우 테넌트 수가 증가함에 따라 여러 리소스로 확장해야 할 수 있습니다.
참고 항목
일부 관리형 서비스를 사용하면 Custom Vision 서비스, Face API, 문서 인텔리전스 사용자 지정 모델, 사용자 지정과 파인 튜닝을 지원하는 OpenAI 모델을 포함해 사용자 고유의 데이터를 사용하여 학습할 수 있습니다. 이러한 서비스를 사용하는 경우 테넌트 데이터에 대한 격리 요구 사항을 고려하는 것이 중요합니다.
사용자 지정 AI/ML 아키텍처
솔루션에 사용자 지정 모델이 필요하거나 관리되는 ML 서비스에서 다루지 않는 도메인에서 작업하는 경우 고유한 AI/ML 아키텍처를 빌드하는 것이 좋습니다. Azure Machine Learning은 ML 모델의 학습 및 배포를 오케스트레이션하는 기능 모음을 제공합니다. Azure Machine Learning은 PyTorch, Tensorflow, Scikit 및 Keras를 비롯한 많은 오픈 소스 기계 학습 라이브러리를 지원합니다. 모델의 성능 메트릭을 지속적으로 모니터링하고, 데이터 드리프트를 감지하고, 재학습을 트리거하여 모델 성능을 향상시킬 수 있습니다. Azure Machine Learning은 ML 모델의 수명 주기 동안 모든 ML 아티팩트에서 기본 제공 추적 및 계보를 사용하여 감사 가능성 및 거버넌스를 가능하게 합니다.
다중 테넌트 솔루션에서 작업하는 경우 학습 및 유추 단계 모두에서 테넌트의 격리 요구 사항을 고려하는 것이 중요합니다. 또한 모델 학습 및 배포 프로세스를 결정해야 합니다. Azure Machine Learning은 모델을 학습시키고 유추에 사용할 환경에 배포하는 파이프라인을 제공합니다. 다중 테넌트 컨텍스트에서 모델을 공유 컴퓨팅 리소스에 배포해야 하는지 또는 각 테넌트에 전용 리소스가 있는지 여부를 고려합니다. 격리 모델 및 테넌트 배포 프로세스를 기반으로 모델 배포 파이프라인을 디자인합니다.
오픈 소스 모델을 사용하는 경우 전이 학습 또는 튜닝을 사용하여 이러한 모델을 다시 학습해야 할 수 있습니다. 각 테넌트에 대한 다양한 모델 및 학습 데이터와 모델 버전을 관리하는 방법을 고려합니다.
다음 다이어그램에서는 Azure Machine Learning을 사용하는 예제 아키텍처를 보여 줍니다. 이 예제에서는 테넌트별 모델 격리 방법을 사용합니다.
통합 AI/ML 솔루션
Azure는 다양한 용도로 사용할 수 있는 몇 가지 강력한 분석 플랫폼을 제공합니다. 이러한 플랫폼에는 Azure Synapse Analytics, Databricks 및 Apache Spark가 포함됩니다.
AI/ML에 이러한 플랫폼을 사용하는 것이 좋습니다. ML 기능을 매우 많은 수의 테넌트로 확장해야 하는 경우와 대규모 컴퓨팅 및 오케스트레이션이 필요한 경우에 고려할 수 있습니다. 데이터 분석 및 Microsoft Power BI를 통한 보고와의 통합과 같은 솔루션의 다른 부분에 대한 광범위한 분석 플랫폼이 필요한 경우 AI/ML에 이러한 플랫폼을 사용하는 것도 고려할 수 있습니다. 모든 분석 및 AI/ML 요구 사항을 다루는 단일 플랫폼을 배포할 수 있습니다. 다중 테넌트 솔루션에서 데이터 플랫폼을 구현하는 경우 다중 테넌트 솔루션의 스토리지 및 데이터에 대한 아키텍처 접근 방식을 검토합니다.
ML 운영 모델
생성 AI 방식을 포함하는 AI 및 기계 학습을 채택하는 경우에는 이를 관리하는 조직 기능을 지속적으로 개선하고 평가하는 것이 좋습니다. MLOps 및 GenAIOps를 도입하면 조직에서 AI 및 ML 방식의 역량을 지속적으로 확장하는 체계가 객관적으로 갖추어집니다. 추가 지침은 MLOps Maturity Model 및 LLMOps Maturity 모델 문서를 검토하세요.
피해야 할 안티패턴
- 격리 요구 사항을 고려하지 못했습니다. 학습 및 유추를 위해 테넌트의 데이터와 모델을 격리하는 방법을 신중하게 고려하는 것이 중요합니다. 이렇게 하지 않으면 법적 또는 계약상의 요구 사항을 위반할 수 있습니다. 또한 데이터가 상당히 다른 경우 여러 테넌트의 데이터에서 학습하는 모델의 정확도가 떨어질 수 있습니다.
- 노이지 네이버 학습 또는 유추 프로세스에 노이지 네이버 문제가 발생할 수 있는지 여부를 고려합니다. 예를 들어 여러 개의 큰 테넌트와 작은 테넌트 하나가 있는 경우 대규모 테넌트에 대한 모델 학습이 실수로 모든 컴퓨팅 리소스를 사용하고 작은 테넌트를 고갈시키지 않도록 합니다. 리소스 거버넌스 및 모니터링을 사용하여 다른 테넌트의 활동 영향을 받는 테넌트의 컴퓨팅 워크로드 위험을 완화합니다.
참가자
Microsoft에서 이 문서를 유지 관리합니다. 원래 다음 기여자가 작성했습니다.
보안 주체 작성자:
- Kevin Ashley | 수석 고객 엔지니어, Azure용 FastTrack
기타 기여자:
- Paul Burpo | 주요 고객 엔지니어, Azure용 FastTrack
- John Downs | 소프트웨어 수석 엔지니어
- Daniel Scott-Raynsford | 파트너 기술 전략가
- Arsen Vladimirskiy | 수석 고객 엔지니어, FastTrack for Azure
- Vic Perdana | ISV 파트너 솔루션 설계자
다음 단계
- 다중 테넌트 솔루션의 컴퓨팅을 위한 아키텍처 접근 방식을 검토합니다.
- 여러 테넌트를 지원하도록 Azure Machine Learning 파이프라인을 설계하는 방법에 대한 자세한 내용은 다중 테넌트 방식의 ML 파이프라인용 솔루션을 참조하세요.