O blog da AWS
Como usar IA generativa na criação de campanhas de marketing customizadas em português
Por Donato Azevedo e Rafael Werneck
Introdução
A inteligência artificial generativa (IA generativa) é um tipo de IA capaz de criar novos conteúdos como texto, imagens, música, áudio e vídeos. A IA generativa é construída usando grandes modelos chamados de modelos de base (Foundation Models, ou FMs). Estes modelos são treinados com uma enorme quantidade de dados e aprendem padrões e relações sobre conteúdos previamente criados por humanos. Em seguida, estes padrões aprendidos são usados para gerar novos conteúdos.
Com a IA generativa, você pode obter os benefícios do aprendizado de máquina mais rapidamente e aplicá-lo a um conjunto mais amplo de casos de uso em diversas linhas de negócios como engenharia, marketing, atendimento ao cliente, finanças e vendas. A geração automática de código em diversas linguagens de programação já é uma das aplicações de IA generativa que ajuda desenvolvedores de software a aumentar sua eficiência no trabalho. Além da geração de código, há outras situações em que a IA generativa pode mudar a experiência do cliente e aumentar a produtividade dos funcionários.
Você pode usar a IA generativa para melhorar a experiência do cliente por meio de recursos como assistentes virtuais e personalização de conteúdo. Você também pode melhorar as operações comerciais através do processamento inteligente de documentos. Por fim, você pode usar a IA generativa para acelerar a produção de todos os tipos de conteúdo criativo, como música, vídeo, imagem e texto.
Neste blog post, apresentaremos como usar a IA generativa para a criação de textos customizados para campanhas de marketing em português, apoiando o trabalho criativo ao acelerar a customização das mensagens. Dada uma descrição do conteúdo da campanha, o modelo gera mensagens SMS com diferentes tons (formal ou engraçado, por exemplo). O objetivo é variar o conteúdo para melhorar a comunicação com os diferentes perfis de clientes e, assim, aumentar a conversão das campanhas.
Ao explicar a solução, introduzimos alguns termos e técnicas que são cada vez mais utilizadas no contexto de IA generativa. Recomendamos alguns links ao longo do texto caso queira saber mais sobre alguns destes assuntos. Por fim, incluímos também instruções para que você possa testar a solução em sua conta AWS.
Solução
A solução utiliza um modelo de IA generativa, o Falcon 40B, para gerar SMS com um tom específico dada uma descrição do conteúdo da campanha. O Falcon 40B é um modelo de base do Technology Innovation Institute (TII) com 40 bilhões de parâmetros compartilhado sob uma licença de código aberto (Apache 2.0).
O Falcon 40B figurou na primeira posição da Hugging Face Open LLM Leaderboard, uma tabela que classifica os modelos quanto ao seu desempenho diante de uma série de benchmarks. Desde o seu lançamento, em maio de 2023, o Falcon 40B tem demonstrado ótimos resultados em tarefas de geração de conteúdo criativo, inclusive demostrando bom entendimento em português. Para além do caso de uso da solução, o Falcon 40B também é adequado para traduções, resposta a perguntas e geração de resumos.
O Falcon 40B está disponível no Amazon SageMaker JumpStart, o hub de aprendizado de máquina do Amazon SageMaker que oferece modelos pré-treinados, algoritmos integrados e soluções de ML pré-construídas que você pode implantar facilmente. Você pode implantar e usar o modelo Falcon com alguns cliques no SageMaker Studio, ou programaticamente por meio do Software Development Kit (SDK) do SageMaker para Python.
Você interage com os modelos de base como o Falcon 40B usando linguagem natural: o modelo gera uma provável sequência de palavras (completion) dada uma sequência de entrada (prompt) passada para ele. O ato de gerar uma completion é chamado de inferência. É necessário experimentar com diferentes entradas até encontrar aquela que funciona bem para um determinado caso de uso. Mostramos abaixo um exemplo de prompt para gerar um SMS para uma campanha para o produto Amazon SageMaker.
Produto:
O Amazon SageMaker ajuda cientistas e desenvolvedores de dados a preparar, criar, treinar e implantar modelos de machine learning (ML) de alta qualidade rapidamente reunindo um amplo conjunto de funcionalidades criadas especificamente para ML.
Crie uma mensagem com até 160 caracteres para o produto em tom jovial.
Uma disciplina emergente, chamada de Prompt Engineering, pode ser adotada para melhorar a saída do modelo. Uma das técnicas visa modificar o prompt adicionando a ele exemplos de entrada e saída. Esta técnica, chamada de few-shot learning, melhora o desempenho do modelo ao explicitar para ele dois ou mais exemplos de pares de prompt–completion.
Os modelos possuem limitações quanto ao número de palavras na entrada e na saída. Portanto, a quantidade de exemplos que podemos incluir é limitada. Uma outra possibilidade para melhorar o desempenho do modelo é fazer o ajuste fino dele para um caso de uso específico. Porém, este ajuste fino do modelo original pré-treinado exige grande poder computacional por conta da sua enorme quantidade de parâmetros. É possível, no entanto, utilizar algumas técnicas para fazer um ajuste fino com mais eficiência.
Low Rank Adaptation, mais conhecido pelo acrônimo LoRA, é um método de ajuste fino de parâmetros com eficiência (Parameter-Efficient Fine-Tuning – PEFT) que, ao invés de ajustar todos os parâmetros do modelo original pré-treinado, ajusta uma parcela menor dos parâmetros gerando um adaptador LoRA. O adaptador é então carregado no modelo pré-treinado e usado para a inferência.
O QLoRA é uma versão do LoRA ainda mais eficiente em termos de memória, na qual o modelo pré-treinado é carregado na memória da GPU como pesos quantizados de 4 bits (em comparação com 8 bits no caso do LoRA), preservando uma eficácia semelhante à do LoRA. Saiba como fazer o ajuste fino do modelo Falcon 40B usando QLoRA em Interactively fine- tune Falcon-40B and other LLMs on Amazon SageMaker Studio notebooks using QLoRA.
O ajuste fino do modelo não é sempre necessário, e técnicas de Prompt Engineering podem gerar resultados satisfatórios, sendo suficientes dependendo do caso de uso. Para esta solução, nenhum ajuste fino foi aplicado, apenas few-shot learning. Abaixo mostramos o prompt final completo da solução.
Produto:
O Amazon S3 é um serviço de armazenamento de objetos que oferece escalabilidade, disponibilidade de dados, segurança e performance líderes do setor. Clientes de todos os portes e setores podem armazenar e proteger qualquer quantidade de dados de praticamente qualquer caso de uso, como data lakes, aplicações nativas da nuvem e aplicações móveis.
Mensagem com até 160 caracteres para o produto em tom formal:
O Amazon S3 é um serviço de armazenamento de objetos que oferece escalabilidade, disponibilidade de dados, segurança e performance. Experimente agora.
####
Produto:
O Amazon Aurora é um serviço de banco de dados relacional em escala global criado para a nuvem com total compatibilidade com MySQL e PostgreSQL. O Aurora oferece a performance e a disponibilidade de bancos de dados de nível comercial por um décimo do custo.
Mensagem com até 160 caracteres para o produto em tom jovial:
Quer a performance e a disponibilidade de bancos de dados de nível comercial por um décimo do custo? O Amazon Aurora é a melhor escolha!
####
Produto:
O Amazon DynamoDB é um banco de dados de chave-valor NoSQL, sem servidor e totalmente gerenciado, projetado para executar aplicações de alta performance em qualquer escala. O DynamoDB oferece segurança integrada, backups contínuos, replicação multirregional automatizada, armazenamento em cache na memória e ferramentas de importação e exportação de dados.
Mensagem com até 160 caracteres para o produto em tom engraçado:
Que tal executar aplicações de alta performance em qualquer escala? Deixa a lentidão pra lá e vem pro Amazon DynamoDB!
####
Produto:
O Amazon SageMaker ajuda cientistas e desenvolvedores de dados a preparar, criar, treinar e implantar modelos de machine learning (ML) de alta qualidade rapidamente reunindo um amplo conjunto de funcionalidades criadas especificamente para ML.
Mensagem com até 160 caracteres para o produto em tom jovial:
A saída gerada pelo modelo passando o prompt anterior foi bastante satisfatória:
Quer criar modelos de machine learning de alta qualidade rapidamente? Experimente o Amazon SageMaker!
Veja abaixo uma outra saída gerada pelo modelo passando o mesmo prompt anterior, mas alterando o tom para formal:
O Amazon SageMaker é um serviço de machine learning que permite a criação, treinamento e implantação de modelos de ML. Experimente agora.
Além de edições no prompt, também é possível experimentar ajustando os hiperparâmetros do modelo. Um destes hiperparâmetros é a temperatura, que controla o nível de aleatoriedade da saída gerada. Maiores temperaturas resultam em completions mais criativas, mas dependendo do tamanho do conteúdo gerado, podem ocasionar um fenômeno chamado de alucinação.
A alucinação acontece quando o modelo extrapola a criatividade e gera completions que, embora escritas de forma coerente, apresentam informações incorretas, tendenciosas ou completamente erradas. Em nossos exemplos, solicitamos explicitamente que o tamanho da completion fosse limitado a 160 caracteres (o tamanho tradicional de um SMS), porém este efeito pode ser pronunciado para casos em que o modelo é instruído a gerar longos conteúdos.
Instruções
Para testar a solução descrita anteriormente em sua conta AWS, recomendamos que você utilize o SageMaker Studio. Siga os passos abaixo:
- Abra o SageMaker Studio. Caso nunca tenha usado o SageMaker Studio antes, saiba mais em SageMaker Studio.
- Na página inicial, selecione JumpStart.
- Busque por Falcon e selecione Falcon 40B Instruct BF16.
- Selecione Open notebook.
- Siga os passos do caderno Jupyter. O caderno inclui instruções de como implantar um endpoint com o modelo Falcon 40B, bem como realizar inferências usando este endpoint com alguns prompts de exemplo.
- Substitua os prompts de exemplo utilizando o prompt que descrevemos anteriormente. Abaixo uma captura de tela com a saída gerada pelo modelo.
- Após executar os testes, lembre-se de desligar o endpoint para evitar custos desnecessários em sua conta. No final do caderno há instruções de como proceder.
Próximos passos
A solução demonstrada utiliza o Falcon 40B, um modelo Falcon com 40 bilhões de parâmetros. Recentemente, foi anunciado o Falcon 180B, com 180 bilhões de parâmetros. Em geral, quanto maior o número de parâmetros de um modelo, mais complexas são as tarefas que ele é capaz de executar. Por outro lado, quanto maior o modelo, mais custosos são seu treinamento e sua implantação. Caso queira experimentar o modelo maior, ele também está disponível no Amazon SageMaker JumpStart. Saiba mais em Falcon 180B foundation model from TII is now available via Amazon SageMaker JumpStart.
Implantar um FM pode exigir uma grande quantidade de memória de GPU e otimizações para se alcançar um desempenho aceitável. Embora alguns modelos menores possam caber em uma única GPU, isto não é viável para modelos maiores. Quando isso acontece, algumas estratégias podem ser adotadas. Saiba mais em Deploy Falcon-40B with large model inference DLCs on Amazon SageMaker.
Além dos modelos Falcon, outros FMs podem ser experimentados. Em nossos testes, o modelo Claude v2 também entregou ótimos resultados para este caso de uso. O modelo Claude v2 suporta português e está disponível no Amazon Bedrock, um serviço totalmente gerenciado que disponibiliza FMs da Amazon e das principais startups de IA. O Claude v2 é, no momento, o modelo mais poderoso da Anthropic e se destaca em uma ampla variedade de tarefas incluindo a geração de conteúdo criativo.
Vale notar ainda que é possível estender a solução aqui apresentada para a geração de outros formatos de conteúdo para as suas campanhas. Por exemplo, com algumas modificações no prompt é possível gerar e-mails. Além disso, existem modelos disponíveis capazes de gerar imagens, permitindo então produzir um conteúdo ainda mais completo. Saiba mais em Unlocking creativity: How generative AI and Amazon SageMaker help businesses produce ad creatives for marketing campaigns with AWS.
Conclusão
Neste blog post, apresentamos uma solução que usa IA generativa para a criação de textos customizados para campanhas de marketing em português. A solução apoia o trabalho criativo ao acelerar a customização de SMS. O modelo utilizado, Falcon 40B, está disponível no Amazon SageMaker JumpStart. Experimente agora mesmo e crie suas próprias campanhas customizadas!
Sobre os autores
Donato Azevedo é um Arquiteto de Prototipação no time de Prototyping and Cloud Engineering onde ajuda clientes a realizar o seu potencial usando os serviços de nuvem da AWS. Anteriormente trabalhou na Amazon.com.br como engenheiro de software desenvolvendo e suportando serviços de inteligência e otimização de supply chain.
Rafael Werneck é um Arquiteto de Prototipação Sênior no time de Prototyping and Cloud Engineering. Anteriormente trabalhou como Software Development Engineer na Amazon.com.br e no Amazon RDS Performance Insights.