Balanceando Precisão, Custo e Latência em Buscas de Vídeo
Otimizar modelos para busca semântica de vídeos apresenta um dilema clássico em machine learning: modelos menores e rápidos carecem de inteligência de roteamento, enquanto modelos maiores e mais precisos adicionam latência significativa. A AWS, por meio de seu portfólio de serviços de inteligência artificial, oferece agora uma solução que permite alcançar os três objetivos simultaneamente.
Em um artigo anterior da série, foi apresentado como construir um sistema de busca semântica multimodal em vídeos utilizando roteamento inteligente de intenções com o modelo Anthropic Claude Haiku no Amazon Bedrock. Embora o modelo Haiku entreguasse forte precisão para interpretar intenções de busca, aumentava o tempo total de processamento para 2 a 4 segundos, representando aproximadamente 75% da latência geral.
O cenário fica ainda mais desafiador quando a lógica de roteamento se torna mais complexa. Metadados empresariais costumam ir muito além dos cinco atributos simples (título, legenda, pessoas, gênero e timestamp), incluindo ângulos de câmera, sentimentos, janelas de direitos e licenças, além de taxonomias específicas de domínio. Prompts mais sofisticados exigem modelos maiores, que aumentam custos e latência de forma desproporcional.
A Solução: Destilação de Modelos
Em vez de escolher entre um modelo rápido mas superficial ou um modelo preciso mas custoso, a destilação de modelos — uma técnica de personalização disponível no Amazon Bedrock — permite treinar um modelo pequeno para realizar tarefas complexas com latência e custo significativamente reduzidos.
O processo envolve transferir inteligência de um modelo professor (Amazon Nova Premier, o mais capaz da família) para um modelo aluno (Amazon Nova Micro, otimizado para alta vazão). Essa abordagem reduz custos de inferência em mais de 95% e latência em 50%, mantendo a qualidade de roteamento exigida por sistemas de produção.
Arquitetura da Solução Passo a Passo
1. Preparação de Dados de Treinamento
Uma das principais vantagens da destilação sobre outras técnicas como ajuste fino supervisionado (SFT) é que não requer um conjunto de dados completamente rotulado. No SFT, cada exemplo precisa de respostas geradas por humanos. Na destilação, você precisa apenas de prompts — o Amazon Bedrock invoca automaticamente o modelo professor para gerar respostas de alta qualidade.
A plataforma aplica técnicas de síntese e aumento de dados para produzir um conjunto de treinamento diverso contendo até 15 mil pares prompt-resposta. Para este exemplo, foram preparados 10 mil exemplos sintéticos com o Nova Premier, distribuídos uniformemente entre consultas de sinais visuais, áudio, transcrição e metadados, cobrindo o intervalo completo de entradas esperadas.
Cada registro segue o esquema bedrock-conversation-2024, onde a função usuário (prompt de entrada) é obrigatória e a função assistente (resposta desejada) é opcional. Um exemplo prático:
{
"schemaVersion": "bedrock-conversation-2024",
"system": [{
"text": "Return JSON with visual, audio, transcription, metadata weights (sum=1.0) and reasoning for the given video search query."
}],
"messages": [
{
"role": "user",
"content": [{
"text": "Olivia talking about growing up in poverty"
}]
},
{
"role": "assistant",
"content": [{
"text": "{\"visual\": 0.2, \"audio\": 0.1, \"transcription\": 0.6, \"metadata\": 0.1, \"reasoning\": \"The query focuses on spoken content ('talking about'), making transcription most important. Visual and audio elements are secondary since they support the context, while metadata is minimal.\"}"
}]
}
]
}
Para adaptar a distribuição a domínios específicos, está disponível um script de geração de dados que permite criar mais exemplos sintéticos usando o Nova Premier.
2. Executando o Trabalho de Destilação
Com os dados de treinamento no Amazon Simple Storage Service (Amazon S3), o próximo passo é submeter o trabalho de destilação. O processo utiliza os prompts para gerar respostas do modelo professor, então usa esses pares para ajustar o modelo aluno. O Amazon Bedrock gerencia toda a orquestração e infraestrutura automaticamente — não há cluster para provisionar, hiperparâmetros para ajustar ou pipelines complexos para configurar.
Você especifica o modelo professor, o modelo aluno, o caminho S3 dos dados e uma função de Controle de Acesso à Identidade (IAM – Identity and Access Management). O resto é gerenciado pela plataforma. Veja um exemplo de código:
import boto3
from datetime import datetime
bedrock_client = boto3.client(service_name="bedrock")
teacher_model = "us.amazon.nova-premier-v1:0"
student_model = "amazon.nova-micro-v1:0:128k"
job_name = f"video-search-distillation-{datetime.now().strftime('%Y-%m-%d-%H-%M-%S')}"
model_name = "nova-micro-video-router-v1"
response = bedrock_client.create_model_customization_job(
jobName=job_name,
customModelName=model_name,
roleArn=distillation_role_arn,
baseModelIdentifier=student_model,
customizationType="DISTILLATION",
trainingDataConfig={"s3Uri": training_s3_uri},
outputDataConfig={"s3Uri": output_s3_uri},
customizationConfig={
"distillationConfig": {
"teacherModelConfig": {
"teacherModelIdentifier": teacher_model,
"maxResponseLengthForInference": 1000
}
}
}
)
job_arn = response['jobArn']
O trabalho executa de forma assíncrona. Para 10 mil exemplos com o Nova Micro, esperase conclusão em poucas horas.
3. Implantando o Modelo Destilado
Após a conclusão, o modelo personalizado fica disponível e pronto para implantação. O Amazon Bedrock oferece duas opções: Throughput Provisionado para cargas de trabalho previsíveis e de alto volume, ou Inferência sob Demanda para acesso flexível com pagamento por uso. Para equipes começando, a inferência sob demanda é a recomendada — sem endpoints para provisionar, sem compromissos horários e sem requisitos de uso mínimo.
Uma vez com status “InService”, o modelo pode ser invocado usando as APIs padrão InvokeModel ou Converse. Você paga apenas pelos tokens consumidos, aos custos do Nova Micro: $0,000035 por 1 mil tokens de entrada e $0,000140 por 1 mil tokens de saída.
import boto3
import json
bedrock_runtime = boto3.client(service_name="bedrock-runtime")
custom_model_arn = bedrock_client.get_model_customization_job(
jobIdentifier=job_arn
)['outputModelArn']
response = bedrock_runtime.converse(
modelId=custom_model_arn,
messages=[
{
"role": "user",
"content": [{"text": query}]
}
]
)
routing_weights = json.loads(
response['output']['message']['content'][0]['text']
)
print(routing_weights)
# {"visual": 0.7, "audio": 0.1, "transcription": 0.1, "metadata": 0.1}
Avaliação e Resultados
Qualidade de Roteamento
Antes de comparar com o roteador original, é importante validar que a destilação melhorou a capacidade do modelo base. O modelo Nova Micro destilado demonstrou formato JSON consistente com pesos numéricos que somam 1,0, enquanto a versão base produzia respostas em texto livre, JSON incompleto e valores de peso não-numéricos.
Para uma consulta sobre “CEO discutindo resultados trimestrais”, o modelo destilado retornou pesos apropriados com raciocínio específico, enquanto a versão base lutava com inconsistências de formato e lógica genérica.
Comparação com o Baseline Original
Ambos os modelos foram avaliados contra um conjunto de 100 exemplos de teste usando a Avaliação de Modelos do Amazon Bedrock. Foi definida uma rubrica personalizada de “Qualidade Geral” que instrui o Claude Sonnet a avaliar cada predição em duas dimensões: precisão dos pesos comparados à verdade esperada e qualidade do raciocínio.
O modelo Nova Micro destilado alcançou pontuação 4,0 em 5, praticamente idêntica ao Claude 4.5 Haiku mas com latência aproximadamente 50% menor (833ms versus 1.741ms). A vantagem de custo é ainda mais dramática: redução de mais de 95% tanto em tokens de entrada quanto de saída, sem compromissos antecipados.
Resumo comparativo de métricas:
- Pontuação LLM-as-judge: Nova Micro destilado (4,0/5) versus Claude 4.5 Haiku (4,0/5)
- Latência média: Nova Micro destilado (833ms) versus Claude 4.5 Haiku (1.741ms)
- Custo por 1k tokens entrada: Nova Micro destilado ($0,000035) versus Claude 4.5 Haiku ($0,80–$1,00)
- Custo por 1k tokens saída: Nova Micro destilado ($0,000140) versus Claude 4.5 Haiku ($4,00–$5,00)
- Consistência de formato: Nova Micro destilado (JSON consistente) versus Claude 4.5 Haiku (inconsistente)
Implementação Completa e Recursos
Para explorar a implementação completa, incluindo notebook, script de geração de dados de treinamento e utilitários de avaliação, visite o repositório GitHub. Lá você encontrará todos os componentes necessários para replicar a solução em seu ambiente.
Para não gerar cobranças contínuas, execute a seção de limpeza do notebook para remover recursos provisionados, incluindo endpoints de modelo implantados e dados armazenados no Amazon S3.
Conclusão
Este artigo encerra uma série de dois posts. A destilação de modelos oferece um caminho prático para alcançar eficiência de custo em produção sem sacrificar precisão de busca. Ao transferir comportamento de roteamento do Nova Premier para o Nova Micro usando destilação, reduz-se custo de inferência em mais de 95% e latência de pré-processamento pela metade, preservando a qualidade de roteamento necessária.
Para equipes operando busca de vídeo multimodal em larga escala, a destilação de modelos é um caminho consolidado para produção, balanceando inteligência de roteamento com velocidade e custo ao mesmo tempo. Para mergulhar na implementação, consulte o repositório GitHub e experimente a solução.
Fonte
Optimize video semantic search intent with Amazon Nova Model Distillation on Amazon Bedrock (https://aws.amazon.com/blogs/machine-learning/optimize-video-semantic-search-intent-with-amazon-nova-model-distillation-on-amazon-bedrock/)
Leave a Reply