I modelli linguistici di grandi dimensioni (LLM) progrediscono rapidamente e si integrano sempre più nei flussi di lavoro aziendali critici, di pari passo alla loro capacità di ragionare e rispondere in modo accurato a domande specifiche e altamente specifiche di determinati ambiti. Ciò è vero soprattutto in ambito di sicurezza informatica, dove la posta in gioco è alta e l'accuratezza, spesso data per scontata, è fondamentale. Pertanto, valutare le prestazioni degli LLM utilizzando benchmark realistici e di alta qualità appositamente creati per la sicurezza informatica non è solo utile, ma anche necessario.
Questo articolo del blog illustra la nostra valutazione di una serie di modelli IBM Granite e InstructLab con CyberMetric Dataset, un benchmark dedicato per esaminare le conoscenze in ambito di sicurezza informatica. La valutazione è stata condotta su una macchina virtuale Red Hat Enterprise Linux (RHEL) AI 1.3, che include InstructLab e una singola GPU NVIDIA L4.
Abbiamo eseguito i test di benchmark dei seguenti modelli:
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
Set di valutazione CyberMetric utilizzati
- CyberMetric-80-v1.json
- CyberMetric-500-v1.json
- CyberMetric-2000-v1.json
- CyberMetric-10000-v1.json
Cos'è CyberMetric Dataset?
CyberMetric Dataset è uno strumento di benchmarking relativamente nuovo, specifico per il dominio della sicurezza informatica, costituito da oltre 10.000 domande a risposta multipla convalidate da operatori umani, il che lo rende una risorsa completa per la valutazione degli LLM in contesti di sicurezza informatica.
Il set di dati proviene da una vasta gamma di materiali autorevoli, inclusi standard open, linee guida del NIST, documenti di ricerca, libri disponibili al pubblico, RFC e altre pubblicazioni pertinenti. È stato generato utilizzando tecniche di retrieval-augmented generation (RAG), che combinano i punti di forza dei modelli di retrieval con capacità generative.
Inoltre, CyberMetric Dataset è stato sottoposto a un rigoroso processo di perfezionamento a più fasi, che ha coinvolto sia LLM che esperti umani e fornito dati di alta qualità, che riflettono in modo accurato le conoscenze attuali sulla sicurezza informatica.
Il set di dati è progettato per valutare la capacità di un LLM di comprendere e richiamare le informazioni in nove ambiti distinti della sicurezza informatica:
- Pianificazione del ripristino di emergenza e della continuità operativa
- Gestione delle identità e degli accessi (IAM)
- Sicurezza IoT
- Crittografia
- Sicurezza wireless
- Sicurezza della rete
- Sicurezza del cloud
- Test di penetrazione
- Conformità/audit
Il set di dati è disponibile in quattro diverse versioni: da 80, 500, 2.000 e 10.000 domande.
Cos'è InstructLab?
InstructLab è una piattaforma open source progettata da Red Hat e IBM per semplificare il processo di personalizzazione e allineamento degli LLM per domini specifici. Avvalendosi del metodo LAB (Large-scale Alignment for chatBots), consente di ottimizzare i modelli in modo efficiente riducendo al minimo l'input umano e le risorse di elaborazione necessari.
InstructLab ottiene questo risultato grazie all'apporto di conoscenze di tassonomia, alla generazione automatica di dati sintetici e al fine tuning dei modelli per comportamenti e attività specifici utilizzando approcci esperti. È possibile distribuire i modelli avanzati in locale utilizzando la CLI di ilab con backend come vLLM o llama.cpp.
A differenza dei tradizionali flussi di lavoro di fine tuning, InstructLab offre il supporto esclusivo per i contributi upstream e i miglioramenti continui della community. Indipendente dal modello, utilizza versioni regolarmente aggiornate di modelli open-weight come IBM Granite e Merlinite (derivati da Mistral).
Tipi di modelli valutati:
- Modelli Granite: si tratta degli LLM fondativi sviluppati da IBM. I modelli che terminano con la parola "instruct" sono appositamente addestrati per seguire le istruzioni e partecipare ad attività di conversazione o ragionamento.
- Modelli InstructLab: questi modelli sono il frutto delle attività di fine tuning della community. In genere, si basano su modelli fondativi come Granite, ma sono stati ulteriormente addestrati con gli strumenti e la metodologia InstructLab, con l'obiettivo di ottenere prestazioni generiche o incentrate su un dominio.
Perché abbiamo scelto questi modelli specifici?
I modelli scelti intendono fornire termini di confronto validi, in particolare rispetto alla classifica ufficiale di CyberMetric. La decisione di scegliere i modelli merlinite-7b-pt, granite-3.0-8b-lab-community, granite-3.0-2b-instruct e granite-3.0-8b-instruct è stata presa in base al periodo di rilascio del benchmark.
La nostra valutazione ha incluso i modelli IBM Granite 3.3 più recenti (granite-3.3-8b-instruct e granite-3.3-2b-instruct), permettendoci di mostrare l'evoluzione delle prestazioni dei modelli Granite.
Model serving tramite InstructLab
Tutti i modelli sono stati distribuiti in locale sulla VM RHEL AI utilizzando il comando ilab. Il processo prevede il download del modello e la successiva distribuzione:
ilab model download --repository ibm-granite/granite-3.3-8b-instruct --hf-token
Una volta completato il download, viene avviata la distribuzione:
ilab model serve --model-path ~/.cache/instructlab/models/ibm-granite/granite-3.3-8b-instruct --gpus 1
Mitigazione dei limiti di memoria della GPU
Abbiamo riscontrato un problema causato del nostro ambiente di configurazione limitato, che dispone di una sola GPU L4. Durante il model serving tramite InstructLab (che utilizza vLLM come backend), si è verificato un problema comune: alcune configurazioni di modelli causavano l'esaurimento della memoria della GPU dovuto a un valore max_position_embeddings troppo elevato. In particolare, diversi modelli avevano questo parametro impostato su '131072' nel file config.json, il che ha aumentato significativamente la memoria richiesta dalla cache key-value (KV) in vLLM, spesso risultante in errori di tipo out of memory (OOM).
Soluzione
Per risolvere questo problema abbiamo modificato manualmente il file config.json, impostando un valore più basso e più compatibile con l'hardware:
"max_position_embeddings": 4096
Questo valore definisce il numero massimo di token che il modello può gestire in una sequenza, in base alla codifica della posizione. Riducendo il valore a 4096, l'ingombro della memoria cache KV viene notevolmente ridotto, pur rimanendo sufficiente per il set di dati CyberMetric, che contiene domande a risposta multipla relativamente brevi. La rettifica del valore non incide sull'accuratezza del modello perché gli input degli scenari di utilizzo non superano la lunghezza del token.
Apportando questa modifica, siamo riusciti a distribuire correttamente i modelli senza instabilità o arresti anomali, eseguendo il processo di benchmarking senza intoppi sulla nostra configurazione a GPU singola.
Adattamento e perfezionamento dello script
Abbiamo adattato e perfezionato ulteriormente lo script di valutazione CyberMetric originale, inizialmente progettato per interagire con l'API OpenAI, per supportare il benchmarking con i nostri modelli distribuiti in locale tramite InstructLab. Le principali apportate sono state:
- Modifica del meccanismo di chiamata dell'API da openai.ChatCompletion.create a favore della libreria Requests.post per inviare le richieste HTTP direttamente all'endpoint del server vLLM locale esposto da InstructLab.
- Rimozione dell'autenticazione con chiave API, perché non era più necessaria per un server locale.
Per preservare l'integrità e la riproducibilità della metodologia di benchmark, abbiamo apportato solo alcune modifiche minime alla logica di base dello script CyberMetric originale. Tra le migliorie, anche l'introduzione di una configurazione dei parametri chiave non presente nella versione originale:
- Poiché lo script CyberMetric valuta i modelli di più provider (OpenAI, Qwen, Mistral, ecc.), la mancanza di un'impostazione di temperatura fissa potrebbe causare variabilità tra le esecuzioni, a seconda del comportamento predefinito di ciascun modello. La nostra modifica imposta esplicitamente la temperatura su 0.0 in modo che i risultati siano riproducibili e confrontabili su tutti i modelli testati.
Analisi e risultati del benchmarking
Nella nostra valutazione abbiamo utilizzato come base il set di dati del benchmark CyberMetric. Invece di affidarci esclusivamente alla classifica aggregata, abbiamo organizzato i risultati in base alle dimensioni del modello, raggruppando i modelli in classi di parametri comparabili (~2B, 7B e 8B). L'approccio consente un confronto equo e significativo valutando i modelli che rientrano nello stesso intervallo di capacità, evitando distorsioni dei risultati causate dalle differenze nella scala del modello. Per preservare l'integrità del confronto, abbiamo inoltre escluso tutti i modelli proprietari che non rivelano le dimensioni del modello.
Modelli con classe di parametri ~2B
Questa categoria include LLM con parametri da 1,5B a 2,7B.
Osservazioni
- Granite-3.3-2b-instruct si distingue come il modello leader in questa categoria, raggiungendo una accuratezza media pari a circa il 79%. Rispetto alla versione precedente, Granite-3.0 è nettamente superiore a tutti gli altri concorrenti e dimostra di essere stato perfezionato.
- Il passaggio da Granite-3.0 a Granite-3.3 fornisce un aumento medio dell'accuratezza pari a +1%, evidente soprattutto sulle scale più piccole (80 e 2.000 domande), il che suggerisce una migliore ottimizzazione delle istruzioni o dell'allineamento dei domini.
- Sebbene Qwen2.5-1.5B-Instruct mostri prestazioni accettabili, la minore accuratezza con i set di dati più grandi indica una comprensione inferiore degli argomenti inerenti alla sicurezza informatica.
- I modelli non instruct, come Qwen1.5-MoE e Phi-2 restano molto indietro, sottolineando il ruolo fondamentale dell'ottimizzazione delle istruzioni per questa attività.
Gemma-2b registra prestazioni insufficienti per tutti i set di dati e non sembra adatto per le attività di QA della sicurezza informatica senza un fine tuning significativo.
Modelli con classe di parametri 7B
Questa categoria include LLM con parametri 7B.
Modello LLM | Fine tuning delle istruzioni | Azienda | Dimensioni | Licenza | 80 D | 500 D | 2.000 D | 10.000 D |
Qwen2.5-7B-Instruct | ✔ | Qwen | 7B | Apache 2.0 | 92,50% | 89,20% | 87,45% | 83,56% |
Falcon3-7B-Instruct | ✔ | TII | 7B | Apache 2.0 | 91,25% | 85,60% | 84,25% | 80,72% |
Qwen2-7B-Instruct | ✔ | Qwen | 7B | Apache 2.0 | 91,25% | 84,40% | 82,00% | 78,75% |
Merlinite-7b-pt | ✔ | Instructlab | 7B | Apache 2.0 | 86,25% | 81,20% | 81,95% | 79,63% |
Mistral-7B-Instruct-v0.2 | ✔ | Mistral AI | 7B | Apache 2.0 | 78,75% | 78,40% | 76,40% | 74,82% |
Zephyr-7B-beta | ✔ | HuggingFace | 7B | MIT | 80,94% | 76,40% | 72,50% | 65,00% |
Gemma-1.1-7B-it | ✔ | 7B | Open | 82,50% | 75,40% | 75,75% | 73,32% | |
Qwen1.5-7B | ✘ | Qwen | 7B | Open | 73,75% | 70,10% | 69,96% | 65,17% |
Qwen-7B | ✘ | Qwen | 7B | Open | 68,42% | 64,08% | 63,84% | 54,09% |
DeciLM-7B | ✘ | Deci | 7B | Apache 2.0 | 56,55% | 56,20% | 53,85% | 51,32% |
Gemma-7b | ✘ | 7B | Open | 42,50% | 37,20% | 36,00% | 34,28% |
Osservazioni
- Merlinite-7b-pt si distingue come il modello più in linea con la community facendo registrare le migliori prestazioni rispetto ai principali leader, con un'accuratezza media superiore all'82%
. - Sebbene i modelli leader di settore, come Qwen2.5-7B-Instruct, siano eccellenti in termini di accuratezza complessiva, il divario con Merlinite-7b-pt si riduce notevolmente quando questo viene applicato a set di dati più grandi: Merlinite è migliore persino nel set di dati da 10.000 domande.
- I modelli non instruct come DeciLM-7B e Gemma-7B mostrano cali significativi delle prestazioni e non sono adatti per la sicurezza informatica senza un'estesa ottimizzazione.
Modelli con classe di parametri 8B
Osservazioni
- Granite-3.0-8b-instruct è al primo posto nella categoria 8B con un'accuratezza media dell'83,61% in tutti i set di dati CyberMetric. Le sue prestazioni rimangono coerenti e affidabili, registrando un calo inferiore al 3% da 80 domande a 10.000 domande, un livello fondamentale per il ragionamento negli scenari di sicurezza informatica con contesti lunghi
. - Rispetto a Granite-3.3-8b-instruct, la versione 3.0 mostra in media prestazioni leggermente superiori, nonostante esista una versione più recente. Mentre la versione 3.3 registra un vantaggio marginale nel set da 2.000 domande, registra un calo in quello da 10.000 (80,22%).
- Meta-Llama-3-8B-Instruct mostra prestazioni inferiori rispetto a entrambi i modelli Granite, in particolare nei set di dati su larga scala. Si riduce di oltre 10 punti percentuali nelle versioni da 80 a 10.000 domande, rivelando un adattamento al dominio più debole nonostante l'ottimizzazione delle istruzioni.
- I modelli base come Llama3-ChatQA-1.5-8B e Meta-Llama-3-8B ottengono scarsi risultati su tutta la linea, con un'accuratezza che si aggira rispettivamente intorno al 50% e al 37%. Ciò conferma che l'ottimizzazione delle istruzioni è fondamentale per i benchmark di tipo CyberMetric.
- Nel complesso, Granite-3.0/3.3-instruct offre i modelli di classe 8B più affidabili per le attività di sicurezza informatica, assicurando la massima accuratezza senza dipendere da API proprietarie e rendendoli molto adatti per i deployment in self-hosting.
Accesso agli script di valutazione e ai risultati dettagliati
A supporto della riproducibilità e di ulteriori analisi, abbiamo pubblicato un repository GitHub contenente:
- lo script di valutazione CyberMetric modificato e adattato per la distribuzione locale tramite InstructLab;
- i risultati non elaborati del benchmarking per tutti i modelli testati;
- una suddivisione delle domande con risposta errata per ciascun modello e dimensione del set di dati.
La risorsa consente ai lettori di esaminare gli errori specifici del modello e di comprendere meglio le differenze di prestazioni nel ragionamento in ambito di sicurezza informatica.
Conclusioni
I nostri test ci hanno permesso di riscontrare quanto segue:
Granite-3.3-2b-instruct è nettamente in testa alla categoria ~2B, stabilendo un benchmark per modelli compatti e ottimizzati per le istruzioni nel campo della sicurezza informatica. La sua capacità di mantenere le prestazioni su set di dati di dimensioni variabili utilizzando un numero inferiore di parametri rispetto a molti concorrenti lo rende un'opzione eccellente per gli ambienti con risorse limitate.
Merlinite-7b-pt è uno dei modelli 7B più bilanciati e resilienti al dominio. Sebbene non raggiunga il punteggio più alto, offre un valore eccezionale per i progetti della community che richiedono prestazioni di sicurezza informatica solide senza dipendenze proprietarie.
Granite-3.0 e 3.3 stabiliscono lo standard per i modelli 8B open source in termini di ragionamento sulla sicurezza informatica. Offrono una combinazione esclusiva di accuratezza, stabilità su più livelli di scalabilità e licenze open, il che li rende ideali per i deployment a costi contenuti. Rispetto alla concorrenza, i modelli Granite-8B offrono prestazioni all'avanguardia.
Prova prodotto
Red Hat Enterprise Linux | Versione di prova
Sull'autore
Altri risultati simili a questo
Resilient model training on Red Hat OpenShift AI with Kubeflow Trainer
Red Hat to acquire Chatterbox Labs: Frequently Asked Questions
Technically Speaking | Platform engineering for AI agents
Technically Speaking | Driving healthcare discoveries with AI
Ricerca per canale
Automazione
Novità sull'automazione IT di tecnologie, team e ambienti
Intelligenza artificiale
Aggiornamenti sulle piattaforme che consentono alle aziende di eseguire carichi di lavoro IA ovunque
Hybrid cloud open source
Scopri come affrontare il futuro in modo più agile grazie al cloud ibrido
Sicurezza
Le ultime novità sulle nostre soluzioni per ridurre i rischi nelle tecnologie e negli ambienti
Edge computing
Aggiornamenti sulle piattaforme che semplificano l'operatività edge
Infrastruttura
Le ultime novità sulla piattaforma Linux aziendale leader a livello mondiale
Applicazioni
Approfondimenti sulle nostre soluzioni alle sfide applicative più difficili
Virtualizzazione
Il futuro della virtualizzazione negli ambienti aziendali per i carichi di lavoro on premise o nel cloud