A geração aumentada de recuperação (RAG) tornou -se cada vez mais popular como uma maneira de melhorar a qualidade do texto gerado por grandes modelos de linguagem. Agora que os LLMs multimodais estão em Vouge, é hora de estender o RAG a dados multimodais.
Quando adicionamos a capacidade de pesquisar e recuperar dados em várias modalidades, obtemos uma ferramenta poderosa para interagir com os modelos de IA mais poderosos disponíveis hoje. No entanto, também adicionamos novas camadas de complexidade ao processo.
Algumas das considerações que precisamos levar em consideração incluem:
Em um nível mais prático, aqui estão alguns dos botões básicos que podemos transformar:
Este projeto é um teste para explorar essas perguntas e muito mais. Ele usa três bibliotecas de código aberto, Fiftyone, Llamaindex e Milvus, para tornar o processo de trabalho com dados multimodais, experimentando diferentes técnicas de pano multimodais e descobrindo o que funciona melhor para o seu caso de uso o mais fácil possível.
Observe também que a Llamaindex atualiza frequentemente sua API. É por isso que a versão do Llamaindex e seus pacotes associados estão todos fixados?
Primeiro, instale cinquenta:
pip install fiftyoneEm seguida, usando a sintaxe da CLI da Fiftyone, faça o download e instale o plug -in de RAG multimodal FiftyOne:
fiftyone plugins download https://github.com/jacobmarks/fiftyone-multimodal-rag-pluginO Llamaindex possui um processo de instalação detalhado (se você deseja criar qualquer coisa multimodal, pelo menos). Felizmente para você, isso (e todas as outras dependências de instalação) será resolvido com o seguinte comando:
fiftyone plugins requirements @jacobmarks/multimodal_rag --installPara começar, inicie o aplicativo FiftyOne. Você pode fazer isso no terminal executando:
fiftyone app launchOu você pode executar o seguinte código Python:
import fiftyone as fo
session = fo . launch_app () Agora pressione a tecla Backtick ( ` ) e digite create_dataset_from_llama_documents . Pressione Enter para abrir o modal do operador. Este operador fornece uma interface do usuário para escolher um diretório que contenha seus dados multimodais (imagens, arquivos de texto, PDFs, etc.) e criar um conjunto de dados de cinquentane a partir dele.
Depois de selecionar um diretório, execute o operador. Ele criará um novo conjunto de dados na sua sessão de cinquenta. Para arquivos de texto, você verá uma imagem renderizando o texto truncado. Para imagens, você verá a própria imagem.
Você pode adicionar diretórios adicionais de dados multimodais com o operador add_llama_documents_to_dataset .
Agora que você tem um conjunto de dados multimodal, você pode indexá -lo com o Llamaindex e o Milvus. Use o operador create_multimodal_rag_index para inserir esse processo. Este operador solicitará que você nomeie o índice e oferecerá a opção de indexar as imagens por meio de incorporação ou legendas do clipe. Se você escolher legendas, será solicitado a selecionar o campo de texto para usar como legenda.
Se você não tiver legendas no seu conjunto de dados, poderá estar interessado no plug -in de legenda de cinquenta imagens.
fiftyone plugins download https://github.com/jacobmarks/fiftyone-image-captioning-plugin Depois de criar um índice, você pode inspecioná -lo executando o operador get_multimodal_rag_index_info e selecionando o índice que você deseja inspecionar no suspensão.
Por fim, você pode consultar o índice com o operador query_multimodal_rag_index . Este operador solicitará que você insira uma sequência de consulta e um índice para consultar.
Você também pode especificar o modelo multimodal a ser usado para gerar os resultados de recuperação, bem como o número de resultados de imagem e texto para recuperar.