Pemuatan dan pemrosesan data yang efisien sangat penting untuk pelatihan model dalam pembelajaran mesin (ML) dan pembelajaran mendalam. Topik ini membandingkan kinerja pemuatan data dari OssIterableDataset, OssMapDataset, dan dataset yang dibuat menggunakan ossfs bersama dengan ImageFolder melalui internal endpoints dan berdasarkan Akselerator OSS. Anda dapat mengoptimalkan akses data berdasarkan hasil pengujian kinerja yang disediakan dalam topik ini.
Deskripsi Pengujian
Skenario pengujian: Uji kinerja membaca data dari dataset menggunakan internal endpoints dan accelerated endpoints.
Data pengujian: Pengujian kinerja dilakukan pada sekitar 1 TB dari 10.000.000 gambar dengan ukuran rata-rata 100 KB.
Lingkungan pengujian: Pengujian kinerja dilakukan menggunakan instans Elastic Compute Service (ECS) tipe g7nex umum dengan peningkatan jaringan, dengan 128 vCPU, 512 GB memori, dan bandwidth internal 160 Gbit/s.
Dataset: Dataset tipe OssIterableDataset dan dataset tipe OssMapDataset dibuat menggunakan OSS Connector untuk AI/ML. Dataset tipe ossfs dengan ImageFolder dibuat menggunakan ossfs.
Pengujian Kinerja
Parameter Pengujian
Parameter
Nilai/Operasi
Deskripsi
ukuran batch dataloader
256
Setiap tugas batch memproses 256 sampel.
pekerja dataloader
32
Data dimuat secara paralel menggunakan 32 proses.
transform
trans = transforms.Compose([ transforms.Resize(256), transforms.CenterCrop(224), transforms.ToTensor(), transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]) ]) def transform(object): img = Image.open(io.BytesIO(object.read())).convert('RGB') val = trans(img) return val, object.labelData diproses terlebih dahulu.
Hasil Pengujian
Dataset dibuat menggunakan
Tipe Dataset
Menggunakan internal endpoint
Menggunakan Akselerator OSS untuk pra-pemuatan data dan accelerated endpoint untuk akses dipercepat
OSS Connector untuk AI/ML
OssIterableDataset
4582 img/detik
4744 img/detik
OssMapDataset
4010 img/detik
4370 img/detik
Ossfs dengan ImageFolder
56 img/detik
251 img/detik
Pengujian Kinerja Optimal
Parameter Pengujian
Parameter
Nilai/Operasi
Deskripsi
ukuran batch dataloader
256
Setiap tugas batch memproses 256 sampel.
pekerja dataloader
32
Data dimuat secara paralel menggunakan 32 proses.
transform
def transform(object): data = object.read() return object.key, object.labelData tidak diproses terlebih dahulu.
Hasil Pengujian
Dataset dibuat menggunakan
Tipe Dataset
Menggunakan internal endpoint
Menggunakan Akselerator OSS untuk pra-pemuatan data dan accelerated endpoint untuk akses dipercepat
OSS Connector untuk AI/ML
OssIterableDataset
99920 img/detik
123043 img/detik
OssMapDataset
56564 img/detik
78264 img/detik
Analisis Data Kinerja
Saat membaca data dari dataset, OssIterableDataset dan OssMapDataset menunjukkan kinerja yang jauh lebih baik dibandingkan dengan dataset yang dibuat menggunakan ossfs dan ImageFolder. Secara spesifik, kecepatannya sekitar 80 kali lebih cepat tanpa Akselerator OSS dan sekitar 18 kali lebih cepat dengan Akselerator OSS. Hasil pengujian menunjukkan bahwa OSS Connector untuk AI/ML secara signifikan meningkatkan kecepatan pemrosesan data dan efisiensi pelatihan model.
Membaca data dari OssIterableDataset dan OssMapDataset dengan Akselerator OSS diaktifkan sekitar 1,6 kali lebih cepat dibandingkan tanpa Akselerator OSS. OSS Connector untuk AI/ML mampu menangani akses konkuren tinggi pada level bandwidth tinggi saat Akselerator OSS dinonaktifkan. Menggabungkan OSS Connector untuk AI/ML dengan Akselerator OSS memberikan performa yang lebih kuat.
Kesimpulan
Anda dapat menggunakan OSS Connector untuk AI/ML dalam kode Python Anda untuk mengakses objek OSS dalam aliran. OSS Connector untuk AI/ML meningkatkan kecepatan pembacaan data dan cocok untuk sebagian besar skenario pelatihan model. Untuk kinerja pemrosesan data yang lebih tinggi dalam pelatihan model, gunakan OSS Connector untuk AI/ML bersama dengan Akselerator OSS.