Caffe (Convolutional Architecture for Fast Feature Embedding) est un framework d'apprentissage profond initialement développé à l'Université de Californie à Berkeley. Publié sous licence BSD en open source, il est écrit en C++ avec une interface Python. Le framework a été conçu pour faciliter l'expérimentation rapide en apprentissage profond, en particulier pour les tâches liées aux images, et est devenu l'un des premiers outils largement adoptés dans ce domaine avant l'émergence de frameworks plus flexibles.
Le développement de Caffe a marqué une étape importante en rendant la recherche sur les réseaux de neurones plus accessible. Il offrait une architecture modulaire permettant aux chercheurs de définir et d'entraîner des modèles sans nécessiter de codage approfondi, contribuant ainsi à l'expansion des applications de apprentissage automatique dans les milieux académiques et industriels.
Histoire
Yangqing Jia a créé le projet Caffe durant son doctorat à l'UC Berkeley, dans le laboratoire de Trevor Darrell. La première version, initialement nommée « DeCAF », a fait ses débuts au printemps 2013 lors du défi ILSVRC, plus tard connu sous le nom d'ImageNet. La bibliothèque a été renommée Caffe et publiée publiquement en décembre 2013. Elle a atteint la fin de son support en 2018 et est hébergée sur GitHub.
L'adoption précoce du projet a été motivée par sa rapidité et sa facilité d'utilisation, permettant aux chercheurs d'entraîner des modèles de classification d'images plus efficacement qu'avec les outils précédents. Sa sortie a coïncidé avec une période de progrès rapides en apprentissage profond, et il est devenu une référence standard pour de nombreux frameworks ultérieurs.
Fonctionnalités
Caffe prend en charge de nombreux types d'architectures d'apprentissage profond orientées vers la classification et la segmentation d'images. Il prend en charge les réseaux de neurones convolutifs (CNN), les réseaux convolutifs régionaux (RCNN), les réseaux de mémoire à long terme (LSTM) et les conceptions de réseaux entièrement connectés. Le framework prend en charge des bibliothèques de noyaux accélérés par GPU et CPU, notamment Nvidia cuDNN et Intel MKL.
Cette flexibilité a permis à Caffe d'être utilisé pour une large gamme de tâches au-delà de la simple classification, notamment la détection d'objets et la segmentation sémantique. Son cœur en C++, combiné à une interface Python, le rendait adapté à la fois au déploiement en production et au prototypage en recherche.
Applications
Caffe a été utilisé dans des projets de recherche académique, des prototypes de startups et des applications industrielles à grande échelle dans les domaines de la vision, de la parole et du multimédia. Ses performances et sa modularité en ont fait un choix populaire pour les tâches de vision par ordinateur, et il a été intégré dans divers pipelines pour des applications telles que la reconnaissance faciale et la recherche sur la conduite autonome.
Yahoo a intégré Caffe avec Apache Spark pour créer CaffeOnSpark, un framework d'apprentissage profond distribué. Cette intégration a permis l'entraînement et l'inférence sur de grands ensembles de données à travers des clusters, démontrant l'évolutivité de Caffe et son rôle dans l'avancement des systèmes de apprentissage automatique distribués.
Caffe2 et héritage
En avril 2017, Facebook a annoncé Caffe2, un successeur incluant de nouvelles fonctionnalités telles que le support des réseaux de neurones récurrents (RNN). Caffe2 visait à améliorer l'évolutivité et le déploiement mobile, en s'appuyant sur les forces du framework original tout en remédiant à ses limitations.
À la fin de mars 2018, Caffe2 a été fusionné dans PyTorch, un framework développé par l'équipe de recherche en IA de Facebook. Cette fusion a consolidé les efforts de la communauté et a conduit à la fin du support de Caffe original en 2018. L'héritage de Caffe se poursuit à travers PyTorch, qui a hérité de nombreux principes de conception et reste un outil de premier plan dans la recherche en intelligence artificielle.
L'influence de Caffe est également visible dans l'écosystème plus large des outils d'apprentissage profond, car il a contribué à établir des modèles de définition et d'entraînement de modèles qui sont désormais courants dans des frameworks comme TensorFlow et PyTorch. Sa nature open source et sa licence BSD ont encouragé l'adoption et la contribution, favorisant une communauté qui a fait progresser l'état de l'art en apprentissage profond.