1 points par GN⁺ 2024-04-05 | 1 commentaires | Partager sur WhatsApp
  • IPEX-LLM est une bibliothèque pour PyTorch qui accélère les LLM sur les GPU, NPU et CPU Intel, mais le projet est actuellement archivé et Intel n’en garantit plus ni le développement ni le support
  • Le périmètre pris en charge inclut les iGPU de PC locaux, les GPU dédiés comme Arc, Flex et Max, les NPU Intel Core Ultra, ainsi que les CPU, avec une intégration à llama.cpp, Ollama, vLLM, HuggingFace transformers, LangChain, LlamaIndex, etc.
  • Plus de 70 modèles ont été optimisés ou validés dans ipex-llm, dont Llama, Phi, Mistral, Mixtral, DeepSeek, Qwen, ChatGLM, MiniCPM, Qwen-VL et MiniCPM-V
  • Les dernières mises à jour incluent l’exécution de DeepSeek V3/R1 671B et Qwen3MoE 235B sur 1 à 2 GPU Intel Arc via FlashMoE, ainsi que ipex-llm 2.2.0, le support GPU de PyTorch 2.6 et le support des Portable Zip d’Ollama et de llama.cpp
  • Le README indique l’existence de problèmes de sécurité connus, et Intel ne garantit plus la maintenance, les corrections de bugs, les nouvelles versions ni les mises à jour, et n’accepte plus de correctifs

État du projet et objectif principal

  • IPEX-LLM est une bibliothèque d’accélération de LLM destinée à accélérer les LLM sur le matériel Intel
  • Le matériel visé comprend les GPU, NPU et CPU Intel
    • Exemples de GPU : iGPU de PC locaux, GPU dédiés comme Arc, Flex et Max
    • Les NPU ciblent la gamme Intel Core Ultra
  • Le haut du projet indique explicitement son statut archivé
    • Intel ne fournit ni ne garantit de développement ou de support
    • La maintenance, les corrections de bugs, les nouvelles versions et les mises à jour ne sont pas garanties
    • Intel n’accepte plus de correctifs pour ce projet
    • Des problèmes de sécurité connus existent

Écosystème intégré

  • ipex-llm s’intègre à divers outils d’exécution, de serving et de développement pour LLM
    • llama.cpp
    • Ollama
    • vLLM
    • HuggingFace transformers
    • LangChain
    • LlamaIndex
    • Text-Generation-WebUI
    • DeepSpeed-AutoTP
    • FastChat
    • Axolotl
    • HuggingFace PEFT
    • HuggingFace TRL
    • AutoGen
    • ModelScope
  • La documentation de démarrage rapide couvre Ollama, llama.cpp, Arc B580, NPU, PyTorch/HuggingFace, vLLM, FastChat, le serving multi-GPU Intel, Text-Generation-WebUI, Axolotl et le benchmarking
  • Le guide Docker inclut l’inférence GPU en C++, l’inférence GPU en Python, vLLM sur GPU et CPU, FastChat sur GPU, ainsi qu’un environnement de développement GPU avec VSCode

Modèles et périmètre d’optimisation

  • Le README indique que plus de 70 modèles ont été optimisés ou validés dans ipex-llm
  • Exemples de familles de modèles :
    • séries LLaMA/LLaMA2/LLaMA 3
    • Mistral, Mixtral, Gemma
    • LLaVA, Whisper
    • ChatGLM2/ChatGLM3
    • Baichuan/Baichuan2
    • séries Qwen/Qwen-1.5/Qwen2
    • InternLM
    • DeepSeek, MiniCPM, Qwen-VL, MiniCPM-V, etc.
  • Les précisions prises en charge et la quantification sont principalement orientées vers l’inférence en faible précision
    • FP8, FP6, FP4, INT4
    • INT8
    • INT2 est fourni sur la base du mécanisme IQ2 de llama.cpp
  • Les exemples de sauvegarde/chargement incluent des modèles basse précision en INT4, FP4, FP6, INT8, FP8, FP16, ainsi que le chargement de modèles GGUF, AWQ et GPTQ

Fonctionnalités mises en avant dans les dernières mises à jour

  • La mise à jour de mai 2025 indique qu’avec FlashMoE de ipex-llm, DeepSeek V3/R1 671B et Qwen3MoE 235B peuvent être exécutés sur 1 à 2 GPU Intel Arc
    • Exemples de GPU : Arc A770 ou B580
  • En avril 2025, ipex-llm 2.2.0 a été publié, avec les Portable Zip d’Ollama et de llama.cpp
  • Le Portable Zip de llama.cpp comporte un avertissement de sécurité
    • Le chargement de modèle basé sur mmap peut entraîner des fuites de données par canal auxiliaire dans des environnements multi-tenant ou sur des hôtes partagés
    • L’option --no-mmap permet de désactiver mmap
  • En avril 2025, le support de PyTorch 2.6 pour les GPU Intel a été ajouté
  • En mars 2025, le support des modèles Gemma3 a été ajouté, ainsi que l’exécution de DeepSeek-R1-671B-Q4_K sur 1 à 2 Arc A770 avec Xeon
  • En février 2025, ont été ajoutés le Portable Zip d’Ollama pour GPU Intel, le Portable Zip de llama.cpp pour GPU et NPU Intel, ainsi que le support de vLLM 0.6.6 sur les GPU Intel Arc
  • En décembre 2024, le support Python et C++ a été ajouté pour les NPU Intel Core Ultra, avec pour séries ciblées 100H, 200V, 200K et 200H

Démos, performances et précision

  • Les démos proposent des exemples d’exécution de LLM locaux sur iGPU Intel Core Ultra, NPU Intel Core Ultra, un seul GPU Arc et plusieurs GPU Arc
    • iGPU Intel Core Ultra : exécution de Mistral-7B Q4_K avec Ollama
    • NPU Intel Core Ultra : exécution de Llama3.2-3B SYM_INT4 avec HuggingFace
    • 2 GPU Intel Arc dGPU : exécution de DeepSeek-R1-Distill-Qwen-32B Q4_K avec llama.cpp
    • Intel Xeon + Arc dGPU : exécution de Qwen3MoE-235B Q4_K avec FlashMoE
  • La section performances fournit des données sur la vitesse de génération de tokens sur Intel Core Ultra et les GPU Intel Arc
  • Le guide de benchmarking permet d’exécuter directement les benchmarks de performance de ipex-llm
  • La section sur la précision des modèles fournit des résultats de perplexité mesurés sur le jeu de données Wikitext
    • Les précisions comparées sont sym_int4, q4_k, fp6, fp8_e5m2, fp8_e4m3, fp16
    • Les modèles concernés incluent Llama-2-7B-chat-hf, Mistral-7B-Instruct-v0.2, Baichuan2-7B-chat, Qwen1.5-7B-chat, Llama-3.1-8B-Instruct et gemma-2-9b-it
  • Les performances varient selon l’usage, la configuration et d’autres facteurs, et ipex-llm peut ne pas être optimisé au même niveau sur des produits non Intel

Exemples de développement et d’usage

  • Les exemples de code sont répartis entre l’inférence basse précision, l’inférence FP16/BF16, l’inférence distribuée, la sauvegarde/le chargement, le fine-tuning et l’intégration avec des bibliothèques communautaires
  • Le fine-tuning sur GPU Intel inclut LoRA, QLoRA, DPO, QA-LoRA et ReLoRA
  • Des exemples de fine-tuning QLoRA sont également fournis sur CPU Intel
  • Les guides applicatifs couvrent l’usage de ipex-llm avec GraphRAG, RAGFlow, LangChain-Chatchat, Continue, Open WebUI, PrivateGPT et Dify
  • La documentation API fournit une API Auto Classes dans le style HuggingFace Transformers ainsi qu’une API d’optimisation pour modèles PyTorch arbitraires

1 commentaires

 
GN⁺ 2024-04-05
Commentaires sur Hacker News
  • L’entreprise qui s’est obstinée trop longtemps sur le 4 cœurs a une occasion de se rattraper en cassant, sur son prochain GPU grand public, le plafond de verre des 8 à 16 Go de VRAM qu’AMD et Nvidia imposent de fait depuis dix ans
    Voir arriver du 32 à 48 Go à un prix abordable aurait quelque chose d’assez poétique, et Intel semble aussi enfin bouger sérieusement sur le support logiciel

    • Intel est en train de rattraper Nvidia dans l’IA, et la principale raison est le manque de compétitivité de ses produits
      L’Intel Arc A770 16GB, sortie en octobre 2022, coûte environ 300 dollars, tandis que la Nvidia 4060 Ti 16GB tourne autour de 500 dollars, mais en charge IA réelle la 4060 Ti est à peu près deux fois plus rapide : https://cdn.mos.cms.futurecdn.net/FtXkrY6AD8YypMiHrZuy4K-120...
      Le fait qu’en théorie l’Arc A770 soit plus rapide rend le problème encore plus frappant. En TFLOPS, elle offre plus du double des performances d’une Nvidia 4060 : https://cdn.mos.cms.futurecdn.net/Q7WgNxqfgyjCJ5kk8apUQE-120...
      Mais tout l’écosystème IA est développé et optimisé pour tourner sur CUDA de Nvidia, d’où les performances réelles plus faibles
      Au fond, c’est un problème de notoriété et d’écosystème. Si Intel sortait un GPU workstation avec 32 ou 64 Go de VRAM, pas un monstre enterprise hors de prix mais un produit qu’un développeur peut acheter, ça se vendrait énormément
      Il n’a même pas besoin d’être le plus rapide. Il suffit d’offrir plus de VRAM que les produits concurrents. Aujourd’hui, pour l’entraînement ou la génération vidéo, le manque de VRAM est un goulot d’étranglement plus important que la vitesse du GPU, et je ne comprends pas pourquoi Intel ne le voit pas
    • Une VRAM au-delà de 24 Go aura sans doute du mal à devenir bon marché avant l’arrivée de la GDDR7, et même avec la GDDR7 on ne pourra probablement pousser que jusqu’à environ 36 Go
      Les variantes plus avancées de GDDR6 empilée risquent d’être assez coûteuses, et on ne peut pas simplement ajouter davantage de dies à cause des problèmes d’intégrité du signal
    • Ce qui nous paraît évident ressemble à un standard industriel pour un chef de produit
      Quand on réfléchit à la dernière fois qu’un acteur du secteur a vraiment bousculé l’ordre établi, Intel n’apparaît pas non plus comme une entreprise si transformée que ça
    • Je suis d’accord sur le fait que du 32 à 48 Go à prix accessible serait formidable
      J’ai entendu dire que certains BIOS de cartes mères Asrock permettent de configurer jusqu’à 64 Go de VRAM sur un Ryzen5, et je suis en train d’examiner plusieurs configurations matérielles AMD
    • Si AMD fabriquait des pilotes de grande qualité, je paierais pour voir :-)
  • Je suis curieux de voir des données de benchmark
    Les vitesses montrées dans l’exemple avaient l’air plutôt bonnes

  • Je me demande s’il y a des recommandations de GPU Intel avec beaucoup de VRAM sur lesquels on peut utiliser ça

    • Il existe le Max GPU (Ponte Vecchio) pour datacenter, avec 128 Go de mémoire HBM2e, 408 Mo de cache L2 et 64 Mo de cache L1
      Gaudi affiche des chiffres similaires, mais d’après les supports marketing, c’est la version dotée de cœurs spécialisés pour les charges IA
      On peut s’en procurer via des systèmes complets chez Dell et Supermicro : https://www.supermicro.com/en/accelerators/intel
      Pour aller plus loin : https://www.servethehome.com/intel-shows-gpu-max-1550-perfor...
    • Côté grand public, il y a l’Intel Arc A770 16GB VRAM
      Au-delà, on commence déjà à basculer dans la gamme enterprise
  • Je me demande s’il existe des benchmarks de performances comparés à llamafile ou à d’autres solutions
    [0] - https://github.com/mozilla-Ocho/llamafile

    • On peut déjà utiliser les GPU Intel dans llama.cpp, et les GPU ARC comme les GPU intégrés prennent en charge plusieurs backends
      Les backends pris en charge sont SYCL, Vulkan et OpenCL
      Je n’ai pas moi-même le matériel, mais vu qu’Intel pousse beaucoup ce sujet côté datacenter, SYCL me paraît devoir être plus rapide sur ARC
      [1]: https://www.intel.com/content/www/us/en/developer/articles/t...
  • Ce serait bien d’avoir avec ça un script de GPU cloud permettant d’exécuter les exemples
    Ce serait utile de pouvoir lancer ça directement chez un fournisseur cloud au lieu de devoir deviner quels GPU sont compatibles, et je me demande si je ne devrais pas en bricoler un moi-même

  • Aucun des grands fournisseurs cloud ne propose de GPU Intel

    • Les GPU Intel ont déjà assez bien pénétré le marché d’Asie du Sud-Est, et Intel doit bientôt lancer une nouvelle génération
      En plus, contrairement à la licence GRID de Nvidia, ils autorisent la virtualisation GPU sans coût de licence supplémentaire, ce qui permet aux hébergeurs de découper une carte en plusieurs offres
      J’ai l’impression qu’on va voir bien plus d’offres basées sur Intel à l’avenir
    • Ce n’est pas du cloud, mais pour le grand public c’est une proposition assez solide
      On a 16 Go de mémoire et des performances proches d’une 4060 Ti pour environ 65 % du prix
    • Cela dit, il existe beaucoup d’endroits qui proposent des CPU Intel