β
Войти Регистрация

ML-помощник для файлов: как Dropbox учил алгоритмы наводить порядок

Сюрреалистичная иллюстрация: гигантский глаз-ИИ над горами из бумаг и водопадами данных, двое людей с ноутбуком смотрят снизу
Файловый хаос, ИИ-надзор и человек в цикле: как Dropbox строил smart move

Введение

Представьте: вы скидываете десятки файлов в общую папку, а система сама предлагает, в какие подпапки их переместить. Не просто по имени, а с учётом ваших привычек и структуры. В ноябре 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. Архитектура модели (упрощённо)

  1. Токенизация — разбиваем имена файлов и папок на токены.
  2. Эмбеддинги — собственный энкодер на символьных и GloVe-эмбеддингах. Он учитывает семантику (tax и receipt близки) и типы файлов (.png, .jpg, .img — все картинки).
  3. Схожесть — матрицы сравнения для пар (файл → папка) и (файл → соседи).
  4. Признаки — базовая инженерия, иногда со штрафами для определённых типов.
  5. Глубокая сеть — менее 20 слоёв с dropout, обучена на внутренних данных.

На выходе — скор для каждой пары (файл, папка). Ранжируем, берём топ-1 как рекомендацию. Дополнительно отсекаем порогом уверенности: топ-20% — «высокая уверенность», следующие — «средняя», остальные не показываем.

Если собираете похожий ранжировщик в портфолио, оформите его как кейс в каталоге пет-проектов — рекрутеру важнее порог уверенности и UX, чем «ещё одна сетка».


7. Сравнение с эвристикой: кто победил?

Сравнили два подхода: простую меру схожести имён и описанную нейросеть.

Офлайн-оценка (на внутренних данных):

Подход Точность
Модель 73%
Эвристика 64%

Здесь модель выигрывает. Но в онлайн-тесте с реальными пользователями картина изменилась:

Метрика Эвристика Модель
Все рекомендации (принято) 61% 59%
Только с высокой уверенностью 94% 90%

Почему эвристика вдруг обогнала модель? Скорее всего, переобучились на внутренних данных Dropbox, а реальные пользователи организуют файлы иначе. Но расстраиваться не пришлось: ту же модель потом успешно применили в других прототипах (например, браузерное расширение Save-to-Dropbox), где она показала себя лучше.


8. Что дальше? И что делать, если вы разрабатываете похожую систему

Два основных вывода:

  1. ML-ассистенты для организации перспективны, но только если сохранять контроль за пользователем. Не пытайтесь заменить человека — помогайте ему.
  2. Прототипирование — ваш лучший друг. Бросайте модель в руки реальным пользователям как можно раньше, чтобы выявить неочевидные проблемы.

Планы 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 → пет-проект с ранжированием → мэтч с вакансией → мок-интервью с партнёром. Регистрация бесплатная.

Создать аккаунт → Экспресс-квиз Вакансии и стажировки

Рассылка

Подписываясь, вы соглашаетесь с Политика.