Система семантического поиска по видеоконтенту для онлайн-кинотеатра OKKO. По текстовому запросу на русском или английском языке система находит 5 наиболее релевантных видеофрагментов с точными таймкодами.
Решение создано в рамках Master Hackathon ML 2026 — кейс OKKO.
| Участник |
|---|
| Дмитрий Чекушкин |
| Роман Громов |
| Захар Ярославцев |
| Карина Маронова |
| Максим Клещенок |
| Рустам Сахабутдинов |
Лучший score на leaderboard: 0.429
0.429 в той же retrieval-family; leaderboard для этого probe ещё не зафиксированflowchart LR
A[Видео] --> B[Распознавание речи]
A --> B2[Распознавание текста на экране]
B --> C[Нарезка на фрагменты]
C --> D[Векторная индексация]
D --> E[Многоканальный поиск]
B2 --> E
E --> F[Top-5 фрагментов]
Работа системы разделена на два этапа.
Предобработка (выполняется один раз заранее):
Поиск:
Подробное описание архитектуры и каждого компонента: docs/architecture.md.
| Материал | Описание |
|---|---|
| Презентация (Figma) | Финальная презентация проекта |
| Презентация (PDF) | Локальная версия презентации |
| Видео-демо | Демонстрация работы интерфейса поиска |
| Интерактивное демо | Веб-интерфейс в стиле okko.tv (инструкция запуска) |
| Исследование данных (EDA) | Анализ датасета: 27 тематик, 4466 фрагментов, статистика и рекомендации |
| Техническая документация | Форматы данных, команды запуска, конфигурации |
| Архитектура и эксперименты | Подробное описание архитектуры, карта компонентов, журнал экспериментов |
| История версий v1–v4 | Документация предыдущих итераций разработки |
Система прошла 5 итераций разработки. Прогресс по leaderboard:
| Конфигурация | Leaderboard |
|---|---|
| Qwen3-Embedding-4B + Parakeet v3 + vLLM + memory + OCR + lexical | 0.429 |
| Qwen3-Embedding-4B + Parakeet v3 + vLLM | 0.39552 |
| Qwen3-Embedding-0.6B + Parakeet v3 | 0.36124 |
| multilingual-e5 + fixed windows 60s | 0.26580 |
| Ранний baseline | 0.15250 |
Полная таблица с локальными метриками и анализом экспериментов: docs/architecture.md.
# Установка зависимостей
uv sync
# Построение индекса (требуется GPU)
uv run python -m v5.cli index \
--corpus-root dataset/video-rag \
--prepared-transcripts dataset/audio_text_segments.parquet \
--transcript-strategy manifest \
--fragment-generation-strategy fixed_windows \
--retrieval-backend dense_flat \
--text-model-name output/models/Qwen3-Embedding-4B \
--text-encoder-backend vllm \
--trust-remote-code \
--text-batch-size 1 \
--text-max-seq-length 512 \
--text-device cuda \
--vllm-gpu-memory-utilization 0.70 \
--index output/index.pkl
# Поиск
uv run python -m v5.cli search \
--index output/index.pkl \
--query "парень раскинул руки на корабле"
# Генерация submission
uv run python -m v5.cli submit \
--index output/index.pkl \
--queries dataset/video-rag/test/test.csv \
--output output/submission.csv
Подробные инструкции и альтернативные конфигурации: docs/v5.md.
| Область | Технологии |
|---|---|
| ML-модели | Qwen3-Embedding-4B, GigaAM v3, Parakeet TDT 0.6B, multilingual-e5 |
| Инфраструктура | Python 3.12, vLLM, PyTorch, sentence-transformers, sherpa-onnx |
| Демо | React 19, TypeScript, Vite 8, Tailwind CSS |
| Инструменты | uv, ruff, ty, pytest |
v5/ — основной код системы (production)
demo/ — интерактивное веб-демо
presentation/ — презентация и видео-демо
docs/ — техническая документация
eda/ — исследование данных
dataset/ — данные (видео, аудио, транскрипты)
tests/ — тесты
v1/, v2/, v3/, v4/ — предыдущие итерации (архив)
Система семантического поиска по видеоконтенту для онлайн-кинотеатра OKKO. По текстовому запросу на русском или английском языке система находит 5 наиболее релевантных видеофрагментов с точными таймкодами.
Решение создано в рамках Master Hackathon ML 2026 — кейс OKKO.
| Участник |
|---|
| Дмитрий Чекушкин |
| Роман Громов |
| Захар Ярославцев |
| Карина Маронова |
| Максим Клещенок |
| Рустам Сахабутдинов |
Лучший score на leaderboard: 0.429
0.429 в той же retrieval-family; leaderboard для этого probe ещё не зафиксированflowchart LR
A[Видео] --> B[Распознавание речи]
A --> B2[Распознавание текста на экране]
B --> C[Нарезка на фрагменты]
C --> D[Векторная индексация]
D --> E[Многоканальный поиск]
B2 --> E
E --> F[Top-5 фрагментов]
Работа системы разделена на два этапа.
Предобработка (выполняется один раз заранее):
Поиск:
Подробное описание архитектуры и каждого компонента: docs/architecture.md.
| Материал | Описание |
|---|---|
| Презентация (Figma) | Финальная презентация проекта |
| Презентация (PDF) | Локальная версия презентации |
| Видео-демо | Демонстрация работы интерфейса поиска |
| Интерактивное демо | Веб-интерфейс в стиле okko.tv (инструкция запуска) |
| Исследование данных (EDA) | Анализ датасета: 27 тематик, 4466 фрагментов, статистика и рекомендации |
| Техническая документация | Форматы данных, команды запуска, конфигурации |
| Архитектура и эксперименты | Подробное описание архитектуры, карта компонентов, журнал экспериментов |
| История версий v1–v4 | Документация предыдущих итераций разработки |
Система прошла 5 итераций разработки. Прогресс по leaderboard:
| Конфигурация | Leaderboard |
|---|---|
| Qwen3-Embedding-4B + Parakeet v3 + vLLM + memory + OCR + lexical | 0.429 |
| Qwen3-Embedding-4B + Parakeet v3 + vLLM | 0.39552 |
| Qwen3-Embedding-0.6B + Parakeet v3 | 0.36124 |
| multilingual-e5 + fixed windows 60s | 0.26580 |
| Ранний baseline | 0.15250 |
Полная таблица с локальными метриками и анализом экспериментов: docs/architecture.md.
# Установка зависимостей
uv sync
# Построение индекса (требуется GPU)
uv run python -m v5.cli index \
--corpus-root dataset/video-rag \
--prepared-transcripts dataset/audio_text_segments.parquet \
--transcript-strategy manifest \
--fragment-generation-strategy fixed_windows \
--retrieval-backend dense_flat \
--text-model-name output/models/Qwen3-Embedding-4B \
--text-encoder-backend vllm \
--trust-remote-code \
--text-batch-size 1 \
--text-max-seq-length 512 \
--text-device cuda \
--vllm-gpu-memory-utilization 0.70 \
--index output/index.pkl
# Поиск
uv run python -m v5.cli search \
--index output/index.pkl \
--query "парень раскинул руки на корабле"
# Генерация submission
uv run python -m v5.cli submit \
--index output/index.pkl \
--queries dataset/video-rag/test/test.csv \
--output output/submission.csv
Подробные инструкции и альтернативные конфигурации: docs/v5.md.
| Область | Технологии |
|---|---|
| ML-модели | Qwen3-Embedding-4B, GigaAM v3, Parakeet TDT 0.6B, multilingual-e5 |
| Инфраструктура | Python 3.12, vLLM, PyTorch, sentence-transformers, sherpa-onnx |
| Демо | React 19, TypeScript, Vite 8, Tailwind CSS |
| Инструменты | uv, ruff, ty, pytest |
v5/ — основной код системы (production)
demo/ — интерактивное веб-демо
presentation/ — презентация и видео-демо
docs/ — техническая документация
eda/ — исследование данных
dataset/ — данные (видео, аудио, транскрипты)
tests/ — тесты
v1/, v2/, v3/, v4/ — предыдущие итерации (архив)