sentence similarity of topic names на английском, но их много. Пару десятков миллионов и мне нужен размер конечный, чтобы был tiny не больше 50 Мб.
Что подскажете?
Хотя проще взять all-MiniLM-L6-v2
Инструкции по обучению fasttext есть на сайте fasttext, или, альтернативно, на сайте gensim. Чтобы он был был маленький, нужно установить размерность вектора небольшую, и небольшой же размер словаря.
Я вот думал сделать квантование на 8 бит. Но чёт это дело пахнет каким-то олдскулом
Да не, нормально. Но квантование с 32 до 8 бит уменьшает размер в 4 раза, так что стандартный предлбученный FT у тебя ужмется только с 4гб до 1гб условно. Можно еще взять мой пакет compress-fasttext; он делает прунинг и pq-квантизацию, так что ту же модель он может ужать условно до 40мб с небольшой потерей качества и некоторым замедлением инференса
Как раз ваша статья на Хабре навеяла на эти мысли. В идеале своя Natasha 25 Мб, но не только новости 2019 г. 😩 На проде не бывает GPU, к сожалению, в большинстве случаев.
Ну rubert-tiny вроде на cpu работает довольно быстро, и для прода его можно экспортнуть в TorchScript или onnx
Ещё бы я добавил что есть проблема получения нулевых векторов для коротких слов. Этой проблемы нет у моделей размером с ~200Mb.
@northerden это для тебя инфа, имей ввиду
Там при прунинге можно указать свои тексты с частотами; тогда у частых слов будет приоритет на сохранение ненулевых векторов.
Обсуждают сегодня