Book a demo Start for free

Compare model versions

Model: RedHatAI/Qwen3.8-27B-INT4

Earlier snapshot Snapshot #50 Repository revision 2fb0deb (opens in a new tab) Recorded at 04 Sep 2026, 13:41 UTC Unchanged through 06 Sep 2026, 05:30 UTC
Later snapshot Snapshot #313 Repository revision bf08f3d (opens in a new tab) Recorded at 07 Sep 2026, 05:36 UTC Unchanged through 14 Sep 2026, 05:31 UTC

Summary

Licence

Unchanged

No change

Apache-2.0 Apache-2.0

PinDiff reports the declared licence and licence files. It does not interpret licence terms.

Evidence · Observed by PinDiff

Earlier
Snapshot #50 · revision 2fb0deb · Recorded at 04 Sep 2026, 13:41 UTC
Later
Snapshot #313 · revision bf08f3d · Recorded at 07 Sep 2026, 05:36 UTC
Source
Licence tag declared in the model card metadata, observed via the Hugging Face API; licence file hashes from the repository file manifest.

Weights

Changed

1 file changed

1 changed hash

Weight files
FileStatusBeforeAfter
model.safetensors CHANGED SHA256 (LFS) f078f51aed0c1dba613c1759487004ee06aba1a290606b6be125f59ab710959e 18.60 GB SHA256 (LFS) fd5c287e3a03f30b0e53fd5fe66ec90ab5fdd94807f7f8df699cca3ae9534910 18.60 GB (+3.9 KB)

Evidence · Observed by PinDiff

Earlier
Snapshot #50 · revision 2fb0deb · Recorded at 04 Sep 2026, 13:41 UTC
Later
Snapshot #313 · revision bf08f3d · Recorded at 07 Sep 2026, 05:36 UTC
Source
Weight file hashes and sizes from the repository file manifest (Git LFS SHA256 where available). Weight files are not downloaded.

Remote code / configuration

Changed

16 configuration values changed

Remote code No No

config.json Changed

Removed: - quantization_config.kv_cache_scheme: null
Added: + quantization_config.kv_cache_scheme.actorder: null
Added: + quantization_config.kv_cache_scheme.block_structure: null
Added: + quantization_config.kv_cache_scheme.dynamic: false
Added: + quantization_config.kv_cache_scheme.group_size: null
Added: + quantization_config.kv_cache_scheme.num_bits: 8
Added: + quantization_config.kv_cache_scheme.observer: "static_minmax"
Added: + quantization_config.kv_cache_scheme.observer_kwargs: []
Added: + quantization_config.kv_cache_scheme.scale_dtype: null
Added: + quantization_config.kv_cache_scheme.strategy: "tensor"
Added: + quantization_config.kv_cache_scheme.symmetric: true
Added: + quantization_config.kv_cache_scheme.type: "float"
Added: + quantization_config.kv_cache_scheme.zp_dtype: null
Removed: - quantization_config.version: "0.18.1.a20260806"
Added: + quantization_config.version: "0.18.1.a20260824"
Removed: - transformers_version: "5.14.1"
Added: + transformers_version: "5.16.1"

generation_config.json Changed

Removed: - transformers_version: "5.14.1"
Added: + transformers_version: "5.16.1"

Evidence · Observed by PinDiff

Earlier
Snapshot #50 · revision 2fb0deb · Recorded at 04 Sep 2026, 13:41 UTC
Later
Snapshot #313 · revision bf08f3d · Recorded at 07 Sep 2026, 05:36 UTC
Source
Stored config.json and generation_config.json at each revision (trust_remote_code / auto_map), and Python file hashes from the repository file manifest.

Access / gating

Unchanged

No change

Public Public

Evidence · Observed by PinDiff

Earlier
Snapshot #50 · revision 2fb0deb · Recorded at 04 Sep 2026, 13:41 UTC
Later
Snapshot #313 · revision bf08f3d · Recorded at 07 Sep 2026, 05:36 UTC
Source
Gated and private flags observed via the Hugging Face API.

Model card

Changed

Model card modified (4 sections)

Metadata (front matter) Changed Material section +1 −0

Diff

⋯ 6 unchanged lines
  - compressed-tensors
  - int4
  - conversational
Added: + - fp8
  license: apache-2.0
  pipeline_tag: image-text-to-text
  library_name: transformers

Before

base_model:
- Qwen/Qwen3.8-27B
tags:
- vllm
- llm-compressor
- qwen3_5
- compressed-tensors
- int4
- conversational
license: apache-2.0
pipeline_tag: image-text-to-text
library_name: transformers

After

base_model:
- Qwen/Qwen3.8-27B
tags:
- vllm
- llm-compressor
- qwen3_5
- compressed-tensors
- int4
- conversational
- fp8
license: apache-2.0
pipeline_tag: image-text-to-text
library_name: transformers
Evaluations Changed Material section +6 −5

Diff

  | Eval | Qwen/Qwen3.8-27B (BF16) | RedHatAI/Qwen3.8-27B-INT4 | Recovery (INT4/BF16) |
  | --- | --- | --- | --- |
Removed: - | gsm8k_platinum_cot_llama | 0.9589 | 0.9677 | 100.92% |
Removed: - | ifeval | 0.9187 | 0.9211 | 100.27% |
Removed: - | aime25 | 0.9375 | 0.9542 | 101.78% |
Removed: - | math_500 | 0.8360 | 0.8380 | 100.24% |
Removed: - | gpqa_diamond | 0.8923 | 0.8636 | 96.78% |
Added: + | gsm8k_platinum (strict-match) | 95.75% | 96.77% | 101.07% |
Added: + | ifeval (prompt-level strict) | 92.24% | 91.93% | 99.67% |
Added: + | mmlu_pro_chat (exact-match) | 84.46% | 83.45% | 98.81% |
Added: + | math_500 (pass@1) | 83.73% | 83.33% | 99.52% |
Added: + | gpqa_diamond (pass@1) | 89.23% | 87.88% | 98.49% |
Added: + | aime25 (avg@1, 8 seeds) | 95.42% | 94.17% | 98.69% |

Before

| Eval | Qwen/Qwen3.8-27B (BF16) | RedHatAI/Qwen3.8-27B-INT4 | Recovery (INT4/BF16) |
| --- | --- | --- | --- |
| gsm8k_platinum_cot_llama | 0.9589 | 0.9677 | 100.92% |
| ifeval | 0.9187 | 0.9211 | 100.27% |
| aime25 | 0.9375 | 0.9542 | 101.78% |
| math_500 | 0.8360 | 0.8380 | 100.24% |
| gpqa_diamond | 0.8923 | 0.8636 | 96.78% |

After

| Eval | Qwen/Qwen3.8-27B (BF16) | RedHatAI/Qwen3.8-27B-INT4 | Recovery (INT4/BF16) |
| --- | --- | --- | --- |
| gsm8k_platinum (strict-match) | 95.75% | 96.77% | 101.07% |
| ifeval (prompt-level strict) | 92.24% | 91.93% | 99.67% |
| mmlu_pro_chat (exact-match) | 84.46% | 83.45% | 98.81% |
| math_500 (pass@1) | 83.73% | 83.33% | 99.52% |
| gpqa_diamond (pass@1) | 89.23% | 87.88% | 98.49% |
| aime25 (avg@1, 8 seeds) | 95.42% | 94.17% | 98.69% |
Model Optimizations Changed +1 −1

Diff

  This model was obtained by quantizing the weights of [Qwen/Qwen3.8-27B](https://huggingface.co/Qwen/Qwen3.8-27B) to int4, ready for inference with vLLM.
Removed: - Weights are quantized to int4 with a group size of 128. Only the weights of the linear operators within transformer blocks are quantized using [LLM Compressor](https://github.com/vllm-project/llm-compressor). Vision tower and outputhead layers are kept in their original precision.
Added: + Weights are quantized to int4 with a group size of 128 and the KV Cache has been quantized to FP8. Only the weights of the linear operators within transformer blocks are quantized using [LLM Compressor](https://github.com/vllm-project/llm-compressor). Vision tower and outputhead layers are kept in their original precision.

Before

This model was obtained by quantizing the weights of [Qwen/Qwen3.8-27B](https://huggingface.co/Qwen/Qwen3.8-27B) to int4, ready for inference with vLLM.
Weights are quantized to int4 with a group size of 128. Only the weights of the linear operators within transformer blocks are quantized using [LLM Compressor](https://github.com/vllm-project/llm-compressor). Vision tower and outputhead layers are kept in their original precision.

After

This model was obtained by quantizing the weights of [Qwen/Qwen3.8-27B](https://huggingface.co/Qwen/Qwen3.8-27B) to int4, ready for inference with vLLM.
Weights are quantized to int4 with a group size of 128 and the KV Cache has been quantized to FP8. Only the weights of the linear operators within transformer blocks are quantized using [LLM Compressor](https://github.com/vllm-project/llm-compressor). Vision tower and outputhead layers are kept in their original precision.
Creation Code Changed +11 −3

Diff

  ```python
  import torch
Removed: - from compressed_tensors.quantization.quant_scheme import W4A16, QuantizationScheme
  from datasets import load_dataset
  from transformers import AutoProcessor, Qwen3_5ForConditionalGeneration
 
⋯ 13 unchanged lines
  recipe = [
  AWQModifier(duo_scaling="both"),
  GPTQModifier(
Removed: - targets="Linear",
Added: + targets="Linear",
  scheme="W4A16",
  ignore=[
  "re:visual.*",
⋯ 3 unchanged lines
  r"re:.*linear_attn\.in_proj_a$",
  r"re:.*linear_attn\.in_proj_b$",
  ],
Removed: - )
Added: + kv_cache_scheme={
Added: + "num_bits": 8,
Added: + "type": "float",
Added: + "symmetric": True,
Added: + "strategy": "tensor",
Added: + "dynamic": False,
Added: + "observer": "static_minmax",
Added: + },
Added: + ),
  ]
 
  NUM_CALIBRATION_SAMPLES = 512
⋯ 54 unchanged lines
  SAVE_DIR = MODEL_ID.rstrip("/").split("/")[-1] + "-INT4"
  model.save_pretrained(SAVE_DIR)
  processor.save_pretrained(SAVE_DIR)
Added: +
  ```

Before

```python
import torch
from compressed_tensors.quantization.quant_scheme import W4A16, QuantizationScheme
from datasets import load_dataset
from transformers import AutoProcessor, Qwen3_5ForConditionalGeneration

from llmcompressor import oneshot
from llmcompressor.modifiers.gptq import GPTQModifier
from llmcompressor.modifiers.transform.awq import AWQModifier
from llmcompressor.utils import load_context

MODEL_ID = "Qwen/Qwen3.8-27B"

# Load model.
with load_context(Qwen3_5ForConditionalGeneration):
    model = Qwen3_5ForConditionalGeneration.from_pretrained(MODEL_ID)
processor = AutoProcessor.from_pretrained(MODEL_ID)


recipe = [
    AWQModifier(duo_scaling="both"),
    GPTQModifier(
        targets="Linear", 
        scheme="W4A16",
        ignore=[
            "re:visual.*",
            "re:model.visual.*",
            r"re:.*lm_head",
            "re:.*embed_tokens$",
            r"re:.*linear_attn\.in_proj_a$",
            r"re:.*linear_attn\.in_proj_b$",
        ],
    )
]

NUM_CALIBRATION_SAMPLES = 512
MAX_SEQUENCE_LENGTH = 4096

ds = load_dataset(
    "mlabonne/open-perfectblend",
    split=f"train[:{NUM_CALIBRATION_SAMPLES}]",
)
ds = ds.shuffle(seed=42)

ROLE_MAP = {"human": "user", "gpt": "assistant"}


def preprocess_function(example):
    messages = [
        {
            "role": ROLE_MAP.get(msg["from"], msg["from"]),
            "content": [{"type": "text", "text": msg["value"]}],
        }
        for msg in example["conversations"]
    ]
    return processor.apply_chat_template(
        messages,
        tokenize=True,
        return_dict=True,
        add_generation_prompt=False,
        processor_kwargs={
            "return_tensors": "pt",
            "padding": False,
            "truncation": True,
            "max_length": MAX_SEQUENCE_LENGTH,
            "add_special_tokens": False,
        },
    )


ds = ds.map(preprocess_function, batched=False, remove_columns=ds.column_names)


def data_collator(batch):
    assert len(batch) == 1
    return {key: torch.tensor(value) for key, value in batch[0].items()}


# Apply quantization.
oneshot(

14 more lines not shown.

After

```python
import torch
from datasets import load_dataset
from transformers import AutoProcessor, Qwen3_5ForConditionalGeneration

from llmcompressor import oneshot
from llmcompressor.modifiers.gptq import GPTQModifier
from llmcompressor.modifiers.transform.awq import AWQModifier
from llmcompressor.utils import load_context

MODEL_ID = "Qwen/Qwen3.8-27B"

# Load model.
with load_context(Qwen3_5ForConditionalGeneration):
    model = Qwen3_5ForConditionalGeneration.from_pretrained(MODEL_ID)
processor = AutoProcessor.from_pretrained(MODEL_ID)


recipe = [
    AWQModifier(duo_scaling="both"),
    GPTQModifier(
        targets="Linear",
        scheme="W4A16",
        ignore=[
            "re:visual.*",
            "re:model.visual.*",
            r"re:.*lm_head",
            "re:.*embed_tokens$",
            r"re:.*linear_attn\.in_proj_a$",
            r"re:.*linear_attn\.in_proj_b$",
        ],
        kv_cache_scheme={
            "num_bits": 8,
            "type": "float",
            "symmetric": True,
            "strategy": "tensor",
            "dynamic": False,
            "observer": "static_minmax",
        },
    ),
]

NUM_CALIBRATION_SAMPLES = 512
MAX_SEQUENCE_LENGTH = 4096

ds = load_dataset(
    "mlabonne/open-perfectblend",
    split=f"train[:{NUM_CALIBRATION_SAMPLES}]",
)
ds = ds.shuffle(seed=42)

ROLE_MAP = {"human": "user", "gpt": "assistant"}


def preprocess_function(example):
    messages = [
        {
            "role": ROLE_MAP.get(msg["from"], msg["from"]),
            "content": [{"type": "text", "text": msg["value"]}],
        }
        for msg in example["conversations"]
    ]
    return processor.apply_chat_template(
        messages,
        tokenize=True,
        return_dict=True,
        add_generation_prompt=False,
        processor_kwargs={
            "return_tensors": "pt",
            "padding": False,
            "truncation": True,
            "max_length": MAX_SEQUENCE_LENGTH,
            "add_special_tokens": False,
        },
    )


ds = ds.map(preprocess_function, batched=False, remove_columns=ds.column_names)

22 more lines not shown.

8 other sections unchanged.

Evidence · Observed by PinDiff

Earlier
Snapshot #50 · revision 2fb0deb · Recorded at 04 Sep 2026, 13:41 UTC
Later
Snapshot #313 · revision bf08f3d · Recorded at 07 Sep 2026, 05:36 UTC
Source
README.md at each revision, stored by PinDiff. Sections are compared individually.
Stored file SHA256
f118a649da1ae1b19c7f28007562c74ef475338a115b7e39d2f818e6d627a761 → 16735beaf140b0026dcc1ced069608421ed7827edaad993a77a07bd101086560

Repository status

Changed

Repository revision moved

Earlier
Revision 2fb0deb (opens in a new tab) · 12 files · 19.47 GB
Later
Revision bf08f3d (opens in a new tab) · 12 files · 19.47 GB

A new revision does not by itself mean files changed; the categories above show what differs.

Evidence · Observed by PinDiff

Earlier
Snapshot #50 · revision 2fb0deb · Recorded at 04 Sep 2026, 13:41 UTC
Later
Snapshot #313 · revision bf08f3d · Recorded at 07 Sep 2026, 05:36 UTC
Source
Default-branch head commit observed via the Hugging Face API.

Files

Changed

2 other files changed

2 changed hash

Other files
FileStatusBeforeAfter
model.safetensors.index.json CHANGED Git blob ID 35296fa8d7d710762fec4b932fa15582375d3216 168.3 KB Git blob ID b4a12b678f3099fa2bfa26c3745ff25482806f7d 170.8 KB (+2.5 KB)
processor_config.json CHANGED Git blob ID 33818c7f9e991ad735fd240209f4fa73e6c28c50 1.2 KB Git blob ID 43c4343ec493f200e452f87a7c6649ecdfcce1ac 1.2 KB (+29 B)

Evidence · Observed by PinDiff

Earlier
Snapshot #50 · revision 2fb0deb · Recorded at 04 Sep 2026, 13:41 UTC
Later
Snapshot #313 · revision bf08f3d · Recorded at 07 Sep 2026, 05:36 UTC
Source
File hashes and sizes from the repository file manifest. Weights, licence, configuration, Python and model card files are covered above.

Evidence observed by PinDiff from the Hugging Face API and stored when recorded. PinDiff compares stored metadata, hashes and text files; it does not download weight files. Change events recorded between these snapshots