Facebook применяет ИИ для настройки веб-сервера
Facebook применяет искусственный интеллект для настройки производительности веб-сервера.
Искусственный интеллект (ИИ) используется в последние годы для настройки самого себя, так почему бы не использовать его для повышения производительности веб-сервера?
Этой точки зрения придерживаются исследователи в Facebook, которые в понедельник представили свои работы по настройке серверной инфраструктуры социальной сети.
Работы, подготовленные Бенджамина Лезам, Брайана Каррером, Гильерме Оттони, и Эйтана Бакши, это представлено в статье в журнале Байесовского анализа, а также обсудили в посте на Facebook ИИ научный блог.
Как и все Интернет-сервисы, Facebook выполняет так называемое A/B тестирование, чтобы оценить, насколько хорошо серверы работают при изменении той или иной переменной. Любой, кто видел различные версии веб-страниц, такие, как изменение внешнего вида кнопки, или макет текста, будет знаком с такого рода настройки. Настройки выполняются для оптимизации таких вещей, как переход по кнопкам или использование корзины, скажем, на коммерческом сайте.
В случае этого исследования ученые изменили параметры для jit-In-time компилятора, который преобразует Python в родной код сервера x86 внутри веб-сервера с открытым исходным кодом, который Facebook использует для обслуживания HTTP-запросов, » HipHop Virtual Machine.»
Например, JIT может быть настроен на выполнение таких операций, как ввод в строку данного блока кода. Такие корректировки могут сделать Размер кода больше, и поэтому A / B тестирование требуется для того, чтобы выяснить, стоит ли ускорять код, потребляя больше памяти сервера.
Авторы использовали подход под названием «Байесовский анализ» (Bayesian), форму машинного обучения, которая подчеркивает использование прошлой или предшествующей информации для оптимального решения. Байесовский анализ был использована в последнее десятилетие для оптимизации»гипер-параметров» машинного обучения, такие как какой размер пакета, или как скорость обучения.
Авторы Facebook использовали Bayesian для выполнения A / B тестов с настройками компилятора jit в различных положениях. Большим преимуществом является скорость. Поскольку тесты должны быть сделаны в рабочей среде для того, чтобы наблюдать за эффектами различных настроек, существует премия за то, чтобы тесты были сделаны быстро, чтобы двигаться вперед с изменениями на веб-сервере.
Авторы пишут, что по сравнению с типичным тестированием A / B, где одновременно тестируется одно изменение конфигурации, Байесовская оптимизация «позволила нам совместно настроить больше параметров с меньшим количеством экспериментов и найти лучшие значения.»
Ключевым здесь является слово «совместно»: Байесовские механизмы исключают определенные варианты конфигураций без фактического выполнения их в качестве теста A/B, экстраполируя из данного теста A / B на другие параметры, чтобы сузить число «возможных» конфигураций. Как говорят авторы этой обширной статьи, » тест значения параметра в непрерывном пространстве дает нам информацию не только о его результате, но и о близлежащих точек.»По мере проведения экспериментов Байесовская модель получает новые данные опыта, с помощью которых можно еще больше сузить поиск потенциально оптимальных конфигураций, поэтому все тестирование A/B может стать более эффективным по мере его продвижения.
Новый вклад этого исследования с Байесовской оптимизацией- это обработка шума. Авторы отмечают, что, в отличие от задачи оптимизации сетей машинного обучения, при тестировании настроек сервера в экспериментах A/B, существует много шума, как при измерении результатов тестовых серверов в реальном мире, так и при изменении настроек, а также «шумные» ограничения, имеют необходимость сохранения использования памяти на сервере в пределах разумного значения. Они придумали метод для решения таких шумов в своих Байесовских алгоритмах и пришли к выводу, что новый подход более легко создает оптимальные решения, чем другие виды Байесовских подходов.
С таким подходом к тестированию A / B примечательным является то, что некоторые конфигурации никогда не увидят свет дня: поскольку Байесовский анализ оптимизации предсказывает, какие конфигурации следует полностью исключить, он исключит эти переменные из тестирования. Авторы считают это преимуществом с точки зрения потенциального снижения суматохи, подвергая пользователей множеству различных экспериментов.