Bard Google
Gema Parreño Senior Data Scientist

Comunidade e Inteligência Artificial em Google I/O Connect

Na vibrante cidade de Amesterdão, um evento reuniu mais de 500 programadores de todo o mundo para uma experiência inigualável: I/O Connect. Este evento, que captou a atenção da indústria tecnológica, centra-se num dos tópicos mais entusiasmantes e de vanguarda do nosso tempo: a inteligência artificial. O I/O Connect tem sido o palco perfeito para as mentes tecnológicas trocarem conhecimentos, estabelecerem ligações valiosas e descobrirem as últimas tendências que impulsionarão o futuro da inovação.

Tivemos a oportunidade de explorar a forma como esta tecnologia está a transformar as empresas e a sociedade em geral. Desde algoritmos de aprendizagem automática até ao processamento de linguagem natural, descobrimos as ferramentas de IA mais recentes e interessantes da Google. E ainda tivemos acesso a demonstrações ao vivo e interagimos com as mais recentes criações tecnológicas.

Porquê LLMs?

Hoje, focamo-nos nos LLM (Large Language Models) - por dois motivos: a grande quantidade de desafios em que têm impacto e a importância de começar a dar os primeiros passos no sentido do controlo técnico e de passar de Demos para Produtos robustos. 

Os LLM são modelos de Deep Learning treinados em datasets com grandes quantidades de dados em formato de texto: podem responder a uma vasta quantidade de desafios, como sumarizar, traduzir, criar texto e código ou até complementar os motores de pesquisa e de recomendação.

Voltando à realidade, discutimos o PaLM e a sua capacidade de explorar parâmetros que controlam a sua API num dos seus workshops, para oferecer o primeiro passo para passar de uma demonstração para um produto mínimo viável, controlando os seus parâmetros utilizando o Python SDK para chamar a Vertex AI PaLM API. Adicionalmente, exploramos os princípios da Responsible AI que esta API coloca à sua disposição para evitar possíveis alucinações e criações de conteúdo ofensivas. 

O objetivo é compreender bem as possibilidades que oferece para que seja mais adaptável aos casos de utilização com que lidamos.

Adicionalmente, cada descrição inclui o seguinte:  

Modelos de Vertex AI PaLM API

A API oferece 6 modelos de linguagem diferentes, com os dois primeiros blocos separados por critérios funcionais: se são orientados para a linguagem ou para o código. Os orientados para a linguagem são:

  • Text-bison: é o que está associado a um grande número de funções relacionadas com tarefas de processamento de linguagem natural, suporta mais de 8000 input tokens, o que lhe permite associar um contexto decente, e os dados estão atualizados à data de fevereiro de 2023 - as limitações do ChatGPT indicam que a sua versão mais utilizada é a de 2021. Este modelo suporta o fine-tunning ou o reskilling. 
  • Chat-bison: modelo treinado novamente sobre Text-bison que suporta menos contexto inicial, com uma geração semelhante ao seu análogo. 
  • Textembedding-gecko: os embeddings são transformações de texto para representação numérica que são usadas como um passo antes do re-skilling em modelos de linguagem.

Para uma primeira aproximação a PaLM, carregamos o modelo, passamos um prompt e geramos uma resposta.

PALM 2

 Figura 1. “Hello PaLM2”. As três partes essenciais da utilização da API: carregamos um modelo, geramos um prompt e uma resposta. Vale a pena notar que o método de carregamento de modelos tem a mesma semântica que a biblioteca Transformers Huggin Face.


Parâmetros de controlo da API

Os parâmetros de controlo iniciais são declarados na resposta como um argumento. O modelo texto-bison oferece quatro parâmetros, a explorar em função do caso de utilização.

  • Temperature (intervalo (0,1), predefinição 0): é utilizada para uma sample durante a criação de respostas e controla o nível de variação na seleção de tokens. Se este parâmetro estiver próximo de 0, funciona para indicações que exigem respostas mais objetivas e menos abertas. Em comparação, se estiver mais próximo de 1, pode conduzir a resultados mais "criativos" ou diversificados. Uma temperatura de 0 é objetiva: a resposta com a maior probabilidade é sempre selecionada. Para a maioria dos casos de utilização, recomenda-se que se comece com um valor de 0.2.

Dica ResponsibleAI: Deve ter-se em atenção que, embora os resultados possam ser mais criativos, também podem gerar texto sem sentido ou inadequados.

  • Max_output_tokens (intervalo: 1-1024, predefinição: 128): é o número máximo de tokens que podem ser gerados na resposta. Especifique um valor mais baixo para respostas mais curtas e um valor mais alto para respostas mais longas. Um token pode ser mais pequeno do que uma palavra. Um token tem aproximadamente quatro caracteres e 100 tokens correspondem a cerca de 60-80 palavras. É essencial ter em conta o tamanho dos tokens, uma vez que os modelos têm um limite para o número de tokens de entrada e de saída.
  • Top_p (intervalo de 0 a 1, predefinição 0,95): O parâmetro top_p é utilizado para controlar a diversidade do texto gerado e, a um nível baixo, altera a forma como o modelo seleciona os tokens para o output. Um valor mais elevado do parâmetro top_p produz resultados mais "diversos" e "interessantes", uma vez que o modelo pode escolher entre um conjunto mais vasto de possibilidades. Em contraste, um valor mais baixo do parâmetro top_p resulta em outputs mais previsíveis, uma vez que o modelo está limitado a um conjunto mais pequeno de tokens possíveis. Especifica um valor mais baixo para evitar a aleatoriedade.
  • Top_k (intervalo 0 a 40, predefinição 40): top_k altera a forma como o modelo seleciona os tokens para o output. Um top_k de 1 significa que o token selecionado é o mais provável de todos os tokens no vocabulário do modelo (também conhecido como greedy decoding). Em contrapartida, um top_k de 3 significa que o token seguinte é selecionado entre os 3 tokens mais prováveis (utilizando a temperatura). Em cada passo de seleção de tokens, os tokens top_k com as probabilidades mais elevadas são sampled. Em seguida, os tokens são filtrados de acordo com top_p, e o token final é selecionado mediante samples de temperatura.

Inteligencia artificial generativa

 Figura 2. Resposta uploaded com os parâmetros com a orientação de gerar a resposta à pergunta: Foi Frodo que destruiu o anel? A documentação sobre os parâmetros pode ser consultada aqui. 

Notebook de exemplo aqui.

Conclusões: Até agora, carregámos um modelo e aprendemos mais sobre os parâmetros que nos ajudam a controlar o modelo. Para saber mais sobre estes parâmetros, pode consultar a documentação aqui. Passamos agora à conceção dos inputs ou prompts, com uma série de boas práticas recomendadas pela equipa do Google Cloud para um melhor domínio da API.

Caso de utilização: Geração de respostas com a Vertex AI no cenário Pergunta-Resposta

Tal como referido anteriormente, existem vários casos de utilização que o modelo pré-treinado pode resolver. Com base nos diferentes exemplos do repositório, concentramo-nos em problemas funcionais de pergunta-resposta. Estes modelos podem resolver problemas em áreas como apoio ao cliente, chats em website, fóruns, etc.

No entanto, para além do modelo, o facto de se ter em conta a otimização do promtp do modelo pode influenciar significativamente os resultados. Por este motivo, é apresentada uma série de boas práticas. Como dois primeiros conceitos-chave, consideramos que o prompt deve ser específico, conciso e rico em contexto, bem como isento de erros gramaticais e fazer apenas uma pergunta em cada prompt. Em seguida, classificamos o tipo de pergunta em função do domínio:

  • Domínio aberto: Todas as perguntas cujas respostas estão disponíveis online. Podem pertencer a qualquer categoria, como história, geografia, países, política, química, etc. Incluem perguntas de trivialidades ou de conhecimento geral, tais como: Quem ganhou a medalha de ouro olímpica na natação? Quem é o presidente de [país específico]? Quem escreveu [livro específico]? Tenha em conta o limite de treino dos modelos generativos, uma vez que as perguntas que envolvem informações mais recentes do que a data em que o modelo foi treinado podem dar respostas incorretas ou imaginativas.
  • Domínio fechado: perguntas específicas, que correspondem a uma base de conhecimentos interna não disponível na Internet pública. Se for corretamente definido, é mais provável que o modelo responda a partir do contexto fornecido e menos provável que dê respostas para além do que está na Internet aberta. Se, por exemplo, pretender criar um bit de perguntas e respostas com base na documentação completa de um produto, pode passar a documentação completa de um produto ao modelo e pedir-lhe que responda apenas com base nela.

Tanto nos domínios abertos como nos fechados, podemos utilizar uma ou mais perguntas, consoante a especificidade do domínio. No caso dos domínios fechados, acrescentamos também m string como contexto.

respuesta IA historia

Figura 3. No contexto de Open Domain, podemos passar uma série de perguntas para dar contexto ao modelo. Neste caso, perguntas de geografia e história.

Existem muitas particularidades que podem ser exploradas no repositório de código aberto que a equipa do Google Cloud disponibiliza. 

Para além da aprendizagem, foi uma experiência única que nos deu a oportunidade de nos relacionarmos com a comunidade. Parabéns à equipa organizadora e a todos os participantes pela sua simpatia e energia!