Sobre o projeto

# Cactus Cactus é um motor de IA híbrido edge-cloud projetado para dispositivos móveis e wearables. Ele fornece uma pilha completa para inferência de IA no dispositivo, incluindo quantização, kernels, um grafo de computação e um motor de runtime. ## Arquitetura O projeto está estruturado em quatro camadas principais: - **Cactus Engine**: Fornece APIs compatíveis com OpenAI para tarefas de texto, fala e visão, incluindo conclusão de chat, streaming, chamada de ferramentas, transcrição, embeddings, RAG e transferência para a nuvem. - **Cactus Graph**: Um grafo de computação de cópia zero para operações de tensores como multiplicação de matrizes, atenção, normalização e funções de ativação. - **Cactus Kernels**: Kernels de CPU/GPU otimizados para Apple, Samsung, Pixel e outras plataformas móveis, usando ARM NEON SIMD. - **Cactus Quants**: Uma técnica de quantização personalizada baseada em rotação com suporte a precisão de 4 bits a 1 bit. ## Início Rápido (Mac) Instale via Homebrew e execute: ```bash brew install cactus-compute/cactus/cactus cactus run ``` ## Principais Recursos - **Híbrido Edge-Cloud**: Roteia automaticamente consultas difíceis para a nuvem com base na confiança do modelo local. - **Suporte a Modelos**: Funciona com as famílias de modelos Liquid, Gemma, Whisper, Parakeet e Qwen. Qualquer modelo do HuggingFace pode ser convertido experimentalmente. - **Múltiplas Integrações**: Swift, Kotlin, Flutter, React Native, Python e Rust. - **Chamada de Ferramentas no Dispositivo**: Inclui um modelo de 26M de parâmetros chamado "Needle" para chamada de ferramentas no dispositivo. - **Ferramentas CLI**: Comandos para executar modelos, transcrição, servir, conversão, benchmarking e testes. ## Desempenho Os benchmarks mostram forte desempenho em Apple silicon e dispositivos móveis. Por exemplo, em um Mac M5 Max, o motor alcança 2964 tokens/seg de prefill e 154 tokens/seg de decode para um benchmark de LLM com contexto de 1k. No iPhone 17 Pro, alcança 729 tokens/seg de prefill e 37 tokens/seg de decode. ## Qualidade de Saída A qualidade da quantização é avaliada em múltiplos benchmarks (ARC, HellaSwag, WinoGrande, MMLU, GPQA, GSM8K, HumanEval, BFCL). A quantização CQ4 mantém qualidade próxima ao modelo FP16 original na maioria das tarefas. ## Uso A CLI fornece comandos para: - `cactus run`: Executar um modelo com opções para bits de quantização, backend, entrada de imagem/áudio, ferramentas e mais. - `cactus transcribe`: Transcrição ao vivo por microfone ou transcrição de arquivo. - `cactus download`: Baixar pacotes de modelos pré-construídos. - `cactus convert`: Converter modelos do HuggingFace para pesos Cactus CQ. - `cactus serve`: Iniciar um servidor HTTP local compatível com OpenAI. - `cactus code`: Executar um agente de codificação com IA. - `cactus benchmark`: Executar suítes de benchmark. - `cactus test`: Executar suítes de teste. ## Documentação Documentação detalhada está disponível para cada componente: - Cactus Engine (C API) - Cactus Graph (C++) - Cactus Kernels (C++) - Cactus Quants (C++) - Cactus Hybrid (C/Python) - Pacote Python ## Citação Se você usar Cactus em pesquisa, por favor cite: ```bibtex @software{cactus, title = {Cactus: AI Inference Engine for Phones & Wearables}, author = {Ndubuaku, Henry and Cactus Team}, url = {https://github.com/cactus-compute/cactus}, year = {2025} } ```