Sobre el proyecto

# Cactus Cactus es un motor de IA híbrido edge-cloud diseñado para dispositivos móviles y wearables. Proporciona una pila completa para la inferencia de IA en el dispositivo, incluyendo cuantización, kernels, un grafo de computación y un motor de tiempo de ejecución. ## Arquitectura El proyecto está estructurado en cuatro capas principales: - **Cactus Engine**: Proporciona APIs compatibles con OpenAI para tareas de texto, voz y visión, incluyendo finalización de chat, streaming, llamada a herramientas, transcripción, embeddings, RAG y transferencia a la nube. - **Cactus Graph**: Un grafo de computación de copia cero para operaciones tensoriales como multiplicación de matrices, atención, normalización y funciones de activación. - **Cactus Kernels**: Kernels de CPU/GPU optimizados para Apple, Samsung, Pixel y otras plataformas móviles, usando ARM NEON SIMD. - **Cactus Quants**: Una técnica de cuantización personalizada basada en rotación que soporta precisión de 4 bits a 1 bit. ## Inicio Rápido (Mac) Instalar vía Homebrew y ejecutar: ```bash brew install cactus-compute/cactus/cactus cactus run ``` ## Características Principales - **Híbrido Edge-Cloud**: Enruta automáticamente las consultas difíciles a la nube según la confianza del modelo local. - **Soporte de Modelos**: Funciona con las familias de modelos Liquid, Gemma, Whisper, Parakeet y Qwen. Cualquier modelo de HuggingFace puede convertirse de forma experimental. - **Múltiples Bindings**: Swift, Kotlin, Flutter, React Native, Python y Rust. - **Llamada a Herramientas en el Dispositivo**: Incluye un modelo de 26M de parámetros llamado "Needle" para la llamada a herramientas en el dispositivo. - **Herramientas CLI**: Comandos para ejecutar modelos, transcripción, servir, conversión, benchmarking y pruebas. ## Rendimiento Los benchmarks muestran un fuerte rendimiento en Apple silicon y dispositivos móviles. Por ejemplo, en un Mac M5 Max, el motor alcanza 2964 tokens/seg en prefill y 154 tokens/seg en decode para un benchmark de LLM con contexto de 1k. En iPhone 17 Pro, alcanza 729 tokens/seg en prefill y 37 tokens/seg en decode. ## Calidad de Salida La calidad de la cuantización se evalúa en múltiples benchmarks (ARC, HellaSwag, WinoGrande, MMLU, GPQA, GSM8K, HumanEval, BFCL). La cuantización CQ4 mantiene una calidad cercana al modelo FP16 original en la mayoría de las tareas. ## Uso La CLI proporciona comandos para: - `cactus run`: Ejecutar un modelo con opciones para bits de cuantización, backend, entrada de imagen/audio, herramientas y más. - `cactus transcribe`: Transcripción en vivo por micrófono o transcripción de archivos. - `cactus download`: Descargar paquetes de modelos precompilados. - `cactus convert`: Convertir modelos de HuggingFace a pesos Cactus CQ. - `cactus serve`: Iniciar un servidor HTTP local compatible con OpenAI. - `cactus code`: Ejecutar un agente de codificación con IA. - `cactus benchmark`: Ejecutar suites de benchmarks. - `cactus test`: Ejecutar suites de pruebas. ## Documentación Hay documentación detallada disponible para cada componente: - Cactus Engine (API C) - Cactus Graph (C++) - Cactus Kernels (C++) - Cactus Quants (C++) - Cactus Hybrid (C/Python) - Paquete Python ## Citación Si usas Cactus en investigación, por favor cita: ```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} } ```