Авторы:
Альфред Спектор (Alfred Spector) -- вице-президент отдела разработок и особых инициатив Google, Inc.
Питер Норвиг (Peter Norvig) -- директор по исследованиям в Google, Inc.
Слэйв Петров (Slav Petrov) -- ведущий научный сотрудник в Google, Inc.
Сотрудник Google Джеффри Дин рассказывает о файловой системе Google MapReduce и BigTable (фото Niall Kennedy)
В данной статье рассказывается о том, как в Google организованы исследования в области компьютерных технологий. Основное внимание уделено тому, как происходит интеграция между исследованиями и разработками, а также преимуществам и рискам подобного подхода.
Организация научно-конструкторской деятельности в области компьютерных технологий является довольно сложной задачей, вследствие постоянного расширения области знаний в самых различных направлениях. Компьютерные технологии объединяют в себе всевозможные аспекты математики, инженерных методов, а также эмпирические подходы современной науки. Эмпирические составляющие часто занимают лидирующие позиции, так как компьютерные системы, которые создаются в компании, становятся такими огромными, что аналитические методы уже не в состоянии правильно предсказать их свойства. Поэтому современные системы динамически подстраиваются под сложные потребности, они «обучаются» на больших наборах данных и огромном количестве интерактивных сессий, обеспечивающих обратную связь.
Следует иметь в виду, что компьютерные технологии являются постоянно расширяющейся сферой знаний, ядро которой (теория, операционные системы и т.п.) продолжает расти вглубь, тогда как периферия расширяется на соседние области, где получает новые приложения. Исследования в этой области проводят не только университеты, ими занимаются большие и малые компании. Способы распространения результатов исследований также эволюционируют. Рецензируемые журналы уже не имеют такой значимости, как раньше. Открытые источники, описания стандартных спецификаций, релизы данных и новые коммерческие системы устанавливают обновленные стандарты для всех остальных способов распространения получаемой информации, и приобретают все большую важность.
В данной статье приводится сравнение подхода Google к проведению исследований в области компьютерных технологий с тем, как это делают в других компаниях. Для начала, следует отметить, что в терминах Квадранта Пастера, исследования в компании строятся на «подсказанной опытом основе» и «исключительно прикладных» предпосылках. Buderi, Dodgson и другие, обсуждая информационные технологии, приходят к выводу, что в лабораториях производственных компаний исследования направляются строго на нужды создания того или иного продукта. Недавние статьи, такие как работы Leifer и др. или Enkel и др., наглядно демонстрируют, как компании проводят исследования и катализируют инновации.
Цели исследований, проводимых в Google, связаны с конкретной практической пользой для пользователей ее продуктов, и должны выполняться быстро. В большинстве случаев - в течение нескольких лет. В Google исследуются возможности всевозможных технических инноваций, а их внедрение связано с определенным риском, и может не принести ожидаемого результата. Некоторые исследования компании сосредоточены на полностью новых областях, но чаще всего целью является существенное улучшение того, что уже и так неплохо работает, но существует пространство для поиска новых подходов. В такой ситуации выяснение выполнимости научной идеи может стать серьезной задачей, но еще большие усилия потребуются для достижения реального успеха, или получения полезного отрицательного результата.
Исходя из временных рамок и прикладываемых усилий, Google выбирает итерактивный подход к исследованиям, с самого начала которых создается продукт или квази-продукт в виде строчек программного кода. Тут редко создаются исследовательские прототипы, так как их разработка задерживает запуск улучшенных сервисов для конечных пользователей. Как правило, одна и та же команда последовательно занимается исследованием фундаментальных идей, разработкой и поддержанием программного продукта, а также помогает управлять созданными сервисами Google. Все это основано на опыте из реального мира и конкретных данных. Подобное долгосрочное взаимодействие устраняет большинство рисков при переносе технологий из стадии исследований в разработку конечного продукта. Такой подход также помогает убедиться в том, что исследовательская работа принесла результат, полезный для пользователей Google, помогая отточить идеи до совершенства при их взаимодействии с эмпирическими данными и ограничениями реального мира. Ошибки же используются для вычленения важной информации и статистик, которые оказываются полезными при следующей попытке.
Миссия Google «Организовать всю информацию и сделать ее универсально доступной и полезной» как поддерживает, так и нуждается в инновациях практически в любой отрасли компьютерных технологий. Например, компания хочет «понять» намерения пользователей и суть документов, переводить их на другие языки с полной передачей смысла, и преобразовывать контент одного типа (скажем, изображения) в соответствующий контент другого типа (скажем, текст). Google является организацией, целиком устремленной на ускоренное инновационное развитие. Три аспекта технологий и бизнес-модель компании помогают ей в этом:
• Организация информации, собираемой со всего мира, требует большого запаса ресурсов. Дата-центры Google имеют богатый набор вычислительных алгоритмов и мощных процессоров, устройств хранения данных и сетевой коммуникации. Благодаря масштабированию достигается эффективность, и обходятся некоторые сложности гетерогенных вычислительных систем.
• Модель работы, основанная на службах, приносит значительные выгоды для исследований и разработок. Даже небольшая команда располагает мощью многих внутренних служб, позволяющих ей быстро создавать сложные и мощные продукты и сервисы. Разработка, тестирование, выпуск и поддержка процессов упрощены. Кроме того, модель, построенная на службах, особенно в тех областях, где участие пользователя является неотъемлемой составляющей, способствует проведению эмпирических исследований.
• Google удается нанимать талантливых людей для выполнения любых инженерных функций. Это позволяет заниматься инновациями практически везде, а люди могут переходить из проекта в проект, где у них есть возможность выступать или преимущественно исследователями, или преимущественно инженерами-разработчиками.
Устремленность Google на инновации, ее модель, построенная на сервисах и службах, большое сообщество пользователей, талантливая команда и эволюционирующая природа компьютерных технологий стали причиной появления «Гибридной модели исследований». В этой модели грань, разделяющая исследования и собственно инженерные разработки, размыта. Она побуждает команды к нахождению оптимального баланса между этими составляющими, с учетом того, что данный баланс может варьировать в очень широких пределах. В компании также поддерживают большую текучесть, в смысле, перемещения кадров и проектов в соответствии с изменением потребностей. Таким образом, даже в тех областях, где отношение количества исследователей к числу инженеров довольно велико, созданная «команда исследователей» формально не отделена от того, чем занимаются инженеры, как это сделано в других организациях, а работает в большой системе, выпускающей полезные продукты.
Когда в Google берутся за исследовательскую работу, там осознают наличие существенных рисков, но они оправдываются шансом получить значительный результат. Кроме того, исследования имеют потенциал оказать положительное влияние на весь мир, как через продукты и услуги Google, так и через академическое научное сообщество. Тут осознают, что распространение полученных фундаментальных результатов часто положительно отзывается на самой компании. В нее приходят более подготовленные кадры, появляются исследователи, возникают новые области деятельности.
Модель Google никогда не подразумевает организацию долгосрочной исследовательской работы: большие проекты «факторизируются» на краткосрочные компоненты, поддающиеся измерению. Преимущества подобного подхода выражаются в таких моментах, как мотивация команд (их члены видят прогресс, достигаемый за разумный промежуток времени) и потенциал для коммерциализации (до полного выполнения всех задач). Конечно, если работа не поддается факторизации, то приходится прибегать к долговременным проектам.
Например, в корпорации имеются большие многоуровневые системы (Google Translate, Chrome, Google Health), построенные на серьезной научной базе. Такие проекты требуют комплексного подхода и исследовательской работы (обнаружение на просторах всемирной паутины параллельных корпусов текста для Translate или построение комплексных систем безопасности для Chrome и Health). Вместе с тем, в последнее время Google продемонстрировала, что даже такие долговременные и открытые для пользователей проекты, как Google Health, компания не боится переориентировать, если видит, что поставленные задачи не достигаются.
Очевидно, что такой подход работает преимущественно за счет эволюционирующей природы компьютерных технологий, где крупные успехи обычно достигаются за счет значительного количества дискретных шагов. Если же очередной шаг требует несколько крупных прыжков в различных направлениях, то в компании признают, что лидеры, стремящиеся первыми достичь вершины, могут и провалиться. Поэтому среда Google структурирована таким образом, чтобы новые идеи могли не только обсуждаться, но и получить быструю проверку в ходе реализации крупномасштабных экспериментов, основанных на реальных данных.
Модель небольших команд выигрывает только при наличии служб, что позволяет нескольким инженерам создавать новые системы, пригодные для реального использования. Исследователи имеют возможность осуществлять эксперименты в таких масштабах, которые обычно недоступны для других научно-инженерных проектов. Вследствие этого, многие проекты становятся сразу доступными миллиардам пользователей. Естественно, это оказывает огромное влияние на то, как исследователи тратят свое время, балансируя между возможностью внести вклад в развитие служб Google и оказать воздействие на научное сообщество. Google приветствует оба типа воздействия, а наиболее успешные проекты достигают высоких результатов как в одном направлении, так и в другом.
Таким образом, в компании определили собственную гибридную модель исследований, направленную на получение научных знаний и разработку передовых продуктов в областях, важных для Google. Для достижения этого результата тут стараются факторизировать долговременные проекты (которые могут иметь комплексные цели) на дискретные, достижимые шаги (каждый из которых может иметь собственную коммерческую ценность). Везде, где только возможно, используются модели облачных вычислений и большие базы пользователей, что позволяет подтверждать практикой результаты исследований. В Google стремятся к достижению максимальной организационной гибкости, поддерживая как те проекты, которые позволяют развиваться идеям, свободным от текущих задач и проблем, так и требующим тесной интеграции с существующими продуктами; особое внимание уделяется распространению полученных знаний, с гибким использованием различных подходов.
1. В передовых проектах, где команды сфокусированы на создании продуктов, концентрируется высокий уровень креативности и новизны, изменяющих существующие подходы, и поэтому дающих новые научные результаты. Лидирующие и получившие наибольшее распространение проекты показывают, как могут размываться границы между научной и инженерной работой. Действуя в серьезных масштабах, команды разработчиков часто сталкиваются с совершенно новыми задачами, и, в ходе их решения, они получают новые научные знания. Организационно, эти исследования осуществляет та же команда, которая создает продукт. Наиболее успешными и нашумевшими примерами подобной работы являются системные инфраструктурные проекты, такие как MapReduce, Google File System и BigTable.
2. Результатом исследовательской работы может стать новый продукт или сервис. Второй группой примеров являются исследования, необходимость которых вытекает из работы сервисов, основанных на предыдущей исследовательской работе. Google Translate и Voice Search -- это хорошие примеры подобной работы. Облачная вычислительная инфраструктура позволила небольшим исследовательским командам построить системы, которые были развернуты впоследствии. Эта модель подходит для тех областей, где продолжение исследований помогает улучшать и расширять созданный продукт.
3. К следующему типу исследовательских проектов следует отнести создание совершенно новых концептов и технологий, которые впоследствии могут быть применены к уже существующим продуктам или службам. Это традиционная модель исследований и разработки. Успех Google в подобных исследовательских моделях происходит из наличия служб и использования для оценки результата реальных данных. Примером могут служить некоторые новые технологии распознавания личности по голосу и видеоизображению. Результаты исследований были проверены не только на малых испытательных выборках, но и в реальной работе на уровне готовых продуктов, которыми воспользовались инженеры из YouTube.
4. Объединенные исследовательские проекты, над которыми работают команды исследователей и ученых, а полученные результаты используют в своей работе инженеры. Высокая производительность многих продуктов Google основываются на принципиально новых алгоритмических решениях, в их создании принимают участие как инженеры, так и ученые. Примером такой модели взаимодействия может быть работа группы Market Algorithms в тесном контакте с разработчиками системы рекламы. Вместе они создавали, совершенствовали и анализировали работу базовых алгоритмов и экономических механизмов, используемых для отбора и оптимизации рекламных объявлений.
5. Исследовательские проекты, зародившиеся в командах разработчиков, и превращающие их в исследовательские группы. Эта модель является важным механизмом, используемым в том случае, когда реализация проекта требует больше времени или ресурсов, когда результат работы становится важным не только для конкретной команды разработчиков. Примером реализации подобной модели может быть создание в YouTube раздела "рекомендованные". Он берет свое начало из нескольких команд разработчиков, затем превратившихся в группу исследователей. Затем работа по разработке сервиса продолжилась, но основана она была уже на новых более глубоких алгоритмах.
Точно так же, как нельзя дать точное определение тому, чем в Google занимаются «исследователи», нельзя подобрать и точную меру «успешности». По мнению руководства компании, исследовательский проект успешен тогда, когда он способен оказать влияние на коммерческую составляющую ее деятельности или получить высокую оценку в академической среде. В идеале, успешный проект сочетает обе эти составляющие.
Коммерческую составляющую измерить проще. Компания получает выгоды за счет создания разнообразных высокотехнологичных систем. В их числе: распознавание речи, перевод, машинное обучение, маркетинговые алгоритмы, машинное зрение и многое другое.
Под оценкой в академической среде подразумевается влияние на сообщество ученых, другие компании или индустрию в области компьютерных технологий (в самом широком понимании этого термина). Естественно, этот тип воздействия традиционно оценивается по публикациям. Google публикует получаемые результаты со все возрастающими темпами (в 2003 г. было опубликовано 13 работ, в 2006 - 130, а в 2011 - 279). Некоторые работы получают высокое признание и часто цитируются.
Но в компании считают, что научные статьи являются далеко не единственным способом распространения знаний. Сотрудниками Google инициировано более 1000 open source проектов, содействовавших продвижению новых стандартов (например, редактор HTML5) или создающих сотни доступных любому API, помогающих получить доступ к службам компании. В некоторых случаях используется симбиоз различных каналов, запускаемый после опубликования основной статьи, описывающей какую-либо передовую идею (MapReduce, GFS, BigTable). После этого появляется открытый код, реализующий отдельные аспекты этой идеи (Protocol Buffers). Другие проекты сразу начинались, как open source инициатива. Наверное, Android и Chromium являются двумя наиболее известными примерами open source проектов Google, продемонстрировавших эффективность подобного подхода.
Технологические компании инвестируют в исследования по нескольким причинам, включая надежду на получение результатов, важных для создания новых продуктов и услуг фирмы, престижа и вклада в общественное достояние, а также снижения риска быть откинутым назад из-за того, что другие гораздо раньше станут обладателями технологических новинок.
Исследования в Google организованы таким образом, чтобы соединить их с разработкой продуктов. Тут организуются мощные команды, обеспеченные продуктивной инфраструктурой и большой базой пользователей. Это гарантирует получение не только передовых научных результатов, но и создание ценных коммерческих продуктов. Объединяя исследования и разработку, Google ставит перед собой цель минимизировать, или даже полностью ликвидировать традиционную технологию трансфера научных знаний, на которой основывается работа других компаний. В большинстве ее проектов одни и те же люди работают над технологией, начиная со стадии исследований, и заканчивая созданием конечного продукта. Такая интеграция, кроме всего прочего, гарантирует, что исследователи занимаются работой над действительными проблемами: исследуются реальные системы, с которыми взаимодействуют реальные пользователи. Гибкая организационная структура предоставляет работникам широкие возможности и оказывает позитивное воздействие на инновационную культуру, а также привлекает новые кадры.
Естественно, подобная тесная интеграция имеет и определенные риски. Будучи столь близко к пользователям и ежедневным заботам компании, команде легко втянуться в рутину и упустить возможность создания новых разработок. Для снижения этого риска Google поощряет взаимодействие с академическим сообществом, посредством всевозможных инициатив, таких как программа посещения факультетов, программа привлечения молодых специалистов или программа наград за результаты исследований на факультетах. Тут всячески побуждают к публикации результатов научных исследований, а иногда и ругают за недостаточную исследовательскую активность. Одной из причин этого является то, что исследователи в Google имеют разнообразные возможности для того чтобы заявить о своих достижениях, и публикация статей не является единственно возможным способом. В результате, сотрудники компании публикуют не так много статей, но то, что попадает в научную печать, может оказать серьезное влияние. В их работах описываются опыты, реализованные на хорошо протестированных и внедренных в практику системах, а не предлагаются пустые идеи.
Еще одним потенциально слабым моментом гибридной модели организации исследований является высокая вероятность лавинообразного нарастания исследовательской работы. Поэтому в компании стараются поддерживать смену парадигм, о чем свидетельствует наличие, среди прочих, проекта по созданию автономного средства передвижения Google Chauffeur.
Многие современные направления исследований в области компьютерных технологий имеют огромное значение для бизнеса Google, его технического руководства и сообщества пользователей. Компания создала собственную организационную модель исследований, позволяющую максимально сблизить науку и разработку продуктов. Благодаря этому создаются не только инновационные научные результаты и технологии, но и новые возможности для развития компании. Гибридный подход к организации исследований позволяет проводить эксперименты в тех масштабах, которые, как правило, недоступны в других научных проектах, а получаемые результаты имеют высокую значимость как в академической среде, так и для коммерческого воплощения. И хотя подобная гибридная модель основывается на отдельных компонентах, которые сейчас доступны только внутри самой Google, вероятно, она может оказаться интересной и для других технологических компаний.
Источник: Communications of the ACM
Перевод Александра Никитина
Комментарии