paint-brush
O que é LlamaIndex? Uma exploração abrangente de estruturas de orquestração LLMpor@datastax
4,091 leituras
4,091 leituras

O que é LlamaIndex? Uma exploração abrangente de estruturas de orquestração LLM

por DataStax7m2023/11/08
Read on Terminal Reader

Muito longo; Para ler

Nesta postagem, explicaremos como o LlamaIndex pode ser usado como uma estrutura para integração, organização e recuperação de dados para todas as suas necessidades de IA generativa de dados privados.
featured image - O que é LlamaIndex? Uma exploração abrangente de estruturas de orquestração LLM
DataStax HackerNoon profile picture

Com a rápida integração da IA generativa no processo de desenvolvimento de aplicações, vemos uma necessidade crescente de sermos capazes de integrar os nossos dados privados com dados públicos que estão a ser usados para treinar grandes modelos de linguagem (LLM). O desafio que isto representa é que a maioria dos dados privados não são estruturados, estão isolados e não estão num formato que possa ser facilmente acessível pelos LLMs.


Em um webinário recente sobre Grandes modelos de linguagem para empresas , exploramos como os LLMs podem ser usados para aplicações além do ChatGPT e como os dados privados precisam ser usados para aumentar os dados públicos nos quais os LLMs geralmente disponíveis são treinados. É aqui que soluções como o LlamaIndex entram em ação, pois fornecem uma estrutura de orquestração para a construção de aplicativos LLM usando ferramentas integradas para ingerir e consultar dados privados.


Nesta postagem, explicaremos como o LlamaIndex pode ser usado como uma estrutura para integração, organização e recuperação de dados para todas as suas necessidades de IA generativa de dados privados.


O que é LlamaIndex?

Conforme afirmado anteriormente, LlamaIndex é uma estrutura de orquestração ou “estrutura de dados” que simplifica a construção de aplicativos LLM. Ele fornece a capacidade de realizar aumento de dados privados, permitindo que sejam incorporados em LLMs para geração de conhecimento e raciocínio. No centro de toda funcionalidade de IA generativa estão os dados. Os aplicativos empresariais precisam ser capazes de acessar mais do que apenas os dados públicos nos quais os LLMs são treinados e precisam incorporar dados estruturados, não estruturados e semiestruturados de todas as suas fontes de dados internas e externas para construir aplicativos.


É essa integração de dados que o LlamaIndex fornece. Trazendo dados de múltiplas fontes exclusivas. Incorporação esses dados como vetores. Armazenar esses dados recém-vetorizados em um banco de dados vetorial. Em última análise, permitindo que esses dados sejam usados por aplicativos para realizar operações complexas com tempos de resposta de baixa latência, como pesquisa vetorial.


Benefícios

  • Ingestão de dados simplificada conectando fontes de dados existentes como APIs, PDFs, SQL, NoSQL, documentos, etc. para uso com aplicativos LLM.
  • Armazene e indexe nativamente dados privados para uso em diferentes casos de uso de aplicativos, com integração nativa com armazenamento de vetores/bancos de dados de vetores downstream.
  • Interface de consulta integrada, que oferece a capacidade de retornar respostas com conhecimento aumentado a partir de prompts de entrada em seus dados.


Casos de uso

  • Construindo chatbots em linguagem natural que fornecem interação em tempo real com a documentação do seu produto para um envolvimento natural do cliente.
  • Construir agentes de conhecimento cognitivamente conscientes que possam responder às mudanças nas árvores de decisão com base em uma base de conhecimento em constante crescimento.
  • Interaja com grandes volumes de dados estruturados usando linguagem natural e interação humana.
  • Aumente os dados públicos com um corpus de conhecimento privado, proporcionando envolvimento específico da aplicação.


Como funciona o LlamaIndex?

LlamaIndex, anteriormente conhecido como GPT Index, é uma estrutura que fornece as ferramentas necessárias para gerenciar o ciclo de vida ponta a ponta para a construção de aplicativos baseados em LLM. O desafio com a construção de aplicações baseadas em LLM é que elas precisam de dados, normalmente de múltiplas fontes diferentes, e a menos que haja uma forte adesão a uma representação de dados comum, os dados necessários estão em muitos formatos diferentes, alguns altamente estruturados, alguns não estruturados, e alguns em entre.


É aí que o LlamaIndex fornece a caixa de ferramentas para desbloquear esses dados com ferramentas para ingestão e indexação de dados. Uma vez ingerido e indexado, geração aumentada de recuperação (RAG) podem usar a interface de consulta LlamaIndex para acessar esses dados e alimentar LLMs.


Ingestão

LlamaIndex possui centenas de carregadores de dados que fornecem a capacidade de conectar fontes de dados personalizadas a LLMs. Ele conecta soluções pré-construídas como Airtable, Jira, Salesforce e muito mais a plug-ins genéricos para carregar dados de arquivos, documentos JSON, CSV simples e dados não estruturados.

Uma lista completa de carregadores de dados pode ser encontrada no Centro de lhama .


Indexação

Depois que os dados são ingeridos, eles precisam ser representados matematicamente para que possam ser facilmente consultados por um LLM. Com o LlamaIndex, um índice simplesmente fornece a capacidade de representar dados matematicamente em múltiplas dimensões diferentes. Indexar dados não é um conceito novo. No entanto, com o aprendizado de máquina, podemos expandir a granularidade da indexação de uma ou duas dimensões (representação de chave/valor, por exemplo) para centenas ou milhares de dimensões.


A abordagem mais comum para indexar dados para aprendizado de máquina e LLMs é chamada de índice vetorial; uma vez que os dados foram indexados, a representação matemática dos dados é chamada de incorporação vetorial. Existem muitos tipos de modelos de indexação e incorporação, mas uma vez incorporados os dados, a representação matemática dos dados pode ser usada para fornecer pesquisa semântica, pois coisas como texto com significados semelhantes terão uma representação matemática semelhante. Por exemplo, rei e rainha podem estar altamente relacionados se a consulta for realeza, mas não altamente relacionados se a consulta for gênero.


Consultando

É aqui que entra em jogo parte do verdadeiro poder do LlamaIndex e LLMs. Como a consulta de dados usando LlamaIndex não é uma série complexa de comandos para mesclar/juntar e localizar os dados, ela é representada como linguagem natural por meio de um conceito chamado engenharia imediata . A maneira mais simples de visualizar a interação com seus dados depois de ingeri-los e indexá-los é que a consulta se torne um processo de fazer perguntas e obter respostas.


Quais são os diferentes índices no LlamaIndex?

LlamaIndex oferece vários modelos de indexação diferentes projetados para fornecer otimizações sobre como você deseja explorar e categorizar seus dados. Em última análise, é aqui que muitos ganhos podem ser alcançados: se você souber o tipo de operação que seu aplicativo precisa realizar nos dados, aproveitar um tipo específico de índice pode fornecer benefícios significativos para o aplicativo usando o LLM e instanciando a consulta.


Índice de lista

Um índice de lista é uma abordagem que divide os dados e os representa na forma de uma lista sequencial. A vantagem disso é que, embora os dados possam ser explorados de maneira multidimensional, a otimização primária para consultar os dados é feita por meio de um padrão sequencial. Esse tipo de índice funciona bem com objetos estruturados que ocorrem ao longo do tempo, como registros de alterações, nos quais você deseja consultar como as coisas mudaram ao longo do tempo.


Índice de árvore

Ao usar um índice de árvore, LlamaIndex pega os dados de entrada e os organiza em uma estrutura de árvore binária onde os dados são organizados como nós pai e folha. Um índice de árvore fornece a capacidade de percorrer grandes quantidades de dados e construir respostas onde você precisa extrair segmentos específicos dos textos com base em como a pesquisa percorre a árvore. A indexação em árvore funciona melhor para casos em que você tem um padrão de informações que deseja seguir ou validar, como construir um chatbot de processamento de linguagem natural em cima de um mecanismo de suporte/FAQ.


Índice de armazenamento de vetores

Ao usar o tipo de índice de armazenamento vetorial, LlamaIndex armazena notas de dados como incorporações vetoriais. Este é provavelmente o tipo de indexação mais comum, pois fornece a capacidade de usar a representação dos dados de várias maneiras diferentes, incluindo pesquisa vetorial ou por similaridade. Quando os dados são indexados com um índice de armazenamento vetorial, eles podem ser aproveitados localmente para conjuntos de dados menores e por um único aplicativo ou para conjuntos de dados maiores e/ou para serem usados em vários LLMs/aplicativos diferentes, podem ser armazenados em um banco de dados vetorial de alto desempenho como Astra DB .


Índice de palavras-chave

A indexação de palavras-chave é mais uma abordagem tradicional de mapeamento de uma tag de metadados, ou seja, uma palavra-chave para nós específicos que contêm essas palavras-chave. Esse mapeamento constrói uma rede de relacionamentos baseada em palavras-chave, porque uma palavra-chave pode ser mapeada para vários nós diferentes e um nó pode ser mapeado para várias palavras-chave diferentes. Esse modelo de indexação funciona bem se você deseja marcar grandes volumes de dados e consultá-los com base em palavras-chave específicas que podem ser consultadas em vários conjuntos de dados diferentes. Por exemplo, briefings jurídicos, registros médicos ou quaisquer outros dados que precisem ser alinhados com base em tipos específicos de metadados.


LlamaIndex versus LangChain: principais comparações

Uma das grandes questões que surgem é como o LlamaIndex e o LangChain se comparam, eles fornecem funcionalidades semelhantes ou se complementam? A realidade é que LlamaIndex e LangChain fornecem os dois lados da mesma moeda. Embora ambos tenham sido projetados para fornecer uma interface para LLMs e aprendizado de máquina em seu aplicativo, o LlamaIndex foi projetado e construído especificamente para fornecer recursos de indexação e consulta para pesquisa inteligente de dados. Do outro lado dessa moeda está a capacidade de interagir com os dados por meio do processamento de linguagem natural, ou seja, construir um chatbot para interagir com seus dados ou usar esses dados para conduzir outras funções, como chamar código.


LlamaIndex fornece a capacidade de armazenar os dados que você possui em uma variedade de formatos diferentes e extrair esses dados de várias fontes diferentes, fornecendo, em última análise, como usar seu aplicativo de IA generativo.


LangChain oferece a capacidade de fazer algo com esses dados depois de armazenados, gerar código, fornecer respostas generativas a perguntas e orientar decisões, fornecendo, em última análise, o que é necessário para seu aplicativo de IA generativo.


Quais projetos você pode construir com LlamaIndex?

Com LlamaIndex você tem uma estrutura de dados/orquestração fácil de usar para ingestão, indexação e consulta de seus dados para a construção de aplicativos generativos de IA. Embora forneçamos um exemplo simples acima para começar, o verdadeiro poder do LlamaIndex vem da capacidade de construir aplicativos de IA baseados em dados. Você não precisa treinar modelos novamente, você pode usar o LlamaIndex e um banco de dados vetorial altamente escalonável para criar mecanismos de consulta personalizados, chatbots conversacionais ou agentes poderosos que podem interagir com soluções complexas de problemas, interpretando dinamicamente os dados que chegam e tornando-os contextuais. decisões em tempo real.


Crie aplicativos de IA generativos em tempo real com pesquisa vetorial no Astra DB

Portanto, quando chegar a hora de criar um aplicativo de IA generativo que exija a capacidade de aproveitar seus dados privados e incorporá-los à capacidade de um aplicativo de interagir e responder a esses dados, o LlamaIndex é um ótimo lugar para começar a ingestão, indexação e consulta. Mas não repita os erros do passado e isole os dados que você está usando, incorporando e acessando para aplicativos de IA. Crie uma solução completa de ponta a ponta que inclua o armazenamento desses embeddings e índices em um armazenamento de vetores altamente escalável como o Astra DB.



Para começar a usar o LlamaIndex e ver como o DataStax e o LlamaIndex funcionam melhor juntos, confira a postagem recente do blog DataStax, “ Criar aplicativos GenAI em escala de petabytes ficou mais fácil.

Você pode encontrar mais informações sobre como configurar e implantar o Astra DB em um dos armazenamentos de vetores de maior desempenho do mundo, construído no Apache Cassandra, que foi projetado para lidar com grandes volumes de dados em escala. Para começar gratuitamente, Registre-se aqui .


- Por Bill McLane, DataStax


Também publicado aqui.