Lm.rs : technologie minimale d’inférence LLM sur CPU en Rust, sans dépendances
(github.com/samuel-vitorino)lm.rs : exécuter l’inférence de modèles de langage en local sur CPU avec Rust
-
Présentation
- lm.rs est un projet qui permet d’exécuter l’inférence de modèles de langage sur CPU avec Rust.
- Inspiré par
llama2.cetllm.cde Karpathy, il est conçu pour faire tourner des modèles de langage avec un minimum de code, sans bibliothèque de ML. - Il ne prenait en charge que le modèle Gemma 2 de Google, mais prend désormais aussi en charge les modèles Llama 3.2 et le modèle d’image PHI-3.5.
-
Modèles prêts à l’emploi
- Fournit des benchmarks et des liens de téléchargement pour différents modèles et tokenizers.
- Les modèles quantifiés
Q8_0etQ4_0sont recommandés. - La vitesse a été mesurée sur un AMD Epyc 16 cœurs.
-
Conversion des modèles
- Possibilité de convertir les modèles de Google/Meta au format lmrs.
- Après avoir installé les dépendances Python, il est possible de convertir le modèle et le tokenizer à l’aide des scripts
export.pyettokenizer.py.
-
Build
- Le code Rust peut être compilé et exécuté avec
cargo. - Pour activer les fonctionnalités multimodales, il faut inclure la fonctionnalité
multimodal.
- Le code Rust peut être compilé et exécuté avec
-
TODOs
- Ajouter des méthodes d’échantillonnage.
- Tester les modèles 9B et 27B.
- Paralléliser la boucle d’attention multi-tête.
- Ajouter des métriques de performance.
- Ajouter une fonctionnalité pour fournir un prompt système.
- Ajouter la prise en charge de la quantification (
int8,int4).
# Le récapitulatif de GN⁺
- lm.rs propose une méthode efficace pour exécuter des modèles de langage sur CPU avec Rust. Cela reste possible sans bibliothèque de ML, ce qui le rend utile dans des environnements légers.
- Il convient aussi aux développeurs qui découvrent Rust, tout en offrant une bonne extensibilité grâce à la prise en charge de plusieurs modèles.
- La prise en charge de modèles multimodaux comme PHI-3.5 inclut également des capacités de traitement d’image.
- Parmi les projets offrant des fonctions similaires, on peut citer la bibliothèque Transformers de Hugging Face.
1 commentaires
Commentaires sur Hacker News
unsafe