TGViewer
Python/ django Python/ django @pythonl · 58.6K subscribers
Post #4572 10.3K
🌟 Model2Vec: создание компактных и быстрых моделей на основе Sentence Transformer.

Model2Vec - библиотека для создания компактных и быстрых моделей на основе предобученных Sentence Transformer моделей.

Model2Vec позволяет создавать эмбединг-модели слов и предложений, которые значительно меньше по размеру, но при этом сопоставимы по производительности с исходными Sentence Transformer моделями.

Отличительные особенности:

🟢быстрая дистилляция, процесс создания модели занимает несколько минут;

🟢быстрый инференс, в 500 раз быстрее на CPU относительно родительской модели;

🟢BYOM и BYOV, можно использовать на любой Sentence Transformer модели с любым словарем;

🟢мультиязычность, все что нужно - только мультиязычная модель в качестве источника;

🟢интеграция с Huggingface, загрузка\выгрузка моделей привычными from_pretrained и push_to_hub.

Пайплайн Model2Vec трехэтапный. На первом этапе словарь пропускается через модель Sentence Transformer для получения векторов эмбедингов для каждого слова.

Далее, размерность полученных эмбеддингов сокращается с помощью метода главных компонент (PCA). Наконец, применяется zipf-взвешивание для учета частотности слов в словаре.

Model2Vec работает в двух режимах:

🟠Output, в котором модель работает подобно Sentence Transformer, используя subword токенизацию;

🟠Vocab, в котором создается набор статических эмбедингов слов, аналогично GloVe или Word2Vec.

Оценку производительности Model2Vec делали на наборе данных MTEB на задачах PEARL (оценка качества представления фраз) и WordSim (оценка семантической близости слов).

Результаты показывают, что Model2Vec превосходит по производительности GloVe и модели, основанные на WordLlama по всем задачам оценки.

▶️Пример дистилляции:


from model2vec.distill import distill

# Choose a Sentence Transformer model
model_name = "BAAI/bge-base-en-v1.5"

# Distill the model
m2v_model = distill(model_name=model_name, pca_dims=256)

# Save the model
m2v_model.save_pretrained("m2v_model")


▶️Пример инференса:


from model2vec import StaticModel

# Load a model from the HuggingFace hub, or a local one.
model_name = "minishlab/M2V_base_output"
# You can optionally pass a token if you're loading a private model
model = StaticModel.from_pretrained(model_name, token=None)

# Make embeddings
embeddings = model.encode(["It's dangerous to go alone!", "It's a secret to everybody."])



📌Лицензирование : MIT License.


▪Набор моделей
▪GitHub


@pythonl

#AI #ML #LLM #Embedding #Model2Vec #python
  • ❤ 8
  • 👍 7
  • 🔥 4
More from @pythonl
  1. Oct 6, 2026🐍 Python Workers в Cloudflare вышли в GA Cloudflare официально сделала Python полноценным…
  2. Oct 6, 2026🎇Главная идея DevSecOps: безопасность перестаёт тормозить разработку. Вместо проверок «по…
  3. Oct 6, 2026🐍 Какая зависимость держит ваш Django на старой версии? django-upgrade-report читает зави…
  4. Oct 5, 2026🖥 Python-дайджест недели: PyPy 8 с Python 3.12, отладка None и фреймворки для агентов PyP…
  5. Oct 4, 2026🐍 Python тормозит? В 3.15 добавили инструмент, который покажет где Tachyon (`profiling.sa…
  6. Oct 2, 2026webAI выпустила TwIL-LM3-Pro - компактную модель на 3,66B параметров специально для формал…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →