LMQL: Uma linguagem de programação para interação LLM

LMQL

3.5 | 505 | 0
Tipo:
Projetos de Código Aberto
Última atualização:
2025/10/15
Descrição:
LMQL é uma linguagem de programação para LLMs, permitindo prompts robustos com tipos, modelos e restrições. Ele suporta vários backends e oferece recursos como consultas aninhadas e integração com Python.
Compartilhar:
Programação LLM
engenharia de prompts
geração restrita

Visão geral de LMQL

O que é LMQL?

LMQL (Language Model Query Language) é uma linguagem de programação especificamente projetada para interagir com Large Language Models (LLMs). Ele fornece uma abordagem robusta e modular para o prompting de LLMs, aproveitando tipos, templates, restrições e um tempo de execução de otimização para garantir resultados confiáveis e controláveis. O LMQL visa preencher a lacuna entre os paradigmas de programação tradicionais e a natureza probabilística dos LLMs, permitindo que os desenvolvedores construam aplicações de IA mais sofisticadas e previsíveis.

Como o LMQL funciona?

O LMQL opera permitindo que os desenvolvedores definam prompts como código, incorporando variáveis, restrições e fluxo de controle. Essa abordagem contrasta com o prompting tradicional baseado em strings, que pode ser menos estruturado e mais difícil de gerenciar. Aqui está uma análise dos principais recursos do LMQL:

  • Variáveis Tipadas: LMQL permite que você defina variáveis com tipos de dados específicos (por exemplo, int, str), garantindo que a saída do LLM esteja em conformidade com o formato esperado. Esse recurso é crucial para construir aplicações que exigem dados estruturados.
  • Templates: LMQL suporta templates, permitindo a criação de componentes de prompt reutilizáveis. Os templates podem ser parametrizados com variáveis, facilitando a geração de prompts dinâmicos.
  • Restrições: LMQL permite que você especifique restrições na saída do LLM, como comprimento máximo ou palavras-chave específicas. Essas restrições são impostas pelo tempo de execução do LMQL, garantindo que a resposta do LLM atenda aos seus requisitos.
  • Consultas Aninhadas: LMQL suporta consultas aninhadas, permitindo que você modularize seus prompts e reutilize componentes de prompt. Esse recurso é particularmente útil para tarefas complexas que exigem várias etapas de interação com o LLM.
  • Múltiplos Backends: O LMQL pode tornar automaticamente o seu código LLM portátil entre vários backends. Você pode alternar entre eles com uma única linha de código.

Exemplo

@lmql.query
def meaning_of_life():
    '''lmql
    # top-level strings are prompts
    "Q: What is the answer to life, the \
     universe and everything?"

    # generation via (constrained) variables
    "A: [ANSWER]" where \
        len(ANSWER) < 120 and STOPS_AT(ANSWER, ".")

    # results are directly accessible
    print("LLM returned", ANSWER)

    # use typed variables for guaranteed 
    # output format
    "The answer is [NUM: int]"

    # query programs are just functions 
    return NUM
    '''

## so from Python, you can just do this
meaning_of_life() # 42

Como usar o LMQL?

  1. Instalação:

    Instale o LMQL usando o pip:

    pip install lmql
    
  2. Definir Consultas:

    Escreva consultas LMQL usando o decorador @lmql.query. Essas consultas podem incluir prompts, variáveis e restrições.

  3. Executar Consultas:

    Execute consultas LMQL como funções Python regulares. O tempo de execução do LMQL lidará com a interação com o LLM e aplicará as restrições especificadas.

  4. Acessar Resultados:

    Acesse a saída do LLM através das variáveis definidas em sua consulta LMQL.

Por que escolher o LMQL?

  • Robustez: Os tipos e restrições do LMQL ajudam a garantir que a saída do LLM seja confiável e consistente.
  • Modularidade: Os templates e as consultas aninhadas do LMQL promovem a reutilização de código e a modularidade.
  • Portabilidade: O LMQL funciona em vários backends LLM, permitindo que você alterne facilmente entre diferentes modelos.
  • Expressividade: A integração do LMQL com Python permite que você aproveite todo o poder do Python para a construção de prompts e o pós-processamento.

Para quem é o LMQL?

O LMQL é adequado para desenvolvedores que desejam construir aplicações de IA que exigem controle preciso sobre o comportamento do LLM. É particularmente útil para tarefas como:

  • Extração de dados: Extrair dados estruturados do texto.
  • Geração de código: Gerar código com base em descrições em linguagem natural.
  • Chatbots: Construir chatbots com respostas previsíveis e consistentes.
  • Respostas a perguntas: Responder a perguntas com base em conhecimento estruturado.

Ao usar o LMQL, os desenvolvedores podem construir aplicações de IA mais confiáveis, modulares e portáteis que aproveitem o poder dos LLMs.

A melhor maneira de usar o LMQL é verificar a documentação e começar com um exemplo simples, depois aumentar gradualmente a complexidade dos prompts para atender às suas necessidades.

Melhores ferramentas alternativas para "LMQL"

loading

Tags Relacionadas a LMQL

loading