Data
Apa itu ONNX?
ONNX (Open Neural Network Exchange) adalah representasi model terbuka untuk menukar model machine learning antar-framework dan runtime inferensi. File `.onnx` umumnya menyimpan ModelProto Protocol Buffers yang menjelaskan graf komputasi, input dan output, tipe dan shape, impor opset, serta tensor initializer. Safetensors terutama menyimpan bobot tensor, sedangkan ONNX juga merepresentasikan graf model. Konversi tidak membuat semua runtime mendukung setiap operator atau fitur khusus model; periksa versi IR/opset dan dukungan implementasi.
Kapan memilih format ini
- Inferensi pada runtime yang mendukung operator dan opset model
- Menukar graf model yang mencakup input output dan tipe
Kapan menghindari format ini
- Menganggap semua runtime mendukung setiap operator dan mempertahankan presisi serta kinerja
- Menyimpan bobot tensor saja tanpa graf inferensi atau konfigurasi
Kegunaan umum
- Menukar graf komputasi dan bobot machine learning dengan runtime yang didukung
- Memindahkan model antara framework pelatihan dan lingkungan inferensi
Karakteristik
- ModelProto Protocol Buffers menyimpan graf dan informasi model
- Node merujuk operator yang ditentukan domain dan versi opset
- Tensor initializer dapat disematkan atau disimpan dalam file data eksternal
Kelebihan dan kekurangan
Kelebihan
- Menyediakan graf model umum untuk runtime inferensi yang didukung
- Memuat informasi tipe input dan output untuk validasi serta optimasi
- Data tensor besar dapat dikelola dalam file eksternal
Kekurangan
- Dukungan operator opset tipe dan optimasi berbeda antar-runtime
- Output atau kinerja hasil konversi dapat berbeda dari framework sumber
- File data eksternal harus tetap dipasangkan dengan model .onnx
Membuka dan mengonversi
Cara membuka
Muat dengan ONNX checker atau runtime inferensi kompatibel. Sebelum deployment, periksa versi IR/opset, operator, tipe dan shape input/output serta dukungan runtime; bandingkan output dengan model sumber menggunakan input representatif.
Cara mengonversi
Ekspor memakai ONNX exporter dari framework sumber lalu validasi struktur dengan ONNX checker. Konversi berhasil tidak menjamin kesetaraan numerik atau eksekusi pada perangkat target. Jika memakai data eksternal, simpan model dan semua file rujukan bersama dalam satu paket distribusi.
Hal yang perlu diperhatikan
- Jangan hilangkan mengganti nama atau salah menempatkan file samping yang dirujuk data tensor eksternal
- Lokasi data eksternal dapat memuat path relatif; periksa rujukan model tak tepercaya dan gunakan loader yang terpelihara
- Validasi konversi prapemrosesan pascapemrosesan dan presisi numerik meski file ONNX valid
Pertanyaan umum
Apakah ONNX hanya file bobot?
Tidak. ModelProto merepresentasikan graf komputasi serta informasi operator dan tipe, dan dapat menyertakan tensor initializer. Tensor besar juga dapat disimpan sebagai data eksternal.
Apakah ONNX dan Safetensors memiliki fungsi sama?
Tidak. Safetensors terutama menyimpan bobot tensor; ONNX merepresentasikan graf model untuk inferensi. Keduanya dapat digunakan bersama.
Bisakah semua runtime inferensi menjalankan model ONNX apa pun?
Tidak. Pastikan runtime mendukung IR/opset, operator, tipe data, dan perangkat target model.