RAG (Retrieval-Augmented Generation) // Dicionário do Programador

6.34k views2720 WordsCopy TextShare
Código Fonte TV
📌 BAIXE O GUIA DO MOCHILEIRO TECH → https://codft.me/aluraguiadomochileiro Engenharia de Prompt s...
Video Transcript:
contextualizando retrieval augmented Generation ou geração de recuperação aumentada ou simplesmente HG né é uma técnica para melhorar a precisão e a confiabilidade de modelos de ia generativos com dados obtidos de fontes externas com ele é possível alimentar com informações atualizadas e dados precisos as respostas geradas por um llm por isso o hag vem ganhando muito destaque no cenário das inteligências artificiais generativas para saber como ele funciona e como implementar o hag em um projeto Ah tu vai ter que ficar aqui com a gente seja bem-vindo ao dicionário do programador o quadro do código fonte TV
onde esses dois malucos aqui de jalecos e muitas canetas cheio de canetas tentam simplificar a sopa de letrinhas que é o nosso mundo da tecnologia se você curte esse tipo de conteúdo Então já deixa um tapa no like e se inscreve aqui no canal e isso quer dizer também que você curte o conteúdo de qualidade e é muito bom quando nós conseguimos encontrar conteúdo importante já organizado e disponível em um único lugar não é não Ah pois é né diz que a internet tem de tudo mas elas não têm índices para nos ajudar na organização
mas nós temos uma dica para te ajudar Você já leu ou pelo menos já ouviu falar do Guia do Mochileiro das Galáxias é um desses livros clássicos da cultura nerd e a lura criou O Guia do Mochileiro Tech cheio de conteúdo relevante para todos nós da área de tecnologia passo a passo para começar na área glossário Tech projetos para colocar no portfólio e mais uma cacetada de conteúdo reunido em um só lugar tudo isso tá disponível gratuitamente para você acessar e É só usar o link que nós deixamos aqui na descrição do vídeo mas também
tem link aqui no card tá Então baixa e depois me diz aqui o que que você achou do conteúdo e o hag ele foi descrito em um artigo lá em abril de 2021 idealizado por um grupo de pesquisadores do Facebook ai research mas também teve uma galera da Universidade de Londres e da Universidade de Nova York sendo o principal autor do artigo o Patrick lews que em uma entrevista ele chegou a declarar olha só o que ele falou nós definitivamente teríamos pensado mais no nome se soubéssemos que nosso trabalho se tornaria tão difundido ou seja
ele não curtiu muito esse nome não pois é né Eu Tenho que concordar o nome é bem ruim Mas independente disso a técnica é muito boa e ela tem o objetivo de resolver alguns dos problemas dos grandes modelos pré-treinos como a falta de dados atualizados ou específic e as alucinações os pontos principais do rag São a recuperação e a geração e com eles é possível conseguir respostas mais precisas mas para clarear vossas mentes Vamos fazer uma analogia aí com um caso real imagina num tribunal onde um juiz está julgando um caso de roubo o juiz
tem ali o conhecimento prévio das leis isso seria o equivalente ao lar lenguage models ou llm é mas existem também as decisões judiciais que foram tomadas em casos anteriores similares aos que estão sendo jado no momento esse conjunto de dados das decisões pode ser incorporado ao llm através de um fine tunning por exemplo ainda assim para fazer o justo julgamento do caso o juiz precisa ter acesso às especificidades dele como por exemplo as provas e as testemunhas essas seriam as informações incorporadas com rag Agora você entendeu né treinar um llm é uma tarefa que demanda
tempo dinheiro e muita energia né o hag é um método mais rápido e barato de trazer um conjunto de dados proprietário e atualizado para dentro do modelo Sem contar que ele permite uma atualização constante desde que a base de dados seja também constantemente alimentada Essa é uma das vantagens do hag mas nós ainda podemos citar mais algumas como por exemplo a utilização de dados proprietários e modelos que podem ali por uma necessidade ou exigência da empresa rodar num ambiente local com haag é possível obter mais precisão e nível de detalhes nas respostas levando em conta
o contexto da empresa do negócio ou mesmo de um serviço por exemplo informações sobre compra de um cliente faturamento em determinado período e por aí vai o hag também traz mais transparência pras respostas sendo possível até mesmo apresentar a fonte dos resultados obtidos claro que o sucesso do hag ou qualquer outro tipo de treinamento retreinamento e refinamento vai também depender da qualidade dos dados utilizados sem dados precisos e corretos as respostas geradas com certeza vão ser ruins bom então nós nem vamos levar aqui em conta que os dados ruins de Treinamento são uma desvantagem do
haag porque isso daí é ruim para qualquer caso de treinamento mas nós podemos citar outras desvantagens do rag Como por exemplo o tempo maior de resposta especialmente se a base de dados for muito grande maior complexidade da Integração que envolve tanto a configuração do sistema de recuperação quanto o modelo de linguagem e o custo computacional embora seja menor do que a de um treinamento completo lidar ali com grandes volumes de dados podem aumentar os custos Especialmente quando se lida com buscas em tempo real agora você já conhece as vantagens e as desvantagens e o por
do r tá se destacando tão forte nessa área de Inteligência Artificial mas como é que exatamente ele funciona bora ver podemos explicar o funcionamento do hag em poucos Passos O primeiro é justamente onde o usuário Faz a pergunta para llm o segundo passo é a tokenização que é o processamento das informações onde a consulta é dividida em pedaços menores os famosos tokens o terceiro nós chamamos de query pois ele representa a busca das informações na base de dados vetorizada e indexada tanto os dados da consult quantos armazenados são convertidos em vetores desse jeito é possível
comparar informações de forma mais eficiente o quarto passo é onde é feita a recuperação dos dados através da base de dados o quinto ele vetoriza os resultados obtidos na consulta o sexto passo Calma que já tá acabando viu combina a pesquisa e a resposta dessa forma nós temos a união das informações relevantes com a capacidade generativa para fornecer uma resposta precisa lá pra pergunta do usuário e por último a a resposta que é retornada ao usuário ok então nós já entendemos como é o funcionamento do HG no contexto do usuário e até um pouco mais
a fundo do que isso mas eu sei que você quer mesmo é que a gente te dê uma luz em como implementar o hag na sua aplicação não é não E é isso que nós vamos fazer agora existem alguns frameworks e ferramentas para serem utilizados como o lama index que é um antigo GPT index o semantique Kernel o autogen e tem outros também tá o que atualmente é um dos works mais flexíveis e extensíveis é o leng chain por isso iremos usá-lo nesse exemplo o l chain é projetado para facilitar a integração dos modelos de
inteligência artificial com outras ferramentas apis e dados externos ele tem arquitetura modular onde é possível criar fluxos de trabalho complexos que integram modelos de Inteligência Artificial a várias fontes de informação e o leng Chen ainda orquestra o uso dessas Fontes normalmente uma aplicação hag tem dois componentes principais a indexação e a recuperação e a ação acho que você já tinha percebido isso né no nome a indexação acontece com um pipeline da ingestão de dados de uma fonte e a indexação desses dados não é obrigatório acontecer dessa forma mas esse é um fluxo de ações bem
comum indo desde os dados brutos até os dados indexados primeiro é feito carregamento dos dados no L chain isso é feito utilizando document loaders que é um componente para carregar e processar documentos de diferentes fontes e formatos são centenas de integrações por exemplo arquivos de texto pdfs páginas web bancos de dados Slack notion Google Drive e por aí vai então é feita a divisão desse conteúdo de documento para pedaços menores de informações relevantes isso ajuda na indexação e até no envio de dados pro modelo depois é preciso indexar e armazenar esses dados geralmente isso é
feito usando o modelo Vector Store e edins essas informações são armazenadas em formato de vetores e eles são usados pelos modelos para entender as relações entre palavras e contextos ou seja cada palavra é mapeada para um vetor de números que o representa no contexto semântico do modelo o objetivo disso é que palavras com significado semelhantes tenham vetores próximos uns dos outros nesse espaço vetorial por exemplo maçã e banana eles podem ter edens próximos porque são frutas e através dessas comparações que encontramos as informações relevantes nesse caminhão de dados dessa forma Nós voltamos ao fluxo que
te apresentamos antes onde é feita per pergunta em seguida através de recuperação trazemos as informações vetorizadas e então é criado um novo prompt com a questão e e enriquecida com as informações recuperadas e passad pro llm que por fim devolve a resposta mas não podemos sair do vídeo só com o entendimento da teoria a gente tem que partir pro código então vamos usar como exemplo o código disponível na documentação da Lang chain que está muito maneiro vamos usar o modelo da Open ai Mas lá tem vários outros players como o antropic o Ed Google NVIDIA
grock e o mraw ai A ideia é criar uma aplicação que responde a perguntas sobre o conteúdo de um site Mais especificamente um post no blog da Lian weng que é a VP de pesquisa e segurança da Open ai com o conteúdo desse artigo vamos conseguir obter respostas bem específicas e atualizadas sobre agentes autônomos isso tudo criando uma pipeline de indexação simples com hag em aproximadamente 20 linhas de código estamos usando como linguagem nesse exemplo o Python e o o PIP como gerenciador de dependências começamos a instalação do Lang chain e de mais duas dependências
em seguida fazemos a instalação da biblioteca que integra o Lang chain com a api da Open ai assim podemos usar modelos de linguagem como um dos gpts ou o próprio novo aí o Wow One diretamente no lang chain se você já fez essa integração sabe que a iepi da Open ai requer uma chave de autenticação para acessar os modelos de linguagem ao invés de colocar a chave diretamente no código nós vamos fazer com que o usuário a insira no no momento da execução para isso vamos ter que importar o get pass pro usuário Inserir a
chave da API de forma segura sem exibir ela no console e o os para definir a variável de ambiente Open ai api Key Então vamos a mais imports incluindo o BS4 ou bual sup for para quem não é tão íntimo assim que é uma biblioteca Python para fazer scrapping ou raspagem dos dados entre outras libes vamos usar também o l chain chroma para armazenamento e Recuperação de vetores de edin estamos usando também ó o Lang chain community document loaders web base loader para carregar o conteúdo da página Web para uso dentro do llm Pois é
repara aí que o parâmetro web PS contém Justamente a URL específica e criamos um dicionário para especificar quais informações serão carregadas Porque Nós só precisamos de três partes do conteúdo o post content o post title e o post header ou seja conteúdo principal título e cabeçalho por fim a variável doc vai receber o conteúdo da página web filtrando essas classes específicas e esse conteúdo será tratado como uma lista de documentos agora estamos implementando a parte da recuperação e a geração do pipeline haug primeiro vamos usar o armazenamento vetorial criado antes com o chroma e eds
da Open ai e vamos convertê-lo em um retriever esse retriever ou recuperador vai buscar documentos relevantes ou trechos de texto com base em uma consulta assim ele vai identificar quais snippets são mais úteis para respondê-la Vamos definir a variável prompt através de um prompt pré-construído do HUB de prompts da leng Chang ela já vai definir como o modelo deve combinar a pergunta com o contexto recuperado para gerar uma resposta usamos a função Format doc para que todos os pedaços de texto recuperados sejam formatados de forma Clara e legível pro modelo isso vai também facilitar a
utilização do prompt agora temos o pipeline principal que realiza o hag nós vamos chamar como contexto o retriever usamos novamente o Format doc para concatenar os snippets e uma string legível e o runnable pass through no parâmetro question que simplesmente passa a pergunta diretamente sem fazer nenhuma modificação para que a pergunta seja processada como está depois aplicamos prompt o llm e o STR output parer o prompt orientando o modelo a Gerar uma resposta com base dos dados recuperados e na pergunta o llm onde o prompt é processado é então passado ao modelo de linguagem que
usa tanto a pergunta quanto com um texto recuperado para gerar uma resposta e o STR output passer que converte a resposta gerada pelo llm em uma string legível e retorna o resultado final por fim fazemos a pergunta o que é decomposição de tarefas e finalmente teremos então a resposta Com base no artigo da Lilian e esse exemplo pode ser aplicado para diversos cenários olha ninguém deve questionar que segurança no acesso a dados é importante em qualquer aplicação com a utilização do haag não é diferente a gente pode pensar por exemplo na implementação de um simples
chatbot com informações das empresas seus produtos funcionários clientes e etc Seria maravilhoso por exemplo poder fazer uma pergunta para o chat bot e receber uma resposta atualizada por exemplo quanto foi o faturamento do código fonte TV no último trimestre 245 milhões certíssimo certíssimo Bom Essa não foi uma Alucinação ali do modelo na verdade foi uma Alucinação Nossa mesmo mas era só um exemplo a gente podia colocar qualquer número mas esse é é é verdade mas depois eu vou conferir conf Mas vamos então para outra pergunta qual o nome completo da colaboradora Vanessa Weber E aí
qual é a idade dela e o salário dela ser lá que vai saber olha e agora né Será que qualquer pessoa pode ter acesso a esse tipo de informação eu responderia que é claro que não em especial sobre a idade mas através Desse exemplo bem simples que nós demos por aqui você consegue perceber que dentro dos dados de Treinamento podem existir muitas informações que são sensíveis e que devem ser compartilhadas apenas para quem tem determinados acessos dentro da empresa por isso é preciso implementar Barreiras de segurança de acesso a essas informações é preciso ter uma
assistente de ia que seja inteligente né E não uma Fofoqueira que saia contando tudo para todo mundo acreditamos que atualmente no segundo semestre de 2024 quando lançamos esse vídeo aqui a utilização do hag em projetos está apenas começando diversos projetos podem ser beneficiados como por exemplo chatbot para contato com cliente projetos voltados pra área de saúde paraa área jurídica e aí são muitas possibilidades então se você pretende trabalhar com desenvolvimento de ferramentas de Inteligência Artificial nos próximos anos aprender a fundo o haag é obrigatório Se gostou e aprendeu com a gente nesse vídeo não esquece
de deixar o like porque isso faz com que o YouTube entregue esse vídeo para mais pessoas se você gostou então a gente se vê no próximo vídeo tá então até lá tchau tchau cara eu acabei de descobrir que nós não temos aqui um dicionário do programador falando sobre llms Então vamos vamos fazer isso agora é e enquanto a gente fica aqui preparando esse conteúdo você pode assistir o episódio sobre machine learning que eu tenho certeza que também vai ser uma boa base para quem tá interessado em trabalhar com ias isso e depois Curte lá a
própria playlist do dicionário Porque também tem Inteligência Artificial lá mas vamos roteirizar aqui o llm at mais tchau tchau
Copyright © 2024. Made with ♥ in London by YTScribe.com