Saiba mais sobre a inferência de geração de voz de IA com TorchServe em GPUs NVIDIA
Você pode projetar um serviço Text-to-Speech para ser executado no Oracle Cloud Infrastructure Kubernetes Engine usando TorchServe em GPUs NVIDIA. Essa técnica também pode ser aplicada a outras cargas de trabalho de inferência, como classificação de imagens, detecção de objetos, processamento de linguagem natural e sistemas de recomendação.
Um servidor de inferência é um sistema especializado que hospeda modelos de machine learning treinados e atende às suas previsões (inferências) usando APIs. Ele lida com os desafios críticos de produção de dimensionamento, batching e monitoramento: transformando um modelo estático em um serviço web confiável e de alto desempenho.
TorchServe é o framework oficial de serviço de modelo para PyTorch.
Seu trabalho é obter seu arquivo .mar
treinado (um arquivo de modelo empacotado) e disponibilizá-lo em pontos finais de API ou gRPC RESTful. Em vez de gravar lógica e servidores Web personalizados, você compacta seu modelo e o entrega para TorchServe. Ele fornece instantaneamente:
- Escalabilidade: gerencia automaticamente os colaboradores para lidar com o tráfego de alto volume.
- Desempenho de Baixa Latência: Usa recursos avançados, como lotes de vários modelos, para agrupar solicitações para processamento eficiente.
- Gerenciamento de Modelos: Permite registrar, controlar a versão e reverter modelos sem tempo de inatividade.
- Monitoramento Incorporado: rastreia métricas como latência de inferência e solicitações por segundo prontas para uso.
Essencialmente, o TorchServe preenche a lacuna entre a experimentação do PyTorch e a implantação da produção, transformando seus modelos avançados em um serviço de previsão robusto com o mínimo de esforço. É a ferramenta essencial para levar o PyTorch do laboratório de pesquisa para o mundo real.
Observação:
TorchServe está atualmente em modo de manutenção limitada. Embora permaneça livre de uso e ainda seja empregado por alguns clientes existentes para casos de uso específicos ou conveniência de teste, recomendamos avaliar sua adequação de longo prazo para implementações de produção. Analise a documentação oficial do PyTorch TorchServe em https://docs.pytorch.org/serve/ para obter o status e as considerações atuais.Estes são alguns dos servidores de inferência no mercado:
Servidor | Desenvolvedor | Funcionalidades Principais | Melhor para | Suporte à Estrutura |
---|---|---|---|---|
NVIDIA Triton | NVIDIA |
|
Implantações de alto desempenho em vários modelos | PyTorch, TF, ONNX, TensorRT |
TorchServe | PyTorch (anteriormente Meta) |
|
Implantações com foco em PyTorch | Somente PyTorch |
TensorFlow Porção |
|
Ecossistemas TensorFlow | TensorFlow |
Arquitetura
Essa arquitetura mostra um exemplo de implantação de inferência de geração de voz de IA.
transperfect-oke-arch-oracle.zip
Um modelo de voz treinado e personalizado, ajustado a partir de um modelo básico do Hugging Face, é implantado no TorchServe para inferência. TorchServe atua como a camada de serviço, hospedando o modelo e gerenciando solicitações de usuários de entrada com eficiência.
Quando um usuário envia uma entrada de texto, o TorchServe processa a solicitação, chama o modelo e renderiza a saída como fala sintética de alta qualidade.
Para segmentos de texto em fala, cada documento pode conter vários blocos, e cada bloco é composto de segmentos. Por exemplo:
Document (chapter)
└── Block (paragraph)
└── Segment (sentence)
Essa arquitetura suporta os seguintes componentes:
- Região da OCI
Uma região do OCI é uma área geográfica localizada que contém um ou mais data centers, hospedando domínios de disponibilidade. Regiões são independentes de outras regiões, e grandes distâncias podem separá-las (entre países ou mesmo continentes).
- Rede e sub-rede virtual na nuvem da OCI
VCN (rede virtual na nuvem) é uma rede personalizável definida por software que você configura em uma região do OCI. Assim como as redes tradicionais do data center, as VCNs dão a você controle sobre seu ambiente de rede. Uma VCN pode ter vários blocos de CIDR (Classless Inter-domain Routing) não sobrepostos que você pode alterar após criar a VCN. Você pode segmentar uma VCN em sub-redes, com escopo definido para uma região ou para um domínio de disponibilidade. Cada sub-rede consiste em um intervalo contíguo de endereços que não se sobrepõem a outras sub-redes da VCN. Você pode alterar o tamanho de uma sub-rede após a criação. Uma sub-rede pode ser pública ou privada.
- OCI Registry
O Oracle Cloud Infrastructure Registry é um serviço gerenciado pelo sistema Oracle que permite simplificar seu workflow de desenvolvimento para produção. O Registry facilita o armazenamento, o compartilhamento e o gerenciamento de artefatos do desenvolvimento, como imagens Docker.
- OCI Object Storage
O OCI Object Storage oferece acesso a grandes quantidades de dados estruturados e não estruturados de qualquer tipo de conteúdo, incluindo backups de banco de dados, dados analíticos e conteúdo avançado como imagens e vídeos. Você pode armazenar dados com segurança diretamente de aplicativos ou de dentro da plataforma de nuvem. Você pode dimensionar o armazenamento sem sofrer qualquer degradação no desempenho ou na confiabilidade de serviço.
Use armazenamento padrão para armazenamento "quente" que você precisa acessar com rapidez, rapidez e frequência. Use armazenamento de arquivo compactado para armazenamento "frio" que você retém por longos períodos de tempo e acesso raro.
- OCI File Storage
O Oracle Cloud Infrastructure File Storage fornece um sistema de arquivos da rede durável, escalável, seguro e de nível empresarial. Você pode estabelecer conexão com o OCI File Storage de qualquer instância bare metal, de máquina virtual ou de contêiner em uma VCN. Você também pode acessar o OCI File Storage de fora da VCN usando o Oracle Cloud Infrastructure FastConnect e a IPSec VPN.
- Volumes em Blocos do OCI
Com o Oracle Cloud Infrastructure Block Volumes, você pode criar, anexar, conectar e mover volumes de armazenamento e alterar o desempenho do volume para atender aos seus requisitos de armazenamento, desempenho e aplicativo. Depois de anexar e conectar um volume a uma instância, você pode usar o volume como disco rígido comum. Você também pode desconectar um volume e anexá-lo a outra instância sem perder dados.
- Balanceador de carga
O Oracle Cloud Infrastructure Load Balancing fornece distribuição automatizada de tráfego de um único ponto de entrada para vários servidores.
- Mecanismo do Kubernetes do OCI
O Oracle Cloud Infrastructure Kubernetes Engine (OCI Kubernetes Engine ou OKE) é um serviço totalmente gerenciado, escalável e altamente disponível que você pode usar para implantar seus aplicativos conteinerizados na nuvem. Você especifica os recursos de computação necessários aos seus aplicativos e o OKE os provisiona no OCI em uma tenancy existente. O OKE usa o Kubernetes para automatizar a implantação, o dimensionamento e o gerenciamento de aplicativos em contêineres em clusters de hosts.
- Gateway de serviço
Um gateway de serviço fornece acesso de uma VCN a outros serviços, como o Oracle Cloud Infrastructure Object Storage. O tráfego da VCN para o serviço Oracle atravessa a malha de rede Oracle e não atravessa a internet.
- Gateway de internet
Um gateway de internet permite o tráfego entre as sub-redes públicas em uma VCN e a internet pública.
- Registro em Log do OCIO Oracle Cloud Infrastructure Logging é um serviço altamente escalável e totalmente gerenciado que fornece acesso aos seguintes tipos de logs de seus recursos na nuvem:
- Logs de auditoria: Logs relacionados a eventos produzidos pelo OCI Audit.
- Logs de serviço: Logs publicados por serviços individuais, como OCI API Gateway, OCI Events, OCI Functions, OCI Load Balancing, OCI Object Storage e logs de fluxo da VCN.
- Logs personalizados: Logs que contêm informações de diagnóstico dos aplicativos personalizados, de outros provedores de nuvem ou de um ambiente on-premises.
- Monitoramento do OCI
O Oracle Cloud Infrastructure Monitoring monitora ativa e passivamente seus recursos de nuvem e usa alarmes para notificá-lo quando as métricas atendem aos acionadores especificados.
- Política
Uma política do Oracle Cloud Infrastructure Identity and Access Management especifica quem pode acessar quais recursos e como. O acesso é concedido no nível do grupo e do compartimento. Significa que você pode gravar uma política que conceda a um grupo um tipo específico de acesso em um compartimento específico ou na tenancy.
- OCI Vault
O Oracle Cloud Infrastructure Vault permite criar e gerenciar centralmente as chaves de criptografia que protegem seus dados e as credenciais secretas usadas para proteger o acesso aos seus recursos na nuvem. O gerenciamento de chaves padrão são chaves gerenciadas pela Oracle. Você também pode usar chaves gerenciadas pelo cliente que usam o OCI Vault. O OCI Vault oferece um conjunto avançado de APIs REST para gerenciar vaults e chaves.
- Hugging Face
O Hugging Face é uma plataforma colaborativa e um hub para machine learning que fornece modelos de IA pré-treinados, ferramentas de desenvolvimento e infraestrutura de hospedagem para aplicações de IA, tornando o machine learning avançado acessível a desenvolvedores em todo o mundo.
Sobre o Workflow de Design da Solução
Esta solução de geração de voz implementa o seguinte fluxo de trabalho de design.
- O usuário inicia uma conversão de projeto.
- O aplicativo adiciona uma mensagem à fila RabbitMQ para cada tarefa de conversão dentro do projeto.
- Cada colaborador recupera uma mensagem da fila.
- O colaborador processa a mensagem e envia uma solicitação para TorchServe.
- TorchServe executa a inferência e retorna os resultados para o colaborador.
- O colaborador processa os resultados e coloca uma mensagem de volta na fila.
- O aplicativo recupera a mensagem de resultados da fila e a armazena no banco de dados.
- O usuário é notificado dos resultados na IU.
Observação:
Para modelos leves, um trabalhador envia a solicitação de inferência para nós da CPU.