Traffine I/O

Bahasa Indonesia

2023-03-05

Apa itu ONNX

Apa itu ONNX

Open Neural Network Exchange (ONNX) adalah sebuah proyek sumber terbuka yang bertujuan untuk menyediakan format standar untuk merepresentasikan model deep learning. Dikembangkan oleh Microsoft, Facebook, dan mitra industri lainnya, ONNX memungkinkan pengembang untuk berbagi dan mendeploy model pada berbagai kerangka deep learning seperti PyTorch dan TensorFlow, serta platform perangkat keras dengan mudah.

Tujuan utama dari proyek ONNX adalah untuk:

  • Meningkatkan interoperabilitas antara kerangka deep learning, sehingga memudahkan pengembang untuk melatih dan mendeploy model menggunakan alat pilihan mereka.
  • Memungkinkan vendor perangkat keras untuk mengoptimalkan platform mereka untuk model ONNX, sehingga menjamin kinerja dan efisiensi maksimum.
  • Mendorong pengembangan ekosistem alat dan perpustakaan yang mendukung format ONNX, sehingga memfasilitasi inovasi dan kolaborasi di komunitas deep learning.

Fitur Utama ONNX

ONNX menawarkan beberapa fitur yang membuatnya menjadi pilihan yang menarik untuk merepresentasikan model deep learning:

  • Format standar
    ONNX menyediakan skema yang terdefinisi dengan baik untuk merepresentasikan jaringan saraf, termasuk arsitektur, bobot, dan metadata mereka. Skema ini dirancang agar mudah dibaca oleh manusia dan dapat diinterpretasikan oleh mesin, sehingga mudah untuk bekerja dengan model ONNX.

  • Kumpulan operator yang dapat diperluas
    ONNX menyertakan kumpulan operator (operasi) yang sudah ditentukan sebelumnya yang mencakup sebagian besar lapisan dan fungsi jaringan saraf yang umum. Selain itu, ONNX memungkinkan pengembang untuk menentukan operator khusus untuk kasus penggunaan yang spesifik, sehingga menjamin fleksibilitas dan perluasan.

  • Dukungan kerangka yang luas
    Banyak kerangka deep learning yang populer, seperti TensorFlow, PyTorch, dan Caffe2, menyediakan dukungan asli untuk ONNX, sehingga memungkinkan pengembang untuk mengimpor dan mengekspor model antara kerangka tersebut dengan usaha minimal.

  • Runtime yang efisien
    ONNX Runtime adalah perpustakaan lintas-platform yang tinggi kinerjanya untuk menjalankan model ONNX pada berbagai platform perangkat keras, termasuk CPU, GPU, dan perangkat edge. ONNX Runtime menyediakan optimasi untuk perangkat keras tertentu, sehingga menjamin kinerja terbaik yang memungkinkan.

    -Ekosistem yang berkembang
    Proyek ONNX telah menarik komunitas yang produktif dari pengembang dan organisasi, sehingga menghasilkan ekosistem yang berkembang dari alat, perpustakaan, dan model pre-trained yang mendukung format ONNX.

Kerangka dan Alat yang Didukung

Ekosistem ONNX mencakup berbagai kerangka deep learning dan alat yang menawarkan dukungan untuk format ONNX. Beberapa kerangka paling populer dengan dukungan ONNX termasuk:

  • TensorFlow
    Sebuah perpustakaan pembelajaran mesin sumber terbuka yang dikembangkan oleh Google, yang banyak digunakan untuk melatih dan mendeploy jaringan saraf.

  • PyTorch
    Sebuah kerangka deep learning populer yang dikembangkan oleh Facebook, dikenal dengan grafik komputasi dinamis dan antarmuka yang ramah pengguna.

  • Caffe2
    Sebuah kerangka deep learning yang ringan, modular, dan dapat diskalakan yang dikembangkan oleh Facebook, dirancang untuk deployment dengan kinerja tinggi pada berbagai platform.

  • Apache MXNet
    Sebuah perpustakaan pembelajaran mesin yang fleksibel dan efisien, dengan dukungan untuk berbagai bahasa pemrograman dan fokus pada komputasi terdistribusi.

  • Keras
    Sebuah API jaringan saraf tingkat tinggi, mampu berjalan di atas TensorFlow, Microsoft Cognitive Toolkit, dan lainnya.

Kerangka-kerangka ini menyediakan alat dan utilitas untuk mengonversi model ke dan dari format ONNX, sehingga memungkinkan berbagi model yang mudah dan interoperabilitas yang lancar.

https://onnx.ai/supported-tools.html

ONNX Runtime

ONNX Runtime adalah perpustakaan lintas-platform yang tinggi kinerjanya untuk menjalankan model ONNX. Dikembangkan oleh Microsoft, ONNX Runtime menyediakan cara yang efisien dan mudah untuk melakukan inferensi pada model ONNX pada berbagai platform perangkat keras, termasuk CPU, GPU, dan perangkat edge. ONNX Runtime menawarkan dukungan untuk berbagai operator ONNX dan optimasi untuk perangkat keras tertentu, sehingga menjamin kinerja maksimum.

Fitur utama dari ONNX Runtime meliputi:

  • Kinerja tinggi
    ONNX Runtime dioptimalkan untuk kecepatan dan dapat menjalankan model yang kompleks dengan efisien pada berbagai platform perangkat keras.

  • Lintas-platform
    Dukungan untuk Windows, Linux, dan macOS, serta platform cloud populer seperti GCP dan AWS.

  • Akselerasi perangkat keras
    ONNX Runtime dapat memanfaatkan akselerator perangkat keras terbaru, seperti GPU NVIDIA dan FPGA Intel, untuk mempercepat inferensi model.

  • Pengikatan bahasa
    Menyediakan API untuk bahasa pemrograman populer, termasuk Python, C++, dan C#.

  • Optimisasi model
    ONNX Runtime menyediakan alat untuk mengoptimalkan model untuk kinerja yang lebih baik dan jejak memori yang lebih kecil.

https://onnxruntime.ai/docs/

Format File ONNX

Format file ONNX dirancang agar mudah dibaca oleh manusia dan dapat diinterpretasikan oleh mesin, sehingga lebih mudah dipahami dan dioperasikan. Sebuah file model ONNX berisi representasi ter-serialisasi dari sebuah jaringan saraf, termasuk arsitektur, bobot, dan metadata mereka. Komponen utama dari file ONNX adalah:

  • ModelProto
    Struktur level atas yang berisi semua informasi tentang model, seperti grafiknya, metadata, dan versi model.

  • GraphProto
    Substruktur dalam ModelProto yang mewakili grafik komputasi dari jaringan saraf, termasuk node (operasi), input, output, dan inisialisasi (bobot dan bias).

  • NodeProto
    Setiap node dalam grafik mewakili sebuah operasi (seperti konvolusi atau perkalian matriks) dengan tensor input dan output.

  • TensorProto
    Sebuah array multidimensi dari data yang digunakan untuk merepresentasikan input, output, dan bobot dalam model. TensorProto mencakup informasi tentang jenis data, dimensi, dan data aktual dalam format mentah atau khusus.

  • OperatorSet
    Kumpulan operator (operasi) yang didukung oleh model. Setiap OperatorSet terkait dengan versi dan domain untuk menjamin kompatibilitas mundur.

ONNX Model Zoo

ONNX Model Zoo adalah kumpulan model pre-trained yang tersedia dalam format ONNX, yang di-sumbangkan oleh komunitas dan berbagai organisasi. Model-model ini mencakup berbagai tugas dan domain, termasuk klasifikasi gambar, deteksi objek, pemrosesan bahasa alami, dan lainnya. ONNX Model Zoo menyediakan titik awal yang sangat baik untuk pengembang yang ingin menggabungkan model pre-trained ke dalam aplikasi mereka atau menggunakannya sebagai dasar untuk transfer learning.

Beberapa model populer yang tersedia di ONNX Model Zoo meliputi:

  • ResNet
    Sebuah keluarga jaringan residu dalam pembelajaran untuk klasifikasi gambar, dikenal dengan kinerja dan efisiensi yang luar biasa.

  • MobileNet
    Sebuah set model efisien untuk aplikasi visi seluler dan terbenam, dirancang untuk laten rendah dan konsumsi daya yang rendah.

  • BERT
    Sebuah model berbasis transformer untuk tugas pemrosesan bahasa alami, seperti menjawab pertanyaan dan analisis sentimen.

  • YOLO
    Sebuah model deteksi objek state-of-the-art yang dikenal dengan kecepatan dan akurasi.

https://github.com/ankkhedia/model-zoo

Referensi

https://github.com/onnx/onnx
https://onnxruntime.ai/docs/
https://github.com/onnx/models
https://github.com/ankkhedia/model-zoo

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!