소개
AI 애플리케이션은 유추 처리에서 요청 제출을 분리하고 가변 부하에서 안정적인 배달을 보장하기 위해 비동기 메시징이 필요합니다. 이 모듈에서는 Azure Service Bus를 사용하여 Azure에서 AI 워크로드를 큐에 대기, 배포 및 안정적으로 처리하는 방법을 안내합니다.
대규모 언어 모델을 사용하여 업로드된 계약에서 구조화된 데이터를 추출하는 문서 분석 플랫폼을 빌드하는 개발자라고 상상해 보십시오. 클라이언트는 웹 API를 통해 문서를 제출하며 각 문서에는 길이 및 복잡성에 따라 5~30초의 처리 시간이 필요합니다. 사용량이 많은 시간 동안 수백 개의 문서가 몇 분 내에 도착하지만 유추 서비스는 제한된 수만 동시에 처리할 수 있습니다. API와 처리 계층 사이에 버퍼가 없으면 API가 로드 시 응답하지 않고 클라이언트가 시간 제한 오류를 수신하며 Pod를 다시 시작할 때 문서가 손실됩니다. 팀에는 트래픽 급증을 흡수하고, 여러 프로세서에 작업을 분산하고, 모든 문서가 정확히 한 번 처리되도록 보장하는 메시징 계층이 필요합니다. 또한 일부 다운스트림 서비스는 제출자에게 경고하는 알림 서비스 및 준수를 위해 결과를 기록하는 감사 서비스와 같은 완료된 분석에 대응해야 합니다. 플랫폼은 처리 실패를 정상적으로 처리해야 하며 처리할 수 없는 문서를 자동으로 삭제하지 않고 조사를 위해 별도의 큐로 라우팅해야 합니다. Azure Service Bus는 이 아키텍처에 필요한 큐, 퍼블리시-구독 및 데드 레터 기능을 제공합니다.
이 모듈을 완료하면 다음을 수행할 수 있습니다.
- Azure Service Bus가 AI 애플리케이션 구성 요소를 분리하고 부하 평준화, 경쟁 소비자 및 게시-구독과 같은 메시징 패턴을 적용할 시기를 식별하는 방법을 설명합니다.
- AI 워크플로가 단일 소비자 처리가 필요한 경우에는 Service Bus 큐를, 여러 소비자에게 배포가 필요한 경우에는 구독이 있는 토픽을 선택합니다.
- 프롬프트 및 모델 매개 변수 직렬화, 클레임 확인 패턴으로 큰 페이로드 처리, 엔드 투 엔드 요청 추적에 대한 상관 관계 ID 포함 등 AI 워크로드에 대한 Service Bus 메시지를 구성합니다.
- 피크-락 수신 모드를 사용하여 메시지를 안정적으로 처리하고, 데드레터 큐를 통해 유해 메시지를 처리하며, 실패한 추론을 위해 데드레터 큐를 모니터링합니다.
비고
이 모듈의 모든 코드 예제는 작성 당시 라이브러리의 azure-servicebus 최신 버전을 기반으로 합니다. 라이브러리는 자주 업데이트되며 가장 up-to-date 정보를 보려면 Azure Service Bus Python SDK 설명서를 방문하는 것이 좋습니다.