Python Community
13.1K subscribers
1.24K photos
26 videos
15 files
712 links
Python Community RU - СНГ сообщество Python-разработчиков

Чат канала: @python_community_chat

Сотрудничество: @cyberJohnny и @Sergey_bzd

РКН реестр:
https://knd.gov.ru/license?id=67847dd98e552d6b54a511ed&registryType=bloggersPermission
Download Telegram
⚡️ Загружаем видео с ютуб

youtube-dl
— интересный проект с открытым исходным кодом, позволяющий загружать видео с ютуба и других сервисов.

Устнаовка: pip install youtube-dl

Пользоваться утилитой можно из терминала с помощью команды youtube-dl url.

В python же просто импортируется модуль и создаётся класс для работы.

Если вам стало интересно, то рекомендуем посетить документацию.

#миниурок #youtube
🌟 Model2Vec: разработка компактных и быстрых моделей на основе Sentence Transformer.

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

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

Вот некоторые ключевые особенности:

🟢 Быстрая дистилляция, процесс создания модели занимает всего несколько минут.

🟢 Быстрый инференс, который в 500 раз быстрее на CPU по сравнению с оригинальной моделью.

🟢 Возможность использования любой модели Sentence Transformer с любым словарем (BYOM и BYOV).

🟢 Мультиязычность, требуется лишь мультиязычная модель в качестве источника.

🟢 Интеграция с 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

# Выбор модели Sentence Transformer
model_name = "BAAI/bge-base-en-v1.5"

# Дистилляция модели
m2v_model = distill(model_name=model_name, pca_dims=256)

# Сохранение модели
m2v_model.save_pretrained("m2v_model")

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

from model2vec import StaticModel

# Загрузка модели из HuggingFace hub или локальной.
model_name = "minishlab/M2V_base_output"
# Можно передать токен, если загружаете приватную модель
model = StaticModel.from_pretrained(model_name, token=None)

# Создание эмбеддингов
embeddings = model.encode(["It's dangerous to go alone!", "It's a secret to everybody."])

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

Набор моделей (https://huggingface.co/minishlab)
GitHub (https://github.com/MinishLab/model2vec)

(https://t.me/pythonl)

#AI #ML #LLM #Embedding #Model2Vec #python
@Python_Community_ru