- O artigo aborda a adição de amostragem baseada em gramática à nova API do
llama.cpp para orientar e restringir a geração.
- A API do llama recebe uma estrutura de dados que representa uma gramática livre de contexto, permitindo amostragem com base em regras gramaticais.
- O código de amostragem gramatical modela um autômato de pilha não determinístico e mantém várias pilhas para o estado de parsing.
- O artigo fornece exemplos de uso da API de gramática para vários cenários, como xadrez, aritmética, JSON e japonês.
- São mencionadas otimizações potenciais, como compilar a gramática em um tensor de transição de estados e executá-la na GPU.
- Os colaboradores estão discutindo a adição de suporte a arquivos de gramática, melhorias no parser de gramática e otimização da avaliação de tokens.
- A utilidade da contribuição é enfatizada, e há uma proposta para separar a API de amostragem em um módulo independente.
- Outros projetos que usam abordagens semelhantes para geração baseada em gramática, como
lmql.ai e jsonformer, são mencionados.
- Há propostas para referenciar tokens completos na gramática e incluir um parser na API do
llama.cpp para melhorar a usabilidade.
- Os colaboradores estão revisando o código, fornecendo feedback, discutindo possíveis melhorias e compartilhando experiências com o recurso.
- Um engenheiro de software está participando de um projeto relacionado à amostragem gramatical e enfrentando problemas em ARM64+CUDA.
- O editor sugere que o problema pode estar relacionado à combinação de pacotes da toolchain e se oferece para ajudar.
- Há um pull request para adicionar funções do LocalAI, além de uma proposta para usar uma sintaxe BNF mais padronizada no projeto.
- Violar a gramática é considerado o pior resultado, e o backtracking é sugerido para consideração futura.
- Está em andamento uma discussão sobre a implementação de EBNF e qual formato deve ser seguido.
- Na atualização mais recente, a amostragem foi limitada à correspondência de tokens completos, e melhorias adicionais foram sugeridas para lidar com casos em que os tokens são divididos de forma inadequada.
- As mudanças no projeto foram aprovadas e estão prontas para merge, e o editor está ansioso para experimentar o projeto atualizado.
- É mencionado um problema semelhante em andamento em outro projeto, com a sugestão de pré-calcular distribuições lexicais de tokens.
- O engenheiro de software demonstra interesse nessa abordagem e disposição para compartilhar opiniões.
- A conversa no GitHub continua com vários participantes.
1 comentários
Comentários no Hacker News