Avec l'évolution rapide des grands modèles de langage (LLM) et leur intégration croissante dans des processus métiers critiques, leur capacité à comprendre et traiter avec précision des connaissances très spécialisées devient un enjeu majeur. Ce constat est particulièrement vrai dans le domaine de la cybersécurité, où les enjeux sont de taille et où la précision est essentielle et souvent considérée comme acquise. Il est donc non seulement utile, mais aussi indispensable d'évaluer les performances des LLM à l'aide de tests réalistes et de haute qualité, spécifiquement conçus pour ce domaine.
Dans cet article de blog, nous décrivons l'évaluation d'un certain nombre de modèles IBM Granite et InstructLab que nous avons réalisée à l'aide de CyberMetric Dataset, une série de tests spécialisés sur les connaissances en matière de cybersécurité. Nous avons utilisé une machine virtuelle Red Hat Enterprise Linux (RHEL) AI 1.3 qui inclut InstructLab ainsi qu'un GPU NVIDIA L4.
Nous avons testé les modèles suivants :
IBM Granite
- granite-3.3-8b-instruct
- granite-3.3-2b-instruct
- granite-3.0-8b-instruct
- granite-3.0-2b-instruct
InstructLab
- merlinite-7b-pt
- granite-3.0-8b-lab-community
Séries de tests CyberMetric utilisées
- CyberMetric-80-v1.json
- CyberMetric-500-v1.json
- CyberMetric-2000-v1.json
- CyberMetric-10000-v1.json
Présentation de CyberMetric Dataset
CyberMetric Dataset est un nouvel outil d'évaluation dans le domaine de la cybersécurité. Il comprend plus de 10 000 questions à choix multiples validées par des humains, ce qui en fait une ressource complète pour évaluer les LLM dans des contextes de cybersécurité.
L'ensemble de données provient d'un grand nombre de sources faisant autorité, notamment des normes ouvertes, des directives du NIST, des articles de recherche, des livres accessibles au public, des RFC et d'autres publications pertinentes. Il a été généré à l'aide de techniques de génération augmentée de récupération (RAG) qui allient des modèles basés sur la recherche documentaire à des capacités génératives.
L'outil CyberMetric Dataset a ensuite fait l'objet d'un processus de perfectionnement rigoureux en plusieurs étapes, mobilisant à la fois des LLM et des spécialistes humains, qui assure la qualité des données et leur fiabilité aux connaissances réelles en matière de cybersécurité.
Cet ensemble de données est conçu pour évaluer la compréhension et la mémoire d'un LLM dans neuf domaines distincts de la cybersécurité :
- Récupération après sinistre et planification de la continuité des activités
- Gestion des identités et des accès
- Sécurité IoT
- Chiffrement
- Sécurité du réseau sans fil
- Sécurité des réseaux
- Sécurité du cloud
- Tests d'intrusion
- Conformité/Audit
L'ensemble de données est disponible en quatre tailles : 80, 500, 2 000 et 10 000 questions.
Présentation d'InstructLab
InstructLab est une plateforme Open Source conçue par Red Hat et IBM pour simplifier le processus de personnalisation et d'alignement des LLM dans des domaines spécifiques. Basée sur la méthode LAB (Large-scale Alignment for chatBots), cette approche permet d'améliorer efficacement les modèles avec un minimum d'interventions humaines ou de ressources de calcul.
Pour ce faire, InstructLab injecte des connaissances issues de taxonomies, génère automatiquement des données synthétiques et effectue le réglage fin de modèles selon des comportements ou tâches spécifiques. Les modèles améliorés peuvent être déployés localement à l'aide de l'interface en ligne de commande ilab avec des back-ends tels que vLLM ou Llama.cpp.
Ce qui distingue InstructLab des approches traditionnelles de réglage fin, c'est son ouverture aux contributions amont et à l'amélioration continue par la communauté. Il ne dépend d'aucun modèle et peux être utilisé avec les versions régulièrement mises à jour des modèles Open Source tels qu'IBM Granite et Merlinite (dérivé de Mistral).
Types de modèles évalués
- Modèles Granite : il s'agit des LLM de fondation développés par IBM. Les modèles dont le nom se termine par le mot « instruct » sont spécifiquement adaptés pour suivre des instructions et participer à des conversations ou à des raisonnements.
- Modèles InstructLab : ce sont les modèles personnalisés par la communauté. Généralement basés sur des modèles de fondation tels que les modèles Granite, ils ont été entraînés et affinés avec les outils et les méthodes d'InstructLab dans le but d'obtenir des performances générales ou adaptées à un domaine.
Avantages de ces modèles
Nous avons choisi ces modèles en vue de fournir un point de comparaison pertinent, notamment par rapport au classement officiel de CyberMetric. Les modèles fusion-7b-pt, granite-3.0-8b-lab-community, granite-3.0-2b-instruct et granite-3.0-8b-instruct ont été sélectionnés, car il s'agit des versions disponibles au moment de la publication de l'évaluation.
Notre évaluation inclut les modèles IBM Granite 3.3 les plus récents (granite-3.3-8b-instruct et granite-3.3-2b-instruct). Cette sélection nous permet de montrer l'évolution des performances des modèles Granite.
Mise à disposition des modèles via InstructLab
Tous les modèles ont été déployés localement sur notre machine virtuelle RHEL AI à l'aide de la commande ilab. Le processus implique d'abord de télécharger le modèle, puis de le lancer :
ilab model download --repository ibm-granite/granite-3.3-8b-instruct --hf-token
Une fois le modèle téléchargé, il est mis à disposition :
ilab model serve --model-path ~/.cache/instructlab/models/ibm-granite/granite-3.3-8b-instruct --gpus 1
Correction de l'épuisement de la mémoire du GPU
Notre environnement de configuration limité ne dispose que d'un seul GPU L4, ce qui posait problème. Lors du lancement des modèles via InstructLab (qui utilise vLLM comme back-end), nous avons rencontré une difficulté courante : certaines configurations de modèles entraînaient un épuisement de la mémoire du GPU à cause de leur valeur max_position_embedings élevée. Dans leur fichier config.json de plusieurs modèles, ce paramètre était défini sur 131072, ce qui augmentait considérablement la mémoire requise par le cache clé-valeur (KV) dans le vLLM, entraînant souvent des erreurs de mémoire (OOM).
Solution :
Pour remédier à ce problème, nous avons modifié manuellement le fichier config.json et définit une valeur plus basse, adaptée à notre matériel :
"max_position_embeddings": 4096
Cette valeur définit le nombre maximal de jetons textuels que le modèle peut gérer dans une séquence, en fonction de son encodage positionnel. En la réduisant à 4 096, l'empreinte de la mémoire cache clé-valeur est considérablement réduite, tout en restant suffisante pour l'ensemble de données CyberMetric, qui comporte des questions à choix multiples relativement courtes. La précision du modèle n'a pas été affectée par cet ajustement, car les entrées dans notre cas d'utilisation ne dépassaient pas cette longueur de jeton textuel.
Ce changement nous a permis de mettre les modèles à disposition sans instabilité ni panne, créant ainsi un processus d'évaluation fluide avec notre configuration à un seul GPU.
Adaptation et amélioration des scripts
Nous avons adapté et amélioré le script d'évaluation CyberMetric d'origine, conçu au départ pour interagir avec l'API OpenAI, afin de faciliter l'évaluation de nos modèles lancés localement via InstructLab. Voici nos principales modifications :
- Modification du mécanisme d'appel d'API openai.ChatCompletion.create en faveur de la bibliothèque requests.post pour envoyer des requêtes HTTP directement au point de terminaison du serveur vLLM local exposé par InstructLab
- Suppression de l'authentification par clé d'API, car elle n'était plus nécessaire pour un serveur local
Nous n'avons apporté que des changements minimes à la logique de base du script CyberMetric d'origine pour préserver l'intégrité et la reproductibilité de la méthode d'évaluation. Nous avons également introduit une configuration de paramètre clé non présente dans la version d'origine :
- Puisque le script CyberMetric évalue des modèles provenant de plusieurs fournisseurs (OpenAI, Qwen, Mistral, etc.), l'absence d'un paramètre de température fixe peut causer des variations entre les exécutions, en fonction du comportement par défaut de chaque modèle. Nous avons donc définit explicitement la température sur 0,0 afin que les résultats soient reproductibles et comparables sur tous les modèles testés.
Résultats et analyses de l'évaluation
Pour notre évaluation, nous avons utilisé l'ensemble de données de test CyberMetric comme base. Plutôt que de nous appuyer uniquement sur le classement global, nous avons structuré les résultats en regroupant les modèles par taille, selon des catégories comparables : environ 2 milliards (~2B), 7 milliards (7B) et 8 milliards (8B) de paramètres. Cette approche permet de réaliser une comparaison juste et pertinente en ne confrontant que les modèles à capacités similaires, ce qui évite les biais liés aux différences d'échelle entre les modèles. De plus, nous avons exclu tous les modèles propriétaires qui ne divulguent pas leur taille afin de préserver l'intégrité de la comparaison.
Modèles à ~2 milliards de paramètres (~2B)
Cette catégorie comprend les LLM qui comporte entre 1,5 et 2,7 milliards de paramètres.
Observations :
- Granite-3.3-2b-instruct se démarque des autres modèles de cette catégorie grâce à sa précision moyenne de près de 79 %. Il surpasse largement les autres concurrents et sa version précédente, Granite-3.0.
- Granite-3.3 est en moyenne 1 % plus précis que Granite-3.0, surtout à petite échelle (80 et 2 000 questions), ce qui traduit un meilleur réglage des instructions ou un meilleur alignement de domaine.
- Bien que le modèle Qwen2.5-1.5B-Instruct montre des performances satisfaisantes, sa précision réduite face aux ensembles de données volumineux indique une moins bonne compréhension des sujets de cybersécurité.
- Les modèles qui n'ont pas été spécifiquement entraînés pour suivre des instructions, tels que Qwen1.5-MoE et Phi-2, sont loin derrière, ce qui prouve clairement la supéririté des modèles « instruct » pour cette tâche.
- Le modèle Gemma-2b affiche des performances médiocres dans tous les ensembles de données et ne convient pas aux tâches de contrôle qualité de cybersécurité sans réglage fin majeur.
Modèles à 7 milliards de paramètres (7B)
Cette catégorie comprend les LLM qui comportent 7 milliards de paramètres.
Modèle LLM | Réglage fin des instructions | Entreprise | Taille | Licence | 80 Q | 500 Q | 2 000 Q | 10 000 Q |
Qwen2.5-7B-Instruct | ✔ | Qwen | 7 Md | Apache 2.0 | 92,5 % | 89,2 % | 87,45 % | 83,56 % |
Falcon3-7B-Instruct | ✔ | TII | 7 Md | Apache 2.0 | 91,25 % | 85,6 % | 84,25 % | 80,72 % |
Qwen2-7B-Instruct | ✔ | Qwen | 7 Md | Apache 2.0 | 91,25 % | 84,40 % | 82 % | 78,75 % |
Merlinite-7b-pt | ✔ | InstructLab | 7 Md | Apache 2.0 | 86,25 % | 81,20 % | 81,95 % | 79,63 % |
Mistral-7B-Instruct-v0.2 | ✔ | Mistral AI | 7 Md | Apache 2.0 | 78,75 % | 78,4 % | 76,4 % | 74,82 % |
Zephyr-7B-beta | ✔ | HuggingFace | 7 Md | MIT | 80,94 % | 76,4 % | 72,5 % | 65 % |
Gema-1.1-7B-it | ✔ | 7 Md | Ouverture | 82,5 % | 75,4 % | 75,75 % | 73,32 % | |
Qwen1.5-7B | ✘ | Qwen | 7 Md | Ouverture | 73,75 % | 70,1 % | 69,96 % | 65,17 % |
Qwen-7B | ✘ | Qwen | 7 Md | Ouverture | 68,42 % | 64,08 % | 63,84 % | 54,09 % |
DeciLM-7B | ✘ | Deci | 7 Md | Apache 2.0 | 56,55 % | 56,2 % | 53,85 % | 51,32 % |
Gemma-7b | ✘ | 7 Md | Ouverture | 42,5 % | 37,2 % | 36 % | 34,28 % |
Observations :
- Avec une précision moyenne supérieure à 82 %, Merlinite-7b-pt offre les meilleures performances parmi les modèles affinés par la communauté, juste en dessous du trio en tête du classement.
- Bien que les modèles en tête, tels que Qwen2.5-7B-Instruct, offrent une excellente précision globale, l'écart avec Merlinite-7b-pt se réduit considérablement avec de grands ensembles de données, et Merlinite dépasse même Qwen2-7B-Instruct sur l'ensemble de données de 10 000 questions.
- Les modèles qui n'ont pas été spécifiquement entraînés pour suivre des instructions, tels que DeciLM-7B et GPU-7B, affichent une forte baisse de leurs performances et ne sont pas viables sans réglage majeur pour les cas d'usage dans la cybersécurité.
Modèles à 8 milliards de paramètres (8B)
Observations :
- Granite-3.0-8b-instruct se place en tête de la catégorie des modèles 8B avec une impressionnante précision moyenne de 83,61 % sur tous les ensembles de données CyberMetric. Ses performances restent stables et fiables, avec une baisse de moins de 3 % entre 80 et 10 000 questions, un facteur essentiel pour le raisonnement dans les scénarios de cybersécurité qui nécessitent de traiter des contextes longs.
- Par rapport au modèle Granite-3.3-8b-instruct, la version 3.0 est légèrement plus performante en moyenne, même s'il s'agit d'une version plus ancienne. Bien que la version 3.3 présente un léger avantage sur l'ensemble de 2 000 questions, sa précision chute à 80,22 % sur l'ensemble de 10 000 questions.
- Meta-Llama-3-8B-Instruct offre des performances inférieures aux deux modèles Granite, en particulier dans les grands ensembles de données. Il perd plus de 10 points de pourcentage entre 80 à 10 000 questions, ce qui démontre une capacité d'adaptation au domaine plus faible, même s'il a été entraîné pour suivre des instructions.
- Les modèles de base tels que Llama3-ChatQA-1.5-8B et Meta-Llama-3-8B présentent de mauvais résultats à tous les niveaux, leur précision avoisinant respectivement 50 % et 37 %. Ces valeurs démontrent qu'il est crucial d'entraîner les modèles à suivre des instructions pour les évaluations de type CyberMetric.
- Globalement, Granite-3.0 et 3.3-instruct offrent les modèles 8B les plus fiables pour les tâches de sécurité, avec un niveau de précision élevé sans API propriétaires et une compatibilité parfaite avec les déploiements autohébergés.
Accès aux scripts d'évaluation et aux résultats détaillés
Pour faciliter la reproductibilité et l'analyse approfondie, nous avons publié un référentiel GitHub contenant les éléments suivants :
- Le script d'évaluation CyberMetric modifié et adapté pour la mise à disposition locale via InstructLab
- Les résultats bruts pour tous les modèles testés
- La répartition des questions ayant reçu une mauvaise réponse pour chaque modèle et chaque taille d'ensemble de données
Cette ressource permet aux lecteurs d'examiner les points faibles spécifiques de chaque modèle et de mieux comprendre les différences de performance en matière de raisonnement pour la cybersécurité.
Conclusion
Nos tests ont démontré les résultats suivants :
Le modèle Granite-3.3-2b-instruct s'impose clairement comme le leader de la catégorie ~2B, établissant une référence pour les modèles compacts optimisés pour le suivi d'instructions dans le domaine de la cybersécurité. Par ailleurs, il s'agit d'une excellente option pour les environnements aux ressources limitées, car il est capable de maintenir ses performances avec des ensembles de données de tailles différentes tout en utilisant moins de paramètres que la plupart des concurrents.
Merlinite-7b-pt est l'un des modèles 7B les plus équilibrés et les plus résilients, même sur des tâches spécialisées. Bien qu'il n'ait pas obtenu la note la plus élevée, il s'agit d'une excellente option pour les projets communautaires qui nécessitent de solides performances en cybersécurité sans dépendre de solutions propriétaires.
Granite-3.0 et 3.3 établissent la norme de référence pour les modèles Open Source à 8 milliairs de paramètres dans le domaine du raisonnement en cybersécurité. Ils offrent une précision élevée, une stabilité à différentes échelles et des licences ouvertes, une combinaison rare qui en fait une solution idéale pour réaliser des déploiements économiques. Par rapport à la concurrence, les modèles Granite-8B offrent des performances proches de l'excellence.
Essai de produit
Red Hat Enterprise Linux | Essai de produit
À propos de l'auteur
Plus de résultats similaires
Implementing best practices: Controlled network environment for Ray clusters in Red Hat OpenShift AI 3.0
Solving the scaling challenge: 3 proven strategies for your AI infrastructure
Technically Speaking | Platform engineering for AI agents
Technically Speaking | Driving healthcare discoveries with AI
Parcourir par canal
Automatisation
Les dernières nouveautés en matière d'automatisation informatique pour les technologies, les équipes et les environnements
Intelligence artificielle
Actualité sur les plateformes qui permettent aux clients d'exécuter des charges de travail d'IA sur tout type d'environnement
Cloud hybride ouvert
Découvrez comment créer un avenir flexible grâce au cloud hybride
Sécurité
Les dernières actualités sur la façon dont nous réduisons les risques dans tous les environnements et technologies
Edge computing
Actualité sur les plateformes qui simplifient les opérations en périphérie
Infrastructure
Les dernières nouveautés sur la plateforme Linux d'entreprise leader au monde
Applications
À l’intérieur de nos solutions aux défis d’application les plus difficiles
Virtualisation
L'avenir de la virtualisation d'entreprise pour vos charges de travail sur site ou sur le cloud