O Desafio da Eficiência em IA Generativa
Conforme as organizações ampliam suas implementações de inteligência artificial generativa, um desafio crítico se intensifica: como equilibrar qualidade dos resultados, custos operacionais e velocidade de resposta? Os números revelam a urgência dessa questão. Os custos de inferência dominam entre 70 a 90% das despesas operacionais de modelos de linguagem grande (LLM). Quando estratégias de prompting verbosas inflam o volume de tokens de 3 a 5 vezes, o impacto financeiro e de desempenho se torna inescapável. Organizações buscam ativamente alternativas mais eficientes para interagir com esses modelos.
Métodos tradicionais de prompting, embora funcionem, frequentemente criam sobrecarga desnecessária que prejudica tanto a eficiência de custos quanto os tempos de resposta. É neste contexto que surge a Cadeia de Rascunho (Chain-of-Draft, CoD), uma técnica inovadora de prompting que muda radicalmente como modelos abordam tarefas de raciocínio.
Da Cadeia de Pensamento para Cadeia de Rascunho
Compreendendo a Cadeia de Pensamento Tradicional
A técnica de Cadeia de Pensamento (Chain-of-Thought, CoT) guia modelos de linguagem a raciocinar sobre problemas passo a passo, em vez de saltar diretamente para respostas. Este método provou ser particularmente eficaz em tarefas complexas como quebra-cabeças lógicos, problemas matemáticos e cenários de raciocínio de bom senso. Ao espelhar padrões humanos de resolução de problemas, CoT ajuda modelos a decompor questões complexas em etapas gerenciáveis, melhorando tanto a precisão quanto a transparência.
Considere um exemplo simples: “Se há 5 maçãs e você come 2, quantas maçãs restam?” Uma resposta com CoT seria: “Comece com 5 maçãs. Como 2 maçãs. Subtraia 2 de 5. 5 – 2 = 3 maçãs restantes.”
Porém, essa abordagem apresenta desvantagens significativas em ambientes de produção. A natureza verbosa das respostas CoT aumenta o uso de tokens e consequentemente os custos. O tempo estendido necessário para gerar explicações detalhadas resulta em latência mais alta, tornando-a menos adequada para aplicações em tempo real. Além disso, os outputs extensos complicam o processamento posterior e integração com outros sistemas.
Apresentando a Cadeia de Rascunho
A Cadeia de Rascunho (CoD) é uma técnica de prompting que visa reduzir verbosidade limitando o número de palavras em cada etapa de raciocínio. Ela concentra-se apenas nos cálculos ou transformações essenciais necessários para avançar, reduzindo significativamente o uso de tokens e a latência de inferência.
CoD se inspira em como humanos resolvem problemas com anotações mentais breves em vez de explicações verbosas. A chave da inovação reside em uma restrição simples mas poderosa: cada etapa de raciocínio é limitada a cinco palavras ou menos. Essa limitação força o modelo a focar em componentes lógicos essenciais enquanto minimiza verbosidade desnecessária.
Voltando ao exemplo anterior: para a pergunta “Jason tinha 20 pirulitos. Ele deu alguns a Denny. Agora Jason tem 12 pirulitos. Quantos pirulitos Jason deu a Denny?”, uma resposta CoT poderia incluir várias frases explicativas. Uma resposta CoD simplesmente diria: “Início: 20, Fim: 12, 20 – 12 = 8”. Esta abordagem minimalista alcança o mesmo raciocínio lógico usando significativamente menos tokens.

Por Que a Cadeia de Rascunho Funciona
A ideia fundamental por trás de CoD é que cadeias de raciocínio tipicamente contêm alta redundância. Destilando etapas até seu núcleo semântico, CoD ajuda o modelo a focar na estrutura lógica da tarefa em vez de fluência linguística. O resultado é latência de inferência menor devido a outputs mais curtos, custos de token reduzidos pela geração minimizada e output mais limpo para parsing ou automação posterior.
Esse minimalismo é alcançado sem sacrificar precisão. De acordo com pesquisa na área, CoD “alcançou 91,4% de precisão em GSM8K (versus 95,3% para CoT), enquanto reduzia tokens de output em até 92,1%, e cortava latência pela metade em vários modelos testados”.
Tecnicamente, CoD utiliza prompts em linguagem natural que instruem o modelo a “pensar passo a passo” enquanto explicitamente limitam o comprimento de cada etapa de raciocínio: “Mantenha apenas um rascunho mínimo para cada etapa de pensamento, com no máximo 5 palavras.” Modelos como GPT-4, Claude e Cohere Command R+ funcionaram especialmente bem sob essas restrições, particularmente quando exemplos few-shot foram usados para demonstrar o padrão de raciocínio conciso.
Além de tarefas aritméticas, CoD demonstrou forte desempenho em tarefas de raciocínio de bom senso. Avaliações usando benchmarks revelaram que CoD não apenas reduz significativamente a geração de tokens e latência, mas em vários casos supera CoT em precisão — especialmente quando output verboso não é necessário. Um exemplo notável com um modelo de linguagem grande em tarefas de compreensão de esportes mostrou que CoT produzia respostas longas e verbosas com média de 172,5 tokens de output, enquanto CoD reduzia isso para 31,3 tokens, alcançando redução de ~82%. Curiosamente, a precisão melhorou ligeiramente, demonstrando que CoD pode ser mais eficaz com menos palavras.
Implementação Prática na AWS
Configuração e Pré-requisitos
Para testar e comparar técnicas de prompting no Amazon Bedrock, você precisa verificar se possui:
- Conta AWS com permissão para criar e executar funções Lambda
- Acesso ao Amazon Bedrock habilitado em sua região AWS (por exemplo, us-east-1) com Model Access para modelos de sua escolha
- Função AWS IAM para execução da função Lambda
- Permissões para invocar modelos do Amazon Bedrock (bedrock:Converse)
- Permissões para enviar métricas personalizadas ao Amazon CloudWatch (cloudwatch:PutMetricData)
- Permissões opcionais de CloudWatch Logs para logging
- Bibliotecas Python necessárias (boto3), incluída no ambiente de runtime do AWS Lambda para Python 3.9 ou posterior
Avaliação com a API Bedrock Converse
O ponto de partida é criar uma função AWS Lambda que interage com modelos usando a API Amazon Bedrock Converse. Essa API fornece uma interface unificada e consistente para interagir com vários modelos de fundação, simplificando o envio de mensagens conversacionais e recebimento de respostas, suportando diálogos multi-turno e recursos avançados enquanto gerencia autenticação AWS e infraestrutura.
A função Lambda será configurada para:
- Inicializar clientes para Amazon Bedrock Runtime e CloudWatch
- Enviar um prompt estático como mensagem do usuário para a API Converse
- Recuperar o texto da resposta e calcular latência e uso de tokens para entrada e saída
- Publicar métricas no CloudWatch e registrar logs relevantes
- Retornar a resposta do modelo junto com contagens de tokens de entrada/saída
- Registrar erros e retorná-los com código HTTP apropriado
Código da Função Lambda
import json
import boto3
import time
import logging
from botocore.exceptions import ClientError
logger = logging.getLogger()
logger.setLevel(logging.INFO)
bedrock = boto3.client('bedrock-runtime', region_name='us-east-1')
cloudwatch = boto3.client('cloudwatch')
MODEL_ID = "model1-id" # Replace with actual Model 1 ID
PROMPT = (
"You have three boxes. Each box contains three balls, but the balls can be red, blue, or green. "
"Box 1 is labeled as 'Red Balls Only'. Box 2 is labeled 'Blue Balls Only'. "
"Box 3 is labeled 'Red and Blue Balls Only'. The labels on the boxes are all incorrect. "
"The Task: You must determine the contents of each box, knowing that all labels are incorrect. "
"You can only take a single ball from one box and observe its color. "
"Then you must deduce the contents of all three boxes. "
"Think step by step to answer the question, but only keep a minimum draft for each thinking step, with 5 words at most. "
"Return the answer at the end of the response after separator ###."
)
def lambda_handler(event, context):
conversation = [{"role": "user", "content": [{"text": PROMPT}]}]
start_time = time.time()
try:
response = bedrock.converse(
modelId=MODEL_ID,
messages=conversation,
inferenceConfig={"maxTokens": 2000, "temperature": 0.7}
)
response_text = response["output"]["message"]["content"][0]["text"]
latency = time.time() - start_time
input_tokens = len(PROMPT.split())
output_tokens = len(response_text.split())
cloudwatch.put_metric_data(
Namespace='ChainOfDraft',
MetricData=[
{"MetricName": "Latency", "Value": latency, "Unit": "Seconds"},
{"MetricName": "TokensUsed", "Value": input_tokens + output_tokens, "Unit": "Count"},
]
)
logger.info({
"request_id": context.aws_request_id,
"latency_seconds": round(latency, 2),
"total_tokens": input_tokens + output_tokens
})
return {
"statuscode": 200,
"body": json.dumps({
"response": response_text,
"input_tokens": input_tokens,
"output_tokens": output_tokens,
"metrics": {
"latency_seconds": round(latency, 2),
"total_tokens": input_tokens + output_tokens,
},
}),
}
except ClientError as e:
logger.error(f"AWS service error: {e}")
return {"statuscode": 500, "body": json.dumps("Service error occurred")}
except Exception as e:
logger.error(f"Unexpected error: {e}")
return {"statusCode": 500, "body": json.dumps(f"Internal error occurred: {e}")}
Estratégias de Teste
Para avaliar as técnicas de prompting, três abordagens são testadas:
Prompt Padrão: O prompt sem instruções de raciocínio, pedindo resposta direta sem explicação.
Prompt de Cadeia de Pensamento: O mesmo puzzle com instrução “Think step by step to answer the question” e retornar a resposta após separador.
Prompt de Cadeia de Rascunho: O puzzle com instrução “Think step by step to answer the question but only keep a minimum draft for each thinking step, with 5 words at most.”
Resultados Práticos
Ao testar a função Lambda com esses prompts em dois modelos diferentes, os resultados revelaram eficiências notáveis:
Para o Modelo-1: CoD reduziu o uso total de tokens de 350 para 216 (redução de 39%) e cortou latência de 3,28 para 1,58 segundos (redução de 52%).
Para o Modelo-2: os ganhos foram ainda maiores. CoD baixou tokens de 601 para 142 (redução de 76%) e latência de 3,81 para 0,79 segundos (redução de 79%).
Esses números demonstram que Cadeia de Rascunho oferece melhorias significativas em velocidade e eficiência de tokens comparado a Cadeia de Pensamento, com resultados especialmente fortes no Modelo-2.
Quando Não Usar Cadeia de Rascunho
Embora CoD ofereça benefícios convincentes em eficiência e desempenho, não é universalmente aplicável. Alguns cenários requerem CoT ou abordagens ainda mais verbosas:
Casos sem exemplos prévios: CoD funciona melhor quando acompanhado de exemplos few-shot robustos. Em cenários zero-shot — sem padrões de raciocínio fornecidos — modelos frequentemente lutam para adotar o estilo minimalista de rascunho, levando a menor precisão ou etapas de raciocínio incompletas.
Tarefas exigindo alta interpretabilidade: Para casos como revisão de documentos legais ou médicos, trilhas de auditoria ou ambientes regulados, raciocínio verboso pode ser essencial. As explicações passo a passo transparentes de CoT oferecem melhor rastreabilidade e confiança.
Modelos de linguagem pequenos: CoD teve desempenho inferior em modelos com menos de 3 bilhões de parâmetros. Esses modelos carecem da fidelidade de seguimento de instruções e poder de raciocínio necessários para executar prompts no estilo CoD efetivamente. CoT pode produzir melhores resultados nesses casos.
Tarefas criativas ou abertas: Tarefas que se beneficiam de elaboração — como escrita, ideação ou conversas voltadas ao usuário — podem perder valor se muito condensadas. CoD é melhor adequado para raciocínio estruturado, lógica e tarefas determinísticas onde brevidade melhora o desempenho.
Conclusão e Pontos-Chave
A Cadeia de Rascunho emerge como uma técnica eficiente para organizações buscando otimizar implementações de IA generativa. Ao encorajar modelos de linguagem a raciocinar em etapas concisas e focadas, CoD alcança melhorias notáveis em desempenho e utilização de recursos. Implementações usando Amazon Bedrock e AWS Lambda demonstram benefícios significativos em uso de tokens e melhoria em latência comparado ao prompting tradicional de Cadeia de Pensamento, mantendo precisão comparável em vários modelos de fundação e tarefas complexas de raciocínio.
Conforme a IA continua evoluindo, CoD representa um passo significativo em direção a modelos de linguagem mais eficientes e performáticos. É particularmente valioso para tarefas de raciocínio estruturado onde velocidade e eficiência de tokens são críticas, embora não seja uma solução única para todos os cenários. Profissionais são encorajados a explorar CoD em seus próprios fluxos de trabalho de IA, aproveitando seu potencial para reduzir custos, melhorar tempos de resposta e aumentar escalabilidade.
O futuro da IA reside em abordagens de raciocínio mais inteligentes e eficientes, e a técnica de prompting de Cadeia de Rascunho está na vanguarda dessa transformação.
Recursos Adicionais
- O que é engenharia de prompts?
- Cadeia de Rascunho: Pensando Mais Rápido Escrevendo Menos
- Conceitos de Engenharia de Prompts
Fonte
Move Beyond Chain-of-Thought with Chain-of-Draft on Amazon Bedrock (https://aws.amazon.com/blogs/machine-learning/move-beyond-chain-of-thought-with-chain-of-draft-on-amazon-bedrock/)
Leave a Reply