Portal TransformaΓ§Γ£o Digital
MODULO 3.7

⚑ Performance e Otimizacao

Tecnicas para otimizar latencia, throughput e custos em sistemas GIPM.

6
Topicos
~35
Minutos
Avanc.
Nivel
Tecnico
Tipo
1

⚑ Otimizacao de prompts

Prompts menores e mais precisos custam menos e respondem mais rapido.

❌ Prompt ineficiente

"Por favor, voce poderia gentilmente analisar este documento e me dar uma opiniao detalhada sobre todos os aspectos possiveis..."

~50 tokens desnecessarios

βœ“ Prompt otimizado

"Analise riscos contratuais. Output: JSON com {risco, severidade, clausula}."

Direto e estruturado

2

πŸ—ƒοΈ Caching inteligente

class SemanticCache:
    def __init__(self, similarity_threshold=0.95):
        self.cache = {}
        self.embeddings = {}
        self.threshold = similarity_threshold

    async def get_or_compute(self, request: str, compute_fn):
        # Hash exato primeiro
        exact_key = hash(request)
        if exact_key in self.cache:
            return self.cache[exact_key]

        # Cache semantico se nao houver hit exato
        request_embedding = await embed(request)
        for key, emb in self.embeddings.items():
            if cosine_similarity(request_embedding, emb) > self.threshold:
                return self.cache[key]

        # Computar e cachear
        result = await compute_fn(request)
        self.cache[exact_key] = result
        self.embeddings[exact_key] = request_embedding
        return result
3

πŸ“Š Batch processing

Agrupar requisicoes similares para processar em lote.

Quando usar batch

  • β€’Muitas requisicoes similares em curto espaco de tempo
  • β€’Latencia nao e critica (pode esperar 100-500ms para agrupar)
  • β€’Mesmo modelo e persona para todas as requisicoes
4

πŸ”„ Lazy loading de contexto

Carregar contexto apenas quando necessario.

# Ao inves de carregar todo o contexto
context = load_all_user_data(user_id)  # Lento e caro

# Carregar apenas o necessario
class LazyContext:
    def __init__(self, user_id):
        self.user_id = user_id
        self._profile = None
        self._history = None

    @property
    def profile(self):
        if self._profile is None:
            self._profile = load_profile(self.user_id)
        return self._profile

    @property
    def history(self):
        if self._history is None:
            self._history = load_history(self.user_id)
        return self._history
5

πŸ’° Cost optimization

Modelo certo para a tarefa

GPT-3.5 para simples, GPT-4 para complexo

Truncar contexto

Manter apenas os ultimos N tokens relevantes

Streaming

Retornar resposta gradualmente, cancelar se desnecessario

Quotas por usuario

Limitar tokens/dia por usuario ou tenant

6

πŸ“ˆ Benchmarking

Metricas a medir

TTFB

Time to first byte

TPS

Tokens por segundo

$/1K tok

Custo por mil tokens

Hit rate

Taxa de cache hits

πŸ“ Resumo do Modulo

βœ“Prompts - Concisos e estruturados
βœ“Caching - Exato e semantico
βœ“Lazy loading - Contexto sob demanda
βœ“Custo - Modelo certo, quotas, streaming