Cache Semântico (Semantic Caching)
O cache semântico armazena respostas passadas do modelo e as reutiliza quando uma nova requisição é semanticamente similar a uma anterior, casando por significado via embeddings, não por texto exato. Reduz custo e latência em consultas repetitivas ou quase duplicadas, comuns em produção.
Problema
Muitas consultas em produção são paráfrases de outras já respondidas, então reexecutar o modelo completo em cada uma desperdiça custo e latência.
Quando usar
Use o cache semântico quando o tráfego contém muitas perguntas similares ou repetidas e as respostas são estáveis o bastante para reutilizar: FAQs, suporte, assistentes de documentação.
Solução
Embede cada requisição recebida e busca num cache de embeddings de requisições anteriores. Se existe uma entrada suficientemente similar (acima de um limiar de similaridade), devolve sua resposta armazenada; senão, chama o modelo e guarda o novo par.
Ajuste o limiar de similaridade com cuidado: frouxo demais devolve respostas erradas a perguntas sutilmente distintas; estrito demais perde acertos válidos. Adicione TTLs e invalidação para que as respostas não fiquem obsoletas.
Componentes
Benefícios
- Menor custo ao evitar chamadas repetidas ao modelo.
- Menor latência nos acertos de cache.
- Respostas mais consistentes a perguntas similares.
Riscos
- Um limiar frouxo serve respostas em cache erradas.
- Cache obsoleto sem TTL nem invalidação.
- Respostas personalizadas ou sensíveis ao tempo se armazenam mal.
Quando não usar
- Quando a maioria das consultas é única.
- Quando as respostas dependem de dados frescos, de usuário ou de tempo.
- Quando até pequenos descompassos são inaceitáveis.
Tecnologias
Exemplos
- Reutilizar a resposta a 'como redefino minha senha' em suas muitas formulações.
- Armazenar perguntas comuns de documentação num assistente de suporte.
- Curto-circuitar perguntas analíticas idênticas repetidas.
KPIs
- Taxa de acertos de cache
- Proporção de requisições servidas do cache; a alavanca de economia em custo e latência.
- Taxa de falsos acertos
- Com que frequência um acerto 'similar' devolve uma resposta errada ou obsoleta; o risco central de cachear por significado.
- Custo e latência economizados por acerto
- Tokens e tempo evitados nos acertos, a vantagem pela qual você troca o risco de falso acerto.
- Calibração do limiar de similaridade
- Se o limiar equilibra taxa de acertos e falsos acertos; frouxo demais prejudica a qualidade, estrito demais elimina a economia.
Modos de falha observados
- Falsos acertos: duas consultas similares no espaço de embeddings precisam de respostas distintas, e o cache devolve a errada.
- Obsolescência: as respostas cacheadas ficam desatualizadas enquanto os fatos subjacentes mudam.
- Mau ajuste do limiar: frouxo demais devolve respostas erradas, estrito demais dá quase nenhum acerto.
- Envenenamento de cache: uma resposta ruim é cacheada e depois servida repetidamente.
Lições aprendidas
- Ajuste o limiar de similaridade com tráfego real; é o parâmetro decisivo.
- Nunca cacheie onde a atualidade ou a correção sejam críticas sem uma estratégia de invalidação.
- Valide ou amostre os acertos de cache para detectar falsos antes dos usuários.
- Restrinja os caches de forma estreita (por tenant, por contexto) para não vazar a resposta errada entre usuários.
FAQs
- Como difere de um cache normal?
- Um cache normal casa chaves exatas; um cache semântico casa por significado usando embeddings, então perguntas parafraseadas também acertam.
- Qual é o risco principal?
- Um limiar de similaridade frouxo demais devolve uma resposta em cache para uma pergunta que na verdade é distinta. Ajuste o limiar e valide com tráfego real.
- Como evito respostas obsoletas?
- Defina TTLs e invalide entradas quando os dados subjacentes mudam; evite armazenar respostas personalizadas ou sensíveis ao tempo.