"Ой-ой", - услышала я голос Джии из другого конца лаборатории.
"В чем дело?"
"Похоже, у нас возникла небольшая заминка. Ага... Google нас забанил".
"Что? Запрещено? Почему?"
"Очевидно, они ограничивают количество запросов, которые может подать один пользователь за определенный период. Около тысячи, насколько я могу судить".
"Как долго длится этот период?"
"Двадцать четыре часа. Он обнуляется в полночь. Это хорошая новость".
"Хорошо, как быстро мы сжигаем дневную норму?"
"Что ж, это плохие новости". Цзя поднял файл журнала и произвел мысленную арифметику. "Около девяти минут".
Уф.
Рост хранилища остановился. И это была не единственная наша проблема. Конвейер был карикатурно однобоким: наша коллекция необработанных изображений взрывалась, тысячи и тысячи добавлялись каждый день, пока Google не заблокировал нас, но лишь малая часть из них была точно промаркирована и организована. Мы с самого начала знали, что процесс маркировки будет узким местом, но по мере того, как проходили недели, нас постоянно удручало то, насколько тяжелым было это бремя.
Мы с Цзя встретились, чтобы обсудить этот вопрос, в столовой Mathey на территории кампуса - месте, на которое я стал полагаться, так как в связи с тем, что ImageNet завладел моим разумом, мысль о том, чтобы отвлечься на приготовление пищи, стала просто невыносимой. Кроме того, после стольких дней и ночей, проведенных в лаборатории, это была желанная смена обстановки: высокие потолки, деревенские люстры и витражи наводили на мысль, что мы нашли убежище в монастыре.
Мы проговорили каждый шаг, который выполняли наши маркировщики, чтобы определить, классифицировать и маркировать каждое изображение, упрощая его, где только можно, с помощью быстрых клавиш и специальных инструментов. Если процесс занимал три клика, Цзя находил способ сделать это за один. Меньше набора текста. Более короткие движения мышью. Все быстрее. Пока мы разговаривали, я поймал себя на том, что изучаю предметы на столе, молча размышляя, есть ли они среди наших двадцати двух тысяч категорий. Несомненно, там будет запись "салфетка", но различаем ли мы тканевые и бумажные салфетки? Что это был за нож? Сколько разновидностей может быть помимо, скажем, "ножа для стейка" и "ножа для масла"? "Мясницкие ножи", - предположил я. "Хлебные ножи"? Может быть. Их действительно было много, если подумать. А у нас они все есть? Я сделал мысленную заметку проверить, когда мы вернемся в лабораторию.
"Кстати, ты знаешь, что такое динамический IP, Фей-Фей?"
Еще один трюк в рукаве Цзя.
"Считайте, что это промежуточный шаг между нашими машинами и серверами Google. Наши лабораторные компьютеры остаются на месте, но динамический IP соединяет нас с посредниками, которые постоянно меняются, поэтому Google думает, что они поступают от разных пользователей".
"И это позволит нам не превысить лимит?"
"Далеко под ним".
Мы снова были в деле, по крайней мере в некоторой степени. Маркировка все еще оставалась проблемой, но мы с облегчением наблюдали за тем, как возобновляется поставка изображений кандидатов. Даже незначительные победы теперь стоило праздновать.
С течением месяцев ImageNet просочилась в мою душу, став линзой, через которую я видел почти все. Будь то работа в лаборатории или прогулка по площади, моя личная игра в визуальную идентификацию продолжалась. Если я видел, что кто-то выгуливает незнакомую мне породу собак, я задавался вопросом, не выделили ли мы для нее подкатегорию. Если бы я увидел студента, катающегося на одноколесном велосипеде, я бы задумался, есть ли вообще такая категория, не говоря уже о разных видах одноколесных велосипедов. Да и вообще, существуют ли разные виды одноколесных велосипедов? Гаражная распродажа, которую любил мой отец, стала моим миром. Все было раздуто до непостижимых масштабов, но дух был тот же - неутолимое любопытство, жажда новизны. Я задавался вопросом, есть ли в нашей семье такой ген.
Борьба продолжалась, каждый шаг делался в ответ на новую загадку. Когда мы обнаруживали, что изображения в той или иной категории слишком похожи друг на друга, тем самым уменьшая искомое разнообразие, мы использовали международные переводы WordNet, чтобы отправить запрос на разных языках в надежде, что изображения со всего мира будут более разнообразными. Когда мы не могли найти достаточно изображений, мы добавляли к поисковому запросу смежные термины, превращая "корги" в "щенок корги" или "собачий парк корги". А когда поисковые системы незаметно меняли макеты своих страниц результатов, тем самым изменяя расположение ссылок на каждое изображение и ломая одну из многочисленных программ автозагрузки Цзя, мы перепрограммировали их, чтобы они соответствовали, и стали регулярно проверять наличие таких изменений.