diff --git a/README.md b/README.md index ecc651a..e9bd149 100644 --- a/README.md +++ b/README.md @@ -6,17 +6,30 @@ Bibliothèque pour l'utilisation de systèmes quantifiés (avec déquant à la v - Optimiseurs avec APIs adaptées, agnostiques à la quant - SGD custom avec compression géométrique 2 bits/poids -### Avancement : +### Avancement/roadmap : - [ ] Apprentissage de Triton en profondeur - [ ] Système de détection du matériel au premier démarrage dans l'env -- [ ] Kerneles de Quant/DeQaunt en Q4_1 -- [ ] GEMM fussionnée avec une DeQuant depuis Q4_1 +- [ ] Kernels de **Quant/DeQaunt en Q4_1** +- [ ] **GEMM fussionnée** avec une **DeQuant depuis Q4_1** - [ ] Réécriture de AdamW avec les API des quant pour update des poids et autres -- *optionnel* [ ] Réécriture de Muon avec les APIs de quant (plus adapté pour les LLM) -- [ ] Implémentation d'`emmeding` et autres composants utiles aux LLM +- [ ] *optionnel* : Réécriture de Muon avec les APIs de quant (plus adapté pour les LLM) +- [ ] Implémentation d'`embedding` et autres composants utiles aux LLM - [ ] Ajout FP8 pour les calculs des kernels +- [ ] Implémentation du **SGD avec compression géometrique** (2 bits/poids) +- [ ] *optionnel* : Post-entraînement d'un **Qwen3 0.6b/1.7b** en **Q4_1** + calculs en **FP8 (ou FP16)** + **SGD 2bits** (sur une RTX 4080) +Ce dernier point validera tout, avant de passer à la suite, l'ajout des quantifications se fera après (Q2_K en premier). + +### Détails importants : + +- La quantficiation Q4_1 est exactement la même que dans **llama.cpp** en implémentation **1:1** pour permettre pré/post entraînement directement en quantification. + +- Les kernels de **fused-GEMM** font une GEMM traditionnelle mais où le chargement des données (pointeurs **I/J**) se fait avec déquantification immédiate avant la **dot** (peut changer de logique). Les activations (ReLU, ReLU² et autres, sauf Softmax) ne seront pas codées pour le moment. + +- Une implémentation dans un moteur d'inférence compatible (ex: vLLM) n'est pas du tout prévue et l'objectif n'est pas d'entraîner des modèles mais seulement de développer les outils. + +- Un papier sur le SGD 2bits/poids est prévu en utilisant des principes de corrections géométriques dans le temps.... --- -readme v1 \ No newline at end of file +readme v1.1 \ No newline at end of file