Tüm Ürünler
Search
Belge Merkezi

Platform For AI:Create a training job

Son Güncelleme:Oct 04, 2026

PAI-DLC ile tek düğümlü veya dağıtılmış eğitim işlerini hızla oluşturabilirsiniz. Kubernetes, hesaplama düğümlerini otomatik olarak sağlar; bu sayede makine satın almanıza veya çalışma zamanı ortamlarını manuel olarak yapılandırmanıza gerek kalmaz. TensorFlow, PyTorch ve diğer popüler derin öğrenme çerçevelerini destekler ve esnek kaynak yapılandırma seçenekleri sunar.

Hızlı başlangıç

Bu kılavuzda, MNIST el yazısı rakam tanıma örneği üzerinden DLC ile tek düğümlü, tek GPU'lu eğitimi ve çok düğümlü, çok GPU'lu dağıtılmış eğitimi adım adım inceleyeceksiniz. Ayrıntılar için Deep Learning Containers (DLC) ile çalışmaya başlayın konusuna bakın.

Konsol parametre referansı

Temel bilgiler

Parametre

Açıklama

Job Name

İş için kolayca tanınabilir bir ad belirleyin.

Tag

İşlerinize standart etiketler uygulayın. Etiketler; işleri etikete göre arşivleme, iş dağılımını analiz etme ve kaynak tüketimini izleme gibi faaliyetler için temel oluşturur. Aşağıdaki kısıtlamalar geçerlidir:

  • Anahtar kısıtlamaları: aliyun veya acs: ile başlamamalıdır. http:// veya https:// içermemelidir. Maksimum uzunluk 128 karakterdir. Anahtarlar yalnızca harf, rakam, tire (-), alt çizgi (_) ve nokta (.) içerebilir.

  • Değer kısıtlamaları: http:// veya https:// içermemelidir. Maksimum uzunluk 256 karakterdir. Birden fazla değeri virgülle ayırın.

Standart etiketleme hakkında rehberlik için DLC, DSW ve EAS için etiketlemeyi standartlaştırma konusuna bakın.

Task Description

İşin amacını, arka planını veya diğer bağlamsal bilgilerini açıklamak için bu alanı kullanın.

Ortam bilgileri

Parametre

Açıklama

Image Configuration

Alibaba Cloud Imagene ek olarak aşağıdaki görüntü türleri desteklenir:

  • Custom Image: PAI'ye eklenen özel görüntüleri kullanın. Görüntü deposunun genel olarak ayarlanması veya görüntünün Alibaba Cloud Container Registry (ACR) içinde depolanması gerekir. Ayrıntılar için Özel görüntüler konusuna bakın.

    Not

    Lingjun kaynaklarını seçtiğinizde ve özel bir görüntü kullandığınızda, yüksek performanslı RDMA ağından tam yararlanmak için RDMA sürücülerini manuel olarak yüklemeniz gerekir. Ayrıntılar için RDMA: yüksek performanslı ağ ile dağıtılmış eğitim konusuna bakın.

  • Image Address: Genel olarak erişilebilen özel veya resmi görüntü adreslerinin yapılandırılmasını destekler.

    • Özel görüntü adresleri için Kimlik bilgilerini girin seçeneğine tıklayın ve görüntü deposu kullanıcı adı ile parolasını yapılandırın.

    • Görüntü çekme hızını artırmak için Görüntü hızlandırma konusuna bakın.

Mount dataset

Veri kümeleri, model eğitimi için gereken veri dosyalarını sağlar. Aşağıdaki iki veri kümesi türü desteklenir:

  • Custom Dataset: Eğitim için gerekli veri dosyalarını depolamak üzere özel bir veri kümesi oluşturabilirsiniz. Yalnızca okuma modunu etkinleştirebilir ve sürüm listesinden bir veri kümesi sürümü seçebilirsiniz.

  • Public Dataset: PAI, yerleşik genel veri kümeleri sağlar; bu kümeler yalnızca salt okunur bağlantıyı destekler.

Mount Path: Veri kümesinin DLC konteynerinde bağlandığı yoldur, örneğin /mnt/data. Kodunuzda bu yol aracılığıyla veri kümesine erişebilirsiniz. Daha fazla bağlama yapılandırma ayrıntısı için Bulut depolamayı kullanma konusuna bakın.

Önemli

CPFS veri kümesi kullanıyorsanız, CPFS VPC'siyle eşleşen bir VPC'yi DLC için yapılandırmanız gerekir. Aksi takdirde, gönderilen iş uzun süre Hazırlanıyor ortamı durumunda kalabilir.

Mount storage

Gerekli verileri okumak veya ara ve sonuç dosyalarını depolamak için veri kaynağı yollarını doğrudan bağlayabilirsiniz.

  • Desteklenen veri kaynağı türleri: OSS, Genel amaçlı NAS, Extreme NAS, CPFS ve BMCPFS (yalnızca Lingjun kaynaklarıyla kullanılabilir).

  • Advanced Settings: Farklı veri kaynağı türleri, gelişmiş ayarlar aracılığıyla özelliğe özgü yetenekleri destekler. Örneğin:

    • OSS: Gelişmiş ayarlarda {"mountType":"ossfs"} değerini ayarlayarak OSS depolamayı ossfs kullanarak bağlayın.

    • Genel amaçlı NAS ve CPFS: DLC konteynerinden NAS aktarım hızını artırmak için gelişmiş ayarlarda nconnect parametresini ayarlayın. Ayrıntılar için Linux'ta NAS performansını nasıl artırabilirim? konusuna bakın. Örneğin, {"nconnect":"<sample value>"}; burada <sample value> belirli bir pozitif tamsayı ile değiştirilir.

Daha fazla bilgi için Bulut depolamayı kullanma konusuna bakın.

Startup Command

İş başlatma komutunu ayarlayın. Kabuk komutları desteklenir. DLC, MASTER_ADDR ve WORLD_SIZE gibi ortak PyTorch ve TensorFlow ortam değişkenlerini otomatik olarak enjekte eder. Bunlara $VARIABLE_NAME şeklinde başvurabilirsiniz. Örnek başlatma komutları:

  • Python çalıştırma: python -c "print('Hello World')"

  • PyTorch çok düğümlü, çok GPU'lu dağıtılmış eğitim: python -m torch.distributed.launch \ --nproc_per_node=2 \ --master_addr=${MASTER_ADDR} \ --master_port=${MASTER_PORT} \ --nnodes=${WORLD_SIZE} \ --node_rank=${RANK} \ train.py --epochs=100

  • Başlatma komutu olarak bir kabuk betiği yolu belirtme: /ml/input/config/launch.sh

Önemli

Kod için yapılandırılan bağlama yolu (örneğin /mnt/data), kod dosyalarınızın DLC konteynerindeki konumudur. Başlatma komutunuz, kod dosyalarına bu yolu kullanarak başvurmalıdır.

Örneğin, kod bağlama yolu /mnt/data ise ve kod dosyanız train.py ise başlatma komutu şu şekilde olmalıdır: python /mnt/data/train.py

Daha fazla ayarı genişletin: ortam değişkenleri, üçüncü taraf kitaplıklar, kod yapılandırması

Environment Variable

Otomatik olarak enjekte edilen ortak PyTorch ve TensorFlow ortam değişkenlerine ek olarak, Anahtar:Değer biçiminde özel ortam değişkenleri sağlayabilirsiniz. En fazla 20 ortam değişkeni desteklenir.

Third-party Libraries

Konteyner görüntüsünde bazı üçüncü taraf kitaplıklar eksikse, bunları Third-party Libraries aracılığıyla ekleyebilirsiniz. İki yöntem desteklenir:

  • Select from List: Kitaplık adlarını doğrudan aşağıdaki metin kutusuna girin. Birden fazla kitaplık adını boşlukla ayırın, örneğin griffon numpy pandas.

  • Directory of requirements.txt: Kitaplıkları bir requirements.txt dosyasına ekleyin, kod yapılandırması, veri kümesi veya doğrudan bağlama yoluyla DLC konteynerine yükleyin ve ardından konteynerdeki dosya yolunu metin kutusunda belirtin.

Code Builds

Eğitim için gereken kod dosyalarını DLC konteynerine yükleyin. İki yapılandırma yöntemi desteklenir:

  • Online configuration: Mevcut bir Git deponuz varsa ve erişim izinleriniz bulunuyorsa, DLC'nin iş kodunu alabilmesi için bunu Kod yapılandırması oluşturma yoluyla bağlayabilirsiniz.

  • Local Upload: Yerel kod dosyalarını yüklemek için image.png düğmesine tıklayın. Başarılı bir yüklemenin ardından, Mount pathnu konteyner içindeki belirli bir yola, örneğin /mnt/data konumuna yapılandırın.

Kaynak bilgileri

Parametre

Açıklama

Resource Type

Varsayılan olarak General Computing seçilir. Lingjun Intelligence Resources aşağıdaki bölgelerde kullanılabilir: Çin (Ulanqab), Singapur, Çin (Shenzhen), Çin (Pekin), Çin (Şanghay), Çin (Hangzhou), Çin (Guangzhou), Çin (Hong Kong), Malezya, Almanya ve Atlanta.

Source

  • Public Resources:

    • Faturalama modeli: Kullandıkça öde.

    • Sık olmayan iş yükleri ve sıkı zamanlama gereksinimi olmayan senaryolar için uygundur. Genel kaynaklarda kuyruk beklemesi gerekebilir.

    • Kaynak sınırları: En fazla 2 GPU ve 8 CPU çekirdeği. Bu sınırları aşmak için kotayı artırmak amacıyla hesap yöneticinizle iletişime geçin.

  • Resource Quota: Genel amaçlı hesaplama kaynaklarını veya Lingjun kaynaklarını içerir.

    • Faturalama modeli: Abonelik.

    • Yüksek iş hacmine sahip ve garantili kararlı kaynak gerektiren senaryolar için uygundur.

    • Özel parametreler:

      • Resource Quota: GPU, CPU ve diğer kaynak miktarını ayarlayın. Kaynak kotalarının nasıl hazırlanacağı hakkında bilgi için Kaynak kotası oluşturma konusuna bakın.

      • Öncelik: Eşzamanlı çalışan işlerin yürütme önceliğini gösterir. Değer aralığı: [1, 9]; burada 1 en düşük önceliktir.

    • Ön kontrol: İş gönderilmeden önce GPU modeli ve görüntü uyumluluğunu otomatik olarak doğrular, yapılandırma hatalarını erken aşamada yakalar ve iş başarısızlıklarını önler.

  • Preemptible Resources:

    • Faturalama modeli: Kullandıkça öde.

    • Maliyet duyarlı senaryolar için uygundur. Spot kaynak fiyatlandırması, kullandıkça öde modelinden daha düşüktür.

    • Kullanılabilirlik garantisi yoktur. Kaynaklar hemen kullanılamayabilir veya geri alınabilir. Daha fazla bilgi için Öncelikli iş kullanma konusuna bakın.

Framework

Aşağıdaki derin öğrenme eğitim çerçeveleri ve araçları desteklenir: TensorFlow, PyTorch, ElasticBatch, XGBoost, OneFlow, MPIJob, Ray, Özel, DataJuicer ve MPI.

Not

Resource Quota Lingjun kaynaklarına ayarlandığında yalnızca TensorFlow, PyTorch, ElasticBatch, MPIJob ve Ray işleri desteklenir.

Job Resource

Seçilen Frameworkye bağlı olarak Worker, PS, Chief, Evaluator ve GraphLearn düğüm türleri için kaynakları yapılandırabilirsiniz. Ray çerçevesini kullanırken, heterojen kaynakların karışık yürütülmesini sağlamak için Worker rollerini özelleştirmek üzere Add Role seçeneğine tıklayabilirsiniz.

  • Genel kaynakları kullanma: Aşağıdaki parametreler yapılandırılabilir:

    • Number of Nodes: DLC işini çalıştıran düğüm sayısı.

    • Resource Type: Örnek türünü seçin. Konsol ilgili fiyatı görüntüler. Daha fazla faturalama bilgisi için DLC faturalandırması konusuna bakın.

  • Kaynak kotalarını kullanma: Her düğüm türü için düğüm sayısını, CPU çekirdeklerini, GPU'ları, belleği (GiB) ve paylaşılan belleği (GiB) yapılandırabilirsiniz. Aşağıdaki özel parametreler de mevcuttur:

    • Node-Specific Scheduling: İşleri belirli hesaplama düğümlerinde çalıştırın.

    • Idle Resources: Boşta kalan kaynakları kullanırken, işler diğer kotalardan gelen boşta kapasitede çalışabilir; bu da kaynak kullanımını iyileştirir. Ancak, orijinal kota bu kaynaklara ihtiyaç duyduğunda boşta kaynak işleri otomatik olarak sonlandırılır ve kaynaklar iade edilir. Daha fazla bilgi için Boşta kaynakları kullanma konusuna bakın.

    • CPU Affinity: İşlemleri belirli CPU çekirdeklerine bağlamak, önbellek kaçışlarını ve bağlam anahtarlamalarını azaltarak performansı artırmak için CPU uyumluluğunu etkinleştirin. Yüksek performans ve gerçek zamanlı gereksinimleri olan senaryolar için uygundur.

  • Spot kaynaklarını kullanma: Düğüm sayısı ve örnek türüne ek olarak, spot kaynaklar için maksimum teklifi ayarlayan Bid Price parametresini yapılandırabilirsiniz. Teklif yöntemini seçmek için image düğmesine tıklayın:

    • İskontoya göre: Maksimum fiyat, örnek türünün piyasa fiyatına dayalıdır; piyasa fiyatının %10'u ile %90'ı arasında ayrık seçenekler sunulur ve bu değerler teklif üst sınırını temsil eder. Maksimum teklif piyasa fiyatından büyük veya ona eşit olduğunda ve yeterli kapasite mevcut olduğunda spot kaynaklar tahsis edilir.

    • Fiyata göre: Maksimum teklif aralığı, piyasa fiyatı aralığı içindedir.

Scheduling Policy

İş senaryolarınıza ve iş özelliklerinize göre konteyner kaynak zamanlama stratejisini özelleştirebilirsiniz:

  • Intelligent: GPU işleri en az sayıda GPU düğümünde yoğunlaştırılırken, CPU işleri CPU düğümlerine dağıtılır. Bu, varsayılan stratejidir.

  • Centralized: İşler en az sayıda düğümde yoğunlaştırılır. Bu strateji kaynak parçalanmasını azaltmaya yardımcı olur ve GPU model eğitimi için idealdir.

  • Spread: İşler düğümlere yayılır. Bu strateji, işin kuyruktan çıkma başarı oranını artırır ve dağıtılmış CPU işleri için idealdir.

Not

DLC, gönderilen bir işin örnek türünü doğrudan değiştirmeyi desteklemez. Örnek türünü değiştirmek için (örneğin, eRDMA yüksek performanslı ağını destekleyen ecs.ebmgn8v.48xlarge gibi bir örneğe geçiş yapmak amacıyla) Clone Job özelliğini kullanarak yeni bir iş oluşturun, hedef örnek türünü seçin ve işi gönderin. Platform, yüksek performanslı ağı otomatik olarak etkinleştirir ve NCCL ile ilgili parametreleri yapılandırır. Bir örneğin NVIDIA sürücüsünü ve CUDA sürümünü değiştirmek için sürücü sürümünü (örneğin 580 sürümüne) değiştirmek üzere örnek yapılandırma özelliğini kullanın. Platform, yeni yapılandırmaya göre ilgili DLC görüntüsünü otomatik olarak çeker ve çalışma zamanı ortamını günceller; böylece sürücü değişikliği, CUDA yükseltmesi veya GPU sürücü değişimi tamamlanır.

Daha fazla ayarı genişletin: maksimum çalışma süresi, saklama süresi, çerçeve gelişmiş ayarları

Maximum Duration

Bir işin çalışabileceği maksimum süreyi ayarlayın. Bu süreyi aşan işler otomatik olarak durdurulur. Varsayılan: 30 gün.

Retention Period

Tamamlanan veya başarısız olan işlerin ne kadar süreyle saklanacağını yapılandırın. Saklamanın kaynak tüketmeye devam ettiğini unutmayın. Bu süreyi aşan işler silinir.

Önemli

Silinen DLC işleri geri yüklenemez. Dikkatli ilerleyin.

Start Developer Machine

Kaynak kaynağı bir kaynak kotası olduğunda, çevrimiçi hata ayıklama için bir DSW örneği başlatabilirsiniz. İş genel bakış sayfasındaki örnek listesi alanında, Eylemler sütunundaki DSW seçeneğine tıklayarak örneğe erişin.

Advanced Framework Configuration

Yapılandırılabilir parametrelerin listesi ve değerleri için Gelişmiş parametre listesi bölümüne bakın.

  • ReleaseResourcePolicy, EnableNvidiaIBGDA, EnableNvidiaGDRCopy, EnablePaiNUMACoreBinding ve EnableResourcePreCheck parametreleri tüm çerçeveler tarafından desteklenir.

  • Çerçeve PyTorch olduğunda desteklenen parametreler şunlardır: createSvcForAllWorkers, customPortList ve customPortNumPerWorker.

    Önemli

    Lingjun kaynakları özel bağlantı noktası özelliği sağlamadığından, Lingjun kaynaklarıyla DLC işleri gönderirken customPortNumPerWorker parametresi desteklenmez.

  • Çerçeve Ray olduğunda desteklenen parametreler şunlardır: RayRuntimeEnv, RayRedisAddress, RayRedisUsername, RayRedisPassword, RaySubmitterBackoffLimit ve RayObjectStoreMemoryBytes. Ortam değişkenleri ve üçüncü taraf kitaplık yapılandırmalarının RayRuntimeEnv yapılandırması tarafından geçersiz kılınacağını unutmayın.

Aşağıdaki yapılandırma biçimleri desteklenir:

  • Düz metin: Her girişin anahtar=değer biçimini takip ettiği, virgülle (,) ayrılmış bir dize olarak yapılandırın. Anahtar, desteklenen bir gelişmiş parametredir ve değer ilgili parametre değeridir.

  • JSON

Tipik yapılandırma senaryoları:

  • Senaryo 1: PyTorch gelişmiş yapılandırması

    Gelişmiş yapılandırma parametreleri, Worker'lar arasında ağ bağlantısına olanak tanır ve daha esnek eğitim yaklaşımları sağlar. Örneğin, ek olarak açılan portları kullanarak DLC konteyneri içinde Ray gibi bir çerçeveyi başlatabilir ve bunu PyTorch ile birleştirerek gelişmiş dağıtılmış eğitim gerçekleştirebilirsiniz. Örnek yapılandırma:

    createSvcForAllWorkers=true,customPortNumPerWorker=100

    Ardından, Startup Commandnu kullanarak $JOB_NAME ve $CUSTOM_PORTS ortam değişkenlerini yapılandırabilir, etki alanı adını ve kullanılabilir bağlantı noktası numaralarını elde edebilir ve Ray gibi çerçeveleri başlatıp bunlara bağlanabilirsiniz.

  • Senaryo 2: Ray çerçevesi için RayRuntimeEnv'i manuel olarak yapılandırma (bağımlılıklar ve ortam değişkenleri dahil)

    Örnek yapılandırma:

    {"RayRuntimeEnv": "{pip: requirements.txt, env_vars: {key: value}}"}
  • Senaryo 3: Özel kaynak serbest bırakma ilkesi

    Şu anda desteklenen tek serbest bırakma ilkesi pod-exit'tir; bu ilke, Pod'unuz çıktığında kaynakları otomatik olarak serbest bırakır. Örnek yapılandırma:

    {
          "ReleaseResourcePolicy": "pod-exit"
        }

VPC yapılandırması

  • VPC yapılandırılmamışsa genel ağ ve genel ağ geçidi kullanılır. Genel ağ geçidinin bant genişliği sınırlı olduğundan, işler yürütme sırasında yavaşlayabilir veya düzgün çalışmayabilir.

  • Bir VPC yapılandırmak ve ilgili vSwitch ile güvenlik grubunu seçmek ağ bant genişliğini, kararlılığı ve güvenliği artırır. İşlerinizi çalıştıran küme, bu VPC içindeki hizmetlere de doğrudan erişebilir.

    Önemli
    • VPC kullanırken, iş kaynak grubu örneklerinin, veri kümesi depolamanın (OSS) ve kod deposunun aynı bölgedeki aynı VPC içinde bulunduğundan ve ağ bağlantısının kurulduğundan emin olun.

    • CPFS veri kümesi kullanırken, CPFS VPC'siyle eşleşen bir VPC yapılandırmanız gerekir. Aksi takdirde, gönderilen DLC eğitim işi uzun süre Hazırlanıyor ortamı durumunda kalabilir.

    • Lingjun spot kaynaklarını kullanarak DLC işleri gönderirken bir VPC yapılandırmanız gerekir.

    Ek olarak, Internet Access Gateway nu yapılandırabilirsiniz. Aşağıdaki iki seçenek desteklenir:

    • Public Gateway: Bant genişliği sınırlıdır. Yüksek eşzamanlılık dönemlerinde veya büyük dosyalar indirilirken ağ hızı talebi karşılamayabilir.

    • Private Gateway: Genel ağ geçidi bant genişliği sınırını aşmak için DLC VPC'sinde bir NAT ağ geçidi oluşturabilir, bir EIP ilişkilendirebilir ve SNAT girişlerini yapılandırabilirsiniz. Ayrıntılar için Özel ağ geçidi ile internet erişimini iyileştirme konusuna bakın.

Hata toleransı ve tanılama

Parametre

Açıklama

Automatic Fault Tolerance

Automatic Fault Tolerance özelliğini etkinleştirdikten ve ilgili parametreleri yapılandırdıktan sonra sistem iş izleme ve kontrol yetenekleri sağlar. Algoritma düzeyindeki hataları gerçek zamanlı olarak algılayabilir ve düzeltici işlem uygulayarak GPU kullanımını iyileştirir. Ayrıntılar için AIMaster: esnek ve otomatik hata toleransı motoru konusuna bakın.

Not

Otomatik hata toleransı etkinleştirildiğinde, sistem iş örneklerinin yanında bir AIMaster örneği başlatır; bu da ek hesaplama kaynakları tüketir. AIMaster örneği kaynak kullanım ayrıntıları:

  • Kaynak kotası: 1 CPU çekirdeği ve 1 GiB bellek.

  • Genel kaynaklar: ecs.c6.large örnek türünü kullanır.

Sanity Check

Sanity Check özelliğini etkinleştirdikten sonra, sağlık kontrolü eğitimde yer alan kaynakları kapsamlı bir şekilde inceler, arızalı düğümleri otomatik olarak izole eder ve arka planda otomatik işlemleri tetikler. Bu, eğitimin erken aşamalarında sorun oluşma olasılığını etkili bir şekilde azaltır ve eğitim başarı oranını artırır. Ayrıntılar için SanityCheck: Hesaplama sağlık kontrolleri konusuna bakın.

Not

Sağlık kontrolü özelliği yalnızca Lingjun kaynak kotalarıyla gönderilen ve GPU sayısı 0'dan büyük olan PyTorch eğitim işleri için desteklenir.

Roller ve izinler

Örnek RAM rolü yapılandırması aşağıda açıklanmıştır. Ayrıntılar için DLC için RAM rolü yapılandırma konusuna bakın.

Örnek RAM rolü

Açıklama

Default Role of PAI

Yalnızca MaxCompute ve OSS'e erişimi olan, daha ayrıntılı izinlere sahip AliyunPAIDLCDefaultRole hizmet rolüne dayanarak çalışır. PAI varsayılan rolüne dayalı olarak verilen geçici kimlik bilgileri:

  • MaxCompute tablolarına erişirken, DLC örneği sahibi ile aynı izinlere sahiptir.

  • OSS'e erişirken, yalnızca mevcut çalışma alanı için yapılandırılan varsayılan OSS paketlerine erişebilir.

Custom Role

Özel bir RAM rolü seçin veya belirtin. Örnek içinde STS geçici kimlik bilgilerini kullanarak bulut hizmetlerine erişirken, izinler özel rolün izinleriyle tutarlıdır.

Does Not Associate Role

DLC işiyle hiçbir RAM rolü ilişkilendirilmez. Bu, varsayılan seçenektir.

İlgili belgeler

SSS

S: Eğitim işi oluştururken montaj hedefi olan bir NAS veri kaynağı seçmemle ilgili BadRequest hatası alırsam ne yapmalıyım?

Bu hata, NAS veri kaynağında bir montaj hedefi olmadığında ortaya çıkar. NAS konsolunda yeni bir montaj hedefi oluşturun, ardından eğitim işini oluştururken Mount dataset veya Mount storage yapılandırmasında bunu veri kaynağı olarak seçin ve işi yeniden gönderin.

S: DLC eğitim işleri metrikleri Weights & Biases (W&B) platformuna aktarabilir mi?

Evet, DLC eğitim metriklerini W&B platformuna aktarmayı destekler ancak aşağıdaki ön koşulların karşılanması gerekir:

  • Ağ bağlantısı: PAI eğitim düğümlerinin api.wandb.ai genel uç noktasına erişebildiğinden emin olun. VPC kullanıyorsanız bir NAT ağ geçidi yapılandırın.

  • Anahtar yönetimi: W&B API anahtarını ortam değişkenleri aracılığıyla enjekte edin. Kodunuzda sabit kodlamayın.

  • Uyumluluk: Yalnızca hassas olmayan skaler metrikleri yükleyin. Ham verileri veya hassas model ayrıntılarını yüklemeyin.

S: Başarısız bir DLC işi hala iş listesinde görünür mü?

Görünüp görünmediği başarısızlık nedenine bağlıdır:

  • Yetersiz kaynak nedeniyle başarısız olan işler, DLC konsolu iş listesinde geçici olarak görünür ve silindikten sonra kaldırılır.

  • Geçersiz istek parametreleri nedeniyle API doğrudan bir hata döndürdüğünde (RequestID ile birlikte), iş listesinde herhangi bir kayıt tutulmaz. Hata mesajı yalnızca işlem sayfasında görüntülenir.

S: DLC işi oluştururken "hesap güvenlik koruması tetiklendi" veya "kaynak tahsisi askıya alındı" mesajını görürsem ne yapmalıyım?

Bu mesaj genellikle hesap risk kontrolü ilkeleri tarafından tetiklenir. Ödeme veya kaynak tahsisinin neden ilerleyemediğini teşhis etmek ve itiraz göndermek için Alibaba Cloud kendi kendine hizmet teşhis aracını (https://smartservice.console.alibabacloud.com/service/self-service-center/search?questionId=27591) kullanın. İtiraz onaylandıktan sonra işi oluşturmayı yeniden deneyebilirsiniz.

Ek

SDK veya CLI kullanarak iş oluşturma

Python SDK

Adım 1: Alibaba Cloud Credentials aracını yükleyin

Kaynakları yönetmek için bir Alibaba Cloud SDK kullanarak OpenAPI'yi çağırdığınızda, kimlik bilgilerinizi yapılandırmak üzere Credentials aracını yüklemeniz gerekir. Gereksinimler:

  • Python sürümü >= 3,7.

  • V2.0 Alibaba Cloud SDK'larını kullanın.

pip install alibabacloud_credentials

Adım 2: Hesabınızın AccessKey'ini edinin

Bu örnekte, erişim kimlik bilgilerini yapılandırmak için AccessKey (AK) bilgileri kullanılır. Kimlik bilgilerinin sızmasını önlemek için AccessKey'inizi ortam değişkenlerinde depolamanızı öneririz. ID ve secret için ortam değişkeni adları ALIBABA_CLOUD_ACCESS_KEY_ID ve ALIBABA_CLOUD_ACCESS_KEY_SECRET şeklindedir.

Adım 3: Python SDK'yı yükleyin

  • Çalışma alanı SDK'sını yükleyin.

    pip install alibabacloud_aiworkspace20210204==3.0.1
  • DLC SDK'sını yükleyin.

    pip install alibabacloud_pai_dlc20201203==1.4.17

Adım 4: İş gönderin

Genel kaynakları kullanarak iş gönderme

Aşağıdaki örnek kod, bir işin nasıl oluşturulup gönderileceğini göstermektedir:

İş oluşturma ve gönderme için örnek kod

#!/usr/bin/env python3

from __future__ import print_function

import json
import time

from alibabacloud_tea_openapi.models import Config
from alibabacloud_credentials.client import Client as CredClient
from alibabacloud_pai_dlc20201203.client import Client as DLCClient
from alibabacloud_pai_dlc20201203.models import (
    ListJobsRequest,
    ListEcsSpecsRequest,
    CreateJobRequest,
    GetJobRequest,
)

from alibabacloud_aiworkspace20210204.client import Client as AIWorkspaceClient
from alibabacloud_aiworkspace20210204.models import (
    ListWorkspacesRequest,
    CreateDatasetRequest,
    ListDatasetsRequest,
    ListImagesRequest,
    ListCodeSourcesRequest
)

def create_nas_dataset(client, region, workspace_id, name,
                       nas_id, nas_path, mount_path):
    '''Create a NAS dataset.
    '''
    response = client.create_dataset(CreateDatasetRequest(
        workspace_id=workspace_id,
        name=name,
        data_type='COMMON',
        data_source_type='NAS',
        property='DIRECTORY',
        uri=f'nas://{nas_id}.{region}{nas_path}',
        accessibility='PRIVATE',
        source_type='USER',
        options=json.dumps({
            'mountPath': mount_path
        })
    ))
    return response.body.dataset_id

def create_oss_dataset(client, region, workspace_id, name,
                       oss_bucket, oss_endpoint, oss_path, mount_path):
    '''Create an OSS dataset.
    '''
    response = client.create_dataset(CreateDatasetRequest(
        workspace_id=workspace_id,
        name=name,
        data_type='COMMON',
        data_source_type='OSS',
        property='DIRECTORY',
        uri=f'oss://{oss_bucket}.{oss_endpoint}{oss_path}',
        accessibility='PRIVATE',
        source_type='USER',
        options=json.dumps({
            'mountPath': mount_path
        })
    ))
    return response.body.dataset_id

def wait_for_job_to_terminate(client, job_id):
    while True:
        job = client.get_job(job_id, GetJobRequest()).body
        print('job({}) is {}'.format(job_id, job.status))
        if job.status in ('Succeeded', 'Failed', 'Stopped'):
            return job.status
        time.sleep(5)
    return None

def main():

    # Please make sure that your primary account has authorized DLC and has sufficient permissions.
    region_id = 'cn-hangzhou'
    # The Alibaba Cloud account AccessKey has access permissions to all APIs. It is recommended to use RAM users for API access or daily operations and maintenance.
    # It is highly recommended not to save AccessKey ID and AccessKey Secret directly in the project code to prevent leak risks, which could threaten the security of all resources under your account.
    # This example uses the Credentials SDK to read the AccessKey from environment variables by default for identity authentication.
    cred = CredClient()

    # 1. create client;
    workspace_client = AIWorkspaceClient(
        config=Config(
            credential=cred,
            region_id=region_id,
            endpoint="aiworkspace.{}.aliyuncs.com".format(region_id),
        )
    )

    dlc_client = DLCClient(
         config=Config(
            credential=cred,
            region_id=region_id,
            endpoint='pai-dlc.{}.aliyuncs.com'.format(region_id),
         )
    )

    print('------- Workspaces -----------')
    # Get the list of workspaces. You can also specify the workspace name you created in the workspace_name parameter.
    workspaces = workspace_client.list_workspaces(ListWorkspacesRequest(
        page_number=1, page_size=1, workspace_name='',
        module_list='PAI'
    ))
    for workspace in workspaces.body.workspaces:
        print(workspace.workspace_name, workspace.workspace_id,
              workspace.status, workspace.creator)

    if len(workspaces.body.workspaces) == 0:
        raise RuntimeError('found no workspaces')

    workspace_id = workspaces.body.workspaces[0].workspace_id

    print('------- Images ------------')
    # Get the list of images.
    images = workspace_client.list_images(ListImagesRequest(
        labels=','.join(['system.supported.dlc=true',
                         'system.framework=Tensorflow 1.15',
                         'system.pythonVersion=3.6',
                         'system.chipType=CPU'])))
    for image in images.body.images:
        print(json.dumps(image.to_map(), indent=2))

    image_uri = images.body.images[0].image_uri

    print('------- Datasets ----------')
    # Get the dataset.
    datasets = workspace_client.list_datasets(ListDatasetsRequest(
        workspace_id=workspace_id,
        name='example-nas-data', properties='DIRECTORY'))
    for dataset in datasets.body.datasets:
        print(dataset.name, dataset.dataset_id, dataset.uri, dataset.options)

    if len(datasets.body.datasets) == 0:
        # Create the dataset if the current dataset does not exist.
        dataset_id = create_nas_dataset(
            client=workspace_client,
            region=region_id,
            workspace_id=workspace_id,
            name='example-nas-data',
            # NAS file system ID.
            # General-purpose NAS: 31a8e4****.
            # Extreme NAS: Must start with "extreme-", e.g., extreme-0015****.
            # CPFS: Must start with "cpfs-", e.g., cpfs-125487****.
            nas_id='***',
            nas_path='/',
            mount_path='/mnt/data/nas')
        print('create dataset with id: {}'.format(dataset_id))
    else:
        dataset_id = datasets.body.datasets[0].dataset_id

    print('------- Code Sources ----------')
    # Get the list of code sources.
    code_sources = workspace_client.list_code_sources(ListCodeSourcesRequest(
        workspace_id=workspace_id))
    for code_source in code_sources.body.code_sources:
        print(code_source.display_name, code_source.code_source_id, code_source.code_repo)

    print('-------- ECS SPECS ----------')
    # Get the list of ECS specifications for DLC.
    ecs_specs = dlc_client.list_ecs_specs(ListEcsSpecsRequest(page_size=100, sort_by='Memory', order='asc'))
    for spec in ecs_specs.body.ecs_specs:
        print(spec.instance_type, spec.cpu, spec.memory, spec.memory, spec.gpu_type)

    print('-------- Create Job ----------')
    # Create a DLC job.
    create_job_resp = dlc_client.create_job(CreateJobRequest().from_map({
        'WorkspaceId': workspace_id,
        'DisplayName': 'sample-dlc-job',
        'JobType': 'TFJob',
        'JobSpecs': [
            {
                "Type": "Worker",
                "Image": image_uri,
                "PodCount": 1,
                "EcsSpec": ecs_specs.body.ecs_specs[0].instance_type,
            },
        ],
        "UserCommand": "echo 'Hello World' && ls -R /mnt/data/ && sleep 30 && echo 'DONE'",
        'DataSources': [
            {
                "DataSourceId": dataset_id,
            },
        ],
    }))
    job_id = create_job_resp.body.job_id

    wait_for_job_to_terminate(dlc_client, job_id)

    print('-------- List Jobs ----------')
    # Get the list of DLC jobs.
    jobs = dlc_client.list_jobs(ListJobsRequest(
        workspace_id=workspace_id,
        page_number=1,
        page_size=10,
    ))
    for job in jobs.body.jobs:
        print(job.display_name, job.job_id, job.workspace_name,
              job.status, job.job_type)
    pass

if __name__ == '__main__':
    main()

Abonelik kaynak kotası kullanarak iş gönderme

  1. PAI konsoluna giriş yapın.

  2. Çalışma alanı kimliğini görüntüleyin: Sol gezinme bölmesinde Çalışma Alanı Listesi'ne tıklayın. Hedef çalışma alanını bulun, adının yanındaki ⓘ simgesine tıklayın ve açılan bilgi panelinde Çalışma Alanı Kimliğini görüntüleyip kopyalayın.

  3. Özel kaynak grubunuzun kaynak kotası kimliğini görüntüleyin. Sol gezinme bölmesinde AI Hesaplama Kaynakları > Kaynak Kotası seçeneğine tıklayın. Genel Hesaplama Kaynakları sekmesine tıklayın ve kaynak kotası listesindeki Ad/Kimlik sütunundan hedef kaynak kotasının Kota Kimliğini edinin.

  4. Bir iş oluşturmak ve göndermek için aşağıdaki kodu kullanın. Kullanabileceğiniz genel görüntülerin listesi için Adım 2: Görüntü hazırlama konusuna bakın.

    from alibabacloud_pai_dlc20201203.client import Client
    from alibabacloud_credentials.client import Client as CredClient
    from alibabacloud_tea_openapi.models import Config
    from alibabacloud_pai_dlc20201203.models import (
        CreateJobRequest,
        JobSpec,
        ResourceConfig, GetJobRequest
    )
    
    # Initialize a Client to access the DLC API.
    region = 'cn-hangzhou'
    # The Alibaba Cloud account AccessKey has access permissions to all APIs. It is recommended to use RAM users for API access or daily operations and maintenance.
    # It is highly recommended not to save AccessKey ID and AccessKey Secret directly in the project code to prevent leak risks, which could threaten the security of all resources under your account.
    # This example uses the Credentials SDK to read the AccessKey from environment variables by default for identity authentication.
    cred = CredClient()
    client = Client(
        config=Config(
            credential=cred,
            region_id=region,
            endpoint=f'pai-dlc.{region}.aliyuncs.com',
        )
    )
    
    # Declare the resource configuration for the job. For image selection, refer to the public image list in the documentation, or you can pass in your own image address.
    spec = JobSpec(
        type='Worker',
        image=f'registry-vpc.cn-hangzhou.aliyuncs.com/pai-dlc/tensorflow-training:1.15-cpu-py36-ubuntu18.04',
        pod_count=1,
        resource_config=ResourceConfig(cpu='1', memory='2Gi')
    )
    
    # Declare the execution content of the job.
    req = CreateJobRequest(
            resource_id='<Replace with your own resource quota ID>',
            workspace_id='<Replace with your own WorkspaceID>',
            display_name='sample-dlc-job',
            job_type='TFJob',
            job_specs=[spec],
            user_command='echo "Hello World"',
    )
    
    # Submit the job.
    response = client.create_job(req)
    # Get the job ID.
    job_id = response.body.job_id
    
    # Query the job status.
    job = client.get_job(job_id, GetJobRequest()).body
    print('job status:', job.status)
    
    # View the command executed by the job.
    job.user_command
    

Spot kaynaklarını kullanarak iş gönderme

  • SpotDiscountLimit (Spot iskonto)

    #!/usr/bin/env python3
    
    from alibabacloud_tea_openapi.models import Config
    from alibabacloud_credentials.client import Client as CredClient
    
    from alibabacloud_pai_dlc20201203.client import Client as DLCClient
    from alibabacloud_pai_dlc20201203.models import CreateJobRequest
    
    region_id = '<region-id>'  # The region ID where the DLC job is located, for example, cn-hangzhou for China (Hangzhou).
    cred = CredClient()
    workspace_id = '12****'  # The workspace ID where the DLC job is located.
    
    dlc_client = DLCClient(
        Config(credential=cred,
               region_id=region_id,
               endpoint='pai-dlc.{}.aliyuncs.com'.format(region_id),
               protocol='http'))
    
    create_job_resp = dlc_client.create_job(CreateJobRequest().from_map({
        'WorkspaceId': workspace_id,
        'DisplayName': 'sample-spot-job',
        'JobType': 'PyTorchJob',
        'JobSpecs': [
            {
                "Type": "Worker",
                "Image": "dsw-registry-vpc.<region-id>.cr.aliyuncs.com/pai/pytorch-training:1.12-cpu-py39-ubuntu20.04",
                "PodCount": 1,
                "EcsSpec": 'ecs.g7.xlarge',
                "SpotSpec": {
                    "SpotStrategy": "SpotWithPriceLimit",
                    "SpotDiscountLimit": 0.4,
                }
            },
        ],
        'UserVpc': {
            "VpcId": "vpc-0jlq8l7qech3m2ta2****",
            "SwitchId": "vsw-0jlc46eg4k3pivwpz8****",
            "SecurityGroupId": "sg-0jl4bd9wwh5auei9****",
        },
        "UserCommand": "echo 'Hello World' && ls -R /mnt/data/ && sleep 30 && echo 'DONE'",
    }))
    job_id = create_job_resp.body.job_id
    print(f'jobId is {job_id}')
    
  • SpotPriceLimit (Spot fiyatı)

    #!/usr/bin/env python3
    
    from alibabacloud_tea_openapi.models import Config
    from alibabacloud_credentials.client import Client as CredClient
    
    from alibabacloud_pai_dlc20201203.client import Client as DLCClient
    from alibabacloud_pai_dlc20201203.models import CreateJobRequest
    
    # The region ID where the DLC job is located, for example, cn-hangzhou.
    region_id = '<region-id>'
    # Initialize the credentials client to handle authentication.
    cred = CredClient()
    # The workspace ID where the DLC job is located.
    workspace_id = '12****'
    
    # Initialize the DLC client with the required configuration.
    dlc_client = DLCClient(
        Config(credential=cred,
               region_id=region_id,
               endpoint='pai-dlc.{}.aliyuncs.com'.format(region_id),
               protocol='http'))
    
    # Create a DLC job with spot instance configuration (SpotWithPriceLimit).
    create_job_resp = dlc_client.create_job(CreateJobRequest().from_map({
        'WorkspaceId': workspace_id,
        'DisplayName': 'sample-spot-job',
        'JobType': 'PyTorchJob',
        'JobSpecs': [
            {
                "Type": "Worker",
                "Image": "dsw-registry-vpc.<region-id>.cr.aliyuncs.com/pai/pytorch-training:1.12-cpu-py39-ubuntu20.04",
                "PodCount": 1,
                "EcsSpec": 'ecs.g7.xlarge',
                "SpotSpec": {
                    "SpotStrategy": "SpotWithPriceLimit",
                    "SpotPriceLimit": 0.011,
                }
            },
        ],
        'UserVpc': {
            "VpcId": "vpc-0jlq8l7qech3m2ta2****",
            "SwitchId": "vsw-0jlc46eg4k3pivwpz8****",
            "SecurityGroupId": "sg-0jl4bd9wwh5auei9****",
        },
        "UserCommand": "echo 'Hello World' && ls -R /mnt/data/ && sleep 30 && echo 'DONE'",
    }))
    
    # Get and print the created job ID.
    job_id = create_job_resp.body.job_id
    print(f'jobId is {job_id}')
    

Temel yapılandırmalar aşağıda açıklanmıştır:

Parametre

Açıklama

SpotStrategy

Teklif stratejisi. Teklif türü yalnızca bu parametre SpotWithPriceLimit olarak ayarlandığında etkili olur.

SpotDiscountLimit

Teklif yöntemi olarak spot iskontosunu kullanır.

Not

  • SpotDiscountLimit ve SpotPriceLimit aynı anda ayarlanamaz.

  • Lingjun spot kaynakları için yalnızca SpotDiscountLimit teklif türü olarak desteklenir.

SpotPriceLimit

Teklif yöntemi olarak spot fiyatını kullanır.

UserVpc

Lingjun spot kaynaklarını kullanarak bir iş gönderirken gereklidir. İşin çalıştığı bölgenin VPC'sini, vSwitch'ini ve güvenlik grubu kimliğini yapılandırın.

Not

Bir API çağırarak veya SDK kullanarak (createJob) bir DLC işi oluştururken yerel kod dosyalarını doğrudan yükleyemezsiniz. Önce kodunuzu aşağıdaki konumlardan birine yükleyin:

  • Git deposu: AI Varlık Yönetimi'nde bir kod yapılandırması oluşturun ve bunu Git deposu URL'sine bağlayın.

  • OSS depolama: Kodu OSS'e yükledikten sonra, bir veri kümesi olarak bağlayarak iş için kullanılabilir hale getirin.

  • Özel görüntü: Kodu bir Docker görüntüsüne paketleyin.

Komut satırı

Adım 1: İstemciyi indirin ve kullanıcı kimlik doğrulamasını tamamlayın

İşletim sisteminize göre Linux 64-bit veya Mac istemci aracını indirin ve kullanıcı kimlik doğrulamasını tamamlayın. Ayrıntılar için Hazırlıklar konusuna bakın.

Adım 2: İş gönderin

  1. PAI konsoluna giriş yapın.

  2. Çalışma alanı listesi sayfasında çalışma alanı kimliğinizi (WorkspaceID) görüntülemek için aşağıdaki talimatları izleyin.

    Sol gezinme bölmesinde Çalışma Alanı Listesi'ne tıklayın. Hedef çalışma alanını bulun, adının sağındaki ⓘ simgesine tıklayın ve açılan bilgi panelinde Çalışma Alanı Kimliğini görüntüleyin.

  3. Kaynak kotası kimliğinizi görüntülemek için aşağıdaki talimatları izleyin.

    Sol gezinme bölmesinde AI Hesaplama Kaynakları > Kaynak Kotası seçeneğine tıklayın. Hedef kaynak türünüz için sekmeyi seçin (örneğin Genel Hesaplama Kaynakları) ve kaynak kotası listesindeki Ad/Kimlik sütunundan kaynak kotası kimliğini edinin.

  4. Aşağıdaki içeriğe dayanarak bir parametre dosyası hazırlayın tfjob.params. Parametre dosyasının nasıl yapılandırılacağı hakkında daha fazla bilgi için Gönderme komutları konusuna bakın.

    name=test_cli_tfjob_001
    workers=1
    worker_cpu=4
    worker_gpu=0
    worker_memory=4Gi
    worker_shared_memory=4Gi
    worker_image=registry-vpc.cn-beijing.aliyuncs.com/pai-dlc/tensorflow-training:1.12.2PAI-cpu-py27-ubuntu16.04
    command=echo good && sleep 120
    resource_id=<your_resource_quota_id>
    workspace_id=<your_workspace_id>
  5. params_file parametresini iletmek için aşağıdaki örnek kodu kullanın. Bu, DLC işini belirtilen çalışma alanına ve kaynak kotasına gönderir.

    ./dlc submit tfjob --job_file  ./tfjob.params
  6. Gönderdiğiniz DLC işini görüntülemek için aşağıdaki komutu kullanın.

    ./dlc get job <jobID>

Gelişmiş parametre listesi

Parametre (anahtar)

Desteklenen çerçeve türleri

Açıklama

Parametre değeri

ReleaseResourcePolicy

ALL

Özel bir kaynak serbest bırakma ilkesi yapılandırır. Bu parametre isteğe bağlıdır. Yapılandırmazsanız, iş sona erdiğinde tüm Pod kaynakları serbest bırakılır. Yapılandırırsanız desteklenen tek değer pod-exit'tir; bu değer, Pod çıktığında Pod'un kaynaklarını serbest bırakır.

pod-exit

EnableJumboFrame

ALL

Jumbo çerçevelerin etkinleştirilip etkinleştirilmeyeceğini belirtir. Bu parametre yalnızca AI Hesaplama Kaynakları - Genel Hesaplama 2.0 tarafından desteklenir. Varsayılan değer false'tur (devre dışı).

true veya false

EnableNvidiaIBGDA

ALL

GPU sürücüsü yüklendiğinde IBGDA'nın etkinleştirilip etkinleştirilmeyeceğini belirtir.

true veya false

EnableNvidiaGDRCopy

ALL

GDRCopy çekirdek modülünün yüklenip yüklenmeyeceğini belirtir. Şu anda yüklü sürüm 2.4.4'tür.

true veya false

EnablePaiNUMACoreBinding

ALL

NUMA'nın etkinleştirilip etkinleştirilmeyeceğini belirtir.

true veya false

EnableResourcePreCheck

ALL

Bir iş gönderdiğinizde, bu parametre kotadaki toplam kaynakların (düğüm teknik özellikleri) işteki tüm rollerin teknik özelliklerini karşılayıp karşılamadığını kontrol eder.

true veya false

createSvcForAllWorkers

PyTorch

Worker'lar arasında ağ bağlantısına izin verilip verilmeyeceğini belirtir.

  • true olarak ayarlanırsa, tüm PyTorch worker'ları birbirleriyle ağ üzerinden iletişim kurabilir.

  • false olarak ayarlanırsa veya yapılandırılmazsa, varsayılan olarak yalnızca master'a erişilebilir.

Bu etkinleştirildikten sonra, her worker'ın etki alanı adı worker adıdır, örneğin dlcxxxxx-master-0. İş adı (dlcxxxxx) daha sonra worker'a JOB_NAME ortam değişkeni aracılığıyla iletilir. Ardından erişmek istediğiniz belirli worker'ın etki alanı adını belirleyebilirsiniz.

true veya false

customPortList

PyTorch

Her worker'da açılan ağ bağlantı noktalarını tanımlamanıza olanak tanır. Worker'lar arasında ağ bağlantısını etkinleştirmek için bu parametreyi createSvcForAllWorkers ile birlikte kullanabilirsiniz.

Yapılandırılmazsa, varsayılan olarak master'da yalnızca 23456 bağlantı noktası açılır. Bu özel bağlantı noktası listesine 23456 bağlantı noktasını dahil etmediğinizden emin olun.

Önemli

Bu parametre, customPortNumPerWorker ile karşılıklı olarak dışlayıcıdır. Aynı anda ayarlamayın.

Noktalı virgülle ayrılmış bir dize kümesi; burada her dize tek bir bağlantı noktası numarası veya tire ile bağlanmış bir bağlantı noktası aralığıdır, örneğin 10000;10001-10010 (10000'den 10010'a kadar olan 11 ardışık bağlantı noktası numarasına dönüştürülür).

customPortNumPerWorker

PyTorch

Her worker'da açılması istenen ağ bağlantı noktası sayısını belirtmenize olanak tanır. Worker'lar arasında ağ bağlantısını etkinleştirmek için bu parametreyi createSvcForAllWorkers ile birlikte kullanabilirsiniz.

Yapılandırılmazsa, varsayılan olarak master'da yalnızca 23456 bağlantı noktası açılır. DLC, parametrede tanımlanan bağlantı noktası sayısına göre worker'lara rastgele bağlantı noktası atar. Atanan bağlantı noktası numaraları, incelemeniz için worker'a CUSTOM_PORTS ortam değişkeni aracılığıyla iletilir. Biçim, noktalı virgülle ayrılmış bağlantı noktası numarası kümesidir.

Önemli
  • Bu parametre, customPortList ile karşılıklı olarak dışlayıcıdır. Aynı anda ayarlamayın.

  • Lingjun hesaplama kaynakları özel bağlantı noktalarını desteklemez. Bu nedenle, Lingjun hesaplama kaynaklarını kullanarak bir DLC işi gönderdiğinizde customPortNumPerWorker parametresi desteklenmez.

Tamsayı (maksimum: 65536)

RayRuntimeEnv

Ray

Çerçeve Ray olduğunda, çalışma zamanı ortamını tanımlamak için RayRuntimeEnv öğesini manuel olarak yapılandırabilirsiniz.

Önemli

Ortam değişkenleri ve üçüncü taraf kitaplık yapılandırmaları bu yapılandırma tarafından geçersiz kılınır.

Ortam değişkenlerini ve üçüncü taraf kitaplıkları yapılandırın ({pip: requirements.txt, env_vars: {key: value}})

RayRedisAddress

Ray

Harici GCS Redis adresi.

Dize

RayRedisUsername

Ray

Harici GCS Redis kullanıcı adı.

Dize

RayRedisPassword

Ray

Harici GCS Redis parolası.

Dize

RaySubmitterBackoffLimit

Ray

Gönderen için yeniden deneme sayısı.

Pozitif tamsayı (int)

RayObjectStoreMemoryBytes

Ray

Bir düğüm için paylaşılan belleği yapılandırır. Örneğin, her düğüm için 1 GiB paylaşılan bellek yapılandırmak için aşağıdaki yapılandırmayı kullanın:

{
      "RayObjectStoreMemoryBytes": "1073741824"
    }

Pozitif tamsayı (int)