RedSage-Qwen3-8B-CFW is a cybersecurity-specialized Large Language Model (LLM) developed by [RISys-Lab]. It is the result of Continued Pre-training (CPT) on the CyberFineWeb corpus.
This model serves as the foundational stage of the RedSage pipeline. It takes the general-purpose Qwen3-8B-Base and adapts it to the cybersecurity domain using ~11.7 billion tokens of filtered, high-quality cybersecurity web data. To maintain general reasoning capabilities, it utilizes a data replay strategy with educational content.
Variant: CFW (CyberFineWeb Continued Pre-training)
Intended Use
This model is a base model intended for:
Further fine-tuning on downstream cybersecurity tasks.
Research into domain adaptation and continual pre-training dynamics.
Cybersecurity text completion and generation.
Note: As a base model, this checkpoint has not been instruction-tuned (SFT) or aligned (DPO). It behaves like a completion engine. For a chat-ready assistant, please see RISys-Lab/RedSage-Qwen3-8B-DPO.
Training Lineage
RedSage employs a multi-stage training pipeline. This model represents the output of Stage 1.
This model was trained on CyberFineWeb, a large-scale cybersecurity corpus constructed by filtering the FineWeb dataset (2013–2024).
Filtering: A ModernBERT-base classifier was trained on the Cybersecurity Topic Classification dataset to identify cybersecurity content within Common Crawl.
Dataset Size: The filtering process yielded ~125M documents (~89.8B tokens). We select the latest subset of ~11.7B tokens for this training stage.
General Knowledge Replay: To prevent catastrophic forgetting, we mixed the cybersecurity data with a 30% replay ratio of FineWeb-Edu samples.
Performance
RedSage-8B-CFW demonstrates improved performance over the general-purpose Qwen3-8B-Base on cybersecurity benchmarks while maintaining general capabilities.
Learning Rate: 2.5e-6 (constant with linear warmup)
Optimizer: AdamW
Epochs: 1
Usage
python
1from transformers import AutoTokenizer, AutoModelForCausalLM
23model_id ="RISys-Lab/RedSage-Qwen3-8B-CFW"45tokenizer = AutoTokenizer.from_pretrained(model_id)6model = AutoModelForCausalLM.from_pretrained(model_id, device_map="auto")78text ="The primary difference between a firewall and an IDS is"9inputs = tokenizer(text, return_tensors="pt").to("cuda")1011outputs = model.generate(**inputs, max_new_tokens=50)12print(tokenizer.decode(outputs[0], skip_special_tokens=True))
Citation
If you use this model or dataset, please cite our paper:
@inproceedings{suryanto2026redsage,
title={RedSage: A Cybersecurity Generalist {LLM}},
author={Naufal Suryanto and Muzammal Naseer and Pengfei Li and Syed Talal Wasim and Jinhui Yi and Juergen Gall and Paolo Ceravolo and Ernesto Damiani},
booktitle={The Fourteenth International Conference on Learning Representations},
year={2026},
url={https://openreview.net/forum?id=W4FAenIrQ2}
}