Ми раді оголосити про випуск із відкритим кодом GraphStorm 0.1, фреймворк корпоративного графового машинного навчання (ML) із низьким кодом для створення, навчання та розгортання рішень графового машинного навчання на складних корпоративних графах за кілька днів замість місяців. За допомогою GraphStorm ви можете створювати рішення, які безпосередньо враховують структуру зв’язків або взаємодії між мільярдами об’єктів, які за своєю суттю вбудовані в більшість даних реального світу, включаючи сценарії виявлення шахрайства, рекомендації, виявлення спільноти та проблеми пошуку/відновлення.
До цього часу, як відомо, було важко створювати, навчати та розгортати рішення ML для складних корпоративних графів, які легко містять мільярди вузлів, сотні мільярдів ребер і десятки атрибутів — просто подумайте про графік, що відображає продукти Amazon.com. , атрибути продукту, клієнти тощо. За допомогою GraphStorm ми випускаємо інструменти, які Amazon використовує всередині, щоб перенести масштабні рішення для графічного машинного навчання у виробництво. GraphStorm не вимагає від вас бути експертом у ML на основі графіків і доступний за ліцензією Apache v2.0 на GitHub. Щоб дізнатися більше про GraphStorm, відвідайте GitHub сховище.
У цій публікації ми пропонуємо введення в GraphStorm, його архітектуру та приклад використання.
Представляємо GraphStorm
Графові алгоритми та графічний ML стають найсучаснішими рішеннями для багатьох важливих бізнес-проблем, таких як прогнозування ризиків транзакцій, уподобань клієнтів, виявлення вторгнень, оптимізація ланцюжків поставок, аналіз соціальних мереж і прогнозування трафіку. Наприклад, Вартовий обов'язок Amazonвласна служба виявлення загроз AWS використовує графік із мільярдами ребер, щоб покращити охоплення та точність своїх даних про загрози. Це дозволяє GuardDuty класифікувати раніше невидимі домени як такі, що мають високу ймовірність зловмисних або доброякісних, на основі їх асоціації з відомими шкідливими доменами. Використовуючи нейронні мережі Graph (GNN), GuardDuty може розширити свої можливості для оповіщення клієнтів.
Однак розробка, запуск і експлуатація рішень графового машинного навчання займає місяці та вимагає досвіду графового машинного навчання. На першому етапі фахівець із графового машинного навчання має побудувати модель графового машинного навчання для певного сценарію використання, використовуючи такий фреймворк, як Deep Graph Library (DGL). Навчання таких моделей є складним завданням через розмір і складність графів у корпоративних програмах, які регулярно охоплюють мільярди вузлів, сотні мільярдів ребер, різні типи вузлів і ребер, а також сотні атрибутів вузлів і ребер. Корпоративні графи можуть вимагати терабайт пам’яті, що вимагає від науковців ML для створення складних навчальних конвеєрів. Нарешті, після того, як модель навчена, її потрібно розгорнути для висновку, що вимагає конвеєрів логічного висновку, які так само складно побудувати, як і конвеєри навчання.
GraphStorm 0.1 — це корпоративна структура ML із низьким кодом, яка дозволяє фахівцям ML легко вибирати попередньо визначені моделі ML для графів, ефективність яких доведена, запускати розподілене навчання на графах із мільярдами вузлів і розгортати моделі у виробництві. GraphStorm пропонує колекцію вбудованих графових моделей ML, таких як Relational Graph Convolutional Networks (RGCN), Relational Graph Attention Networks (RGAT) і Heterogeneous Graph Transformer (HGT) для корпоративних додатків із гетерогенними графами, які дозволяють інженерам ML з невеликими побудувати графік ML, щоб випробувати різні модельні рішення для свого завдання та швидко вибрати правильний. Наскрізні розподілені конвеєри навчання та логічного висновку, які масштабуються до корпоративних графіків у мільярдному масштабі, спрощують навчання, розгортання та виконання висновків. Якщо ви новачок у GraphStorm або графічному ML загалом, ви отримаєте переваги від попередньо визначених моделей і конвеєрів. Якщо ви експерт, у вас є всі можливості для налаштування конвеєра навчання та архітектури моделі, щоб отримати найкращу продуктивність. GraphStorm створено на основі DGL, широко популярного фреймворку для розробки моделей GNN, і доступний у вигляді відкритого вихідного коду за ліцензією Apache v2.0.
«GraphStorm розроблено, щоб допомогти клієнтам експериментувати та вводити в дію методи графового машинного навчання для галузевих додатків, щоб прискорити впровадження графового машинного навчання», — говорить Джордж Каріпіс, старший науковий співробітник Amazon AI/ML. «З моменту випуску в 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 забезпечує ефективне впровадження цих компонентів для масштабування навчання ML на графах до графів із мільярдами вузлів.
- Середній рівень (конвеєр навчання/виведення GS) – Середній рівень надає інструктори, оцінювачі та прогнози для спрощення навчання моделі та висновків як для вбудованих моделей, так і для ваших власних моделей. По суті, використовуючи API цього рівня, ви можете зосередитися на розробці моделі, не турбуючись про те, як масштабувати навчання моделі.
- Верхній шар (GS загальна модель зоопарку) – Верхній шар – це модельний зоопарк із популярними моделями GNN і не-GNN для різних типів графіків. На момент написання цієї статті він надає RGCN, RGAT і HGT для різнорідних графів і BERTGNN для текстових графів. У майбутньому ми додамо підтримку моделей часових графів, таких як TGAT для часових графів, а також TransE і DistMult для графів знань.
Як користуватися GraphStorm
Після встановлення GraphStorm вам потрібно лише три кроки, щоб створити та навчити моделі GML для вашої програми.
По-перше, ви попередньо обробляєте свої дані (потенційно включно з розробкою спеціальних функцій) і перетворюєте їх у формат таблиці, який вимагає GraphStorm. Для кожного типу вузла ви визначаєте таблицю зі списком усіх вузлів цього типу та їхніх функцій, надаючи унікальний ідентифікатор для кожного вузла. Для кожного типу краю ви подібним чином визначаєте таблицю, у якій кожен рядок містить ідентифікатори вихідного та цільового вузлів для краю цього типу (додаткову інформацію див. Підручник з використання власних даних). Крім того, ви надаєте файл JSON, який описує загальну структуру графіка.
По-друге, за допомогою інтерфейсу командного рядка (CLI) ви використовуєте вбудований у GraphStorm construct_graph
компонент для певної обробки даних GraphStorm, що забезпечує ефективне розподілене навчання та висновки.
По-третє, ви налаштовуєте модель і навчання у файлі YAML (приклад) і, знову використовуючи CLI, виклик одного з п’яти вбудованих компонентів (gs_node_classification
, gs_node_regression
, gs_edge_classification
, gs_edge_regression
, gs_link_prediction
) як навчальні конвеєри для навчання моделі. Результатом цього кроку є артефакти навченої моделі. Щоб зробити висновок, вам потрібно повторити перші два кроки, щоб перетворити дані висновку на графік за допомогою того самого компонента GraphStorm (construct_graph
) як і раніше.
Нарешті, ви можете викликати один із п’яти вбудованих компонентів, той самий, що використовувався для навчання моделі, як конвеєр логічного висновку для генерації вбудовувань або результатів прогнозування.
Загальний потік також зображено на наступному малюнку.
У наступному розділі ми надаємо приклад використання.
Робіть прогнози на необроблених даних OAG
У цьому дописі ми демонструємо, як легко GraphStorm може увімкнути навчання ML на основі графів і висновки на великому наборі необроблених даних. The Відкритий академічний графік (OAG) містить п’ять об’єктів (документи, автори, місця проведення, філії та область дослідження). Необроблений набір даних зберігається у файлах JSON розміром понад 500 ГБ.
Наше завдання полягає в тому, щоб побудувати модель для прогнозування сфери дослідження статті. Щоб передбачити область дослідження, ви можете сформулювати це як завдання класифікації з кількома мітками, але важко використовувати одноразове кодування для зберігання міток, оскільки існують сотні тисяч полів. Таким чином, ви повинні створити вузли поля дослідження та сформулювати цю проблему як завдання прогнозування зв’язку, передбачаючи, до яких вузлів поля дослідження має підключитися паперовий вузол.
Щоб змоделювати цей набір даних графовим методом, першим кроком є обробка набору даних і вилучення об’єктів і ребер. Ви можете отримати п’ять типів ребер із файлів JSON, щоб визначити графік, показаний на малюнку нижче. Ви можете використовувати блокнот Jupyter у GraphStorm приклад коду щоб обробити набір даних і створити п’ять таблиць об’єктів для кожного типу об’єкта та п’ять таблиць ребер для кожного типу ребра. Блокнот Jupyter також генерує вбудовування BERT в сутності з текстовими даними, наприклад папери.
Визначивши сутності та межі між сутностями, можна створювати mag_bert.json
, який визначає схему графа, і викликає вбудований конвеєр побудови графа construct_graph
у GraphStorm, щоб побудувати графік (див. наступний код). Незважаючи на те, що конвеєр побудови графів GraphStorm працює на одній машині, він підтримує багатопроцесорну обробку для паралельної обробки вузлів і крайових функцій (--num_processes
) і може зберігати елементи сутності та межі на зовнішній пам’яті (--ext-mem-workspace
) для масштабування до великих наборів даних.
Щоб обробити такий великий графік, вам потрібен екземпляр процесора з великою пам’яттю для побудови графіка. Ви можете використовувати Обчислювальна хмара Amazon Elastic (Amazon EC2) екземпляр r6id.32xlarge (128 vCPU і 1 ТБ RAM) або r6a.48xlarge (192 vCPU і 1.5 ТБ RAM) для побудови графіка OAG.
Після побудови графіка можна використовувати gs_link_prediction
для навчання моделі прогнозування зв’язку на чотирьох екземплярах g5.48xlarge. Використовуючи вбудовані моделі, ви викликаєте лише один командний рядок для запуску завдання розподіленого навчання. Перегляньте наступний код:
Після навчання моделі артефакт моделі зберігається в папці /data/mag_lp_model
.
Тепер ви можете запустити висновок про прогнозування зв’язку, щоб створити вбудовування GNN і оцінити продуктивність моделі. GraphStorm надає кілька вбудованих оціночних показників для оцінки продуктивності моделі. Наприклад, для проблем прогнозування посилань GraphStorm автоматично виводить метричний середній взаємний ранг (MRR). MRR є цінним показником для оцінки моделей передбачення посилань на графіку, оскільки він оцінює, наскільки високо фактичні посилання займають серед прогнозованих посилань. Це фіксує якість прогнозів, гарантуючи, що наша модель правильно визначає пріоритет справжніх зв’язків, що є нашою метою тут.
Ви можете виконати висновок за допомогою одного командного рядка, як показано в наступному коді. У цьому випадку модель досягає MRR 0.31 на тестовому наборі побудованого графіка.
Зауважте, що конвеєр виведення генерує вбудовування з моделі передбачення посилань. Щоб вирішити проблему знаходження області дослідження для будь-якої даної статті, просто виконайте k-найближчий пошук сусідів у вкладеннях.
Висновок
GraphStorm — це нова платформа ML для графів, яка спрощує створення, навчання та розгортання моделей ML для графів на галузевих графах. Він вирішує деякі ключові проблеми графічного ML, зокрема масштабованість і зручність використання. Він надає вбудовані компоненти для обробки графіків у мільярдному масштабі від необроблених вхідних даних до навчання моделі та висновку моделі, а також дає змогу багатьом командам Amazon навчати найсучасніші моделі графічного машинного навчання в різних програмах. Перевірте наш GitHub сховище для отримання додаткової інформації.
Про авторів
Да Чжен є старшим прикладним науковим співробітником AWS AI/ML Research, який очолює групу графового машинного навчання для розробки методів і фреймворків для впровадження графового машинного навчання у виробництво. Та отримав ступінь доктора філософії з інформатики в Університеті Джона Гопкінса.
Флоріан Саупе є головним менеджером із технічних продуктів у дослідницькому відділі AI/ML AWS, який підтримує передові наукові команди, такі як група графового машинного навчання, і покращує такі продукти, як Amazon DataZone, із можливостями ML. До того, як приєднатися до AWS, Флоріан очолював технічне управління продуктами для автоматизованого водіння в Bosch, був консультантом зі стратегії в McKinsey & Company і працював науковцем із систем керування/робототехніки – у цій галузі він має ступінь доктора філософії.
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- EVM Фінанси. Уніфікований інтерфейс для децентралізованих фінансів. Доступ тут.
- Quantum Media Group. ІЧ/ПР посилений. Доступ тут.
- PlatoAiStream. Web3 Data Intelligence. Розширення знань. Доступ тут.
- джерело: 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 Timestream
- Amazon Web Services
- Amazon.com
- серед
- an
- аналіз
- та
- Оголосити
- очікування
- будь-який
- Apache
- API
- додаток
- застосування
- прикладної
- архітектура
- ЕСТЬ
- AS
- Асоціація
- At
- увагу
- Атрибути
- authors
- Автоматизований
- автоматично
- доступний
- AWS
- заснований
- Базова лінія
- основний
- В основному
- BE
- оскільки
- було
- перед тим
- еталонний тест
- користь
- КРАЩЕ
- між
- Мільярд
- мільярди
- обидва
- дно
- коробки
- штифтик
- приносити
- будувати
- побудований
- вбудований
- бізнес
- але
- by
- CAN
- можливості
- захвати
- захопивши
- випадок
- ланцюга
- проблеми
- складні
- перевірка
- класифікація
- код
- збір
- COM
- співтовариство
- компанія
- комплекс
- складність
- компонент
- Компоненти
- обчислення
- комп'ютер
- Інформатика
- З'єднуватися
- Зв'язки
- складається
- будувати
- будівництво
- будівництво
- консультант
- містить
- контроль
- може
- охоплення
- створювати
- виготовлений на замовлення
- клієнт
- Клієнти
- da
- дані
- обробка даних
- наука про дані
- набори даних
- Днів
- глибокий
- Визначає
- визначаючи
- демонструвати
- розгортання
- розгорнути
- призначений
- призначення
- Виявлення
- розвивати
- розвивається
- розробка
- dgl
- різний
- важкий
- безпосередньо
- розподілений
- розподілене навчання
- do
- Ні
- домени
- безліч
- водіння
- два
- кожен
- легко
- легко
- край
- Ефективний
- ефективний
- зусилля
- вбудований
- вбудовування
- з'являються
- включіть
- включений
- дозволяє
- кінець в кінець
- Машинобудування
- Інженери
- підвищувати
- підприємство
- юридичні особи
- суб'єкта
- оцінювати
- оцінки
- оцінка
- Навіть
- приклад
- перевищує
- збуджений
- експеримент
- експерт
- експертиза
- зовнішній
- витяг
- особливість
- риси
- поле
- Поля
- Рисунок
- філе
- Файли
- в кінці кінців
- виявлення
- Перший
- потік
- Сфокусувати
- після
- для
- формат
- чотири
- Рамки
- каркаси
- шахрайство
- виявлення шахрайства
- від
- майбутнє
- Загальне
- породжувати
- генерує
- Джордж
- отримати
- GitHub
- даний
- GM
- GPU
- Графічні процесори
- графік
- графіки
- Group
- обробляти
- Жорсткий
- Мати
- he
- допомога
- тут
- Високий
- дуже
- його
- тримає
- Як
- Як високо
- How To
- HTTP
- HTTPS
- Сотні
- ID
- ідентифікатори
- if
- важливо
- удосконалювати
- поліпшення
- поліпшення
- in
- В інших
- У тому числі
- промисловість
- інформація
- за своєю суттю
- вхід
- установка
- екземпляр
- замість
- Інтелект
- Взаємодії
- інтерфейс
- внутрішньо
- в
- Вступ
- IT
- ЙОГО
- робота
- Університет Джонса Хопкінса
- приєднання
- JPG
- json
- просто
- ключ
- знання
- відомий
- етикетки
- великий
- масштабний
- запуск
- запуск
- шар
- шарів
- вести
- провідний
- УЧИТЬСЯ
- вивчення
- бібліотека
- ліцензія
- як
- Ймовірно
- Лінія
- LINK
- зв'язку
- списки
- трохи
- машина
- навчання за допомогою машини
- Машинки для перманенту
- Травень
- зробити
- РОБОТИ
- Робить
- управління
- менеджер
- манера
- багато
- позначено
- масивний
- McKinsey
- McKinsey & Company
- значити
- вимір
- пам'ять
- метод
- методика
- метрика
- Метрика
- Середній
- мільйона
- ML
- модель
- Моделі
- місяців
- більше
- найбільш
- множинний
- рідний
- Необхідність
- Нептун
- мережу
- мереж
- нейронні мережі
- Нові
- вузол
- вузли
- ноутбук
- зараз
- мета
- of
- Пропозиції
- on
- ONE
- тільки
- з відкритим вихідним кодом
- відкритий код
- операційний
- оптимізуючий
- Опції
- or
- Інше
- наші
- з
- над
- загальний
- власний
- Папір
- документи
- Паралельні
- Виконувати
- продуктивність
- вибирати
- трубопровід
- plato
- Інформація про дані Платона
- PlatoData
- популярний
- пошта
- потенційно
- передбачати
- передвіщений
- прогнозування
- прогноз
- Прогнози
- переваги
- раніше
- Головний
- Проблема
- проблеми
- процес
- обробка
- Product
- Управління продуктом
- менеджер по продукції
- Production
- Продукти
- доведений
- забезпечувати
- забезпечує
- забезпечення
- put
- піторх
- якість
- швидко
- Оперативна пам'ять
- ранг
- Сировина
- досягати
- Досягає
- Реальний світ
- рекомендації
- Знижений
- Відносини
- звільнити
- повторювати
- вимагати
- вимагається
- Вимагається
- дослідження
- результати
- право
- ризики
- звичайно
- ROW
- прогін
- то ж
- говорить
- масштабованість
- шкала
- сценарії
- наука
- вчений
- Вчені
- Пошук
- розділ
- побачити
- старший
- обслуговування
- Послуги
- комплект
- Повинен
- Показувати
- показаний
- Шоу
- Аналогічно
- спростити
- просто
- один
- Розмір
- соціальна
- соціальна мережа
- Рішення
- ВИРІШИТИ
- деякі
- Source
- впроваджений
- Крок
- заходи
- зберігання
- зберігати
- зберігати
- Стратегія
- структура
- Вивчення
- такі
- поставка
- Ланцюги постачання
- підтримка
- Підтримуючий
- Опори
- таблиця
- Приймати
- приймає
- Завдання
- команда
- команди
- технології
- технічний
- методи
- тензор
- тест
- Що
- Команда
- Майбутнє
- Графік
- Джерело
- їх
- Там.
- отже
- Ці
- вони
- думати
- це
- хоча?
- тисячі
- загроза
- три
- times
- до
- інструменти
- топ
- трафік
- поїзд
- навчений
- Навчання
- угода
- Перетворення
- трансформатор
- правда
- намагатися
- два
- тип
- Типи
- при
- створеного
- університет
- юзабіліті
- використання
- використання випадку
- використовуваний
- використовує
- використання
- Цінний
- різний
- місця проведення
- вертикально
- через
- візит
- було
- шлях..
- we
- Web
- веб-сервіси
- ДОБРЕ
- коли
- який
- широко
- волі
- з
- без
- працював
- лист
- ямл
- Ти
- вашу
- зефірнет
- ZOO