Azure에서 AI 워크로드에 대한 디자인 원칙
이 문서에서는 아키텍처의 AI 측면에 중점을 두고 Azure의 AI 워크로드에 대한 핵심 원칙을 간략하게 설명합니다. 절충을 포함하여 모든 Azure Well-Architected Framework 핵심 요소를 전체적으로 고려해야 합니다. 워크로드의 기능 및 비기능 요구 사항에 각 핵심 요소를 적용합니다.
안정성
Azure에서 실행되는 AI 워크로드는 다른 워크로드 클래스와 동일한 안정성 요구 사항을 고려해야 합니다. 모델 학습, 호스팅 및 추론에 대한 구체적인 고려 사항은 특히 중요하며 주로 이 원칙에서 해결됩니다. 여기에 설명된 사례는 클라우드 애플리케이션에 대한 표준 디자인 모범 사례에 추가되며 그에 따라 통합되어야 합니다.
디자인 원리 | 고려 사항 |
---|---|
단일 실패 지점을 완화합니다. | 중요한 구성 요소에 단일 인스턴스를 사용하면 중요한 문제가 발생할 수 있습니다. 문제를 방지하려면 모든 중요한 구성 요소에 중복성을 빌드합니다. 기본 제공 내결함성 및 고가용성 기능이 있는 플랫폼을 사용합니다. 중복성을 구현하기 위해 여러 인스턴스 또는 노드를 배포합니다. |
오류 모드 분석을 수행합니다. 잘 알려진 디자인 패턴을 활용합니다. |
시스템 구성 요소에서 잠재적인 오류 모드를 정기적으로 분석하고 이러한 오류에 대한 복원력을 구축합니다. 잘 알려진 디자인 패턴을 사용하여 시스템의 일부를 격리하고 연속 오류를 방지합니다. 예를 들어 Bulkhead 패턴은 오류를 격리하는 데 도움이 될 수 있습니다. 재시도 메커니즘 및 회로 차단기는 제한 요청과 같은 일시적인 오류를 처리할 수 있습니다. |
종속 구성 요소 간에 안정성 목표의 균형을 조정합니다. | 추론 엔드포인트 또는 모델과 데이터 저장소가 안정성 측면에서 정렬되었는지 확인합니다. 동시 사용자 급증과 같은 예기치 않은 조건에서도 애플리케이션 구성 요소를 계속 사용할 수 있어야 합니다. 또한 워크로드에는 오류가 발생할 경우 백업 시스템으로 전환할 수 있는 기능도 있어야 합니다. 한 구성 요소가 실패하면 다른 구성 요소의 안정성에 영향을 줍니다. 마찬가지로 서비스 계층 API는 중요한 프로덕션 리소스이므로 다른 중요도가 높은 워크로드 흐름과 동일한 안정성 표준을 준수해야 합니다. 이러한 API에 고가용성이 필요한 경우 호스팅 플랫폼은 연속 작업 및 복원력을 보장하기 위해 가용성 영역 또는 다중Region 디자인을 지원해야 합니다. |
운영 안정성을 위한 디자인입니다. | 업데이트가 빈번하고 시기 적절하게 유지되도록 하여 모델 응답의 안정성을 유지합니다. 최근 데이터를 사용할지 또는 약간 오래된 데이터가 충분한지 여부를 결정합니다. 업데이트 빈도의 실용성과 up-to날짜 정보에 대한 필요성의 균형을 유지합니다. 빈도 및 안정성 요구 사항으로 인해 온라인 교육을 자동화합니다. 비용 혜택 분석을 통해 오프라인 교육을 정당화하고 저렴한 리소스를 사용하여 수행합니다. |
신뢰할 수 있는 사용자 환경을 위한 디자인. | 부하 테스트를 사용하여 워크로드가 스트레스를 처리하는 방법을 평가하고 사용자 인터페이스를 디자인하여 응답 시간에 대한 사용자 기대치를 관리합니다. 사용자에게 잠재적 대기 시간을 알리고 비동기 클라우드 디자인 원칙을 채택하여 간헐적, 대기 시간 또는 오류를 해결하는 UI 요소를 구현합니다. |
보안
모델은 중요한 프로덕션 데이터를 사용하여 관련 결과를 생성하는 경우가 많습니다. 따라서 아키텍처의 모든 계층에서 강력한 보안 조치를 사용해야 합니다. 수명 주기 초기에 보안 애플리케이션 디자인을 구현하고, 미사용 데이터와 전송 중인 데이터를 암호화하고, 업계 규정 준수 표준을 준수합니다. 정기적인 보안 평가는 취약성을 식별하고 완화하는 데 매우 중요합니다. 고급 위협 탐지 메커니즘은 잠재적인 위협에 대한 신속한 대응을 보장합니다.
보안 원칙 데이터 무결성, 디자인 무결성 및 사용자 개인 정보를 보호하기 위한 AI 솔루션의 기본 사항입니다. 워크로드 소유자는 안전한 사용자 환경을 보장하기 위해 신뢰를 구축하고 중요한 정보를 보호할 책임이 있습니다.
디자인 원리 | 고려 사항 |
---|---|
사용자 신뢰를 얻습니다. | 사용자 지정 코드, 적절한 도구 및 효과적인 보안 제어를 사용하여 수명 주기의 모든 단계에서 콘텐츠 보안을 통합합니다. 집계된 데이터 저장소, 검색 인덱스, 캐시 및 애플리케이션과 같은 모든 데이터 스토리지 지점에서 불필요한 개인 및 기밀 정보를 제거합니다. 아키텍처 전체에서 이 수준의 보안을 일관되게 유지합니다. 콘텐츠 검토를 철저히 수행하여 데이터의 양방향을 검사하고 부적절하거나 불쾌한 콘텐츠를 필터링하도록 하세요. |
워크로드의 민감도 요구 사항에 따라 미사용, 전송 중 및 사용 중인 데이터를 보호합니다. | 최소한 아키텍처에 사용되는 모든 데이터 저장소에서 Microsoft 관리형 또는 고객 관리형 키로 플랫폼 수준 암호화를 사용합니다. 더 높은 수준의 암호화가 필요한 위치를 평가하고 필요한 경우 이중 암호화를 사용합니다. 모든 트래픽이 암호화에 HTTPS를 사용하는지 확인합니다. 각 홉에서 TLS 종료 지점을 결정합니다. 공격자가 학습 중에 사용되는 중요한 정보를 추출하지 못하도록 모델 자체를 보호해야 합니다. 이 보호에는 최고 수준의 보안 조치가 필요합니다. 암호화된 데이터에 대한 추론을 허용하는 동형 암호화를 사용하는 것이 좋습니다. |
시스템에 액세스하는 ID(사용자 및 시스템)를 유지하는 데 강력한 액세스 관리에 투자합니다. | 제어 및 데이터 평면 모두에 대한 역할 기반 액세스 제어 또는 특성 기반 액세스 제어를 구현합니다. 개인 정보를 보호하기 위해 적절한 ID 구분을 유지합니다. 볼 수 있는 권한이 있는 콘텐츠에 대한 액세스만 허용합니다. |
세분화를 통해 디자인의 무결성을 보호합니다. | 컨테이너 이미지, 데이터 및 코드 자산에 대한 중앙 집중식 리포지토리에 액세스할 수 있도록 프라이빗 네트워킹을 제공합니다. 다른 워크로드와의 인프라 공유로 인해 분할이 발생할 경우, 예를 들어 Azure Kubernetes Service에서 추론 서버를 호스팅할 때, 해당 노드 풀을 다른 API나 워크로드로부터 분리하십시오. |
보안 테스트를 수행합니다. | 시스템에 변경 내용이 도입될 때마다 비윤리적 동작을 감지하는 테스트를 포함하는 자세한 테스트 계획을 개발합니다. AI 구성 요소를 기존 보안 테스트에 통합합니다. 예를 들어 추론 엔드포인트를 다른 공용 엔드포인트와 함께 일상적인 테스트에 통합합니다. 잠재적인 취약성을 효과적으로 식별하고 해결하기 위해 침투 테스트 또는 레드 팀 연습과 같은 라이브 시스템에서 테스트를 수행하는 것이 좋습니다. |
엄격한 사용자 액세스 및 API 디자인을 적용하여 공격 노출 영역을 줄입니다. | 시스템 간 호출을 포함하여 모든 유추 엔드포인트에 대한 인증이 필요합니다. 익명 엔드포인트를 사용하지 않습니다. 클라이언트 쪽 유연성의 비용으로 제한된 API 디자인을 선호합니다. |
절충. 최고 수준의 보안을 제공하는 데에는, 암호화된 데이터를 분석, 검사, 또는 기록하는 능력이 제한적이기 때문에 비용과 정확도의 절충이 필요합니다. 콘텐츠 안전 검사 및 설명 가능성 달성은 매우 보안이 높은 환경에서도 어려울 수 있습니다.
다음 디자인 영역에서는 이전 원칙 및 고려 사항에 대한 세부 정보를 제공합니다.
비용 최적화
비용 최적화 핵심 요소는 투자를 최대화하는 것을 목표로 하지만 반드시 비용을 절감하는 것은 아닙니다. 모든 아키텍처 선택은 직접 및 간접적인 재정적 영향을 모두 수반합니다. 빌드 및 구매 결정, 기술 선택, 청구 모델, 라이선스, 교육 및 운영 비용을 포함하여 다양한 옵션과 관련된 비용을 이해합니다. 선택한 계층에 대한 투자를 최대화하고 청구 모델을 지속적으로 재평가합니다. 아키텍처, 비즈니스 요구 사항, 프로세스 및 팀 구조의 변경과 관련된 비용을 지속적으로 평가합니다.
비용 최적화 원칙을 비율 및 사용 최적화에 중점을 두고 검토합니다.
디자인 원리 | 고려 사항 |
---|---|
포괄적인 비용 모델링 연습을 수행하여 비용 동인을 결정합니다. | 데이터 및 애플리케이션 플랫폼의 주요 요소를 고려합니다. - 데이터 볼륨입니다. 인덱싱 및 처리할 데이터의 양을 예측합니다. 볼륨이 클수록 스토리지 및 처리 비용이 증가할 수 있습니다. - 쿼리 수입니다. 쿼리의 빈도 및 복잡성을 예측합니다. 특히 상당한 계산 리소스가 필요한 경우 쿼리 볼륨이 높을수록 비용이 높아질 수 있습니다. - 처리량. 필요한 처리량을 평가하여 필요한 성능 계층에 영향을 줍니다. 처리량 수요가 많을수록 비용이 높아질 수 있습니다. - 종속성 비용. 종속성에 숨겨진 비용이 있을 수 있습니다. 예를 들어 인덱스의 비용을 계산할 때 데이터 처리의 일부이지만 인덱스 범위를 벗어난 기술 집합의 비용을 포함합니다. |
사용하려는 항목에 대한 요금을 지불합니다. | 불필요한 비용 없이 요구 사항을 충족하는 기술 솔루션을 선택합니다. 고급 기능이 필요하지 않은 경우 더 경제적인 옵션과 오픈 소스 도구를 고려하세요. 사용 빈도를 고려합니다. 탄력적 컴퓨팅 옵션을 선호하여 사용률 비용을 최소화하세요. 이는 오케스트레이션 도구가 전체 용량을 사용하지 않고 더 높은 계층에 대한 비용을 지불하지 마세요. 선택한 계층이 프로덕션 사용 패턴과 일치하여 지출을 최적화해야 합니다. 일반 작업에 표준 가격 책정을 사용하고 중단이 많은 교육을 위한 스폿 가격을 사용합니다. 비용을 절감하려면 AI 워크로드 함수에 대해서만 GPU 기반 컴퓨팅을 사용합니다. 학습 및 미세 조정을 광범위하게 테스트하고 벤치마킹하여 성능과 비용의 균형을 맞추는 이상적인 제품 버전을 찾습니다. |
지불하는 금액을 사용합니다. 낭비를 최소화합니다. | 사용률 메트릭을 면밀히 모니터링합니다. AI 워크로드는 비용이 많이 들 수 있으며, 사용하지 않을 때 리소스가 종료, 축소 또는 할당 취소되지 않으면 비용이 빠르게 증가될 수 있습니다. 한 번 쓰기를 위해 시스템을 최적화하고 많은 데이터를 읽 어 데이터 스토리지에 과도하게 지출하지 않도록 합니다. 학습 데이터는 프로덕션 데이터베이스의 즉각적인 응답성이 필요하지 않습니다. Azure OpenAI 서비스 유추 엔드포인트의 스트레스 테스트는 모든 API 호출에 대한 요금 때문에 비용이 많이 들 수 있습니다. 비용을 줄이려면 테스트 환경에서 Azure OpenAI의 사용되지 않는PTU를 사용하거나 대신 유추 엔드포인트를 시뮬레이션합니다. EDA(예비 데이터 분석), 모델 학습 및 미세 조정과 같은 활동은 일반적으로 풀 타임으로 실행되지 않습니다. 사용하지 않을 때 중지할 수 있는 플랫폼을 선호합니다. 예를 들어 EDA 작업은 일반적으로 대화형이므로 사용자는 VM을 시작하고 작업을 실행할 때 중지할 수 있어야 합니다. 운영 팀에 비용 책임을 설정합니다. 리소스 사용률을 적극적으로 모니터링하고 관리하여 비용이 예상 매개 변수 내에서 유지되도록 해야 합니다. |
운영 비용을 최적화합니다. | 온라인 교육은 빈번한 특성 때문에 비용이 많이 들 수 있습니다. 이 프로세스를 자동화하면 일관성을 유지하고 사용자 오류로 인한 비용을 최소화할 수 있습니다. 가능하다면 훈련에 약간 오래된 데이터를 사용하고 업데이트를 지연시켜 모델의 정확도에 크게 영향을 미치지 않으면서 추가적인 비용 절감을 도모할 수 있습니다. 오프라인 학습의 경우 오프라인 하드웨어와 같은 저렴한 리소스를 사용할 수 있는지 평가합니다. 일반적으로 기능 저장소에서 데이터를 삭제하여 기능에 대한 혼란과 스토리지 비용을 줄입니다. |
절충: 비용 최적화 및 성능 효율성. 데이터베이스 관리의 성능과 비용의 균형을 맞추는 데는 절충을 고려해야 합니다. 효율적인 인덱스 디자인은 쿼리 속도를 높이지만 메타데이터 관리 및 인덱스 크기로 인해 비용이 증가할 수 있습니다. 마찬가지로 큰 테이블을 분할하면 쿼리 성능을 향상시키고 스토리지 부하를 줄일 수 있지만 추가 비용이 발생합니다. 반대로 과도한 인덱싱을 방지하는 기술은 비용을 줄일 수 있지만 제대로 관리되지 않으면 성능에 영향을 줄 수 있습니다.
절충: 비용 최적화 및 운영 우수성. 모델 학습에 대한 두 가지 주요 접근 방식에는 장단점이 있습니다. 전체 프로덕션 데이터를 사용하여 개발 환경에서 모델을 한 번 훈련하고 아티팩트만 배포하여 계산 비용을 절감할 수 있습니다. 낮은 환경에서 프로덕션 데이터를 처리하기 위한 엄격한 보안 조치가 필요합니다. 프로세스는 복잡하고 리소스를 많이 사용할 수 있습니다. 반대로, 각 환경에서 모델을 학습하면 철저한 코드 검토 및 테스트를 통해 안정성과 안정성이 향상되지만 여러 학습 실행으로 인해 계산 비용이 증가합니다.
운영 우수성
운영 우수성의 주요 목표는 개발 수명 주기 내내 기능을 효율적으로 제공하는 것입니다. 모델 성능을 향상시키려면 실험의 디자인 방법론을 지원하고 결과를 생성하는 반복 가능한 프로세스를 설정해야 합니다. 운영 우수성은 또한 시간이 지남에 따라 모델의 지속적인 정확도를 관찰하고, 위험을 최소화하기 위한 효과적인 모니터링 사례 및 거버넌스를 구현하고, 모델 드리프트에 적응하기 위한 변경 관리 프로세스를 개발하는 것입니다.
모든 운영 우수성 원칙은 AI 워크로드에 적용할 있지만 자동화 및 모니터링의 우선 순위를 기본 운영 전략으로 지정합니다.
디자인 원리 | 고려 사항 |
---|---|
애플리케이션 개발, 데이터 처리 및 AI 모델 관리의 수명 주기 전반에 걸쳐 지속적인 학습 및 실험 사고방식을 조성합니다. | 워크로드 작업은 DevOps, DataOps, MLOps 및 GenAIOps와 같은 업계에서 입증된 방법론을 기반으로 해야 합니다. 운영, 애플리케이션 개발 및 데이터 팀 간의 초기 협업은 허용 가능한 모델 성능에 대한 상호 이해를 설정하는 데 필수적입니다. 운영 팀은 품질 신호 및 실행 가능한 경고를 제공합니다. 애플리케이션 및 데이터 팀은 문제를 효율적으로 진단하고 해결하는 데 도움이 됩니다. |
운영 부담을 최소화하는 기술을 선택합니다. | 플랫폼 솔루션을 선택하는 경우 자체 호스팅 옵션보다 PaaS(Platform as a Service)를 선호하여 디자인을 간소화하고, 워크플로 오케스트레이션을 자동화하고, Day-2 작업을 더 쉽게 만듭니다. |
경고 기능을 지원하고 로깅 및 감사 기능을 포함하는 자동화된 모니터링 시스템을 빌드합니다. | AI의 비결정적 특성 때문에 품질 측정은 수명 주기 초기에 설정하는 데 중요합니다. 데이터 과학자와 협력하여 품질 메트릭을 정의하고 포괄적인 대시보드에서 지속적인 인사이트를 시각화합니다. 코드 버전, 환경, 매개 변수, 실행 및 결과와 같은 세부 정보를 캡처할 수 있는 도구를 통해 실험을 추적합니다. 운영자가 신속하게 응답할 수 있는 충분한 정보를 사용하여 실행 가능한 경고를 구현합니다. |
모델 감쇠의 검색 및 완화를 자동화합니다. | 자동화된 테스트를 사용하여 시간이 지남에 따라 드리프트를 평가합니다. 응답이 예상 결과에서 벗어나기 시작할 때 모니터링 시스템에서 경고를 보내고 정기적으로 이를 시작하는지 확인합니다. 새 모델을 자동으로 검색하고 업데이트할 수 있는 도구를 사용합니다. 필요에 따라 데이터 처리 및 모델 학습 논리를 조정하여 새로운 사용 사례에 맞게 조정합니다. |
안전한 배포를 연습합니다. | 병렬 배포 또는 현재 위치 업데이트 중에서 선택하여 가동 중지 시간을 최소화합니다. 배포 전에 철저한 테스트를 구현하여 모델이 올바르게 구성되고 대상, 사용자 기대치 및 품질 표준을 충족하는지 확인합니다. 배포 전략에 관계없이 항상 긴급 작업을 계획합니다. |
프로덕션 환경에서 사용자 환경을 지속적으로 평가합니다. | 워크로드 사용자가 자신의 경험에 대한 피드백을 제공하고, 문제 해결을 위해 관련 로그에서 대화의 일부 또는 전체를 공유하도록 동의할 수 있게 합니다. 실행 가능하고, 규정을 준수하고, 안전하며, 캡처하는 데 유용한 사용자 상호 작용의 양을 고려합니다. 데이터를 부지런히 사용하여 실제 사용자 상호 작용을 통해 워크로드의 성능을 평가합니다. |
다음 디자인 영역에서는 이전 원칙 및 고려 사항에 대한 세부 정보를 제공합니다.
- 작업
- MLOps 및 GenAIOps
- 테스트
성능 효율성
AI 모델 성능 평가의 목표는 모델이 의도한 작업을 얼마나 효과적으로 수행하는지 결정하는 것입니다. 평가에는 정확도, 정밀도 및 공정성과 같은 다양한 메트릭을 평가하는 작업이 포함됩니다. 모델을 지원하는 플랫폼 및 애플리케이션 구성 요소의 성능은 매우 중요합니다.
모델 성능은 실험 추적 및 데이터 처리와 같은 작업의 효율성에도 영향을 받습니다. 성능 저하 또는 감쇠를 감지하는 데 핵심인 허용 가능한 품질 표시줄에 대해 성능을 측정하는 데 도움이 되도록
디자인 원리 | 고려 사항 |
---|---|
성능 벤치마크를 설정합니다. | 다양한 아키텍처 영역에서 엄격한 성능 테스트를 수행하고 허용 가능한 목표를 설정합니다. 이 지속적인 평가는 일회성 테스트가 아니라 운영 프로세스의 일부여야 합니다. 벤치마킹은 예측 성능에 적용됩니다. 초기 모델 성능을 이해하고 지속적으로 재평가하여 기대치를 충족하는지 확인하기 위한 기준부터 시작합니다. |
성능 목표를 충족하는 데 필요한 리소스를 평가합니다. | 적절한 플랫폼 및 적절한 크기의 리소스를 선택하기 위한 부하 특성을 이해합니다. 용량 계획이 대규모로 작동하도록 이 데이터를 고려합니다. 예를 들어 부하 테스트를 사용하여 최적의 컴퓨팅 플랫폼 및 제품 버전을 결정합니다. 모델 학습 및 미세 조정을 위해 고성능 GPU 최적화 컴퓨팅이 필요한 경우가 많습니다. 범용 제품 버전은 오케스트레이션 도구에 적합합니다. 마찬가지로 데이터 수집을 효율적으로 처리하고, 동시 쓰기를 관리하고, 성능 저하 없이 개별 쓰기 성능을 유지하는 데이터 플랫폼을 선택합니다. 다른 추론 서버에는 런타임 시 모델 성능에 영향을 주는 다양한 성능 특성이 있습니다. 기준 예상을 충족하는 서버를 선택합니다. |
성능 메트릭을 수집 및 분석하고 병목 상태를 식별합니다. |
데이터 파이프라인에서 원격 분석을 평가하여 처리량 및 읽기/쓰기 작업에 대한 성능 대상이 충족되는지 확인합니다. 검색 인덱스의 경우 쿼리 대기 시간, 처리량 및 결과의 정확도와 같은 메트릭을 고려합니다. 데이터 볼륨이 증가함에 따라 오류율은 증가하지 않아야 합니다. 서비스 호출에서 데이터를 수집하는 오케스트레이터와 같은 코드 구성 요소에서 원격 분석을 분석합니다. 해당 데이터를 분석하여 로컬 처리 및 네트워크 호출에 소요된 시간을 이해하고 다른 구성 요소의 잠재적 대기 시간을 식별하는 데 도움이 됩니다. 참여 메트릭을 사용하여 UI 환경을 평가하여 사용자가 적극적으로 참여하거나 좌절하는지 확인합니다. 페이지의 시간이 늘어나면 둘 중 하나를 나타낼 수 있습니다. 음성 또는 비디오 응답과 같은 다중 모드 기능은 상당한 대기 시간을 경험할 수 있으므로 응답 시간이 길어집니다. |
생산에서 품질 측정을 사용하여 지속적으로 벤치마크 성능을 향상시킵니다. | 모델 효율성을 유지하려면 성능 메트릭, 경고 및 모델 재학습의 자동화된 수집 및 분석이 필요합니다. |
절충. 플랫폼 기능을 고려할 때 비용과 성능의 균형을 조정해야 합니다. 예를 들어 GPU 버전은 비용이 많이 들기 때문에 필요에 따라 사용 미달 및 적절한 크기의 리소스를 지속적으로 모니터링합니다. 조정 후 리소스 사용률을 테스트하여 플랫폼 리소스의 비용과 해당 작업의 비용과 기준에 따른 예상 성능 간의 균형을 유지합니다. 비용 최적화 전략은 구성 요소 비용최적화하기 위한
권장 사항을 참조하세요.
다음 디자인 영역에서는 이전 원칙 및 고려 사항에 대한 세부 정보를 제공합니다.
- 테스트
- MLOps 및 GenAIOps