Downloads · 30 days
5
11% of all-time downloads
AtesiT/bge-m3-int8-dynamic-quantized
bge-m3-int8-dynamic-quantized is a feature extraction model from AtesiT. Use it when you need embeddings to search or compare text. It is set up for sentence-transformers.
Динамически квантованная (torch.quantization.quantizedynamic) версия модели BAAI/bge-m3. Квантованы только линейные слои (nn.Linear) до INT8.
Downloads · 30 days
5
11% of all-time downloads
All-time downloads
47
Public
Repo size
1.4 GB
Likes
0
Public
Click a slice to open those files.
.pt1.4 GB · 99%
From the Hugging Face model README
Динамически квантованная (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-бэкенда.