top of page

AWS Ray Serve Deep Learning Containers Assumem Onde o Suporte ao TorchServe Termina

há 2 horas
14 min de leitura

A AWS publicou um caminho de migração para uma única GPU usando AWS Ray Serve Deep Learning Containers, enquanto o TorchServe entra em uma suspensão de manutenção por tempo indeterminado. A mudança é relevante porque os usuários do TorchServe deixam de contar com um framework de serving mantido ativamente sob seus modelos PyTorch em produção. Em seu lugar, a AWS oferece uma pilha de contêineres testada, mas as equipes ainda precisam reescrever suas aplicações de serving e operar a infraestrutura ao redor delas.

O novo guia de migração implanta o modelo de visão e linguagem Qwen3-VL-2B no Amazon Elastic Kubernetes Service, ou Amazon EKS. Ele é executado dentro de um pod em uma instância g5.xlarge, com uma GPU NVIDIA A10G e 24 GB de memória de GPU. O exemplo expõe o modelo por meio de um endpoint HTTP na porta 8000.

Essa implantação modesta revela um conflito maior. O TorchServe antes reunia arquivamento de modelos, handlers, configuração e serving em um fluxo de trabalho focado em PyTorch. AWS Ray Serve Deep Learning Containers substitui esse framework por uma imagem mantida, código de aplicação do Ray Serve e recursos padrão do Kubernetes. A responsabilidade operacional muda de forma, em vez de desaparecer.

AWS Transforma uma Lacuna de Suporte do TorchServe em um Caminho de Migração por Contêiner

A AWS responde à suspensão de manutenção do TorchServe com uma pilha de inferência testada, não com um substituto direto.

A documentação oficial do TorchServe agora exibe um aviso de manutenção limitada. Ele informa que o projeto não é mais mantido ativamente. As versões existentes continuam disponíveis, mas não há atualizações, correções de bugs, recursos ou patches de segurança planejados.

Esse aviso altera o cálculo de risco para usuários em produção. Uma aplicação estável pode continuar funcionando em uma versão existente do TorchServe. No entanto, cada novo requisito de framework, sistema operacional, CUDA ou segurança cria outra decisão de compatibilidade para o responsável pela aplicação.

A segurança é a parte mais difícil de adiar. O aviso do TorchServe alerta explicitamente que vulnerabilidades podem não ser corrigidas. As organizações podem isolar implantações e corrigir as camadas ao redor, mas não podem depender de futuras correções upstream para o framework de serving.

A AWS posiciona seu Ray Serve Deep Learning Container, normalmente chamado de DLC, como uma base com suporte para essas cargas de trabalho. Um DLC é uma imagem de contêiner com um framework selecionado e dependências relacionadas instaladas e testadas em conjunto. A AWS publica imagens Ray Serve separadas para Amazon EC2 e EKS, bem como para Amazon SageMaker.

A imagem de GPU começa com uma base NVIDIA Amazon Linux 2023. Essa base inclui o sistema operacional e as bibliotecas de runtime CUDA. A AWS então adiciona PyTorch, Ray Serve, FastAPI, Uvicorn, Hugging Face Transformers e utilitários para processamento de visão, áudio e multimodal.

A imagem também inclui uma compilação do FFmpeg com aceleração de hardware NVIDIA para pré-processamento de vídeo. Esse detalhe é importante para equipes que atendem modelos que combinam frames de vídeo, imagens, áudio e texto. Essas cargas de trabalho frequentemente exigem mais do que um framework de modelos e um servidor HTTP.

A AWS afirma validar os componentes incluídos em conjunto antes de cada lançamento de imagem. Patches de segurança são aplicados quando a imagem é criada. Essa abordagem reduz a divergência de versões entre o runtime CUDA, PyTorch, Ray Serve e a camada de serving web.

Essa promessa tem um limite definido. A AWS dá suporte e testa a combinação de contêineres, enquanto os usuários permanecem responsáveis pelo código de seus modelos, configuração de cluster, controles de rede, políticas de escalonamento e processo de atualização. Uma imagem mantida reduz a superfície que as equipes precisam montar por conta própria.

O exemplo também evita apresentar o Ray Serve como um modo de compatibilidade transparente com o TorchServe. Engenheiros escrevem uma nova classe de serving em Python e a implantam por meio do Ray Serve. Eles não importam um arquivo do TorchServe nem reutilizam toda a sua interface de gerenciamento.

Essa distinção mantém o anúncio realista. AWS Ray Serve Deep Learning Containers oferece um destino com suporte para cargas de trabalho afetadas. Ele não torna uma migração de produção automática nem elimina a necessidade de testes de implantação.

Por Que as Equipes do TorchServe Agora Assumem Mais da Pilha de GPU

O fim da manutenção ativa do TorchServe transfere a incerteza upstream diretamente para as equipes de engenharia de plataforma e machine learning.

Um serviço de inferência em GPU depende de várias camadas que evoluem de forma independente. Entre elas estão o sistema operacional, runtime NVIDIA, bibliotecas CUDA, PyTorch, dependências do modelo, servidor de requisições e ambiente de orquestração. Falhas de compatibilidade podem surgir mesmo quando o código do modelo não muda.

O TorchServe antes oferecia às equipes de PyTorch um caminho reconhecível de empacotamento e serving. Os desenvolvedores podiam criar um arquivo de modelo com torch-model-archiver, fornecer um handler personalizado e controlar o comportamento por meio de config.properties. Esse fluxo de trabalho trazia sua própria complexidade, mas também fornecia uma convenção operacional compartilhada.

A suspensão de manutenção elimina a confiança de que essa convenção acompanhará os softwares adjacentes. As equipes podem fixar todas as dependências, mas isso apenas adia a próxima decisão. Uma atualização de sistema operacional, troca de GPU ou atualização de framework acabará exigindo validação em toda a pilha.

Continuar executando o TorchServe permanece possível. O projeto não desapareceu, e suas versões existentes ainda funcionam em muitas implantações. A questão é que permanecer nele se torna uma escolha deliberada de propriedade interna, em vez de um padrão com suporte.

As organizações que adotarem esse caminho precisam de um processo de segurança claro. Elas devem monitorar dependências relevantes, avaliar interfaces expostas, reconstruir imagens e testar correções sem esperar por novas versões do TorchServe. Também precisam de um plano para vulnerabilidades dentro do próprio TorchServe.

A alternativa é a migração, que cria trabalho de engenharia imediato. Handlers e arquivos de modelos do TorchServe não se tornam implantações do Ray Serve automaticamente. Análise de requisições, comportamento de integridade, métricas, carregamento de modelos, batching e tratamento de erros exigem comparação.

O Ray Serve muda o principal modelo de programação. Um desenvolvedor marca uma classe Python com @serve.deployment, inicializa o modelo dentro dessa classe e trata requisições HTTP recebidas por meio de __call__. Chamar .bind() registra a aplicação para o Ray Serve.

Esse modelo pode parecer mais simples do que a estrutura de arquivos e handlers do TorchServe. Ele também oferece aos desenvolvedores composição Python comum e acesso direto às declarações de recursos do Ray. Por exemplo, a implantação da AWS solicita uma GPU por meio de ray_actor_options={"num_gpus": 1}.

Ainda assim, código de aplicação mais simples não significa operações de produção mais simples. As equipes continuam precisando de verificações de prontidão, autenticação, gerenciamento de tráfego, telemetria, controles de implantação e procedimentos de rollback. Elas precisam decidir como os pesos do modelo entram no ambiente e como as réplicas se comportam durante atualizações.

O contêiner da AWS desloca várias escolhas de compatibilidade para upstream. A AWS seleciona e testa o sistema operacional base, runtime CUDA, framework e dependências de serving. Isso pode reduzir o trabalho recorrente de integração necessário para uma imagem montada internamente.

Também cria uma nova dependência dos lançamentos de imagens da AWS. As equipes de plataforma devem acompanhar tags de imagem, revisar mudanças, verificar suas camadas adicionadas e qualificar novas versões em seus próprios ambientes. Uma base testada é uma evidência útil, mas não é uma certificação no nível da aplicação.

Equipes com requisitos de conformidade precisam de ainda mais validação. Elas devem confirmar que o conteúdo da imagem atende às políticas internas e que as atualizações chegam dentro dos prazos exigidos. Também precisam de listas de materiais de software e registros de gerenciamento de vulnerabilidades para sua imagem completa.

A pressão, portanto, recai mais fortemente sobre equipes com ambientes TorchServe maduros. Elas acumularam handlers, etapas de empacotamento, dashboards e conhecimento operacional em torno de um framework. Migrar para Ray Serve significa investir essa expertise enquanto o sistema antigo ainda pode parecer estável.

Implantações menores enfrentam um cálculo diferente. Se um serviço tem um modelo e tráfego previsível, uma pilha completa de Ray e Kubernetes pode introduzir complexidade desnecessária. O valor depende de a organização já operar EKS e esperar necessidades mais amplas de escalonamento.

Como AWS Ray Serve Deep Learning Containers Muda o Modelo de Serving

O mecanismo central é a pré-integração: a AWS fixa a pilha base enquanto o Ray Serve substitui o empacotamento e o ciclo de vida de requisições do TorchServe.

O exemplo da AWS atende Qwen/Qwen3-VL-2B-Instruct, um modelo de visão e linguagem que processa imagens e texto. Ele aceita uma URL de imagem e um prompt, depois retorna uma descrição ou resposta gerada. O modelo se encaixa no exemplo porque exercita tanto a inferência em GPU quanto o pré-processamento multimodal.

A AWS carrega o modelo por meio de Hugging Face Transformers. Um AutoProcessor prepara a entrada multimodal, enquanto AutoModelForImageTextToText carrega o modelo com pesos de meia precisão. A aplicação então move esses pesos para o dispositivo CUDA.

A classe de serving recebe a requisição HTTP diretamente. Ela extrai a URL da imagem e o prompt do JSON, prepara as entradas do modelo, executa a geração e retorna o resultado. FastAPI e Uvicorn fornecem a base de serving web incluída no DLC.

Esse design remove três artefatos conhecidos do TorchServe. Não há arquivo de modelo do TorchServe, hierarquia de handlers do TorchServe ou arquivo config.properties. O contrato de serving reside na aplicação Ray Serve e em sua configuração de implantação.

A AWS injeta essa aplicação Python por meio de um ConfigMap do Kubernetes. Um ConfigMap armazena configurações ou arquivos não secretos que um pod pode montar em runtime. Isso permite que engenheiros alterem o código de demonstração sem reconstruir a imagem do contêiner.

Essa flexibilidade é útil durante a avaliação. Ela separa a lógica de serving da imagem base testada e encurta o ciclo de editar-implantar-testar. No entanto, equipes de produção devem decidir se uma configuração mutável se encaixa em seus requisitos de lançamento e auditoria.

Algumas organizações criarão a aplicação em uma imagem derivada. Essa abordagem produz um artefato imutável contendo tanto a base da AWS quanto o código de serving aprovado. Ela pode melhorar a reprodutibilidade, embora cada mudança na aplicação exija uma nova compilação.

A implantação reserva uma GPU com o recurso Kubernetes nvidia.com/gpu. Ela também seleciona o nó de GPU usando o rótulo role=gpu-worker. Essas configurações ajudam o Kubernetes a posicionar o pod de inferência na instância pretendida.

O Ray recebe a alocação de GPU por meio do ambiente do contêiner e da declaração da aplicação. A classe do modelo solicita uma GPU, correspondendo à única GPU exposta ao pod. Em configurações maiores, o Ray pode agendar implantações em um conjunto de recursos declarados.

A AWS fornece três scripts em torno do exemplo. O primeiro cria o cluster EKS com eksctl, configuração de rede, um provedor OpenID Connect e add-ons principais. O segundo adiciona o grupo de nós de GPU gerenciado.

O terceiro script aplica o ConfigMap e a implantação do Kubernetes. Ele agenda o pod Ray Serve no nó de GPU e inicia o serviço na porta 8000. O repositório de exemplo que o acompanha disponibiliza esses artefatos de implantação para inspeção.

Após a implantação, os usuários podem inspecionar o pod e verificar sua alocação de GPU. Em seguida, podem encaminhar a porta local 8000 para a implantação em execução e enviar uma solicitação HTTP contendo uma URL de imagem e um prompt. Executar nvidia-smi dentro do pod confirma o uso da GPU.

A sequência de inicialização revela um detalhe operacional que projetos de produção precisam considerar. A AWS observa que o Kubernetes pode reportar o pod como pronto antes que o Ray Serve responda às solicitações. O modelo ainda pode estar carregando depois que o pod alcança esse estado.

Uma primeira solicitação recusada pode ser aceitável em uma demonstração, mas é perigosa diante de tráfego de produção. As equipes devem conectar a prontidão à disponibilidade da aplicação, não apenas ao status do contêiner. A sonda deve continuar sem sucesso até que o modelo e o endpoint possam atender solicitações reais.

Os downloads de modelos acrescentam outra variável. A demonstração baixa o modelo quando a aplicação é inicializada, o que depende de disponibilidade externa e da capacidade da rede. As equipes de produção podem usar armazenamento local, armazenamento de objetos ou uma camada de imagem para controlar o comportamento de inicialização.

Os segredos também exigem tratamento separado. Um ConfigMap não deve conter tokens de acesso ou credenciais privadas. Kubernetes Secrets, EKS Pod Identity ou outro sistema de segredos aprovado devem fornecer qualquer autenticação necessária.

Essas decisões mostram o que o DLC realmente simplifica. Ele padroniza a base de software e fornece um ambiente de execução testado. Ele não decide como uma organização lida com modelos, segredos, artefatos de lançamento ou exposição de serviços.

A Demonstração de GPU Única É um Ponto de Partida, Não um Veredito de Produção

Um pod em uma GPU comprova o caminho de implantação, mas não estabelece confiabilidade, eficiência ou escala em produção.

A AWS deliberadamente mantém a arquitetura de referência pequena. O cluster EKS tem um nó de GPU gerenciado baseado em uma instância g5.xlarge. Um pod consome a GPU NVIDIA A10G do nó, e um processo Ray Serve expõe o endpoint do modelo.

Esse arranjo é útil para testes de migração. Uma equipe pode traduzir um handler, verificar o comportamento das respostas, comparar saídas e confirmar o acesso à GPU sem antes projetar um cluster distribuído. Ele também torna as falhas mais fáceis de isolar.

A mesma simplicidade limita as conclusões que os leitores devem tirar. O exemplo não mostra réplicas redundantes, paralelismo de modelo em vários nós, escalonamento automático orientado por tráfego ou recuperação de falhas entre zonas de disponibilidade. Ele também não publica resultados comparativos de latência ou throughput.

Sem essas medições, a publicação não pode estabelecer que o Ray Serve superará uma implantação específica do TorchServe. O desempenho depende do modelo, do formato de entrada, da concorrência, do batching, da GPU, do caminho de pré-processamento e das configurações de geração. As equipes de migração precisam de seus próprios testes representativos.

A arquitetura também contém um único ponto de falha do serviço. Se o pod reiniciar ou o nó de GPU ficar indisponível, o endpoint deixa de responder até que o Kubernetes o restaure. Um serviço de produção normalmente precisa de réplicas adicionais ou de um objetivo de recuperação definido.

Escalar o projeto introduz o KubeRay, o operador do Kubernetes recomendado para gerenciar clusters Ray. A orientação de implantação no Kubernetes do Ray descreve um recurso personalizado RayService que combina uma configuração de cluster Ray com uma aplicação Serve.

O KubeRay pode gerenciar pods de head e worker, atualizações de aplicações e o ciclo de vida do cluster. Ele também oferece suporte a recursos computacionais heterogêneos e escalonamento automático. Esses recursos tornam o Ray Serve mais relevante para pipelines com múltiplos modelos ou serviços que precisam expandir entre nós.

Eles também acrescentam conceitos operacionais. As equipes precisam entender o head do Ray, workers, o controlador Serve, declarações de recursos, recursos personalizados do Kubernetes e múltiplas camadas de logs. A solução de problemas pode abranger tanto os planos de controle do Kubernetes quanto do Ray.

Essa troca importa ao comparar alternativas. Uma equipe que atende um único modelo transformer pode avaliar um endpoint vLLM independente. Uma organização com múltiplos formatos de modelo pode considerar o NVIDIA Triton Inference Server. Equipes centradas em Kubernetes podem avaliar o KServe para recursos de inferência padronizados.

Essas opções resolvem problemas sobrepostos, mas suas prioridades diferem. O Ray Serve enfatiza composição de aplicações Python, execução distribuída, réplicas, roteamento e escalonamento. O TorchServe concentrou sua experiência no empacotamento e no serviço de modelos PyTorch.

A própria AWS documenta outros caminhos de serving. Sua atual orientação de inferência no EKS usa um Deep Learning Container vLLM para uma implantação de LLM. Isso confirma que o DLC do Ray Serve é um padrão compatível, e não uma substituição universal.

A escolha certa depende da carga de trabalho. Um serviço de visão e linguagem com pré-processamento personalizado pode se beneficiar da composição nativa em Python do Ray Serve. Um endpoint padronizado de geração de texto pode favorecer um mecanismo otimizado especificamente para modelos de linguagem de grande porte.

A avaliação da migração deve começar pela paridade de interface. As equipes precisam comparar esquemas de solicitação, respostas de erro, endpoints de saúde, autenticação e timeouts de clientes. Em seguida, devem validar as saídas do modelo em relação a um conjunto de testes controlado.

Os testes de carga devem vir depois. Os engenheiros devem medir o tempo de inicialização a frio, o tempo até a primeira resposta, a latência em estado estável, o throughput, a memória da GPU e o comportamento sob picos. Os testes devem incluir o mesmo pré-processamento e a mesma configuração de geração usados em produção.

Os testes de falha são igualmente importantes. As equipes devem encerrar o pod, drenar o nó, interromper o acesso ao modelo e implantar uma revisão inválida da aplicação. Esses testes revelam se a substituição atende às expectativas de recuperação e reversão.

A observabilidade precisa de um mapeamento direto. As métricas e os dashboards existentes do TorchServe não serão transferidos sem mudanças. Os operadores devem decidir quais métricas do Ray, da aplicação, do Kubernetes e da GPU definem saúde, saturação e degradação percebida pelo usuário.

Por fim, as equipes precisam de um experimento de atualização. Elas devem migrar entre duas versões do DLC em um ambiente de staging e registrar as mudanças necessárias em código, configuração e modelo. O suporte tem valor limitado se atualizações rotineiras continuarem arriscadas demais para implantar.

O Que os Usuários do TorchServe Devem Acompanhar a Seguir

O próximo teste é saber se a AWS consegue transformar um exemplo claro de migração em um caminho confiável de lançamento e escalonamento.

O primeiro sinal é a cadência de lançamentos do DLC do Ray Serve. As equipes devem observar tags de imagem documentadas, versões de frameworks, combinações de CUDA, atualizações de segurança e políticas de descontinuação. Lançamentos previsíveis fortaleceriam o argumento da AWS de que a imagem reduz o trabalho de manutenção de longo prazo.

As notas de lançamento importam tanto quanto a frequência dos lançamentos. Os operadores precisam saber quais dependências mudaram e se uma atualização inclui comportamentos incompatíveis. Eles também precisam de sobreposição suficiente entre tags compatíveis para testar antes de adotar uma nova imagem.

O segundo sinal é a orientação de produção para prontidão, carregamento de modelos e recuperação de falhas. O exemplo atual reconhece que o pod pode parecer pronto antes que o Ray Serve responda. Uma referência mais robusta deve alinhar a prontidão do Kubernetes a um modelo carregado e a um endpoint responsivo.

Essa orientação também deve abordar o armazenamento do modelo e o comportamento de inicialização. Baixar pesos durante a inicialização funciona para uma pequena demonstração. Implantações maiores precisam de carregamento repetível, credenciais controladas, armazenamento adequado e sondas de inicialização dimensionadas para o aquecimento real do modelo.

O terceiro sinal é um caminho compatível de uma GPU para múltiplas réplicas ou nós. A AWS direciona os leitores ao KubeRay para serving distribuído e escalonamento horizontal. Exemplos futuros devem mostrar como o DLC se comporta em uma implantação RayService.

Uma referência com múltiplas réplicas deve documentar roteamento de tráfego, atualizações graduais, sinais de escalonamento automático e recuperação quando um worker de GPU desaparece. Ela também deve separar cargas de trabalho do head do Ray dos workers de inferência em GPU, preservando a capacidade cara dos aceleradores para os modelos.

As equipes não devem esperar por todas as referências antes de iniciar uma avaliação. Elas podem inventariar agora os serviços TorchServe e classificá-los por exposição, importância para o negócio e dificuldade de migração. Endpoints voltados para a internet merecem atenção mais cedo do que sistemas isolados de processamento em lote.

Para cada serviço, os engenheiros podem listar os recursos do TorchServe usados atualmente. Isso inclui arquivos de modelo, handlers personalizados, workflows, batching, métricas, APIs de gerenciamento e arquivos de configuração. O inventário se torna uma lista de verificação concreta para a migração ao Ray Serve.

Uma pequena prova de conceito deve preservar o contrato existente de solicitação e resposta. Manter os clientes inalterados isola a migração da camada de serving de uma reescrita mais ampla da aplicação. Isso também permite uma comparação controlada de tráfego entre os endpoints antigo e novo.

A avaliação deve usar os mesmos pesos de modelo e entradas representativas. As equipes podem comparar consistência de saída, latência, throughput, utilização da GPU e comportamento de erros. Elas também devem registrar quanto tempo cada serviço leva para se recuperar após uma reinicialização.

As equipes de segurança devem revisar a imagem resultante como um artefato completo. A base da AWS pode receber dependências testadas e correções no momento da compilação, mas pacotes adicionados localmente podem reintroduzir vulnerabilidades. A varredura deve continuar após a personalização.

Os responsáveis pela plataforma também devem definir a propriedade antes da migração. A AWS mantém o DLC, o Ray mantém o Ray Serve, e a organização é responsável por sua aplicação e implantação no EKS. Limites claros evitam que um componente com suporte seja confundido com um serviço completo de ponta a ponta com suporte.

A lição mais ampla não é que todos os usuários do TorchServe devem adotar o Ray Serve. É que uma camada de serving sem manutenção agora exige uma decisão explícita. Permanecer como está, migrar para o Ray Serve ou escolher outro servidor cria, em cada caso, um modelo de suporte diferente.

Os Deep Learning Containers do AWS Ray Serve tornam uma dessas escolhas mais concreta. O novo exemplo fornece uma base testada, um modelo de programação direto e uma implantação EKS funcional de GPU única. Ele também torna visíveis as responsabilidades restantes.

Comece com um serviço TorchServe representativo e teste a migração sob padrões reais de tráfego. Se o DLC reduzir o trabalho com dependências sem enfraquecer a disponibilidade, ele merece uma adoção mais ampla. Se a camada operacional do Ray superar esse benefício, o teste revelará isso cedo.

 
 

Comece grátis

Um assistente de IA local-first com gestão de conhecimento pessoal

Para oferecer uma experiência de IA melhor,

atualmente, o remio é compatível apenas com Windows 10+ (x64) e M-Chip Macs.

Seu parceiro de IA no trabalho
Faça mais com o remio

Planeje. Crie. Entregue.
Tudo em um só lugar.

bottom of page