Zubnet AIAprenderWiki › Beam Search
Fundamentos

Beam Search

Também conhecido como: Busca em Feixe
Uma estratégia de decodificação que mantém múltiplas sequências candidatas (o "feixe") simultaneamente, expandindo cada uma por um token a cada passo e mantendo apenas os candidatos com melhor pontuação. Diferente da decodificação gulosa (sempre escolher o melhor próximo token) ou amostragem (escolher aleatoriamente), beam search explora múltiplos caminhos e encontra a sequência de maior probabilidade geral. Comumente usado para tradução e sumarização.

Por que isso importa

Beam search mostra que a melhor escolha local nem sempre é a melhor globalmente. A decodificação gulosa pode escolher "The" como primeira palavra quando "In" levaria a uma frase geral muito melhor. Ao manter múltiplos candidatos, beam search evita se comprometer cedo demais. Porém, para geração aberta (chat, escrita criativa), amostragem produz texto mais diverso e natural que beam search.

Em profundidade

O algoritmo: mantenha um feixe de largura k (ex.: k=5). A cada passo, expanda cada candidato por todos os possíveis próximos tokens, pontue as sequências resultantes e mantenha as top k. Continue até que todos os candidatos tenham gerado um token de fim ou atingido um limite de comprimento. Retorne a sequência completa com maior pontuação. A largura do feixe k troca qualidade por computação: k=1 é decodificação gulosa, k maiores exploram mais caminhos mas custam k vezes mais computação.

O Problema da Penalidade de Comprimento

Beam search bruto favorece sequências mais curtas (menos tokens = menos multiplicações de probabilidade = maior probabilidade total). Uma penalidade de comprimento (dividindo a pontuação por comprimento^α) combate esse viés, encorajando o modelo a gerar saídas completas e bem formadas em vez de cortar prematuramente. O fator de penalidade α é um hiperparâmetro: α=0 é sem penalidade, α=1 normaliza totalmente pelo comprimento. Valores típicos são 0.6–1.0.

Quando Usar Beam Search

Beam search funciona melhor para tarefas com uma resposta "correta" (tradução, sumarização, geração estruturada) onde você quer a saída mais provável. Funciona mal para tarefas criativas ou conversacionais onde diversidade importa — beam search tende a produzir texto genérico e repetitivo porque sequências de alta probabilidade são frequentemente entediantes. Interfaces modernas de LLM usam amostragem (com temperature e top-p) para chat, e beam search é usado principalmente internamente para tarefas específicas como geração de chamadas de ferramentas.

Conceitos relacionados

← Todos os termos
← Banco de dados vetorial Benchmark →