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 makalede, Azure Kubernetes Service (AKS) üzerinde Ray Serve kullanarak ince ayarlı Aurora hava durumu modelini kalıcı bir HTTP uç noktası olarak dağıtacaksınız. Bu yöntem, uzun süreli hizmet için bir RayService kaynağı kullanır ve Kueue tarafından erişim denetiminde değildir.
Önemli
AKS dokümantasyonu ve örneklerinde açık kaynaklı yazılımdan bahsedilmektedir. Dağıttığınız yazılım, AKS hizmet düzeyi anlaşmalarından, sınırlı garanti ve Azure desteğinden hariç tutulur. AKS ile birlikte açık kaynak teknolojisini kullanırken, bir plan geliştirmek için ilgili topluluklar ve proje sorumlularından mevcut olan destek seçeneklerine danışın.
Microsoft, AKS üzerinde dağıttığımız açık kaynak paketlerinin oluşturulmasından sorumluluk alır. Bu sorumluluk, yapı, tarama, imzalama, doğrulama ve hızlı düzeltme sürecinin tam sahipliğini içermenin yanı sıra, konteyner görüntülerindeki ikili dosyaların kontrolünü de kapsar. Daha fazla bilgi için AKS için güvenlik açığı yönetimi ve AKS destek kapsamı başlıklarına bakın.
Önkoşullar
- AKS üzerinde Ray ve Kueue için altyapı dağıtma adımının ardından dağıtılan altyapı.
- AKS üzerinde Ray iş yükleri için Kueue kuyruklarını yapılandırma izlenerek oluşturulan ad alanı ve hizmet hesabı.
- Aurora ince ayarı tamamlandı AKS üzerinde Ray ile Aurora hava durumu modelinde ince ayar yapın. LoRA denetim noktası blob depolamada
aurora/checkpoints/<run-id>/last.safetensorsbulunmalıdır. -
envsubstyüklü (gettextLinux'ta,brew install gettextmacOS'ta paket).
Ortam değişkenlerini ayarlama
Kopyalanan depodaki çevrimiçi sunum örneğine gidin ve gerekli ortam değişkenlerini yapılandırın:
cd <path-to-cloned-repo>/AKS/examples/kueue-and-ray-on-aks/3-workloads/online-serving
export AZURE_STORAGE_ACCOUNT_NAME=$(terraform -chdir=../../1-infrastructure/terraform output -raw storage_account_name)
export AURORA_RUN_ID=<your-aurora-finetune-job-name>
source env.example
Not
AURORA_RUN_ID, tamamladığınız Aurora ince ayar çalıştırmasındaki JOB_NAME değeridir. Bu adresi şu şekilde bulabilirsiniz:
az storage blob list -c aurora --prefix checkpoints/ \
--account-name ${AZURE_STORAGE_ACCOUNT_NAME} --auth-mode login -o table
Hizmeti devreye alın
RayService'i dağıtma:
./submit-service.sh
Betik, sunum uygulaması kodundan bir ConfigMap oluşturur, envsubst aracılığıyla RayService bildirimini oluşturur ve uygular. KubeRay işleci Ray kümesini oluşturur ve Serve uygulamasını dağıtır.
Tip
İşlenen bildirimi kümeye uygulamadan doğrulamak için komutunu çalıştırın ./submit-service.sh --dry-run .
Not
RayService, Kueue tarafından kabul denetimine tabi değildir. İş yüklerine hizmet sunma uzun sürelidir ve toplu iş kuyruğu semantiği yerine ayrılmış kaynaklara ihtiyaç duyar.
Dağıtımı doğrulayın.
RayService Running durumunu bildirene kadar bekleyin:
kubectl -n ray get rayservice ${SERVICE_NAME} -w
Beklenen çıkış:
NAME SERVICE STATUS NUM SERVE ENDPOINTS
aurora-serve Running 1
Uç noktayı test edin
serve hizmetine port yönlendirmesi yapın ve test istekleri gönderin:
kubectl -n ray port-forward svc/${SERVICE_NAME}-serve-svc 8000:8000
Durum denetimi:
curl http://localhost:8000${ROUTE_PREFIX}
Beklenen çıkış:
{"status":"ok","gpu_name":"NVIDIA A100-SXM4-80GB","run_id":"<your-run-id>","adapter":"checkpoints/<your-run-id>/last.safetensors"}
Tahmin isteği:
curl -X POST http://localhost:8000${ROUTE_PREFIX} \
-H 'Content-Type: application/json' \
-d '{"init_file": "init-2021-01-01-00z.npz", "lead_hours": 6}'
Beklenen çıkış:
{
"init_file": "init-2021-01-01-00z.npz",
"lead_hours": 6,
"surface_variables": {
"2t": {"shape": [1,1,52,100], "mean": 298.76, "min": 272.0, "max": 302.0},
"10u": {"shape": [1,1,52,100], "mean": -2.21, "min": -18.0, "max": 15.38},
"10v": {"shape": [1,1,52,100], "mean": 0.92, "min": -13.88,"max": 18.88},
"msl": {"shape": [1,1,52,100], "mean": 101320.07, "min": 100352.0, "max": 101888.0}
},
"gpu_name": "NVIDIA A100-SXM4-80GB",
...
}
Yanıt, tahmindeki her yüzey değişkeni için değişken başına özet istatistiklerini (şekil, ortalama, min, max) içerir.
Yapılandırma referansı
| Değişken | Varsayılan | Description |
|---|---|---|
AZURE_STORAGE_ACCOUNT_NAME |
(gerekli) | Modül 1'den depolama hesabı |
AURORA_RUN_ID |
(gerekli) | Tamamlanmış bir aurora-finetune çalışmasından JOB_NAME |
AURORA_INPUT_CONTAINER |
aurora |
Başlatma verileri içeren kapsayıcı |
AURORA_ADAPTER_CONTAINER |
aurora |
LoRA kontrol noktası içeren kapsayıcı |
AURORA_INIT_FILE |
init-2021-01-01-00z.npz |
İstekler için varsayılan başlatma dosyası |
AURORA_LEAD_HOURS |
6 |
Varsayılan tahmin ön süresi (6 saatin katı olmalıdır) |
AURORA_LORA_RANK |
8 |
LoRA derecesi (eğitimle eşleşmelidir) |
AURORA_REQUIRE_GPU_NAME |
A100 |
GPU adı kontrolü (atlamak için boş bırakın) |
SERVICE_NAME |
aurora-serve |
RayService kaynağının adı |
ROUTE_PREFIX |
/aurora |
Hizmet uç noktası için HTTP yol ön eki |
CONFIGMAP_NAME |
aurora-serve-scripts |
Hizmet betiğini tutan ConfigMap'in adı |
Kaynakları temizle
RayService'i ve ConfigMap'ini silin:
kubectl -n ray delete rayservice ${SERVICE_NAME}
kubectl -n ray delete configmap ${CONFIGMAP_NAME}