إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
في هذا المقال، تقوم بنشر نموذج الطقس Aurora المضبوط بدقة كنقطة نهاية HTTP دائمة باستخدام Ray Serve على خدمة Azure Kubernetes (AKS). تستخدم هذه الطريقة موردا من RayService للخدمة طويلة الأمد وليست تحت سيطرة القبول من قبل Kueue.
هام
يتم ذكر البرامج مفتوحة المصدر في جميع وثائق وعينات AKS. يتم استبعاد البرامج التي تنشرها من اتفاقيات مستوى خدمة AKS والضمان المحدود ودعم Azure. أثناء استخدامك للتكنولوجيا مفتوحة المصدر جنبا إلى جنب مع AKS، راجع خيارات الدعم المتوفرة من المجتمعات المحلية المعنية ومشرفي المشاريع لوضع خطة.
تتحمل Microsoft مسؤولية بناء الحزم مفتوحة المصدر التي ننشرها على AKS. تتضمن هذه المسؤولية امتلاك ملكية كاملة لعملية البناء والمسح الضوئي والتوقيع والتحقق من الصحة وإصلاحها، بالإضافة إلى التحكم في الثنائيات في صور الحاوية. لمزيد من المعلومات، راجع إدارة الثغرات الأمنية لتغطية دعم AKSوAKS.
المتطلبات الأساسية
- تم نشر البنية التحتية بعد بنية النشر لبنية راي وكوي على نظام AKS.
- تم إنشاء مساحة الأسماء وحساب الخدمة بعد تكوين طوابير Kueue لأحمال عمل Ray على AKS.
- تم الانتهاء من ضبط أورورا الدقيق بعد ضبط نموذج الطقس في أورورا مع راي على AKS - يجب أن توجد نقطة تفتيش LoRA في
aurora/checkpoints/<run-id>/last.safetensorsمخزن الكتل. -
envsubstتم تثبيت (gettextالحزمة على لينكس،brew install gettextعلى macOS).
تعيين متغيرات البيئة
انتقل إلى مثال الخدمة عبر الإنترنت في المستودع المستنسخ وقم بتكوين المتغيرات البيئية المطلوبة:
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
Note
AURORA_RUN_ID هو JOB_NAME من جولة Aurora المكتملة الخاصة بك. يمكنك العثور عليه مع:
az storage blob list -c aurora --prefix checkpoints/ \
--account-name ${AZURE_STORAGE_ACCOUNT_NAME} --auth-mode login -o table
نشر الخدمة
نشر خدمة Ray:
./submit-service.sh
يقوم السكربت بإنشاء خريطة تكوين من كود التطبيق الخدم، ويعرض ملف RayService عبر envsubst، ويطبقه. يقوم مشغل KubeRay بإنشاء عنقود Ray وينشر تطبيق Serve.
نصيحة
قم بتشغيل ./submit-service.sh --dry-run التحقق من صحة البيان المعروض دون تطبيقه على العنقود.
Note
راي سيرفيس ليست تحت سيطرة القبول من قبل كوي. عبء العمل في الخدمة طويل الأمد ويحتاج إلى موارد مخصصة بدلا من الدلالات الدفعية.
تحقق من النشر
راقب حتى تبلغ راي سيرفيس عن التشغيل:
kubectl -n ray get rayservice ${SERVICE_NAME} -w
الإخراج المتوقع:
NAME SERVICE STATUS NUM SERVE ENDPOINTS
aurora-serve Running 1
اختبار نقطة النهاية
قم بنقل خدمة الخدمة وإرسال طلبات الاختبار:
kubectl -n ray port-forward svc/${SERVICE_NAME}-serve-svc 8000:8000
فحص الصحة:
curl http://localhost:8000${ROUTE_PREFIX}
الإخراج المتوقع:
{"status":"ok","gpu_name":"NVIDIA A100-SXM4-80GB","run_id":"<your-run-id>","adapter":"checkpoints/<your-run-id>/last.safetensors"}
طلب التوقعات الطقسية:
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}'
الإخراج المتوقع:
{
"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",
...
}
تتضمن الاستجابة إحصائيات ملخصة لكل متغير (الشكل، المتوسط، الأدنى، القصوى) لكل متغير سطحي في التوقعات.
مرجع التكوين
| المتغير | افتراضي | الوصف |
|---|---|---|
AZURE_STORAGE_ACCOUNT_NAME |
(مطلوب) | حساب التخزين من الوحدة 1 |
AURORA_RUN_ID |
(مطلوب) | JOB_NAME من جولة أورورا المكتملة من الضبط الدقيق |
AURORA_INPUT_CONTAINER |
aurora |
حاوية مع بيانات init |
AURORA_ADAPTER_CONTAINER |
aurora |
حاوية مع نقطة تفتيش LoRA |
AURORA_INIT_FILE |
init-2021-01-01-00z.npz |
ملف init الافتراضي للطلبات |
AURORA_LEAD_HOURS |
6 |
وقت التوقع الافتراضي (يجب أن يكون مضاعفا ل6 ساعات) |
AURORA_LORA_RANK |
8 |
رتبة LoRA (يجب أن تتناسب مع التدريب الأساسي) |
AURORA_REQUIRE_GPU_NAME |
A100 |
فحص اسم بطاقة الرسوميات (فارغ لتخطي) |
SERVICE_NAME |
aurora-serve |
اسم مورد RayService |
ROUTE_PREFIX |
/aurora |
بادئة مسار HTTP لنقطة نهاية الخدمة |
CONFIGMAP_NAME |
aurora-serve-scripts |
اسم خريطة التكوين التي تحتوي على سكريبت التقديم |
تنظيف الموارد
حذف خدمة RayService وخريطة الإعدادات الخاصة بها:
kubectl -n ray delete rayservice ${SERVICE_NAME}
kubectl -n ray delete configmap ${CONFIGMAP_NAME}