Ended 4 years ago
26 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 
     

Our website uses cookies, including web analytics services. By using the website, you consent to the processing of personal data using cookies. You can find out more about the processing of personal data in the Privacy policy