Carton est une API open-source conçue pour faciliter l'exécution de modèles d'apprentissage automatique (ML) à travers divers langages de programmation sans nécessiter de conversions complexes ou de code spécifique à un framework. En encapsulant les modèles avec des métadonnées essentielles dans un fichier zip standardisé, Carton assure une intégration et un déploiement sans faille, permettant aux développeurs de se concentrer sur la logique applicative plutôt que sur les problèmes de compatibilité.
Caractéristiques clés et fonctionnalités :
- Exécution indépendante du framework : Carton permet l'exécution de modèles ML à partir de n'importe quel langage de programmation, y compris Python, JavaScript, TypeScript, Rust, C, C++, C#, Java, Golang, Swift, Ruby, PHP, Kotlin et Scala.
- Emballage des modèles : Il enveloppe les modèles avec des métadonnées dans un fichier zip sans altérer le modèle original, évitant ainsi les étapes de conversion sujettes aux erreurs.
- Sélection automatique du "runner" : Lors du chargement d'un modèle emballé, Carton lit les métadonnées incluses pour déterminer le "runner" approprié et le récupère automatiquement si nécessaire.
- Performance optimisée : Implémenté en Rust avec des liaisons vers plusieurs langages, Carton offre un cœur optimisé qui minimise les surcharges, avec des benchmarks préliminaires indiquant moins de 100 microsecondes par appel d'inférence.
- Support multiplateforme : Prend en charge x86_64 Linux et macOS, aarch64 Linux (par exemple, AWS Graviton), aarch64 macOS (par exemple, puces Apple Silicon), et WebAssembly (avec un support à venir pour les "runners" WebGPU).
Valeur principale et problème résolu :
Carton répond au défi de l'exécution de modèles ML dans différents environnements de programmation en fournissant une API unifiée et indépendante des frameworks. Cela élimine le besoin pour les développeurs d'écrire du code spécifique à un framework ou d'effectuer des conversions complexes de modèles, accélérant ainsi les cycles de développement et réduisant les erreurs potentielles. En découplant le code d'inférence des frameworks ML spécifiques, Carton permet aux développeurs de rester à jour avec les avancées dans le domaine sans être liés à une pile technologique particulière.