Batchllm

Como o nome indica, o Batchllm foi projetado para executar instruções sobre vários alvos. Mais especificamente, você pode executar um prompt sobre uma coluna em um quadro de dados e obter um quadro de dados em troca com uma nova coluna de respostas. Essa pode ser uma maneira útil de incorporar LLMs em um fluxo de trabalho R para tarefas como análise de sentimentos, classificação e rotulagem ou marcação.

Ele também registra lotes e metadados, permite comparar os resultados de diferentes LLMs lado a lado e possui atrasos internos para a limitação da taxa de API.

O aplicativo brilhante do Batchllm oferece uma interface gráfica de usuário útil para executar consultas e comandos LLM em uma coluna de dados.

O Batchllm também inclui um aplicativo brilhante embutido que oferece uma interface da web útil para fazer todo esse trabalho. Você pode iniciar o aplicativo da web com batchLLM_shiny() ou como um suplemento RStudio, se você usar o RStudio. Há também uma demonstração da web do aplicativo.

O criador de Batchllm, Dylan Pieper, disse que criou o pacote devido à necessidade de categorizar “milhares de descrições de ofensa exclusivas nos dados do tribunal”. No entanto, observe que esta ferramenta de “processamento em lote” não usa As chamadas LLM mais baratas e atrasadas no tempo oferecidas por alguns fornecedores de modelos. Pieper explicou no Github que “a maioria dos serviços não ofereceu ou os pacotes de API não o apoiaram” no momento em que ele escreveu Batchllm. Ele também observou que preferiu respostas em tempo real a as assíncronas.

Examinamos três ferramentas principais para integrar grandes modelos de idiomas em scripts e programas R. Agora, vejamos mais algumas ferramentas que se concentram em tarefas específicas ao usar o LLMS dentro de R: Recuperando informações de grandes quantidades de dados e roteirizando tarefas comuns de solicitação.

Ragnar (Rag para R)

Rag, ou geração aumentada de recuperação, é uma das aplicações mais úteis para o LLMS. Em vez de confiar no conhecimento interno de um LLM ou direcioná -lo para pesquisar na Web, o LLM gera sua resposta com base apenas em informações específicas que você forneceu. O recurso Smart Answers do Infoworld é um exemplo de aplicativo RAG, respondendo a perguntas da tecnologia baseada apenas em artigos publicados pelo Infoworld e seus sites irmãos.

Um processo de pano normalmente envolve dividir documentos em pedaços, usando modelos para gerar incorporação para cada pedaço, incorporando a consulta de um usuário e, em seguida, encontrando os pedaços de texto mais relevantes para essa consulta com base no calcular quais incorporações dos pedaços estão mais próximas das consultas. Os pedaços de texto relevantes são então enviados para um LLM junto com a pergunta original, e o modelo responde com base nesse contexto. Isso torna prático responder a perguntas usando muitos documentos como fontes em potencial sem ter que encher todo o conteúdo desses documentos na consulta.

Existem inúmeros pacotes e ferramentas de pano para Python e JavaScript, mas não muitos em R além de gerar incorporações. No entanto, o pacote Ragnar, atualmente em desenvolvimento, pretende oferecer “uma solução completa com padrões sensatos, enquanto ainda fornece ao usuário um controle preciso do usuário sobre todas as etapas”.

Essas etapas usam ou incluirão processamento de documentos, chunking, incorporação, armazenamento (inadimplente para o DuckDB), recuperação (com base na pesquisa de similaridade de incorporação e pesquisa de texto), uma técnica chamada renomeamento para melhorar os resultados da pesquisa e geração imediata.

Se você é um usuário de R e interessado em RAG, fique de olho em Ragnar.

TidyPrompt

Os usuários sérios do LLM provavelmente desejam codificar determinadas tarefas mais de uma vez. Os exemplos incluem gerar saída estruturada, chamadas funções ou forçar o LLM a responder de uma maneira específica (como cadeia de pensamento).

A idéia por trás do pacote TidyPrompt é oferecer “blocos de construção” para construir prompts e manipular a saída LLM e encadear esses blocos usando tubos R convencionais.

TidyPrompt “deve ser visto como uma ferramenta que pode ser usada para aprimorar a funcionalidade do LLMS além do que as APIs oferecem”, de acordo com a documentação do pacote, com funções como answer_as_json()Assim, answer_as_text()e answer_using_tools().

Um prompt pode ser tão simples quanto


library(tidyprompt)
"Is London the capital of France?" |>
  answer_as_boolean() |>
  send_prompt(llm_provider_groq(parameters = list(model = "llama3-70b-8192") ))

que neste caso retorna FALSE. (Observe que eu havia armazenado minha tecla API GROQ em uma variável de ambiente R, como seria o caso de qualquer provedor da Cloud LLM.) Para um exemplo mais detalhado, confira a análise de sentimentos em R com uma vinheta LLM e ‘TidyPrompt’ no Github.

Também existem pipelines mais complexos usando funções como llm_feedback() Para verificar se uma resposta LLM atende a certas condições e user_verify() Para possibilitar um humano verificar uma resposta LLM.

Você pode criar o seu próprio tidyprompt Promotos com o prompt_wrap() função.

O tidyprompt O pacote suporta o Openai, Google Gemini, Ollama, Groq, Grok, Xai e OpenRouter (não diretamente antropia, mas os modelos Claude estão disponíveis no OpenRouter). Foi criado por Luka Koning e Tjark Van de Merwe.

A linha inferior

O ecossistema generativo da IA ​​para R não é tão robusto quanto o de Python, e é improvável que isso mude. No entanto, no ano passado, houve muito progresso na criação de ferramentas para as principais tarefas que os programadores podem querer fazer com o LLMS em R. Se R é o seu idioma de escolha e você está interessado em trabalhar com grandes modelos de idiomas localmente ou via APIs, vale a pena dar a algumas dessas opções uma tentativa.