O projeto llama.cpp lançou a versão b10242, introduzindo um novo amostrador de backend para penalidades que permite que o tratamento das penalidades seja descarregado para a GPU. Esta alteração aprimora a função `common_sampler_init` e atualiza a estrutura `llama_sampler_penalties` para herdar de `llama_sampler_backend`, permitindo ajustes de frequência e presença no backend.

  • A implementação inclui lógica para inicialização do backend, aplicação de penalidades e suporte para penalidades top-k na amostragem do backend.
  • A estabilidade numérica é aprimorada preservando os logits mascarados como -Inf para evitar a geração de NaN durante a amostragem.
  • A validação garante que os valores da penalidade de repetição sejam finitos e maiores que 0, com testes adicionados para parâmetros inválidos.
  • O lançamento fornece binários para macOS (Apple Silicon e Intel), Linux (CPU, Vulkan, ROCm, OpenVINO, SYCL), Android, Windows (CPU, CUDA 12/13, Vulkan, OpenCL, HIP, OpenVINO, SYCL) e arquiteturas openEuler.