NVIDIA GPU 기반 TorchServe의 AI 음성 생성 추론에 대해 알아보기

NVIDIA GPU의 TorchServe를 사용하여 Oracle Cloud Infrastructure Kubernetes Engine에서 실행할 텍스트-음성 서비스를 설계할 수 있습니다. 이 기법은 이미지 분류, 객체 감지, 자연어 처리 및 권장 시스템과 같은 다른 추론 작업 로드에도 적용할 수 있습니다.

추론 서버는 학습된 머신 러닝 모델을 호스팅하고 API를 사용하여 예측(추론)을 제공하는 특수 시스템입니다. 확장, 일괄 처리 및 모니터링의 중요한 프로덕션 과제를 처리합니다. 즉, 정적 모델을 안정적인 고성능 웹 서비스로 변환합니다.

TorchServe는 PyTorch의 공식 모델 서비스 프레임워크입니다.

이 파일의 작업은 학습된 .mar 파일(패키지 모델 파일)을 가져와서 RESTful API 또는 gRPC 끝점에서 사용할 수 있도록 하는 것입니다. 사용자 정의 웹 서버 및 논리를 작성하는 대신 모델을 패키지화하여 TorchServe으로 전달합니다. 즉시 다음을 제공합니다.

  • 확장성: 작업자가 대량의 트래픽을 처리할 수 있도록 자동으로 관리합니다.
  • 저지연성 성능: 다중 모델 일괄 처리와 같은 고급 기능을 사용하여 효율적인 처리를 위한 요청을 그룹화합니다.
  • 모델 관리: 다운타임 없이 모델을 등록, 버전 지정, 롤백할 수 있습니다.
  • 내장된 모니터링: 추론 대기 시간 및 초당 요청과 같은 측정지표를 즉시 추적합니다.

기본적으로 TorchServe는 PyTorch 실험과 프로덕션 배포 간의 격차를 해소하여 강력한 모델을 최소한의 노력으로 강력한 예측 서비스로 전환합니다. 연구실에서 실제 세계로 PyTorch를 가져 오는 데 필수적인 도구입니다.

주:

TorchServe은 현재 제한된 유지 관리 모드입니다. 사용이 자유로워지고 특정 사용 사례 또는 테스트 편의를 위해 일부 기존 고객이 여전히 사용하고 있지만, 프로덕션 배포에 대한 장기적인 적합성을 평가하는 것이 좋습니다. 현재 상태 및 고려 사항은 공식 PyTorch TorchServe 설명서(https://docs.pytorch.org/serve/)를 참조하십시오.

다음은 시장에서 추론 서버의 일부입니다.

서버 개발자 주요 기능 최적 프레임워크 지원
NVIDIA Triton 엔비디아
  • 다중 프레임워크 지원(PyTorch, TensorFlow, ONNX 등)
  • 동적 일괄 처리, 모델 병렬화
  • GPU에 최적화(TensorRT)
고성능 다중 모델 배포 PyTorch, TF, ONNX, TensorRT
TorchServe PyTorch(이전의 메타)
  • 네이티브 PyTorch 통합
  • 간단한 Python API
  • 기본 동적 일괄 처리
PyTorch 중심 배포 PyTorch만
TensorFlow 제공 Google
  • TensorFlow 모델에 최적화
  • 모델 버전 지정 지원
TensorFlow 에코시스템 TensorFlow

구조

이 아키텍처는 AI 음성 생성 추론 배포의 예를 보여줍니다.



transperfect-oke-arch-oracle.zip

기본 Hugging Face 모델에서 미세 조정된 학습 및 사용자 정의 음성 모델은 추론을 위해 TorchServe에 배포됩니다. TorchServe는 수신되는 사용자 요청을 효율적으로 관리하고 모델을 호스팅하는 서빙 계층 역할을 합니다.

사용자가 텍스트 입력을 전송하면 TorchServe는 요청을 처리하고, 모델을 호출하고, 출력을 고품질 합성 음성으로 렌더링합니다.

텍스트-음성 세그먼트의 경우 각 문서에 여러 블록이 포함될 수 있으며 각 블록은 세그먼트로 구성됩니다. 예:

Document  (chapter)
 └── Block (paragraph)
      └── Segment (sentence)

이 아키텍처는 다음 구성 요소를 지원합니다.

  • OCI 리전

    OCI 리전은 가용성 도메인을 호스팅하는 데이터 센터가 하나 이상 포함된 지역화된 지리적 영역입니다. 지역은 다른 지역과 독립적이며, 광대한 거리는 (국가 또는 대륙에 걸쳐) 그들을 분리 할 수 있습니다.

  • OCI 가상 클라우드 네트워크 및 서브넷

    VCN(가상 클라우드 네트워크)은 OCI 리전에 설정하는 커스터마이징 가능한 소프트웨어 정의 네트워크입니다. 기존 데이터 센터 네트워크와 마찬가지로 VCN을 사용하면 네트워크 환경을 제어할 수 있습니다. VCN에는 VCN을 생성한 후 변경할 수 있는 겹치지 않는 CIDR(클래스리스 도메인 간 경로 지정) 블록이 여러 개 있을 수 있습니다. VCN을 서브넷으로 분할할 수 있으며, 이 서브넷은 지역 또는 가용성 도메인으로 범위가 지정될 수 있습니다. 각 서브넷은 VCN의 다른 서브넷과 겹치지 않는 연속적인 주소 범위로 구성됩니다. 썸네일의 크기는 생성 이후 변경할 수 있습니다. 서브넷은 공용 또는 전용일 수 있습니다.

  • OCI Registry

    Oracle Cloud Infrastructure Registry는 개발-운용 워크플로우를 간소화할 수 있는 Oracle 관리형 서비스입니다. 레지스트리를 사용하면 Docker 이미지와 같은 개발 아티팩트를 쉽게 저장, 공유 및 관리할 수 있습니다.

  • OCI 오브젝트 스토리지

    OCI Object Storage는 데이터베이스 백업, 분석 데이터, 이미지 및 비디오와 같은 리치 콘텐츠 등 모든 콘텐츠 유형의 대량의 정형 및 비정형 데이터에 대한 액세스를 제공합니다. 애플리케이션 또는 클라우드 플랫폼 내에서 직접 안전하고 안전하게 데이터를 저장할 수 있습니다. 성능 또는 서비스 안정성이 저하되지 않고 스토리지를 확장할 수 있습니다.

    신속하고 즉각적이며 자주 액세스하는 데 필요한 "핫" 스토리지에 표준 스토리지를 사용합니다. 장기간 보관하며 거의 또는 거의 액세스하지 않는 "콜드" 스토리지에 아카이브 스토리지를 사용합니다.

  • OCI File Storage

    Oracle Cloud Infrastructure File Storage는 지속성과 확장성이 뛰어나며, 안전한 엔터프라이즈급 네트워크 파일 시스템을 제공합니다. VCN의 베어메탈, 가상 머신 또는 컨테이너 인스턴스에서 OCI 파일 스토리지에 연결할 수 있습니다. 또한 Oracle Cloud Infrastructure FastConnect 및 IPSec VPN을 사용하여 VCN 외부에서 OCI File Storage에 접근할 수 있습니다.

  • OCI 블록 볼륨

    Oracle Cloud Infrastructure Block Volumes를 사용하면 스토리지 볼륨을 생성, 연결, 연결 및 이동하고 볼륨 성능을 변경하여 스토리지, 성능 및 애플리케이션 요구 사항을 충족할 수 있습니다. 볼륨을 인스턴스에 연결한 후 일반 하드 드라이브와 같은 볼륨을 사용할 수 있습니다. 또한 데이터 손실 없이 볼륨 연결을 해제하고 다른 인스턴스에 연결할 수 있습니다.

  • 로드 밸런서

    Oracle Cloud Infrastructure Load Balancing은 단일 시작점에서 여러 서버로의 자동 트래픽 분산을 제공합니다.

  • OCI Kubernetes 엔진

    Oracle Cloud Infrastructure Kubernetes Engine(OCI Kubernetes Engine 또는 OKE)은 컨테이너화된 애플리케이션을 클라우드에 배치하는 데 사용할 수 있는 확장 가능한 완전 관리형 고가용성의 서비스입니다. 애플리케이션에 필요한 컴퓨트 리소스를 지정하고 OKE가 기존 테넌시의 OCI에서 프로비저닝합니다. OKE는 Kubernetes를 사용하여 호스트 클러스터 전반에 걸쳐 컨테이너화된 애플리케이션의 배포, 확장 및 관리를 자동화합니다.

  • 서비스 게이트웨이

    서비스 게이트웨이는 VCN에서 Oracle Cloud Infrastructure Object Storage와 같은 다른 서비스로의 액세스를 제공합니다. VCN에서 Oracle 서비스로의 트래픽은 Oracle 네트워크 패브릭을 통해 이동하며 인터넷을 순회하지 않습니다.

  • 인터넷 게이트웨이

    인터넷 게이트웨이는 VCN의 공용 서브넷과 공용 인터넷 간의 트래픽을 허용합니다.

  • OCI 로깅
    Oracle Cloud Infrastructure Logging은 클라우드의 리소스에서 다음과 같은 유형의 로그에 액세스할 수 있는 확장성이 뛰어난 완전 관리형 서비스입니다.
    • 감사 로그: OCI 감사에서 생성된 이벤트와 관련된 로그입니다.
    • 서비스 로그: OCI API Gateway, OCI Events, OCI Functions, OCI Load Balancing, OCI Object Storage, VCN 플로우 로그 등 개별 서비스에 의해 게시된 로그입니다.
    • 사용자정의 로그: 사용자정의 애플리케이션, 기타 클라우드 제공자 또는 온프레미스 환경의 진단 정보가 포함된 로그입니다.
  • OCI 모니터링

    Oracle Cloud Infrastructure Monitoring은 클라우드 리소스를 능동적이고 수동적으로 모니터링하고, 측정항목이 지정된 트리거를 충족할 때 알람을 사용하여 통지합니다.

  • 정책

    Oracle Cloud Infrastructure Identity and Access Management 정책은 누가 어떤 리소스에 액세스할 수 있는지, 어떻게 액세스할 수 있는지 지정합니다. 그룹 및 구획 레벨에서 액세스 권한이 부여됩니다. 즉, 특정 구획 내에서 또는 테넌시에 대한 특정 유형의 액세스 권한을 그룹에 부여하는 정책을 작성할 수 있습니다.

  • OCI Vault

    Oracle Cloud Infrastructure Vault를 사용하면 클라우드의 리소스에 대한 액세스 보안을 위해 사용하는 데이터와 보안 인증서를 보호하는 암호화 키를 생성하고 중앙에서 관리할 수 있습니다. 기본 키 관리는 Oracle 관리 키입니다. OCI Vault를 사용하는 고객 관리형 키도 사용할 수 있습니다. OCI Vault는 저장소 및 키를 관리할 수 있는 다양한 REST API 세트를 제공합니다.

  • Hugging Face

    Hugging Face는 머신 러닝을 위한 협업 플랫폼이자 허브로, AI 애플리케이션을 위한 사전 학습 AI 모델, 개발 도구 및 호스팅 인프라를 제공하여 전 세계 개발자가 고급 머신 러닝에 액세스할 수 있도록 합니다.

솔루션 설계 워크플로 정보

이 음성 생성 솔루션은 다음과 같은 설계 워크플로우를 구현합니다.

  1. 사용자가 프로젝트 변환을 시작합니다.
  2. 앱은 프로젝트 내의 각 변환 작업에 대해 RabbitMQ 대기열에 메시지를 추가합니다.
  3. 각 작업자는 대기열에서 메시지를 검색합니다.
  4. 작업자가 메시지를 처리하고 요청을 TorchServe으로 보냅니다.
  5. TorchServe는 추론을 수행하고 결과를 근로자에게 반환합니다.
  6. 작업자는 결과를 처리하고 메시지를 다시 대기열에 넣습니다.
  7. 앱은 대기열에서 결과 메시지를 검색하여 데이터베이스에 저장합니다.
  8. 사용자에게 UI의 결과가 통지됩니다.

주:

경량 모델의 경우 작업자가 추론 요청을 CPU 노드로 전송합니다.