Lições Práticas da Construção de IA no Dispositivo em React Native

Geração de Texto com LLMs
Use llama.rn para executar modelos GGUF no React Native. Ele encapsula o llama.cpp e fornece vinculações nativas para Android (JNI) e iOS (Metal). O streaming de tokens via callbacks funciona bem.
O gerenciamento de memória é crítico: um modelo 7B Q4 precisa de ~5,5 GB de RAM em tempo de execução (tamanho do arquivo × 1,5 para cache KV e ativações). Use 60% da RAM do dispositivo como um limite rígido, avise a 50% e bloqueie a 60% para evitar que o sistema operacional encerre o aplicativo.
A aceleração por GPU usa OpenCL no Android (GPUs Adreno) e Metal no iOS. A atenção flash trava com camadas GPU > 0 no Android, então imponha isso no código. A quantização do cache KV (f16/q8_0/q4_0) é mais vantajosa que a GPU para a maioria dos dispositivos; passar de f16 para q4_0 praticamente triplicou a velocidade de inferência nos testes.
Geração de Imagens com Stable Diffusion
Isso é específico da plataforma, sem uma única biblioteca que cubra ambas.
- Android: Use MNN (framework da Alibaba, CPU, funciona em todos os dispositivos ARM64) e QNN (Qualcomm AI Engine, acelerado por NPU, apenas Snapdragon 8 Gen 1+). O QNN é 3× mais rápido, mas só funciona em chips Qualcomm recentes. Implemente detecção em tempo de execução com fallback automático.
- iOS: Use o pipeline ml-stable-diffusion da Apple com aceleração Core ML e Neural Engine. Modelos paletizados (~1 GB, 6 bits) são ótimos para dispositivos com memória limitada; a precisão total (~4 GB, fp16) é mais rápida no ANE, mas precisa de margem.
Benchmarks do mundo real: 5–10 segundos no NPU Snapdragon, 15 segundos CPU em flagship, 8–15 segundos iOS ANE para 512×512 em 20 passos. Mostre uma prévia em tempo real a cada N passos de remoção de ruído para evitar que os usuários pensem que o aplicativo travou.
Transcrição de Voz com Whisper
whisper.rn encapsula o whisper.cpp e é simples de integrar. Ofereça vários tamanhos de modelo (Tiny/Base/Small) e deixe os usuários escolherem entre velocidade e precisão. A transcrição parcial em tempo real (palavras aparecendo conforme falam) faz parecer nativo.
Armazene o áudio em buffer no código nativo e limpe-o após a transcrição; não grave arquivos de áudio no disco se a privacidade for importante.
Visão com Modelos Multimodais
Modelos de visão precisam de dois arquivos: o GGUF principal e um acompanhante mmproj (projetor multimodal). Lide com isso de forma transparente: detecte automaticamente modelos de visão, faça o download automático do mmproj, rastreie-os como uma única unidade e pesquise o diretório do modelo em tempo de execução se o link quebrar. Faça o download de ambos os arquivos em paralelo para reduzir o tempo de download quase pela metade para um modelo de visão de 2B.
SmolVLM em 500M é o ponto ideal para dispositivos móveis, com ~7 segundos em dispositivos flagship, capaz de leitura de documentos e descrição de cenas.
Chamada de Ferramentas para Loops de Agente no Dispositivo
Modelos que suportam chamada de funções podem usar ferramentas (busca na web, calculadora, data/hora, informações do dispositivo) através de um loop automático: LLM gera, analisa chamadas de ferramentas, executa-as, injeta os resultados de volta no contexto, LLM continua. Limite a no máximo 3 iterações, 5 chamadas no total para evitar loops infinitos.
Suporte dois caminhos de análise: modelos maiores geram chamadas de ferramentas JSON estruturadas nativamente através do llama.rn, enquanto modelos menores geram XML como <tool_call>. Detecte suporte a ferramentas no carregamento do modelo inspecionando o template de chat jinja; se o modelo não suportar ferramentas, não injete definições de ferramentas no prompt do sistema para evitar alucinações. A calculadora usa um analisador de descida recursiva—nunca eval().
Classificação de Intenção
Se seu aplicativo faz tanto geração de texto quanto de imagens, você precisa decidir o que o usuário quer com base na análise da entrada.
📖 Leia a fonte completa: r/LocalLLaMA
👀 See Also

Guia para Configurar o OpenClaw em um VPS da Hostinger
Um guia passo a passo para implantar o OpenClaw em um VPS da Hostinger, conectar APIs de IA da OpenAI e Entropics, e integrar com o Telegram para operação 24/7.

Exportar histórico do ChatGPT para o sistema de memória OpenClaw
Um usuário do Reddit compartilha um processo para exportar anos de histórico de conversas do ChatGPT e importá-lo no sistema de memória do OpenClaw usando a ferramenta ai-chat-md-export, permitindo que agentes de IA locais acessem contexto histórico.

Migrando agentes OpenClaw para Claude Code após a depreciação do harness de terceiros
Um desenvolvedor migrou 17 agentes OpenClaw para Claude Code em uma tarde, após a Anthropic encerrar o suporte para integrações de terceiros. O processo envolveu a criação de pontos de entrada CLAUDE.md, wrappers bash e jobs cron, preservando a lógica existente dos agentes.

Configuração e Teste do vLLM em Servidor com 10x NVIDIA V100 e 320 GB de VRAM
Um advogado que está construindo um servidor local de IA para trabalho jurídico compartilha resultados de testes do vLLM em 10 GPUs Tesla V100 SXM2 de 32 GB, detalhando o que funciona (FP16 não quantizado, bitsandbytes 4-bit) e o que não funciona (GPTQ, AWQ, FlashAttention2) na arquitetura Volta.