Poids ternaires : un modèle plus petit sur le papier, mais nous n'avons pas encore réussi à le faire fonctionner
Un modèle ternaire stocke chaque poids sous la forme -1, 0 ou +1 plutôt que sous la forme d'un nombre de 16 bits. En théorie, cela divise par environ 16 l'espace occupé par les poids et pourrait convenir à des processeurs ordinaires. Il s'agit d'un calcul de stockage, pas d'une mesure, et nous n'avons vérifié aucun gain de vitesse. Reste à savoir si un tel modèle peut être entraîné pour obtenir de bonnes performances. Nous avons essayé avec des ressources de calcul gratuites et de petits modèles.

Nos tentatives ont manqué leurs propres objectifs. C'est un résultat sur notre configuration et notre budget, pas une preuve que les modèles ternaires ne fonctionnent pas.
- Essai de plus grande taille, 2000 pas
- Perplexité ternaire de 158,21 contre 13,85 pour le modèle de comparaison. Il a aussi échoué à son contrôle d'entrée, et l'exécution a continué quand même.
- Exécution avec distillation (Exp8)
- Modèle enseignant : SmolLM2-360M, dont les poids sont figés. Objectif : une perplexité inférieure à 100 au pas 1000. Résultat : 352,71. Objectif non atteint.
Une perplexité plus faible est meilleure. Le graphique montre l'exécution avec distillation contre l'exécution précédente sans elle.
Source : exp8_summary.json (SHA-256 de préenregistrement 0f33380de08a6dc5953eaa5221683a9c7b85532909d13125ae53ed1b32281c6b). L'exécution précédente n'a pas de valeur au pas 750. La comparaison se fait à nombre de pas égal, pas à coût de calcul égal : ce n'est donc pas une comparaison de coûts équitable.
- Petits modèles et entraînement court. Rien ici ne concerne les grands modèles ternaires.
- Seuls les résultats étayés par une sortie d'évaluation enregistrée sont montrés.
- Les poids et les fichiers de reproductibilité sont stockés en privé. Rien n'est publié.

The Labs