Share via


En iyi yöntemler: Hyperopt ile hiper parametre ayarlama

En iyi yöntemler

  • Bayes yaklaşımları, kılavuz arama ve rastgele aramadan çok daha verimli olabilir. Bu nedenle Parzen Estimators Hyperopt Tree (TPE) algoritmasıyla daha fazla hiper parametre ve daha büyük aralıkları keşfedebilirsiniz. Arama etki alanını kısıtlamak için etki alanı bilgisini kullanmak, ayarlamayı iyileştirebilir ve daha iyi sonuçlar üretebilir.
  • kullandığınızda hp.choice()Hyperopt, tercih ettiğiniz listenin dizinini döndürür. Bu nedenle MLflow'da günlüğe kaydedilen parametre aynı zamanda dizindir. Parametre değerlerini almak için kullanın hyperopt.space_eval() .
  • Uzun eğitim süreleri olan modeller için küçük veri kümeleri ve birçok hiper parametre ile denemeler yapmaya başlayın. En iyi performansa sahip modelleri belirlemek ve hangi hiper parametrelerin düzeltilebileceğini belirlemek için MLflow kullanın. Bu şekilde, büyük ölçekte ayarlamaya hazırlanırken parametre alanını azaltabilirsiniz.
  • Koşullu boyutlar ve hiper parametreler için Hyperopt desteğinden yararlanın. Örneğin, hiper parametre alanını yalnızca ortak hiper parametrelerle sınırlamak yerine, birden çok gradyan azalma türünü değerlendirirken, Hyperopt'un koşullu hiper parametreler içermesini sağlayabilirsiniz; bunlar yalnızca tatların bir alt kümesi için uygun olanlardır. Koşullu parametreleri kullanma hakkında daha fazla bilgi için bkz . Arama alanı tanımlama.
  • kullanırken SparkTrials, yalnızca CPU ve GPU özellikli kümeler için paralelliği uygun şekilde yapılandırın. Azure Databricks'te CPU ve GPU kümeleri, çalışan düğümü başına farklı sayıda yürütücü iş parçacığı kullanır. CPU kümeleri düğüm başına birden çok yürütücü iş parçacığı kullanır. GPU kümeleri, aynı GPU'yi kullanmaya çalışan birden çok Spark görevi arasındaki çakışmaları önlemek için düğüm başına yalnızca bir yürütücü iş parçacığı kullanır. Bu genellikle GPU'lar için yazılmış kitaplıklar için en uygun olsa da, GPU kümelerinde maksimum paralelliğin azaltıldığı anlamına gelir, bu nedenle her denemenin GPU örneği türlerini seçerken kaç GPU kullanabileceğini unutmayın. Ayrıntılar için bkz . GPU özellikli Kümeler .
  • Otomatik ölçeklendirme kümelerinde kullanmayın SparkTrials . Yürütme başladığında Hyperopt paralellik değerini seçer. Küme daha sonra otomatik ölçeklenirse, Hyperopt yeni küme boyutundan yararlanamaz.

Sorun giderme

  • Bildirilen NaN kaybı (sayı değil) genellikle döndürülen NaN'ye fmin() geçirilen hedef işlev anlamına gelir. Bu, diğer çalıştırmaları etkilemez ve bunu güvenle yoksayabilirsiniz. Bu sonucu önlemek için hiper parametre alanını ayarlamayı veya nesnel işlevi değiştirmeyi deneyin.
  • Hyperopt stokastik arama algoritmaları kullandığından, kayıp genellikle her çalıştırmada monoton olarak azalmaz. Ancak bu yöntemler genellikle en iyi hiper parametreleri diğer yöntemlere göre daha hızlı bulur.
  • Hem Hyperopt hem de Spark, kısa deneme çalıştırmaları (düşük on saniye) için deneme süresine hakim olabilecek ek yük getirir. Gözlemlediğiniz hız küçük, hatta sıfır olabilir.

Örnek not defteri: Farklı boyutlardaki veri kümeleri için en iyi yöntemler

SparkTrials Spark çalışan düğümlerinde denemeleri çalıştırır. Bu not defteri, kullanırken SparkTrialsfarklı büyüklükteki veri kümelerini çalışan düğümlerine taşıma yönergelerini sağlar.

Farklı büyüklükteki not defteri siparişlerindeki veri kümelerini işleme

Not defterini alma