Controle granular sobre o agendamento de cargas de trabalho
A AWS anunciou um novo recurso no Amazon SageMaker HyperPod que oferece suporte a labels (etiquetas) e taints (repugnâncias) personalizados do Kubernetes. Essa funcionalidade permite aos clientes exercer controle preciso sobre o posicionamento de pods e garantir integração tranquila com infraestruturas Kubernetes já existentes.
Para equipes que implantam cargas de trabalho de inteligência artificial em clusters HyperPod orquestrados com EKS (Elastic Kubernetes Service), esse é um recurso particularmente valioso. A capacidade de controlar exatamente onde cada pod é executado ajuda a evitar que recursos caros, como GPUs, sejam consumidos por pods de sistema ou cargas de trabalho não relacionadas a inteligência artificial, enquanto mantém compatibilidade com plugins de dispositivo personalizados, como o EFA (Elastic Fabric Adapter) e operadores NVIDIA GPU.
Eliminando a sobrecarga operacional
O desafio anterior
Antes deste anúncio, clientes precisavam aplicar manualmente labels e taints usando kubectl, tendo que reaplicá-los após cada substituição de nó, operação de escalonamento ou patch do sistema. Esse processo manual gerava sobrecarga operacional significativa e aumentava o risco de inconsistências.
A solução implementada
O novo recurso permite configurar labels e taints no nível do grupo de instâncias através das APIs CreateCluster e UpdateCluster, oferecendo uma abordagem gerenciada para definir e manter políticas de agendamento ao longo de todo o ciclo de vida dos nós.
Capacidades técnicas
Utilizando o novo parâmetro KubernetesConfig, é possível especificar até 50 labels e 50 taints por grupo de instâncias. As labels habilitam organização de recursos e direcionamento de pods através de seletores de nó, enquanto taints repelem pods que não possuem tolerâncias correspondentes, protegendo nós especializados.
Casos de uso práticos
Um exemplo concreto é aplicar taints do tipo NoSchedule em grupos de instâncias com GPUs, garantindo que apenas trabalhos de treinamento de inteligência artificial com tolerâncias explícitas consumam esses recursos de alto custo. Outra aplicação é adicionar labels personalizados que permitam aos pods de plugins de dispositivo agendar corretamente no ambiente.
Operação simplificada
O HyperPod aplica automaticamente essas configurações durante a criação de nós e as mantém durante substituição, escalonamento e operações de patch. Isso elimina a necessidade de intervenção manual e reduz significativamente a sobrecarga operacional que as equipes enfrentavam anteriormente.
O recurso está disponível em todas as regiões da AWS onde o Amazon SageMaker HyperPod é oferecido. Para aprofundar seus conhecimentos sobre labels e taints personalizados, consulte a documentação técnica completa.
A AWS apresentou um conjunto de diretrizes destinadas às varreduras de rede realizadas em ambientes de clientes. O objetivo? Permitir que ferramentas conformes coletem dados mais precisos, reduzam relatos de abuso e contribuam para elevar o nível de segurança na internet como um todo.
Varreduras de rede são práticas comuns em infraestruturas modernas de TI. No entanto, essa prática enfrenta um dilema fundamental: ela pode servir tanto a propósitos legítimos quanto a atividades maliciosas. Do lado legítimo, equipes de segurança, administradores de sistemas e pesquisadores autorizados utilizam varreduras para manter inventários precisos de ativos, validar configurações de segurança e identificar vulnerabilidades ou versões desatualizadas de software que demandam atenção imediata.
Já do lado malicioso, atores de ameaça realizam varreduras para enumerar sistemas, descobrir fraquezas e coletar inteligência para futuros ataques. Distinguir entre essas duas situações é um desafio constante para operações de segurança.
Por Que Essas Diretrizes Importam
O Crescimento Exponencial de Vulnerabilidades
O cenário atual apresenta pressões significativas. De acordo com o banco de dados de vulnerabilidades da NIST (Banco Nacional de Dados de Vulnerabilidades), o número de vulnerabilidades conhecidas cresce a uma taxa de 21% ao ano nos últimos dez anos. Quando uma vulnerabilidade é descoberta por meio de varredura, a intenção do scanner torna-se crítica. Se um ator de ameaça explorar essa vulnerabilidade antes que seja corrigida, ele poderá obter acesso não autorizado aos sistemas organizacionais.
As organizações precisam gerenciar efetivamente suas vulnerabilidades de software para se protegerem contra ransomware, roubo de dados, problemas operacionais e penalidades regulatórias. Porém, isso só é possível quando os dados de segurança coletados por varreduras permanecem protegidos.
Os Múltiplos Interessados nos Dados de Segurança
Diferentes grupos possuem interesses legítimos mas distintos em relação aos dados de segurança coletados:
Organizações querem entender seus ativos e corrigir vulnerabilidades rapidamente para proteger sua infraestrutura
Auditores de compliance buscam evidências de controles robustos na gestão de infraestrutura
Provedores de seguros cibernéticos precisam avaliar o risco da postura de segurança organizacional
Investidores em avaliação de diligência querem compreender o perfil de risco cibernético de uma organização
Pesquisadores de segurança desejam identificar riscos e notificar organizações para que ajam
Atores de ameaça buscam explorar vulnerabilidades não corrigidas e fraquezas para obter acesso não autorizado
Esse ecossistema complexo de interesses concorrentes exige que dados sensíveis de segurança sejam mantidos com níveis diferentes de acesso. Se esses dados caírem nas mãos erradas, as consequências podem ser severas: comprometimento de sistemas, ransomware, negação de serviço e custos significativos para os proprietários dos sistemas.
Considerando o crescimento exponencial de data centers e cargas de trabalho de software conectadas que fornecem serviços críticos em setores como energia, manufatura, saúde, governo, educação, finanças e transportes, o impacto de dados de segurança em mãos erradas pode ter consequências significativas no mundo real.
A Falta de um Padrão Unificado
Atualmente, não existe um padrão único para identificação de scanners de rede na internet. Proprietários de sistemas geralmente não sabem quem está realizando varreduras em suas infraestruturas. Cada proprietário é independentemente responsável por gerenciar a identificação dessas diferentes partes. Scanners podem usar métodos variados para se identificar — como busca reversa de DNS, agentes de usuário personalizados ou faixas de rede dedicadas. Já atores maliciosos podem tentar evitar identificação completamente.
Esse grau de variação na identidade torna extremamente difícil para os proprietários de sistemas compreender a motivação por trás das varreduras que recebem. É nesse contexto que a AWS apresenta suas diretrizes comportamentais para varreduras de rede, buscando proteger redes e clientes.
Os Benefícios das Diretrizes
Quando scanners em conformidade com essas diretrizes realizam varreduras, eles coletam dados mais confiáveis da infraestrutura AWS. Organizações que executam workloads na AWS recebem um maior grau de confiança em sua gestão de riscos. Quando a varredura segue essas diretrizes, proprietários de sistemas conseguem fortalecer suas defesas e melhorar visibilidade em todo seu ecossistema digital.
Ferramentas como o Amazon Inspector podem detectar vulnerabilidades de software e priorizar esforços de correção enquanto aderem a essas diretrizes. Parceiros do AWS Marketplace utilizam essas orientações para coletar sinais de segurança em toda a internet e ajudar organizações a compreender e gerenciar riscos cibernéticos. Como afirmou um especialista do Bitsight: “Quando organizações têm visibilidade clara orientada por dados sobre sua própria postura de segurança e a de terceiros, conseguem tomar decisões mais rápidas e inteligentes para reduzir riscos cibernéticos em todo o ecossistema.”
Reportando Atividades Abusivas
A segurança funciona melhor quando há colaboração. Clientes da AWS podem reportar varreduras abusivas através do Centro de Confiança e Segurança, selecionando o tipo de relatório como “Atividade de Rede > Varredura de Portas e Tentativas de Intrusão”. Cada relatório contribui para melhorar a proteção coletiva contra o uso malicioso de dados de segurança.
As Diretrizes de Conformidade
Para permitir que scanners legítimos se diferenciem claramente de atores de ameaça, a AWS oferece as seguintes orientações para varredura de workloads. Essas diretrizes complementam as políticas existentes sobre testes de penetração e relatório de vulnerabilidades. A AWS se reserva o direito de limitar ou bloquear tráfego que pareça não estar em conformidade com essas diretrizes.
1. Observacional
Um scanner em conformidade não realiza ações que tentem criar, modificar ou deletar recursos ou dados nos endpoints descobertos. Respeita a integridade dos sistemas-alvo. As varreduras não causam degradação na funcionalidade do sistema e não introduzem mudanças nas configurações.
Exemplos de varredura não-modificadora incluem:
Iniciar e completar um handshake TCP
Recuperar o banner de um serviço SSH
2. Identificável
Um scanner em conformidade oferece transparência ao publicar as fontes de sua atividade de varredura. Implementa um processo verificável para confirmar a autenticidade de atividades de varredura.
Exemplos de varredura identificável incluem:
Suportar buscas reversa de DNS para uma das zonas de DNS públicas de sua organização nos IPs de varredura
Publicar intervalos de IP de varredura, organizados por tipos de requisições (como verificação de existência de serviços, verificações de vulnerabilidades)
Se realizar varreduras HTTP, incluir conteúdo significativo em strings de agente de usuário (como nomes de suas zonas de DNS públicas, URL para opt-out)
3. Cooperativo
Um scanner em conformidade limita taxas de varredura para minimizar impacto nos sistemas-alvo. Oferece um mecanismo de opt-out para proprietários de recursos verificados que desejam solicitar cessação da atividade de varredura. Honra solicitações de opt-out dentro de um período de resposta razoável.
Exemplos de varredura cooperativa incluem:
Limitar varredura a uma transação de serviço por segundo por serviço de destino
Respeitar configurações de site conforme expressos em robots.txt, security.txt e outros padrões da indústria para expressar intenção do proprietário do site
4. Confidencial
Um scanner em conformidade mantém práticas seguras de infraestrutura e manipulação de dados, refletidas em certificações de padrão industrial como SOC2. Garante nenhum acesso não autenticado ou não autorizado aos dados coletados. Implementa processos de identificação e verificação de usuários.
O Caminho Adiante
À medida que mais scanners de rede adotam essas diretrizes, proprietários de sistemas se beneficiarão de riscos reduzidos em relação a confidencialidade, integridade e disponibilidade. Scanners legítimos enviarão um sinal claro de sua intenção e melhorarão a qualidade de visibilidade que conseguem obter. Com o estado em constante mudança do networking, espera-se que essas diretrizes evoluam acompanhando controles técnicos ao longo do tempo.
Transição do Amazon Lookout for Vision para SageMaker
Em outubro de 2024, a AWS anunciou a descontinuação do Amazon Lookout for Vision, com previsão de encerramento em 31 de outubro de 2025. Como parte de sua estratégia de transição, a empresa recomenda que clientes interessados em soluções de inteligência artificial e aprendizado de máquina para visão computacional utilizem as ferramentas do Amazon SageMaker AI.
A boa notícia é que a AWS disponibilizou no AWS Marketplace os modelos subjacentes que alimentavam o serviço descontinuado. Esses modelos podem ser ajustados usando o Amazon SageMaker para casos de uso específicos, oferecendo flexibilidade total de integração com infraestruturas existentes de hardware e software. Quando executados na nuvem, os custos envolvem apenas a infraestrutura necessária para treinamento ou inferência.
Fluxo end-to-end: da aquisição de imagens até a inferência em dispositivos edge — Fonte: Aws
Vantagens da Migração para SageMaker
A transição proporciona ganhos significativos em flexibilidade e controle. Com o SageMaker, é possível treinar modelos em instâncias maiores para reduzir o tempo de processamento. Além disso, usuários podem ajustar hiperparâmetros que antes não eram disponíveis no console do Lookout for Vision. Por exemplo, é possível desabilitar a cabeça do classificador binário em modelos de segmentação semântica, tornando a solução mais tolerante a variações de iluminação e fundo.
Outro destaque é o controle sobre o tempo máximo de treinamento, que no Lookout for Vision era limitado a 24 horas. Agora, organizações podem customizar esse parâmetro conforme suas necessidades.
Recursos e Modelos Disponíveis
A AWS coloca à disposição dois tipos principais de modelos:
Classificação binária: para categorizar imagens como normais ou anômalas
Segmentação semântica: para identificar regiões específicas com defeitos em uma imagem
Ambos podem ser treinados nas contas próprias da AWS para implantação na nuvem ou em dispositivos edge. O repositório GitHub do Amazon Lookout for Vision foi atualizado com um Jupyter Notebook que facilita o treinamento de datasets com esses dois tipos de modelos e seu empacotamento.
Para rotular dados além do conjunto amostral, é possível usar o Amazon SageMaker Ground Truth para crowdsourcing ou permitir que equipes privadas façam a anotação. Alternativas incluem soluções de parceiros como Edge Impulse, Roboflow e SuperbAI.
Pré-Requisitos
Antes de começar, certifique-se de ter em lugar:
Amazon SageMaker Studio ou Amazon SageMaker Unified Studio para desenvolvimento integrado
Função Controle de Identidade e Acesso (IAM) com permissões apropriadas, incluindo acesso ao Amazon S3, operações no SageMaker e subscrição ao AWS Marketplace
Conhecimento básico de criar instâncias Jupyter no SageMaker e executar notebooks
Configuração do Processo de Etiquetagem
O primeiro passo da jornada envolve preparar os dados para treinamento. A AWS oferece o Ground Truth, que possibilita criar equipes privadas de anotadores e organizar o trabalho de rotulação.
No console do SageMaker AI, navegue até Ground Truth e selecione a opção de criar uma equipe privada. Após definir nome e configurações iniciais, você pode convidar membros da sua equipe por e-mail, enviando automaticamente convites com credenciais de acesso.
Etiquetagem com SageMaker Ground Truth — Fonte: Aws
Preparação e Etiquetagem de Datasets
Uma vez que a equipe está pronta, o próximo passo é preparar o dataset. Faça upload das imagens para um bucket Amazon S3 e organize-as em uma estrutura única de diretório, combinando imagens normais e anômalas.
Para automatizar esse processo, você pode usar um script no AWS CloudShell:
#!/bin/bash
# Clone o repositório
git clone https://github.com/aws-samples/amazon-lookout-for-vision.git
cd amazon-lookout-for-vision/aliens-dataset
# Remove diretório anterior se existir
rm -rf all
# Cria novo diretório
mkdir -p all
# Copia imagens normais
cp normal/*.png all/
# Copia imagens anômalas com sufixo
cd "$(dirname "$0")/amazon-lookout-for-vision/aliens-dataset"
for file in anomaly/*.png; do
if [ -f "$file" ]; then
filename=$(basename "$file")
cp "$file" "all/${filename}.anomaly.png"
fi
done
# Verifica contagem
echo "Imagens normais: $(find normal -name "*.png" | wc -l)"
echo "Imagens anômalas: $(find anomaly -name "*.png" | wc -l)"
echo "Total no diretório all: $(find all -type f | wc -l)"
# Upload para S3
aws s3 cp all/ s3://<BUCKET_NAME>/aliens-dataset-all/ --recursive
# Limpeza
cd ../..
rm -rf amazon-lookout-for-vision
Alternativamente, com a CLI da AWS configurada, você pode usar comandos manuais. Depois de fazer upload, acesse o console do SageMaker, navigate para Ground Truth e crie um novo job de etiquetagem. Configure a localização dos dados no S3, escolha “Configuração Automática de Dados” e selecione “Imagem” como tipo de dados.
Para o tipo de tarefa, escolha “Classificação de Imagem (Rótulo Único)” para classificação binária ou “Segmentação Semântica” conforme sua necessidade. Crie dois rótulos: “normal” e “anomalia”. Uma vez que o job é iniciado, trabalhadores acesso o portal de etiquetagem e rotulam cada imagem conforme as instruções fornecidas.
Treinamento do Modelo
Após concluir a etiquetagem, use os dados rotulados para treinar o modelo de detecção de defeitos. Primeiro, subscrevam-se ao modelo no AWS Marketplace. Copie o ARN (Identificador de Recurso da Amazon) do modelo para referência posterior.
Em seguida, crie uma instância Jupyter do SageMaker. Para essa tarefa, uma instância do tipo m5.2xl é adequada, com volume de 128 GB (o padrão de 5 GB é insuficiente). GPU não é obrigatória na instância do notebook, pois o SageMaker ativa automaticamente instâncias habilitadas com GPU durante o treinamento.
Clone o repositório GitHub dentro da instância Jupyter e localize a pasta relevante. No notebook, defina o ARN do modelo que você subscreveu:
# TODO: altere para usar o algoritmo SageMaker subscrito
algorithm_name = "<Especificar nome do algoritmo após subscrição>"
# Inicializa a sessão SageMaker e obtém a função de execução
sagemaker_session = sagemaker.Session()
region = sagemaker_session.boto_region_name
role = get_execution_role()
# Nome do projeto para identificar no S3
project = "ComputerVisionDefectDetection"
O Futuro da IA em Tempo Real: Comunicação Bidirecional Contínua
Em 2025, a inteligência artificial generativa transcendeu a simples geração de texto. As aplicações modernas demandam muito mais do que respostas transacionais isoladas. Elas exigem capacidades multimodais abrangentes — desde transcrição e tradução de áudio até agentes de voz sofisticados — e, sobretudo, necessitam de comunicação contínua e fluida em tempo real.
O diferencial está em um requisito essencial: os dados precisam fluir simultaneamente em ambas as direções, através de uma única conexão persistente. Imagine um cenário de conversão de fala para texto onde o áudio é transmitido de forma contínua enquanto, ao mesmo tempo, o modelo processa e retorna a transcrição em tempo real, palavra por palavra. Esses casos de uso demandam exatamente essa capacidade bidirecional.
A AWS anunciou a transmissão bidirecional para Amazon SageMaker AI Inference, transformando fundamentalmente o paradigma de inferência — de uma troca transacional isolada para uma conversa contínua e natural. A experiência de fala flui naturalmente quando não há interrupções. Com transmissão bidirecional, a conversão de fala para texto torna-se imediata: o modelo escuta e transcreve simultaneamente, fazendo as palavras aparecerem no exato momento em que são pronunciadas.
Considere o caso prático de um centro de atendimento ao cliente. Conforme o cliente descreve seu problema, a transcrição ao vivo aparece instantaneamente na tela do atendente, fornecendo contexto imediato e permitindo que ele responda sem esperar o cliente terminar de falar. Esse tipo de troca contínua torna as experiências de voz mais fluidas, responsivas e genuinamente humanas.
Como Funciona a Transmissão Bidirecional
O Paradigma Tradicional versus Bidirecional
Na abordagem tradicional de requisições de inferência, existe um padrão bem definido: o cliente envia uma pergunta completa e aguarda, enquanto o modelo processa e retorna uma resposta completa antes que o cliente possa enviar a próxima pergunta. É um ciclo de espera e resposta.
Com transmissão bidirecional, esse fluxo é radicalmente diferente. A pergunta começa a fluir do cliente enquanto o modelo simultaneamente inicia o processamento e começa a retornar a resposta imediatamente. O cliente pode continuar refinando sua entrada enquanto o modelo adapta sua resposta em tempo real. Os resultados aparecem assim que o modelo os gera — palavra por palavra para texto, frame por frame para vídeo, amostra por amostra para áudio.
Esse padrão também oferece benefícios infraestruturais significativos: manter uma única conexão persistente elimina a necessidade de centenas de conexões de curta duração. Isso reduz consideravelmente a sobrecarga de gerenciamento de rede, handshakes TLS e administração de conexões. Além disso, os modelos conseguem manter contexto ao longo de um fluxo contínuo, possibilitando interações multi-turnos sem a necessidade de reenviar o histórico de conversa a cada requisição.
Arquitetura de Três Camadas do SageMaker AI Inference
A implementação técnica da transmissão bidirecional no SageMaker AI Inference combina dois protocolos complementares: HTTP/2 e WebSocket, criando um canal robusto de comunicação bidirecional em tempo real entre cliente e modelo. O fluxo ocorre em três camadas:
Cliente para Roteador SageMaker AI: Sua aplicação se conecta ao endpoint de tempo de execução do Amazon SageMaker AI usando HTTP/2, estabelecendo uma conexão eficiente e multiplexada que suporta transmissão bidirecional.
Roteador para Contêiner do Modelo: O roteador encaminha a requisição para um Sidecar — um proxy leve executando ao lado de seu contêiner de modelo — que estabelece uma conexão WebSocket com o contêiner em ws://localhost:8080/invocations-bidirectional-stream. Uma vez estabelecida, os dados fluem livremente em ambas as direções.
Fluxo de Requisição e Resposta: Sua aplicação envia entrada como uma série de blocos de dados via HTTP/2. A infraestrutura do SageMaker AI converte esses blocos em frames de dados WebSocket — texto (para dados UTF-8) ou binário — e os encaminha ao contêiner. O modelo recebe esses frames em tempo real e começa a processar imediatamente, antes mesmo da chegada da entrada completa. Na direção oposta, o modelo gera saída e a envia como frames WebSocket. O SageMaker AI encapsula cada frame em um payload de resposta e o transmite diretamente à sua aplicação via HTTP/2.
A conexão WebSocket entre o Sidecar e o contêiner permanece aberta pela duração da sessão, com monitoramento de saúde integrado. Para manter a integridade da conexão, o SageMaker AI envia frames de ping a cada 60 segundos para verificar se a conexão está ativa. Seu contêiner responde com pong frames para confirmar que está saudável. Se 5 pings consecutivos não receberem resposta, a conexão é fechada de forma controlada.
Construindo seu Próprio Contêiner com Transmissão Bidirecional
Pré-requisitos e Preparação
Se você deseja utilizar modelos de código aberto ou seus próprios modelos, é possível customizar seu contêiner para suportar transmissão bidirecional. Seu contêiner deve implementar o protocolo WebSocket para lidar com frames de dados recebidos e enviar frames de resposta de volta ao SageMaker AI.
Permissões de IAM que permitam explicitamente a ação sagemaker:InvokeEndpoint* para invocação de endpoints
Docker instalado localmente
Python 3.12 ou superior
Instalar aws-sdk-python para a API InvokeEndpointWithBidirectionalStream do tempo de execução do SageMaker AI
Construindo e Implantando o Contêiner
O processo começa clonando o repositório de demonstração e configurando seu ambiente conforme definido no README.md. Os passos a seguir criarão uma imagem Docker simples de demonstração e a enviarão para seu repositório de ECR na AWS.
# As variáveis de ambiente devem ser definidas para autenticação AWS
# export AWS_ACCESS_KEY_ID="sua-chave-de-acesso"
# export AWS_SECRET_ACCESS_KEY="sua-chave-secreta"
# export AWS_DEFAULT_REGION="us-west-2"
container_name="sagemaker-bidirectional-streaming"
container_tag="latest"
cd container
account=$(aws sts get-caller-identity --query Account --output text)
region=$(aws configure get region)
region=${region:-us-west-2}
container_image_uri="${account}.dkr.ecr.${region}.amazonaws.com/${container_name}:${container_tag}"
# Se o repositório não existe no ECR, crie-o
aws ecr describe-repositories --repository-names "${container_name}" --region "${region}" > /dev/null 2>&1
if [ $? -ne 0 ]
then
aws ecr create-repository --repository-name "${container_name}" --region "${region}" > /dev/null
fi
# Obtenha o comando de login do ECR e execute-o
aws ecr get-login-password --region ${region} | docker login --username AWS --password-stdin ${account}.dkr.ecr.${region}.amazonaws.com/${container_name}
# Construa a imagem Docker localmente e envie-a para o ECR
docker build --platform linux/amd64 --provenance=false -t ${container_name} .
docker tag ${container_name} ${container_image_uri}
docker push ${container_image_uri}
Este processo cria um contêiner com um rótulo Docker indicando ao SageMaker AI que o suporte a transmissão bidirecional está habilitado: com.amazonaws.sagemaker.capabilities.bidirectional-streaming=true.
Após criar a imagem, você pode implantar o contêiner em um endpoint do SageMaker AI através de um script Python que cria o modelo, a configuração do endpoint e finalmente o endpoint propriamente dito.
Invocando o Endpoint com a Nova API
Uma vez que o endpoint do SageMaker AI esteja em estado InService, você pode proceder à invocação do endpoint para testar a funcionalidade de transmissão bidirecional. O cliente Python conecta-se ao endpoint do SageMaker AI e envia dados em chunks, recebendo respostas simultâneas.
#!/usr/bin/env python3
"""
Script Python para Transmissão Bidirecional no SageMaker AI.
Conecta-se a um endpoint do SageMaker AI para comunicação bidirecional.
"""
import argparse
import asyncio
import sys
from aws_sdk_sagemaker_runtime_http2.client import SageMakerRuntimeHTTP2Client
from aws_sdk_sagemaker_runtime_http2.config import Config, HTTPAuthSchemeResolver
from aws_sdk_sagemaker_runtime_http2.models import InvokeEndpointWithBidirectionalStreamInput, RequestStreamEventPayloadPart, RequestPayloadPart
from smithy_aws_core.identity import EnvironmentCredentialsResolver
from smithy_aws_core.auth.sigv4 import SigV4AuthScheme
import logging
def parse_arguments():
"""Analisa argumentos da linha de comando."""
parser = argparse.ArgumentParser(
description="Conecta-se a um endpoint do SageMaker AI para transmissão bidirecional"
)
parser.add_argument(
"ENDPOINT_NAME",
help="Nome do endpoint do SageMaker AI para conectar"
)
return parser.parse_args()
AWS_REGION = "us-west-2"
BIDI_ENDPOINT = f"https://runtime.sagemaker.{AWS_REGION}.amazonaws.com:8443"
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
class SimpleClient:
def __init__(self, endpoint_name, region=AWS_REGION):
self.endpoint_name = endpoint_name
self.region = region
self.client = None
self.stream = None
self.response = None
self.is_active = False
def _initialize_client(self):
config = Config(
endpoint_uri=BIDI_ENDPOINT,
region=self.region,
aws_credentials_identity_resolver=EnvironmentCredentialsResolver(),
auth_scheme_resolver=HTTPAuthSchemeResolver(),
auth_schemes={"aws.auth#sigv4": SigV4AuthScheme(service="sagemaker")}
)
self.client = SageMakerRuntimeHTTP2Client(config=config)
async def start_session(self):
if not self.client:
self._initialize_client()
logger.info(f"Iniciando sessão com endpoint: {self.endpoint_name}")
self.stream = await self.client.invoke_endpoint_with_bidirectional_stream(
InvokeEndpointWithBidirectionalStreamInput(endpoint_name=self.endpoint_name)
)
self.is_active = True
self.response = asyncio.create_task(self._process_responses())
async def send_words(self, words):
for i, word in enumerate(words):
logger.info(f"Enviando payload: {word}")
await self.send_event(word.encode('utf-8'))
await asyncio.sleep(1)
async def send_event(self, data_bytes):
payload = RequestPayloadPart(bytes_=data_bytes)
event = RequestStreamEventPayloadPart(value=payload)
await self.stream.input_stream.send(event)
async def end_session(self):
if not self.is_active:
return
await self.stream.input_stream.close()
logger.info("Stream fechado")
async def _process_responses(self):
try:
output = await self.stream.await_output()
output_stream = output[1]
while self.is_active:
result = await output_stream.receive()
if result is None:
logger.info("Sem mais respostas")
break
if result.value and result.value.bytes_:
response_data = result.value.bytes_.decode('utf-8')
logger.info(f"Recebido: {response_data}")
except Exception as e:
logger.error(f"Erro ao processar respostas: {e}")
def main():
"""Função principal para analisar argumentos e executar o cliente de streaming."""
args = parse_arguments()
print("=" * 60)
print("Cliente de Transmissão Bidirecional SageMaker AI")
print("=" * 60)
print(f"Nome do Endpoint: {args.ENDPOINT_NAME}")
print(f"Região AWS: {AWS_REGION}")
print("=" * 60)
async def run_client():
sagemaker_client = SimpleClient(endpoint_name=args.ENDPOINT_NAME)
try:
await sagemaker_client.start_session()
words = ["Preciso de ajuda com", "meu saldo da conta", "Posso ajudar com isso", "e cobranças recentes"]
await sagemaker_client.send_words(words)
await asyncio.sleep(2)
await sagemaker_client.end_session()
sagemaker_client.is_active = False
if sagemaker_client.response and not sagemaker_client.response.done():
sagemaker_client.response.cancel()
logger.info("Sessão encerrada com sucesso")
return 0
except Exception as e:
logger.error(f"Erro no cliente: {e}")
return 1
try:
exit_code = asyncio.run(run_client())
sys.exit(exit_code)
except KeyboardInterrupt:
logger.info("Interrompido pelo usuário")
sys.exit(1)
except Exception as e:
logger.error(f"Erro inesperado: {e}")
sys.exit(1)
if __name__ == "__main__":
main()
A AWS e a Deepgram colaboraram para construir suporte de transmissão bidirecional especificamente para endpoints do SageMaker AI. A Deepgram, parceira de Tier Avançado da AWS, oferece modelos de IA de voz em nível empresarial com precisão e velocidade líderes do setor. Seus modelos alimentam aplicações de transcrição em tempo real, conversão de texto para fala e agentes de voz para contact centers, plataformas de mídia e aplicações de IA conversacional.
Para clientes com requisitos rigorosos de conformidade que exigem que o processamento de áudio nunca saia de sua Nuvem Privada Virtual (VPC) na AWS, as opções tradicionais auto-hospedadas demandavam sobrecarga operacional considerável para configuração e manutenção. A transmissão bidirecional do Amazon SageMaker transforma completamente essa experiência, permitindo que os clientes implantem e escalem aplicações de IA em tempo real com apenas alguns poucos cliques no Console de Gerenciamento da AWS.
O modelo de fala para texto Deepgram Nova-3 está disponível atualmente no AWS Marketplace para implantação como um endpoint do SageMaker AI, com modelos adicionais chegando em breve. As capacidades incluem transcrição multilíngue, desempenho em escala empresarial e reconhecimento específico de domínio. A Deepgram oferece um período de avaliação gratuita de 14 dias no Amazon SageMaker AI para desenvolvedores prototiparem aplicações sem incorrer em custos de licença de software. As cobranças de infraestrutura do tipo de máquina escolhido ainda serão incorridas durante esse período. Para mais detalhes, consulte a documentação de preços do Amazon SageMaker AI.
Configurando um Endpoint Deepgram no SageMaker AI
Para configurar um endpoint Deepgram no SageMaker AI, navegue até a seção de pacotes de modelos do AWS Marketplace dentro do console do Amazon SageMaker AI e procure por Deepgram. Inscreva-se no produto e proceda ao assistente de lançamento na página do produto. Continue fornecendo detalhes no assistente de criação de endpoint de inferência em tempo real do Amazon SageMaker AI. Certifique-se de editar a variante de produção para incluir um tipo de instância válido ao criar sua configuração de endpoint. O botão de edição pode estar oculto até que você role a direita na tabela de variantes de produção. O ml.g6.2xlarge é um tipo de instância preferido para testes iniciais. Consulte a documentação Deepgram para requisitos específicos de hardware e orientação de seleção. Na página de resumo do endpoint, anote o nome do endpoint que você forneceu, pois será necessário na seção seguinte.
Usando o Endpoint Deepgram no SageMaker AI
Uma aplicação TypeScript de exemplo mostra como transmitir um arquivo de áudio para o modelo Deepgram hospedado em um endpoint de inferência em tempo real do SageMaker AI e imprimir uma transcrição transmitida em tempo real. A função cria um fluxo do arquivo WAV abrindo um arquivo de áudio local e enviando-o para o Amazon SageMaker AI Inference em pequenos blocos binários.
import * as fs from "fs";
import * as path from "path";
import { RequestStreamEvent } from '@aws-sdk/client-sagemaker-runtime-http2';
function sleep(ms: number): Promise {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function* streamWavFile(filePath: string): AsyncIterable {
const full = path.resolve(filePath);
if (!fs.existsSync(full)) {
throw new Error(`Arquivo de áudio não encontrado: ${full}`);
}
console.log(`Transmitindo áudio: ${full}`);
const readStream = fs.createReadStream(full, { highWaterMark: 512_000 }); // 512 KB
for await (const chunk of readStream) {
yield { PayloadPart: { Bytes: chunk, DataType: "BINARY" } };
}
// Mantenha o stream ativo para receber respostas de transcrição após todo arquivo ser enviado
console.log("Áudio enviado, aguardando conclusão da transcrição...");
await sleep(15000); // Aguarde 15 segundos para processamento do bloco final de áudio
// Avise ao contêiner que terminamos
yield { PayloadPart: { Bytes: new TextEncoder().encode('{"type":"CloseStream"}'), DataType: "UTF8" } };
}
O cliente de tempo de execução do AWS SageMaker AI é configurado especificando a região AWS, o nome do endpoint do SageMaker AI e a rota do modelo Deepgram dentro do contêiner. Você precisa atualizar esses valores conforme necessário.
import { SageMakerRuntimeHTTP2Client, InvokeEndpointWithBidirectionalStreamCommand } from '@aws-sdk/client-sagemaker-runtime-http2';
const region = "us-east-1"; // Região AWS
const endpointName = "REPLACEME"; // Nome do seu endpoint Deepgram SageMaker
const audioFile = "test.wav"; // Arquivo de áudio local
const modelInvocationPath = "v1/listen"; // Caminho WebSocket dentro do contêiner do modelo
const modelQueryString = "model=nova-3";
const client = new SageMakerRuntimeHTTP2Client({ region });
O trecho final envia o fluxo de áudio ao endpoint do SageMaker AI e imprime os eventos JSON de transmissão da Deepgram conforme chegam. A aplicação exibe a saída de fala para texto ao vivo sendo gerada.
async function run() {
console.log("Enviando áudio para Deepgram via SageMaker...");
const command = new InvokeEndpointWithBidirectionalStreamCommand({
EndpointName: endpointName,
Body: streamWavFile(audioFile),
ModelInvocationPath: modelInvocationPath,
ModelQueryString: modelQueryString
});
const response = await client.send(command);
if (!response.Body) {
console.log("Nenhuma resposta de streaming recebida.");
return;
}
const decoder = new TextDecoder();
for await (const msg of response.Body) {
if (msg.PayloadPart?.Bytes) {
const text = decoder.decode(msg.PayloadPart.Bytes);
try {
const parsed = JSON.parse(text);
// Extraia e exiba a transcrição
if (parsed.channel?.alternatives?.[0]?.transcript) {
const transcript = parsed.channel.alternatives[0].transcript;
if (transcript.trim()) {
console.log("Transcrição:", transcript);
}
}
console.debug("Deepgram (bruto):", parsed);
} catch {
console.error("Deepgram (erro):", text);
}
}
}
}
console.log("Streaming concluído.");
}
run().catch(console.error);
A transmissão bidirecional no Amazon SageMaker AI Inference representa um avanço significativo na forma como os desenvolvedores podem construir aplicações de IA em tempo real. Ao eliminar as limitações das interações transacionais tradicionais, essa capacidade abre possibilidades para experiências de usuário genuinamente conversacionais e responsivas.
Com suporte para contêineres customizados e integração pronta com modelos parceiros como o Deepgram, a plataforma oferece flexibilidade tanto para quem deseja trazer seus próprios modelos quanto para quem busca soluções prontas para produção. A infraestrutura de três camadas garante eficiência, enquanto o monitoramento automático de conexão assegura confiabilidade.
Developers podem começar a construir aplicações de transmissão bidirecional com Modelos de Linguagem Grande (LLMs) e SageMaker AI hoje mesmo, abrindo novos horizontes para agentes de voz, assistentes conversacionais e qualquer aplicação que se beneficie de comunicação em tempo real verdadeiramente bidirecional.
A AWS anunciou o lançamento do Network Firewall Proxy em prévia pública, um novo recurso que reforça significativamente a postura defensiva das organizações contra ameaças de exfiltração de dados e injeção de malware. O serviço foi projetado para funcionar em modo explícito, permitindo que seja configurado em apenas alguns cliques.
O destaque principal do Network Firewall Proxy é sua capacidade de gerenciar e proteger o tráfego de dados que sai das aplicações, bem como as respostas que essas aplicações recebem. Isso oferece um controle muito mais preciso sobre as comunicações de rede que atravessam a infraestrutura corporativa.
Capacidades e controles granulares
Proteção contra spoofing e acesso não autorizado
O Network Firewall Proxy da AWS protege as organizações contra tentativas de falsificação de nomes de domínio ou do índice de nome do servidor (SNI — Server Name Index). Além disso, oferece flexibilidade para implementar controles de acesso muito específicos e adaptados às necessidades de cada ambiente.
Um dos casos de uso mais importantes é a restrição de acesso das aplicações apenas para domínios ou endereços IP confiáveis. O recurso também permite bloquear respostas não intencionais provenientes de servidores externos, criando uma barreira efetiva contra comunicações não autorizadas.
Inspeção de TLS e filtragem avançada
O serviço permite ativar a inspeção de TLS (Transport Layer Security) e estabelecer controles granulares de filtragem baseados em atributos de cabeçalho HTTP. Isso significa que é possível examinar e controlar comunicações mesmo quando criptografadas, ampliando as possibilidades de proteção sem sacrificar a privacidade.
Monitoramento e análise detalhada
O Network Firewall Proxy oferece registros abrangentes para monitoramento contínuo das aplicações. Esses logs podem ser direcionados para o Amazon S3 (Simple Storage Service) e o AWS CloudWatch, permitindo análises detalhadas e facilitando processos de auditoria. Essa rastreabilidade é especialmente importante para organizações que precisam atender requisitos regulatórios rigorosos.
Disponibilidade e próximos passos
O Network Firewall Proxy está disponível em prévia pública na região US East (Ohio) e, durante este período, é oferecido gratuitamente. Organizações interessadas são convidadas a testar o recurso em ambientes de teste para avaliar seu impacto nas estratégias de segurança de rede.
Desafios no gerenciamento de credenciais de terceiros
Embora o AWS Secrets Manager se destaque no gerenciamento do ciclo de vida de segredos dos serviços de Amazon Web Services (AWS), o armazenamento de credenciais de provedores de software terceirizados apresenta desafios singulares para organizações que expandem o uso de aplicações em nuvem.
Organizações que utilizam múltiplos serviços de terceiros frequentemente desenvolvem abordagens de segurança distintas para cada provedor, pois não existia uma forma padronizada de gerenciar essas credenciais. Ao armazenar credenciais de terceiros no Secrets Manager, as organizações precisam manter metadados adicionais dentro dos valores dos segredos para facilitar as conexões com os serviços. Essa abordagem exige atualização completa dos valores dos segredos sempre que os metadados mudam, além da implementação de processos de rotação específicos para cada provedor que são manuais e demorados.
Organizações que buscam automatizar a rotação de segredos frequentemente precisam desenvolver funções personalizadas adaptadas a cada provedor de software terceirizado, exigindo conhecimento especializado tanto dos sistemas terceirizados quanto dos sistemas AWS.
Introdução aos segredos externos gerenciados
Para ajudar os clientes a simplificar o gerenciamento de segredos de terceiros, a AWS introduz uma nova funcionalidade no AWS Secrets Manager chamada segredos externos gerenciados. Este novo tipo de segredo estende a experiência contínua do gerenciamento de rotação para aplicações de software terceirizadas como Salesforce, simplificando os desafios de gerenciamento de segredos por meio de formatos padronizados e rotação automática.
A AWS Secrets Manager já possuía um histórico comprovado de ajudar clientes a proteger e gerenciar segredos de serviços AWS como Amazon Relational Database Service (Amazon RDS) ou Amazon DocumentDB por meio de capacidades de rotação gerenciada. Construindo sobre esse sucesso, a funcionalidade de segredos externos gerenciados permite que os clientes armazenem segredos fornecidos por provedores de software terceirizados em formatos predefinidos.
Características principais
Esses formatos foram desenvolvidos em colaboração com parceiros de integração confiáveis para definir tanto a estrutura do segredo quanto os metadados necessários para rotação, eliminando a necessidade de definir estratégias de armazenamento personalizadas. A funcionalidade oferece integração automática com provedores de software, reduzindo a sobrecarga operacional enquanto beneficia de controles de segurança essenciais, incluindo:
Detecção automática de ameaças específicas de segredos por meio do Amazon GuardDuty
Além disso, os clientes podem implementar práticas centralizadas e consistentes de gerenciamento de segredos tanto para segredos AWS quanto de terceiros a partir de um único serviço, eliminando a necessidade de operar múltiplas soluções de gerenciamento de segredos em suas organizações.
Os segredos externos gerenciados seguem o padrão de precificação do Secrets Manager, sem custos adicionais pelo uso deste novo tipo de segredo.
Pré-requisitos
Para criar um segredo externo gerenciado, você precisa de:
Uma conta AWS ativa com acesso apropriado ao Secrets Manager
Permissões mínimas do Identidade e Acesso da AWS (IAM) para as ações: secretsmanager:DescribeSecret, secretsmanager:GetSecretValue, secretsmanager:UpdateSecret, e secretsmanager:UpdateSecretVersionStage
Credenciais válidas e permissões de acesso necessárias para o provedor de software terceirizado
Para chaves gerenciadas pelo cliente, você deve ter as políticas de chave necessárias configuradas, permitindo que o Secrets Manager use a chave para operações de criptografia e descriptografia
Criando um segredo externo gerenciado
Atualmente, os segredos externos gerenciados suportam três parceiros de integração: Salesforce, Snowflake e BigID. A AWS continua expandindo sua lista de parceiros e mais provedores de software terceirizados serão adicionados ao longo do tempo. Consulte a página de Parceiros de Integração para obter a lista mais recente.
Selecionando o tipo de segredo
Acesse o serviço AWS Secrets Manager no console e selecione “Armazenar um novo segredo”. Na seção de tipo de segredo, escolha “Segredo externo gerenciado”. Na seção de credencial de provedor terceirizado integrado, selecione seu provedor nas opções disponíveis.
Para este exemplo, usaremos as Credenciais de Aplicativo Cliente Externo do Salesforce. Insira suas configurações na seção de detalhes do segredo. As credenciais incluem vários componentes-chave:
Chave do consumidor (ID do cliente): Serve como identificador de credencial para OAuth 2.0. Você pode recuperá-la diretamente do gerenciador de aplicativos cliente externo Salesforce nas configurações OAuth
Segredo do consumidor (segredo do cliente): Funciona como senha privada para autenticação OAuth 2.0, recuperável nas mesmas configurações OAuth
Base URI: A URL base da sua organização Salesforce (formatada como https://MyDomainName.my.salesforce.com), usada para interagir com as APIs Salesforce
Selecione a chave de criptografia no menu suspenso. Você pode usar uma chave AWS KMS gerenciada ou uma chave AWS KMS gerenciada pelo cliente. Prossiga para a próxima etapa.
Forneça um nome descritivo e, opcionalmente, uma descrição detalhada que ajude a identificar o propósito e uso do segredo. Você também tem opções de configuração adicionais: pode anexar tags para melhor organização de recursos, definir permissões específicas de recurso para controlar o acesso e selecionar a opção de replicar segredo para resiliência em múltiplas regiões.
Configurando rotação e permissões (opcional)
Na etapa opcional de configuração de rotação, o novo tipo de segredo introduz duas seções principais focadas no gerenciamento de metadados, que são armazenados separadamente do valor do segredo propriamente dito.
Sob metadados de rotação, especifique a versão da API que seu aplicativo Salesforce está usando. A versão mínima necessária é v65.0. Você pode encontrar a versão consultando a documentação Salesforce para Listar Versões Disponíveis da API REST.
Selecione um ARN de segredo do administrador, que contém as credenciais OAuth administrativas usadas para girar o segredo do cliente Salesforce. Na seção de permissões de serviço para rotação de segredo, o Secrets Manager cria automaticamente uma função com permissões necessárias para girar seus valores de segredo. Essas permissões padrão são exibidas transparentemente na interface para revisão. Você pode desmarcar as permissões padrão para ter mais controle granular sobre o gerenciamento de rotação de segredo.
Revisando e confirmando
Na etapa final, você receberá um resumo da configuração de seu segredo. Na página de revisão, você pode verificar os parâmetros antes de prosseguir com a criação do segredo. Após confirmar que as configurações estão corretas, selecione “Armazenar” para concluir o processo e criar seu segredo com as configurações especificadas.
Após a criação bem-sucedida, seu segredo aparecerá na aba de segredos. Você pode visualizar, gerenciar e monitorar aspectos do seu segredo, incluindo sua configuração, status de rotação e permissões. Após a criação, revise sua configuração de segredo, incluindo configurações de criptografia e políticas de recursos para acesso entre contas, e examine o código de amostra fornecido para diferentes SDKs AWS para integrar a recuperação de segredo em suas aplicações.
A aba de segredos fornece uma visão geral de seus segredos, permitindo gerenciamento centralizado. Selecione seu segredo para visualizar os detalhes do segredo. Seu segredo externo gerenciado foi criado com sucesso no Secrets Manager. Você pode acessar e gerenciar este segredo através do console do Secrets Manager ou programaticamente usando as APIs AWS.
Para parceiros terceirizados: Integrando com o Secrets Manager
Com o novo tipo de segredo externo gerenciado, provedores de software terceirizados podem se integrar ao Secrets Manager e oferecer aos seus clientes uma forma programática de gerenciar com segurança os segredos fornecidos pelas suas aplicações na AWS. Essa integração fornece aos clientes uma solução centralizada para gerenciar tanto o ciclo de vida de segredos AWS quanto de terceiros, incluindo capacidades de rotação automática a partir do momento da criação do segredo.
Provedores de software como Salesforce já estão usando essa capacidade. Não há custos adicionais para integração como parceiro do Secrets Manager. Para começar, os parceiros devem seguir o processo listado no guia de integração de parceiros. Se você tiver dúvidas sobre se tornar um parceiro de integração, entre em contato com a equipe através do aws-secrets-mgr-partner-onboarding@amazon.com com o assunto: [Nome do Parceiro] Solicitação de Integração.
Conclusão
Os segredos externos gerenciados representam um avanço significativo na forma como as organizações podem gerenciar credenciais de provedores terceirizados. Ao eliminar a necessidade de definir estratégias de armazenamento personalizadas e desenvolver funções de rotação complexas, os clientes agora podem gerenciar consistentemente seus segredos, independentemente de serem de serviços AWS, aplicações personalizadas ou provedores terceirizados, a partir de um único serviço.
A funcionalidade oferece os mesmos recursos de segurança que os segredos padrão do Secrets Manager, incluindo gerenciamento de permissões granulares, observabilidade e controles de conformidade, enquanto adiciona integração integrada com parceiros confiáveis sem custos adicionais. O recurso está disponível em todas as regiões AWS onde o AWS Secrets Manager está disponível.
Para começar, consulte a documentação técnica. Para informações sobre migração de seus segredos de parceiros existentes para segredos externos gerenciados, consulte Migrando segredos existentes. Para uma lista de regiões onde o Secrets Manager está disponível, consulte a tabela de regiões AWS.
Gerenciamento simplificado de permissões em múltiplos warehouses
A AWS anunciou o suporte a permissões federadas no Amazon Redshift, uma funcionalidade importante para organizações que adotam arquiteturas multi-warehouse. Muitos clientes estão migrando para modelos baseados em múltiplos data warehouses justamente para escalar suas operações e isolar diferentes cargas de trabalho, mas enfrentavam o desafio de manter a governança de acesso consistente entre essas instâncias.
Com as permissões federadas, os administradores definem as políticas de acesso uma única vez, a partir de qualquer warehouse Redshift, e elas são aplicadas automaticamente em todos os warehouses da conta. Isso elimina a necessidade de replicar configurações de permissão manualmente, reduzindo erros e facilitando manutenção.
Funcionalidades principais
Aplicação automática de controles de acesso
Os warehouses Redshift com permissões federadas são montados automaticamente em cada instância Redshift disponível. Essa integração permite que você aproveite identidades do seu workforce já cadastradas no AWS IAM Identity Center (Centro de Identidade AWS) ou use papéis (IAM roles) existentes para consultar dados entre warehouses.
O controle de acesso funciona em múltiplos níveis: é possível aplicar restrições no nível de linha, no nível de coluna e implementar mascaramento de dados. Independentemente de qual warehouse seja utilizado para fazer a consulta, esses controles permanecem sempre ativos, garantindo conformidade de forma granular e consistente.
Escalabilidade sem complexidade adicional
Um dos benefícios mais relevantes das permissões federadas é a escalabilidade horizontal. Ao adicionar novos warehouses ao ambiente, as políticas de permissão são aplicadas automaticamente, sem que a complexidade de governança aumente proporcionalmente. Analistas e usuários finais já conseguem visualizar imediatamente todos os bancos de dados disponibilizados pelos warehouses registrados, sem necessidade de configurações manuais adicionais.
Como começar
Para iniciar o uso dessa funcionalidade, o primeiro passo é registrar um namespace Redshift Serverless ou um cluster Redshift provisionado com o AWS Glue Data Catalog. Feito isso, é possível começar a realizar consultas entre warehouses usando o Redshift Query Editor V2 ou qualquer cliente SQL compatível.
Ambientes de desenvolvimento gerenciados para ciência de dados
A Amazon SageMaker HyperPod com orquestração via Amazon Elastic Kubernetes Service (EKS) agora oferece suporte à criação e gerenciamento de ambientes de desenvolvimento interativos, incluindo JupyterLab e Visual Studio Code de código aberto. Essa integração simplifica o ciclo de vida do desenvolvimento de aprendizado de máquina, fornecendo ambientes gerenciados que trabalham com as ferramentas que os cientistas de dados já conhecem e utilizam.
A novidade central é um novo complemento chamado Amazon SageMaker Spaces, que permite aos desenvolvedores de IA criar e gerenciar ambientes isolados e configuráveis para execução de notebooks e desenvolvimento interativo. A integração permite que as organizações otimizem seus investimentos em GPU ao executar simultaneamente cargas de trabalho interativas e jobs de treinamento na mesma infraestrutura, com suporte para alocações fracionadas de GPU. Isso reduz significativamente a complexidade de gerenciar múltiplos ambientes de desenvolvimento, permitindo que as equipes se concentrem na construção e implantação de modelos de IA e aprendizado de máquina.
Como funcionam os Spaces
Os Spaces operam através de uma arquitetura coordenada entre diferentes componentes. O processo começa quando um administrador de cluster instala o complemento Spaces a partir do console do SageMaker AI, escolhendo entre uma instalação rápida ou uma instalação personalizada.
Uma vez que o cluster está configurado, cientistas de dados e desenvolvedores de IA podem criar Spaces utilizando a Interface de Linha de Comando (CLI) do HyperPod ou kubectl. Após a criação de um Space, os usuários podem se conectar através de duas abordagens principais:
Acesso via Interface Web: Esta opção requer configuração de um Balanceador de Carga de Aplicação (ALB) da AWS e registro de um domínio personalizado no Amazon Route 53. Com um domínio configurado, os usuários acessam de forma segura JupyterLab ou Code Editor através do navegador usando uma URL pré-assinada.
Conexão de IDE Remota: Para usuários que preferem trabalhar localmente no Visual Studio Code, a conexão utiliza túneis SSH-over-SSM (Sessions Manager), permitindo acesso seguro aos pods do SageMaker Spaces sem necessidade de gerenciar chaves SSH ou expor portas diretamente.
Pré-requisitos e preparação
Para implementar essa solução, você precisa de uma conta AWS com permissões adequadas para criar funções de Identidade e Acesso (IAM), recursos do SageMaker como HyperPod, e acesso aos recursos de cluster do EKS. Se estiver criando um novo cluster HyperPod, você também necessitará permissões para criar recursos de rede e armazenamento (consulte a documentação sobre permissões de IAM para criação de cluster).
O processo de instalação começa acessando o console do SageMaker AI, navegando até a seção de Clusters e selecionando seu cluster HyperPod. Na aba “IDE e Notebooks”, você encontrará a opção de instalação rápida, que representa o caminho mais eficiente para começar. Com um único clique, o SageMaker AI cria e configura automaticamente os recursos AWS necessários com padrões otimizados.
A instalação rápida configura automaticamente as dependências necessárias para o complemento Spaces. Essas incluem funções de IAM específicas para o controller de Spaces (responsável por chamadas de API da AWS e operações do AWS Systems Manager Session Manager), um roteador em cluster para operações de Serviço de Gerenciamento de Chaves (KMS) da AWS e assinatura de JWT, e uma função de instância gerenciada pelo SSM para acesso remoto.
Os complementos dependentes do EKS também são instalados, incluindo Cert-manager para gerenciamento de certificados, o driver de Armazenamento em Bloco Elástico (EBS) da CSI para volumes de armazenamento persistente, e o Controlador de Balanceador de Carga da AWS para gerenciar Balanceadores de Carga Elásticos. Para detalhes completos sobre configurações de permissão, consulte a documentação de configuração de permissões.
A instalação rápida não inclui configurações de interface web como registros de DNS no Route 53 e certificados SSL. Administradores podem usar a opção de instalação personalizada ou configurar essas propriedades após a instalação. Para ambientes de produção, recomenda-se a opção de instalação personalizada, permitindo que os administradores configurem políticas de IAM mais granulares seguindo o princípio de menor privilégio. Consulte a documentação de instalação do operador via helm/Console para orientações sobre acesso via navegador web.
Tipicamente, a instalação completa em 2 a 5 minutos, dependendo da disponibilidade de dependências pré-existentes ou se o complemento Spaces precisará provisionar recursos completamente novos. Após conclusão, administradores conseguem visualizar Spaces criados por cientistas de dados, configurar namespaces para organizar Spaces por equipe ou projeto, e criar templates de Space com configurações pré-definidas para casos de uso comuns.
Configuração de acesso dos usuários
Para conceder acesso aos usuários para criar e gerenciar Spaces, você deve configurar entradas de acesso do EKS. Duas políticas de entrada de acesso são necessárias: AmazonSagemakerHyperpodSpacePolicy e AmazonSagemakerHyperpodSpaceTemplatePolicy. Para instruções detalhadas, consulte a documentação sobre criação de entradas de acesso e atualização de entradas de acesso.
Criação e gerenciamento de Spaces
Cientistas de dados podem criar JupyterLab e Code Editor Spaces no cluster utilizando kubectl ou a CLI do HyperPod. Para criar um Space, você define o contexto do cluster e executa o comando de criação:
Alternativamente, você pode conectar ao Space usando o toolkit da AWS diretamente do Visual Studio Code local. Abra o painel do AWS Toolkit, navegue até SageMaker AI e HyperPod para listar, iniciar, parar e conectar aos Spaces.
A CLI do HyperPod oferece operações CRUD completas nos Spaces, incluindo atualização, descrição e exclusão. Para uma lista completa de operações, consulte o repositório do HyperPod CLI no Github. Usuários familiarizados com kubectl também podem criar, atualizar e excluir Spaces usando YAML:
Os Spaces utilizam Entradas de Acesso do EKS para identificar usuários, derivadas de suas identidades de IAM. A identidade capturada pelo EKS pode aparecer como um usuário de IAM ou como um ARN de sessão com role assumido. Para roles assumidas, o nome da sessão pode representar o usuário real quando o administrador aplica políticas de IAM que reforçam nomes de sessão únicos. Se os nomes de sessão não forem impostos ou não mapearem exclusivamente para usuários, o controle de acesso dos Spaces recai para controle baseado em papéis. Consulte a documentação para adicionar usuários e configurar contas de serviço.
Spaces podem ser privados (acessíveis apenas pelo criador) ou públicos (acessíveis por qualquer usuário com acesso ao namespace Kubernetes). Por padrão, os Spaces são públicos. O criador e o grupo de administrador mantêm controle total, incluindo capacidade de atualizar ou excluir o Space. Um Space torna-se privado apenas quando o acesso é restrito ao criador e grupo de administrador. Múltiplos usuários podem colaborar no mesmo Space se configurado como compartilhado. Quando habilitado com imagens de SageMaker Distribution para ambientes JupyterLab, há suporte a colaboração em tempo real (RTC), permitindo que múltiplos usuários colaborem em experimentos e cargas de trabalho interativas de aprendizado de máquina.
Templates e controles padrão do administrador
Templates configurados por administradores ajudam cientistas de dados a utilizar rapidamente configurações de Space pré-definidas para seus casos de uso. A AWS fornece dois templates de sistema pré-criados, um para JupyterLab e outro para Code Editor, permitindo que cientistas de dados iniciem sem configurações adicionais. Administradores também podem criar templates customizados com configurações específicas como imagem, armazenamento e computação. Múltiplos templates podem ser criados com base em casos de uso, projetos ou requisitos de dependência específicos.
Customização de Spaces
Administradores e desenvolvedores podem customizar Spaces usando imagens customizadas e scripts de ciclo de vida. Use scripts de ciclo de vida para customizações mínimas como instalar pacotes adicionais, configurar variáveis padrão ou executar tarefas de limpeza, mantendo as capacidades da imagem SageMaker Distribution. Para organizações que possuem imagens padronizadas para desenvolvimento e treinamento, o SageMaker Spaces oferece suporte a imagens customizadas e entry points. Consulte a documentação de customização para especificações de imagens customizadas.
Desligamento automático de computação ociosa
Os Spaces suportam desligamento automático de workspaces ociosos para otimizar o uso de recursos. Quando habilitado, o sistema verifica periodicamente a atividade do Space e, se o workspace permanecer ocioso durante o tempo limite especificado, o workspace para automaticamente, liberando recursos de computação para outras tarefas. Administradores podem configurar timeouts padrão e opcionalmente evitar que usuários substituam esses padrões para reforçar políticas de desligamento automático.
Integração com outros complementos do HyperPod
Para guardrails contra uso excessivo de recursos, configure governança de tarefas do HyperPod, que fornece controles abrangentes de gerenciamento de recursos. Para ajudar a prevenir que workspaces sejam removidos por mudanças em cargas de trabalho não relacionadas, configure a governança de tarefas para definir cargas de trabalho de aprendizado de máquina interativo com prioridade máxima ou agende-as em namespaces da governança de tarefas com remoção desabilitada.
Configure o plugin de Observabilidade do HyperPod para monitorar o uso de recursos dos Spaces em execução no cluster. Com instalação de um clique, o plugin de observabilidade fornece visibilidade sobre quantos recursos os Spaces estão consumindo ao longo do tempo, permitindo que administradores observem e ajustem alocações de computação.
Suporte a GPU fracionada
O SageMaker Spaces suporta configurações de GPU fracionada, especificamente a tecnologia MIG (Multi-Instance GPU) da NVIDIA. O suporte a GPU fracionada significa que usuários podem compartilhar instâncias de GPU, otimizando o uso de computação enquanto mantêm isolamento entre cargas de trabalho. Experimentos executados em um perfil de GPU fracionada são menos propensos a interferir em outras cargas de trabalho executadas na mesma GPU. Para verificar se uma instância no seu cluster suporta GPU fracionada, execute:
Para evitar custos desnecessários, remova os recursos criados. Exclua todos os Spaces que você criou:
hyp delete hyp-space \
--name <space-name>
Remova o complemento SageMaker HyperPod Spaces navegando até a página de detalhes do cluster, acessando a aba “IDE e Notebooks” e escolhendo “Remover”. Se criou um cluster HyperPod especificamente para teste, delete-o seguindo as instruções em exclusão de um cluster SageMaker HyperPod. Adicionalmente, se usou o console para criar o cluster, acesse o console do AWS CloudFormation e exclua a stack principal para remover recursos adicionais como armazenamento e recursos de rede. A stack estará no formato: sagemaker-<your-hyperpod-cluster-name>-<unique-id>
Conclusão
Os Spaces no SageMaker HyperPod potencializam a produtividade de cientistas de dados e desenvolvedores de IA ao fornecer ambientes de desenvolvimento mais seguros e gerenciados em computação de propósito específico. A integração entre ambientes familiares como JupyterLab e VS Code com a infraestrutura de cluster gerenciada simplifica significativamente o ciclo de vida do desenvolvimento. As equipes conseguem reduzir o tempo gasto em configuração de ambiente e focar em construção e implantação de modelos, mantendo ambientes de desenvolvimento consistentes. Através de integração com recursos de governança de tarefas do HyperPod, administradores otimizam custos e alocações equitativas de computação em toda a organização.
O modelo de linguagem mais recente da Anthropic, o Claude Opus 4.5, está agora disponível no Amazon Bedrock, um serviço gerenciado que oferece acesso a modelos de linguagem de alto desempenho de empresas líderes em inteligência artificial. O Opus 4.5 representa um avanço significativo no que os sistemas de inteligência artificial podem realizar e estabelece novos patamares em programação, agentes de IA, interação com computadores e tarefas de produtividade.
Este modelo se destaca por superar tanto o Sonnet 4.5 quanto o Opus 4.1, enquanto oferece capacidades equivalentes às do Opus com um terço do custo anterior. Sua arquitetura foi especificamente projetada para desenvolvedores que constroem agentes de IA sofisticados—sistemas capazes de raciocinar, planejar e executar tarefas complexas com mínima supervisão humana.
O que distingue o Opus 4.5
Engenharia de software e codificação
O Opus 4.5 demonstra desempenho excepcional em desenvolvimento profissional de software, alcançando 80,9% no benchmark SWE-bench Verified. Isso significa que o modelo pode transformar projetos de desenvolvimento que levariam vários dias em tarefas executáveis em horas. O modelo trabalha independentemente e inclui capacidades aprimoradas de codificação multilíngue, gerando código mais eficiente, melhor cobertura de testes e arquiteturas mais limpas.
Produtividade em tarefas empresariais
Para operações corporativas, o Opus 4.5 gerencia projetos complexos do início ao fim. Ele capacita agentes para criar apresentações em PowerPoint, planilhas em Excel e documentos em Word com acabamento profissional, incluindo revisão detalhada de documentos para contratos e acordos de não divulgação. O modelo também produz artefatos de React e HTML de qualidade superior, mantendo consistência e precisão—aspectos críticos para setores como finanças, onde a exatidão é fundamental. Ele preserva contexto entre arquivos durante projetos longos, garantindo coerência nas decisões.
Raciocínio visual avançado
Esta é a melhor capacidade de visão que a Anthropic ofereceu até agora, alcançando 80,7% no benchmark MMMU para fluxos de trabalho que dependem de interpretação visual complexa e navegação em múltiplas etapas. Exemplos incluem análise de mockups de design, processamento de documentos com layouts complexos e automatização de tarefas baseadas em navegação do navegador—com desempenho ainda mais aprimorado em interação com computadores.
Melhorias para desenvolvimento de agentes
O modelo introduz dois aprimoramentos-chave para desenvolvedores que criam agentes. A ferramenta de busca de ferramentas permite que agentes trabalhem com centenas de ferramentas descobrindo e carregando dinamicamente apenas aquelas que precisam, em vez de carregar todas as definições antecipadamente—potencialmente economizando dezenas de milhares de tokens e evitando confusão de esquemas ao escalar para grandes bibliotecas de ferramentas. Os exemplos de uso de ferramentas permitem fornecer chamadas de ferramentas exemplares diretamente na definição da ferramenta, melhorando a precisão para esquemas complexos com objetos ou arrays aninhados.
Benchmarks de desempenho do Claude Opus 4.5 — Fonte: Anthropic
Casos de uso principais
Desenvolvimento de software
O Opus 4.5 é ideal para construir agentes que escrevem e refatoram código em projetos inteiros, gerenciam arquiteturas completas ou projetam sistemas multiagente que decompõem objetivos de alto nível em passos executáveis. A geração Claude abrange o ciclo completo de desenvolvimento: Opus 4.5 para código de produção e agentes sofisticados que usam 10 ou mais ferramentas em fluxos de trabalho como engenharia de software completa, cibersegurança ou análise financeira; Sonnet 4.5 para iteração rápida e experiências de usuário em escala; Haiku 4.5 para subagentos e produtos de acesso gratuito.
O Opus 4.5 pode analisar documentação técnica, planejar uma implementação de software, escrever o código necessário e refiná-lo iterativamente—mantendo rastreabilidade dos requisitos e contexto arquitetônico durante todo o processo.
Operações empresariais
Para gerenciar projetos complexos do início ao fim, o Opus 4.5 utiliza memória para manter contexto e consistência entre arquivos, com melhorias adicionais na criação de planilhas, slides e documentos. O modelo lida com projetos corporativos contínuos, automatizando fluxos de trabalho manuais.
Análise financeira
O modelo funciona eficientemente em sistemas complexos de informações—arquivos regulatórios, relatórios de mercado, dados internos—possibilitando modelagem preditiva e conformidade proativa. Sua consistência e precisão o tornam valioso para finanças e outros setores onde a exatidão é fundamental.
Cibersegurança
O Opus 4.5 oferece análise de nível profissional em fluxos de trabalho de segurança, correlacionando logs, bancos de dados de problemas de segurança e inteligência de segurança para detecção de eventos de segurança e resposta a incidentes automatizada.
Integração com o Amazon Bedrock AgentCore
A AWS fornece a fundação corporativa para implantar o Opus 4.5 em produção através do Amazon Bedrock AgentCore. O serviço gerenciado oferece uma API unificada para modelos de linguagem com segurança de nível corporativo, conformidade e governança.
O Opus 4.5 se integra ao AgentCore, que fornece infraestrutura e elementos primitivos para construir agentes de produção. O AgentCore inclui memória persistente para manter contexto entre sessões, o Gateway de Ferramentas para converter suas APIs e funções Lambda em ferramentas compatíveis com agentes, e gerenciamento de identidade e acesso integrado para acesso seguro aos recursos.
Você pode implantar e monitorar agentes com isolamento completo de sessão, suporte para fluxos de trabalho de longa duração (até 8 horas) e recursos de observabilidade—permitindo que você se concentre na construção de agentes em vez de gerenciar infraestrutura.
O Gateway de Ferramentas converte suas APIs e funções Lambda existentes em ferramentas compatíveis com agentes com mínimo de código—funcionando junto com o recurso de busca de ferramentas do modelo para orquestrar centenas de ferramentas. A observabilidade integrada através do Amazon CloudWatch rastreia uso de tokens, latência e taxas de erro em seus fluxos de trabalho de agentes.
Como começar
Para começar a usar o Opus 4.5 no Amazon Bedrock, você precisa configurar um cliente Python e importar as bibliotecas necessárias:
Neste exemplo, definimos múltiplas ferramentas com defer_loading para ativar a busca de ferramentas. Isso permite que o modelo descubra e carregue apenas as ferramentas que necessita em vez de carregar todas as definições antecipadamente:
Agora invocamos o modelo usando a Aplicação Programática (API) invoke_model com o parâmetro effort definido como médio:
# Construir a requisição com recursos beta ativados
request_body = {
"anthropic_version": "bedrock-2023-05-31",
# Ativar recursos beta: busca de ferramentas, exemplos de ferramentas e parâmetro effort
"anthropic_beta": ["tool-search-tool-2025-10-19", "tool-examples-2025-10-29", "effort-2025-11-24"],
"max_tokens": 4096,
"temperature": 0.7,
# Definir effort para "medium" para uso equilibrado de tokens
"output_config": {
"effort": "medium"
},
"messages": [
{
"role": "user",
"content": "What's the weather in Seattle?"
}
],
"tools": tools
}
# Invocar o modelo
response = bedrock_client.invoke_model(
modelId="global.anthropic.claude-opus-4-5-20251101-v1:0",
body=json.dumps(request_body)
)
# Fazer parsing da resposta
response_body = json.loads(response['body'].read())
O modelo utiliza busca de ferramentas para localizar a ferramenta relevante (get_weather) da biblioteca sem carregar todas as definições de ferramentas antecipadamente. O parâmetro effort, disponível em versão beta, controla quanto liberalmente o modelo gasta tokens em raciocínio, chamadas de ferramentas e respostas. Você pode definir effort como alto para melhores resultados, médio para uso equilibrado ou baixo para uso conservador de tokens.
Capacidades principais para desenvolvimento de agentes
O Opus 4.5 possui várias capacidades que o tornam adequado para construir agentes em produção. O modelo mantém coerência em fluxos de trabalho estendidos, permitindo tomada de decisão consistente para agentes que executam processos com múltiplas etapas ao longo de horas ou dias. Melhor manipulação de ferramentas significa que agentes interagem mais confiávelmente com sistemas externos, Aplicações Programáticas (APIs) e interfaces de software—o modelo escolhe as ferramentas certas e interpreta resultados com maior precisão.
O Opus 4.5 também rastreia informações entre conversas e mantém contexto, ajudando agentes a acumular conhecimento ao longo do tempo e tomar decisões baseadas em histórico. O parâmetro effort, disponível em versão beta, oferece controle sobre uso de tokens. Você pode defini-lo como alto para melhores resultados quando qualidade importa mais, médio para desempenho equilibrado ou baixo para uso conservador de tokens. O Opus 4.5 ajusta o gasto de tokens entre raciocínio, chamadas de ferramentas e respostas com base nesta configuração.
Para implantações em produção, o Amazon Bedrock AgentCore oferece monitoramento e observabilidade através da integração com CloudWatch, rastreando uso de tokens em tempo real (útil ao ajustar o parâmetro effort), junto com métricas de latência, duração da sessão e taxas de erro para ajudar a otimizar desempenho do agente e gerenciar custos.
Preços e disponibilidade
O modelo é precificado em $5 por milhão de tokens de entrada e $25 por milhão de tokens de saída, tornando a inteligência em nível Opus acessível a um terço do custo das ofertas anteriores.
O modelo está disponível hoje no Amazon Bedrock através de inferência entre regiões, que roteia automaticamente requisições para capacidade disponível em regiões da AWS para maior throughput durante picos de demanda. Use este modelo para agentes que lidam com tarefas de longa duração, coordenam múltiplas ferramentas ou mantêm contexto em sessões estendidas.
Para informações detalhadas sobre disponibilidade, preços e especificações do modelo, consulte a documentação do Amazon Bedrock.
Para implantar agentes em escala, explore o Opus 4.5 no Amazon Bedrock AgentCore para obter infraestrutura gerenciada com orquestração de ferramentas e monitoramento. O Opus 4.5 se destaca em fluxos de trabalho complexos e de longa duração, como desenvolvimento de software e operações empresariais. Suas capacidades em manipulação de ferramentas, gerenciamento de contexto e tomada de decisão o tornam valioso para construir agentes que operam de forma confiável em ambientes de produção.
A principal vantagem dessa abordagem é eliminar a necessidade de gerenciar múltiplos endpoints ou infraestruturas isoladas. Após fazer o upload dos arquivos do modelo para o Amazon S3 (Amazon Simple Storage Service), a AWS assume todas as operações complexas: provisionamento de GPUs (Processadores Gráficos), configuração de servidores de inferência e dimensionamento automático conforme a demanda. Dessa forma, as equipes podem concentrar-se no desenvolvimento de aplicações enquanto a infraestrutura é gerenciada automaticamente.
Fluxo de importação: do modelo Hugging Face ao envio do S3, processamento no Bedrock e execução via API compatível com OpenAI — fonte: Aws
Compatibilidade com a API do OpenAI
Os modelos GPT-OSS suportam completamente a API de Conclusões de Chat do OpenAI, mantendo compatibilidade integral com aplicações existentes. Isso significa que recursos como matrizes de mensagens, definições de papéis (sistema, usuário ou assistente) e estruturas de resposta padrão — incluindo métricas de uso de tokens — funcionam sem modificações.
Ao apontar suas aplicações para os endpoints do Amazon Bedrock, o código existente requer mudanças mínimas ou nenhuma mudança. Essa continuidade reduz significativamente o esforço de migração e o risco de regressões em produção.
Entendendo os Modelos GPT-OSS
Os modelos GPT-OSS representam os primeiros modelos de linguagem com pesos abertos lançados pela OpenAI desde o GPT-2, distribuídos sob a licença Apache 2.0. Isso significa que qualquer organização pode fazer download, modificar e utilizar esses modelos sem custos adicionais, inclusive para aplicações comerciais.
GPT-OSS-20B (20 Bilhões de Parâmetros)
Este modelo é otimizado para situações onde velocidade e eficiência são críticas. Apesar de possuir 21 bilhões de parâmetros, apenas 3,6 bilhões são ativados por token, permitindo execução em dispositivos com apenas 16 GB de memória. Com 24 camadas, 32 especialistas (4 ativos por token) e janela de contexto de 128k, oferece desempenho comparável ao o3-mini da OpenAI com a vantagem de poder ser implantado localmente para respostas mais rápidas.
GPT-OSS-120B (120 Bilhões de Parâmetros)
Desenvolvido para tarefas complexas de raciocínio — como codificação, matemática e uso de ferramentas em agentes automáticos — este modelo ativa 5,1 bilhões de parâmetros por token. Com 36 camadas, 128 especialistas (4 ativos por token) e janela de contexto de 128k, atinge desempenho equivalente ao o4-mini da OpenAI executando eficientemente em uma única Unidade de Processamento Gráfico (GPU) de 80 GB.
Arquitetura de Mistura de Especialistas
Ambos os modelos utilizam uma arquitetura de Mistura de Especialistas (MoE). Nessa abordagem, diferentes subconjuntos dos componentes do modelo (chamados de especialistas) tratam diferentes tipos de tarefas. Para cada requisição, apenas os especialistas mais relevantes são ativados, oferecendo desempenho potente enquanto mantém os custos computacionais gerenciáveis.
Formato dos Arquivos do Modelo GPT-OSS
Quando você faz download de modelos GPT-OSS do Hugging Face, recebe vários tipos de arquivo que trabalham em conjunto:
Arquivos de pesos (.safetensors): Contêm os parâmetros reais do modelo
Arquivos de configuração (config.json): Definem como o modelo funciona
Arquivos do tokenizador: Realizam o processamento de texto
Arquivo de índice (model.safetensors.index.json): Mapeia dados de pesos para arquivos específicos
O arquivo de índice exige uma estrutura específica para funcionar com o Amazon Bedrock. Deve incluir um campo de metadados no nível raiz, que pode estar vazio ({}) ou conter o tamanho total do modelo (que precisa estar abaixo de 200 GB para modelos de texto).
Modelos do Hugging Face às vezes incluem campos de metadados extras — como total_parameters — que o Amazon Bedrock não suporta. Esses campos devem ser removidos antes da importação. A estrutura correta deve ser assim:
Criar trabalhos de importação de modelos no Amazon Bedrock
Fazer upload de arquivos para o Amazon S3
Invocar modelos após implantação
Usar a função de serviço do Custom Model Import
Um bucket S3 na sua região AWS de destino
Aproximadamente 40 GB de espaço em disco local para download do modelo
Acesso à Região US East 1 (N. Virginia) — obrigatória para modelos personalizados baseados em GPT-OSS
Interface de Linha de Comando da AWS (AWS CLI) versão 2.x instalada
Interface de Linha de Comando do Hugging Face (instale com pip install -U "huggingface_hub[cli]")
Download e Preparação dos Arquivos do Modelo
Para fazer download do modelo GPT-OSS usando a biblioteca Hugging Face Hub com transferência rápida habilitada:
import os
os.environ['HF_HUB_ENABLE_HF_TRANSFER'] = '1'
from huggingface_hub import snapshot_download
local_dir = snapshot_download(
repo_id="Tonic/med-gpt-oss-20b",
local_dir="./med-gpt-oss-20b",
)
print(f"Download complete! Model saved to: {local_dir}")
Após o download ser concluído (típicamente entre 10 a 20 minutos para 40 GB), verifique a estrutura do arquivo model.safetensors.index.json. Edite-o se necessário para garantir que o campo de metadados exista (pode estar vazio):
O envio de 40 GB normalmente é concluído em 5 a 10 minutos. Para verificar se os arquivos foram enviados:
aws s3 ls s3://amzn-s3-demo-bucket/med-gpt-oss-20b/ --human-readable
Anote o URI do S3 (por exemplo, s3://amzn-s3-demo-bucket/med-gpt-oss-20b/) para usar no trabalho de importação. Os arquivos de saída são criptografados com as configurações de criptografia do bucket S3, seja com criptografia do lado do servidor SSE-S3 (Criptografia de Lado do Servidor S3) ou AWS Key Management Service (AWS KMS) dependendo de como você configurou o bucket.
Exemplo de arquivos do modelo armazenados no bucket S3 — fonte: Aws
Importação do Modelo no Amazon Bedrock
Após fazer upload dos arquivos do modelo para o S3, você pode importá-lo para o Amazon Bedrock, onde será processado e disponibilizado para inferência.
Use o AWS CLI para criar o trabalho de importação:
A importação do modelo normalmente é concluída em 10 a 15 minutos para um modelo de 20B de parâmetros. Você pode acompanhar o progresso no console do Amazon Bedrock ou via AWS CLI. Após a conclusão, anote seu importedModelArn, que será usado para invocar o modelo.
Interface de importação de modelo no console do Amazon Bedrock — fonte: Aws
Invocação do Modelo com API Compatível com OpenAI
Após a conclusão da importação, você pode testar o modelo usando o formato familiar da API de Conclusões de Chat do OpenAI para verificar se está funcionando corretamente.
Crie um arquivo chamado test-request.json com o seguinte conteúdo:
{
"messages": [
{
"role": "system",
"content": "You are a helpful AI assistant."
},
{
"role": "user",
"content": "What are the common symptoms of Type 2 Diabetes?"
}
],
"max_tokens": 500,
"temperature": 0.7
}
Use o AWS CLI para enviar a requisição ao seu endpoint de modelo importado:
{
"id": "chatcmpl-f06adcc78daa49ce9dd2c58f616bad0c",
"object": "chat.completion",
"created": 1762807959,
"model": "YOUR-ACCOUNT-ID-MODEL-ID",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Type 2 Diabetes often presents with a range of symptoms...",
"refusal": null,
"function_call": null,
"tool_calls": []
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 98,
"completion_tokens": 499,
"total_tokens": 597
}
}
A estrutura da resposta corresponde exatamente ao formato do OpenAI — choices contém a resposta, usage fornece contagens de tokens e finish_reason indica o status de conclusão. O código existente de análise de resposta do OpenAI funciona sem modificações.
Migração do OpenAI para Amazon Bedrock
Migrar do OpenAI requer apenas mudanças mínimas no código — apenas o método de invocação muda, enquanto as estruturas de mensagens permanecem idênticas.
A migração é direta e oferece vantagens significativas: custos previsíveis, melhor privacidade de dados e a capacidade de ajustar modelos para necessidades específicas.
Limpeza de Recursos
Quando terminar, limpe seus recursos para evitar cobranças desnecessárias:
Se não precisar mais da função IAM, delete-a usando o console do IAM.
Práticas Recomendadas
Considere as seguintes práticas recomendadas ao trabalhar com importação de modelos:
Validação de arquivos: Antes de fazer upload, verifique se model.safetensors.index.json tem a estrutura de metadados correta, se os arquivos safetensors referenciados existem e se os tokenizadores são suportados. A validação local economiza tempo em tentativas de importação.
Segurança: No console do Amazon Bedrock, crie funções IAM automaticamente com permissões de privilégio mínimo. Para múltiplos modelos, use prefixos S3 separados para manter isolamento.
Versionamento: Use caminhos descritivos no S3 (como gpt-oss-20b-v1.0/) ou nomes de trabalhos de importação com data para rastreamento de implantações.
O Amazon Bedrock Custom Model Import está disponível em múltiplas regiões, com suporte se expandindo para regiões adicionais em breve. Consulte Suporte de recursos por região AWS no Amazon Bedrock para as atualizações mais recentes. Os modelos GPT-OSS estarão inicialmente disponíveis na Região US-East-1 (N. Virginia).
Conclusão
O Amazon Bedrock Custom Model Import oferece às organizações a capacidade de trazer modelos GPT-OSS para um ambiente gerenciado e serverless, mantendo compatibilidade total com a API do OpenAI. Isso reduz significativamente o esforço de migração de aplicações existentes para a AWS.
Os benefícios práticos são evidentes: segurança de nível empresarial, dimensionamento automático, controle de custos previsível, privacidade de dados aprimorada e a possibilidade de ajustar modelos com seus próprios dados proprietários. Tudo isso com mudanças mínimas no código existente.
Tem dúvidas ou feedback? Conecte-se com a comunidade através do AWS re:Post para Amazon Bedrock — eles adorariam ouvir sobre sua experiência.