Джуд Канади, Калеб МакИрвин, Блейк Мартин, Ребекка Вегзнек и Джон О’Бойл

Компьютерные сети постоянно модифицируются, чтобы адаптироваться к постоянно меняющимся требованиям пользователей. Добавляются новые устройства, а устаревшие машины отправляются в чуланы для вечного сбора пыли. Если мы хотим понять эти динамические сети, эффективно отслеживать их и создавать для них надежные прогнозы, нам необходимо выбрать модели и алгоритмы машинного обучения, которые могут быстро адаптироваться к новым топологиям сетей и их соответствующим данным. Модели должны продолжать учиться с течением времени, если они хотят достичь приемлемой производительности после развертывания. В этой работе мы исследуем одно решение этой проблемы. Мы изучаем преимущества предварительного обучения эффективного преобразователя для повышения производительности прогнозирования в NetFlow v9, источнике метаданных, который фиксирует атрибуты высокого уровня и статистику сетевого трафика. Прогнозирование объема сетевого трафика может служить упреждающим подходом к управлению сетью, обеспечению оптимального распределения ресурсов и планированию задач в сети. Кроме того, модели, успешно предварительно обученные на крупномасштабных данных, поддерживают точную настройку с ограниченными источниками данных [2], что позволяет нам создавать детализированные прогнозы IP-IP, которые превосходят подходы к прогнозированию на уровне сети, которые обеспечивают аналогичные системы. сегодня.

Преимущества причинного обучения

Причинное обучение позволяет моделям машинного обучения (ML) использовать предыдущие элементы в последовательности для прогнозирования следующих значений этой последовательности. Например, при наличии входной последовательности текста, такой как Цвет спелой клубники такой, какое слово должно быть следующим? Что ж, любая приличная модель, обученная каузальным образом на текстовом корпусе, содержащем общую информацию, должна предсказывать красный в качестве ответа на этот вопрос. Впечатляющая производительность семейства моделей GPT [2] иллюстрирует эффективность этого подхода в сочетании с современными архитектурами нейронных сетей и крупномасштабными наборами данных. Для получения дополнительной информации по этой теме см. раздел Причинная предварительная тренировка в нашей предыдущей работе.

Но какое отношение это имеет к прогнозированию данных о сетевых потоках?

Сетевые данные, включая NetFlow v9, поступают последовательно, а это означает, что для этого варианта использования применяется каузальное обучение. Данные передаются между машинами в зависимости от активности хоста с течением времени. Мы можем предварительно обучить причинно-следственные модели на данных NetFlow, связанных с различными IP-адресами, чтобы прогнозировать будущую активность как на сетевом, так и на машинном уровне. Мы делим эти данные на файлы журналов, где каждый файл содержит все образцы NetFlow от одного IP-адреса источника до IP-адресов назначения. Модели обучаются на выровненных во времени последовательностях, взятых из этих файлов. При таком подходе модель должна научиться прогнозировать будущие функции NetFlow от IP-адреса источника до IP-адреса назначения, используя только небольшое приглашение ввода NetFlow.

Процесс создания прогнозов показан на Рис. 1, где модель, в нашем случае искусственная нейронная сеть (ИНС), использует подмножество функций NetFlow (количество байтов и количество пакетов) для создания прогнозов. . NetFlow с 0-го временного шага используется для прогнозирования значений на 1-м временном шаге. На 2-м временном шаге модель учитывает NetFlow с 0-го и 1-го временных шагов. Эта процедура продолжается до максимальной длины последовательности модели, когда элементы за пределами исторического окна модели удаляются из рассмотрения. Максимальная длина последовательности предотвращает громоздкую сложность памяти, и ее можно изменить, чтобы приспособить доступное оборудование для предварительного обучения и тонкой настройки. Однако более длинные последовательности должны привести к повышению производительности из-за увеличения контекста данных.

Точная настройка IP-IP

С нашей выбранной стратегией предварительного обучения мы можем точно настроить базовую модель для создания прогнозов от исходного IP-адреса до определенного целевого IP-адреса, что немного отличается от нашей задачи предварительного обучения по прогнозированию трафика от одного исходного IP-адреса ко всем его IP-адреса назначения. Мы выбрали эту нисходящую задачу, чтобы лучше проиллюстрировать адаптивную производительность предварительно обученной модели, поскольку она связана с задачей предварительного обучения, но не эквивалентна ей. Предварительно обученная модель, которая превосходит случайно инициализированную модель с эквивалентными гиперпараметрами, указывает на то, что стратегия предварительного обучения эффективна для изучения полезных представлений. Чтобы гарантировать, что этот процесс точной настройки не приведет к переоснащению для каждой пары, мы реализуем раннюю остановку, проверку несколько раз за итерацию и прекращаем точную настройку, если средняя потеря проверки не может уменьшиться после определенного количества шагов.

В некоторых случаях данные, доступные для тонкой настройки, могут быть ограничены. К счастью, это не проблема для предварительно обученных моделей, поскольку они могут повторно использовать функции и представления, полученные в результате предварительного обучения, для адаптации к областям с дефицитом данных. В нашем случае это происходит, когда у нас есть ограниченное количество выборок NetFlow для пары IP-адресов источника и назначения. Сетевая активность для этой пары может быть апериодической и кратковременной. Модели, обученные на основе инициализации случайных параметров, будут соответствовать распределениям данных с этих машин и генерировать неточные прогнозы. Предварительно обученные модели менее подвержены этим ошибкам, что подтверждается показателями производительности в следующем разделе.

Результаты IP-IP

Чтобы сгенерировать данные для этой задачи, мы перебираем журналы NetFlow v9, собранные в нашей корпоративной сети из 150 пользователей. Эти данные получены из проверочного набора на этапе предварительной подготовки, что означает, что модель не подвергалась воздействию каких-либо данных, используемых на этапе тонкой настройки или оценки. Мы используем инстанс AWS EC2 для всех экспериментов, и его технические характеристики приведены в таблице 1. Модели могут обновляться в течение максимум 200 итераций (небольшое количество по сравнению с большинством задач глубокого обучения) с использованием функции потерь среднеквадратичной ошибки (MSE), которая также использовалась при предварительном обучении. Случайно инициализированные модели часто достигают этой верхней границы, в то время как предварительно обученная модель редко требует полных 200 итераций. Размер пакета 8 используется во время обучения вместе с фиксированной скоростью обучения 0,0001, и мы используем раннюю остановку со значением терпения 20, чтобы избежать ненужных обновлений обучения.

Для наших экспериментов мы выбрали случайное подмножество из 68 исходных IP-адресов с разным объемом трафика. Из этих 68 мы оцениваем эффективность прогнозирования моделей не более чем для 10 целевых IP-адресов. Модели обусловливают строки до их максимальной длины последовательности, чтобы сгенерировать прогноз для следующей строки NetFlow. Форсирование учителя используется во всех конфигурациях модели, т. Е. Все входные строки поступают из исходных данных в виде скользящего окна, а не из прогнозов моделей. Мы исследуем три модели архитектуры: случайно инициализированный исполнитель [3], случайным образом инициализированную сеть с долговременной кратковременной памятью (LSTM) [5] и предварительно обученный исполнитель. Модели имеют примерно 6,3 миллиона обучаемых параметров, что обеспечивает сравнимую сложность моделей для различных архитектур. Случайно инициализированные версии служат в качестве элементов управления для измерения воздействия предварительной подготовки. Показатели производительности и среднее время тонкой настройки приведены в таблице 2. Время тонкой настройки представляет собой количество времени, необходимое для сходимости модели или достижения максимального количества итераций.

MSE проверочного набора указывает на то, что предварительное обучение NetFlow действительно повышает производительность для направленного прогнозирования данных IP-IP. В отличие от нашей предыдущей работы по предварительному обучению, функция потерь непротиворечива на этапах предварительного обучения и тонкой настройки. Вполне вероятно, что эта согласованность способствует способности модели приспосабливаться к новым парам IP-адресов источника и назначения. Что касается времени тонкой настройки, предварительно обученная модель имеет сокращение времени на 35% и 42% по сравнению со случайно инициализированными LSTM и Performer соответственно. Это сокращение обнадеживает, так как предполагает, что при дальнейших исследованиях модели можно быстро настроить в производственных условиях для создания специальных прогнозов. Время тонкой настройки, конечно же, зависит от доступного оборудования. Тем не менее, разработка API для передачи анонимного NetFlow поставщику облачных услуг с крупномасштабным передовым оборудованием может смягчить любые трудности, связанные с доступностью и обслуживанием ресурсов.

Мы также исследуем влияние длины последовательности на ошибку предсказания моделей как с принуждением учителя, так и без него. Модели прогнозирования часто страдают от компаундирования ошибок с течением времени, что означает, что ошибки, сделанные на предыдущих временных шагах, приводят к еще большим ошибкам на будущих временных шагах. При точной настройке модели с помощью учителя мы не столкнемся с этой проблемой, потому что истинные значения для каждого предыдущего временного шага вводятся в модель для прогнозирования следующего шага. Это обычная процедура для обучения последовательных авторегрессионных моделей. Однако с этой стратегией обучения для моделей прогнозирования существует потенциальная проблема: во время развертывания принуждение учителей невозможно. Модель не способна наблюдать истинные значения будущих временных шагов, потому что эти данные еще не поступили. Следовательно, модель должна использовать свои собственные прогнозы в качестве оценок значений признаков на будущих временных шагах. Результаты этого расхождения при обучении показаны на Рис. 2 для набора из 205 пар исходных и конечных IP-адресов. Ошибки прогнозирования относятся к разделению проверки для каждого IP, что означает, что модели не обучались на этих данных.

При использовании принуждения учителя модели могут полагаться на стратегию обучения, чтобы предоставить истинные предыдущие значения для следующего прогноза. В этом случае график следует тенденции, описанной показателями производительности в таблице 1, т. е. предварительно обученный исполнитель превосходит другие архитектуры по минимизации ошибок. Однако на нижнем графике рис. 2, который иллюстрирует прогнозы модели, созданные без вмешательства учителя, обнаруживается интересная тенденция. По мере увеличения длины входной последовательности ошибка прогнозирования для предварительно обученного исполнителя существенно увеличивается, в то время как ошибка прогнозирования для случайно инициализированного исполнителя и LSTM остается примерно неизменной. Предварительно обученный Performer фактически превосходит обе модели для более коротких длин последовательностей, но в конечном итоге ошибки в его прогнозах накапливаются, что в конечном итоге приводит к тому, что его прогнозы отдаляются от истинных значений.

Итак, что может быть причиной этого? Мы связываем это явление со сдвигом распределения и подозреваем, что предварительно обученная модель переобучает распределение, используемое для тонкой настройки IP-IP. Предварительно обученная модель быстро сходится к обучающему распределению, которое не является репрезентативным для распределения, которое она увидит во время развертывания, опять же из-за невозможности принуждения учителя в этой настройке. Простая стратегия борьбы с таким поведением состоит в том, чтобы обучать модель без принуждения учителя во время тонкой настройки или использовать принуждение учителя только для определенного процента пакетов. Мы планируем изучить влияние этой измененной процедуры обучения на производительность развертывания в будущей работе.

Визуализация прогнозов

В этом разделе мы проверяем прогнозы моделей для одного IP-адреса источника и IP-адреса назначения с помощью линейных графиков. Сравнивая прогнозы с реальными данными NetFlow, мы можем проанализировать эффективность моделей после развертывания. Однако следующие графики, очевидно, не дадут репрезентативного представления о возможностях моделей, учитывая, что данные относятся только к одной паре IP-адресов источника и назначения.

Для построения графика мы генерируем 1000-шаговый прогноз для двух функций NetFlow: количества байтов и количества пакетов. Гиперпараметры точной настройки аналогичны параметрам, описанным в разделе Результаты IP-to-IP. Модели не подвергались воздействию этих данных во время предварительного обучения, поэтому у них нет предыдущего опыта, и они должны научиться быстро адаптироваться. Мы не принуждаем учителя генерировать последующие прогнозы, т. е. прогнозы моделей объединяются с входными данными, а затем вводятся в модель для генерации будущих прогнозов. Это более реалистичный сценарий, поскольку мы хотим предсказать будущие значения за пределами одного шага в будущее в настройках развертывания.

Каждая модель может наблюдать 511 предыдущих выборок, чтобы предсказать следующую точку. Это значение определяется гиперпараметром максимальной длины последовательности, который мы объявили для каждой модели. Этот процесс аналогичен подсказкам, используемым в обработке естественного языка (NLP). Для первой итерации все входные выборки берутся из реальных данных. Окно кондиционирования для этой итерации находится между красной (начало исторического окна) и зеленой (начало прогноза) горизонтальными полосами на рисунках 2, 3 и 4. После каждой итерации это окно сдвигается вперед на один временной шаг, чтобы включить прогнозы из предыдущих итераций. Этот процесс повторяется до тех пор, пока мы не получим 1000 желаемых прогнозов.

На каждом графике синяя линия представляет наблюдаемое (истинное) значение для каждой функции, а оранжевая линия представляет прогноз. Более светлые оранжевые области (увеличение рисунков) действуют как псевдодоверительные интервалы для прогнозируемых значений, которые могут дать представление об отклонении прогнозов от модели. Мы генерируем их, оставляя отсев активным во время вывода, и выполняем многократный проход по модели с входными данными (для этих графиков было выполнено четыре прохода). Если этот доверительный интервал не требуется для приложения конечного пользователя, можно использовать среднее значение прогнозов или один проход по сети без исключения, чтобы уменьшить прогноз до одного значения.

Рисунок 3 содержит прогнозы для случайно инициализированного LSTM. Для первых нескольких шагов прогноза LSTM прогнозируемые значения являются разумными и находятся в пределах псевдодоверительного интервала, предложенного моделью. Однако в течение 100 шагов прогнозируемые значения для обеих функций NetFlow увеличиваются до диапазона, значительно превышающего истинные данные. Иногда прогнозы модели будут совпадать с истинными данными, но такие случаи редки. Производительность этой модели, скорее всего, улучшится при дальнейшей точной настройке, но, как уже упоминалось, она ограничена 200 обновлениями для имитации настройки быстрой адаптации.

Результаты прогнозирования IP-to-IP для случайным образом инициализированного исполнителя показаны на рис. 4. В отличие от LSTM, прогнозы этой модели начинаются с высокой дисперсии, которая со временем уменьшается. Такое поведение является нетипичным и противоречит ожиданиям ошибок начисления процентов. Случайно инициализированная модель, по-видимому, превосходит все конфигурации модели для этой пары IP-адресов источник-назначение. Однако в среднем она уступает по производительности предварительно обученной модели, как указано в разделе результатов.

Предварительно обученный исполнитель на рис. 5 также сталкивается с проблемой ошибок компаундирования. Однако эти ошибки начинают влиять на прогноз на более позднем временном шаге, чем LSTM. Эффект гораздо более очевиден для прогнозируемого количества байтов. Прогнозы значительно отклонились от диапазона значений истинных данных для этой функции. Прогноз количества пакетов содержит меньше ошибок, но из доверительного интервала видно, что модель становится менее достоверной по мере продолжения прогноза. Мы подозреваем, что дальнейшая точная настройка предварительно обученной модели позволит лучше адаптироваться к этой паре IP-адресов источника и назначения, и что при наличии достаточного количества данных прогноз для этой модели превзойдет прогноз, созданный случайным образом инициализированным исполнителем. Это, конечно, зависит от требований конечного пользователя к развертыванию и наличия дополнительных данных для тонкой настройки.

После изучения прогнозов каждой архитектуры становится очевидным, что для этой пары IP-адресов источника и назначения прогнозы количества байтов более ошибочны. Одной из возможных причин этой проблемы является большая дисперсия в диапазоне функций для этого значения. Эту тенденцию легче всего наблюдать для реальных данных на рис. 3 из-за схожих масштабов по оси Y. Модель должна научиться компенсировать эти резкие сдвиги в выходном диапазоне, что ей трудно сделать для этой функции и пары IP-адресов источника и назначения, особенно в отсутствие принуждения учителя.

Рекомендации по развертыванию

Когда дело доходит до развертывания этих моделей для прогнозирования, возникает несколько проблем, одна из которых — оркестровка моделей. В случае прогнозирования IP-IP большое количество уникальных пар IP-адресов отправителя и получателя приведет к большому количеству моделей, ко всем из которых необходимо будет запрашивать прогнозы по запросу или постоянно. Для этого требуется система, которая может обучать, хранить и загружать модели по команде. В прошлом году для решения этой задачи мы представили нашу систему AI Model Orchestration (AIMO). Этот фреймворк поддерживает все необходимые функции для развертывания моделей в производственной среде, в том числе те, которые требуют тонкой настройки. Пользователи могут передавать обучающие данные и команды обновления через наш JSON API, который размещен в контейнере Docker. Подробности смотрите в статье AIMO.

Вычислительные проблемы проявятся в производственных условиях, например, достижение приемлемого времени точной настройки, скорости логического вывода и получение необходимых аппаратных ресурсов. Без преобразования большой модели в маленькую, как описано в разделе Дальнейшие действия, было бы невозможно развернуть подобную систему прогнозирования на машине без передового вычислительного оборудования (например, с графическим процессором), в том числе только для сценариев вывода. Как указано в Таблице 2, время точной настройки для всех конфигураций модели составляет менее 550 секунд (~9 минут) с 200 обновлениями аппаратного обеспечения графического процессора в Таблице 1.

При увеличении размеров мини-пакетов и дополнительной памяти графического процессора время первоначальной точной настройки, вероятно, может быть значительно сокращено. Последующая тонкая настройка будет еще быстрее (онлайн-адаптация ранее настроенной модели), поскольку параметры находятся в лучшем начальном пространстве для оптимизации, чем базовая модель. Скорость логического вывода является постоянной, и можно распределить вычислительную нагрузку для создания прогнозов между несколькими графическими процессорами. Однако более крупные сети потребуют больше вычислительных ресурсов для обработки больших объемов трафика.

Приложения

Обсуждаемые модели имеют очевидные приложения к распределению ресурсов. Вместо распределения на сетевом уровне всех запросов входящего трафика мы можем выборочно масштабировать услуги на основе их исторического, текущего и прогнозируемого поведения. То есть конечные пользователи могут заблаговременно масштабировать свои сервисы для размещения ожидаемого трафика, а не реактивно масштабировать их, чтобы уменьшить нежелательную задержку в своих развертываниях и сервисах. Кроме того, использование эффективного преобразователя должно предложить радикальные улучшения по сравнению с предыдущими, устаревшими моделями машинного обучения или моделями, основанными на правилах, которые могут игнорировать последовательный характер сетевых потоков.

Специальные модели прогнозирования хорошо интегрируются с такой экосистемой, как Kubernetes. Тем не менее, этот параметр развертывания ближе к нашей задаче предварительного обучения, поскольку конечный пользователь, скорее всего, захочет адаптировать модель для создания прогнозов NetFlow для конкретного модуля в рамках развертывания вместо прогнозирования трафика IP-IP в системе. . Модуль Kubernetes по умолчанию Horizontal Pod Scaling полагается на использование ЦП для масштабирования количества реплик модулей, что неэффективно и может привести к задержке обработки во время скачков трафика. Модель прогнозирования, адаптированная к этой службе, может улучшить эту систему, автоматически масштабируя количество модулей на основе ожидаемого трафика, вместо того, чтобы полагаться на функцию второго порядка использования ресурсов между модулями.

Дополнительным приложением, намного более близким к нашей задаче тонкой настройки IP-IP, является использование моделей для прогнозирования использования устройств Интернета вещей (IoT), каждое из которых будет иметь связанные с ними уникальные адреса. Модели, развернутые для этой задачи, могут снизить общее потребление энергии, особенно в случае умных домов, где активность устройств может меняться в зависимости от времени суток и года. Прогнозирование поведения в будущем может также улучшить методы обнаружения аномалий, которые отслеживают эти устройства на наличие вредоносных или ненормальных действий. Если прогнозируемое будущее поведение начинает отклоняться от предыдущего поведения, возможно, в нем возникла ошибка или, возможно, он пострадал от злонамеренного вмешательства. Раннее обнаружение этих аномальных тенденций повысит безопасность развертываний IoT и приведет к более быстрому устранению недостатков.

Следующие шаги

Наши эксперименты показывают, что предварительное обучение моделей на крупномасштабных данных NetFlow v9 полезно для улучшения прогнозов при использовании принудительного обучения учителей. Мы связываем это с использованием согласованных функций потерь на этапах предварительной подготовки и тонкой настройки, что позволяет модели повторно использовать функции, изученные во время предварительной подготовки, для решения задачи тонкой настройки. Однако наши результаты можно улучшить с помощью альтернативных методов предварительной подготовки и обработки. Например, мы могли бы обучить модель большего масштаба на нашем наборе данных, чтобы извлечь больше информации из данных. Эта модель может быть переработана в уменьшенную версию, более подходящую для развертывания, аналогичную переработанным версиям GPT-2 и BERT [8].

Другой альтернативой, которая может повысить производительность, является представление прогнозирования как задачи непрерывного обучения, чем оно и является. Распределение для прогнозирования NetFlow, скорее всего, со временем изменится из-за различий в активности пользователей и изменении назначения машины. Модели должны со временем обновляться, чтобы учитывать эти изменения, не забывая ранее полученную информацию, которая может быть полезна для будущих прогнозов. Забвение или перезапись полезной информации в пространстве параметров модели в сообществе машинного обучения называют катастрофическим забыванием. Модели, которые обучаются с помощью типичной онлайн-процедуры (т. е. настраивают параметры по мере поступления новых данных, по одной выборке за раз), страдают от этой ошибки. Болье и др. решили некоторые из этих проблем с помощью алгоритмов, предложенных в «Обучение непрерывному обучению» [1]. В этой работе используется метаобучение для прямой непрерывной оптимизации задач обучения. Анализ влияния этой процедуры на прогнозирование NetFlow заслуживает дальнейшего изучения, поскольку этот метод может значительно сократить время тонкой настройки и объем данных, необходимых для адаптации к новым сетевым потокам.

Чтобы обсудить, как описанные выше методы можно применить к вашим приложениям и источникам данных, или получить дополнительную информацию, свяжитесь с нами по адресу [email protected]

Рекомендации

  1. Болье, Шон и др. «Учимся постоянно учиться». препринт arXiv arXiv:2002.09571 (2020 г.).
  2. Браун, Том и др. «Языковые модели — это малоэффективные ученики». Достижения в области систем обработки нейронной информации 33 (2020): 1877–1901.
  3. Хороманский, Кшиштоф и др. «Переосмысление внимания с исполнителями». препринт arXiv arXiv:2009.14794 (2020 г.).
  4. Девлин, Джейкоб и др. Берт: предварительное обучение глубоких двунаправленных преобразователей для понимания языка. ArXiv.org, 24 мая 2019 г., https://arxiv.org/abs/1810.04805.
  5. Хохрайтер, Зепп и Юрген Шмидхубер. «Долговременная кратковременная память». Нейронные вычисления 9.8 (1997): 1735–1780.
  6. Формат записи потока NetFlow версии 9 [службы IP-приложений]. NetFlow Version 9 Flow-Record Format, Cisco, 16 июня 2011 г., https://www.cisco.com/en/US/technologies/tk648/tk362/technologies_white_paper09186a00800a3db9.html.
  7. Nfdump: инструменты обработки Netflow. Nfdump — GitHub, https://github.com/phaag/nfdump.
  8. Санх, Виктор и др. «DistilBERT, дистиллированная версия BERT: меньше, быстрее, дешевле и легче». Препринт arXiv arXiv: 1910.01108 (2019).