Modelos de linguagem grandes no dispositivo com Keras e TensorFlow Lite

1. Antes de começar

Um dos maiores avanços de machine learning nos últimos tempos são os modelos de linguagem grandes (LLMs). Eles podem ser usados para gerar texto, traduzir idiomas e responder a perguntas de maneira abrangente e informativa. Os LLMs, assim como o LaMDA e o PaLM do Google, são treinados com grandes quantidades de dados de texto, o que permite que eles aprendam os padrões estatísticos e as relações entre palavras e frases. Com isso, eles podem gerar textos semelhantes aos escritos por humanos e traduzir idiomas com alto grau de precisão.

Os LLMs são muito grandes em termos de armazenamento e geralmente consomem muita capacidade de computação para serem executados, o que significa que costumam ser implantados na nuvem e são bastante desafiadores para machine learning no dispositivo (ODML, na sigla em inglês) devido à capacidade computacional limitada em dispositivos móveis. No entanto, é possível executar LLMs menores (o GPT-2, por exemplo) em um dispositivo Android moderno e ainda ter resultados impressionantes.

Neste codelab, você aprenderá a criar um app com tecnologia de LLM usando:

  • KerasNLP para carregar um LLM pré-treinado (GPT-2)
  • KerasNLP para ajustar um LLM (GPT-2)
  • TensorFlow Lite para converter, otimizar e implantar o LLM no Android

Pré-requisitos

  • Conhecimento intermediário de Keras e TensorFlow Lite.
  • Conhecimento básico de desenvolvimento para Android.

O que você vai aprender

  • Como usar o KerasNLP para carregar um LLM pré-treinado e fazer ajustes.
  • Como quantificar e converter um LLM para o TensorFlow Lite.
  • Como executar inferência no modelo convertido do TensorFlow Lite.

O que será necessário

  • Acesso ao Colab.
  • A versão mais recente do Android Studio.
  • Um dispositivo Android moderno com mais de 4 GB de RAM.

2. Começar a configuração

Para fazer o download do código para este codelab, faça o seguinte:

  1. Navegue até o repositório do GitHub (link em inglês) deste codelab.
  2. Clique em Code > Download zip para fazer o download de todo o código para este codelab.

imagem do repositório

  1. No arquivo ZIP salvo, descompacte a pasta raíz examples com todos os recursos necessários.

3. Executar o app inicial

  1. Importe a pasta examples/lite/examples/generative_ai para o Android Studio.
  2. Inicie o Android Emulator e clique em executar.png Run no menu de navegação.

Executar e conhecer o app

O app chamado "Auto-complete" será iniciado no dispositivo Android. A interface é bem direta: você digita algumas palavras iniciais na caixa de texto e toca em Generate. O app vai executar a inferência em um LLM e gerar mais texto com base na sua entrada.

Por enquanto, nada acontece ao tocar em Generate depois de digitar algumas palavras. Isso ocorre porque o app ainda não está executando um LLM.

captura de tela do app inicial

4. Preparar o LLM para implantação no dispositivo

5. Finalizar o app Android

Agora que você converteu o modelo GPT-2 para o TensorFlow Lite, ele já pode ser implantado no app.

Executar o app

  1. Arraste o arquivo modelo autocomplete.tflite salvo na última etapa para a pasta app/src/main/assets/ no Android Studio.

adicionar modelo ao Android Studio

  1. Clique em executar.png Run no menu de navegação e aguarde o app ser carregado.
  2. Digite algumas palavras iniciais no campo de texto e toque em Generate.

captura de tela do app finalizado

6. Observações sobre IA responsável

Como observado no aviso do GPT-2 da OpenAI (link em inglês) original, existem algumas ressalvas e limitações importantes relacionadas ao modelo GPT-2. Na verdade, os LLMs atuais têm alguns desafios conhecidos, como alucinações, imparcialidade e vieses. Isso ocorre porque esses modelos são treinados com dados reais, o que faz com que eles reflitam problemas do mundo real.

Este codelab foi criado apenas para demonstrar como criar um app com LLMs usando as ferramentas do TensorFlow. O modelo produzido aqui é apenas educativo e não deve ser destinado à produção.

O uso de um LLM na produção requer a seleção cuidadosa dos conjuntos de dados para treinamento e mitigações de segurança abrangentes. Para saber mais sobre IA responsável no contexto dos LLMs, assista a sessão técnica Desenvolvimento seguro e responsável com modelos generativos de linguagem no Google I/O 2023 e confira o Kit de ferramentas de IA responsável.

7. Conclusão

Parabéns! Você criou um app para gerar textos coerentes com base na entrada do usuário executando no dispositivo um modelo de linguagem grande pré-treinado.

Saiba mais