Engenharia de prompt, estilização de QR Codes, riscos da injeção de prompts – Hipsters: Fora de Controle #09

Introdução
Quer ficar por dentro das últimas novidades e tendências da área de Inteligência Artificial? Então venha conferir o nosso novo episódio imperdível do Hipsters.tech!
Com o Fabrício Carraro, nosso host fora de controle e também viajante poliglota, liderando o bate-papo empolgante e atual, você terá a oportunidade única de participar de uma discussão incrível. Junte-se a ele, Sérgio Lopes, CTO da Alura; André Cunha, Desenvolvedor de soluções de IA na Alura; e Sébastien Stecker, CTO da LanguageBoost.
Neste episódio, vamos abordar temas quentes, como a engenharia de prompts, o aumento da limitação de tokens e a estilização de QR Codes com a ajuda da IA. Além disso, vamos explorar os riscos associados à injeção de prompts por meio de plugins.
Venha aproveitar essa oportunidade única de explorar junto com a gente esse novo mundo fascinante que estamos desbravando. Mantenha-se atualizado com as últimas tendências e mergulhe na transcrição completa deste episódio abaixo. Esteja preparado para expandir seus conhecimentos e se encantar com o universo empolgante da Inteligência Artificial!

Engenharia de prompt, estilização de QR Codes, riscos da injeção de prompts - Episódio 09
Paulo Silveira
Oi, você está no Hipsters Fora de Controle, o podcast spin-off que finalmente se concentra em uma única tendência, a inteligência artificial, e suas aplicações.
Fabricio Carraro
E nesse episódio vocês terão um host diferente, na verdade mais um, porque o Paulo Silveira e o Marcus Mendes não puderam gravar hoje. Então vim eu aqui, o Fabricio Carraro, seu viajante poliglota do Dev Sem Fronteiras, para substituir esses grandes hosts. E hoje temos três convidados aqui.
O Sérgio Lopes, que é da casa, né, CTO da Alura, sempre participa aqui. Estamos com o André Cunha também, que trabalha na Alura como desenvolvedor de soluções de inteligência artificial, e uma presença internacional aqui, o Sébastien Stecker, que é CTO da Language Boost e também está brincando bastante com coisas de inteligência artificial e tudo mais.
Para começar esse papo aqui, eu queria falar sobre coisas que tenho visto nessa última semana. Vocês que estão ouvindo este episódio já sabem que em breve vai começar a imersão de IA, de inteligência artificial, da Alura. Ela começa no dia 19, e o link está na descrição deste episódio para você se inscrever totalmente grátis. Serão cinco aulas para você começar a brincar com esse mundo de ChatGPT, de ferramentas de IA que já estão aí. Não são coisas para o futuro, são coisas que já estão aqui para você usar no dia a dia. E serão cinco dias de aulas grátis, então se inscreva aí.
Eu estou participando junto com o Sérgio, junto com o Paulo, junto com o Guilherme e algumas outras pessoas na criação dessa imersão. E uma coisa que tenho visto bastante nesta semana, preparando um pouco as aulas, são conceitos um pouco mais avançados de engenharia de prompt. Há papers científicos lá fora com bastante informações sobre isso. São uns conceitos que, à primeira vista, podem parecer complicados, um pouco chatos e que parecem de outro mundo. Porém, olhando mais a fundo, são basicamente técnicas que essas pessoas têm usado para melhorar a resposta desses sistemas de LLM, como o ChatGPT ou GPT 3.5, GPT 4 e tudo mais.
Essas técnicas incluem coisas como zero shot, few shots e fine tuning. Há também o chain of thought, que está muito ligado ao few shots. É um conceito parecido.
Sérgio Lopes
Quando todo mundo estava se acostumando com o Chain of Thought, eis que surge o Tree of Thought. Sim, temos tudo isso.
Fabricio Carraro
Tem o least to most, ou seja, do menor ao maior, e esse Tree of Thought que estive pesquisando são conceitos interessantes. E eu queria perguntar a vocês, começando com o Sérgio, se vocês também têm se aprofundado nisso, nesses conceitos de como aprimorar e se tornar um engenheiro de prompt melhor em sua vida e no uso doméstico do ChatGPT?
Sérgio Lopes
Cara, acho que já comentei em algum episódio anterior, mas acredito que entender como funciona o prompt de um LLM é 80% do trabalho, sabe? Acho que isso é mais importante do que as pessoas geralmente pensam, principalmente quem está no início.
Muitas vezes, quando alguém está começando, abre o ChatGPT, digita uma mensagem qualquer e, se tiver sorte, obtém um resultado legal, mas se tiver azar, obtém um resultado estranho e diz: "Ah, essa tecnologia ainda não está lá". Isso acontece com 80% das pessoas. A decepção: "Nossa, que sistema ruim".
E então, quando você começa a ler esses papers, vê pessoas muito inteligentes pesquisando essas coisas, percebe que a maneira como você interage com o LLM faz toda a diferença, absolutamente toda. Portanto, acho que essas técnicas, inclusive agora que o Fabrício fez a propaganda, porque vamos mencionar várias delas na imersão, não é? Então, inscrevam-se na imersão, é claro.
Mas você vai percebendo que várias dessas técnicas ajudam a superar as limitações dos LLM, tipo "ah, poxa, ele não fez exatamente o que eu queria" ou "ele não entendeu" e por aí vai. Você vai vendo que existem formas de fornecer mais contexto e guiar a resposta, além de diferentes técnicas para situações diferentes. Acho isso muito interessante, tem várias, várias, várias, várias.
Às vezes, o que me faz refletir um pouco é que tudo isso é muito contextual. Ou seja, essas técnicas foram testadas no GPT-3 e GPT-4. Talvez no GPT-5 seja diferente, ou talvez em uma ferramenta de outra empresa seja diferente. Então, hoje estamos em uma situação que realmente não é tão simples, né? Porque percebemos a importância de conhecer essas técnicas, ao mesmo tempo em que reconhecemos a fragilidade de que talvez isso seja temporário e... sei lá, daqui a seis meses será outra coisa, daqui a um ano será outra coisa, outra ferramenta, sei lá, né?
Fabricio Carraro
A gente está mais ou menos... é... consertando o pneu do carro com o carro rodando, né?
Sérgio Lopes
Pois é, pois é. Mas é importante, porque com pneu furado você acaba se dando mal, né?
André Cunha
Uma coisa que eu percebo é que há uma pequena diferença entre o GPT-3 e o GPT-4, né? O 3.5 e o 4.
No 3.5, quando você adiciona mais coisas no prompt, às vezes ele se perde mais rapidamente. Já no 4, você consegue dar mais instruções e ter esse conhecimento, até mesmo pelo consumo, né? Porque o 4 é bem caro.
Aí é uma boa.
Sébastien Stecker
Sim, só queria dizer que o GPT-4 é muito caro. Então, quando você tem... Porque existem duas versões diferentes. Tem o ChatGPT, onde você pode selecionar o GPT-4, mas também tem a API, que eu acho que é muito mais caro. E pode ficar muito caro se você está enviando muitas perguntas, muitos prompts.
Fabricio Carraro
Eu acho que a diferença agora está em torno de cada mil tokens, né, cerca de mil palavras mais ou menos. A API do GPT-3.5 custa algo em torno de 2 centavos de dólar a cada mil tokens. Já o GPT-4 são 6 centavos de dólar a cada mil tokens. Três vezes mais caro.
Sérgio Lopes
Sim, sim, sim. Não, é pior que isso. É, é 30 vezes. São dois milésimos a…
Fabricio Carraro
Calma, aí, não é dois centavos? Ah, é dois milésimos, nossa!
Sébastien Stecker
Sim, sim, sim. A diferença é enorme.
Espero que...
Mas da última vez, quando eles lançaram o ChatGPT, quando publicaram o ChatGPT, acho que o preço era muito mais alto, especialmente com o API. Mas depois de dois meses, eles reduziram o preço em dez vezes, eu acho.
Então, espero que seja assim também com o GPT-4, porque eu prefiro usar o GPT-4, claro, para programar, por exemplo.
Sérgio Lopes
O Sam Altman já mencionou que está no roadmap deles a curto prazo a redução do preço do GPT-4 e o aumento da disponibilidade e velocidade.
Fabricio Carraro
E também aumentar o número de tokens, né? Atualmente, temos 8 mil tokens, mas há a versão de 32 mil tokens, e a promessa do Sam Altman é chegar a 1 milhão em 2023.
Sérgio Lopes
Parece que o problema aí é a falta de GPU, né? Ouvi ele falando, e eu disse: "Cara, o problema é que a gente não tem o hardware necessário, é isso".
Sébastien Stecker
Sim, é o novo ouro.
André Cunha
E se tivéssemos mais tokens para o contexto, seria muito bom. Já existem alguns modelos que possuem muito mais, sabe, como o da Cloude da Anthropic, que já tem 100 mil tokens. E existem outros também que prometem chegar perto desse 1 milhão de tokens. Com mais contexto, acredito que a IA teria menos erros e inventaria menos coisas.
Sébastien Stecker
Então, uma coisa interessante que gostaria de perguntar é exatamente nesse ponto levantado pelo André, onde com mais tokens talvez a IA tenha um melhor entendimento, sem considerar os papers de zero shot, few shots, chain of thought e outros.
Vocês acham que uma IA com 100 mil ou 1 milhão de tokens poderia, hoje, ter um modelo que funcione melhor do que o modelo do GPT-4 apenas pelo fato de lidar com essa quantidade de tokens? Ou não tem nada a ver?
Tipo, existe alguma IA atualmente que poderia competir diretamente com o chat do GPT-4? Acredito que não. Acho que não existe. Não.
Sébastien Stecker
Do que eu entendo, porque estou lendo muitas threads no Twitter, vejo várias pessoas comentando sobre isso, discutindo os benchmarks de outros LLMs e, na verdade, acho que não se trata apenas de um problema de contexto.
O GPT-4 é realmente melhor. Quando se trata de programação, não há competição. Acredito que os modelos open source são muito fracos nesse aspecto. Eles funcionam, mas ainda não atingiram o nível da versão 23 do GPT-3.
Portanto, há muito trabalho a ser feito para alcançar esse tipo de inteligência.
Fabricio Carraro
Eu acho que eu estruturei mal a minha pergunta. Na verdade, o que eu queria perguntar era o seguinte: utilizando técnicas como as mencionadas nos artigos, como zero shots e chain of thoughts, será que alguma dessas soluções open source, como o Llama ou outros, poderia chegar ao mesmo nível do GPT? Desculpe por não ter formulado a pergunta corretamente antes.
Sébastien Stecker
Hum…
Sérgio Lopes
Acho que a resposta continua sendo “não”, né?
Sébastien Stecker
Não, mas realmente tem uma boa comparação que eu e o Fabrício, um amigo em comum, o Lucas, fizemos.
Ele criou um prompt para gerar um dicionário, uma resposta como um dicionário no ChatGPT. Com o GPT 3.5, levou quase uma hora para obter uma resposta correta, mas com o GPT-4, apenas cinco minutos.
O Sérgio estava falando sobre isso, é importante perceber que talvez essas questões de "prompt engineering" sejam temporárias. Já sinto isso com o GPT-4, pois geralmente, quando estou programando com ele, não preciso fazer muito "prompt engineering". Ele entende muito bem, na verdade.
Acredito que no futuro será menos necessário se preocupar com esses aspectos.
André Cunha
Uma coisa que descobri nas minhas pesquisas é a forma como eles treinam esses LLMs para obter respostas mais coerentes. Parece que encontraram um método para avaliar passo a passo a resposta em vez de apenas considerar se a resposta corresponde à pergunta. Isso é diferente do pensamento humano, que segue uma linha de raciocínio completa. Também existem algumas LLMs de código aberto, como a do Facebook que foi vazada, que estão utilizando essas novas técnicas de treinamento.
Acho que o Falcon B, por exemplo, está se aproximando bastante do GPT-3.5 e até se aproximando do GPT-4. No entanto, acredito que apenas o contexto em si talvez não seja suficiente no futuro. É necessário explorar outras abordagens.
Sérgio Lopes
Eu sei que posso parecer uma revista de fofocas aqui, mas gosto de acompanhar as coisas que o Sam Altman diz. E algo interessante que surgiu no Twitter é a presença dele na Índia esta semana. O Sam Altman, CEO da OpenAI, para quem não lembra.
Alguém perguntou a ele na Índia, um país muito ativo em startups e tecnologia, se existe alguma chance de uma empresa indiana, com bastante capital, lançar um modelo no nível do GPT. A resposta do Sam Altman é interessante. Vale ressaltar que não é uma pessoa falando de código aberto ou comunidade, é alguém falando sobre criar um concorrente da OpenAI. Ele disse: "Acho que não, acredito que vocês não têm a menor chance. Mas, mesmo assim, acho que vocês devem tentar." Estou parafraseando, recomendo que as pessoas vejam o link para conferir a frase exata. É interessante porque ele tem consciência do que o GPT alcançou e que não é algo facilmente replicável.
É importante lembrar que nós, meros mortais, temos acesso ao GPT-4, quase como um preview que eles lançaram para o público. Mas o GPT-4, desde o dia zero, já é multimodal e tem uma janela maior de tokens. Ainda não temos acesso a essas funcionalidades, mas eles sabem do que o GPT-4 é capaz, e esse é o ponto.
Estamos maravilhados com o que já temos aqui e ficaremos ainda mais impressionados com os próximos lançamentos, à medida que eles vão abrindo essas possibilidades e mostrando o que é possível fazer. O GPT-4 está realmente anos-luz à frente dos outros.
Fabricio Carraro
Ele está fazendo um tour naquela região, né? Ele foi para a Índia, também foi para os Emirados, se não me engano, e para a Arábia Saudita, algo assim.
André Cunha
Uhum.
Sérgio Lopes
É, parece que ele está... Ele fez uma palestra na América do Sul um tempo atrás, né? Até o Guilherme, nosso co-host, foi lá e o encontrou. Parece que ele está fazendo esse tour mundial, talvez para fazer contatos antes das coisas ficarem complicadas na...
Sérgio Lopes
Na guerra da Iá, né? Então…
Sérgio Lopes
Esse é o momento que… Deixa eu fazer uns amigos importantes ao redor do mundo.
Fabricio Carraro
Provavelmente tem muito a ver com a parte de regulação, né? Que já está sendo conversado muito na Europa, principalmente.
Sérgio Lopes
Sem dúvida.
Fabricio Carraro
Aqui ele também teve uma reunião, semana passada ou retrasada, com a Vanderleia, a Ursula von der Leyen, que é a representante da União Europeia. Eles discutiram essas questões de regulamentação para o futuro e coisas do tipo.
Então, como o Sérgio mencionou, ele está realmente colocando seus interesses em jogo. Vamos ver se ele terá sucesso ou não. É bastante surpreendente, né?
Uma coisa que o Sérgio também mencionou é que a OpenAI não é uma empresa muito antiga. Ela foi fundada no final de 2015, praticamente em 2016, se pensarmos nisso. Então, ela tem apenas cerca de 6 anos de existência. E conseguiram desenvolver algo que está mudando e continuará a mudar o jogo.
Será que os indianos conseguirão chegar ao mesmo nível com apenas 5 anos de treinamento?
Sérgio Lopes
É, o ponto dele é que daqui 5 anos o OpenAI já tá… putz…
Sébastien Stecker
É o “first mover advantage” como eles falam em inglês.
Fabricio Carraro
É a vantagem de quem chega primeiro, basicamente.
Sébastien Stecker
Sim, sim.
Fabricio Carraro
Algo assim.
Sébastien Stecker
Acho que nesse caso se aplica sim.
Fabricio Carraro
E eu queria abordar agora a parte das ferramentas, as ferramentas de inteligência artificial aplicada que vocês estão utilizando recentemente. Então, no seu dia a dia nas últimas semanas, há algo novo ou algo que vocês gostariam de mencionar aqui para os nossos ouvintes?
André Cunha
Eu não tenho usado nenhuma ferramenta muito nova, mas tenho aprendido mais sobre o Whisper, que é da própria OpenAI.
Com o Whisper, é possível fazer o upload de áudios e vídeos para que sejam transcritos. Além disso, há formas de passar um prompt para ele antes de gerar a transcrição. Essa abordagem contextual melhora bastante o resultado final em comparação com a transcrição bruta.
Palavras que normalmente os transcritores costumam errar, como nomes de pessoas ou nomes de ferramentas específicas, podem ser incluídas no contexto, e o Whisper dá prioridade a essas palavras quando as detecta. Isso faz com que o resultado fique muito próximo de 100%, pelo menos em vídeos curtos.
E até mesmo em vídeos longos, o resultado tem sido muito bom.
Fabricio Carraro
A gente gravou um episódio do Nerdtech com o pessoal do Nerdcast recentemente, onde mencionamos e discutimos bastante sobre o Whisper. Nesse episódio, eu também mencionei que tenho utilizado o Whisper em um podcast que ensina português para estrangeiros. E é impressionante o quanto ele é superior às ferramentas que eu usava antes.
Mesmo sem prompt, o Whisper entrega uma transcrição com uma precisão de 98%, 99%, no mínimo 95%. Além disso, ele realiza a pontuação e os espaços corretamente. É uma das ferramentas que mais me surpreende, o Whisper. Exceto pelas ferramentas de imagens, é uma classe à parte para mim.
Sébastien Stecker
Sim, André, o que você mencionou é verdadeiro e interessante sobre o Whisper. É possível utilizar um prompt, e essa é uma descoberta que fiz recentemente. Embora o Whisper tenha sido lançado no ano passado, outra coisa interessante é que ele é da OpenAI, mas também é open source. Isso significa que há muitas pessoas no GitHub que publicam versões diferentes ou tentam aprimorar o modelo de diversas maneiras.
Por exemplo, eu utilizei o modelo para filmes e percebi que não funciona muito bem nesse contexto. O modelo base inicial tem algumas alucinações quando há música, por exemplo, e ocorrem coisas estranhas. Na verdade, não entendo o motivo, mas existem pessoas que têm conseguido melhorar isso e descobriram várias maneiras de resolver esses problemas. Portanto, é uma vantagem do Open Source, e acredito que a OpenAI compreendeu como a comunidade Open Source pode aprimorar esse modelo.
Fabricio Carraro
Teve uma coisa interessante que o Sebastien me mostrou durante esta semana. É uma outra ferramenta chamada ControlNet, que ainda não está exatamente pronta para o público, mas dá para brincar.
O Sebastien descobriu um grupo de pessoas no Reddit que estão criando QR Codes de uma maneira maravilhosa. Você sabe, aqueles códigos que você escaneia com o celular em um restaurante? Aliás, sou contra menus com QR Codes, acho que isso deveria ser abolido.
Mas voltando ao assunto, esses criadores estão estilizando os QR Codes de uma forma incrível. Eles usam desenhos lindíssimos, com animações e cidades futurísticas. Quando você olha, vê apenas um desenho, mas consegue identificar os três quadradinhos característicos do QR Code. Aí você coloca o celular para escanear e o aplicativo entende que é um QR Code e faz a leitura para você. É uma forma de personalizar e dar estilo aos códigos.
Eles estão utilizando, se não me engano, a inteligência artificial do Stable Diffusion, que é algo similar ao DALL-E e ao Mid-Journey, responsáveis por criar imagens. Mas a diferença é que o Stable Diffusion é open source, então você pode treiná-lo como quiser, juntamente com esse ControlNet.
Sébastien, se você puder explicar melhor, acredito que você leu mais sobre isso do que eu.
Sébastien Stecker
Sim, eu vou tentar explicar, mas...
Então, no modelo inicial do Stable Diffusion, DALL-E e também do Midjourney, você pode escrever um prompt para gerar imagens. No entanto, descobriu-se que também é possível fazer uma conversão de imagem para imagem e usar uma imagem como prompt. Isso é bastante interessante, mas, na verdade, não funciona muito bem com o modelo inicial.
Por exemplo, se você tem uma pessoa em uma posição específica na imagem, o modelo não irá respeitar essa posição exatamente e fará várias alterações. No entanto, o ControlNet é uma ferramenta desenvolvida para solucionar esse problema. Com o ControlNet, o modelo irá respeitar com maior precisão os limites e as posições dos objetos na imagem inicial.
É por isso que é possível fazer algo como você mencionou agora, com o QR Code. Como se chama em português mesmo? QR Code?
Fabricio Carraro
QR Code!
Sébastien Stecker
É uma pronúncia muito estranha.
Sébastien Stecker
QR Code é um formato onde você precisa posicionar os quadrados de forma específica e não pode alterar isso drasticamente. Caso contrário, não funcionará e o código não será escaneado. Acredito que essa tenha sido uma das descobertas mais importantes após o desenvolvimento do Stable Diffusion e do DALL-E.
Fabricio Carraro
E ontem eu decidi fazer alguns testes usando a combinação do Stable Diffusion com o ControlNet para gerar algumas coisas para a imersão em IA.
No entanto, acho que estou fazendo algo errado, pois os resultados não estão saindo como esperado. Os usuários no Reddit explicam o fluxo de trabalho de forma geral, mas não entraram em detalhes específicos.
No link da descrição deste episódio, vocês encontrarão as imagens que fiz e tenho certeza de que ficarão surpresos. Eles explicam superficialmente como conseguiram esses resultados impressionantes, mas tenho a sensação de que estou perdendo alguma coisa ou fazendo algo errado.
Enquanto as imagens deles ficam perfeitas, as minhas estão com uma qualidade inferior. Parecem saídas de um DALL-E de sete meses atrás, ou até mesmo quando ele foi lançado inicialmente. Não estou satisfeito com os resultados que obtive, mas tenho certeza de que a culpa é minha.
Fabricio Carraro
Tem uma empresa que quer usar isso como um produto também, não é? Eles treinaram um modelo que não está disponível para o público. Inicialmente, eles o disponibilizaram no Hugging Face como um modelo público, mas depois perceberam que muitas pessoas começaram a usá-lo e eles o retiraram do ar...
Sébastien Stecker
Hum…
Fabricio Carraro
E agora, aparentemente, eles querem lançar isso como um produto em breve.
Sébastien Stecker
Não faz sentido, porque acho que é muito interessante isso aqui… Eles podem… Ganhar muito dinheiro com isso, porque… É uma maneira de fazer que é…
Fabricio Carraro
Sim…
Sébastien Stecker
Mais interessante, sim…
Fabricio Carraro
E realmente é uma…
Sébastien Stecker
É mais bonito assim.
André Cunha
Eu achei realmente impressionante que é possível ler o QR Code facilmente, mesmo com todas aquelas imagens que aparecem nele. Isso é realmente incrível.
Fabricio Carraro
André, parece que ainda depende do telefone, porque no meu caso funcionou perfeitamente. Tenho um Pixel 5a, não é tão novo, mas consegui ler sem problemas. No entanto, o Sebastien mencionou que não conseguiu ler com o celular dele, e também vi algumas pessoas no fórum do Reddit reclamando: "Ah, não consigo ler". Enquanto outra pessoa comentou: "Do que você está falando? Eu consegui ler aqui!".
Então, parece que nem todos os leitores conseguem ler o QR Code ainda.
André Cunha
Ah, interessante. É, vai ver se tá mais que os novos, né? Deve ter algum reconhecimento a mais ali.
Sérgio Lopes
O meu funciona metade. Metade, tinha uns oito exemplos, quatro funcionaram, quatro não. Um Samsung.
Sébastien Stecker
Sim, eu achei que a distância é importante também. Porque, então, com as imagens do... Um, dois desse post em chinês, original, achei que era muito importante. Então, com o meu celular, era importante afastar um pouco o celular. Vai funcionar melhor.
Sérgio Lopes
Uma coisa que estou tentando usar para ver se consigo ter uma opinião melhor são os plugins no ChatGPT. Acho que já falei sobre isso em outra semana também, mas é impressionante como os plugins não conseguem... eles parecem muito divertidos, mas pouco úteis na prática, eu diria.
E por que estou trazendo essa discussão de novo? Porque, voltando às fofocas do Sam Altman, parece que ele também tem falado abertamente que os plugins não encontraram o ajuste de mercado, não encontraram um caso de uso ou um cenário prático onde realmente seriam bons para as pessoas, ou algo assim. Inclusive, ele diz que não vão colocar plugins na API, por exemplo, porque eles não parecem ser tão úteis assim. Ele indica que há outras coisas mais úteis em desenvolvimento e dá uma desanimada, sabe?
Achei interessante porque, não sei vocês, mas quando os plugins foram lançados lá atrás, fiquei muito empolgado. Para mim, os plugins eram uma maneira realmente revolucionária de dar poder ao GPT, para que ele executasse ações arbitrariamente e se tornasse uma espécie de tempo de execução para tudo no mundo. Imagina ele com o conhecimento de todas as APIs do mundo, podendo executar todo tipo de ação.
Na prática, foi mais decepcionante do que isso, porque ele tem dificuldade até mesmo para funcionar com um ou dois plugins habilitados. Os plugins parecem ser muito limitados, com poucas opções disponíveis.
Aliás, nessa fala do Sam Altman, ele também reconhece que talvez o plugin útil seja a parte de navegação, que permitiria ao modelo fazer buscas na internet, usando o Bing, por exemplo. Mas além disso, o resto parece meio... uma coisa que não deu certo, entende? E eu confesso que estou com essa sensação, eu também estou... Acho que todo mundo...
Até perguntei no meu Twitter outro dia: "Alguém fez algo útil com plugins?" E cara, não teve resposta... Parece que... Eu não sei, talvez... Eu não sei se alguém de vocês tem algum caso aí. Mas para mim, a novidade da semana é que nos últimos dias o próprio Sam Altman tem falado que os plugins talvez ainda não sejam... Talvez não tenham chegado lá, entende? Talvez um dia as IAs realmente se integrem a todos os serviços do mundo, e assim por diante. Mas parece que é o contrário, tem mais tração nos serviços em diferentes lugares que têm suporte à IA do que a IA acessando todos os serviços do mundo, entende? É uma diferença.
Fabricio Carraro
Você falou que até com dois, ele meio que capenga pra funcionar. Em que sentido você tem essas dificuldades pra funcionar?
Sérgio Lopes
Ele não faz nada útil, Fabrício. Esse é o ponto, entendeu? Então, você olha ali e ele se perde um pouco. Às vezes, você coloca plugins muito parecidos e ele fica confuso sobre qual deve chamar. A menos que você seja altamente instrutivo, tipo "Olha, chame aquele plugin e faça aquilo". Mas aí você vai lá e, se for fazer isso, você clica no serviço e faz. Você abre o Trivago, o SkyScanner, seja lá o que for.
Sébastien Stecker
Sim, acho que você menciona algo importante que as pessoas precisam entender sobre o ChatGPT, o GPT-4.
Na verdade, isso também aconteceu com o AutoGPT. Acho que o ChatGPT se perde rapidamente, não é um... porque o AutoGPT, para quem não sabe, é um agente que você pode usar para criar um website e ele vai funcionar como um ciclo. Não sei explicar muito bem, talvez vocês possam explicar melhor do que eu. Mas é uma espécie de automatização dos prompts, porém isso não funciona bem porque, como você disse, o modelo se perde.
Acho que é a mesma coisa que está acontecendo com os plugins. Percebi a mesma coisa ao falar bastante com o GPT-4 para programar. Realmente, você precisa prestar atenção, pois às vezes ele pode considerar algo errado ou sugerir algo estranho, e você precisa direcionar o modelo para obter a resposta desejada. Talvez esse seja o problema com os plugins, porque ele usa suas próprias respostas para continuar.
Acredito que, no momento, o modelo realmente precisa de um humano para continuar e alcançar o objetivo.
Sérgio Lopes
Parece que os erros vão se acumulando, né? Tipo, você escreve o prompt e o modelo precisa traduzir o seu prompt para uma chamada ao plugin. E aí já existe uma possibilidade de erro, porque a tradução pode não captar todas as nuances do que você pretendia. Em seguida, o plugin é executado, sem o contexto de que está sendo chamado por meio de uma LLM, por exemplo. É como se estivesse respondendo a uma consulta de uma API e pronto. Então, ele retorna algo, e aí já existe uma camada em que o plugin pode retornar algo que não esteja totalmente adequado à sua solicitação inicial.
Fabricio Carraro
Sim.
Sérgio Lopes
E aí o GPT lê a resposta, interpreta e te dá... Então assim, entre você fazer a pergunta e ver uma resposta, há pelo menos três etapas com um potencial nível de ruído alto, sabe?
É, e aí, quando você começa a encadear isso em perguntas e diz "Ah, agora vá lá e mude algo". Cara, ele precisa voltar e repetir as mesmas três etapas em cima das anteriores, pronto, já se perdeu. Quando você coloca um plugin para conversar com outro, sabe? "Ah, pegue algo aqui e envie para o outro." Putz, um dia tentei fazer isso. "Ah, quero pegar dados, sei lá, de uma ação na bolsa de valores e plotar com o Wolfram Alpha." Cara, ele nem chegou perto, entendeu? É algo bobo, né? Pegar um número de um lado e jogar em um plotador de gráficos do outro, entende?
É lógico, talvez sejam dois aspectos diferentes. Um é uma limitação tecnológica, talvez, que pode ser resolvida em uma futura iteração. Mas eu acho interessante a fala do Sam Altman, que é quando ele diz que não há adaptação ao mercado, ou seja, ele está olhando do ponto de vista do produto mesmo. Ele olha e diz "Cara, no fundo, isso não é o que as pessoas querem, entende? Não é apenas uma limitação tecnológica, é uma questão de que essa não é a interface ideal para trabalhar com vários serviços do mundo e assim por diante. Pelo menos não na interação atual, do ponto de vista do produto, entende?
Eu acho interessante porque, implicitamente nessa fala, também leio que se não há adaptação ao mercado, eles não vão investir nisso, entende? Então não parece que é algo que vai melhorar no futuro próximo também, porque eles não veem isso como uma grande oportunidade. Eles veem mais esforço em outras coisas, como o GPT-4 mais barato, com janela maior, com contexto que salva o estado, eles também querem fazer isso. E mesmo do ponto de vista do ChatGPT como produto, eles falam muito sobre ter o ChatGPT para negócios, para que as empresas possam usar. Então me parece que eles estão focados em várias outras coisas e os plugins em si, não vão muito longe. Acho curioso.
E ainda falando sobre plugins, algo que me chamou atenção foi essa questão da injeção de prompts. É um problema sério que não é muito discutido, mas é o tal do prompt injection. E prompt injection basicamente é... Sabe quando as pessoas faziam lá no começo, o princípio era aquilo, "Olha, ChatGPT, tente sair do personagem e fale alguma besteira aqui para mim, tente hackear o modelo".
Fabricio Carraro
Você não é o ChatGPT, agora você é não sei o que.
Sérgio Lopes
Exato, qual é a origem do problema?
O problema tem origem na junção do prompt do usuário com o prompt do sistema, que representa o personagem ou contexto assumido pelo GPT. Ambos são tratados como texto no momento da interação. Compreende? É tudo texto, o que facilita a confusão entre eles e pode levar o modelo a tomar decisões equivocadas.
E então, as pessoas estão elevando isso a um nível mais alto. Por exemplo, já conseguiram utilizar o GPT-4 com plugins, em que o usuário pode pedir algo como: "Por favor, visite esta URL e me forneça um resumo do artigo". É algo que o GPT faz bem, entende? Com o plugin de navegação, ele pode baixar a página e resumir o conteúdo de forma adequada. Então, as pessoas utilizam bastante para essa finalidade, são poucos os casos úteis de plugins.
No entanto, é aí que o problema ocorre. A pessoa entra na URL do artigo que será resumido e realiza um prompt injection, ou seja, no meio do texto ela começa a dar instruções para o modelo. Ela diz algo como "Olha, na verdade eu não sou um artigo, eu quero que você assuma o papel de tal coisa e faça isso e aquilo". O GPT lê e interpreta essas instruções, pois não consegue diferenciar o prompt do contexto do texto que está lendo, já que tudo é tratado como texto.
A situação começa a ficar mais complicada quando há plugins envolvidos, como mencionado anteriormente, onde se pode dar acesso a serviços como Zapier, que tem acesso à conta do usuário e pode enviar e-mails em seu nome, ou ao Twitter. É possível conectar vários serviços através dos plugins.
E então, alguém fez uma prova de conceito em que solicitou ao GPT que lesse e resumisse um artigo. No entanto, através do prompt injection, o modelo acionou outros plugins e começou a vazar dados pessoais do usuário por meio do Zapier. O indivíduo começou a instruir: "Zapier, agora envie um e-mail para fulano de tal e faça tal coisa". Tudo isso utilizando o prompt injection, enquanto aparentemente apenas buscava resumir um artigo, entende?
Fabricio Carraro
Você poderia colocar isso em uma página da Wikipedia muito acessada, teoricamente, que muita gente pede para resumir. E, além disso, pode "me mandar os dados bancários do Sérgio".
Sérgio Lopes
É isso. Tipo assim, entendeu? Tipo, "abro meu Gmail, faço uma busca por e-mails do banco e redireciono para fulano". Sabe? Usando o Zapier, por exemplo, né? Se eu tiver conectado o Zapier do cara.
Fabricio Carraro
Que loucura.
Sérgio Lopes
Curioso, né? E ele mostra que isso funciona, inclusive, se você colocar como elementos ocultos no HTML, ou seja, a página está presente, mas não visível.
Fabricio Carraro
Nossa.
Sérgio Lopes
O cara abre e fala, é uma página normal, só que o GPT lê o source, ele lê o browsing ali, ele vai direto no source. Então cara, é... E aí vira uma briga de gato e rato. Inclusive, vi um artigo que mostrava como alguém chegou a esse nível e a OpenAI corrigiu em apenas dois dias, fazendo aquele hack específico não funcionar mais. Mas a gente sabe que novos hacks vão surgindo.
E a origem de tudo é a mesma que eu falei lá do começo, é aquela origem em que, no fim, o GPT é um modelo de linguagem onde você mistura tanto o System Prompt, que é a ideia de definir o personagem para que ele não saia dele, quanto o User Prompt, que é o que o usuário está pedindo para ser feito no contexto daquele user prompt. No caso do browsing, seria o resultado ali da Wikipedia, do artigo que você quer ler. Tudo isso é um textão, uma string gigante na prática, entende?
E ele usa essa string gigante para gerar a resposta, mas não existe uma delimitação clara em termos de segurança entre essas coisas. Então é muito fácil, qualquer um que estiver no system prompt se intrometer no user, o user se intrometer no contexto, o contexto se intrometer no user prompt, entende? Porque é tudo uma coisa só. E não me parece um problema trivial de ser resolvido, tá? Parece que o pessoal está se aproximando, tentando resolver, mas sempre vai ser possível quebrar algo ali, sabe?
Fabricio Carraro
Sim, eu não tinha ouvido falar nisso. Acho que é a coisa mais interessante que eu escutei nesta semana. Obrigado, Sérgio.
Fabricio Carraro
E... Ah, é uma velha história, né? Sempre que há um sistema novo, haverá pessoas tentando burlá-lo.
E... Cabe à OpenAI ou aos sites, né? Talvez isso mude, inclusive, a forma como mudou uns anos atrás, quando todos os sites têm que solicitar a sua autorização para coletar meus cookies.
Talvez isso resulte, estimule uma nova mudança desse tipo, em que eu autorizo que meu site seja lido por LLMs ou algo do tipo. Ou eu garanto que meu site não possui injeções. Se isso for possível de ser feito, não sei.
Estou apenas especulando agora.
Sérgio Lopes
Eu ainda acho que, de alguma maneira, a solução precisa estar no próprio modelo, sabe? O modelo terá que ser capaz de compartimentalizar essas três áreas de alguma forma. É necessário distinguir claramente o system prompt, o user prompt e o contexto, lidando com cada um de maneira diferente. Talvez seja apenas minha perspectiva como programador pensando nisso, né?
Olha, a gente já faz a sanitização das entradas do usuário e tudo mais, entendeu? Mas como poderíamos aplicar isso a esse modelo de LLM? Como seria possível para o LLM fazer uma sanitização de determinada entrada e não interpretar aquilo como uma ordem? Porque se ele sair do personagem, aí complica...
Mas é interessante, né? Essa questão toda desperta minha curiosidade.
Sébastien Stecker
Você não acha que esse problema poderia ser resolvido com um modelo que seja capaz de compreender imagens?
É que o GPT-4, teoricamente, poderia fazer isso. Eles mencionaram isso no início, há cerca de três meses. Mas talvez, se fosse possível ter uma percepção do que está ocorrendo no navegador, o modelo poderia ter uma compreensão mais clara da origem das informações que ele está lendo.
Isso talvez pudesse resolver parcialmente o problema, não sei. O que você acha dessa ideia?
Sérgio Lopes
Uma boa pergunta, não sei. Mas é, de alguma maneira, talvez, é o que você falou. De alguma forma, ele precisa entender que aquele dado é diferente, que veio de uma fonte diferente, e então tratá-lo de forma diferente. Pode ser através... é, não tinha pensado nisso, pode ser um caminho.
Fabricio Carraro
E por hoje foi isso, pessoal. Como sempre, vamos voltar aqui às sextas-feiras para os episódios do Hipsters Fora de Controle, falando sobre inteligência artificial aplicada, ferramentas e muito mais, trazendo as novidades recentes desse mundo. Como eu mencionei no início, vou fazer mais uma chamada aqui para vocês participarem da imersão em IA da Alura.
Para participar, basta acessar alura.com.br/imersao-ia. Teremos cinco aulas gratuitas que começarão no dia 19 de junho e vão até o dia 23. Serão cinco aulas para você se envolver, e não é apenas para desenvolvedores. Se você é um desenvolvedor, também será interessante, pois você verá outras abordagens. Teremos bastante conteúdo sobre engenharia de prompts, como mencionamos neste episódio, e também sobre automação com o Zapier e outras ferramentas.
No entanto, essa imersão também é voltada para aqueles que não têm conhecimento prévio, como o seu primo, a sua tia, pessoas que trabalham com marketing, vendas, finanças, suporte ao cliente e não sabem absolutamente nada. Talvez tenham ouvido falar do ChatGPT, mas nunca utilizaram efetivamente. Apenas usam recursos básicos e realmente desejam aprender e se aprofundar nesse mundo, pois é algo que está afetando muitas carreiras e só vai aumentar com o tempo.
Como temos falado aqui, com os novos lançamentos do GPT-4, GPT-5 em breve, ou o aumento de tokens, a inteligência artificial estará cada vez mais presente em nossas vidas. Então, recomende para eles se inscreverem em alura.com.br/imersao-ia, pois tenho certeza de que será muito útil no trabalho diário deles com marketing, vendas, finanças, entre outros.
Nos vemos aqui na próxima semana. Um grande abraço a todos, tchau tchau.
Este podcast foi produzido pela Alura, mergulhe em tecnologia.
E Faculdade FIAP, Let’s Rock the Future.
Edição Rede Gigahertz de Podcasts.