Migruj klasyczne obciążenia GPU do środowiska bezserwerowego

Jeśli przenosisz istniejące obciążenie uczenia głębokiego z klasycznego klastra usługi Databricks (z usługą Databricks Runtime ML) do bezserwerowego (ze środowiskiem AI Runtime), wykonaj następujące kroki:

  1. Zastąp kod zależny od klastra. Usuń wszelkie odniesienia do rozproszonego treningu opartego na Spark (na przykład TorchDistributor) i zastąp je dekoratorem @distributed z Databricks AI Runtime SDK (databricks.air).
  2. Zaktualizuj proces ładowania danych. Zastąp bezpośrednie ścieżki DBFS ścieżkami woluminów Unity Catalog (/Volumes/...). Zastąp lokalne operacje ramki danych Spark ramką danych Spark Connect. Do strumieniowego przesyłania danych z plików z woluminów użyj elementu UCVolumeDataset z databricks.air.data. Zobacz Ładowanie danych w środowisku uruchomieniowym sztucznej inteligencji.
  3. Skonfiguruj środowisko. Niektóre preinstalowane biblioteki Databricks Runtime ML nie są dostępne w AI Runtime. Skonfiguruj środowisko GPU bez serwera i zainstaluj pakiety potrzebne Twoim obciążeniom za pomocą %pip install. Zobacz Konfigurowanie środowiska.
  4. Aktualizowanie ścieżek punktów kontrolnych. Przenoszenie punktów kontrolnych z DBFS lub magazynu lokalnego do woluminów katalogu Unity (/Volumes/<catalog>/<schema>/<volume>/...). Do rozproszonego zapisywania punktów kontrolnych użyj UCVolumeWriter i UCVolumeReader z databricks.air.data, które buforują operacje wejścia/wyjścia przez lokalny dysk NVMe. Zobacz Checkpoint with Distributed Checkpoint (DCP).
  5. Przejrzyj konfigurację MLflow. W środowisku AI Runtime interfejs API .distributed() automatycznie tworzy przebiegi MLflow. Aby dostosować eksperyment, ustaw go z absolutną ścieżką. Aby wznowić przerwane uruchomienia, ustaw nazwę uruchomienia. Zobacz, co oferuje MLflow.
  6. Najpierw przetestuj interaktywnie. Zweryfikuj obciążenie w notesie interaktywnym przed zaplanowaniem go jako zadania.