À propos du projet

micrograd fournit un moteur d'autograd minimal à valeurs scalaires et une bibliothèque légère de réseaux de neurones construite par-dessus. L'abstraction centrale `Value` enregistre les opérations dans un graphe acyclique orienté construit dynamiquement et prend en charge la rétropropagation à travers des opérations arithmétiques et d'activation, notamment l'addition, la multiplication, l'exponentiation, la division, la soustraction et ReLU. Le README décrit le moteur et les composants de réseau de neurones comme comportant respectivement environ 100 et 50 lignes, en mettant l'accent sur la clarté et l'usage éducatif plutôt que sur des performances tensorielles à l'échelle de production. Le paquet peut être installé avec `pip install micrograd`. L'exemple montre la construction d'expressions à partir d'objets `Value`, la lecture des résultats de passe avant via `.data`, l'appel de `backward()` et l'inspection des gradients d'entrée via `.grad`. Le module inclus `micrograd.nn` fournit des blocs de construction de type neurone, couche et MLP avec une interface de type PyTorch. `demo.ipynb` démontre l'entraînement d'un perceptron multicouche à deux couches comme classifieur binaire sur le jeu de données moon en utilisant une perte à marge maximale et SGD. Un autre notebook, `trace_graph.ipynb`, utilise Graphviz pour visualiser les nœuds de calcul avec à la fois leurs valeurs et leurs gradients. La suite de tests utilise PyTorch comme implémentation de référence pour vérifier les gradients calculés et est exécutée avec pytest. Le README contient également un lien vers un exemple externe microgpt montrant comment une approche autograd similaire peut être utilisée pour entraîner et échantillonner à partir d'un transformeur de type GPT-2. Le projet est publié sous licence MIT.