InícioNuvemIntegraçãoRevisão do LlamaIndex: Utilizações avançadas de LLM com contexto simplificado.

Revisão do LlamaIndex: Utilizações avançadas de LLM com contexto simplificado.

Date:

Framework de código aberto gratuito que se integra com diversas lojas de dados vetoriais, LLMs e fontes de dados, e é utilizado para responder perguntas, extrair informações estruturadas, interagir em chats, realizar buscas semânticas e cenários de uso de agentes.

Solo Llama wearing sunglasses - LLMs
Imagem: stephmcblack/DepositPhotos

Transforme seus dados empresariais em aplicações prontas para produção com LlamaIndex, que recebe uma pontuação de 60 na página inicial. O subtítulo destaca que LlamaIndex é o principal framework de dados para desenvolver aplicativos LLM. Embora haja dúvidas sobre ser o principal, é inegável que se destaca como um framework líder para a construção de aplicações com modelos de linguagem grande, ao lado de LangChain e Kernel Semantic, que serão discutidos posteriormente.

Atualmente, a LlamaIndex disponibiliza dois frameworks de código aberto e uma plataforma em nuvem. Um dos frameworks é desenvolvido em Python, enquanto o outro é em TypeScript. A Llama.Cloud, ainda em fase de visualização privada, oferece serviços de armazenamento, recuperação e acesso a fontes de dados por meio do LlamaHub, além de um serviço pago de análise para documentos complexos chamado LlamaParse, que também pode ser utilizado como um serviço independente.

LlamaIndex destaca-se em aspectos como a eficiência no carregamento, armazenamento e indexação de dados, além de coordenar fluxos de trabalho LLM e analisar o desempenho de aplicativos LLM. A plataforma é compatível com mais de 40 lojas vetoriais, mais de 40 LLMs e mais de 160 fontes de dados. O repositório LlamaIndex Python possui mais de 30 mil avaliações positivas.

Aplicações comuns do LlamaIndex incluem responder perguntas, extrair informações estruturadas, realizar chat ou pesquisa semântica, ou atuar como agentes. Elas podem empregar a técnica de geração aumentada de recuperação (RAG) para conectar LLMs a fontes específicas, às vezes fontes que não foram utilizadas no treinamento inicial dos modelos.

LlamaIndex, LangChain, Semantic Kernel e Haystack são plataformas que competem entre si. Embora cada uma delas tenha diferentes alcances e recursos, o repositório Python de LangChain é o mais popular, com mais de 80.000 estrelas, seguido por LlamaIndex com mais de 30.000 estrelas. Semantic Kernel, uma plataforma mais recente, tem mais de 18.000 estrelas, um pouco mais da metade das estrelas de LlamaIndex. Por fim, o repositório de Haystack conta com mais de 13.000 estrelas.

A idade do repositório é importante devido ao acúmulo de estrelas ao longo do tempo, razão pela qual eu uso a palavra “mais” para descrever os números. A quantidade de estrelas nos repositórios do GitHub está diretamente ligada à sua popularidade ao longo do tempo.

LlamaIndex, LangChain e Haystack são utilizados por várias grandes empresas, algumas delas fazendo uso de mais de uma dessas plataformas. A Microsoft é a responsável pelo Semantic Kernel, e geralmente não divulga publicamente seus usuários, exceto em casos de estudo.

llamaindex 01
Imagem: Peggychoucair/UnPlash

O framework LlamaIndex facilita a conexão de dados, incorporações, LLMs, bancos de dados vetoriais e avaliações em aplicações, sendo utilizados para diversas finalidades como Q&A, extração estruturada, chat, busca semântica e agentes.

Atributos do Índice Llama

Em termos gerais, o LlamaIndex foi criado para auxiliar na criação de aplicações avançadas de LLM, nas quais você integra seus próprios dados com um extenso modelo de linguagem. Alguns exemplos dessas aplicações incluem chatbots que respondem a perguntas, compreensão e extração de documentos, e agentes autônomos.

VEJA TAMBEM:  Observando a prudência do servidor Mastodon.

As ferramentas oferecidas pela LlamaIndex são utilizadas para carregar dados, indexar e armazenar informações, consultar dados por meio de LLMs e analisar o desempenho das aplicações LLM.

  • Os conectores de dados captam suas informações atuais diretamente de sua origem e formato originais.
  • Índices de dados, conhecidos como incorporações, organizam as informações em formatos intermediários.
  • Os motores permitem que seus dados sejam acessados através da linguagem natural, com motores de busca para responder a perguntas e motores de chat para realizar conversas em várias mensagens sobre esses dados.
  • Os agentes são profissionais que utilizam conhecimento melhorado por tecnologia de LLM e auxiliados por softwares específicos.
  • As integrações de observação e avaliação possibilitam que você teste, avalie e acompanhe o desempenho do seu aplicativo.

A expansão do cenário

Os LLMs foram treinados em extensos conjuntos de texto, embora não especificamente em texto relacionado ao seu campo. Há três abordagens principais para ampliar o contexto e integrar informações sobre o domínio em questão: a inclusão de documentos, a utilização de RAG e o refinamento do modelo.

Uma forma simples de aumentar o contexto é incluir documentos junto com a consulta ao modelo, dispensando a necessidade do LlamaIndex. Essa abordagem funciona bem, a menos que o tamanho total dos documentos seja maior do que a janela de contexto do modelo utilizado, o que foi um problema comum até recentemente. Atualmente, existem LLMs com janelas de contexto de milhões de tokens, permitindo evitar etapas adicionais em muitas tarefas. Se planeja realizar várias consultas em um corpus extenso, é recomendável armazenar os documentos, embora isso seja um assunto para outra ocasião.

A nova geração da tecnologia Retrieval Enhanced Generation integra informações contextuais com modelos de linguagem em tempo real, geralmente utilizando um banco de dados vetorial. Os métodos do RAG frequentemente empregam a incorporação para restringir o tamanho e aprimorar a pertinência do contexto recuperado. Isso é feito por meio de limites de janela de contexto, aumentando assim a probabilidade de o modelo acessar as informações necessárias para responder à pergunta.

Basicamente, uma função de incorporação transforma uma palavra ou frase em um conjunto de números de ponto flutuante, que são geralmente armazenados em um banco de dados com suporte a índice vetorial. A fase de busca posteriormente utiliza um método de similaridade semântica, frequentemente baseado no cálculo do cosseno do ângulo entre a incorporação da consulta e os vetores armazenados, para localizar informações “próximas” a serem utilizadas na consulta aprimorada.

A calibragem fina de LLMs é um método de aprendizado supervisionado que consiste em adaptar os parâmetros do modelo para uma tarefa específica. Isso é feito ao treinar o modelo em um conjunto de dados menor, especializado para a tarefa ou domínio em questão, contendo exemplos relevantes rotulados. Esse processo geralmente demanda várias horas ou dias, utilizando várias GPUs de alto desempenho, e necessita de centenas ou milhares de exemplos anotados.

Colocando em prática a instalação do LlamaIndex.

Existem três formas de instalar a versão Python do LlamaIndex: a partir do código fonte no repositório GitHub, através da instalação do iniciador de lhama-index, ou utilizando o Ilama-index-core com integrações específicas. Uma maneira de instalar o iniciador seria a seguinte:

VEJA TAMBEM:  Os riscos associados às escolhas tecnológicas baseadas em tendências passageiras.

Este texto refere-se à integração de modelos de linguagem de aprendizado profundo da OpenAI, incluindo o LlamaIndex. Antes de utilizar esses exemplos, é necessário fornecer a chave API da OpenAI. O exemplo inicial do LlamaIndex é simples, com cerca de cinco linhas de código após algumas etapas de configuração básicas. Existem vários outros exemplos disponíveis no repositório, juntamente com a devida documentação.

Realizar a instalação personalizada pode parecer algo deste tipo:

Isso configura uma interface para as integrações Ollama e Hugging Face. Inclui um exemplo inicial local com a instalação. Independentemente de como você iniciar, é possível adicionar mais módulos de interface utilizando o pip.

Caso opte por programar em JavaScript ou TypeScript, utilize LlamaIndex.TS (repositório). Uma vantagem do TypeScript é a possibilidade de testar os exemplos diretamente no StackBlitz, sem necessidade de configurações locais, embora ainda seja necessário ter uma chave API da OpenAI.

LlamaCloud y LlamaParse

LlamaCloud é um serviço de nuvem que possibilita o upload, análise e indexação de documentos, bem como a realização de buscas utilizando LlamaIndex. Atualmente se encontra em fase alfa privada, o que dificulta o acesso. LlamaParse, um componente do LlamaCloud, permite a análise de PDFs em dados estruturados e está disponível por meio de uma API REST, um pacote Python e uma interface web, estando agora em fase beta pública. O uso de LlamaParse implica em uma pequena taxa, baseada no uso após as primeiras 7 mil páginas por semana. Embora tenha sido apresentado um exemplo impressionante comparando LlamaParse e PyPDF para o arquivo Apple 10K, não foi possível testar pessoalmente essa funcionalidade.

Centro de llamadasHub

LlamaHub oferece acesso a uma extensa variedade de conexões para LlamaIndex. Essas incluem agentes, callbacks, carregadores de dados, incorporações e cerca de 17 outras categorias. As integrações estão disponíveis nos repositórios LlamaIndex, PyPI e NPM, e podem ser baixadas através da instalação do pip ou npm.

Comando de linha para criar.

O create-llama é uma ferramenta de linha de comando que cria aplicações LlamaIndex de forma rápida e simples, oferecendo um front end Next.js e três opções de backend para escolher.

O texto “RAG CLI” pode ser parafraseado como “Comando de Interface de Linha de Comando RAG”.

RAG CLI é uma ferramenta de linha de comando usada para interagir com um LLM sobre arquivos que foram armazenados localmente em seu dispositivo. Esse é apenas um exemplo entre vários possíveis usos do LlamaIndex, porém é bastante frequente.

Componentes del índice de llama

Os Guias de Componentes LlamaIndex oferecem assistência direcionada para as diferentes partes do LlamaIndex. A primeira imagem mostra o menu do guia de componente, enquanto a segunda exibe o guia específico para prompts, destacando a seção de personalização de prompts.

llamaindex 02
Imagem: karvanth/ShutterStock

O LlamaIndex é um componente que ajuda na documentação das diversas partes que formam a estrutura, havendo vários componentes disponíveis.

llamaindex 03
Imagem: driles/iStock

Estamos analisando os padrões de utilização de prompts. Este exemplo específico demonstra a customização de um prompt de perguntas e respostas para responder de maneira similar à linguagem utilizada em uma obra de Shakespeare. Trata-se de um prompt de zero-shot, pois não apresenta um exemplo.

VEJA TAMBEM:  Procedimentos, interfaces de programação de aplicativos e diretrizes.

Índice de Aprendizagem Llama

Após ter lido, compreendido e implementado o exemplo inicial em sua linguagem de programação favorita (Python ou TypeScript), recomendo que explore e experimente o maior número possível de outros exemplos que lhe pareçam interessantes. Na imagem abaixo, é apresentado o resultado de gerar um arquivo chamado “ensaio” ao executar essay.ts e, em seguida, fazer perguntas sobre ele utilizando chatEngine.ts. Esse é um caso de utilização de RAG para perguntas e respostas.

O chatEngine.ts faz uso dos elementos ContextChatEngine, Document, Settings e VectorStoreIndex do LlamaIndex. Ao analisar o código-fonte, notei que ele requer o modelo OpenAI gpt-3.5-turbo-16k, o qual pode ser alterado com o tempo. Parece que o módulo VectorStoreIndex está integrado com o banco de dados de vetores Qdrant, que é uma plataforma open-source em Rust, se eu estiver interpretando corretamente a documentação.

llamaindex 04
Imagem: MaxWdhs/KaboomPics

Após preparar o ambiente do terminal com minha chave OpenAI, executei o arquivo essay.ts para criar um ensaio e o arquivo chatEngine.ts para fazer perguntas sobre o ensaio.

Adicionando informações sobre LLMs.

Como mostrado, o LlamaIndex é simples de usar para desenvolver aplicações LLM. Testei-o com sucesso em comparação com o OpenAI LLMs e uma base de dados de arquivo para um aplicativo RAG Q&A. É importante lembrar que o LlamaIndex suporta mais de 40 lojas vetoriais, mais de 40 LLMs e mais de 160 fontes de dados. Ele atende a diversas necessidades, como Q&A, extração estruturada, chatbots, busca semântica e agentes.

Sugiro considerar a avaliação do LlamaIndex em conjunto com LangChain, Semantic Kernel e Haystack. É provável que um ou mais desses atendam ao que você precisa. Não posso indicar um deles em particular, pois diferentes aplicações têm diferentes exigências.

Resumo financeiro.

LlamaIndex é uma ferramenta de uso simplificado que permite desenvolver aplicações LLM. Testei sua compatibilidade com OpenAI LLMs e uma variedade de fontes de dados para criar um aplicativo RAG Q&A sem dificuldades. Além disso, LlamaIndex suporta mais de 40 lojas vetoriais, mais de 40 LLMs e mais de 160 fontes de dados, adaptando-se a diversas situações, como Q&A, extração estruturada, chat, busca semântica e agentes.

Vantagens

  1. Auxilia na criação de aplicativos de Aprendizado de Máquina para perguntas e respostas, extração estruturada, bate-papo, pesquisa semântica e agentes.
  2. Oferece suporte para Python e TypeScript.
  3. Os quadros estão disponíveis gratuitamente e são de código aberto.
  4. Numerosos casos e combinações

Puedo ayudarte a parafrasear el texto, pero necesito que me proporciones más detalles o el texto completo para poder ayudarte de la mejor manera.

  1. A visualização privada é a única limitação da nuvem.
  2. O marketing tende a ser um pouco exagerado.

Pode fornecer mais contexto ou detalhes sobre o texto que deseja parafrasear? Isso me ajudará a criar uma paráfrase mais precisa e relevante.

Texto parafraseado: Código-fonte aberto: gratuito. Serviço de análise de importação: 7.000 páginas por semana são gratuitas, e depois custam $3 por cada 1.000 páginas.

Sinónimo: Plataforma.

Python e TypeScript, bem como Software as a Service na nuvem (atualmente disponível em visualização privada).

DEIXE UMA RESPOSTA

Por favor digite seu comentário!
Por favor, digite seu nome aqui