Введение
Представьте: вы скидываете десятки файлов в общую папку, а система сама предлагает, в какие подпапки их переместить. Не просто по имени, а с учётом ваших привычек и структуры. В ноябре 2021 года Dropbox выпустил функцию smart move — именно такую.
Под капотом — машинное обучение, человеко-ориентированный дизайн и куча интересных инженерных решений. Разбираем, как это работает и что полезного могут вынести для себя ML-инженеры. Затем сразу проверяем те же навыки на практике: квизы, пет-проекты и вакансии внутри IT Career Gym.
1. Зачем вообще понадобился smart move?
Файловый хаос — боль, особенно для администраторов и менеджеров команд. Ручное перемещение по одному файлу — это десятки кликов, постоянное переключение между папками и риск ошибиться. Dropbox решил попробовать автоматизировать рутину, но с одним жёстким условием: пользователь всегда остаётся в контроле.
Система предлагает варианты, показывает их в удобном интерфейсе, а человек уже решает — принять, отклонить или изменить. Такой подход называют human-in-the-loop (человек в цикле). Он идеален для экспериментов: можно быстро проверить гипотезу и увидеть реальную реакцию пользователей, не боясь сломать им привычный процесс.
Кстати, изначально функционал ограничили одной задачей: перемещение файлов из выбранной папки в её подпапки. Это сузило область поиска и упростило первую версию.
2. Что такое «организованная папка»? Спойлер: у каждого своё понятие
Самый сложный этап — даже не разработка ML-модели, а понимание пользователей. Организация файлов — штука глубоко личная. В ходе исследований пользователи говорили:
- «Я не доверяю другим трогать мои файлы»
- «Если что-то переместят не туда — я просто не найду»
При этом способы организации у всех разные:
| Тип организации | Пример |
|---|---|
| По темам | Все файлы по проекту «Рекомендации» — в папку Recommendations |
| По процессу | Папка Drafts содержит черновики, хотя в названиях файлов нет слова «draft» |
| По источнику | PDF-ки с конференции — в папке с названием конференции |
Мы понимали: одна модель не покроет все сценарии. Пришлось сужать фокус и выбирать приоритетные кейсы на основе исследований.
3. Конфиденциальность, поиск данных и скорость
- Конфиденциальность. Имена файлов — чувствительные данные. Инженеры не могут просто взять и посмотреть реальные названия. Для обучения использовали только внутренние данные Dropbox (с согласия сотрудников) и строгие протоколы изоляции.
- Поиск данных. Подходящие датасеты пришлось фильтровать вручную, отсеивая автогенерируемые папки от приложений — они не подходили под сценарий.
- Скорость. Рекомендации выдаются синхронно по запросу пользователя. Любая задержка ухудшает опыт, поэтому оптимизация латентности была критичной.
Те же ограничения встречаются на собеседованиях AI-инженера: приватность фич, синтетические лейблы и инференс «здесь и сейчас». Разбор — в гайде 45+ вопросов для AI-инженера.
4. Почему не сработала старая модель?
У Dropbox уже был прототип — модель suggested destinations, которая предсказывала папку для одного файла на основе недавней активности. Её попробовали использовать для smart move. И провалились.
Проблемы:
- Нестабильность — рекомендации менялись в зависимости от того, куда пользователь заходил до этого. Ожидаемость — важный фактор доверия.
- Непрозрачность — пользователи не понимали, почему модель предлагает именно эту папку. Они сами при организации смотрят в первую очередь на имена файлов и папок, а не на историю навигации.
- Отсутствие приоритетов — тестировщикам нужна была сортировка по уверенности: «высокая» — показываем сразу, «средняя» — во вторую очередь, «низкая» — скрываем.
Вывод: не стоит переиспользовать модель, если она была заточена под другую задачу, даже если они кажутся похожими. Прототип — дешёвый способ это проверить.
Проверьте, отличаете ли вы офлайн-метрику от UX
На IT Career Gym есть экспресс-квизы по AI / ML: эмбеддинги, ранжирование и почему тестовая точность врёт в проде. Быстрее лекции — и сразу видно пробелы. Рядом — гайд по MLOps, если хотите связать эксперимент с деплоем.
5. Как строили новую модель: данные — всему голова
Главный вопрос: где взять данные для обучения, если мы предсказываем то, чего ещё не случилось?
Решение оказалось элегантным: нашли в Dropbox папки, которые уже были организованы, и представили их как «идеальный конечный результат» после успешного smart move.
Пример структуры:
root
├── folder_A/
│ └── file_1.pdf
├── folder_B/
│ └── file_2.pdf
└── folder_C/
├── file_3.jpg
├── folder_D/
└── folder_E/
└── file_4.pdf
Из этой структуры сгенерировали обучающие пары: (файл, папка-кандидат, метка: 1 — правильная, 0 — нет). Так получили миллионы примеров из внутренних данных: сотрудники Dropbox активно пользуются своим же продуктом.
Какие сигналы использовали?
Искали минимальный набор признаков, который можно быстро вычислить на лету:
- Имя перемещаемого файла (с расширением)
- Имя каждой папки-кандидата
- Имена файлов и папок внутри каждого кандидата — «соседи» дают контекст (если в папке уже куча изображений, новый .png туда логичен)
Интересный момент: файлы-соседи часто дают больше информации, чем само имя папки. Папка может называться Finance, а внутри — w2.pdf, taxreturn_2020.pdf, charitable.jpg. Модель учится учитывать эту «внутреннюю атмосферу».
6. Архитектура модели (упрощённо)
- Токенизация — разбиваем имена файлов и папок на токены.
- Эмбеддинги — собственный энкодер на символьных и GloVe-эмбеддингах. Он учитывает семантику (tax и receipt близки) и типы файлов (.png, .jpg, .img — все картинки).
- Схожесть — матрицы сравнения для пар (файл → папка) и (файл → соседи).
- Признаки — базовая инженерия, иногда со штрафами для определённых типов.
- Глубокая сеть — менее 20 слоёв с dropout, обучена на внутренних данных.
На выходе — скор для каждой пары (файл, папка). Ранжируем, берём топ-1 как рекомендацию. Дополнительно отсекаем порогом уверенности: топ-20% — «высокая уверенность», следующие — «средняя», остальные не показываем.
Если собираете похожий ранжировщик в портфолио, оформите его как кейс в каталоге пет-проектов — рекрутеру важнее порог уверенности и UX, чем «ещё одна сетка».
7. Сравнение с эвристикой: кто победил?
Сравнили два подхода: простую меру схожести имён и описанную нейросеть.
Офлайн-оценка (на внутренних данных):
| Подход | Точность |
|---|---|
| Модель | 73% |
| Эвристика | 64% |
Здесь модель выигрывает. Но в онлайн-тесте с реальными пользователями картина изменилась:
| Метрика | Эвристика | Модель |
|---|---|---|
| Все рекомендации (принято) | 61% | 59% |
| Только с высокой уверенностью | 94% | 90% |
Почему эвристика вдруг обогнала модель? Скорее всего, переобучились на внутренних данных Dropbox, а реальные пользователи организуют файлы иначе. Но расстраиваться не пришлось: ту же модель потом успешно применили в других прототипах (например, браузерное расширение Save-to-Dropbox), где она показала себя лучше.
8. Что дальше? И что делать, если вы разрабатываете похожую систему
Два основных вывода:
- ML-ассистенты для организации перспективны, но только если сохранять контроль за пользователем. Не пытайтесь заменить человека — помогайте ему.
- Прототипирование — ваш лучший друг. Бросайте модель в руки реальным пользователям как можно раньше, чтобы выявить неочевидные проблемы.
Планы Dropbox на будущее: альтернативные UX-паттерны без перегрузки интерфейса и дообучение LLM для сравнения с текущей моделью. В 2021 году это было сложнее, а теперь вполне реально — особенно на неанглийских названиях файлов.
Инсайты для ML-инженеров
| Что поняли | Как применить |
|---|---|
| Данные — это боль | Синтетические датасеты из уже существующих структур — рабочий подход. |
| Переиспользование модели — риск | Если модель делали под другую задачу, проверяйте гипотезу через быстрый прототип. |
| Human-in-the-loop спасает | Даёт возможность экспериментировать без страха испортить UX. |
| Скорость важна | Если рекомендации грузятся долго — их никто не будет ждать. Оптимизируйте инференс с начала. |
| Офлайн ≠ онлайн | Всегда валидируйте на реальных пользователях, даже если тест идеален. |
Хотите закрепить это на практике? На IT Career Gym те же темы живут в квизах, пет-проектах и мэтчах с вакансиями — от эксперимента до мониторинга, как в статье про MLOps.
Часто задаваемые вопросы
Что такое Dropbox smart move?
Рекомендации, в какие подпапки переместить файлы из выбранной папки. Человек принимает, отклоняет или правит — не автопилот.
Почему не сработала suggested destinations?
Модель смотрела на недавнюю навигацию, а не на имена. Рекомендации прыгали, были непрозрачны и без порогов уверенности.
Почему эвристика обогнала нейросеть онлайн?
Офлайн модель была точнее, но внутренние данные не совпали с привычками внешних пользователей. Восприятие важнее сырой точности.
Что такое human-in-the-loop?
Система предлагает, человек решает. Так можно катить ML, не отбирая контроль над файлами и не ломая привычный процесс.
Заключение
Smart move — не «магия ИИ», а узкий сценарий, синтетические лейблы, быстрый инференс и честный онлайн-тест. ML-помощник работает, когда пользователь остаётся в цикле.
Если вы строите похожие системы, начните с прототипа, порога уверенности и метрики принятия — не только accuracy. Эти же вопросы ждут на собеседованиях и в вакансиях ML-инженера.
Попробуйте IT Career Gym на этом же треке
Соберите связку сильных кандидатов: квиз по ML → пет-проект с ранжированием → мэтч с вакансией → мок-интервью с партнёром. Регистрация бесплатная.