BGE-M3 — Dynamic INT8 Quantized

Динамически квантованная (torch.quantization.quantize_dynamic) версия модели BAAI/bge-m3. Квантованы только линейные слои (nn.Linear) до INT8.

Как загрузить и использовать

Так как safetensors не поддерживает сериализацию INT8-тензоров, веса сохранены через torch.save. Чтобы воспроизвести модель, нужно сначала создать такую же архитектуру и применить к ней квантизацию, а затем загрузить сохранённые веса:

import torch
from sentence_transformers import SentenceTransformer
from huggingface_hub import hf_hub_download

# 1. Создаём архитектуру той же базовой модели на CPU
base_model = SentenceTransformer("BAAI/bge-m3", device="cpu")

# 2. Применяем ту же процедуру динамической квантизации
quantized_model = torch.quantization.quantize_dynamic(
    base_model, {torch.nn.Linear}, dtype=torch.qint8
)

# 3. Скачиваем и загружаем квантованные веса
weights_path = hf_hub_download(repo_id="AtesiT/bge-m3-int8-dynamic-quantized", filename="pytorch_model_quantized.pt")
state_dict = torch.load(weights_path, map_location="cpu")
quantized_model.load_state_dict(state_dict)

# 4. Используем как обычную SentenceTransformer-модель
embeddings = quantized_model.encode(["Привет, мир!"], normalize_embeddings=True)

Результаты эксперимента (сравнение с базовой моделью)

Метрика Базовая модель Квантованная модель
Размер (МБ) 2182.18 1299.08
Время инференса, 1000 текстов (сек) 165.79 135.26
Recall@5 0.7552 см. Часть 4
Recall@10 0.8395 см. Часть 4

Предупреждение

Динамическая квантизация PyTorch оптимизирована для инференса на CPU. Использование модели на GPU не даст ускорения (и может вообще не работать), т.к. INT8 packed-веса поддерживаются только для CPU-бэкенда.

Downloads last month
24
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for AtesiT/bge-m3-int8-dynamic-quantized

Base model

BAAI/bge-m3
Finetuned
(516)
this model