Vamos lá, pessoal. No vídeo passado, eu falei aqui para vocês que nós temos tipos de prompts e as suas variações. O que eu não falei para você é que o mais interessante de tudo é que você consegue combinar esses tipos de prompts. Então, não é porque eu estou criando um prompt que eu não posso usar várias técnicas de forma simultânea. E eu vou mostrar isso aqui para vocês e vai ficar bem claro. Mas antes de a gente entrar nesses exemplos mais complexos o que eu quero fazer aqui pra você é o seguinte, é trazer exemplos de cada um e conforme a gente vai vendo esses exemplos vai ficando mais claro o que cada um faz e quais são os casos de uso desses camaradas então vamos lá, zero shot prompt, tá então o que é o zero shot? o zero shot prompting é uma técnica onde o modelo de linguagem recebe apenas a descrição da tarefa sem nenhum exemplo anterior. O objetivo ali é avaliar a capacidade do modelo, generalizar e resolver o problema, tá? Então, o mais interessante é que você vai perceber que é o que a gente mais faz no dia a dia, muitas vezes, quando a gente trabalha com IA, mas o interessante é que isso não veio do nada, né? Então, uma vez que você começa a categorizar os tipos, você vai tendo mais clareza do que você vai fazendo. E isso aí, né, o zero shot, existe estudos em relação a eficiência e tudo mais, então pra cada tipo de prompt que eu vou trazer aqui pra vocês, o que eu tô também fazendo questão é trazer da onde que veio a ideia da onde que veio o estudo, e eu também vou disponibilizar os papers desses tipos de prompt que você consegue olhar com mais clareza entender e com muito mais exemplos, porque os exemplos que eu vou trazer aqui vão ser muito mais focados em exemplos no mundo do desenvolvimento, mas se você quiser se aprofundar, você pode se aprofundar com os papers que existem. Então, é uma abordagem que veio em diversos estudos ali, incluindo, foi publicado pela OpenAI, e eles demonstram como os modelos, e começou isso lá no GPT-3, a realizar tarefas complexas apenas com uma boa descrição da tarefa no prompt, mesmo sem exemplo. O grande ponto é que às vezes a gente quer que a IA resolva uma coisa bem complexa para a gente, mas você nem explica para ela direito como você quer essa resolução. E o zero shot, no final do dia, ele é exatamente essa capacidade. Você não dá exemplo. Então, por isso que é zero shot. Você não dá, né, nem a ideia de como que você quer a resposta. Por outro lado, né, da forma como você pede e escreve e descreve aquilo, você vai ter um resultado melhor, mesmo sem dar nenhum tipo de exemplo. Então, quando que eu utilizo zero-shot prompting? Quando a tarefa é simples e bem conhecida pelo modelo. Por exemplo, perguntas factuais. Quando o Brasil foi descoberto? Estou dando um exemplo aqui para vocês. Ou seja, eu quero entender melhor o capítulo daquele livro, ou eu quero entender a sua visão sobre o livro de Mateus da Bíblia. Então, esses tipos de coisa são muito bons para você trabalhar com zero-shot, porque você não precisa de exemplo, porque você quer saber o resultado, mas você não quer definir como o resultado vai ser gerado para você. Você não tem exemplos para dar, às vezes você nem sabe como dar um exemplo, porque você não entende do assunto. Então, uma das coisas que a gente percebe, inclusive no mundo do desenvolvimento pessoal, é que grande parte dos nossos problemas técnicos é não saber o que a gente não sabe. E com zero shot, é muito complexo você conseguir esses resultados, porque você só consegue perguntar o que você sabe, não o que você não sabe, certo? Isso aí também é muito bom quando a gente quer testar a capacidade de como que um modelo interpreta uma tarefa, e quando a gente precisa processar uma grande quantidade de tarefas distintas e breves com menor custo de tokens. Isso aqui é algo que eu queria ressaltar, tá? Todo mundo fala de prompt engineering, etc., e é interessante uma coisa. Cada tipo de prompt vai fazer com que você gaste uma quantidade de tokens muito maior ou muito menor e quando eu falo quantidade de tokens caso você não saiba toda vez que você escreve uma palavra para IA ela considera essa palavra ou partes dessas palavras como tokens e são a junção desses tokens quando você manda para ela, que ela consegue interpretar e trazer esses resultados. Quantos mais tokens a gente vai transferindo, ela vai gerando e você vai enviando para ela, o que acontece no final do dia? Mais tokens você usa, mais caro fica, mais lento o processamento pode ficar. E às vezes a gente não quer coisas tão detalhadas, ou às vezes eu não quero passar tantos detalhes e tantos exemplos, inclusive para economizar. E quando eu falo para economizar, imagina que eu quero que faça uma determinada tarefa, e essa tarefa aí vai utilizar 500 tokens e ela vai retornar para a gente 1.000 tokens de volta. Então, cada vez que eu estou trabalhando, eu estou usando 1.500 tokens. Vamos imaginar que da forma como eu pergunte, ao invés de eu mandar 500 tokens na pergunta, eu mando 250. E eu vou receber de volta 500. E vou conseguir ter a mesma qualidade ou a resposta mais exata do que eu quero, mas gastando muito menos. E cada dia a mais a gente vai querer colocar na ponta do lápis o quanto que a gente vai gostar. Por isso que entender qual modelo você vai usar, pra cada caso de uso também é importante aí também saber. Beleza? Aqui tem um link desse paper, tá? Onde chama Language Models Are Few um link desse paper, tá? Onde chama Language Models are Few Shot Learners, tá? Então, quando você entra aqui, só vou te mostrar, quando você dá um ver PDF, a grande parte dos papers que eu vou trazer aqui para vocês, eles são baseados nisso, tá? Então, aqui vem da OpenAI, né? Abstract, mas o interessante é que apesar de ser documento num estilo mais acadêmico, científico, é claramente simples de você entender o que eles estão dizendo aqui, tá? Então tudo que eu vou trazer pra vocês, você vai perceber que é mais fácil você entender isso do que parece, tá? Então, conforme você for olhando, ele vai trazendo aqui para você ideias de como essas coisas funcionam. E quando eu digo simples, obviamente, partindo do princípio que você tem uma base ali um pouco mais clara de inteligência artificial. Você não precisa ser o cara mais especialista, mas você tem que entender o que são parâmetros, o que são tokens e coisas desse tipo, tá? Mas aqui ele vai fazendo diversas comparações com outros tipos de prompt, por exemplo, como o zero shot, o one shot, que a gente vai falar ali para vocês. Então, ele traz os detalhes, como que eles fizeram eles trazem os resultados como que eles fizeram um fine tuning, como é que isso foi por exemplo, traduza em inglês pra francês aqui é a description e aqui é o prompt, aqui com fine tuning então ele vai trazendo zero shot, one shot few shot, então ele vai trazendo zero shot, one shot, few shot. Então, ele vai trazendo essas informações. E daí, obviamente, a coisa vai entrando em cada momento mais técnico, porque daí vai ficando cada vez mais complexo, entendendo e tudo mais. Mas as ideias principais de você entender os exemplos dos testes que eles fizeram, né? E as comparações, isso você não precisa ser um gênio e um especialista em inteligência artificial para ler esses papers. Então, eu recomendo que você leia. E se você quiser se aprofundar e não entender todos esses textos, durante esse curso, obviamente, você vai aprender tipos de prompts que você pode importar esse PDF e pedir para ele mastigar um pouco melhor para você esses resultados. Ironicamente falando, a gente usa IA com prompts que a gente está aprendendo para entender os tipos de prompts que existem na própria IA. Então, a gente acaba entrando para trabalhar. Então, aqui ele traz para a gente acaba entrando a trabalhar, então aqui ele traz pra gente coisas tanto de few shots como one shot e você vai começando a entender, tem documentos que eles são complementares e falam dos mesmos tipos ali pra você, beleza? De qualquer forma tá tá aqui pra que vocês consigam entender toda essa pegada. Uma outra coisa interessante aqui no Zero Shot, deixa eu dar uma olhada, é a gente tem algumas vantagens, que é o que eu estava comentando aqui para você. A gente tem baixo custo de preparação do prompt, a gente tem uma alta escalabilidade, e é muito rápido, e a gente consegue ter alta experimentação. E a gente tem algumas coisas interessantes também aqui, são limitações. Você vai perceber que todo tipo de prompt tem as suas limitações e por isso que eles são adequados pra cada caso. Então, limitações nesse caso, ela pode falhar em tarefas mais complexas, né? Ou que são menos frequentes pro modelo, quando a gente começa a fazer, pedir coisas mais específicas. A gente não tem controle do formato de saída das respostas. Cada vez ela vai responder de um jeito. Dependendo da compreensão implícita, o modelo vai trabalhar com tarefa. Ou seja, a gente depende de como cada modelo vai entender a forma de como a gente coloca. Isso acaba sendo totalmente subjetivo. A alucinação. Modelo, ele pode gerar conteúdo incorreto com alta confiança. O que significa? Você olha e fala, caraca, esse sabe do negócio, mas a resposta que ele gerou não tem nada a ver. Isso é muito comum em alucinação, era um dos pontos, e ainda são pontos extremamente preocupantes quando a gente trabalha com IA, mas novamente, se a gente trabalhar com prompt certo, no momento correto, você vai entender que você consegue minimizar muito esse risco de alucinação. Às vezes, com uma palavra, você diminui ali em 80% a alucinação que ela pode fazer. E aí, a gente tem variação com pequenas mudanças na formatação, prompt semanticamente equivalentes podem gerar resultados diferentes. Às vezes eu mudei uma palavra, o resultado é totalmente diferente, a forma de escrita, por exemplo. E qualquer tarefa que ela precisa usar lógica, né, fica mais complexo você fazer com zero shot, porque você não dá exemplo, principalmente. Então é difícil ela conseguir inferir da forma como que você quer que ela raciocine ali com você, tá? E aí a gente tem algumas estratégias de mitigação o que que isso significa? Eu consigo, mesmo usando zero shot ter algumas técnicas que me ajudam a melhorar as minhas respostas. Então, por exemplo, dar instruções claras. Então, por exemplo, exemplo ruim, analise esse código. Um exemplo um pouco melhorado, explique esse código, o que esse código Go faz e liste possíveis problemas de performance. Concorda que a gente ainda está ali numa frase, mas somente de eu falar para ele que a linguagem é gol, a gente falar que tem problemas, e esse problema ainda de performance, a forma de como ele vai trabalhar é diferente. Obviamente, é muito claro para quem lê isso, e acredito que é óbvio para você, mas é importante você entender que especificidade, eu acredito que você já deva ter percebido ou já deva ter o filho falar quanto mais específico, melhor o resultado e isso não muda inclusive pro zero shot, tá? Outra coisa interessante, tá? É trabalhar de forma declarativa tá? Orientado a tarefa ao invés de você ficar apenas perguntando, você define o que ele vai ter que fazer. Quando você gera uma tarefa, ao invés de você simplesmente perguntar, muda muito o resultado. Galera, você consegue perceber que o que eu estou dizendo aqui para você são nuances. A gente pode parecer um monte de coisa ó dizendo aqui para você são nuances, né? A gente pode parecer um monte de coisa óbvia, mas são nuances. E são essas nuances que vão fazer diferença no dia a dia seu, tá? Então, por exemplo, liste os principais motivos para erros de memória em linguagem Go. Isso aí, na realidade, é algo declarativo. Eu estou pedindo para ele fazer isso. Não estou perguntando por que eu posso ter erros de memória na linguagem. Muda completamente. E quando eu peço para ela ser objetiva, normalmente ela vai trazer bullet points ali para mim e as coisas vão ficando mais claras. E outra coisa também, que é a sinalização do formato esperado. Por exemplo, responda em forma de tópicos ou escreva uma explicação de três parágrafos. Então, isso aí também já te ajuda a direcionar a IA, mesmo sem trazer os exemplos, tá? Então, eu posso chegar, liste os principais, liste três principais motivos, tá? Então, eu posso chegar, liste os principais, liste três principais motivos, tá? Para erros de memória na linguagem Go, né? E explique isso em três parágrafos. Um parágrafo para cada tipo de problema. Pronto. Já mudou completamente a primeira forma, como eu falei, explique esse código em Go Go com possíveis problemas de performance do que nessa última versão então lembre pessoal leve essas coisas em conta vai falar com o IA mande, declare o que você quer não fique simplesmente apenas perguntando, e você vai perceber que o tempo que você vai gastar escrevendo vai ser exatamente o mesmo mas a sua resposta vai ser completamente diferente, fechou?