1 pontos por GN⁺ 2023-08-15 | 1 comentários | Compartilhar no WhatsApp
  • Outlines é uma biblioteca para geração de texto com redes neurais, projetada para ser mais flexível e substituir o método generate da biblioteca transformers.
  • Ela ajuda desenvolvedores a criar interfaces robustas, garantindo saídas que sigam expressões regulares ou estejam em conformidade com esquemas JSON.
  • A biblioteca oferece primitivas robustas de prompting que separam a lógica de prompting da lógica de execução, permitindo implementar de forma simples geração few-shot, ReAct, meta-prompting, agentes e mais.
  • O Outlines foi projetado para ser compatível com um ecossistema mais amplo, usa o mínimo possível de abstrações e permite intercalar geração com fluxo de controle, condicionais, funções Python personalizadas e chamadas para outras bibliotecas.
  • É compatível com todos os modelos e fornece uma interface com o modelo por meio dos logits do próximo token. Também pode ser usado com modelos baseados em API.
  • A biblioteca se destaca por oferecer primitivas de prompting simples e poderosas baseadas no mecanismo de templates Jinja, geração guiada, geração guiada rápida com expressões regulares, geração rápida de JSON em conformidade com esquemas JSON ou modelos Pydantic e integração com modelos transformers do HuggingFace.
  • O Outlines está disponível no PyPI e pode ser instalado com o comando pip install outlines.
  • A biblioteca permite interromper a geração antecipadamente depois que uma sequência específica é encontrada, reduzir a conclusão a uma escolha entre várias possibilidades ou instruir o modelo a retornar apenas inteiros ou números de ponto flutuante.
  • Ela também inclui geração guiada rápida com expressões regulares e geração eficiente de JSON seguindo modelos Pydantic.
  • O Outlines facilita a escrita e o gerenciamento de prompts ao separar a lógica de prompt da lógica geral do programa, encapsulando templates dentro de "funções de template".
  • A biblioteca também permite que modelos de linguagem chamem funções externas para obter informações adicionais ou executar tarefas, codificando a descrição dessas funções no prompt.
  • O Outlines é open source e licenciado sob a Apache License 2.0.

1 comentários

 
GN⁺ 2023-08-15
Comentários do Hacker News
  • Artigo sobre como bibliotecas de modelos de linguagem (Language Model Libraries, LLMs) podem gerar JSON 100% válido
  • Os LLMs geram uma distribuição de probabilidade para todos os tokens, e o parser de JSON fornece a lista dos próximos tokens válidos
  • Discussão sobre a ideia de mascarar parte do espaço de vocabulário e sobre bibliotecas que realizam etapas de tempo de forma eficiente
  • Questionamentos sobre a eficácia de modelos base como o Llama2 e se é necessário ajuste de instruções para casos de uso específicos
  • Pergunta sobre a existência de parâmetros de temperatura ou amostragem para generate.regex
  • Menção no artigo de que o GPT-4 pode retornar JSON válido na maioria dos casos ao receber exemplos na mensagem de sistema
  • Reconhecimento do mecanismo da biblioteca e curiosidade sobre seu uso potencial em tarefas que exigem entrada estruturada além de JSON
  • Interesse no potencial dessas bibliotecas em planejamento formal de caminhos
  • Menção no artigo de que solicitar formatos de saída complexos pode degradar o desempenho na tarefa principal, algo verificado em benchmarks de edição de código do GPT-3.5 e GPT-4
  • Menção no artigo de que o llama.cpp implementou amostragem baseada em gramática no mês passado
  • Processo de atualizar a "máscara" de viés de logits após cada token gerado pelo LLM para garantir que o próximo token possa ser um token JSON válido