Python

Bonne pratique

Introduction aux pipelines de CI en python avec Gitlab-ci

Introduction Aujourd’hui, nous sommes nombreux à utiliser la plateforme GitLab afin de gérer nos projets de code python. Nous faisons souvent appel à la fonctionnalité GitLab CI/CD pour automatiser la phase de test et s’assurer ainsi que le code qui s’intègre au dépôt partagé (repository) ne contient pas de bogues et se comporte comme on le souhaite.  Mais voilà, ce n’est pas forcément évident de construire un bon pipeline de CI, et puis d’abord, c’est quoi un bon pipeline de CI ? Comment le construit-on,…

Lire la suite
Data Science

NLP : une classification multilabels simple, efficace et interprétable

Le Machine Learning nous permet aujourd’hui de classifier facilement du texte ; or, le texte appartient parfois à plusieurs catégories, d’où le nom de classification multilabels pour parler de cette tâche. Nous allons voir dans cet article comment traiter ce problème, évaluer la performance de nos algorithmes et les interpréter. Avant toute chose, le code est disponible sur Github. Il contient deux web-apps : une permettant d’entraîner un modèle sur son propre dataset et une permettant d’afficher les prédictions et de les interpréter. A noter…

Lire la suite
Data

Créer une web-app interactive en 10min avec Streamlit

Dans un projet de Machine Learning, il y a souvent besoin de visualiser les données sous forme de graphes, que ce soit lors d’une phase exploratoire ou pour montrer les résultats d’une modélisation. Force est de constater qu’intégrer ces graphes à une web-app n’est pas forcément aisé, puisque les outils existants nécessitent pour  la plupart quelques connaissances front-end, Dash par exemple. Et si nous pouvions faire tout ceci en Python, en 10 minutes ? C’est ce que nous allons voir avec Streamlit, une nouvelle librairie…

Lire la suite
Data

Machine Learning – 7 astuces pour scaler Python sur de grands datasets

Python est le langage privilégié chez les Data Scientists, notamment grâce à toutes ses librairies open-source et sa facilité de mise en production du code. Pourtant, à mesure que la volumétrie des données augmente, le passage à des paradigmes différents comme ceux de Spark et Hadoop est recommandé car plus scalable. Cependant, cela nécessite souvent de mettre en place une infrastructure et d’adapter son code. Voici quelques astuces qui permettent d’étendre l’utilité de Python pour des datasets de plusieurs gigaoctets dans un contexte mono-machine. 1…

Lire la suite
Archi & techno

Développer son API dans n’importe quel langage

Noël approche et nous vous proposons de déballer les cadeaux avant l'heure. Cher père Noël, montre moi comment coder une API. Les API ont le vent en poupe. Et pour cause, les entreprises ont bien compris qu'elles peuvent jouer un rôle important dans le SI tant au niveau de son ouverture et de l'innovation qu'au niveau de la transformation des équipes et de leurs façons de travailler. Depuis 4 ans, OCTO forme, conseille et aide à construire des API sur mesure pour ses clients... ...…

Lire la suite
IoT

Libérer les forces créatrices de l’IoT

La vision Les objets connectés et leur logiciel embarqué deviennent une partie intégrante du système d’information d'entreprise. En passant d’un SI centré sur les applications “serveur”, puis à un SI où le mobile tient une place stratégique,  on arrive à un SI où les applications serveurs, le mobile et les objets connectés forment un SI totalement distribué. Avec des capacités toujours plus fortes et des prix toujours plus bas, l'objet connecté rejoint les serveurs et les mobiles dans le domaine du développement logiciel d'entreprise. L’objet…

Lire la suite
Archi & techno

Apprentissage distribué avec Spark

// Les solutions big data actuelles se concentrent essentiellement sur l'aspect ETL des traitements. Le modèle MapReduce nous permet d'implémenter facilement des extractions d'informations mais de nombreuses contraintes et limitations apparaissent lors de la conception d'algorithmes de data science.  Par exemple, les algorithmes itératifs couramment utilisés en machine learning sont difficilement intégrables dans les modèles MapReduce:  le haut-niveau d'intéraction des données impose une gestion et une synchronisation complexe à différentes phases de l'analyse. Dans cet article nous nous intéressons à un use case typique en machine learning: la conception d'un modèle…

Lire la suite
Archi & techno

Le filtre de Bloom

Nous allons présenter dans cet article le filtre de Bloom, une structure de données méconnue mais appréciée, tant pour sa simplicité d’utilisation que pour les gains de performance qu’elle permet d’apporter. Elle a été choisie par l’équipe de Google Chrome pour implémenter la fonctionnalité « Safe Browsing » qui protège les utilisateurs contre des attaques de fishing et contre certains types de malware. Avec Safe Browsing, le navigateur effectue une validation avant de commencer le chargement d’une page. Si l’URL en question est identifiée parmi une vaste…

Lire la suite
Archi & techno

Python + doctest : quand la doc devient test

Introduction Derrière ce titre abscons se trouvent deux concepts qui mettent en application le principe du KISS dans le langage de programmation Python : écrire de la doc et mettre des tests dans des sources Python, c'est simple avec l'utilisation conjointe des docstrings et du module doctest. Le concept proposé ici est des plus simples : écrire un test unitaire pour un objet présente beaucoup de similitudes avec le fait d'écrire la documentation de ce même objet, en particulier si on y présente des exemples…

Lire la suite