bge-m3-quantized-int8

Динамически квантованная (INT8) версия BAAI/bge-m3, полученная с помощью torch.quantization.quantize_dynamic. Квантизации подвергнуты все линейные слои (torch.nn.Linear) модели, веса приведены к формату INT8.

Модель предназначена для инференса на CPU — динамическая квантизация PyTorch не даёт выигрыша на GPU.

Как модель была получена

import torch
from sentence_transformers import SentenceTransformer

base_model = SentenceTransformer("BAAI/bge-m3")
base_model.to("cpu")

quantized_model = torch.quantization.quantize_dynamic(
    base_model, {torch.nn.Linear}, dtype=torch.qint8
)

torch.save(quantized_model.state_dict(), "bge_m3_quantized.pt")

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

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

import torch
from huggingface_hub import hf_hub_download
from sentence_transformers import SentenceTransformer

# 1. Собираем ту же квантованную архитектуру
base_model = SentenceTransformer("BAAI/bge-m3")
base_model.to("cpu")
quantized_model = torch.quantization.quantize_dynamic(
    base_model, {torch.nn.Linear}, dtype=torch.qint8
)

# 2. Скачиваем и загружаем веса
weights_path = hf_hub_download(
    repo_id="VladimirRH/bge-m3-quantized-int8",
    filename="bge_m3_quantized.pt",
)
quantized_model.load_state_dict(torch.load(weights_path, map_location="cpu"))
quantized_model.eval()

# 3. Инференс
embeddings = quantized_model.encode(
    ["Пример текста для эмбеддинга"], normalize_embeddings=True
)

Датасеты, использованные для оценки

Результаты

Метрика Базовая модель (fp32) Квантованная модель (int8)
Размер модели (МБ) 2182.18 МБ 1299.08 МБ
Время инференса на 1000 текстов (сек) 169.17 сек 138.05 сек

Атрибуция

Все права на исходную модель принадлежат авторам BAAI/bge-m3 и связанным с ними исследователям и организациям. При использовании этой модели, пожалуйста, указывайте оригинальных авторов.

Ограничения

Динамическая квантизация применена только к линейным слоям; качество и скорость на других устройствах (GPU, mobile) не гарантируются и не тестировались.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for VladimirRH/bge-m3-quantized-int8

Base model

BAAI/bge-m3
Finetuned
(516)
this model