Este notebook contém as etapas e o código para demonstrar o suporte à geração de recuperação de recuperação em watsonx.ai. Ele apresenta comandos para recuperação de dados, construção e consulta de base de conhecimento e teste de modelo.
Use o modelo LLM, Langchain e Milvus para criar um sistema de geração aumentada (RAG) de recuperação. Isso nos permitirá fazer perguntas sobre nossos documentos (que não foram incluídos nos dados de treinamento), sem ajustar o modelo de idioma grande (LLM). Ao usar o RAG, se você tiver uma pergunta, primeiro fará uma etapa de recuperação para buscar quaisquer documentos relevantes de um banco de dados especial, um banco de dados vetorial onde esses documentos foram indexados.
A geração aumentada de recuperação (RAG) é um padrão versátil que pode desbloquear vários casos de uso que requerem recordação factual de informações, como consultar uma base de conhecimento em linguagem natural.
Os grandes modelos de linguagem (LLMS) provaram sua capacidade de entender o contexto e fornecer respostas precisas para várias tarefas de PNL, incluindo resumo, perguntas e respostas, quando solicitado. Embora possam fornecer respostas muito boas a perguntas sobre as informações que foram treinadas, elas tendem a alucinar quando o tópico é sobre informações que "não sabem", o IE não foi incluído em seus dados de treinamento. A geração aumentada de recuperação combina recursos externos com o LLMS. Os dois principais componentes de um pano são, portanto, um retriever e um gerador.
A parte do retriever pode ser descrita como um sistema capaz de codificar nossos dados para que possam ser facilmente recuperados as partes relevantes dele ao consultar. A codificação é feita usando incorporações de texto, ou seja, um modelo treinado para criar uma representação vetorial das informações. A melhor opção para implementar um retriever é um banco de dados vetorial. Como banco de dados vetorial, existem várias opções, tanto de código aberto quanto de produtos comerciais. Poucos exemplos são Chromadb, Mevius, Faiss, Pinecone, tevadores. Nossa opção neste notebook será uma instância local do Chromadb (persistente).
Para a parte do gerador, a opção óbvia é um LLM. Neste caderno, usaremos um modelo quantizado de llama v2, da coleção de modelos Kaggle.
A orquestração do retriever e do gerador será feita usando Langchain. Uma função especializada da Langchain nos permite criar o receptor-gerador em uma linha de código.
Na sua forma mais simples, o RAG requer 3 etapas:
690.000 palavras em texto limpo da Wikipedia.
Existem três arquivos de perguntas, um para cada ano de estudantes: S08, S09 e S10.
Os arquivos "questionAnswerpairs.txt" contêm as perguntas e as respostas. As colunas neste arquivo são as seguintes:
As perguntas que foram consideradas pobres foram descartadas desse conjunto de dados.
Freqüentemente existem várias linhas com a mesma pergunta, que aparecem se essas perguntas foram respondidas por vários indivíduos. https://www.kaggle.com/rtatman/questionanswer-dataset