fala rapaziada tudo de boa seguinte nesse vídeo aqui eu vou te ensinar o que que é hag retrieval augmented Generation é uma técnica muito usada por aí para construir chatbots e hoje eu vou te explicar a teoria dela Se você quiser saber a prática não tem problema nenhum no YouTube aqui no meu canal eu também tenho um vídeo implementando hag na prática só procurar aqui que você vai encontrar show de bola inclusive na verdade eu vou deixar no card aparecendo aqui em cima para você poder procurar essa aula e implementar os conceitos que eu tô
falando aqui na prática show de bola então vamos começar aqui bom primeiro se você não me conhece né eu tenho que me apresentar eu quero ser educado aqui muito prazer meu nome é Anor eu trabalho com inteligência artificial e eu trabalho já nessa área já vai fazer uns quase 5 anos aí então bem antes do Hype do chat GPT e nesse canal aqui eu te ensino tudo que você precisa sobre inteligência artificial se você procura um lugar mais propício para poder para poder estudar né tem também o link do meu site que é a dácia
Academy dácia é a minha empresa e eu Academy no caso é o local onde a gente ensina sobre inteligência artificial e automação posso inclusive te mostrar aqui uma palinha de como é a plataforma então nós temos tantos cursos gratuitos tanto cursos e pagos aqui temos o treinamento de n8n o treinamento de chat PT temos também aqui alguns eventos que acontecem fori uma masterclass prompt de mais de 3 horas me enfim tem tudo realmente que você precisa pode fazer sua conta gratuitamente aqui para você aprender inclusive esse curso de chat IPT ele é gratuito tá tá
para você poder assistir então só fazer sua conta aqui é o primeiro link da descrição e eu te convido a conhecer agora vamos começar a falar sobre haag né O que que é hag hag é essa é uma sigla na verdade para isso aqui ó então hag é retrieval augmented Generation tá então é uma sigla para isso aqui que tá escrito make bonito né então ó retrieval augmented Generation o que que é isso ano vamos começar primeiro eu quero começar mostrando para vocês essa parte aqui da frase que é Generation o que que é Generation
né bom é um modelo de a de generativo modelo de a generativo né ou seja o modelo de texto como o chat APT é um modelo generativo ele gera novas coisas o modelo de imagem por exemplo como Dolly como mid Journey todos esses modelos são generativos porque eles geram entendeu no caso pode gerar um texto pode gerar uma imagem pode gerar um vídeo um áudio o que for o importante é que ele geram alguma coisa por isso o Generation aqui então quando a gente tá falando do chat ept por exemplo que é no caso o
contexto onde a gente usa hag aqui principalmente tá bom nas aplicações que são aplicações de texto o que que acontece a gente tem alguns defeitos entre aspas do nosso modelo a primeira coisa é o seguinte quem aí nunca utilizou o chat PT por exemplo e ele gerou alguma coisa incorreta aí você fala ô tá errado isso aí meu filho e aí corrige aí ele fala não verdade desculpa entendeu E aí ele começa a se corrigir porque ele errou e isso a gente chama de Alucinação Alucinação o que que é Alucinação é quando o modelo de
linguagem generativo diz alguma coisa com muita confiança Só que essa coisa que ele diz com muita confiança na verdade é mentira show de bola então isso a gente fala que o modelo tá alucinando ou seja ele tá dando informações incorretas Agora pensa no seguinte cenário Você tem uma empresa você acabou de fundar sua empresa e ela tem lá os valores da empresa as metas da empresa tem tudo e vamos supor que você tá contratando tanto funcionário mas tanto funcionário que você quer criar um chatbot pr as pessoas poderem perguntar né sobre a sua empresa então
ó é qual que é a meta chega um novo funcionário ele fala qual que é a meta do setor de marketing Opa o chatbot responde você concorda com mim que se ele perguntar pro chat GPT primeiro que o chat GPT não faz a menor ideia de qual que é a sua empresa que você acabou de fundar ela e outra coisa ele não faz ideia das suas metas porque é algo interno entendeu é um documento que você tem interno dentro da empresa que por exemplo os desenvolvedores que fizeram o chat PT não tem acesso para poder
treinar o modelo em cima dele ou seja Alucinação Na verdade o chat PT ele pode responder tanto que ele não conhece essa empresa que ele não pode falar sobre ou ele pode alucinar e começar a falar um monte de bobagem entendeu então os modelos generativos eles geralmente T isso por trás eles têm essa esse defeito entre aspas show de bola que no caso é a Alucinação e qual que é o segundo defeito é justamente essa falta de conhecimento né que a gente chama também de knowledge esse nome bonito né cutoff né knowledge cutoff o que
que é isso é basicamente um corte de conhecimento que esse modelo tem então quando você pergunta para ele coisas que ele não foi treinado ele não sabe responder né então por exemplo se você chega pro chat tpt sem acesso à internet e pergunta para ele Ó quem que é o quem que acabou de ganhar as eleições nos Estados Unidos ele não faz a menor ideia por quê Porque o chat PT já aí vamos colocar o GPT 3.5 o GPT antigo antigo da primeira versão dele tá Que foi lançado ele foi treinado com dados até se
eu não me engano novembro ou setembro de 2021 né E foi lançado em novembro de 22 mas a gente tá falando foi novembro de 22 foi exatamente foi novembro de 22 Não tô confundindo não então se você perguntasse para ele coisas que aconteceram em 2022 por exemplo sobre a Copa né sobre quem ganhou as eleições de 2022 aqui no Brasil ele não faz a menor ideia porque ele teve esse corte de conhecimento entendeu E aí entra justamente quem na jogada O rag que é o retrieval augmented entendeu então isso aqui na verdade a gente pode
traduzir paraa geração por recuperação Eu vou até colocar maiúscula aqui aumentada geração por por recuperação aumentada O que que significa esse recuperação aumentada eu posso fornecer pra minha ia pro meu modelo de inteligência artificial generativo informações que ele não tinha acesso para ele poder recuperar esses documentos e no caso aqui gerar o texto com maior clareza e eu vou te mostrar agora como funciona esse processo basicamente é o seguinte vamos supor que você tem aqui o usuário tá então essa aqui é a bolinha do usuário Então vou digitar aqui user show de bola na verdade
vou colocar em português né nós estamos no Brasil então usuário esse aqui é o usuário e ele faz a pergunta para o modelo de A então ele chega aqui e fala o seguinte ó esse aqui é o nosso modelo de a ele fala assim ó Qual é a meta qual é não no caso aqui é meu modelo de a né E aí eu vou colocar a pergunta aqui no prompt em si então aqui o modelo de a e eu chego aqui e falo qual é a meta a meta de marketing para 2025 por exemplo né
aí um usuário da empresa tá perguntando isso aqui e a função do chatbot é responder você concorda comigo que mesmo ele fazendo isso né ele fazendo essa pergunta aqui pro modelo o modelo não vai fazer a menor ideia ele vai responder uma coisa aqui então aqui embaixo tá a resposta do nosso modelo Aqui tá a resposta Só que essa é uma resposta incorreta bicho por quê Porque ele não faz ideia então incorreta ele não faz ideia de qual é a meta por quê Porque ele não tem acesso aos documentos internos da empresa e aí você
pode pensar Nossa ano então uma baita solução seria o quê a gente ter alguns documentos né então vou colocar aqui por exemplo de preto também então a gente tem alguns documentos para poder fornecer pro do nosso modelo então ó vários e vários documentos aqui tem como colocar isso aqui para trás send backward tem Ah mas não não fica legal e colocar vários documentos empilhados aqui mas não vai ficar legal vamos supor que isso aqui é um docum tá bom é um Word gigantesco que a gente tem e aqui que que pode fazer o modelo de
a pode pegar informações desse documento então aqui documento Olha só pode pegar informações desse documento aqui Então como que ficaria o fluxo Opa o usuário perguntou isso aqui que hum Beleza eu vou recuperar desse documento as informações que respondem à minha pergunta vou mandar pro modelo de a e o modelo de a vai me responder com base nos trechos que foram recuperados desse documento que respondem a minha pergunta olha só para você ver como é que o negócio tá ficando interessante Então agora a gente já consegue acessar documentos para poder responder dúvidas de usuário entendeu
então documentos específicos pode ser qualquer tipo de documento aqui show de bola pode ser áudio Anor pode por quê Porque você pode transcrever esse áudio e transformar em texto pode ser vídeo Anor pode porque hoje tem modelos que conseguem descrever vídeos textualmente ou seja você manda um vídeo pro modelo de a e ele te retorna um texto dizendo o que tem ali show de bola Então essa recuperação aumentada é justamente dessa forma isso aqui é a visão macro galera é a visão de cima agora o que que eu vou fazer eu quero dar um zoom
aqui pra gente se pra gente aprofundar um pouco mais tá vamos estudar um pouco pouco essa parte aqui dos documentos como é que essa parte aqui funciona tá bom Primeira coisa eu já quero falar uma coisa para vocês por que a gente usa hag você pode pensar u não é só pegar esse documento colocar no chat ept e ele utilizar de contexto seria muito interessante fazer isso né porém primeira coisa a gente tem aqui uma coisa que a gente chama de janela de contexto Então os modelos de a eles têm limite pra quantidade de texto
que você pode mandar para ele então você não pode chegar e colocar 10 livros seguidos lá ele não tem capacidade de de absorver essa quantidade de informação entendeu que é o que a gente chama de janela de contexto o chat PT hoje o 4oo ele tem uma janela de contexo de 128.000 tokens né é muito token é muito token só que quando a gente tá falando aqui de vários e vários documentos a gente não pode simplesmente chegar e colocar tudo lá no modelo entendeu então o que que a gente faz o primeiro passo quando a
gente recebe um documento pra hag show de bola a primeira coisa é justamente gente fazer um processo que a gente chama de criação de chunks então aqui ó criação ó criação de chunks perfeito o que que essa criação de chunks faz basicamente pega esse documento aqui muito grande pega esse documento muito grande e transforma ele deixa eu colocar aqui certinho como é que eu fiz hein É sim ó agora Tá bonitinho ó ele pega esse documento aqui muito grande e transforma ele em qu em vários documentos menores Como assim Anor como que ele transforma em
vários documentos menores o a meu filho ele pega esse documento maior aqui e simplesmente quebra ele então ele vai pegando os trechos desse documento entendeu então vamos supor esse documento aqui tem a esse documento aqui ele tem B esse documento aqui ele tem C esse documento aqui tem D entendeu E aí você pega esse cara e coloca só a Opa show de bola você pega esse cara e coloca só B você pega esse cara e coloca só C você pega esse cara e coloca só B E por aí vai no caso aqui não são caracteres
né não é só a letra a a letra B você pega de fato um trecho do documento e você vai criando esses vários documentos menores que a gente chama de chunks tá bom eh com essas informações entendeu então você transforma isso aqui o documento original Então esse aqui no caso seria o documento original e você transforma ele em k chunks então aqui eu vou colocar por exemplo k chunks show de bola vamos supor aqui que esse cá nesse caso aqui são nove né eu tô transformando em nove chunks eh diferentes aqui e show de bola
por que que agora tá show de bola por que que a gente faz isso porque se eu fornecer o documento original completo A gente não vai conseguir atingir a janela de contexto né vai passar da janela de contexto só que agora Eu dividi em documentos menores que eu posso colocar por exemplo vamos supor que a resposta da minha pergunta aqui ó Qual a meta de marketing para 2025 tá aqui então tem um texto a meta é entendeu tá tudo aqui escrito nesse documento aqui no nono documento então o que que a gente pode fazer Uai
eu chego aqui eu faço essa pergunta e eu chego e pego esse documento aqui e mando para Iá Então fala assim ó chega aqui a resposta do usuário né então a resposta do usuário Qual a meta Qual a meta de marketing marketing para 2025 E aí a gente fala assim ó contexto e coloca esse documento a meta é entendeu então o que que a gente tá fazendo aqui a gente tá pegando a pergunta do usuário tá colocando aqui e tá fornecendo um contexto para ele com base no documento que responde a pergunta do usuário oano
agora começou a ficar interessante por quê Porque agora o meu modelo vai ter contexto Com base no documento com base nas informações que o documento me dá já tá ficando legal já tá ficando Maneiro mas como que a gente sabe qual que é o trecho né que responde a pergunta essa é a grande sacada Essa é a grande sacada para poder saber o que que o hag faz então aqui beleza show de bola é uma ideia a gente dividir esse documento original em várias partes menores porque agora janela de contexto vai suportar né a gente
não tá tacando uma Bíblia direto lá a gente tá pegando trechos menores só que trechos que responde a pergunta do usuário entendeu trechos que responde a pergunta do usuário e como que a gente sabe qual trecho é tem uma coisa que a gente chama de e agora que vem a a grande sacada né quando a gente transforma esses caras aqui é em um Vector embedding que a gente chama no nome difícil já já começou a ficar difícil isso aqui eu entendi mas Vector embedding você começou a complicar Calma aí que eu vou te explicar de
uma forma muito tranquila cara eu vou te explicar na verdade da como é que eu posso falar não de frente não de trás para frente eu vou te explicar de frente para trás tá Como é que isso funciona já vou te dar um spoiler essa busca aqui pra gente saber qual que é o trecho que responde a pergunta dos a gente vê qual que é aquele trecho mais similar semanticamente Como assim mais similar semanticamente Ora se eu tenho aqui vou pegar um gráfico Tá mas não precisa assustar não que é um gráfico bem tranquilo que
eu tenho certeza vocês vão entender então você tem aqui esse gráfico show de bola e aqui você tem por exemplo uma palavra eu vou representar essa palavra por uma seta tá mas Tecnicamente a gente chama isso aqui de um vetor então tenho duas setas aqui essa seta Aqui tem uma frase vamos supor que essa frase é um dos trechos aqui show de bola é um dos trechos mas nesse caso eu vou colocar em outro contexto para poder ficar mais fácil Então olha só o meu cachorro cachorro é lindo a gente tem essa frase que tá
aqui show de bola e tem uma outra frase que é o seguinte meu ventilador quebrou Opa meu ventilador quebrou show de bola temos essa outra frase aqui qual Quando eu tiver uma frase escrito por exemplo e nossa amo meu gato essa essa frase é mais similar semanticamente a quem meu ventilador quebrou meu cachorro é lindo semanticamente é o sentido da frase Opa tem aqui gato tem cachorro são animais show de bola amo meu gato meu cachorro é lindo são sentimentos positivos então provavelmente o vetor dessa frase aqui vai ficar mais perto de quem vai ficar
mais perto desse outro vetor aqui entendeu E a gente faz o quê olha só que cara quando a gente joga essa frase aqui por exemplo para poder buscar os trechos mais semelhantes ele faz isso ele cria um novo Vetor aqui no espaço e vê cara Quem que tá mais perto quais trechos estão mais perto desse vetor e é isso e ele retorna nesse caso aqui o que tá mais perto é meu cachorro é lindo e ele vai usar isso aqui de contexto então ele vai retornar para mim somente esse vetor aqui que no caso é
o meu cachorro é lindo show de bola então é isso aqui que acontece internamente isso acontece internamente ou seja a gente tem que fazer o seguinte agora vocês estão pensando tá no show de bola então ele vai retornar para mim os vetores mais similares os vetores mais próximos ali da minha frase original e no caso essa frase nossa amo meu gato seria Qual a meta de marketing para 2025 e aqui no caso meu cachorro é lindo seria a meta é E por aí vai show de bola e aí você pode pensar tá Anor show de
bola Mas como que a gente consegue representar essa frase aqui semanticamente e outra coisa para para você que já se atentou isso aqui tá num gráfico se tá em um gráfico significa que essa frase aqui é um número uá agora já era né agora eu já me perdi Não entendi mais nada agora pois é e é justamente isso que o Vector eding faz ele transforma ele pega uma frase ele pega uma frase qualquer frase e transforma ela no seguinte ó eu vou colocar aqui de de e nessa frase aqui eu vou colocar até pontilhado show
de bola Vou colocar até pontilhado por quê Porque ele forma cada um desses documentos nisso aqui ó então - 0 vírgula isso aqui 1 vírgula isso aqui eu vou colocar ponto tá para não confundir com a vírgula vou colocar ponto então ponto isso aqui um ponto isso aqui dois ponos isso aqui -3 ponto isso aqui e por aí vai e ele finaliza com -8 ponto isso aqui entendeu Então ele pega essa frase e transforma nisso aqui e isso a gente chama de embedding que é uma representação embedding densa do nosso da nossa frase entendeu E
isso aqui cara acredite em mim ou não armazena informação semântica da minha frase então isso tem dentro desse vetor aqui de números dentro dessa lista de números tem ali o significado semântico da nossa frase entendeu olha o tanto que isso aqui é Massa olha o tanto que isso aqui é massa e aí o que acontece esse cara aqui ele vai virar quem ele vai virar esse cara aqui ó tá vendo ele vai virar esse vetor quando a gente coloca ele no espaço e uma representação gráfica show de bola então é dessa forma que ele consegue
representar aqui eh e consegue calcular Qual que é a distância né porque a gente tá falando de dois vetores aqui em um espaço e retornar os trechos mais semelhantes show de bola então funciona desse jeito aqui que eu tô mostrando para vocês e aí Anor perfeito eu entendi exatamente o que que você quis fazer só que como que a gente consegue armazenar esses chunks né E aí que tá a gente faz o qu a gente faz os edgings então ó criamos aqui os embeddings show de bola vou até colocar aqui ó criação de embeds criação
de embeddings E aí a gente armazena armaza é ótimo né a gente armazena isso e aqui eu vou ter que fazer dessa forma eu queria pegar um cilindro Mas não vai ter como a gente armazena isso no que a gente chama de Vector Database hum Entendi então Ó que que você tá fazendo ano você tá pegando um banco de dados vetorial Por que vetorial para armazenar os vetores entendeu então é dessa forma que funciona a gente pega aqui os trechos no caso Eu dividi aqui em kchan eu pego esses C trechos e coloco essa representação
semântica em um vetor no caso aqui é em um banco de dados vetorial né um Vector Database e toda essa informação fica armazenada aqui e o que que acontece agora olha só que que interessante né quando o usuário Faz uma pergunta a gente faz isso aqui agora ó a gente chega aqui olha só chega aqui manda essa pergunta já com embeds então criação de pergunta criação de edgings desculpa criação de edgings a gente faz a a gente na verdade armazena a informação semântica a gente transforma isso em um vetor numérico igual esse cara aqui pra
nossa pergunta também por quê para poder representar ele como um vetor show de bola então a gente faz essa transformação aqui da nossa pergunta aqui no caso é qual é a meta de marketing para 2025 a gente transforma em uma lista numérica aqui que armazena as informações da minha pergunta bate ela aqui no Vector Database e faz o quê no caso eu vou tirar esse cara aqui porque a gente já tá E e na visão mais zoom dele né e eu faço o quê eu retorno eu faço aqui ó retorno os n trechos mais similares
a pergunta que o usuário fez né então eu chego aqui ó pego esse camarada Olha só pego esse camarada aqui e retorno os k trechos mais similares Hum entendi então todos esses caras ficam armazenados aqui e quando o usuário Faz uma pergunta que que acontece eu mando essa pergunta para cá já feita um embed dela pego os n trechos mais similares e uso de contexto aqui na ia para poder me responder é isso é exatamente isso vamos seguir aqui no passo a passo galera eu quero fazer é o passo a passo realmente com vocês ó
Isso aqui é feito uma vez tá bom então esse aqui é feito uma vez essa parte aqui onde eu pego os documentos crio os chuns e armazeno isso em o banco de dados vetorial e se aqui você faz uma vez e acabou show de bola a não ser que você queira adicionar mais documentos e aí você tem que repetir esse processo para poder adicionar mais documentos aqui no Vector database beleza mas a partir do momento que você já tem esse Vector Database criado com os chunks aqui é armazenados em formato de embedding que que vai
acontecer o usuário fez uma pergunta Opa show de bola esse aqui é o primeiro passo o primeiro passo é essa seta aqui de cima por essa pergunta ela vai vir no Vector Database o Vector Database vai retornar aqui os dois trechos mais similares na verdade os n trechos mais similares né então esse aqui é o passo dois e aí depois o que que vai acontecer o usuário vai mandar a pergunta paraa ia Então essa pergunta vai ser utilizada na ia e a ia vai responder o usuário ou seja o último passo é a resposta agora
do usuário entendeu é a resposta que a ia dá pro usuário por quê Porque internamente o prompt da da ia vai ser assim ó você na verdade é responda a pergunta do usuário Com base no contexto Se você não souber diga que não sabe a resposta e aí o que que acontece você coloca aqui no prompt eh aqui ó pergunta do usuário e aqui no caso é a pergunta então aqui estaria a pergunta que ele fez e aqui contexto ou seja aqui você vai colocar os n trechos retornados para poder utilizar de contexto show de
bola então ó fica exatamente desse jeito aqui o prompt da nossa ia deixa eu até colocar aqui ó fica exatamente desse jeito deixa eu colocar uma setinha só para poder indicar Então olha só a gente tem isso aqui esse aqui é o prompt que é utilizado na inteligência artificial para poder responder pro usuário show de bola então o hag pessoal ele funciona basicamente dessa forma e eu digo mais para quem ficou até o final dessa aula isso aqui essa arquitetura aqui é o que a gente chama de naiv hag Ah que que é naiv né
hag Você já sabe mas o que que é naiv ingênuo Então esse rag aqui acredita em mim ou não é o rag mais entre aspas fraco de ser aplicado aí você pode pensar o a mas esse TR já é complicado tem como piorar ainda mais eu te falo tem mas esse piorar melhora bastante a qualidade das respostas tá o que que acontece galera aqui a gente tá analisando a gente tá retornando os mais similares semanticamente só que tem como você retornar aqui no caso fazer essa verificação tanto por semântica mas no caso aqui tanto pela
semântica quanto pelo palavras-chave então tem como você fazer essa mescla que é o que a gente chama de Hybrid HG Ou seja é o hag híbrido que a gente tá analisando tanto semântica quanto palavr chave tá bom eh outro outra forma também que a gente consegue fazer é esse cara aqui onde a gente pega no caso documentos hipotéticos para poder e fazer o hag e eu vou explicar só esse de baixo aqui porque eu já coloquei ele na cabeça de vocês que ele existe vou explicar que ele é mais tranquilo tá então quando o usuário
Faz uma pergunta ao invés dele já criar o embedding da pergunta ele tem um passo intermediário que é de criar um documento hipotético que responde a pergunta do usuário e aí ele vai fazer o hag com base nesse documento hipotético que ele gerou para poder trazer as informações entendeu Então esse é o outro tipo de hag aí tem várias e várias arquiteturas Tá mas esse aqui é o modelo mais entre aspas tranquilo de poder entender então galera é isso espero que vocês tenham gostado aqui dessa aula sobretudo aprendido não se esqueçam primeiro link da descrição
D Academy em breve a gente vai lançar Nossa formação completa em Inteligência Artificial e eu não sei quando você tá vendo esse vídeo então pode ser que você é que essa informação já esteja no ar beleza para você poder entrar lá e conhecer mas cria uma conta gratuita mesmo se você não quiser a formação não tem problema nenhum vai ter vários cursos grátis lá para você poder assistir sobre inteligência artificial e automação show de bola Então galera é isso estamo junto e até a próxima aula