Решение осеннего хакатона 2024. Поиск дубликатов видео.
- OS
Linux
(протестировано наUbuntu 22.04.3 LTS
). - В зависимости от количества
instances
Моделей на бекендеTriton
требуется от 20 Gb свободной памяти. - Наличие
Docker-Compose
.
На данный момент FAISS-база, которая используется в текущем коммите, основана на тренировочном датасете из 2000 известных видео.
https://drive.google.com/drive/folders/1p7np_TsrfaDXSYIp7a-eJwMKar-ZMiKM?usp=drive_link
Из архива необходимо переместить модель model.pt
по пути ./duplicates/triton/models/video-embedder/1/model.pt
.
Это необходимо для корректной инициализациии Triton
-сервера.
docker compose up --build
Собираются основные контейнеры:
бекенд, фронтенд, тритон-сервер, веб-сервер и прочее.
Это занимает некоторое время, т.к. общая память, задействованная под контейнеры, около 15Gb.
docker-compose down
http://localhost/api/check-video-duplicate
Пример raw-body запроса:
{
"link": "https://s3.ritm.media/yappy-db-duplicates/b5f191e6-42e0-43f5-8773-560643de17fb.mp4"
}
Пример результата:
{
"is_duplicate": true,
"duplicate_for": "314d2988-eb85-4581-8416-da998e036afe"
}
Команды для локальной разработки
-
Локальная сборка проекта
make setup
-
Запуск тестирования
make tests
-
Запуск линтера кода
make lint
-
Справочная информация по всем командам
make help
Структура проекта
.
├── duplicates <--- Основной код
│ ├── backend <--- Бекенд
│ ├── triton <--- Triton-Бекенд
│ └── frontend <--- Фронтенд
├── data <--- Используемые данные
├── docker <--- Докер-файлы
├── docs <--- Документация
├── notebooks <--- Тестирование гипотез, ноутбуки
└── tests <--- Тесты