Devido ao rápido avanço dos Large Language Models (LLMs) e à crescente integração com fluxos de trabalho empresariais de importância crítica, eles devem ter a capacidade de raciocinar e dar respostas precisas sobre domínios e conhecimentos altamente especializados. Isso é ainda mais importante para a cibersegurança, uma área onde os riscos são altos e a precisão é crucial, mas, por ser dada como certeza, muitas vezes não é verificada. Portanto, é preciso avaliar o desempenho dos LLMs usando parâmetros de comparação específicos para cibersegurança que sejam realistas e de alta qualidade.

Neste post, avaliamos vários modelos do IBM GraniteInstructLab usando o CyberMetric Dataset, uma referência dedicada à avaliação do conhecimento em cibersegurança. Em nossa avaliação, usamos uma máquina virtual (VM) do Red Hat Enterprise Linux (RHEL) AI 1.3 que inclui o InstructLab e uma única GPU NVIDIA L4.

Comparamos os seguintes modelos:

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

Conjuntos de avaliação da CyberMetric usados

  • CyberMetric-80-v1.json
  • CyberMetric-500-v1.json
  • CyberMetric-2000-v1.json
  • CyberMetric-10000-v1.json
     

O que é o CyberMetric Dataset?

O CyberMetric Dataset é uma ferramenta de benchmark relativamente nova no domínio de cibersegurança. Composto por mais de 10.000 perguntas de múltipla escolha com validação humana, é um recurso abrangente para avaliar LLMs em contextos de cibersegurança.

O conjunto de dados é obtido de uma grande variedade de materiais confiáveis, incluindo padrões abertos, diretrizes do NIST, artigos, livros publicados, RFCs e outras publicações relevantes. Ele foi gerado usando técnicas de geração aumentada por recuperação (RAG), que combinam os pontos fortes dos modelos baseados em recuperação com recursos generativos.

Além disso, o CyberMetric Dataset passou por um processo rigoroso de refinamento em várias etapas. Envolvendo LLMs e especialistas humanos, o processo fornece dados de alta qualidade que refletem com precisão o conhecimento de cibersegurança do mundo real.

O conjunto de dados foi projetado para avaliar a compreensão e a recuperação de um LLM em nove domínios de cibersegurança:

  • Recuperação de desastres e plano de continuidade de negócios (BCP)
  • Gerenciamento de identidade e acesso (IAM)
  • Segurança de IoT (Internet of Things)
  • Criptografia
  • Segurança de conexões sem fio
  • Segurança de rede
  • Segurança em nuvem
  • Testes de invasão
  • Conformidade/auditoria

O conjunto de dados está disponível em quatro tamanhos: 80, 500, 2.000 e 10.000 perguntas.

O que é o InstructLab?

O InstructLab é uma plataforma open source desenvolvida pela Red Hat e pela IBM para simplificar o processo de personalização e alinhamento de LLMs para domínios específicos. Com base no método LAB (Large-scale Alignment for chatBots), é possível melhorar a eficiência dos modelos com o mínimo de intervenção humana e recursos de computação. 

Para isso, o InstructLab injeta conhecimento de taxonomia, automaticamente gerando dados sintéticos e ajustando os modelos a comportamentos e tarefas específicos com abordagens especializadas. Os modelos aprimorados podem ser disponibilizados localmente usando a interface de linha de comando (CLI) do ilab com backends como vLLM ou llama.cpp. 

O InstructLab tem um modo único de viabilizar as contribuições upstream e melhorias contínuas feitas pela comunidade, ao contrário dos tradicionais fluxos de trabalho de ajuste fino. Ele é independente e compatível com versões de modelos open-weight com atualizações regulares, como IBM Granite e Merlinite (derivado do Mistral).

 

Tipos de modelos comparados:

  • Modelos Granite: são os LLMs fundamentais desenvolvidos pela IBM. Os modelos terminados em "instruct" são adaptados especificamente para seguir instruções e participar de tarefas de conversação ou raciocínio.
     
  • Modelos do InstructLab: representam o ajuste fino realizado pela comunidade. Normalmente, são baseados em modelos fundamentais como o Granite, mas receberam treinamento adicional com as ferramentas e a metodologia do InstructLab. O objetivo deles é oferecer um bom desempenho em um contexto geral ou em domínios específicos.

 Por que esses modelos específicos foram usados?

Os modelos escolhidos visam oferecer um parâmetro de comparação relevante, especialmente em relação ao ranking oficial da CyberMetric. A seleção dos modelos merlinite-7b-ptgranite-3.0-8b-lab-communitygranite-3.0-2b-instructgranite-3.0-8b-instruct considera o período de lançamento da comparação. 

Nossa avaliação incluiu os modelos mais recentes do IBM Granite 3.3 (granite-3.3-8b-instructgranite-3.3-2b-instruct). Isso nos permite demonstrar a evolução do desempenho nos modelos Granite.

Model serving do InstructLab 

Todos os modelos foram disponibilizados localmente na VM do RHEL AI usando o comando ilab. O processo envolve fazer o download do modelo e depois disponibilizá-lo:

ilab model download --repository ibm-granite/granite-3.3-8b-instruct --hf-token 


Após o download, a disponibilização é iniciada:

ilab model serve --model-path ~/.cache/instructlab/models/ibm-granite/granite-3.3-8b-instruct --gpus 1


Como reduzir a limitação da memória da GPU

Como nosso ambiente de configuração é limitado, contendo apenas uma GPU L4, encontramos um problema. Durante o model serving com o InstructLab (que usa vLLM como back-end), algumas configurações do modelo causam o esgotamento da memória da GPU porque o valor de max_position_embeddings é grande demais. Em vários modelos, esse parâmetro está definido como "131072" no config.json, aumentando significativamente a memória usada pelo cache de chave-valor (KV) no vLLM. Muitas vezes, isso resulta em erros de falta de memória (OOM).

Solução:

Para resolver isso, modificamos manualmente o arquivo config.json para definir um valor menor e mais compatível com o hardware:

"max_position_embeddings": 4096

Esse valor define o número máximo de tokens que o modelo pode manipular em uma sequência com base na codificação da posição. A redução do volume da memória cache do KV para 4096 é significativa. Mas, como o conjunto de dados da CyberMetric apresenta perguntas de múltipla escolha relativamente curtas, ainda é possível executá-lo. A precisão do modelo não é afetada por esse ajuste, visto que as entradas de casos de uso não excedem o comprimento do token.

Com essa alteração, conseguimos disponibilizar os modelos sem instabilidade ou falhas, permitindo que o processo de comparação prossiga sem erros na configuração de GPU única.

 

Adaptação e aprimoramento de scripts

Para permitir a comparação dos modelos disponibilizados localmente via InstructLab, adaptamos e aprimoramos o script de avaliação original da CyberMetric, que foi projetado para interagir com a API do OpenAI. As principais modificações foram:

  • O mecanismo de chamada de API de openai.ChatCompletion.create para a biblioteca requests.post foi alterado para enviar solicitações HTTP diretamente ao endpoint do servidor vLLM local exposto pelo InstructLab
     
  • A autenticação de chaves da API foi removida, pois não era mais necessária para um servidor local

Para preservar a integridade e a capacidade de reprodução da metodologia de referência, fizemos poucas alterações na lógica central do script original da Cybermetric. Como parte do aprimoramento, também incluímos uma configuração de parâmetro importante que não existe na versão original:

  • Como o script da CyberMetric avalia modelos de vários provedores (OpenAI, Qwen, Mistral etc.), a falta de uma configuração de temperatura fixa pode levar à variabilidade nas execuções, dependendo do comportamento padrão de cada modelo. Nossa modificação define explicitamente a temperatura como 0,0 para os resultados poderem ser reproduzidos e comparados para todos os modelos testados.

Análise e resultados da comparação

Em nossa avaliação, usamos o conjunto de dados de referência da CyberMetric como base. Em vez de considerar somente o placar agregado, organizamos os resultados por tamanho do modelo, agrupando-os em classes de parâmetros comparáveis (~2B, 7B e 8B). Isso permite avaliar modelos com capacidade semelhante de maneira justa e significativa, evitando resultados distorcidos devido a diferenças na escala do modelo. Além disso, para preservar a integridade da comparação, excluímos todos os modelos proprietários que não divulgam seu tamanho.


Modelos de classe de parâmetros ~2B

Esta categoria inclui LLMs que variam de 1,5 B2,7 B

~2B parameter-class models

  Observações:

  • O modelo Granite-3.3-2b-instruct lidera essa categoria, alcançando a precisão média de quase 79%. Ele supera significativamente todos os outros concorrentes e demonstra melhorias em comparação com a versão anterior, o Granite-3.0.
     
  • O upgrade do Granite-3.0 para o Granite-3.3 aumenta a precisão média em +1%. Isso é perceptível principalmente em escalas menores (80 e 2 mil perguntas), sugerindo o melhor ajuste de instruções ou alinhamento ao domínio.
     
  • Embora o Qwen2.5-1.5B-Instruct tenha um desempenho satisfatório, a precisão reduzida em conjuntos de dados maiores indica um menor domínio das questões de cibersegurança.
     
  • Modelos sem instruções, como Qwen1.5-MoE e Phi-2, ficam muito para trás, reforçando a importância do ajuste de instruções para essa tarefa.
     
  • O Gemma-2b tem desempenho inferior em todos os conjuntos de dados e parece inadequado para tarefas de controle de qualidade de cibersegurança sem ajuste fino significativo.

    Modelos de classe de parâmetros 7B

Esta categoria inclui LLMs com parâmetros 7B

Modelo de LLM

Ajuste fino de instruções

Empresa

Tamanho

Licença

80 perguntas

500 perguntas

2 mil perguntas

10 mil perguntas

Qwen2.5-7B-Instruct

Qwen

7B

Apache 2.0

92,5%

89,2%

87,45%

83,56%

Falcon3-7B-Instruct

TII

7B

Apache 2.0

91,25%

85,6%

84,25%

80,72%

Qwen2-7B-Instruct

Qwen

7B

Apache 2.0

91,25%

84,4%

82%

78,75%

Merlinite-7b-pt

Instructlab

7B

Apache 2.0

86,25%

81,2%

81,95%

79,63%

Mistral-7B-Instruct-v0.2

Mistral AI

7B

Apache 2.0

78,75%

78,4%

76,4%

74,82%

Zephyr-7B-beta

HuggingFace

7B

MIT

80,94%

76,4%

72,5%

65%

Gemma-1.1-7B-it

Google

7B

Aberta

82,5%

75,4%

75,75%

73,32%

Qwen1.5-7B

Qwen

7B

Aberta

73,75%

70,1%

69,96%

65,17%

Qwen-7B

Qwen

7B

Aberta

68,42%

64,08%

63,84%

54,09%

DeciLM-7B

Deci

7B

Apache 2.0

56,55%

56,2%

53,85%

51,32%

Gemma-7b

Google

7B

Aberta

42,5%

37,2%

36%

34,28%

Observações:

  • Com o quarto melhor desempenho, o Merlinite-7b-pt é aprovado pela comunidade, com precisão média acima de 82%.
     
  • Embora modelos líderes como o Qwen2.5-7B-Instruct se destaquem na precisão geral, a diferença do Merlinite-7b-pt diminui consideravelmente em conjuntos de dados maiores. No cenário de 10 mil perguntas, o Merlinite supera o outro modelo.
     
  • Modelos sem instruções, como DeciLM-7BGemma-7B, apresentam quedas acentuadas no desempenho e não são viáveis para cibersegurança sem fazer ajustes extensivos.

Modelos de classe de parâmetros 8B

8B parameter-class models



Observações:

  • O Granite-3.0-8b-instruct lidera a categoria 8B, com precisão média impressionante de 83,61% em todos os conjuntos de dados da CyberMetric. O desempenho é consistente e confiável, exibindo uma queda de menos de 3% de 80 para 10 mil perguntas. Isso é essencial para o raciocínio em cenários de cibersegurança com contexto amplo.
     
  • Em comparação com o Granite-3.3-8b-instruct, a versão 3.0 é ligeiramente superior em média, apesar de não ser a mais recente. O 3.3 tem um desempenho um pouco acima da versão anterior no conjunto de 2 mil perguntas, mas cai no de 10 mil perguntas (80,22%).
     
  • O Meta-Llama-3-8B-Instruct tem desempenho inferior em relação aos dois modelos Granite, especialmente usando conjuntos de dados de grande escala. Ele cai mais de 10 pontos percentuais de 80 para 10 mil perguntas. Isso revela pior adaptação ao domínio, apesar do ajuste de instruções.
     
  • Modelos base, como o Llama3-ChatQA-1.5-8B e o Meta-Llama-3-8B, apresentam resultados insatisfatórios, com precisão de cerca de 50% e 37%, respectivamente. Isso indica que o ajuste de instruções é crucial para parâmetros de comparação como o da CyberMetric.
     
  • No geral, o Granite-3.0/3.3-instruct oferece os modelos de classe 8B mais confiáveis para tarefas de cibersegurança, com precisão de alto nível sem depender de APIs proprietárias e altamente adequados para implantações auto-hospedadas.

Acesso a scripts de avaliação e resultados detalhados

Para viabilizar a reprodução da avaliação e análises aprofundadas, publicamos um repositório do GitHub contendo:

  • O script de avaliação da CyberMetric modificado e adaptado para a disponibilização local via InstructLab.
  • Saídas brutas de todos os modelos testados com o parâmetro de comparação.
  • Detalhamento das respostas incorretas para cada tamanho de modelo e conjunto de dados.

Os leitores podem analisar casos de falha específicos de um modelo e entender melhor as diferenças no desempenho do raciocínio em cibersegurança.

Conclusão

Com base em nossos testes, descobrimos o seguinte:

O Granite-3.3-2b-instruct lidera visivelmente a categoria ~2B, tornando-se a referência para modelos compactos com instruções otimizadas no campo de cibersegurança. É uma excelente opção para ambientes com recursos limitados, pois mantém o desempenho com conjuntos de dados de tamanhos variados e usa menos parâmetros do que muitos concorrentes.

O Merlinite-7b-pt demonstrou ser um dos modelos 7B mais equilibrados e resilientes ao domínio. Embora não tenha a pontuação mais alta, oferece um valor excepcional para projetos orientados pela comunidade que precisam de um desempenho de cibersegurança sólido sem dependências proprietárias.

Os Granite-3.0 e 3.3são a referência em raciocínio de cibersegurança entre os modelos 8B open source. Eles oferecem uma combinação rara de alta precisão, estabilidade nas escalas e licenciamento aberto, sendo ideais para implantações econômicas. Em comparação com os concorrentes, os modelos Granite-8B oferecem desempenho quase de ponta.

Teste de produto

Red Hat Enterprise Linux | Teste da solução

Versão do Red Hat Enterprise Linux que orquestra recursos de hardware e é executada em sistemas físicos, na nuvem ou como um guest de hipervisor.

Sobre o autor

UI_Icon-Red_Hat-Close-A-Black-RGB

Navegue por canal

automation icon

Automação

Últimas novidades em automação de TI para empresas de tecnologia, equipes e ambientes

AI icon

Inteligência artificial

Descubra as atualizações nas plataformas que proporcionam aos clientes executar suas cargas de trabalho de IA em qualquer ambiente

open hybrid cloud icon

Nuvem híbrida aberta

Veja como construímos um futuro mais flexível com a nuvem híbrida

security icon

Segurança

Veja as últimas novidades sobre como reduzimos riscos em ambientes e tecnologias

edge icon

Edge computing

Saiba quais são as atualizações nas plataformas que simplificam as operações na borda

Infrastructure icon

Infraestrutura

Saiba o que há de mais recente na plataforma Linux empresarial líder mundial

application development icon

Aplicações

Conheça nossas soluções desenvolvidas para ajudar você a superar os desafios mais complexos de aplicações

Virtualization icon

Virtualização

O futuro da virtualização empresarial para suas cargas de trabalho on-premise ou na nuvem