Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu bölümde özellikle ML ve DL uygulamaları için sunucusuz GPU işlemlerinde veri yükleme hakkında bilgiler yer almaktadır. Spark Python API'sini kullanarak verileri yükleme ve dönüştürme hakkında daha fazla bilgi edinmek için öğreticiyi gözden geçirin.
Tablo verilerini yükleme
Delta tablolarından tablosal makine öğrenmesi verilerini yüklemek için Spark Connect'i kullanın.
Tek düğümlü eğitim için PySpark yönteminitoPandas() kullanarak Apache Spark DataFrames'i pandas DataFrames'e dönüştürebilir ve ardından isteğe bağlı olarak PySpark yönteminito_numpy() kullanarak NumPy biçimine dönüştürebilirsiniz.
Uyarı
Spark Connect, analiz ve ad çözümlemeyi yürütme zamanına erteler, bu da kodunuzun davranışını değiştirebilir. Bkz. Spark Connect ile Spark Klasik'i karşılaştırma.
Spark Connect, Spark SQL, Spark üzerinde Pandas API'si, Yapılandırılmış Akış ve MLlib (DataFrame tabanlı) dahil olmak üzere çoğu PySpark API'sini destekler. Desteklenen en son API'ler için PySpark API başvuru belgelerine bakın.
Diğer sınırlamalar için bkz. Sunucusuz işlem sınırlamaları.
Dekoratör içine @distributed veri yükleme
Dağıtılmış eğitim için Sunucusuz GPU API'sini kullanırken veri yükleme kodunu @distributed dekoratörün içine taşıyın. Veri kümesi boyutu, turşunun izin verdiği boyut üst sınırını aşabilir, bu nedenle aşağıda gösterildiği gibi veri kümesinin dekoratör içinde oluşturulması önerilir:
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)
....
Veri yükleme performansı
/Workspace ve /Volumes dizinler uzak Unity Kataloğu depolama alanında barındırılır. Veri kümeniz Unity Kataloğu'nda depolanıyorsa, veri yükleme hızı kullanılabilir ağ bant genişliğiyle sınırlıdır. Birden çok dönem eğitiyorsanız, önce verileri yerel olarak, özellikle süper hızlı depolamada (NVMe SSD diskleri) barındırılan /tmp dizine kopyalamanız önerilir.
Veri kümeniz büyükse, eğitim ve veri yüklemeyi paralelleştirmek için aşağıdaki teknikleri de öneririz:
- Birden fazla epoch eğitirken, her dosyayı okumadan önce veri kümenizi
/tmpdizininde dosyaları yerel olarak önbelleğe alacak şekilde güncelleyin. Sonraki dönemlerde önbelleğe alınmış sürümü kullanın. -
DataLoader API'sindeki çalışanları etkinleştirerek veri getirme işlemini paralelleştirin. En az 2 olarak ayarlayın
num_workers. Varsayılan olarak, her çalışan önceden iki iş öğesi alır. Performansı artırmak içinnum_workersveyaprefetch_factordeğerini artırın (bu, paralel okumaları ve her çalışanın ön getirme sırasında ulaşacağı öğe sayısını artıracaktır).