Bagikan melalui


Memuat data pada komputasi GPU Tanpa Server

Bagian ini mencakup informasi tentang memuat data pada komputasi GPU tanpa server untuk khusus untuk aplikasi ML dan DL. Periksa tutorial untuk mempelajari selengkapnya tentang cara memuat dan mengubah data menggunakan Spark Python API.

Memuat data tabular

Gunakan Spark Connect untuk memuat data pembelajaran mesin tabular dari tabel Delta.

Untuk pelatihan simpul tunggal, Anda dapat mengonversi Apache Spark DataFrames menjadi pandas DataFrames menggunakan metode toPandas(), lalu secara opsional mengonversi ke format NumPy menggunakan metode to_numpy().

Nota

Spark Connect menunda analisis dan resolusi nama ke waktu eksekusi, yang dapat mengubah perilaku kode Anda. Lihat Membandingkan Spark Connect dengan Spark Classic.

Spark Connect mendukung sebagian besar API PySpark, termasuk Spark SQL, Pandas API di Spark, Structured Streaming, dan MLlib (berbasis DataFrame). Lihat dokumentasi referensi API PySpark untuk API terbaru yang didukung.

Untuk batasan lain, lihat Batasan komputasi tanpa server.

Memuat data dalam dekorator @distributed

Saat menggunakan API GPU Tanpa Server untuk pelatihan terdistribusi, pindahkan kode pemuatan data di dalam dekorator @distributed . Ukuran himpunan data dapat melebihi ukuran maksimum yang diizinkan oleh pickle, sehingga disarankan untuk membuat himpunan data di dalam dekorator, seperti yang ditunjukkan di bawah ini:

from serverless_gpu import distributed

# this may cause pickle error
dataset = get_dataset(file_path)
@distributed(gpus=8, remote=True)
def run_train():
  # good practice
  dataset = get_dataset(file_path)
  ....

Performa pemuatan data

/Workspace dan /Volumes direktori dihosting pada penyimpanan Katalog Unity jarak jauh. Jika himpunan data Anda disimpan di Unity Catalog, kecepatan pemuatan data dibatasi oleh bandwidth jaringan yang tersedia. Jika Anda melakukan pelatihan selama beberapa epoch, disarankan untuk terlebih dahulu menyalin data ke lokasi lokal, khususnya ke /tmp direktori pada penyimpanan super cepat (disk NVMe SSD).

Jika himpunan data Anda besar, kami juga merekomendasikan teknik berikut untuk menyejajarkan pelatihan dan pemuatan data:

  • Saat melatih beberapa epoch, perbarui himpunan data Anda secara lokal ke file cache di direktori /tmp sebelum membaca setiap file. Pada epoch berikutnya, gunakan versi cache.
  • Paralelisasi pengambilan data dengan mengaktifkan pekerja di API Torch DataLoader . Atur num_workers ke setidaknya 2. Secara default, setiap pekerja memuat terlebih dahulu dua item kerja. Untuk meningkatkan performa, tingkatkan num_workers (yang akan meningkatkan pembacaan paralel) atau prefetch_factor (yang akan meningkatkan jumlah item yang di-prefetch oleh setiap pekerja).