Image-Text-to-Text
Transformers
Safetensors
English
French
qwen3_5
unsloth
lora
qlora
cyber
vision
video
conversational
Eval Results (legacy)
Instructions to use nico248000000000/Qwen3.8-27B-cyber with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use nico248000000000/Qwen3.8-27B-cyber with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="nico248000000000/Qwen3.8-27B-cyber") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] pipe(text=messages)# Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("nico248000000000/Qwen3.8-27B-cyber") model = AutoModelForMultimodalLM.from_pretrained("nico248000000000/Qwen3.8-27B-cyber", device_map="auto") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] inputs = processor.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=40) print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use nico248000000000/Qwen3.8-27B-cyber with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "nico248000000000/Qwen3.8-27B-cyber" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "nico248000000000/Qwen3.8-27B-cyber", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker
docker model run hf.co/nico248000000000/Qwen3.8-27B-cyber
- SGLang
How to use nico248000000000/Qwen3.8-27B-cyber with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "nico248000000000/Qwen3.8-27B-cyber" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "nico248000000000/Qwen3.8-27B-cyber", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "nico248000000000/Qwen3.8-27B-cyber" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "nico248000000000/Qwen3.8-27B-cyber", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }' - Unsloth Studio
How to use nico248000000000/Qwen3.8-27B-cyber with Unsloth Studio:
Install Unsloth Studio (macOS, Linux, WSL)
curl -fsSL https://unsloth.ai/install.sh | sh # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for nico248000000000/Qwen3.8-27B-cyber to start chatting
Install Unsloth Studio (Windows)
irm https://unsloth.ai/install.ps1 | iex # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for nico248000000000/Qwen3.8-27B-cyber to start chatting
Using HuggingFace Spaces for Unsloth
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for nico248000000000/Qwen3.8-27B-cyber to start chatting
Load model with FastModel
pip install unsloth from unsloth import FastModel model, tokenizer = FastModel.from_pretrained( model_name="nico248000000000/Qwen3.8-27B-cyber", max_seq_length=2048, ) - Docker Model Runner
How to use nico248000000000/Qwen3.8-27B-cyber with Docker Model Runner:
docker model run hf.co/nico248000000000/Qwen3.8-27B-cyber
Upload Qwen3.8-27B_merged_16bit
Browse files- README.md +112 -12
- config.json +0 -3
- generation_config.json +1 -1
- model-00001-of-00018.safetensors +1 -1
- model-00002-of-00018.safetensors +1 -1
- model-00004-of-00018.safetensors +1 -1
- model-00005-of-00018.safetensors +1 -1
- model-00006-of-00018.safetensors +1 -1
- model-00008-of-00018.safetensors +1 -1
- tokenizer_config.json +3 -4
README.md
CHANGED
|
@@ -1,21 +1,121 @@
|
|
| 1 |
---
|
| 2 |
base_model: Qwen/Qwen3.8-27B
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
|
| 6 |
-
- unsloth
|
| 7 |
-
- qwen3_5
|
| 8 |
-
license: apache-2.0
|
| 9 |
language:
|
| 10 |
- en
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 11 |
---
|
| 12 |
|
| 13 |
-
#
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 14 |
|
| 15 |
-
-
|
| 16 |
-
- **
|
| 17 |
-
-
|
| 18 |
|
| 19 |
-
|
| 20 |
|
| 21 |
-
|
|
|
|
| 1 |
---
|
| 2 |
base_model: Qwen/Qwen3.8-27B
|
| 3 |
+
library_name: transformers
|
| 4 |
+
pipeline_tag: image-text-to-text
|
| 5 |
+
license: other
|
|
|
|
|
|
|
|
|
|
| 6 |
language:
|
| 7 |
- en
|
| 8 |
+
- fr
|
| 9 |
+
tags:
|
| 10 |
+
- unsloth
|
| 11 |
+
- lora
|
| 12 |
+
- qlora
|
| 13 |
+
- cyber
|
| 14 |
+
- image-text-to-text
|
| 15 |
+
- vision
|
| 16 |
+
- video
|
| 17 |
+
|
| 18 |
+
model-index:
|
| 19 |
+
- name: Qwen3.8-27B-cyber
|
| 20 |
+
results:
|
| 21 |
+
- task:
|
| 22 |
+
type: text-generation
|
| 23 |
+
name: Causal language modeling
|
| 24 |
+
dataset:
|
| 25 |
+
name: cyber SFT holdout
|
| 26 |
+
type: dataset_cyber.jsonl
|
| 27 |
+
metrics:
|
| 28 |
+
- type: loss
|
| 29 |
+
value: 0.741224
|
| 30 |
+
name: eval_loss
|
| 31 |
---
|
| 32 |
|
| 33 |
+
# Qwen3.8-27B-cyber
|
| 34 |
+
|
| 35 |
+
Instruction-tuned cybersecurity assistant (offensive, defensive, GRC, architecture, SOC/DFIR, RSSI).
|
| 36 |
+
|
| 37 |
+
| | |
|
| 38 |
+
|---|---|
|
| 39 |
+
| **Base model** | [`Qwen/Qwen3.8-27B`](https://huggingface.co/Qwen/Qwen3.8-27B) |
|
| 40 |
+
| **Domain** | cyber |
|
| 41 |
+
| **Method** | LoRA / QLoRA (Unsloth) · rank 8 · α 16 |
|
| 42 |
+
| **Quantization at train** | bf16 LoRA |
|
| 43 |
+
| **Context** | 2048 tokens |
|
| 44 |
+
| **Dataset** | `dataset_cyber.jsonl` · train 57718 / eval 584 |
|
| 45 |
+
| **GPU** | NVIDIA RTX PRO 6000 Blackwell Server Edition (95.0 GiB) |
|
| 46 |
+
| **Wall time** | 53.0 min |
|
| 47 |
+
| **Modalities kept** | vision, video |
|
| 48 |
+
|
| 49 |
+
This checkpoint continues a strong general model and specialises it on a curated SFT corpus of cybersecurity procedures: pentest / red team, SOC and DFIR, cloud and identity, GRC (ISO, NIST, NIS2, DORA), and RSSI / project-management questions. Answers are meant to be concrete (controls, detections, hardening), not generic essays.
|
| 50 |
+
|
| 51 |
+
|
| 52 |
+
## What changed vs the reference
|
| 53 |
+
|
| 54 |
+
Reference = the published base checkpoint [`Qwen/Qwen3.8-27B`](https://huggingface.co/Qwen/Qwen3.8-27B), plus the first in-run loss (LoRA ≈ 0 at step 0).
|
| 55 |
+
|
| 56 |
+
| Metric | Reference (base / first log) | This fine-tune | Δ |
|
| 57 |
+
|---|---:|---:|---:|
|
| 58 |
+
| Train loss (first → last logged) | 2.8025 | 0.1832 | -93.5% |
|
| 59 |
+
| Train loss (best) | — | 0.6627 | — |
|
| 60 |
+
| Eval loss (holdout, first → last) | 0.9783 | 0.7412 | -24.2% |
|
| 61 |
+
|
| 62 |
+
The **first logged train loss** is the closest in-run proxy for the base model (LoRA starts near zero). Option F, when executed, adds an independent holdout comparison against the frozen merged base.
|
| 63 |
+
|
| 64 |
+
|
| 65 |
+
## Training data
|
| 66 |
+
|
| 67 |
+
- File: `dataset_cyber.jsonl`
|
| 68 |
+
- Path used at train time: `/content/drive/MyDrive/finetuning/dataset_cyber.jsonl`
|
| 69 |
+
- Split: `0.01` holdout, seed 42
|
| 70 |
+
- Format: chat-templated SFT (`messages` / `instruction`+`output` / `### Instruction` + `### Response`)
|
| 71 |
+
|
| 72 |
+
## Training procedure
|
| 73 |
+
|
| 74 |
+
| Hyperparameter | Value |
|
| 75 |
+
|---|---|
|
| 76 |
+
| Epochs | 1 |
|
| 77 |
+
| Learning rate | 0.0002 |
|
| 78 |
+
| Warmup ratio | 0.05 |
|
| 79 |
+
| Device batch | 4 |
|
| 80 |
+
| Grad accum | 2 |
|
| 81 |
+
| Effective batch | 8 |
|
| 82 |
+
| Optim | adamw_8bit |
|
| 83 |
+
| Packing | True |
|
| 84 |
+
| LoRA targets | `['q_proj', 'k_proj', 'v_proj', 'o_proj', 'out_proj', 'gate_proj', 'up_proj', 'down_proj']` |
|
| 85 |
+
|
| 86 |
+
## Intended use
|
| 87 |
+
|
| 88 |
+
Authorized defensive work, tabletop exercises, control design, detection engineering, audit readiness, and explaining attack techniques **without** weaponized payloads.
|
| 89 |
+
|
| 90 |
+
**Out of scope:** Do not use it to attack systems you do not own, to generate exploit payloads, or as a substitute for a licensed auditor or incident commander.
|
| 91 |
+
|
| 92 |
+
## Multimodal
|
| 93 |
+
|
| 94 |
+
Kept towers: **vision, video**. Vision/audio layers were frozen during text SFT (vision=False, audio=False). Load the merged Transformers folder (or GGUF + `mmproj`) to keep image / video / audio.
|
| 95 |
+
|
| 96 |
+
|
| 97 |
+
## How to use
|
| 98 |
+
|
| 99 |
+
```python
|
| 100 |
+
from transformers import AutoModelForCausalLM, AutoTokenizer
|
| 101 |
+
import torch
|
| 102 |
+
|
| 103 |
+
repo = "nico248000000000/Qwen3.8-27B-cyber"
|
| 104 |
+
tok = AutoTokenizer.from_pretrained(repo, trust_remote_code=True)
|
| 105 |
+
model = AutoModelForCausalLM.from_pretrained(
|
| 106 |
+
repo, torch_dtype=torch.bfloat16, device_map="auto", trust_remote_code=True,
|
| 107 |
+
)
|
| 108 |
+
messages = [{"role": "user", "content": 'How do you design a reliable Zero Trust infrastructure? Answer with a concrete control list.'}]
|
| 109 |
+
inputs = tok.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt").to(model.device)
|
| 110 |
+
print(tok.decode(model.generate(inputs, max_new_tokens=256)[0], skip_special_tokens=True))
|
| 111 |
+
```
|
| 112 |
+
|
| 113 |
+
## Limitations
|
| 114 |
|
| 115 |
+
- Domain shift: quality drops outside the SFT topics.
|
| 116 |
+
- Eval above is **holdout loss** (and optional targeted checks). It is not a public leaderboard.
|
| 117 |
+
- The base model license and acceptable-use policy still apply.
|
| 118 |
|
| 119 |
+
## License
|
| 120 |
|
| 121 |
+
`other` — inherit and respect the license of `Qwen/Qwen3.8-27B`.
|
config.json
CHANGED
|
@@ -2,9 +2,7 @@
|
|
| 2 |
"architectures": [
|
| 3 |
"Qwen3_5ForConditionalGeneration"
|
| 4 |
],
|
| 5 |
-
"bos_token_id": null,
|
| 6 |
"torch_dtype": "bfloat16",
|
| 7 |
-
"eos_token_id": 248046,
|
| 8 |
"image_token_id": 248056,
|
| 9 |
"language_model_only": false,
|
| 10 |
"model_name": "Qwen/Qwen3.8-27B",
|
|
@@ -123,7 +121,6 @@
|
|
| 123 |
},
|
| 124 |
"tie_word_embeddings": false,
|
| 125 |
"unsloth_version": "2026.8.18",
|
| 126 |
-
"use_cache": false,
|
| 127 |
"video_token_id": 248057,
|
| 128 |
"vision_config": {
|
| 129 |
"deepstack_visual_indexes": [],
|
|
|
|
| 2 |
"architectures": [
|
| 3 |
"Qwen3_5ForConditionalGeneration"
|
| 4 |
],
|
|
|
|
| 5 |
"torch_dtype": "bfloat16",
|
|
|
|
| 6 |
"image_token_id": 248056,
|
| 7 |
"language_model_only": false,
|
| 8 |
"model_name": "Qwen/Qwen3.8-27B",
|
|
|
|
| 121 |
},
|
| 122 |
"tie_word_embeddings": false,
|
| 123 |
"unsloth_version": "2026.8.18",
|
|
|
|
| 124 |
"video_token_id": 248057,
|
| 125 |
"vision_config": {
|
| 126 |
"deepstack_visual_indexes": [],
|
generation_config.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
| 1 |
{
|
|
|
|
| 2 |
"do_sample": true,
|
| 3 |
"eos_token_id": [
|
| 4 |
-
248046,
|
| 5 |
248046,
|
| 6 |
248044
|
| 7 |
],
|
|
|
|
| 1 |
{
|
| 2 |
+
"bos_token_id": 248044,
|
| 3 |
"do_sample": true,
|
| 4 |
"eos_token_id": [
|
|
|
|
| 5 |
248046,
|
| 6 |
248044
|
| 7 |
],
|
model-00001-of-00018.safetensors
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
size 3966730552
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:ba0ce20aae489ad196733da5064bcdf159a1fe84f53336648196e1ebb7751b1c
|
| 3 |
size 3966730552
|
model-00002-of-00018.safetensors
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
size 3043080328
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:06a148c01bfbe3faa14a5f184a7ff29a706f7ae1c8b2705d2058e26d17a001fb
|
| 3 |
size 3043080328
|
model-00004-of-00018.safetensors
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
size 3988973152
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:511e34063187882659753c4d93f3859f93c019fd438d8813071921c81d9a3f1a
|
| 3 |
size 3988973152
|
model-00005-of-00018.safetensors
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
size 2099339864
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:635cb53446dc74f219740fc59e18b774f877b803b9722e289ca62575a6efa701
|
| 3 |
size 2099339864
|
model-00006-of-00018.safetensors
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
size 3979553696
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:0bc5214fac607f0e6cc92eec3789d4b8559410ef9fce66621ba8158e8410dae0
|
| 3 |
size 3979553696
|
model-00008-of-00018.safetensors
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
size 3979553696
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:7192c5b66185d3592927daabee1cc19e6f6e0ce75988ee20e824b624765fda79
|
| 3 |
size 3979553696
|
tokenizer_config.json
CHANGED
|
@@ -21,7 +21,7 @@
|
|
| 21 |
"vision_eos_token": "<|vision_end|>"
|
| 22 |
},
|
| 23 |
"pad_token": "<|endoftext|>",
|
| 24 |
-
"padding_side": "
|
| 25 |
"pretokenize_regex": "(?i:'s|'t|'re|'ve|'m|'ll|'d)|[^\\r\\n\\p{L}\\p{N}]?[\\p{L}\\p{M}]+|\\p{N}| ?[^\\s\\p{L}\\p{M}\\p{N}]+[\\r\\n]*|\\s*[\\r\\n]+|\\s+(?!\\S)|\\s+",
|
| 26 |
"processor_class": "Qwen3VLProcessor",
|
| 27 |
"split_special_tokens": false,
|
|
@@ -295,6 +295,5 @@
|
|
| 295 |
"normalized": false,
|
| 296 |
"special": true
|
| 297 |
}
|
| 298 |
-
}
|
| 299 |
-
|
| 300 |
-
}
|
|
|
|
| 21 |
"vision_eos_token": "<|vision_end|>"
|
| 22 |
},
|
| 23 |
"pad_token": "<|endoftext|>",
|
| 24 |
+
"padding_side": "left",
|
| 25 |
"pretokenize_regex": "(?i:'s|'t|'re|'ve|'m|'ll|'d)|[^\\r\\n\\p{L}\\p{N}]?[\\p{L}\\p{M}]+|\\p{N}| ?[^\\s\\p{L}\\p{M}\\p{N}]+[\\r\\n]*|\\s*[\\r\\n]+|\\s+(?!\\S)|\\s+",
|
| 26 |
"processor_class": "Qwen3VLProcessor",
|
| 27 |
"split_special_tokens": false,
|
|
|
|
| 295 |
"normalized": false,
|
| 296 |
"special": true
|
| 297 |
}
|
| 298 |
+
}
|
| 299 |
+
}
|
|
|