제퍼넷 로고

CCC Intelligent Solutions가 Amazon SageMaker를 사용하여 복잡한 AI 모델을 호스팅하기 위한 맞춤형 접근 방식을 만든 방법

시간

이 게시물은 CCC Intelligent Solutions의 Christopher Diaz, Sam Kinard, Jaime Hidalgo 및 Daniel Suarez가 공동 작성했습니다.

이 게시물에서는 방법에 대해 논의합니다. CCC 지능형 솔루션 (CCC) 결합 아마존 세이지 메이커 다른 AWS 서비스와 함께 복잡한 AI(인공 지능) 모델 유형을 호스팅할 수 있는 사용자 지정 솔루션을 생성합니다. CCC는 보험사, 수리업체, 자동차 제조업체, 부품 공급업체, 대부업체 등의 운영을 지원하는 수조 달러 규모의 손해 보험 경제를 위한 선도적인 SaaS(Software-as-a-Service) 플랫폼입니다. CCC 클라우드 기술은 미션 크리티컬 워크플로, 상거래 및 고객 경험을 디지털화하는 30,000개 이상의 기업을 연결합니다. AI, 사물 인터넷(IoT), 고객 경험, 네트워크 및 워크플로 관리 분야에서 신뢰할 수 있는 리더인 CCC는 사람들의 삶이 가장 중요한 순간에 앞으로 나아가도록 하는 혁신을 제공합니다.

난제

CCC는 매년 1조 달러 이상의 청구 거래를 처리합니다. 회사가 AI를 기존 및 신규 제품 카탈로그에 통합하기 위해 지속적으로 발전함에 따라 복잡한 비즈니스 요구 사항을 해결하기 위해 다중 모드 기계 학습(ML) 앙상블 모델을 교육하고 배포하기 위한 정교한 접근 방식이 필요합니다. 이들은 CCC가 수년에 걸쳐 연마한 독점 알고리즘 및 주제 영역 전문 지식을 캡슐화하는 모델 클래스입니다. 이러한 모델은 미묘한 데이터의 새로운 계층과 고객 규칙을 수집하여 단일 예측 결과를 생성할 수 있어야 합니다. 이 블로그 게시물에서는 CCC가 Amazon SageMaker 호스팅 및 기타 AWS 서비스를 활용하여 여러 다중 모델 모델을 앙상블 추론 파이프라인에 배포하거나 호스팅하는 방법을 알아봅니다.

다음 다이어그램에 표시된 대로 앙상블은 단일 예측을 생성하기 위해 선형 또는 비선형 방식으로 실행되도록 오케스트레이션된 둘 이상의 모델 모음입니다. 선형으로 쌓이면 앙상블의 개별 모델을 예측을 위해 직접 호출하고 나중에 통합을 위해 통합할 수 있습니다. 때때로 앙상블 모델은 직렬 추론 파이프라인으로 구현될 수도 있습니다.

사용 사례의 경우 앙상블 파이프라인은 다음 다이어그램과 같이 완전히 비선형입니다. 비선형 앙상블 파이프라인은 이론적으로 직접 비순환 그래프(DAG)입니다. 사용 사례의 경우 이 DAG 파이프라인에는 병렬로 실행되는 독립 모델(서비스 B, C)과 이전 단계의 예측을 사용하는 다른 모델(서비스 D)이 모두 있습니다.

CCC의 연구 중심 문화에서 나오는 관행은 고객에게 더 많은 가치를 제공하기 위해 활용할 수 있는 기술에 대한 지속적인 검토입니다. CCC가 이러한 앙상블 문제에 직면했을 때 경영진은 특히 Amazon SageMaker 및 기타 AWS 도구가 복잡하고 비선형적인 방식으로 개별 AI 모델의 호스팅을 관리할 수 있는지 여부를 파악하기 위해 AWS에서 제공하는 제품을 철저히 평가하기 위해 POC(개념 증명) 이니셔티브를 시작했습니다. 앙상블.

앙상블은 다음과 같이 설명했습니다. 이 맥락에서 앙상블은 하나의 전체 예측을 생성하기 위해 함께 작동하는 2개 이상의 AI 모델 그룹입니다.

연구를 주도하는 질문

Amazon SageMaker를 사용하여 함께 작동하여 하나의 전체 예측을 제공하는 복잡한 AI 모델 앙상블을 호스팅할 수 있습니까? 그렇다면 SageMaker는 향상된 자동화, 안정성, 모니터링, 자동 확장 및 비용 절감 조치와 같은 다른 이점을 즉시 제공할 수 있습니까?

클라우드 공급자의 기술 발전을 사용하여 CCC의 AI 모델을 배포하는 다른 방법을 찾으면 CCC는 경쟁사보다 더 빠르게 AI 솔루션을 시장에 출시할 수 있습니다. 또한 둘 이상의 배포 아키텍처를 사용하면 비즈니스 우선 순위에 따라 비용과 성능 간의 균형을 찾을 때 유연성이 제공됩니다.

요구 사항에 따라 프로덕션 등급 배포 아키텍처에 대한 체크리스트로 다음 기능 목록을 완성했습니다.

  • 복잡한 앙상블 지원
  • 모든 구성 요소의 가동 시간 보장
  • 배포된 AI 모델을 위한 맞춤형 자동 확장
  • AI 모델 입력 및 출력 보존
  • 모든 구성 요소에 대한 사용 메트릭 및 로그
  • 비용 절감 메커니즘

컴퓨터 비전 모델에 의존하는 대부분의 CCC AI 솔루션으로 인해 해상도가 계속 증가하는 이미지 및 비디오 파일을 지원하려면 새로운 아키텍처가 필요했습니다. 이 아키텍처를 비동기식 모델로 설계하고 구현해야 할 강력한 필요성이 있었습니다.

일련의 연구와 초기 벤치마킹 노력을 거친 후 CCC는 SageMaker가 대부분의 생산 요구 사항, 특히 대부분의 추론 구성 요소에 대해 보장된 가동 시간을 제공하는 데 적합하다고 판단했습니다. Amazon S3에 입력/출력을 저장하는 Amazon SageMaker 비동기 추론 엔드포인트의 기본 기능은 복잡한 앙상블에서 생성된 데이터를 보존하는 작업을 단순화합니다. 또한 각 AI 모델이 자체 엔드포인트에서 호스팅되므로 모델 또는 엔드포인트 수준에서 자동 조정 정책을 보다 쉽게 ​​관리할 수 있습니다. 관리를 간소화함으로써 잠재적인 비용 절감 이점은 개발 팀이 확장 정책을 미세 조정하는 데 더 많은 시간을 할당하여 컴퓨팅 리소스의 과잉 프로비저닝을 최소화할 수 있다는 것입니다.

SageMaker를 아키텍처의 핵심 구성 요소로 계속 사용하기로 결정한 후, 우리는 SageMaker가 다른 많은 서버리스 AWS 관리 서비스로 보완되는 더 큰 아키텍처의 일부가 될 수 있음을 깨달았습니다. 이 선택은 이 복잡한 아키텍처의 고차 오케스트레이션 및 관찰 가능성 요구를 촉진하는 데 필요했습니다.

첫째, 트래픽이 많은 시나리오에서 페이로드 크기 제한을 제거하고 시간 초과 위험을 크게 줄이기 위해 CCC는 다음을 사용하여 예측을 비동기식으로 실행하는 아키텍처를 구현했습니다. SageMaker 비동기식 추론 엔드포인트 핵심 빌딩 블록으로 다른 AWS 관리형 서비스와 결합됩니다. 또한 시스템의 사용자 인터페이스는 실행 후 잊어버리는 디자인 패턴을 따릅니다. 즉, 사용자가 입력을 시스템에 업로드하면 더 이상 수행할 작업이 없습니다. 예측이 가능해지면 알림을 받게 됩니다. 아래 그림은 비동기식 이벤트 기반 아키텍처에 대한 높은 수준의 개요를 보여줍니다. 다음 섹션에서는 설계된 아키텍처의 실행 흐름에 대해 자세히 살펴보겠습니다.

단계별 솔루션

1단계

클라이언트가 에게 요청을 합니다. AWS API 게이트웨이 끝점. 요청 내용에는 예측이 필요한 AI 서비스의 이름과 원하는 알림 방법이 포함됩니다.

이 요청은 람다 함수 호출 새로운 예측, 주요 임무는 다음과 같습니다.

  • 클라이언트가 요청한 서비스가 가능한지 확인합니다.
  • 요청에 고유한 예측 ID를 할당합니다. 이 예측 ID는 사용자가 전체 프로세스에서 예측 상태를 확인하는 데 사용할 수 있습니다.
  • 생성 아마존 S3 사용자가 예측 요청의 입력 콘텐츠를 업로드하기 위해 다음 단계에서 사용해야 하는 미리 서명된 URL입니다.
  • 항목 만들기 아마존 DynamoDB 받은 요청의 정보와 함께.

그런 다음 Lambda 함수는 요청에 할당된 예측 ID와 Amazon S3 사전 서명된 URL이 포함된 메시지와 함께 API Gateway 엔드포인트를 통해 응답을 반환합니다.

2단계

클라이언트는 이전 단계에서 생성된 미리 서명된 URL을 사용하여 예측 입력 콘텐츠를 S3 버킷에 안전하게 업로드합니다. 입력 콘텐츠는 AI 서비스에 따라 달라지며 이미지, 표 형식 데이터 또는 이 둘의 조합으로 구성될 수 있습니다.

3단계

S3 버킷은 사용자가 입력 콘텐츠를 업로드할 때 이벤트를 트리거하도록 구성됩니다. 이 알림은 Amazon SQS 대기열로 전송되고 호출되는 Lambda 함수에 의해 처리됩니다. 프로세스 입력. 그만큼 프로세스 입력 Lambda는 요청이 이루어질 서비스의 이름을 얻기 위해 DynamoDB에서 해당 예측 ID와 관련된 정보를 얻습니다.

이 서비스는 단일 AI 모델일 수 있습니다. 프로세스 입력 Lambda는 해당 모델을 호스팅하는 SageMaker 엔드포인트에 요청을 보내거나(3-A단계) 앙상블 AI 서비스일 수 있습니다. 프로세스 입력 Lambda는 앙상블 로직을 호스팅하는 단계 함수의 상태 머신에 요청을 합니다(3-B단계).

두 옵션(단일 AI 모델 또는 앙상블 AI 서비스)에서 최종 예측이 준비되면 적절한 S3 버킷에 저장되고 호출자에게 1단계에서 지정된 방법을 통해 알림이 전송됩니다(알림에 대한 자세한 내용은 단계 4).

3-A 단계

예측 ID가 단일 AI 모델에 연결된 경우 프로세스 입력 Lambda는 모델을 제공하는 SageMaker 엔드포인트에 요청합니다. 이 시스템에서는 두 가지 유형의 SageMaker 엔드포인트가 지원됩니다.

  • 비동기다음 프로세스 입력 Lambda는 SageMaker 비동기 엔드포인트에 대한 요청을 생성합니다. 즉각적인 응답에는 SageMaker가 예측 출력을 저장할 S3 위치가 포함됩니다. 이 요청은 실행 후 삭제 패턴을 따르는 비동기식이며 Lambda 함수의 실행 흐름을 차단하지 않습니다.
  • 동시의다음 프로세스 입력 Lambda는 SageMaker 동기 엔드포인트에 대한 요청을 생성합니다. 동기식 요청이므로 Process Input은 응답을 기다리고 응답을 받으면 SageMaker 비동기식 엔드포인트와 유사한 방식으로 S3에 저장합니다.

두 경우 모두(동기식 또는 비동기식 엔드포인트) 예측은 동일한 방식으로 처리되어 출력을 S3 버킷에 저장합니다. 비동기 SageMaker 엔드포인트가 예측을 완료하면 Amazon SNS 이벤트가 트리거됩니다. 이 동작은 Lambda 함수의 추가 논리를 사용하여 동기식 엔드포인트에도 복제됩니다.

3-B 단계

예측 ID가 AI 앙상블과 연결된 경우 프로세스 입력 Lambda는 해당 AI 앙상블과 연결된 단계 함수에 요청을 합니다. 위에서 언급했듯이 AI 앙상블은 단일 전체 예측을 생성하기 위해 함께 작동하는 AI 모델 그룹을 기반으로 하는 아키텍처입니다. AI 앙상블의 오케스트레이션은 단계 기능을 통해 수행됩니다.

단계 함수에는 앙상블을 구성하는 AI 서비스당 하나의 단계가 있습니다. 각 단계는 이전 단계의 이전 AI 서비스 호출에서 출력 콘텐츠의 다양한 조합을 사용하여 해당 AI 서비스의 입력을 준비하는 Lambda 함수를 호출합니다. 그런 다음 이 컨텍스트에서 단일 AI 모델 또는 다른 AI 앙상블이 될 수 있는 각 AI 서비스를 호출합니다.

라는 동일한 Lambda 함수 GetTransformCall AI Ensemble의 중간 예측을 처리하는 데 사용되는 은 단계 함수 전체에서 사용되지만 각 단계마다 다른 입력 매개변수를 사용합니다. 이 입력에는 호출할 AI 서비스의 이름이 포함됩니다. 또한 지정된 AI 서비스에 대한 입력을 구성하기 위한 매핑 정의도 포함합니다. 이는 Lambda가 디코딩할 수 있는 사용자 지정 구문을 사용하여 수행되며, 요약하면 값을 이전 AI 예측의 콘텐츠로 대체해야 하는 JSON 사전입니다. Lambda는 Amazon S3에서 이러한 이전 예측을 다운로드합니다.

각 단계에서 GetTransformCall Lambda는 지정된 AI 서비스의 입력을 구축하는 데 필요한 이전 출력을 Amazon S3에서 읽습니다. 그런 다음 새로운 예측 1단계에서 이전에 사용된 Lambda 코드와 요청 페이로드의 콜백에 필요한 서비스 이름, 콜백 메서드(“단계 함수”) 및 토큰을 제공하면 DynamoDB에 새 예측 레코드로 저장됩니다. Lambda는 또한 해당 단계에서 생성된 입력을 S3 버킷에 저장합니다. 해당 단계가 단일 AI 모델인지 또는 AI 앙상블인지에 따라 Lambda는 SageMaker 엔드포인트 또는 상위 앙상블의 종속성인 AI 앙상블을 관리하는 다른 단계 함수에 요청합니다.

요청이 이루어지면 단계 기능은 다음 단계로 이동할 수 있음을 나타내는 콜백 토큰을 수신할 때까지 보류 상태에 들어갑니다. 콜백 토큰 전송 작업은 Lambda라는 함수에 의해 수행됩니다. 알림 (자세한 내용은 4단계 참조) 중간 예측이 준비되면. 이 프로세스는 최종 예측이 준비될 때까지 단계 함수에 정의된 각 단계에 대해 반복됩니다.

4단계

예측이 준비되어 S3 버킷에 저장되면 SNS 알림이 트리거됩니다. 이 이벤트는 흐름에 따라 다양한 방식으로 트리거될 수 있습니다.

  1. SageMaker 비동기 엔드포인트가 예측을 완료하면 자동으로.
  2. 단계 기능의 마지막 단계로.
  3. By 프로세스 입력 or GetTransformCall 동기식 SageMaker 엔드포인트가 예측을 반환한 경우 Lambda.

B와 C에 대해 A가 자동으로 보내는 것과 유사한 SNS 메시지를 생성합니다.

알림이라는 Lambda 함수가 이 SNS 주제를 구독합니다. 알림 Lambda는 DynamoDB에서 예측 ID와 관련된 정보를 가져오고 상태 값이 "완료" 또는 "오류"인 항목을 업데이트하고 데이터베이스 레코드에 저장된 콜백 모드에 따라 필요한 작업을 수행합니다.

이 예측이 3-B단계에서 설명한 것처럼 AI 앙상블의 중간 예측인 경우 이 예측과 관련된 콜백 모드는 "단계 함수"가 되며 데이터베이스 레코드에는 특정 단계와 관련된 콜백 토큰이 있습니다. 단계 기능. 알림 Lambda는 "SendTaskSuccess" 또는 "SendTaskFailure" 메서드를 사용하여 AWS Step Functions API를 호출합니다. 이렇게 하면 단계 함수가 다음 단계로 계속 진행하거나 종료할 수 있습니다.

예측이 단계 함수의 최종 출력이고 콜백 모드가 "Webhook"[또는 이메일, 메시지 브로커(Kafka) 등]인 경우 알림 Lambda는 지정된 방식으로 클라이언트에 알립니다. 언제든지 사용자는 예측 상태를 요청할 수 있습니다. 요청에는 1단계에서 할당된 예측 ID가 포함되어야 하며 요청을 호출된 Lambda 함수로 라우팅하기 위해 API Gateway 내의 올바른 URL을 가리켜야 합니다. 결과.

결과 Lambda는 DynamoDB에 요청을 보내 요청 상태를 파악하고 정보를 사용자에게 반환합니다. 예측 상태가 오류, 실패에 대한 관련 세부 정보가 응답에 포함됩니다. 예측 상태가 성공, 사용자가 예측 콘텐츠를 다운로드할 수 있도록 S3 사전 서명된 URL이 반환됩니다.

결과

예비 성능 테스트 결과는 유망하며 CCC가 이 새로운 배포 아키텍처의 구현을 확장할 수 있는 사례를 지원합니다.

주목할만한 관찰:

  • 테스트 결과 트래픽이 많은 시나리오에서 처리량이 많고 실패율이 0%인 배치 또는 동시 요청 처리의 강점이 드러났습니다.
  • 메시지 대기열은 조정 트리거가 추가 컴퓨팅 리소스를 프로비저닝할 수 있을 때까지 요청이 갑자기 유입되는 동안 시스템 내에서 안정성을 제공합니다. 트래픽을 3배 증가시키면 평균 요청 대기 시간은 5%만 증가했습니다.
  • 안정성의 대가는 다양한 시스템 구성 요소 간의 통신 오버헤드로 인해 대기 시간이 증가한다는 것입니다. 사용자 트래픽이 기준 임계값을 초과하면 성능이 비용보다 우선 순위가 높은 경우 더 많은 컴퓨팅 리소스를 제공하여 추가 대기 시간을 부분적으로 완화할 수 있습니다.
  • SageMaker의 비동기식 추론 엔드포인트를 사용하면 요청을 수신하기 위해 엔드포인트를 활성 상태로 유지하면서 인스턴스 수를 XNUMX으로 조정할 수 있습니다. 이 기능을 사용하면 컴퓨팅 비용을 들이지 않고 배포를 계속 실행하고 두 가지 시나리오, 즉 낮은 테스트 환경에서 사용되는 서비스 배포와 즉각적인 처리 없이 최소 트래픽이 있는 서비스 배포에서 필요할 때 XNUMX부터 확장할 수 있습니다.

결론

POC 프로세스 중에 관찰된 바와 같이 CCC와 AWS가 공동으로 만든 혁신적인 디자인은 Amazon SageMaker를 다른 AWS 관리형 서비스와 함께 사용하여 복잡한 다중 모달 AI 앙상블을 호스팅하고 추론 파이프라인을 효과적이고 원활하게 오케스트레이션하기 위한 견고한 기반을 제공합니다. Asynchronous Inference와 같은 Amazon SageMaker의 즉시 사용 가능한 기능을 활용함으로써 CCC는 전문적인 비즈니스 크리티컬 작업에 집중할 수 있는 더 많은 기회를 갖게 됩니다. CCC의 연구 중심 문화 정신에 따라 이 새로운 아키텍처는 CCC가 AWS와 함께 클라이언트를 위한 강력한 새 AI 솔루션을 출시하는 데 앞장서면서 계속 진화할 것입니다.

비동기 추론 엔드포인트를 생성, 호출 및 모니터링하는 방법에 대한 자세한 단계는 다음을 참조하십시오. 선적 서류 비치샘플 노트 시작하는 데 도움이 됩니다. 가격 정보를 보려면 다음을 방문하십시오. Amazon SageMaker 요금.

컴퓨터 비전 및 자연어 처리(NLP)와 같은 비정형 데이터로 비동기 추론을 사용하는 예는 다음을 참조하세요. Amazon SageMaker 비동기 엔드포인트를 사용하여 대용량 비디오에서 컴퓨터 비전 추론 실행 과 Hugging Face 및 Amazon SageMaker 비동기 추론 엔드포인트로 고가치 연구 개선각각.


저자에 관하여

크리스토퍼 디아즈 CCC Intelligent Solutions의 수석 R&D 엔지니어입니다. R&D 팀의 일원으로서 그는 ETL 도구, 백엔드 웹 개발, 연구자와 협력하여 분산 시스템에서 AI 모델을 교육하고 연구 팀과 운영 팀 간의 새로운 AI 서비스 제공을 촉진하는 등 다양한 프로젝트에 참여했습니다. 최근에는 회사의 AI 모델 개발 수명 주기의 다양한 측면을 향상시키기 위한 클라우드 도구 솔루션 연구에 중점을 두고 있습니다. 여가 시간에는 고향인 시카고에 있는 새로운 레스토랑을 방문하고 집에 들어갈 수 있는 만큼 많은 LEGO 세트를 수집하는 것을 즐깁니다. Christopher는 Northeastern Illinois University에서 컴퓨터 과학 학사 학위를 받았습니다.

에미 상 수상자 샘 키나드 CCC Intelligent Solutions의 소프트웨어 엔지니어링 선임 관리자입니다. 텍사스주 오스틴에 기반을 둔 그는 고가용성 및 대규모로 CCC의 AI 제품을 제공하는 AI 런타임 팀을 관리합니다. 여가 시간에 Sam은 그의 멋진 두 자녀 때문에 잠이 부족한 것을 즐깁니다. Sam은 오스틴에 있는 텍사스 대학교에서 컴퓨터 공학 학사 및 수학 학사 학위를 받았습니다.

제이미 이달고 CCC Intelligent Solutions의 선임 시스템 엔지니어입니다. AI 연구 팀에 합류하기 전에는 클라우드 제품 및 서비스 배포를 지원하기 위해 AWS에서 인프라를 설계, 구축 및 자동화하여 회사의 마이크로 서비스 아키텍처로의 글로벌 마이그레이션을 이끌었습니다. 현재 그는 AI 교육을 위해 구축된 온프레미스 데이터 센터 클러스터를 구축 및 지원하고 회사의 미래 AI 연구 및 배포를 위한 클라우드 솔루션을 설계 및 구축합니다.

다니엘 레즈 CCC Intelligent Solutions의 데이터 사이언스 엔지니어입니다. AI 엔지니어링 팀의 일원으로서 ML 작업의 지표 및 기타 측면의 생성, 평가 및 모니터링에서 AI 모델의 자동화 및 준비 작업을 수행합니다. Daniel은 Illinois Institute of Technology에서 컴퓨터 과학 석사 학위를, Universidad Politecnica de Madrid에서 통신 공학 석사 및 학사 학위를 받았습니다.

아룬 프라 사스 샨 카르 AWS의 수석 AI/ML 전문가 솔루션 설계자로서 전 세계 고객이 클라우드에서 AI 솔루션을 효과적이고 효율적으로 확장할 수 있도록 지원합니다. 여가 시간에 Arun은 공상 과학 영화를 보고 클래식 음악을 듣는 것을 즐깁니다.

저스틴 맥휘터 AWS의 Solutions Architect Manager입니다. 그는 고객이 AWS 플랫폼을 채택하는 동안 긍정적인 경험을 할 수 있도록 돕는 놀라운 솔루션 설계자 팀과 함께 일합니다. 근무하지 않을 때 Justin은 두 아들과 비디오 게임, 아이스하키, 지프차를 타고 오프로드 주행을 즐깁니다.

spot_img

최신 인텔리전스

spot_img