Journal RPCDataloader: chargement et pré-traitement de données distribué pour l'IA

11
22
avr.
2023

Introduction

On continue la lignée des utilitaires pour une grappe de calcul IA (cluster en bon franglais).
Cette fois-ci, l'objectif est de déplacer le chargement et le pré-traitement des données sur des serveurs différents de ceux qui gèrent le modèle en lui-même.

On s'intéresse plus précisément à un algorithme d’entraînement de réseau de neurones avec le framework PyTorch. Bien que la librairie que je présente (RPCDataloader) n'ait pas une très forte dépendance à PyTorch, son API est (…)

Journal scratch_manager: gestionnaire de mise en cache de jeux de données

Posté par  . Licence CC By‑SA.
21
16
déc.
2022

J'ai eu l'occasion de développer un petit logiciel open-source pour mon travail, donc j'en profite pour partager ici.

Motivation

Sur les grappes de calculs (clusters) dédiés à l'intelligence artificielle, il y a un problème assez récurrent lié au stockage et à l'accès aux données.
Dans ces installations, on trouve généralement d'un côté une baie de stockage avec des jeux de données composés de millions de petits fichiers, et de l'autre côté les nœuds de calcul qui lisent ces fichiers.
La (…)

Journal SeqTools 1.0.0: la programmation concurrente, c'est dur!

Posté par  . Licence CC By‑SA.
31
28
déc.
2019

J'ai profité des vacances pour améliorer ma librairie en python SeqTools, déjà présentée sur linuxfr.

Pour rappel, cette librairie permet le traitement "paresseux" de séquences, c'est-à-dire de tout conteneur qui permet l'accès à ses éléments par indexation, en gros des listes, des tableaux ou un objet qui implémente __getitem__.
La librairie se destine plutôt à des transformations éléments par éléments ou à la réorganisation/combinaison d'une ou de plusieurs séquences entre elles. Pour les pythonistes: c'est un peu (…)

Journal Mini-projet (python): un démon système pour gérer des raccourcis clavier

Posté par  . Licence CC By‑SA.
22
12
août
2019

Voici un petit projet du dimanche qui pourra éventuellement servir à ceux d'entre vous qui ont un petit serveur audio ou une raspberry-pi pour de la domotique.

Le titre n'est peut-être pas très clair, mais l'objectif est relativement simple: il faut exécuter des commandes lorsque certaines combinaisons de touches sont envoyés. Par exemple voici un extrait de ma configuration:

[/dev/input/event0]
KEY_STOP =
    mpc clear
    mpc random off
    mpc add /
KEY_FORWARD     = mpc next
KEY_BACKWARD    = mpc prev
KEY_0 =
(…)

Journal SeqTools et retour d'expérience sur le traitement de jeux de données en python

Posté par  . Licence CC By‑SA.
38
29
oct.
2018

SeqTools est une librairie que j'ai créée pour transformer des jeux de données trop gros pour tenir en mémoire. Elle remplit un rôle comparable à itertools de la librairie standard, mais fait aussi en sorte de donner accès aux éléments par indexation, ce qui est plus pratique.

Dépôt du code
Documentation

L'objectif principal consiste à prendre une ou plusieurs sources de données et de les combiner ou de modifier leurs éléments pour obtenir une version transformée.
Par exemple, partant d'une (…)