>_ DevTrendsfr

Langue

Accueil

Langages

Sections

Frontend Backend Mobile DevOps AI / ML GameDev Sécurité
C-plus-plus

ik_llama.cpp : quand le llama.cpp classique ne suffit pas

2 810 étoiles

Situation familière : vous exécutez un modèle de langage sur votre ordinateur et il fonctionne à peine ? Surtout si vous n'avez pas un GPU haut de gamme, juste un processeur classique. C'est exactement pour cela qu'ik_llama.cpp a été créé — une bifurcation du populaire llama.cpp axée sur les performances maximales pour les configurations CPU et CPU/GPU hybrides.

Ce que c'est et pourquoi vous en avez besoin

ik_llama.cpp est une bifurcation du projet llama.cpp, créée par Ivan Kavrakov (ikawrakow). L'objectif principal est de fournir une solution plus performante pour exécuter des modèles de langage sur du matériel classique. Si le llama.cpp original est déjà bon, cette bifurcation le rend encore meilleur, notamment dans les scénarios :

  • Exécution sur CPU (y compris les appareils mobiles)
  • Utilisation de configurations CPU/GPU hybrides
  • Application de méthodes de quantification modernes

Le projet est activement développé : au moment de la rédaction, il compte 10 098 étoiles et 125 bifurcations sur GitHub.

Fonctionnalités clés

1. Méthodes de quantification avancées

Le projet implémente plusieurs nouveaux types de quantification qui réduisent considérablement la taille du modèle avec une perte de qualité minimale :

  • Trellis quants (IQ1_KT, IQ2_KT, IQ3_KT, IQ4_KT) — basés sur un nouveau treillis entier, offrant des performances CPU raisonnables
  • IQK quants — une famille complète de méthodes de quantification, incluant IQ5_KS, IQ4_KS, IQ6_K et d'autres
  • Q8_KV — un nouveau type pour la quantification du cache KV en 8 bits

Ces méthodes permettent d'exécuter des modèles qui nécessitaient auparavant un GPU sur des processeurs classiques.

2. Flash-MLA pour les modèles DeepSeek

Particulièrement intéressante est l'implémentation de FlashMLA (MLA — Multi-Layer Attention) pour les modèles DeepSeek :

  • FlashMLA-3 — l'implémentation la plus rapide pour CPU
  • Support CUDA pour les GPU Nvidia (Ampere ou plus récent)
  • Possibilité d'utiliser le cache Q8_0 quantifié avec MLA

Comme l'auteur le note, FlashMLA-3 offre des performances record pour les modèles DeepSeek sur CPU.

3. Traitement hybride CPU/GPU

Le projet offre un contrôle granulaire sur l'endroit où les opérations sont exécutées :

  • Substitutions de tenseurs pour gérer le placement des poids (GPU ou CPU)
  • Stratégie de déchargement améliorée pour les modèles MoE (Mixture of Experts)
  • Possibilité de désactiver les noyaux CPU FA (Flash Attention) si nécessaire

C'est particulièrement utile pour les systèmes avec GPU dédié, où vous pouvez distribuer la charge entre le processeur et la carte graphique.

Détails techniques

Le projet est écrit en C++ et prend en charge :

  • Différentes architectures CPU : AVX2, NEON, Zen4
  • CUDA pour le calcul GPU
  • Metal pour Apple Silicon
  • Fonctionne même sur Android via Termux

Solutions techniques intéressantes :

  • Opérations MoE fusionnées — inférence accélérée pour les modèles avec architecture Mixture of Experts
  • Empaquetage de quantification entrelacé par lignes — empaquetage efficace des données quantifiées
  • Réduction intelligente des experts — réduction intelligente des experts pour une inférence DeepSeek plus rapide

Applications pratiques

Où ik_llama.cpp est particulièrement utile :

  1. Exécution locale de grands modèles — quand vous n'avez pas accès à des GPU puissants mais devez travailler avec des LLM modernes
  2. Appareils mobiles — possibilité d'exécuter sur Android via Termux
  3. Systèmes hybrides — utilisation optimale du CPU et du GPU dans un même système
  4. Expériences avec la quantification — de nombreuses nouvelles méthodes de quantification pour les chercheurs

Par exemple, comme noté dans une discussion, le projet permet un fonctionnement efficace avec DeepSeek-V3 même sur une configuration avec 16 x Nvidia RTX 3090.

Pour commencer

  1. Clonez le dépôt :
git clone https://github.com/ikawrakow/ik_llama.cpp
cd ik_llama.cpp
  1. Construisez le projet (exemple pour Linux) :
mkdir build
cd build
cmake ..
make -j
  1. Pour tester la fonctionnalité d'appel de fonction :
cd build
cmake --build . --target test-function-calls
./bin/test-function-calls

Conclusion : vaut-il la peine d'essayer ?

ik_llama.cpp est un excellent choix si :

  • Vous avez besoin de performances maximales sur CPU
  • Vous travaillez avec des modèles modernes comme DeepSeek, LLaMA-3, Qwen3
  • Vous souhaitez expérimenter avec des méthodes de quantification avancées
  • Vous avez un système hybride avec CPU et GPU

Le projet est activement développé, sous licence MIT, et ouvert aux contributeurs. Si vous utilisez déjà llama.cpp, passer à cette bifurcation peut vous donner un gain de performance notable sans frais supplémentaires.

Pour un aperçu plus détaillé des capacités du projet, je recommande d'explorer :

Projets similaires