TensorNet — это распределённая обучающая среда, построенная на основе TensorFlow и предназначенная для оптимизации в таких масштабных разреженных сценариях, как рекламные рекомендации. Цель TensorNet — предоставить разработчикам, использующим TensorFlow, возможность быстро и удобно обучать сверхбольшие модели с разреженными параметрами, превышающими сотни миллиардов.
В кластере, где доступны только процессоры, асинхронный режим обучения с использованием сервера параметров является самым быстрым способом обучения моделей. Архитектура асинхронного обучения TensorNet значительно отличается от архитектуры асинхронного обучения TensorFlow:
Основная оптимизация TensorNet заключается в минимизации встраивания модели.
Как показано на рисунке, для простейшей модели wide&deep, если в рекламной системе есть 3 миллиарда пользователей, необходимо определить матрицу внедрения размером 3 миллиарда измерений. Во время обучения модели необходимо выполнить операцию embedding_lookup на этой матрице размером 3 миллиарда, чтобы получить информацию о внедрении текущего пакета пользователей, а затем выполнить более сложные операции над внедрением.
Очевидно, что матрица внедрения слишком велика для разреженного сценария с высоким измерением, и она занимает много памяти. Когда признаков слишком много, одна машина не может вместить всю модель.
TensorNet заменяет большую матрицу внедрения, которая требуется в реализации TensorFlow по умолчанию, на меньшую матрицу, способную вмещать все данные в одном пакете.
На рисунке показано, что при размере batch_size, равном 1024, для признака userid в TensorNet требуется определить матрицу внедрения с размером, равным максимальному количеству пользователей в текущем пакете. Основные шаги обработки TensorNet во время обучения модели следующие:
Из вышесказанного видно, что благодаря значительному уменьшению размера матрицы внедрения, необходимой для модели, TensorNet может поддерживать почти бесконечное измерение разреженных признаков через сервер параметров, тем самым значительно улучшая способность модели к описанию.
Поскольку TensorNet изменяет только первый слой модели, вывод становится очень простым.
При использовании TensorNet для построения модели её можно разделить на две части, как показано на рисунке. Часть embedding_lookup_graph используется только во время автономного обучения, а часть inference_graph используется во время онлайн-вывода. Конкретные шаги см. в следующих документах: подготовка к выводу — разделение модели, развёртывание tf-графа в режиме онлайн с использованием XLA, экспорт разреженной матрицы внедрения признаков.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )