Ended 1 year ago
25 participants
3 submissions

Metric Learning for everything with Qdrant

Предлагаем научиться делать fine-tuning трансформеров для задачи metric learning, сделать работающий demo-проект с использованием векторного поискового движка Qdrant и внести вклад в open source.

O Qdrant и задаче

Qdrant - поисковый движок для эмбеддингов.
Он решает задачу хранения, обновления и быстрого поиска векторных представлений объектов (эмбеддингов).
Разворачивается в виде REST API сервиса по подобию ElasticSearch.
Необходимость работать с эмбеддингами возникает при разработке приложений, связанных с семантическим поиском, поиском похожих изображений. А также при использовании similarity(metric) learning подходов в, например, рекомендациях.

Для решения многих задач в NLP и не только хорошо подходят pre-trained трансформеры. Их можно использовать для задачи классификации, генерации текста, ответа на вопросы и, например, определения “логичности” высказываний.

Однако практически нету подробных туториалов и примеров по дообучению трансформеров для задачи semantic similarity, когда модель должна генерировать семантические эмбеддинги, которые можно использовать для определения похожести объектов.

Возникает естественное желание это исправить и показать на примере показать, что similarity learning - это естественный следующий шаг после обычных классификаторов, который может быть применен в production.

Что предлагаем сделать

  • Собрать или найти датасет, подходящий для задачи similarity matching, для которого можно использовать pre-trained модели. Это может быть каталог товаров в интернет-магазине, названия профессий, фото животных … пример задач, для которых применим metric learning можно найти тут. По-умолчанию предлагается использовать каталог yandex
  • Выбрать готовую предобученную модель, которую можно применить к задаче. Поиск можно начать тут 
  • Написать pipeline для дообучения модели под выбранную задачу + дополнительные баллы если используется какой-либо фреймворк для обучения моделей, а не велосипед. Еще больше баллов, если это Catalyst.
  • (Дополнительно) Реализовать типичные для metric learning компоненты в виде переиспользуемых классов. Например hard negative mining, различные loss-ы, специальные projection - слои и т.п.
  • Обернуть модель в простой сервис (например с FastAPI)
  • Загрузить вектора в Qdrant и научиться использовать векторный поиск вместе с моделью
  • Сделать простой web-интерфейс для demo
  • Написать статью с описанием полученного опыта и опубликовать ее

Участникам будет предоставлен пример работающего демо-приложения, использующего out-of-the-box модель, над улучшением качества которого также можно поработать.

Цель проекта - не получить наилучшую точность, а выработать best-practices по дообучению и использованию metric learning моделей.

Контакты и полезные материалы:

  • Андрей Васнецов - Отвечаю на все вопросы в slack @generall и telegram @generall93
  • Канал проекта #tool_qdrant
  • GitHub 
  • Step-by-step туториал по векторному поиску и Qdrant 
     

Cookies help us deliver our services. By using our services, you agree to our use of cookies.