Pular para o conteúdo principal

Como executar o Llama 3.2 1B em um telefone Android com o Torchchat

Obtenha instruções passo a passo sobre como configurar e executar o Llama 3.2 1B em seu dispositivo Android usando a estrutura do Torchchat.
Atualizado 31 de out. de 2024  · 12 min lido

Recentemente, escrevi um artigo sobre como executar LLMs com Python e Torchchat. O Torchchat é uma estrutura flexível projetada para executar LLMs de forma eficiente em várias plataformas de hardware. A realização de um LLM localmente oferece vários benefícios, inclusive:

  • Acesso off-line: Como o modelo está sendo executado em nosso dispositivo, não precisamos estar conectados à Internet para usá-lo.
  • Privacidade: Como nós mesmos executamos o modelo, os prompts e os dados que inserimos permanecem privados.
  • Custo: Podemos executar o modelo gratuitamente.

Após o recente lançamento do Llama 3.2decidi estender meu artigo anterior para ensinar como implantá-lo em nossos telefones celulares, com foco no Android.

Aqui está uma visão geral de alto nível do que precisamos fazer:

  • Faça o download dos arquivos do modelo, que estão disponíveis gratuitamente porque o modelo é de código aberto.
  • Gere os arquivos necessários para executar o modelo em um dispositivo móvel.
  • Configure um aplicativo de bate-papo do Android que executa o modelo.

O Torchchat fornece uma resposta para todas essas etapas. Ele tem comandos para fazer o download do modelo e gerar os arquivos necessários para executá-lo. Além disso, ele vem com um aplicativo de demonstração de bate-papo para Android, portanto, você não precisa criar um.

Desenvolver aplicativos de IA

Aprenda a criar aplicativos de IA usando a API OpenAI.
Comece a treinar gratuitamente

Baixando o Torchchat

A primeira etapa é clonar o repositório repositório do Torchchat usando o Git:

git clone git@github.com:pytorch/torchchat.git

Você também pode fazer isso sem o Git, baixando-o usando o botão de download no GitHub:

Baixando o Torchchat do GitHub

Observação importante: Depois de clonar (ou fazer download) do repositório, uma pasta chamada torchchat ficará disponível em nosso computador. Todos os comandos mencionados neste artigo devem ser executados a partir dessa pasta.

Instalação do Torchchat

Vamos supor que você já tenha instalado o Python e o Anaconda. Se não estiverem, consulte estes dois tutoriais: Como instalar o Anaconda no Windows e como instalar o Anaconda no Mac OS X.

Como alternativa, siga as etapas no repositório do Torchchat, que usa um ambiente virtual em vez do Anaconda.

Começamos criando um ambiente do Anaconda usando o comando:

conda create -yn llama python=3.10.0

Isso cria um ambiente chamado llama que usa a versão 3.10 do Python. A opção -yn combina -y e -n:

  • A opção -y permite que o comando prossiga sem pedir confirmação antes de criar o ambiente.
  • A opção -n especifica o nome do ambiente, que, nesse caso, é llama. Depois de criar o ambiente, nós o ativamos e instalamos as dependências. 

Para ativá-lo, usamos o seguinte comando:

conda activate llama

Para instalar as dependências necessárias, utilizamos o script de instalação fornecido pelo TorchChat:

./install/install_requirements.sh

Baixando o modelo Llama 3.2 1B

Neste tutorial, usaremos o modelo Llama 3.2 1B, um modelo de um bilhão de parâmetros. Você pode fazer o download usando o comando:

python torchchat.py download llama3.2-1b

O processo é o mesmo para fazer experiências com outros modelos -precisamos substituir llama3.2-1b pelo alias do modelo desejado. É importante que você selecione apenas modelos marcados como compatíveis com dispositivos móveis.

O Torchchat utiliza o Hugging Face para o gerenciamento de modelos. Consequentemente, o download de um modelo requer uma conta Hugging Face. Para obter um guia completo sobre como criar uma conta e fazer login no terminal, consulte a seção "Download de um modelo" deste tutorial do Torchchat.

Como alternativa, o modelo também pode ser baixado do site oficial da Llama. No entanto, usar o Torchchat é mais conveniente, pois facilita a exportação dos arquivos de modelo para implantação móvel.

Exportando o modelo

Para implantar em um dispositivo móvel, primeiro exportamos o modelo para gerar o artefato.pte , que é um arquivo usado pelo Executorch. O Executorch é o mecanismo que o Torchchat usa para executar o LLM em um dispositivo móvel.

Para gerar o arquivo PTE, primeiro você deve instalar o Executorch. Para fazer isso, execute os seguintes comandos:

export TORCHCHAT_ROOT=${PWD} 
./torchchat/utils/scripts/install_et.sh

Após a conclusão da instalação, podemos gerar o arquivo PTE usando o comando:

python torchchat.py export llama3.2-1b --quantize torchchat/quant_config/mobile.json --output-pte-path llama3_2-1b.pte

Esse comando também quantizará o modelo, reduzindo seu tamanho e aumentando a velocidade de inferência. Usamos a configuração padrão do Torchchat em torchchat/quant_config/mobile.json.

Quando esse processo for concluído, será criado um arquivo chamado llama3_2-1b.pte na pasta torchchat.

Preparando o aplicativo móvel

A Torchchat oferece um aplicativo de demonstração para Android que nos permite operar o Llama diretamente em nossos smartphones. Esse projeto de demonstração pode ser encontrado na pasta Torchchat que você baixou. Seu caminho relativo é torchchat/edge/android/torchchat. Observe que a primeira referência torchchat no caminho refere-se a uma pasta dentro do repositório, não à pasta raiz do repositório.

Faça o download e configure a biblioteca Java

  1. Faça o download do arquivo.aar fornecido pelo Torchchat. Ele contém a biblioteca Java e a biblioteca JNI correspondente, para que você possa criar e executar o aplicativo. 
  2. Navegue até a pasta do diretório do aplicativo: torchchat/edge/android/torchchat/app/
  3. Crie um diretório chamado libs (se ainda não existir um)
  4. Renomeie o arquivo de download para executorch.aar e cole-o na pasta libs.

Carregar o projeto Android no Android Studio

Faça o download e instale o Android Studio em site oficial. Quando a instalação estiver concluída, abra o projeto:

Abrindo o aplicativo de demonstração no Android Studio

O projeto de demonstração está localizado em torchchat/edge/android/torchchat.

Quando abrimos o projeto, esta janela nos pergunta se confiamos no código:

Pop-up após abrir o aplicativo de demonstração

Aqui, escolha a opção "Trust Project" (Confiar no projeto).

Depois de abrir o projeto, o Android Studio precisará de algum tempo para carregar a configuração e concluir a configuração inicial. É importante que você espere até que esse processo seja concluído. Você pode monitorar o status no canto inferior direito da janela. Quando estiver pronto, o botão de execução na parte superior deverá ficar verde:

Como saber quando o projeto está carregado

Configuração do modo de desenvolvedor no Android

Para poder executar o aplicativo no telefone por meio do Android Studio, precisamos ativar o modo de desenvolvedor em nosso dispositivo. Veja como podemos fazer isso:

  1. Vá para "Configurações"
  2. Selecione "About device" (Sobre o dispositivo) ou "About phone" (Sobre o telefone)
  3. Abra "Informações sobre o software"
  4. Encontre o "Número de compilação" e pressione-o sete vezes

É isso aí! Agora, podemos usar nosso dispositivo para executar o aplicativo a partir do Android Studio. Quando fizermos isso, o aplicativo permanecerá em nosso telefone, o que nos permitirá executá-lo mesmo sem uma conexão com o computador.

Instalando o adb

O aplicativo precisa que os arquivos de modelo estejam localizados em uma pasta específica no telefone. Para enviar esses arquivos para o telefone, usamos o adb (Android Debug Bridge). Você pode instalá-lo usando o Android Studio seguindo estas etapas:

  1. Navegue até as configurações e comece a digitar "Android SDK" na barra de pesquisa
  2. Localize o menu chamado "Android SDK" e clique nele
  3. Selecione a opção "Android SDK command line tools (latest)" (Ferramentas de linha de comando do Android SDK (mais recentes))
  4. Clique em "Apply" (Aplicar) para instalá-lo

Instalando o adb a partir do Android Studio

Observe que, na parte superior da janela, o Android Studio mostra a localização do sdk do Android:

Localizando o caminho para o adb

Copiamos esse caminho e executamos o seguinte comando (substituindo abaixo pelo caminho que acabou de ser copiado):

export PATH=$PATH:<android_skd_location>/platform-tools/

Para confirmar que o adb foi instalado com êxito, use o comando adb --version, que exibirá a versão do adb.

Configurar o aplicativo no telefone

Conecte o telefone ao computador com um cabo. O nome do dispositivo aparecerá na lista de dispositivos ao lado do botão Executar:

Seleção de dispositivo no Android Studio

Antes de executar o aplicativo no telefone, agora usamos o site adb para copiar os arquivos de modelo necessários para o nosso dispositivo.

  1. Encontre o ID do dispositivo usando o comando adb devices. Pode haver várias linhas na saída. Localize aquele com o formulário com o dispositivo form e copie o código do dispositivo.
  2. Crie o diretório para armazenar os arquivos de modelo usando adb -s shell mkdir -p /data/local/tmp/llama.
  3. Copie o arquivo .pte localizado na pasta torchchat com adb -s push llama3_2-1b.pte /data/local/tmp/llama.
  4. Localize o arquivo do tokenizador de modelo usando python torchchat.py where llama3.2-1b. Você verá várias linhas, mas o que nos interessa é o caminho mostrado na última linha.

Localizando o arquivo tokenizer.model

  1. Copie o arquivo do tokenizador para o dispositivo usando adb -s push /tokenizer.model /data/local/tmp/llama, substituindo pelo caminho obtido na etapa anterior.

Depois de concluir essas etapas, os arquivos do modelo deverão estar no telefone e prontos para uso. Você pode verificar isso listando todos os arquivos localizados na pasta do dispositivo que acabamos de criar:

adb -s <device_code> shell ls 

O resultado deve conter os dois arquivos que acabamos de copiar:

llama3_2-1b.pte
tokenizer.model

Executar o aplicativo

Agora tudo está pronto para executar o aplicativo de demonstração em nosso telefone. Você pode clicar na seta verde para executá-lo.

Executar o aplicativo no telefone

Isso abrirá o aplicativo em nosso dispositivo. O aplicativo solicita que você selecione os arquivos do modelo e do tokenizador.

Seleção do modelo e do tokenizador

Usando o aplicativo Llama 3.2 1B

Agora podemos começar a conversar com o Llama3.2 1B em nosso telefone! A interface do aplicativo é bastante simplista. Você pode usar a caixa de texto "Prompt" para escrever um prompt e enviá-lo ao modelo usando o botão "Generate".

Como o modelo é executado off-line, eu poderia usá-lo no avião para o meu próximo destino para pedir, por exemplo, algumas recomendações de pratos:

Exemplo de uso do aplicativo

Com essa interação, observamos algumas limitações do aplicativo de demonstração:

  1. A resposta repete nossa solicitação.
  2. A formatação da resposta começa com "I've been to Taiwan...", indicando que o aplicativo não foi projetado para usar o modelo diretamente como um assistente.
  3. As respostas são cortadas abruptamente, provavelmente porque o limite de tokens foi atingido.

Podemos comparar o comportamento executando o mesmo modelo no terminal com o comando:

python torchchat.py chat llama3.2-1b

Fornecemos o mesmo prompt para ver se o comportamento era diferente. De fato, nesse caso, a resposta parece muito mais natural e útil, apesar de também ter sido cortada:

Comportamento do modelo no computador

Entrei em contato com a equipe do Torchchate eles me disseram que o Llama 3.2 era muito recente e que o aplicativo de demonstração precisava ser ligeiramente atualizado para ser compatível com ele.

No entanto, o processo de configuração permanecerá o mesmo, e o conhecimento adquirido aqui ainda se aplicará à versão atualizada. É possível que, no momento em que você estiver lendo este artigo, ele já tenha sido atualizado e esteja funcionando corretamente.

Conclusão

Neste guia, aprendemos como configurar o Llama 3.2 1B diretamente em um dispositivo Android usando o Torchchat. Cobrimos o processo passo a passo de download e instalação dos componentes necessários, incluindo os arquivos de modelo e o aplicativo de demonstração para Android.

Embora existam algumas limitações no aplicativo de demonstração atual, especialmente na formatação e no comprimento da resposta, o potencial subjacente dessas implementações é imenso.

Se você quiser ler mais sobre o Llama 3.2, recomendo estes blogs:

Tópicos

Aprenda IA com estes cursos!

Programa

Developing AI Applications

0 min
Learn to create AI-powered applications with the latest AI developer tools, including the OpenAI API, Hugging Face, and LangChain.
Ver detalhesRight Arrow
Iniciar curso
Ver maisRight Arrow
Relacionado

Tutorial

Ajuste fino do Llama 3.1 para classificação de textos

Comece a usar os novos modelos Llama e personalize o Llama-3.1-8B-It para prever vários distúrbios de saúde mental a partir do texto.

Abid Ali Awan

13 min

Tutorial

Guia de torchchat do PyTorch: Configuração local com Python

Saiba como configurar o torchchat do PyTorch localmente com Python neste tutorial prático, que fornece orientação e exemplos passo a passo.

Tutorial

Como treinar um LLM com o PyTorch

Domine o processo de treinamento de grandes modelos de linguagem usando o PyTorch, desde a configuração inicial até a implementação final.
Zoumana Keita 's photo

Zoumana Keita

8 min

Tutorial

RAG With Llama 3.1 8B, Ollama e Langchain: Tutorial

Aprenda a criar um aplicativo RAG com o Llama 3.1 8B usando Ollama e Langchain, configurando o ambiente, processando documentos, criando embeddings e integrando um retriever.
Ryan Ong's photo

Ryan Ong

12 min

Tutorial

Como criar aplicativos LLM com o tutorial LangChain

Explore o potencial inexplorado dos modelos de linguagem grandes com o LangChain, uma estrutura Python de código aberto para criar aplicativos avançados de IA.
Moez Ali's photo

Moez Ali

12 min

Tutorial

Llama.cpp Tutorial: Um guia completo para inferência e implementação eficientes de LLM

Este guia abrangente sobre o Llama.cpp guiará você pelos fundamentos da configuração do seu ambiente de desenvolvimento, compreendendo suas principais funcionalidades e aproveitando seus recursos para solucionar casos de uso no mundo real.
Zoumana Keita 's photo

Zoumana Keita

11 min

Ver maisVer mais