Kami sangat gembira mengumumkan rilis sumber terbuka GrafikStorm 0.1, kerangka kerja pembelajaran mesin grafik (ML) perusahaan berkode rendah untuk membangun, melatih, dan menerapkan solusi ML grafik pada grafik skala perusahaan yang kompleks dalam hitungan hari, bukan bulan. Dengan GraphStorm, Anda dapat membangun solusi yang secara langsung memperhitungkan struktur hubungan atau interaksi antara miliaran entitas, yang secara inheren tertanam dalam sebagian besar data dunia nyata, termasuk skenario deteksi penipuan, rekomendasi, deteksi komunitas, dan masalah pencarian/pengambilan.
Hingga saat ini, sangat sulit untuk membangun, melatih, dan menerapkan solusi grafik ML untuk grafik perusahaan kompleks yang dengan mudah memiliki miliaran node, ratusan miliar tepi, dan lusinan atributโbayangkan saja grafik yang menangkap produk Amazon.com , atribut produk, pelanggan, dan banyak lagi. Dengan GraphStorm, kami merilis alat yang digunakan Amazon secara internal untuk menghadirkan solusi ML grafik berskala besar ke produksi. GraphStorm tidak mengharuskan Anda menjadi ahli dalam grafik ML dan tersedia di bawah lisensi Apache v2.0 di GitHub. Untuk mempelajari lebih lanjut tentang GraphStorm, kunjungi Repositori GitHub.
Dalam postingan ini, kami memberikan pengenalan tentang GraphStorm, arsitekturnya, dan contoh kasus penggunaan cara menggunakannya.
Memperkenalkan GraphStorm
Algoritme grafik dan ML grafik muncul sebagai solusi canggih untuk banyak masalah bisnis penting seperti memprediksi risiko transaksi, mengantisipasi preferensi pelanggan, mendeteksi intrusi, mengoptimalkan rantai pasokan, analisis jaringan sosial, dan prediksi lalu lintas. Misalnya, Tugas Penjaga Amazon, layanan deteksi ancaman asli AWS, menggunakan grafik dengan miliaran tepi untuk meningkatkan cakupan dan keakuratan intelijen ancamannya. Hal ini memungkinkan GuardDuty untuk mengkategorikan domain yang sebelumnya tidak terlihat sebagai domain yang kemungkinan besar berbahaya atau tidak berbahaya berdasarkan keterkaitannya dengan domain berbahaya yang diketahui. Dengan menggunakan Graph Neural Networks (GNNs), GuardDuty dapat meningkatkan kemampuannya dalam memperingatkan pelanggan.
Namun, pengembangan, peluncuran, dan pengoperasian solusi graph ML membutuhkan waktu berbulan-bulan dan memerlukan keahlian graph ML. Sebagai langkah pertama, ilmuwan ML grafik harus membuat model ML grafik untuk kasus penggunaan tertentu menggunakan kerangka kerja seperti Deep Graph Library (DGL). Melatih model seperti itu merupakan tantangan karena ukuran dan kompleksitas grafik dalam aplikasi perusahaan, yang secara rutin menjangkau miliaran node, ratusan miliar edge, jenis node dan edge yang berbeda, serta ratusan atribut node dan edge. Grafik perusahaan memerlukan penyimpanan memori sebesar terabyte, sehingga mengharuskan ilmuwan ML grafik untuk membangun jalur pelatihan yang kompleks. Terakhir, setelah model dilatih, model tersebut harus diterapkan untuk inferensi, yang memerlukan pipeline inferensi yang sama sulitnya untuk dibuat seperti pipeline pelatihan.
GraphStorm 0.1 adalah kerangka kerja ML grafik perusahaan berkode rendah yang memungkinkan praktisi ML dengan mudah memilih model ML grafik yang telah ditentukan sebelumnya dan telah terbukti efektif, menjalankan pelatihan terdistribusi pada grafik dengan miliaran node, dan menerapkan model tersebut ke dalam produksi. GraphStorm menawarkan kumpulan model ML grafik bawaan, seperti Relational Graph Convolutional Networks (RGCN), Relational Graph Attention Networks (RGAT), dan Heterogeneous Graph Transformer (HGT) untuk aplikasi perusahaan dengan grafik heterogen, yang memungkinkan para insinyur ML dengan sedikit grafik keahlian ML untuk mencoba berbagai solusi model untuk tugas mereka dan memilih solusi yang tepat dengan cepat. Saluran pelatihan dan inferensi yang terdistribusi secara menyeluruh, yang berskala hingga grafik perusahaan berskala miliaran, memudahkan pelatihan, penerapan, dan menjalankan inferensi. Jika Anda baru mengenal GraphStorm atau grafik ML secara umum, Anda akan mendapatkan keuntungan dari model dan pipeline yang telah ditentukan sebelumnya. Jika Anda seorang ahli, Anda memiliki semua opsi untuk menyesuaikan alur pelatihan dan arsitektur model untuk mendapatkan performa terbaik. GraphStorm dibangun di atas DGL, kerangka kerja yang sangat populer untuk mengembangkan model GNN, dan tersedia sebagai kode sumber terbuka di bawah lisensi Apache v2.0.
โGraphStorm dirancang untuk membantu pelanggan bereksperimen dan mengoperasionalkan metode ML grafik untuk aplikasi industri guna mempercepat penerapan ML grafik,โ kata George Karypis, Ilmuwan Utama Senior di penelitian AI/ML Amazon. โSejak dirilis di Amazon, GraphStorm telah mengurangi upaya untuk membangun solusi berbasis grafik ML hingga lima kali lipat.โ
โGraphStorm memungkinkan tim kami melatih penyematan GNN secara mandiri pada grafik dengan 288 juta node dan 2 miliar edge,โ ujar Haining Yu, Principal Applied Scientist di Amazon Measurement, Ad Tech, dan Data Science. โPenyematan GNN yang telah dilatih sebelumnya menunjukkan peningkatan sebesar 24% pada tugas prediksi aktivitas pembelanja dibandingkan baseline berbasis BERT yang canggih; ini juga melebihi kinerja tolok ukur dalam aplikasi iklan lainnya.โ
โSebelum GraphStorm, pelanggan hanya dapat melakukan penskalaan secara vertikal untuk menangani grafik dari 500 juta edge,โ kata Brad Bebee, GM untuk Amazon Neptune dan Amazon Timestream. โGraphStorm memungkinkan pelanggan untuk menskalakan pelatihan model GNN pada grafik Amazon Neptune yang sangat besar dengan puluhan miliar edge.โ
Arsitektur teknis GraphStorm
Gambar berikut menunjukkan arsitektur teknis GraphStorm.
GraphStorm dibangun di atas PyTorch dan dapat berjalan pada satu GPU, beberapa GPU, dan beberapa mesin GPU. Terdiri dari tiga lapisan (ditandai dengan kotak kuning pada gambar sebelumnya):
- Lapisan bawah (Dist GraphEngine) โ Lapisan bawah menyediakan komponen dasar untuk mengaktifkan ML grafik terdistribusi, termasuk grafik terdistribusi, tensor terdistribusi, embeddings terdistribusi, dan sampler terdistribusi. GraphStorm menyediakan implementasi yang efisien dari komponen-komponen ini untuk menskalakan pelatihan ML grafik ke grafik miliaran node.
- Lapisan tengah (pipa pelatihan/inferensi GS) โ Lapisan tengah menyediakan pelatih, evaluator, dan prediktor untuk menyederhanakan pelatihan model dan inferensi untuk model bawaan dan model kustom Anda. Pada dasarnya, dengan menggunakan API lapisan ini, Anda dapat fokus pada pengembangan model tanpa mengkhawatirkan cara menskalakan pelatihan model.
- Lapisan atas (kebun binatang model umum GS) โ Lapisan atas adalah kebun binatang model dengan model GNN dan non-GNN populer untuk berbagai jenis grafik. Pada tulisan ini, tersedia RGCN, RGAT, dan HGT untuk graf heterogen dan BERTGNN untuk graf tekstual. Di masa mendatang, kami akan menambahkan dukungan untuk model grafik temporal seperti TGAT untuk grafik temporal serta TransE dan DistMult untuk grafik pengetahuan.
Cara menggunakan GraphStorm
Setelah menginstal GraphStorm, Anda hanya memerlukan tiga langkah untuk membangun dan melatih model GML untuk aplikasi Anda.
Pertama, Anda memproses data Anda terlebih dahulu (berpotensi termasuk rekayasa fitur khusus Anda) dan mengubahnya menjadi format tabel yang diperlukan oleh GraphStorm. Untuk setiap jenis simpul, Anda menentukan tabel yang mencantumkan semua simpul dari jenis tersebut dan fitur-fiturnya, memberikan ID unik untuk setiap simpul. Untuk setiap jenis tepi, Anda juga dapat menentukan tabel yang setiap barisnya berisi ID simpul sumber dan tujuan untuk tepi jenis tersebut (untuk informasi lebih lanjut, lihat Gunakan Tutorial Data Anda Sendiri). Selain itu, Anda menyediakan file JSON yang menjelaskan struktur grafik secara keseluruhan.
Kedua, melalui antarmuka baris perintah (CLI), Anda menggunakan bawaan GraphStorm construct_graph
komponen untuk beberapa pemrosesan data khusus GraphStorm, yang memungkinkan pelatihan dan inferensi terdistribusi secara efisien.
Ketiga, Anda mengonfigurasi model dan pelatihan dalam file YAML (contoh) dan, sekali lagi dengan menggunakan CLI, aktifkan salah satu dari lima komponen bawaan (gs_node_classification
, gs_node_regression
, gs_edge_classification
, gs_edge_regression
, gs_link_prediction
) sebagai saluran pelatihan untuk melatih model. Langkah ini menghasilkan artefak model terlatih. Untuk melakukan inferensi, Anda perlu mengulangi dua langkah pertama untuk mengubah data inferensi menjadi grafik menggunakan komponen GraphStorm yang sama (construct_graph
) seperti sebelumnya.
Terakhir, Anda dapat memanggil salah satu dari lima komponen bawaan, sama seperti yang digunakan untuk pelatihan model, sebagai saluran inferensi untuk menghasilkan hasil penyematan atau prediksi.
Alur keseluruhan juga digambarkan pada gambar berikut.
Di bagian berikut, kami memberikan contoh kasus penggunaan.
Buat prediksi berdasarkan data mentah OAG
Untuk postingan ini, kami mendemonstrasikan betapa mudahnya GraphStorm mengaktifkan pelatihan dan inferensi ML grafik pada kumpulan data mentah yang besar. Itu Buka Grafik Akademik (OAG) berisi lima entitas (makalah, penulis, tempat, afiliasi, dan bidang studi). Kumpulan data mentah disimpan dalam file JSON dengan ukuran lebih dari 500 GB.
Tugas kita adalah membangun model untuk memprediksi bidang studi suatu makalah. Untuk memprediksi bidang studi, Anda dapat memformulasikannya sebagai tugas klasifikasi multi-label, namun sulit menggunakan pengkodean one-hot untuk menyimpan label karena terdapat ratusan ribu bidang. Oleh karena itu, Anda harus membuat node bidang studi dan merumuskan masalah ini sebagai tugas prediksi tautan, memprediksi node bidang studi mana yang harus dihubungkan oleh node kertas.
Untuk memodelkan dataset ini dengan metode grafik, langkah pertama yang dilakukan adalah memproses dataset dan mengekstrak entitas dan edge. Anda dapat mengekstrak lima jenis tepi dari file JSON untuk menentukan grafik, yang ditunjukkan pada gambar berikut. Anda dapat menggunakan notebook Jupyter di GraphStorm contoh kode untuk memproses kumpulan data dan menghasilkan lima tabel entitas untuk setiap tipe entitas dan lima tabel tepi untuk setiap tipe tepi. Notebook Jupyter juga menghasilkan penyematan BERT pada entitas dengan data teks, seperti kertas.
Setelah menentukan entitas dan tepi antar entitas, Anda dapat membuat mag_bert.json
, yang mendefinisikan skema grafik, dan memanggil pipeline konstruksi grafik bawaan construct_graph
di GraphStorm untuk membuat grafik (lihat kode berikut). Meskipun pipeline konstruksi grafik GraphStorm berjalan di satu mesin, pipeline ini mendukung multi-pemrosesan untuk memproses node dan fitur edge secara paralel (--num_processes
) dan dapat menyimpan fitur entitas dan edge pada memori eksternal (--ext-mem-workspace
) untuk menskalakan ke kumpulan data besar.
Untuk memproses grafik sebesar itu, Anda memerlukan instance CPU dengan memori besar untuk membuat grafik. Anda dapat menggunakan Cloud komputasi elastis Amazon (Amazon EC2) instans r6id.32xlarge (128 vCPU dan 1 TB RAM) atau instans r6a.48xlarge (192 vCPU dan 1.5 TB RAM) untuk membuat grafik OAG.
Setelah membuat grafik, Anda dapat menggunakannya gs_link_prediction
untuk melatih model prediksi tautan pada empat instans g5.48xlarge. Saat menggunakan model bawaan, Anda hanya memanggil satu baris perintah untuk meluncurkan tugas pelatihan terdistribusi. Lihat kode berikut:
Setelah pelatihan model, artefak model disimpan dalam folder /data/mag_lp_model
.
Sekarang Anda dapat menjalankan inferensi prediksi tautan untuk menghasilkan penyematan GNN dan mengevaluasi performa model. GraphStorm menyediakan beberapa metrik evaluasi bawaan untuk mengevaluasi kinerja model. Untuk masalah prediksi tautan, misalnya, GraphStorm secara otomatis mengeluarkan metrik mean reciprocal rank (MRR). MRR adalah metrik yang berharga untuk mengevaluasi model prediksi tautan grafik karena menilai seberapa tinggi peringkat tautan sebenarnya di antara tautan yang diprediksi. Hal ini menangkap kualitas prediksi, memastikan model kami memprioritaskan hubungan yang sebenarnya dengan benar, yang merupakan tujuan kami di sini.
Anda dapat menjalankan inferensi dengan satu baris perintah, seperti yang ditunjukkan pada kode berikut. Dalam hal ini, model mencapai MRR 0.31 pada set pengujian grafik yang dibangun.
Perhatikan bahwa saluran inferensi menghasilkan penyematan dari model prediksi tautan. Untuk memecahkan masalah dalam menemukan bidang studi untuk makalah tertentu, cukup lakukan pencarian k-tetangga terdekat pada embeddings.
Kesimpulan
GraphStorm adalah kerangka kerja ML grafik baru yang memudahkan pembuatan, pelatihan, dan penerapan model ML grafik pada grafik industri. Ini mengatasi beberapa tantangan utama dalam grafik ML, termasuk skalabilitas dan kegunaan. Ini menyediakan komponen bawaan untuk memproses grafik berskala miliar dari data masukan mentah hingga pelatihan model dan inferensi model dan telah memungkinkan beberapa tim Amazon untuk melatih model ML grafik canggih dalam berbagai aplikasi. Lihat kami Repositori GitHub for more information.
Tentang Penulis
Da Zheng adalah ilmuwan terapan senior di penelitian AWS AI/ML yang memimpin tim pembelajaran mesin grafik untuk mengembangkan teknik dan kerangka kerja untuk menerapkan pembelajaran mesin grafik dalam produksi. Da mendapatkan gelar PhD di bidang ilmu komputer dari Universitas Johns Hopkins.
Florian Saupe adalah Manajer Produk Teknis Utama di penelitian AI/ML AWS yang mendukung tim sains tingkat lanjut seperti kelompok pembelajaran mesin grafik dan meningkatkan produk seperti Amazon DataZone dengan kemampuan ML. Sebelum bergabung dengan AWS, Florian memimpin manajemen produk teknis untuk mengemudi otomatis di Bosch, merupakan konsultan strategi di McKinsey & Company, dan bekerja sebagai ilmuwan sistem kontrol/robotika โ bidang di mana ia memegang gelar doktoralnya.
- Konten Bertenaga SEO & Distribusi PR. Dapatkan Amplifikasi Hari Ini.
- Keuangan EVM. Antarmuka Terpadu untuk Keuangan Terdesentralisasi. Akses Di Sini.
- Grup Media Kuantum. IR/PR Diperkuat. Akses Di Sini.
- PlatoAiStream. Kecerdasan Data Web3. Pengetahuan Diperkuat. Akses Di Sini.
- Sumber: https://aws.amazon.com/blogs/machine-learning/fast-track-graph-ml-with-graphstorm-a-new-way-to-solve-problems-on-enterprise-scale-graphs/
- :memiliki
- :adalah
- $NAIK
- 1
- 1 TB
- 100
- 16
- 31
- 500
- 7
- 8
- 9
- a
- Sanggup
- Tentang Kami
- akademik
- mempercepat
- Akun
- ketepatan
- kegiatan
- sebenarnya
- Ad
- menambahkan
- tambahan
- alamat
- Adopsi
- iklan
- maju
- afiliasi
- Setelah
- lagi
- AI / ML
- Waspada
- algoritma
- Semua
- mengizinkan
- memungkinkan
- juga
- Amazon
- Amazon EC2
- Amazon Neptunus
- Aliran Waktu Amazon
- Amazon Web Services
- Amazon.com
- antara
- an
- analisis
- dan
- Mengumumkan
- mengantisipasi
- Apa pun
- Apache
- api
- Aplikasi
- aplikasi
- terapan
- arsitektur
- ADALAH
- AS
- Asosiasi
- At
- perhatian
- atribut
- penulis
- Otomatis
- secara otomatis
- tersedia
- AWS
- berdasarkan
- Dasar
- dasar
- Pada dasarnya
- BE
- karena
- menjadi
- sebelum
- patokan
- manfaat
- TERBAIK
- antara
- Milyar
- miliaran
- kedua
- Bawah
- kotak
- brad
- membawa
- membangun
- dibangun di
- built-in
- bisnis
- tapi
- by
- CAN
- kemampuan
- menangkap
- Menangkap
- kasus
- rantai
- tantangan
- menantang
- memeriksa
- klasifikasi
- kode
- koleksi
- COM
- masyarakat
- perusahaan
- kompleks
- kompleksitas
- komponen
- komponen
- menghitung
- komputer
- Komputer Ilmu
- Terhubung
- Koneksi
- terdiri
- membangun
- membangun
- konstruksi
- konsultan
- mengandung
- kontrol
- bisa
- liputan
- membuat
- adat
- pelanggan
- pelanggan
- da
- data
- pengolahan data
- ilmu data
- kumpulan data
- Hari
- mendalam
- Mendefinisikan
- mendefinisikan
- mendemonstrasikan
- menyebarkan
- dikerahkan
- dirancang
- tujuan
- Deteksi
- mengembangkan
- berkembang
- Pengembangan
- dgl
- berbeda
- sulit
- langsung
- didistribusikan
- pelatihan terdistribusi
- do
- Tidak
- domain
- puluhan
- penggerak
- dua
- setiap
- mudah
- Mudah
- Tepi
- Efektif
- efisien
- usaha
- tertanam
- embedding
- muncul
- aktif
- diaktifkan
- memungkinkan
- ujung ke ujung
- Teknik
- Insinyur
- mempertinggi
- Enterprise
- entitas
- entitas
- mengevaluasi
- mengevaluasi
- evaluasi
- Bahkan
- contoh
- melebihi
- gembira
- eksperimen
- ahli
- keahlian
- luar
- ekstrak
- Fitur
- Fitur
- bidang
- Fields
- Angka
- File
- File
- Akhirnya
- temuan
- Pertama
- aliran
- Fokus
- berikut
- Untuk
- format
- empat
- Kerangka
- kerangka
- penipuan
- deteksi penipuan
- dari
- masa depan
- Umum
- menghasilkan
- menghasilkan
- George
- mendapatkan
- GitHub
- diberikan
- GM
- GPU
- GPU
- grafik
- grafik
- Kelompok
- menangani
- Sulit
- Memiliki
- he
- membantu
- di sini
- High
- sangat
- -nya
- memegang
- Seterpercayaapakah Olymp Trade? Kesimpulan
- Bagaimana Tinggi
- How To
- http
- HTTPS
- Ratusan
- ID
- id
- if
- penting
- memperbaiki
- perbaikan
- meningkatkan
- in
- Di lain
- Termasuk
- industri
- informasi
- secara inheren
- memasukkan
- Instalasi
- contoh
- sebagai gantinya
- Intelijen
- interaksi
- Antarmuka
- internal
- ke
- Pengantar
- IT
- NYA
- Pekerjaan
- Johns Hopkins University
- bergabung
- jpg
- json
- hanya
- kunci
- pengetahuan
- dikenal
- Label
- besar
- besar-besaran
- jalankan
- peluncuran
- lapisan
- lapisan
- memimpin
- terkemuka
- BELAJAR
- pengetahuan
- Perpustakaan
- Lisensi
- 'like'
- Mungkin
- baris
- LINK
- link
- daftar
- sedikit
- mesin
- Mesin belajar
- Mesin
- Mei
- membuat
- MEMBUAT
- Membuat
- pengelolaan
- manajer
- cara
- banyak
- ditandai
- besar-besaran
- McKinsey
- McKinsey & Company
- berarti
- pengukuran
- Memori
- metode
- metode
- metrik
- Metrik
- Tengah
- juta
- ML
- model
- model
- bulan
- lebih
- paling
- beberapa
- asli
- Perlu
- Neptunus
- jaringan
- jaringan
- jaringan saraf
- New
- simpul
- node
- buku catatan
- sekarang
- tujuan
- of
- Penawaran
- on
- ONE
- hanya
- open source
- kode sumber terbuka
- operasi
- mengoptimalkan
- Opsi
- or
- Lainnya
- kami
- di luar
- lebih
- secara keseluruhan
- sendiri
- kertas
- dokumen
- Paralel
- Melakukan
- prestasi
- memilih
- pipa saluran
- plato
- Kecerdasan Data Plato
- Data Plato
- Populer
- Pos
- berpotensi
- meramalkan
- diprediksi
- memprediksi
- ramalan
- Prediksi
- preferensi
- sebelumnya
- Utama
- Masalah
- masalah
- proses
- pengolahan
- Produk
- manajemen Produk
- manajer produk
- Produksi
- Produk
- terbukti
- memberikan
- menyediakan
- menyediakan
- menempatkan
- pytorch
- kualitas
- segera
- RAM
- peringkat
- Mentah
- mencapai
- Mencapai
- dunia nyata
- rekomendasi
- mengurangi
- Hubungan
- melepaskan
- ulangi
- membutuhkan
- wajib
- membutuhkan
- penelitian
- Hasil
- benar
- risiko
- secara rutin
- BARIS
- Run
- sama
- mengatakan
- Skalabilitas
- Skala
- skenario
- Ilmu
- ilmuwan
- ilmuwan
- Pencarian
- Bagian
- melihat
- senior
- layanan
- Layanan
- set
- harus
- Menunjukkan
- ditunjukkan
- Pertunjukkan
- Demikian pula
- menyederhanakan
- hanya
- tunggal
- Ukuran
- Sosial
- jaringan sosial
- Solusi
- MEMECAHKAN
- beberapa
- sumber
- state-of-the-art
- Langkah
- Tangga
- penyimpanan
- menyimpan
- tersimpan
- Penyelarasan
- struktur
- Belajar
- seperti itu
- menyediakan
- Rantai pasokan
- mendukung
- pendukung
- Mendukung
- tabel
- Mengambil
- Dibutuhkan
- tugas
- tim
- tim
- tech
- Teknis
- teknik
- memiliki
- uji
- bahwa
- Grafik
- Masa depan
- Grafik
- Sumber
- mereka
- Sana.
- karena itu
- Ini
- mereka
- berpikir
- ini
- meskipun?
- ribuan
- ancaman
- tiga
- kali
- untuk
- alat
- puncak
- lalu lintas
- Pelatihan VE
- terlatih
- Pelatihan
- .
- Mengubah
- transformator
- benar
- mencoba
- dua
- mengetik
- jenis
- bawah
- unik
- universitas
- kegunaan
- menggunakan
- gunakan case
- bekas
- kegunaan
- menggunakan
- Berharga
- berbagai
- keadaan-keadaan
- secara vertikal
- melalui
- Mengunjungi
- adalah
- Cara..
- we
- jaringan
- layanan web
- BAIK
- ketika
- yang
- sangat
- akan
- dengan
- tanpa
- bekerja
- penulisan
- yaml
- Kamu
- Anda
- zephyrnet.dll
- KEBUN BINATANG