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.
Actualizado 31 de out. de 2024  · 12 min de leitura

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:


Photo of François Aubry
Author
François Aubry
LinkedIn
Ensinar sempre foi minha paixão. Desde meus primeiros dias como estudante, eu buscava ansiosamente oportunidades para dar aulas particulares e ajudar outros alunos. Essa paixão me levou a fazer um doutorado, onde também atuei como assistente de ensino para apoiar meus esforços acadêmicos. Durante esses anos, encontrei imensa satisfação no ambiente tradicional da sala de aula, promovendo conexões e facilitando o aprendizado. Entretanto, com o advento das plataformas de aprendizagem on-line, reconheci o potencial transformador da educação digital. Na verdade, participei ativamente do desenvolvimento de uma dessas plataformas em nossa universidade. Estou profundamente comprometido com a integração dos princípios tradicionais de ensino com metodologias digitais inovadoras. Minha paixão é criar cursos que não sejam apenas envolventes e informativos, mas também acessíveis aos alunos nesta era digital.
Temas

Aprenda IA com estes cursos!

curso

Working with Llama 3

4 hr
2.4K
Explore the latest techniques for running the Llama LLM locally, fine-tuning it, and integrating it within your stack.
Ver DetalhesRight Arrow
Iniciar Curso
Ver maisRight Arrow
Relacionado

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.
François Aubry's photo

François Aubry

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 o guiará pelos fundamentos da configuração do seu ambiente de desenvolvimento, compreendendo suas principais funcionalidades e aproveitando seus recursos para resolver casos de uso reais.
Zoumana Keita 's photo

Zoumana Keita

11 min

tutorial

DCLM-7B da Apple: Configuração, exemplo de uso, ajuste fino

Comece a usar o modelo de linguagem grande DCLM-7B da Apple e saiba como configurá-lo, usá-lo e ajustá-lo para tarefas específicas.
Dimitri Didmanidze's photo

Dimitri Didmanidze

9 min

See MoreSee More