O blog da AWS
Usando IA generativa para criar descrição de produtos com o Amazon Bedrock
Por Daniel Volochen, Arquiteto de Soluções, AWS
Diversas empresas que possuem e-commerce enfrentam o desafio de criar descrições de produtos consistentes e padronizadas quando obtêm informações de vários fornecedores. Cada fornecedor envia detalhes como nome, materiais, cores, e tamanhos em formatos diferentes e sem padrão. Isso dificulta a criação eficiente de listagens de produtos que sejam facilmente compreensíveis e permitam comparações pelos clientes. A descoberta e exploração dos produtos também se torna mais difícil. A IA generativa resolve este problema. Por meio de modelos de processamento de linguagem natural, a IA pode analisar informações não padronizadas e gerar descrições de produtos limpas e consistentes.
Por exemplo, para um produto similar em que o primeiro fornecedor envia as seguintes informações: “Camisa feminina de algodão azul escuro manga curta”, e outro fornecedor envia: “Blusa azul petróleo, 100% algodão, gola redonda, manga 3/4”. A IA generativa pode extrair os atributos-chave e gerar uma descrição como: “Camisa feminina em azul-petróleo, feita de algodão 100%, com mangas 3/4 e gola redonda.”
Isso economiza tempo em comparação à criação manual de descrições. Também permite a descoberta mais rápida de produtos, pois os clientes podem filtrar e comparar com mais facilidade. Além disso, a IA generativa pode até sugerir frases de venda com base nos atributos extraídos. Seguindo o exemplo acima: “Um básico versátil para o seu guarda-roupa, esta camisa azul petróleo combina com tudo e é perfeita para o trabalho ou tempo livre.”
Neste blogpost apresentamos o uso de IA generativa para criar textos com descrição de produtos com base em atributos informados utilizando o Amazon Bedrock. Com o uso dessa solução, criamos uma forma automatizada para padronizar descrição e facilitar as buscas em sites de e-commerce.
Visão geral da solução
Para o uso de IA generativa na AWS, podemos utilizar o Amazon Bedrock, serviço gerenciado para acessar modelo fundacional (ou Foundation Model, FM) ou o Amazon SageMaker. Cada um dos serviços tem acesso a diversos provedores de modelo para que você possa escolher o que se adequa melhor a sua necessidade e caso de uso. Utilize o guia de decisão para maiores informações.
Neste blog vamos utilizar o Amazon Bedrock, a documentação do serviço disponibiliza a lista de modelos fundacionais suportados e a lista de regiões onde o serviço está disponível.
Figura 1: Suporte do Amazon Bedrock aos principais modelos fundacionais
Utilizaremos a funcionalidade do Amazon Bedrock chamada Playground, onde é possível experimentar FMs em cenários de chat, texto e imagem. Antes de utilizarmos o Playground, vamos habilitar o acesso a dois modelos que iremos utilizar em nosso caso de uso.
Os passos para habilitar o acesso aos modelos são:
- Acesse o serviço Amazon Bedrock
- Clique em “Model access”
- Clique no botão “Manage model access”
- Selecione os modelos da Anthropic
- Salve para habilitar os modelos selecionados
Para confirmar a configuração, observe se o acesso aos modelos está conforme a imagem abaixo.
Figura 2: Habilitar acesso aos modelos fundacionais
Utilizaremos também o modelo fundacional Claude v2.1 da Anthropic, que é multilíngue, tem janela de contexto de 200 mil tokens e suporta diversos casos de uso. Consulte a documentação do Claude v2.1 para maiores informações.
Através do Amazon Bedrock é possível experimentar diversos FMs, trazendo maior flexibilidade para que você possa escolher o modelo que seja mais adequado para o seu caso de uso.
Prompt e hiperparâmetro
Antes de iniciamos, vamos entender a estrutura do prompt e as configurações. O primeiro passo é selecionar o modelo que vamos experimentar. Neste momento temos acesso ao prompt para interagir com o FMs.
Note que as interações com os FMs utilizam a estrutura de prompt, que é um conjunto de entradas fornecidas pelo usuário, que orientam o modelo fundacional no Amazon Bedrock a gerar uma resposta ou saída apropriada para uma determinada tarefa ou instrução.
Para uma boa construção, o prompt deve conter três partes:
- Contexto da tarefa
- Texto de referência
- Instrução objetiva sobre a resposta desejada
Além disso, nós podemos utilizar os hiperparâmetros para definir como será a resposta enviada pelo FM. Note que cada modelo pode ter o seu conjunto de hiperparâmetros específicos. Consulte a documentação do modelo fundacional utilizado para maiores informações. Abaixo temos uma lista dos hiperparâmetros que são comuns aos modelos fundacionais:
- Temperatura: É o valor que regula a criatividade das respostas do FM. Quanto maior a temperatura, mais criativas as respostas. Quanto menor a temperatura, menos criativas as respostas.
- Top-P: Controla a seleção dos tokens, considerando as próximas escolhas com base na probabilidade. Para um valor de Top-P próximo a 1,0, o modelo baseia-se nos tokens mais prováveis que virão a seguir e ignora os menos prováveis. Esse controle possibilita respostas mais estáveis.
- Top-K: O Top K define o ponto de corte onde o modelo deixa de selecionar as palavras. Por exemplo, se K=50, o modelo seleciona entre as 50 palavras mais prováveis que poderiam estar próximas em uma sequência dada. Quando você diminui o valor Top K, reduz a probabilidade de que uma palavra incomum seja selecionada na sequência.
- Número Máximo de Tokens: É um hiperparâmetro que limita a quantidade de tokens (palavras) na resposta gerada pelo FM. Em tarefas que não exigem uma resposta muito longa, definir um valor máximo de tokens ajuda a limitar o tamanho da resposta. Ao invés de gerar respostas extensas e desnecessárias, o modelo se concentra em produzir uma resposta concisa focada no objetivo da tarefa. Isso melhora a qualidade e utilidade da resposta, especialmente para aplicações como chatbots, sumarização de texto e geração de respostas curtas. Definir de forma correta o número máximo de tokens, dependendo do caso de uso, é importante para obter o melhor desempenho do modelo. Permitir respostas muito longas pode fazer o modelo divagar e se desviar do foco. Por outro lado, limites muito curtos podem fazer o modelo não conseguir expressar ideias completas. Encontrar o valor adequado para o seu caso de uso é fundamental.
- Sequências de parada: Sequências de parada indicam ao FM onde parar de gerar texto. A tecla “enter” geralmente funciona para entradas de única linha. Cada FM suporta diferentes quantidades de sequências de parada. Consulte a documentação do FM utilizado para saber maiores detalhes.
No link a seguir você pode acessar exemplos para entender a estrutura de prompts para classificação de texto, perguntas e respostas, sumarização, geração de texto, entre outros.
Criando descrições de produto
Para nosso caso de uso, utilizaremos exemplos fictícios de produtos que foram disponibilizados contendo apenas alguns atributos no formato chave-valor (JSON). O objetivo é empregar as capacidades de geração de texto para criar descrições envolventes destinadas a um site de e-commerce.
Dentro do Amazon Bedrock Playground, na seção “Text“, selecionaremos o FM Claude v2.1 da Anthropic e manteremos as configurações de inferência com os valores padrão.
Figura 3: Tela do Amazon Bedrock Text playground
Exemplo 1: Criando a descrição do produto
Em nosso exemplo, temos um produto que o fornecedor disponibilizou os atributos (meia masculina) em inglês, mas sem nenhuma descrição. Vamos utilizar estas informações para gerar uma descrição deste produto.
Insira o prompt abaixo que passa a informação do contexto:
“O texto a seguir contém atributos de um produto de um site de e-commerce”
Adicione o texto com os atributos:
“Clothing and Accessories, [{‘Color’: ‘Multicolor’}, {‘Pattern’: ‘Solid’}, {‘Ideal For’: ‘Men’}, {‘Fabric’: ‘Cotton Blend’}, {‘Type’: ‘Mid-Calf/Crew Socks’}, {‘Number of Contents in Sales Package’: ‘Pack of 3’}, {‘Style Code’: Sport, Fitness”}, {‘ ‘: “Men’s Socks”}, {‘Generic Name’: ‘Socks’}, {‘Country of Origin’: ‘Brazil’}]”
E na última parte de nosso prompt, vamos instruir o FM com uma tarefa específica, solicitando uma resposta no formato de descrição de produto:
“crie a descrição do produto usando o texto acima para um site de e-commerce.”
Clique no botão “Run” para submeter o seu prompt. Perceba que a resposta é enviada no formato de streaming, ou seja, conforme o FM vai gerando a resposta, ela é retornada através de tokens para a tela. Note que a função de streaming funciona somente para os FMs que tem o suporte a esta funcionalidade, consulte através da chamada da API “GetFoundationModel”.
Figura 4: Tela com a entrada e saída do Exemplo 1
Exemplo 2: Destaque as características do produto
Vamos utilizar o mesmo produto fictício do exemplo anterior, porém neste caso queremos que o FM inclua na descrição um destaque para o material utilizado no produto. Para isso vamos utilizar o prompt abaixo:
Insira o prompt a seguir que passa o contexto:
“O texto a seguir contém atributos de um produto de um site de e-commerce”
Insira os atributos do produto:
“Clothing and Accessories, [{‘Color’: ‘Multicolor’}, {‘Pattern’: ‘Solid’}, {‘Ideal For’: ‘Men’}, {‘Fabric’: ‘Cotton Blend’}, {‘Type’: ‘Mid-Calf/Crew Socks’}, {‘Number of Contents in Sales Package’: ‘Pack of 3’}, {‘Style Code’: Sport, Fitness”}, {‘ ‘: “Men’s Socks”}, {‘Generic Name’: ‘Socks’}, {‘Country of Origin’: ‘Brazil’}]”
Instrua o modelo na tarefa de criação da descrição, adicionando o destaque para o material utilizado no produto.
“crie a descrição do produto usando o texto acima para um site de e-commerce, e destaque o material do produto”
Figura 5: Tela com a entrada e saída do Exemplo 2
Note que com uma pequena variação em nosso prompt, obtivemos uma resposta com destaque para o material do produto informado. Esta é uma opção interessante para destacar características que são relevantes para os possíveis compradores, e os ajudam a tomar a decisão de compra do produto.
Exemplo 3: Descrição personalizada para público alvo
Neste exemplo, vamos utilizar um produto fictício (camiseta) que iremos direcionar para um público de adolescentes. Para isso vamos usar a capacidade de criação de texto e personalizar o tom da linguagem para este público. Vamos preparar o prompt abaixo:
Insira o prompt abaixo que passa a informação do contexto:
“O texto a seguir contém atributos de um produto de um site de e-commerce”
Em seguida vamos colocar o texto com os atributos do produto:
“Clothing and Accessories, [{‘Type’: ‘Round Neck’}, {‘Sleeve’: ‘Half Sleeve’}, {‘Fit’: ‘Regular’}, {‘Fabric’: ‘Polycotton’}, {‘Sales Package’: ‘1 T-Shirt’}, {‘Pack of’: ‘1’}, {‘Style Code’: ‘Teen, youth’}, {‘Neck Type’: ‘Round Neck’}, {‘Ideal For’: ‘Teenagers’}, {‘Size’: ‘XL’}, {‘Pattern’: ‘Printed’}, {‘Suitable For’: ‘Western Wear’}, {‘Brand Fit’: ‘Regular Fit’}, {‘Sleeve Type’: ‘Wide’}, {‘Reversible’: ‘No’}, {‘Fabric Care’: ‘Regular Machine Wash’}, {‘Other Details’: ‘Dailywear Poly Cotton T-Shirt For Teenagers}, {‘Brand Color’: ‘Yellow’}]”
E na última parte de nosso prompt, vamos instruir o FM com uma tarefa específica, solicitando uma resposta no formato de descrição de produto:
“crie a descrição do produto usando o texto acima, personalize a descrição para o site de e-commerce com tom jovial.”
Clique no botão “Run” para enviar o prompt e observe que a resposta tem uma linguagem diferente dos exemplos anteriores. Este é um exemplo de como podemos alterar o nosso prompt para personalizar a descrição de produtos para o público alvo que estamos engajando, direcionando a linguagem utilizada para o segmento de adolescentes e ou pré-adolescentes.
Figura 6: Tela com a entrada e saída do Exemplo 3
Próximos passos
A IA generativa trouxe novas possibilidades para os varejistas. Você pode utilizar as referencias abaixo para conhecer mais e aprofundar no tema:
- Treinamento gratuito para aprofundar o conhecimento em IA generativa, engenharia de prompt e padrões de arquitetura no AWS Skill Builder, em inglês: Generative AI Learning Plan for Developers;
- Blogpost que apresenta uma visão do impacto positivo que essa tecnologia trouxe para os varejistas, em inglês: The positive impact Generative AI could have for Retail;
- Blogpost que compartilha casos de uso e oportunidade de inovação com IA generativa para lojas físicas do varejo, em inglês: Generative AI: The Catalyst for Revolutionizing Physical Retail.
Conclusão
A IA generativa está revolucionando a criação de conteúdo para e-commerce. Como demonstrado nos exemplos, modelos de linguagem como o Claude da Anthropic podem analisar atributos de produtos e gerar descrições envolventes e consistentes. Personalizar as descrições para segmentos específicos também é possível ajustando o tom e linguagem no prompt. Isso permite maior engajamento com públicos-alvo específicos, como adolescentes.
O uso de serviços gerenciados como o Amazon Bedrock facilita o acesso à capacidade de criação de linguagem da IA sem precisar treinar ou gerenciar modelos. Basta conectar e começar a experimentar por meio do Playground. Com a possibilidade de gerar descrições de produtos mais eficientes e personalizadas, isso trará benefícios tanto para as lojas de e-commerce quanto para consumidores.
Sobre os autores
Daniel Volochen é um arquiteto de soluções na AWS. Trabalha construindo soluções e ajudando clientes em suas jornadas para a nuvem. Tem se especializado em inteligência artificial e aprendizado de máquina (AI/ML) com foco em sistemas de recomendação.
Revisores
Thiago Couto é arquiteto de soluções na AWS e atua no segmento Enterprise auxiliando clientes de Retail e CPG em suas jornadas para nuvem. Possui mais de 15 anos de experiência atuando em arquiteturas que englobam AI/ML, integrações, IoT e correlatos.
Yan Marim é arquiteto de soluções na AWS e tem interesse principalmente em AI/ML. Atualmente apoia clientes na sua jornada de transformação digital na nuvem.