À propos du projet

TurboFieldfare est un runtime d'inférence spécifique à un modèle, écrit en Swift et Metal, pour exécuter le modèle Gemma 4 26B-A4B affiné pour les instructions sur les Mac Apple Silicon, y compris les machines à 8 Go. Plutôt que de charger le checkpoint complet d'environ 14,3 Go, il garde le cœur partagé et le cache KV FP16 résidents (environ 2 Go de poids plus un cache KV 4K) et ne diffuse depuis le SSD, via un cache d'experts borné, que les experts nécessaires par token. Ce qu'il inclut : - Une bibliothèque Swift avec des kernels Metal personnalisés pour GEMV quantifié, l'attention, le MoE, la normalisation, RoPE, l'échantillonnage et les fusions. - Une app Mac native SwiftUI/AppKit avec un service de décodage local associé. - Une interface en ligne de commande pour le chat d'instruction et la complétion brute. - Un installateur/repackager en streaming qui récupère des plages d'octets Hugging Face épinglées et écrit directement la disposition .gturbo, avec vérification de l'installation et reprise. - Un serveur expérimental loopback compatible OpenAI Chat Completions prenant en charge le streaming, les déclarations d'outils-fonctions et la réutilisation d'un préfixe unique ; il n'a ni authentification distante ni TLS. - Une entrée d'image optionnelle via un pack compagnon de vision installé séparément (environ 1,1 Go), nécessitant du matériel M2 ou plus récent ; l'inférence texte uniquement fonctionne sur M1. Les poids sont en MLX affine 4 bits (groupe 64) avec un routeur 8 bits. Le préremplissage du prompt est découpé en chunks (jusqu'à 128 tokens) afin que les experts récupérés servent plusieurs lignes, suivi d'une génération token par token. Le README rapporte un décodage mesuré de 5,1 à 6,3 tok/s sur un MacBook Air M2 à 8 Go et de 31 à 35 tok/s sur un M5 Pro à 24 Go, en précisant que ces valeurs dépendent de la longueur du prompt, de l'état du cache de pages et du matériel. Les prérequis sont macOS 26 avec Metal 4, Xcode 26 et Swift 6.2 ou plus récent, arm64 uniquement. L'audio et la vidéo sont hors périmètre. Le code source est sous Apache 2.0 ; les poids du modèle sont téléchargés séparément selon leurs propres conditions, et le projet déclare être indépendant de Google.