다중 테넌트 SaaS 사용 사례를 위한 기계 학습 추론을 확장하는 방법 PlatoBlockchain Data Intelligence. 수직 검색. 일체 포함.

다중 테넌트 SaaS 사용 사례에 대한 기계 학습 추론을 확장하는 방법

이 게시물은 Zendesk의 Sr. Staff Machine Learning Engineer인 Sowmya Manusani와 공동으로 작성했습니다.

젠 데스크 단순성을 기반으로 모든 사람을 위한 지원, 영업 및 고객 참여 소프트웨어를 구축하는 SaaS 회사입니다. 전 세계적으로 170,000개 이상의 회사가 수억 명의 고객에게 효율적으로 서비스를 제공하는 데 성공합니다. Zendcaesk의 기계 학습 팀은 고객 경험 팀이 최고의 성과를 낼 수 있도록 향상시키는 일을 담당합니다. 데이터와 사람의 힘을 결합하여 Zendesk는 수동 작업을 자동화하여 고객의 생산성을 높이는 지능형 제품을 제공합니다.

Zendesk는 2015년부터 ML 제품을 구축해 왔습니다. 응답봇, 만족도 예측, 콘텐츠 단서, 제안된 매크로, 그리고 더 많은. 지난 몇 년 동안 특히 NLP에서 딥 러닝이 성장하면서 Zendesk 솔루션으로 고객을 지원하는 상담원을 지원하고 워크플로를 자동화할 수 있는 많은 기회를 보았습니다. Zendesk는 현재 TensorFlow 및 PyTorch를 사용하여 딥 러닝 모델을 구축하고 있습니다.

Zendesk와 같은 고객은 Amazon Web Services(AWS)에서 성공적인 대규모 SaaS(Software as a Service) 비즈니스를 구축했습니다. 성공적인 SaaS 비즈니스 모델의 핵심 동인은 애플리케이션 및 인프라에 멀티 테넌시를 적용하는 기능입니다. 애플리케이션을 한 번만 구축하면 되지만 여러 번 사용할 수 있고 인프라를 공유할 수 있기 때문에 비용 및 운영 효율성이 가능합니다. 많은 고객이 컴퓨팅, 스토리지, 데이터베이스, 네트워킹에 이르기까지 스택의 모든 계층에서 AWS에서 안전하고 비용 효율적인 다중 테넌트 시스템을 구축하는 것을 보고 있으며 이제 이를 기계 학습(ML)에 적용해야 하는 고객을 보고 있습니다. ).

모델 재사용과 초개인화 간의 어려운 절충안 만들기

SaaS 비즈니스를 위한 멀티 테넌시는 일반적으로 단일 애플리케이션이 많은 사용자(SaaS 고객) 간에 재사용됨을 의미합니다. 이는 비용 효율성을 높이고 운영 오버헤드를 낮춥니다. 그러나 기계 학습 모델은 정확한 예측을 위해 높은 수준의 특이성(초개인화)으로 개인화해야 하는 경우가 있습니다. 이는 "한 번 빌드하고 여러 번 사용"하는 SaaS 패러다임이 모델에 특이성이 있는 경우 항상 ML에 적용할 수는 없음을 의미합니다. 고객 지원 플랫폼의 사용 사례를 예로 들어 보겠습니다. 사용자가 지원 티켓에 포함하는 언어는 승차 공유 문제("라이드가 너무 오래 걸림")인지 또는 의류 구매 문제("세탁 시 변색")인지에 따라 다릅니다. 이 사용 사례에서 최상의 교정 조치를 예측하는 정확도를 높이려면 비즈니스 도메인 또는 업종별 데이터 세트에 대해 자연어 처리(NLP) 모델을 교육해야 할 수 있습니다. Zendesk는 솔루션에서 ML을 활용하려고 할 때 정확히 이 문제에 직면합니다. 그들은 각각 특정 고객을 위해 맞춤화된 수천 개의 고도로 맞춤화된 ML 모델을 만들어야 했습니다. 수천 개의 모델을 배포해야 하는 이 문제를 비용 효율적으로 해결하기 위해 Zendesk는 Amazon SageMaker를 선택했습니다.

이 게시물에서는 몇 가지 새로운 기능을 사용하는 방법을 보여줍니다. 아마존 세이지 메이커, 멀티 테넌트 ML 추론 기능을 구축하기 위한 완전 관리형 머신 러닝 서비스입니다. 또한 Zendesk가 ML 모델에서 초개인화를 지원할 수 있는 것과 SageMaker 다중 모델 엔드포인트를 사용하여 인프라를 비용 효율적으로 공유하는 것 사이에 행복한 매개체를 배포하여 동일한 결과를 성공적으로 달성한 실제 사례를 공유합니다( MME).

SageMaker 다중 모델 끝점

SageMaker 다중 모델 끝점을 사용하면 하나 이상의 인스턴스를 포함할 수 있는 단일 추론 끝점 뒤에 여러 모델을 배포할 수 있습니다. 각 인스턴스는 메모리 및 CPU 용량까지 여러 모델을 로드하고 제공하도록 설계되었습니다. 이 아키텍처를 통해 SaaS 비즈니스는 선형적으로 증가하는 여러 모델 호스팅 비용을 깨고 애플리케이션 스택의 다른 곳에 적용된 멀티 테넌시 모델과 일치하는 인프라 재사용을 달성할 수 있습니다.

다음 다이어그램은 SageMaker 다중 모델 끝점의 아키텍처를 보여줍니다.

다중 테넌트 SaaS 사용 사례를 위한 기계 학습 추론을 확장하는 방법 PlatoBlockchain Data Intelligence. 수직 검색. 일체 포함.

SageMaker 다중 모델 끝점은 다음에서 모델을 동적으로 로드합니다. 아마존 단순 스토리지 서비스 (Amazon S3) 호출 시 엔드포인트가 처음 생성될 때 모든 모델을 다운로드하는 대신. 결과적으로 모델에 대한 초기 호출은 짧은 지연 시간으로 완료되는 후속 추론보다 더 긴 추론 지연 시간을 볼 수 있습니다. 호출 시 모델이 이미 컨테이너에 로드된 경우 다운로드 단계를 건너뛰고 모델이 짧은 지연 시간으로 추론을 반환합니다. 예를 들어 하루에 몇 번만 사용되는 모델이 있다고 가정합니다. 요청 시 자동으로 로드되는 반면 자주 액세스하는 모델은 메모리에 유지되고 지속적으로 짧은 대기 시간으로 호출됩니다.

Zendesk가 SageMaker MME를 사용하여 제안된 매크로 ML 기능으로 비용 효율적인 대규모 ML 배포를 달성한 방법을 자세히 살펴보겠습니다.

Zendesk가 초개인화된 모델을 구축한 이유

Zendesk의 고객은 다양한 지원 티켓 의미 체계를 사용하여 다양한 산업 분야에 전 세계적으로 퍼져 있습니다. 따라서 고객에게 최상의 서비스를 제공하기 위해 의도, 매크로 등을 정확하게 식별하기 위해 고객별 지원 티켓 데이터에 대해 훈련된 개인화된 모델을 구축해야 하는 경우가 많습니다.

2021년 XNUMX월에는 수천 개의 고객별 모델 예측을 기반으로 매크로(미리 정의된 작업)를 권장하는 새로운 NLP ML 기능인 제안된 매크로를 출시했습니다. Zendesk의 ML 팀은 고객별 티켓 콘텐츠 및 매크로의 이전 기록에서 훈련된 TensorFlow 기반 NLP 분류기 모델을 구축했습니다. 이러한 모델을 사용할 수 있으면 에이전트가 티켓을 볼 때마다 매크로 예측이 권장되며(다음 스크린샷 참조), 에이전트가 고객에게 신속하게 서비스를 제공하는 데 도움이 됩니다. 매크로는 고객별로 다르기 때문에 Zendesk는 정확한 예측을 제공하기 위해 고객별 모델이 필요합니다.

다중 테넌트 SaaS 사용 사례를 위한 기계 학습 추론을 확장하는 방법 PlatoBlockchain Data Intelligence. 수직 검색. 일체 포함.

Zendesk의 추천 매크로 내부

제안된 매크로 모델은 크기가 약 7–15MB인 NLP 기반 신경망입니다. 주요 과제는 비용 효율적이고 안정적이며 확장 가능한 솔루션을 사용하여 수천 개의 이러한 모델을 생산하는 것입니다.

각 모델은 서로 다른 트래픽 패턴을 가지며 초당 최소 100개의 요청과 최대 초당 수백 개의 요청을 가지며, 모델을 메모리에서 사용할 수 있는 경우 모델 지연 시간이 약 XNUMX밀리초로 하루에 수백만 건의 예측을 제공합니다. SageMaker 엔드포인트는 여러 AWS 리전에 배포되어 엔드포인트당 분당 수천 개의 요청을 처리합니다.

SageMaker는 단일 엔드포인트에서 여러 모델을 호스팅할 수 있는 기능을 통해 Zendesk가 고객당 단일 모델 엔드포인트를 배포하는 것과 비교하여 배포 오버헤드를 줄이고 비용 효율적인 솔루션을 만들 수 있도록 도왔습니다. 여기서 절충안은 모델별 관리에 대한 제어가 덜하다는 것입니다. 그러나 이것은 Zendesk가 다중 모델 엔드포인트를 개선하기 위해 AWS와 협력하고 있는 영역입니다.

SageMaker 다중 모델 기능 중 하나는 모델의 지연 로드입니다. 즉, 모델이 처음 호출될 때 메모리에 로드됩니다. 이것은 메모리 활용을 최적화하기 위한 것입니다. 그러나 이는 콜드 스타트 ​​문제로 볼 수 있는 첫 번째 로드에서 응답 시간 스파이크를 유발합니다. 제안된 매크로의 경우 이것은 도전이었습니다. 그러나 Zendesk는 프로덕션 트래픽을 제공하기 전에 모델을 메모리에 로드하기 위해 SageMaker 엔드포인트 프로비저닝 위에 사전 로드 기능을 구현하여 이 문제를 극복했습니다. 둘째, MME는 자주 사용하지 않는 모델을 메모리에서 언로드하므로 모든 모델에서 일관되게 짧은 지연 시간을 달성하고 덜 활동적인 다른 모델에 영향을 미치는 "시끄러운 이웃"을 방지하기 위해 Zendesk는 AWS와 협력하여 게시물 뒷부분에서 논의할 새로운 기능을 추가합니다. 보다 명확한 모델별 관리. 또한 임시 솔루션으로 Zendesk는 너무 많은 모델 언로딩을 최소화하기 위해 적절한 규모의 MME를 보유하고 있습니다. 이를 통해 Zendesk는 약 100밀리초의 짧은 지연 시간으로 모든 고객에게 예측을 제공할 수 있으며 전용 엔드포인트와 비교할 때 여전히 90%의 비용 절감을 달성할 수 있습니다.

적절한 크기의 MME에서 Zendesk는 부하 테스트 중에 MME 뒤에 더 많은 수의 더 작은 인스턴스(수평적 확장에 대한 편향)를 갖는 것이 더 적은 수의 더 큰 메모리 인스턴스(수직적 확장)를 갖는 것보다 더 나은 선택임을 관찰했습니다. Zendesk는 메모리가 병목 현상이 될 수 있는 인스턴스의 유일한 리소스가 아니기 때문에 단일 대용량 메모리 인스턴스에 너무 많은 모델(그들의 경우 500개의 TensorFlow 모델 이상)을 포장하는 것이 제대로 작동하지 않는다는 것을 관찰했습니다. 보다 구체적으로 말하자면, TensorFlow가 모델당 여러 스레드(총 인스턴스 vCPU 3개)를 생성했기 때문에 단일 인스턴스에서 500개 이상의 모델을 로드하면 인스턴스에서 생성할 수 있는 최대 스레드 수에 대한 커널 수준 제한이 위반되는 것을 관찰했습니다. 더 적은 수의 더 큰 인스턴스를 사용하는 것과 관련된 또 다른 문제는 Zendesk가 MME 뒤의 일부 인스턴스에서 제한(안전 메커니즘으로)을 경험했을 때 발생했습니다. 다중 모델 서버 단일 인스턴스의 (MMS)는 인스턴스를 브라운아웃하지 않고 안전하게 처리할 수 있습니다. 이것은 점점 더 작은 인스턴스를 사용하여 해결된 또 다른 문제였습니다.

모든 프로덕션 애플리케이션의 중요한 구성 요소인 관찰 가능성 관점에서, 아마존 클라우드 워치 호출, CPU, 메모리 사용률과 같은 메트릭과 메모리에 로드된 모델, 모델 로드 시간, 모델 로드 대기 시간 및 모델 캐시 적중과 같은 다중 모델별 메트릭은 정보를 제공합니다. 특히, 모델 지연 시간의 분석은 Zendesk가 콜드 스타트 ​​문제와 그 영향을 이해하는 데 도움이 되었습니다.

MME Auto Scaling의 핵심

각 다중 모델 끝점 뒤에는 다음 다이어그램과 같이 모델 호스팅 인스턴스가 있습니다. 이러한 인스턴스는 모델에 대한 트래픽 패턴을 기반으로 메모리에서 여러 모델을 로드하고 제거합니다.

다중 테넌트 SaaS 사용 사례를 위한 기계 학습 추론을 확장하는 방법 PlatoBlockchain Data Intelligence. 수직 검색. 일체 포함.

SageMaker는 캐시된 모델 사본에서 요청이 제공되도록 모델이 이미 로드된 인스턴스로 모델에 대한 추론 요청을 계속 라우팅합니다(첫 번째 예측 요청과 캐시된 예측 요청에 대한 요청 경로를 보여주는 다음 다이어그램 참조). 길). 그러나 모델이 많은 호출 요청을 수신하고 다중 모델 끝점에 대한 추가 인스턴스가 있는 경우 SageMaker는 증가를 수용하기 위해 일부 요청을 다른 인스턴스로 라우팅합니다. SageMaker에서 자동화된 모델 크기 조정을 활용하려면 다음 항목이 있는지 확인하십시오. 인스턴스 Auto Scaling 설정 추가 인스턴스 용량을 프로비저닝합니다. 사용자 지정 파라미터 또는 분당 호출(권장)을 사용하여 엔드포인트 수준 조정 정책을 설정하여 엔드포인트 집합에 더 많은 인스턴스를 추가합니다.

다중 테넌트 SaaS 사용 사례를 위한 기계 학습 추론을 확장하는 방법 PlatoBlockchain Data Intelligence. 수직 검색. 일체 포함.

MME에 가장 적합한 사용 사례

SageMaker 다중 모델 끝점은 공유 제공 컨테이너를 통해 제공할 수 있고 모든 모델에 동시에 액세스할 필요가 없는 많은 수의 유사한 모델을 호스팅하는 데 매우 적합합니다. MME는 크기와 호출 대기 시간이 유사한 모델에 가장 적합합니다. 모델 크기의 일부 변형은 허용됩니다. 예를 들어 Zendesk의 모델 범위는 10–50Mb이며 잘 작동하지만 10배, 50배 또는 100배 더 큰 크기 변형은 적합하지 않습니다. 더 큰 모델은 충분한 메모리 공간을 수용하기 위해 더 많은 수의 더 작은 모델의 로드 및 언로드를 유발할 수 있으며, 이로 인해 엔드포인트에서 추가 대기 시간이 발생할 수 있습니다. 더 큰 모델의 성능 특성 차이는 CPU와 같은 리소스를 불균등하게 소비할 수 있으며, 이는 인스턴스의 다른 모델에 영향을 미칠 수 있습니다.

MME는 또한 공유 컨테이너를 사용하여 여러 모델을 로드하기 때문에 동일한 ML 프레임워크를 사용하는 공동 호스팅 모델용으로 설계되었습니다. 따라서 모델 집합에 혼합 ML 프레임워크(예: PyTorch 및 TensorFlow)가 있는 경우 SageMaker 전용 엔드포인트 또는 다중 컨테이너 호스팅이 더 나은 선택입니다. 마지막으로, MME는 자주 호출되는 모델을 위해 자주 사용되지 않는 모델을 오프로드할 수 있기 때문에 가끔 콜드 스타트 ​​대기 시간 패널티를 허용할 수 있는 애플리케이션에 적합합니다. 자주 액세스하지 않는 모델의 긴 꼬리가 있는 경우 다중 모델 엔드포인트가 이 트래픽을 효율적으로 처리하고 상당한 비용 절감을 가능하게 합니다.

요약

이 게시물에서는 SaaS 및 다중 테넌시가 ML과 어떻게 관련되는지, SageMaker 다중 모델 엔드포인트가 ML 추론을 위한 다중 테넌시 및 비용 효율성을 가능하게 하는 방법을 배웠습니다. Zendesk의 고객별 ML 모델의 다중 테넌트 사용 사례와 제안된 매크로 기능을 위해 SageMaker MME에서 수천 개의 ML 모델을 호스팅하고 전용 엔드포인트와 비교할 때 추론 비용을 90% 절감한 방법에 대해 배웠습니다. 초개인화 사용 사례에는 수천 개의 ML 모델이 필요할 수 있으며 MME는 이 사용 사례에 대한 비용 효율적인 선택입니다. MME를 지속적으로 개선하여 지연 시간이 짧고 각 개인화된 모델에 대해 보다 세분화된 제어를 통해 모델을 호스팅할 수 있습니다. MME를 시작하려면 다음을 참조하십시오. 하나의 엔드포인트 뒤에 있는 하나의 컨테이너에서 여러 모델을 호스팅합니다..


저자에 관하여

다중 테넌트 SaaS 사용 사례를 위한 기계 학습 추론을 확장하는 방법 PlatoBlockchain Data Intelligence. 수직 검색. 일체 포함.시에드 재프리 AWS의 선임 솔루션 아키텍트입니다. 그는 중간 규모 조직에서 대기업, 금융 서비스에서 ISV에 이르기까지 다양한 회사와 협력하여 클라우드에서 안전하고 탄력적이며 확장 가능한 고성능 애플리케이션을 구축하고 운영할 수 있도록 지원합니다.

다중 테넌트 SaaS 사용 사례를 위한 기계 학습 추론을 확장하는 방법 PlatoBlockchain Data Intelligence. 수직 검색. 일체 포함.소우미야 마누사니 Zendesk의 선임 기계 학습 엔지니어입니다. 그녀는 수천 명의 Zendesk Enterprise 고객을 위한 상담원 생산성 향상에 중점을 둔 NLP 기반 기계 학습 기능을 생산화하는 작업을 하고 있습니다. 그녀는 수천 개의 개인화된 모델에 대한 자동화된 교육 파이프라인을 구축하고 안전하고 탄력적이며 확장 가능한 고성능 애플리케이션을 사용하여 제공한 경험이 있습니다. 여가 시간에는 퍼즐을 풀고 그림을 그리는 것을 좋아합니다.

다중 테넌트 SaaS 사용 사례를 위한 기계 학습 추론을 확장하는 방법 PlatoBlockchain Data Intelligence. 수직 검색. 일체 포함. 사우라브 트리칸데 Amazon SageMaker Inference의 수석 제품 관리자입니다. 그는 고객과 함께 일하고 기계 학습을 보다 쉽게 ​​이용할 수 있도록 하는 데 열정적입니다. 여가 시간에 Saurabh는 하이킹, 혁신적인 기술 학습, TechCrunch 팔로우, 가족과 시간 보내기를 즐깁니다.

다중 테넌트 SaaS 사용 사례를 위한 기계 학습 추론을 확장하는 방법 PlatoBlockchain Data Intelligence. 수직 검색. 일체 포함.딥티 라가 Amazon SageMaker 팀의 소프트웨어 개발 엔지니어입니다. 그녀의 현재 작업은 기계 학습 모델을 효율적으로 호스팅하기 위한 기능을 구축하는 데 중점을 두고 있습니다. 여가 시간에는 여행, 하이킹, 식물 재배를 즐깁니다.

타임 스탬프 :

더보기 AWS 기계 학습