Мы рады объявить о выпуске с открытым исходным кодом Графшторм 0.1 — низкоуровневый фреймворк графового машинного обучения (ML) для создания, обучения и развертывания графовых ML-решений на сложных корпоративных графах за несколько дней, а не месяцев. С помощью GraphStorm вы можете создавать решения, которые напрямую учитывают структуру взаимоотношений или взаимодействий между миллиардами сущностей, которые неотъемлемо встроены в большинство реальных данных, включая сценарии обнаружения мошенничества, рекомендации, обнаружение сообщества и проблемы поиска/извлечения.
До сих пор было очень сложно создавать, обучать и развертывать решения графового машинного обучения для сложных корпоративных графов, которые легко могут иметь миллиарды узлов, сотни миллиардов ребер и десятки атрибутов — просто подумайте о графе, отображающем продукты Amazon.com. , атрибуты продукта, клиенты и многое другое. Вместе с GraphStorm мы выпускаем инструменты, которые Amazon использует внутри компании для внедрения крупномасштабных решений машинного обучения графов в производство. GraphStorm не требует от вас быть экспертом в области машинного обучения графов и доступен по лицензии Apache v2.0 на GitHub. Чтобы узнать больше о GraphStorm, посетите Репозиторий GitHub.
В этом посте мы представляем введение в GraphStorm, его архитектуру и пример использования того, как его использовать.
Представляем GraphStorm
Алгоритмы графов и машинное обучение графов становятся современными решениями для многих важных бизнес-задач, таких как прогнозирование рисков транзакций, прогнозирование предпочтений клиентов, обнаружение вторжений, оптимизация цепочек поставок, анализ социальных сетей и прогнозирование трафика. Например, Амазонка - стражник, собственный сервис обнаружения угроз AWS, использует граф с миллиардами ребер, чтобы улучшить покрытие и точность своей аналитики угроз. Это позволяет GuardDuty классифицировать ранее невидимые домены как вредоносные или безопасные на основе их связи с известными вредоносными доменами. Используя графовые нейронные сети (GNN), GuardDuty может расширить свои возможности по оповещению клиентов.
Однако разработка, запуск и эксплуатация решений графового машинного обучения занимают месяцы и требуют опыта графического машинного обучения. В качестве первого шага специалист по машинному обучению графов должен построить модель машинного обучения графов для данного варианта использования, используя такую инфраструктуру, как библиотека глубоких графов (DGL). Обучение таких моделей затруднено из-за размера и сложности графов в корпоративных приложениях, которые обычно охватывают миллиарды узлов, сотни миллиардов ребер, различные типы узлов и ребер и сотни атрибутов узлов и ребер. Для корпоративных графов могут потребоваться терабайты памяти, что требует от специалистов по машинному обучению графов создания сложных конвейеров обучения. Наконец, после обучения модели ее необходимо развернуть для логического вывода, для чего требуются конвейеры логического вывода, построить которые так же сложно, как и конвейеры обучения.
GraphStorm 0.1 — это корпоративная среда машинного обучения графов с малым кодом, которая позволяет специалистам по машинному обучению легко выбирать предопределенные модели машинного обучения графов, эффективность которых доказана, запускать распределенное обучение на графах с миллиардами узлов и развертывать модели в рабочей среде. GraphStorm предлагает набор встроенных моделей машинного обучения графов, таких как сверточные сети реляционных графов (RGCN), сети внимания реляционных графов (RGAT) и преобразователь гетерогенных графов (HGT) для корпоративных приложений с гетерогенными графами, которые позволяют инженерам машинного обучения с небольшим Graph ML, чтобы опробовать различные модельные решения для своей задачи и быстро выбрать правильное. Сквозные распределенные конвейеры обучения и логических выводов, которые масштабируются до миллиардных корпоративных графов, упрощают обучение, развертывание и выполнение логических выводов. Если вы новичок в GraphStorm или графическом машинном обучении в целом, вы получите выгоду от предопределенных моделей и конвейеров. Если вы являетесь экспертом, у вас есть все возможности для настройки конвейера обучения и архитектуры модели для достижения наилучшей производительности. GraphStorm построен на основе DGL, широко популярной платформы для разработки моделей GNN, и доступен в виде открытого исходного кода под лицензией Apache v2.0.
«GraphStorm разработан, чтобы помочь клиентам экспериментировать и применять методы графового машинного обучения для отраслевых приложений, чтобы ускорить внедрение графового машинного обучения, — говорит Джордж Карипис, старший научный сотрудник Amazon AI/ML Research. «С момента своего выпуска в Amazon GraphStorm сократил усилия по созданию решений на основе графического машинного обучения до пяти раз».
«GraphStorm позволяет нашей команде обучать встраивание GNN в режиме самоконтроля на графе с 288 миллионами узлов и 2 миллиардами ребер», — говорит Хайнинг Ю, главный прикладной научный сотрудник Amazon Measurement, Ad Tech и Data Science. «Предварительно обученные встраивания GNN показывают улучшение задачи прогнозирования покупательской активности на 24% по сравнению с современным базовым уровнем на основе BERT; он также превосходит эталонную производительность в других рекламных приложениях».
«До GraphStorm клиенты могли масштабироваться только вертикально для обработки графиков с 500 миллионами ребер, — говорит Брэд Биби, генеральный директор Amazon Neptune и Amazon Timestream. «GraphStorm позволяет клиентам масштабировать обучение модели GNN на массивных графах Amazon Neptune с десятками миллиардов ребер».
Техническая архитектура GraphStorm
На следующем рисунке показана техническая архитектура GraphStorm.
GraphStorm построен на основе PyTorch и может работать на одном графическом процессоре, нескольких графических процессорах и машинах с несколькими графическими процессорами. Он состоит из трех слоев (отмечены желтыми прямоугольниками на предыдущем рисунке):
- Нижний слой (Dist GraphEngine) – Нижний уровень предоставляет базовые компоненты для обеспечения ML с распределенным графом, включая распределенные графы, распределенные тензоры, распределенные вложения и распределенные семплеры. GraphStorm обеспечивает эффективную реализацию этих компонентов для масштабирования обучения машинному обучению графов до графов с миллиардами узлов.
- Средний уровень (конвейер обучения/вывода GS) – Средний уровень предоставляет обучающие программы, оценщики и предикторы для упрощения обучения моделей и вывода как для встроенных моделей, так и для ваших пользовательских моделей. По сути, используя API этого уровня, вы можете сосредоточиться на разработке модели, не беспокоясь о том, как масштабировать обучение модели.
- Верхний слой (зоопарк общей модели GS) – Верхний слой представляет собой модельный зоопарк с популярными моделями GNN и не-GNN для разных типов графов. На момент написания этой статьи он предоставляет RGCN, RGAT и HGT для гетерогенных графов и BERTGNN для текстовых графов. В будущем мы добавим поддержку моделей временных графов, таких как TGAT для временных графов, а также TransE и DistMult для графов знаний.
Как использовать Графсторм
После установки GraphStorm вам потребуется всего три шага для создания и обучения моделей GML для вашего приложения.
Во-первых, вы предварительно обрабатываете свои данные (возможно, включая разработку пользовательских функций) и преобразуете их в формат таблицы, необходимый для GraphStorm. Для каждого типа узла вы определяете таблицу, в которой перечислены все узлы этого типа и их характеристики, предоставляя уникальный идентификатор для каждого узла. Для каждого типа ребра вы аналогичным образом определяете таблицу, в которой каждая строка содержит идентификаторы исходного и целевого узлов для ребра этого типа (дополнительную информацию см. Используйте свой собственный учебник по данным). Кроме того, вы предоставляете файл JSON, описывающий общую структуру графа.
Во-вторых, через интерфейс командной строки (CLI) вы используете встроенный в GraphStorm construct_graph
компонент для некоторой обработки данных, специфичных для GraphStorm, который обеспечивает эффективное распределенное обучение и вывод.
В-третьих, вы настраиваете модель и обучение в файле YAML (пример) и снова с помощью интерфейса командной строки вызвать один из пяти встроенных компонентов (gs_node_classification
, gs_node_regression
, gs_edge_classification
, gs_edge_regression
, gs_link_prediction
) в качестве обучающих конвейеров для обучения модели. Результатом этого шага являются артефакты обученной модели. Чтобы сделать вывод, вам нужно повторить первые два шага, чтобы преобразовать данные вывода в график с использованием того же компонента GraphStorm (construct_graph
) как прежде.
Наконец, вы можете вызвать один из пяти встроенных компонентов, тот же, что использовался для обучения модели, в качестве конвейера логического вывода для создания вложений или результатов прогнозирования.
Общий поток также изображен на следующем рисунке.
В следующем разделе мы приводим пример использования.
Делайте прогнозы на основе необработанных данных OAG
В этом посте мы покажем, как легко GraphStorm может обеспечить обучение машинному обучению графов и логические выводы на большом необработанном наборе данных. Открыть академический график (OAG) содержит пять объектов (статьи, авторы, места проведения, членство и область исследования). Необработанный набор данных хранится в файлах JSON размером более 500 ГБ.
Наша задача — построить модель для предсказания области исследования статьи. Чтобы предсказать область исследования, вы можете сформулировать ее как задачу классификации с несколькими метками, но использовать однократное кодирование для хранения меток сложно, потому что существуют сотни тысяч полей. Следовательно, вы должны создать узлы области исследования и сформулировать эту проблему как задачу прогнозирования связи, предсказывающую, к каким узлам области исследования должен подключаться бумажный узел.
Чтобы смоделировать этот набор данных методом графа, первым шагом является обработка набора данных и извлечение объектов и ребер. Вы можете извлечь пять типов ребер из файлов JSON, чтобы определить график, показанный на следующем рисунке. Вы можете использовать блокнот Jupyter в GraphStorm. пример кода для обработки набора данных и создания пяти таблиц сущностей для каждого типа сущностей и пяти таблиц ребер для каждого типа ребер. Блокнот Jupyter также создает вложения BERT для объектов с текстовыми данными, например документов.
После определения объектов и ребер между объектами можно создать mag_bert.json
, который определяет схему графа, и вызывает встроенный конвейер построения графа. construct_graph
в GraphStorm для построения графика (см. следующий код). Несмотря на то, что конвейер построения графа GraphStorm работает на одном компьютере, он поддерживает многопроцессорную обработку для параллельной обработки узлов и граничных функций (--num_processes
) и может хранить объекты и ребра во внешней памяти (--ext-mem-workspace
) для масштабирования до больших наборов данных.
Для обработки такого большого графа вам потребуется экземпляр ЦП с большим объемом памяти для построения графа. Вы можете использовать Эластичное вычислительное облако Amazon (Amazon EC2) экземпляр r6id.32xlarge (128 виртуальных ЦП и 1 ТБ ОЗУ) или экземпляр r6a.48xlarge (192 виртуальных ЦП и 1.5 ТБ ОЗУ) для построения графика OAG.
После построения графика можно использовать gs_link_prediction
для обучения модели прогнозирования ссылок на четырех экземплярах g5.48xlarge. При использовании встроенных моделей вы вызываете только одну командную строку для запуска задания распределенного обучения. См. следующий код:
После обучения модели артефакт модели сохраняется в папке /data/mag_lp_model
.
Теперь вы можете запустить вывод предсказания ссылок, чтобы сгенерировать вложения GNN и оценить производительность модели. GraphStorm предоставляет несколько встроенных показателей для оценки производительности модели. Например, для задач прогнозирования ссылок GraphStorm автоматически выводит показатель среднего обратного ранга (MRR). MRR является ценным показателем для оценки моделей прогнозирования ссылок на графе, поскольку он оценивает, насколько высоко фактические ссылки занимают место среди прогнозируемых ссылок. Это фиксирует качество прогнозов, гарантируя, что наша модель правильно отдает приоритет истинным связям, что и является нашей целью здесь.
Вывод можно запустить с помощью одной командной строки, как показано в следующем коде. В этом случае модель достигает MRR 0.31 на тестовом наборе построенного графа.
Обратите внимание, что конвейер вывода генерирует вложения из модели предсказания ссылок. Чтобы решить проблему поиска области исследования для любой данной статьи, просто выполните поиск k-ближайших соседей по вложениям.
Заключение
GraphStorm — это новая платформа графового машинного обучения, которая упрощает создание, обучение и развертывание графовых моделей машинного обучения на отраслевых графах. Он решает некоторые ключевые проблемы машинного обучения графов, включая масштабируемость и удобство использования. Он предоставляет встроенные компоненты для обработки графов масштаба в миллиарды от необработанных входных данных до обучения моделей и вывода моделей, а также позволил нескольким командам Amazon обучать современные графовые модели машинного обучения в различных приложениях. Проверьте наши Репозиторий GitHub чтобы получить больше информации.
Об авторах
Да Чжэн — старший прикладной исследователь в AWS AI/ML research, возглавляющий группу по машинному обучению на основе графов для разработки методов и фреймворков для внедрения графового машинного обучения в производство. Да получил степень доктора компьютерных наук в Университете Джона Хопкинса.
Флориан Саупе является главным техническим менеджером по продуктам в AWS AI/ML research, поддерживая передовые научные группы, такие как группа графического машинного обучения, и улучшая такие продукты, как Amazon DataZone, с возможностями машинного обучения. До прихода в AWS Флориан руководил техническим управлением продуктами для автоматизированного вождения в Bosch, был консультантом по стратегии в McKinsey & Company и работал ученым в области систем управления/робототехники — область, в которой он имеет докторскую степень.
- SEO-контент и PR-распределение. Получите усиление сегодня.
- ЭВМ Финанс. Единый интерфейс для децентрализованных финансов. Доступ здесь.
- Квантум Медиа Групп. ИК/PR усиление. Доступ здесь.
- ПлатонАйСтрим. Анализ данных Web3. Расширение знаний. Доступ здесь.
- Источник: https://aws.amazon.com/blogs/machine-learning/fast-track-graph-ml-with-graphstorm-a-new-way-to-solve-problems-on-enterprise-scale-graphs/
- :имеет
- :является
- $UP
- 1
- 1 ТБ
- 100
- 16
- 31
- 500
- 7
- 8
- 9
- a
- в состоянии
- О нас
- академический
- ускорять
- Учетная запись
- точность
- деятельность
- фактического соединения
- Ad
- Добавить
- дополнение
- адреса
- Принятие
- объявления
- продвинутый
- принадлежность
- После
- снова
- AI / ML
- Оповещение
- алгоритмы
- Все
- позволять
- позволяет
- причислены
- Amazon
- Amazon EC2
- Амазонка Нептун
- Amazon Таймстрим
- Amazon Web Services
- Amazon.com
- среди
- an
- анализ
- и
- анонсировать
- предвидение
- любой
- апаш
- API
- Применение
- Приложения
- прикладной
- архитектура
- МЫ
- AS
- Объединение
- At
- внимание
- Атрибуты
- Авторы
- Автоматизированный
- автоматически
- доступен
- AWS
- основанный
- Базовая линия
- основной
- в основном
- BE
- , так как:
- было
- до
- эталонный тест
- польза
- ЛУЧШЕЕ
- между
- миллиард
- миллиарды
- изоферменты печени
- Дно
- коробки
- штифтик
- приносить
- строить
- построенный
- встроенный
- бизнес
- но
- by
- CAN
- возможности
- перехватывает
- Захват
- случаев
- цепи
- проблемы
- сложные
- проверка
- классификация
- код
- лыжных шлемов
- COM
- сообщество
- Компания
- комплекс
- сложность
- компонент
- компоненты
- Вычисление
- компьютер
- Информатика
- Свяжитесь
- Коммутация
- состоит
- строить
- строительство
- строительство
- консультант
- содержит
- контроль
- может
- охват
- Создайте
- изготовленный на заказ
- клиент
- Клиенты
- da
- данным
- обработка данных
- наука о данных
- Наборы данных
- Дней
- глубоко
- Определяет
- определяющий
- демонстрировать
- развертывание
- развернуть
- предназначенный
- назначение
- обнаружение
- развивать
- развивающийся
- Развитие
- дгл
- различный
- трудный
- непосредственно
- распределенный
- распределенное обучение
- do
- не
- доменов
- множество
- вождение
- два
- каждый
- легко
- легко
- Edge
- Эффективный
- эффективный
- усилие
- встроенный
- вложения
- появление
- включить
- включен
- позволяет
- впритык
- Проект и
- Инженеры
- повышать
- Предприятие
- лиц
- организация
- оценивать
- оценки
- оценка
- Даже
- пример
- превышает
- возбужденный
- эксперимент
- эксперту
- опыта
- и, что лучший способ
- извлечение
- Особенность
- Особенности
- поле
- Поля
- фигура
- Файл
- Файлы
- в заключение
- обнаружение
- Во-первых,
- поток
- Фокус
- после
- Что касается
- формат
- 4
- Рамки
- каркасы
- мошенничество
- обнаружение мошенничества
- от
- будущее
- Общие
- порождать
- генерирует
- Юрий
- получить
- GitHub
- данный
- GM
- GPU / ГРАФИЧЕСКИЙ ПРОЦЕССОР
- Графические процессоры
- график
- Графики
- группы
- обрабатывать
- Жесткий
- Есть
- he
- помощь
- здесь
- High
- очень
- его
- имеет
- Как
- Как высоко
- How To
- HTTP
- HTTPS
- Сотни
- ID
- идентификаторы
- if
- важную
- улучшать
- улучшение
- улучшение
- in
- В других
- В том числе
- промышленность
- информация
- по существу
- вход
- Установка
- пример
- вместо
- Интеллекта
- взаимодействие
- Интерфейс
- внутренне
- в
- Введение
- IT
- ЕГО
- работа
- Университет Джонса Хопкинса
- присоединение
- JPG
- JSON
- всего
- Основные
- знания
- известный
- Этикетки
- большой
- крупномасштабный
- запуск
- запуск
- слой
- слоев
- вести
- ведущий
- УЧИТЬСЯ
- изучение
- Библиотека
- Лицензия
- такое как
- Вероятно
- линия
- LINK
- связи
- Списки
- мало
- машина
- обучение с помощью машины
- Продукция
- Май
- сделать
- ДЕЛАЕТ
- Создание
- управление
- менеджер
- способ
- многих
- с пометкой
- массивный
- McKinsey
- McKinsey & Company
- значить
- измерение
- Память
- метод
- методы
- метрический
- Метрика
- средняя
- миллиона
- ML
- модель
- Модели
- месяцев
- БОЛЕЕ
- самых
- с разными
- родной
- Необходимость
- Neptune
- сеть
- сетей
- нейронные сети
- Новые
- узел
- узлы
- ноутбук
- сейчас
- цель
- of
- Предложения
- on
- ONE
- только
- с открытым исходным кодом
- открытый исходный код
- операционный
- оптимизирующий
- Опции
- or
- Другое
- наши
- внешний
- за
- общий
- собственный
- бумага & картон
- бумага
- Параллельные
- Выполнять
- производительность
- выбирать
- трубопровод
- Платон
- Платон Интеллектуальные данные
- ПлатонДанные
- Популярное
- После
- потенциально
- предсказывать
- предсказанный
- прогнозирования
- прогноз
- Predictions
- предпочтения
- предварительно
- Основной
- Проблема
- проблемам
- процесс
- обработка
- Продукт
- Управление продуктом
- Менеджер по продукции
- Производство
- Продукция
- доказанный
- обеспечивать
- приводит
- обеспечение
- положил
- pytorch
- быстро
- Оперативная память
- вошел
- Сырье
- достигать
- доходит до
- реальный мир
- рекомендаций
- Цена снижена
- Отношения
- освободить
- повторять
- требовать
- обязательный
- требуется
- исследованиям
- Итоги
- правую
- рисках,
- обычно
- РЯД
- Run
- то же
- говорит
- Масштабируемость
- Шкала
- Сценарии
- Наука
- Ученый
- Ученые
- Поиск
- Раздел
- посмотреть
- старший
- обслуживание
- Услуги
- набор
- должен
- показывать
- показанный
- Шоу
- Аналогичным образом
- упростить
- просто
- одинарной
- Размер
- Соцсети
- социальные сети
- Решения
- РЕШАТЬ
- некоторые
- Источник
- современное состояние
- Шаг
- Шаги
- диск
- магазин
- хранить
- Стратегия
- Структура
- Кабинет
- такие
- поставка
- Каналы поставок
- поддержка
- поддержки
- Поддержка
- ТАБЛИЦЫ
- взять
- принимает
- Сложность задачи
- команда
- команды
- технологии
- Технический
- снижения вреда
- десятки
- тестXNUMX
- который
- Ассоциация
- Будущее
- График
- Источник
- их
- Там.
- следовательно
- Эти
- они
- think
- этой
- хоть?
- тысячи
- угроза
- три
- раз
- в
- инструменты
- топ
- трафик
- Train
- специалистов
- Обучение
- сделка
- Transform
- трансформатор
- правда
- стараться
- два
- напишите
- Типы
- под
- созданного
- Университет
- юзабилити
- использование
- прецедент
- используемый
- использования
- через
- ценный
- различный
- центры
- вертикально
- с помощью
- Войти
- законопроект
- Путь..
- we
- Web
- веб-сервисы
- ЧТО Ж
- когда
- который
- широко
- будете
- без
- работавший
- письмо
- YAML
- Ты
- ВАШЕ
- зефирнет
- ZOO