Pular para o conteúdo principal

Cache do prompt: Um guia com implementação de código

Saiba o que é o prompt caching e como usá-lo com o Ollama para otimizar as interações LLM, reduzir custos e melhorar o desempenho em aplicativos de IA.
Actualizado 28 de jan. de 2025  · 12 min de leitura

Cache de prompts armazena respostas a prompts frequentemente solicitados. Isso permite que você modelos de linguagem ignorem o processamento redundante e recuperem respostas pré-geradas. Isso não apenas economiza custos e reduz a latência, mas também torna as interações baseadas em IA mais rápidas e eficientes.

Neste blog, exploraremos o que é o cache imediato, como ele funciona, seus benefícios e seus desafios. Também exploraremos aplicativos do mundo real e ofereceremos práticas recomendadas para estratégias eficazes de armazenamento em cache.

O que é o Prompt Caching?

Nesta seção, examinaremos o mecanismo de funcionamento do prompt caching, juntamente com alguns benefícios e considerações importantes que tornam essa técnica tão útil.

Desenvolver aplicativos de IA

Aprenda a criar aplicativos de IA usando a API OpenAI.
Comece a treinar gratuitamente

O mecanismo básico do cache imediato

Em sua essência, o cache de prompts funciona armazenando prompts e suas respostas correspondentes em um cache. Quando o mesmo prompt ou um prompt semelhante é enviado novamente, o sistema recupera a resposta armazenada em cache em vez de gerar uma nova resposta. Isso evita a computação repetitiva, acelera os tempos de resposta e reduz os custos.

Fluxograma - Cache do prompt

Benefícios do cache imediato

O cache imediato tem vários benefícios:

  • Redução de custos: Normalmente, os LLMs cobram com base no uso de tokens, o que significa que toda vez que um prompt é processado, os tokens de entrada (o próprio prompt) e de saída (a resposta) são adicionados ao total de uso. Ao reutilizar as respostas em cache, os desenvolvedores podem evitar pagar pela geração de tokens redundantes, reduzindo os custos da API.
  • Redução de latência: O armazenamento em cache nos modelos de IA acelera os tempos de resposta, melhorando o desempenho do sistema e liberando recursos.
  • Experiência aprimorada do usuário: Em aplicativos sensíveis ao tempo, como bots de atendimento ao cliente em tempo real ou plataformas de aprendizado interativo, cada milissegundo de atraso pode afetar a experiência do usuário. O armazenamento em cache torna o sistema mais eficiente com respostas em cache, pois ele pode lidar com um tráfego maior sem sacrificar o desempenho, contribuindo para um serviço mais dimensionável e confiável.

Advertências antes de implementar o cache de prompts

Antes de nos aprofundarmos na implementação do cache imediato, precisamos ter em mente algumas considerações. 

Tempo de vida do cache (TTL) 

Para garantir a atualização dos dados, cada resposta armazenada em cache deve ter um tempo de vida (TTL) na memória. O TTL determina por quanto tempo uma resposta em cache será considerada válida. Quando o TTL expira, a entrada do cache é removida ou atualizada, e o prompt correspondente é recalculado na próxima vez em que for solicitado.

Esse mecanismo garante que o cache não armazene informações desatualizadas. No caso de conteúdo estático ou atualizado com menos frequência, como documentos jurídicos ou manuais de produtos, um TTL mais longo pode ajudar a reduzir a recomputação sem correr o risco de perda de dados. Portanto, o ajuste adequado dos valores de TTL é essencial para manter um equilíbrio entre a atualização dos dados e a eficiência computacional.

Prompt de similaridade 

Às vezes, dois prompts são semelhantes, mas não idênticos. Determinar a proximidade de um novo prompt em relação a um prompt em cache existente é fundamental para um armazenamento em cache eficaz. A implementação da similaridade de prompts requer técnicas como correspondência difusa ou pesquisa semântica, em que o sistema usa incorporação de vetores para representar prompts e comparar sua similaridade.

Ao armazenar em cache as respostas para solicitações semelhantes, os sistemas podem reduzir a recomputação e, ao mesmo tempo, manter a alta precisão das respostas. No entanto, definir o limite de similaridade de forma muito vaga pode levar a incompatibilidades, enquanto defini-lo de forma muito rígida pode perder oportunidades de armazenamento em cache.

Estratégias de atualização do cache 

Estratégias como LRU (Least Recently Used) ajudam a gerenciar o tamanho do cache. O método LRU remove os dados menos acessados quando o cache atinge sua capacidade. Essa estratégia funciona bem em cenários em que determinados prompts são mais populares e precisam permanecer em cache, enquanto as consultas menos comuns podem ser removidas para abrir espaço para solicitações mais recentes.

Implementação do cache de prompts

A implementação do cache imediato é um processo de duas etapas.

Etapa 1: Identificação de solicitações repetidas

A primeira etapa da implementação do cache de prompts é identificar prompts frequentes e repetitivos no sistema. Seja para criar um chatbot, um assistente de codificação ou um processador de documentos, precisamos monitorar quais prompts estão sendo repetidos. Uma vez identificados, eles podem ser armazenados em cache para evitar cálculos redundantes.

Etapa 2: Armazenamento do prompt

Quando um prompt é identificado, sua resposta é armazenada no cache junto com metadados como tempo de vida (TTL), taxas de acerto/erro do cache e muito mais. Sempre que um usuário envia o mesmo prompt novamente, o sistema recupera a resposta armazenada em cache, ignorando o dispendioso processo de geração.

Implementação do código: Cache versus sem cache 

Com todo o conhecimento teórico, vamos mergulhar em um exemplo prático usando o Ollama para explorar o impacto do armazenamento em cache versus a ausência de armazenamento em cache em um ambiente local. Aqui, usamos dados de um livro de aprendizagem profunda hospedado na Web e modelos locais para resumir as primeiras páginas do livro. Faremos experimentos com vários LLMs, incluindo Gemma2, Llama2 e Llama3para comparar seu desempenho.

Pré-requisitos

Para este exemplo prático, usaremos o BeautifulSoupum pacote Python que analisa documentos HTML e XML, inclusive aqueles com marcação malformada. Para instalar o BeautifulSoup, execute o seguinte:

!pip install BeautifulSoup

Outra ferramenta que usaremos é o Ollama. Ele simplifica a instalação e o gerenciamento de grandes modelos de idiomas em sistemas locais.

Para começar, faça o download do Ollama e instale-o em sua área de trabalho. Podemos variar o nome do modelo de acordo com nossas necessidades. Confira o modelo biblioteca no site oficial do Ollama para que você possa procurar os diferentes modelos compatíveis com o Ollama. Execute o código a seguir no terminal:

ollama run llama3.1 

Está tudo pronto. Vamos começar!

Etapa 1: Importar as bibliotecas necessárias

Começamos com as seguintes importações:

  • time para rastrear o tempo de inferência para o código de armazenamento em cache e sem armazenamento em cache
  • requests para fazer solicitações HTTP e obter dados de páginas da Web
  • BeautifulSoup para analisar e limpar o conteúdo HTML
  • Ollama para usar LLMs localmente
import time
import requests
from bs4 import BeautifulSoup
import ollama

Etapa 2: Obter e limpar conteúdo

No código abaixo, definimos uma função fetch_article_content que recupera e limpa o conteúdo de texto de um determinado URL. Ele tenta buscar o conteúdo da página da Web usando a biblioteca requests, com até três novas tentativas em caso de falhas, como erros de rede ou problemas no servidor.

A função usa BeautifulSoup para analisar o conteúdo HTML e remove as tags

Obtenha uma das melhores certificações de IA

Demonstre que você pode usar a IA de forma eficaz e responsável.

Aashi Dutt's photo
Author
Aashi Dutt
LinkedIn
Twitter

Sou Google Developers Expert em ML (Gen AI), Kaggle 3x Expert e Women Techmakers Ambassador com mais de 3 anos de experiência em tecnologia. Fui cofundador de uma startup de tecnologia de saúde em 2020 e estou fazendo mestrado em ciência da computação na Georgia Tech, com especialização em machine learning.

Temas

Aprenda IA com estes cursos!

Programa

Developing AI Applications

21hrs hr
Learn to create AI-powered applications with the latest AI developer tools, including the OpenAI API, Hugging Face, and LangChain.
Ver DetalhesRight Arrow
Iniciar curso
Ver maisRight Arrow
Relacionado

blog

O que é a Prompt Engineering? Um guia detalhado para 2024

Explore o mundo da engenharia de prontidão com este guia essencial. Entenda sua importância na IA, a função de um engenheiro de prontidão e as perspectivas futuras.
Matt Crabtree's photo

Matt Crabtree

15 min

Tutorial

Um guia para iniciantes na engenharia de prompts do ChatGPT

Descubra como fazer com que o ChatGPT forneça os resultados que você deseja, fornecendo a ele as entradas necessárias.
Matt Crabtree's photo

Matt Crabtree

6 min

Tutorial

Llama.cpp Tutorial: Um guia completo para inferência e implementação eficientes de LLM

Este guia abrangente sobre o Llama.cpp guiará você pelos fundamentos da configuração do seu ambiente de desenvolvimento, compreendendo suas principais funcionalidades e aproveitando seus recursos para solucionar casos de uso no mundo real.
Zoumana Keita 's photo

Zoumana Keita

11 min

cursor ai code editor

Tutorial

AI do cursor: Um guia com 10 exemplos práticos

Saiba como instalar o Cursor AI no Windows, macOS e Linux e descubra como usá-lo em 10 casos de uso diferentes.

Tutorial

RAG With Llama 3.1 8B, Ollama e Langchain: Tutorial

Aprenda a criar um aplicativo RAG com o Llama 3.1 8B usando Ollama e Langchain, configurando o ambiente, processando documentos, criando embeddings e integrando um retriever.
Ryan Ong's photo

Ryan Ong

12 min

Tutorial

Uma introdução ao uso do DALL-E 3: Dicas, exemplos e recursos

Descubra como usar o DALL-E 3 para criar imagens. Descubra o que é o DALL-E 3, seus principais recursos e como usar os prompts para obter os melhores resultados.
Kurtis Pykes 's photo

Kurtis Pykes

13 min

Ver maisVer mais