كيفية نشر Deepseek R1 في السحابة؟

@apidog

@apidog

14 يونيو 2025

كيفية نشر Deepseek R1 في السحابة؟

هل تبحث عن نشر Deepseek R1 — واحد من أقوى نماذج اللغة الكبيرة — على منصة سحابية؟ سواء كنت تعمل على AWS، Azure، أو Digital Ocean، فإن هذا الدليل قد غطى كل ما تحتاجه. بحلول نهاية هذه المقالة، سيكون لديك خارطة طريق واضحة لتشغيل نموذجك Deepseek R1 بسهولة. بالإضافة إلى ذلك، سنساعدك في معرفة كيف يمكن لأدوات مثل Apidog تسهيل اختبار واجهات برمجة التطبيقات خلال عملية النشر.

💡
قم بتنزيل Apidog مجانًا اليوم لاختبار واجهات برمجة التطبيقات الخاصة بك بسهولة وضمان تكامل سلس مع النموذج الذي قمت بنشره.
button

لماذا نشر Deepseek R1 في السحابة؟

نشر Deepseek R1 في السحابة لا يتعلق فقط بالقدرة على التوسع؛ بل يتعلق بالاستفادة من قوة وحدات معالجة الرسومات (GPUs) والبنية التحتية بدون خوادم لإدارة أحمال العمل الضخمة بكفاءة. مع وجود 671 مليار معلمة، فإن Deepseek R1 يتطلب أجهزة قوية وتكوينات محسنة. تقدم السحابة المرونة والفعالية من حيث التكلفة والموارد عالية الأداء التي تجعل نشر مثل هذه النماذج ممكنًا حتى للفرق الأصغر حجمًا.

في هذا الدليل، سنأخذك عبر عملية نشر Deepseek R1 على ثلاث منصات شائعة: AWS، Azure، وDigital Ocean. كما سنشارك نصائح لتحسين الأداء ودمج أدوات مثل Apidog لإدارة واجهات برمجة التطبيقات.

تحضير بيئتك

قبل القفز إلى عملية النشر، دعنا نعد بيئتنا. يتضمن ذلك إعداد رموز المصادقة، وضمان توفر وحدات معالجة الرسومات، وتنظيم الملفات الخاصة بك.

رموز المصادقة

تتطلب كل مزود خدمة سحابية شكلًا من أشكال المصادقة. على سبيل المثال:

تعتبر هذه الرموز ضرورية لأنها تسمح بالتواصل الآمن بين جهازك المحلي ومنصة السحابة.

تنظيم الملفات

نظم ملفاتك بشكل منهجي. إذا كنت تستخدم Docker (وهو موصى به بشدة)، أنشئ ملف Dockerfile يحتوي على جميع الاعتمادات. توفر أدوات مثل Tensorfuse قوالب مسبقة البناء لنشر Deepseek R1. وبالمثل، يجب على مستخدمي IBM Cloud تحميل ملفات النموذج الخاصة بهم إلى Object Storage قبل المتابعة.

الخيار 1: نشر Deepseek R1 على AWS باستخدام Tensorfuse

لنبدأ مع خدمات أمازون ويب (AWS)، واحدة من أكثر المنصات السحابية استخدامًا. AWS مثل سكين الجيش السويسري - تحتوي على أدوات لكل مهمة، من التخزين إلى قوة الحوسبة. في هذا القسم، سنركز على نشر Deepseek R1 باستخدام Tensorfuse، مما يبسط العملية بشكل كبير.

لماذا البناء مع Deepseek-R1؟

قبل الغوص في التفاصيل الفنية، دعنا نفهم لماذا Deepseek R1 يبرز:

تجعل هذه القوة من Deepseek R1 خيارًا ممتازًا للتطبيقات الجاهزة للإنتاج، من الروبوتات المحادثة إلى تحليلات البيانات على مستوى المؤسسات.

المتطلبات السابقة

قبل أن تبدأ، تأكد من أنك قد قمت بتكوين Tensorfuse على حساب AWS الخاص بك. إذا لم تقم بذلك بعد، اتبع دليل البداية. هذه الإعدادات مثل إعداد مساحة عملك قبل بدء مشروع - مما يضمن أن كل شيء في مكانه لعملية سلسة.

الخطوة 1: تعيين رمز مصادقة واجهة برمجة التطبيقات الخاصة بك

قم بإنشاء سلسلة عشوائية ستستخدم كرمز مصادقة واجهة برمجة التطبيقات الخاصة بك. قم بتخزينها كسر في Tensorfuse باستخدام الأمر التالي:

tensorkube secret create vllm-token VLLM_API_KEY=vllm-key --env default

تأكد من أنه في الإنتاج، تستخدم رمزًا تم إنشاؤه عشوائيًا. يمكنك إنشاء واحد بسرعة باستخدام openssl rand -base64 32 وتذكر الاحتفاظ به في مكان آمن حيث إن أسرار Tensorfuse غير شفافة.

الخطوة 2: إعداد Dockerfile

سنستخدم الصورة الرسمية لـ vLLM OpenAI كصورة أساسية لدينا. تأتي هذه الصورة مع جميع الاعتمادات اللازمة لتشغيل vLLM.

إليك تكوين Dockerfile:

# Dockerfile لـ Deepseek-R1-671B
FROM vllm/vllm-openai:latest
# تفعيل نقل HF Hub
ENV HF_HUB_ENABLE_HF_TRANSFER 1
# فتح المنفذ 80
EXPOSE 80
# نقطة الدخول مع مفتاح واجهة برمجة التطبيقات
ENTRYPOINT ["python3", "-m", "vllm.entrypoints.openai.api_server", \
            "--model", "deepseek-ai/DeepSeek-R1", \
            "--dtype", "bfloat16", \
            "--trust-remote-code", \
            "--tensor-parallel-size","8", \
            "--max-model-len", "4096", \
            "--port", "80", \
            "--cpu-offload-gb", "80", \
            "--gpu-memory-utilization", "0.95", \
            "--api-key", "${VLLM_API_KEY}"]

يضمن هذا التكوين أن خادم vLLM مُحسّن وفقًا للمتطلبات المحددة لـ Deepseek R1، بما في ذلك استخدام ذاكرة GPU والتوازي النسيجي.

الخطوة 3: تكوين النشر

قم بإنشاء ملف deployment.yaml لتعريف إعدادات النشر الخاصة بك:

# deployment.yaml لـ Deepseek-R1-671B
gpus: 8
gpu_type: h100
secret:
  - vllm-token
min-scale: 1
readiness:
  httpGet:
    path: /health
    port: 80

قم بنشر خدمتكم باستخدام الأمر التالي:

tensorkube deploy --config-file ./deployment.yaml

يقوم هذا الأمر بإعداد خدمة LLM جاهزة للإنتاج مع إمكانية التحجيم التلقائي لاستقبال الطلبات المصرح بها.

الخطوة 4: الوصول إلى التطبيق المُنشر

بمجرد نجاح النشر، يمكنك اختبار نقطة النهاية الخاصة بك باستخدام curl أو مكتبة عميل OpenAI الخاصة بـ Python. إليك مثالًا باستخدام curl:

curl --request POST \
  --url YOUR_APP_URL/v1/completions \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer vllm-key' \
  --data '{
    "model": "deepseek-ai/DeepSeek-R1",
    "prompt": "أرض إلى Robotland. ماذا يحدث؟",
    "max_tokens": 200
}'

لمستخدمي Python، إليك مقتطف عينة:

import openai
# استبدل مع عنوان URL ورمز API الفعليين الخاصين بك
base_url = "YOUR_APP_URL/v1"
api_key = "vllm-key"
openai.api_base = base_url
openai.api_key = api_key
response = openai.Completion.create(
    model="deepseek-ai/DeepSeek-R1",
    prompt="مرحبًا، Deepseek R1! كيف حالك اليوم؟",
    max_tokens=200
)
print(response)

الخيار 2: نشر Deepseek R1 على Azure

يعد نشر Deepseek R1 على Azure Machine Learning (Azure ML) عملية سهلة تعتمد على البنية التحتية القوية للمنصة والأدوات المتقدمة للتنبؤ في الوقت الفعلي. في هذا القسم، سنأخذك عبر نشر Deepseek R1 باستخدام نقاط النهاية المدارة على Azure ML. تضمن هذه الطريقة القدرة على التوسع والكفاءة وسهولة الإدارة.

الخطوة 1: إنشاء بيئة مخصصة لـ vLLM على Azure ML

للبدء، نحتاج إلى إنشاء بيئة مخصصة مصممة لـ vLLM، والتي ستعمل كعمود فقري لنشر Deepseek R1. تم تحسين إطار عمل vLLM للتنبؤ عالي الإنتاجية، مما يجعله مثاليًا للتعامل مع نماذج اللغة الكبيرة مثل Deepseek R1.

1.1: تعريف Dockerfile:نبدأ بإنشاء Dockerfile التي تحدد البيئة لنموذجنا. تتضمن حاوية vLLM الأساسية جميع الاعتمادات والسائقين اللازمة، مما يضمن إعدادًا سلسًا:

FROM vllm/vllm-openai:latest
ENV MODEL_NAME deepseek-ai/DeepSeek-R1-Distill-Llama-8B
ENTRYPOINT python3 -m vllm.entrypoints.openai.api_server --model $MODEL_NAME $VLLM_ARGS

يسمح لنا هذا Dockerfile بتمرير اسم النموذج عبر متغير بيئي (MODEL_NAME)، مما يتيح المرونة في اختيار النموذج المطلوب أثناء النشر. على سبيل المثال، يمكنك بسهولة التبديل بين إصدارات مختلفة من Deepseek R1 دون تعديل الشيفرة الأساسية.

1.2: تسجيل الدخول إلى Workspace تحت Azure ML: بعد ذلك، قم بتسجيل الدخول إلى مساحة العمل الخاصة بك في Azure ML باستخدام Azure CLI. استبدل <معرف الاشتراك>، <اسم مساحة عمل Azure Machine Learning>، و<مجموعة الموارد> بتفاصيلك المحددة:

az account set --subscription <معرف الاشتراك>
az configure --defaults workspace=<اسم مساحة عمل Azure Machine Learning> group=<مجموعة الموارد>

تضمن هذه الخطوة أن جميع الأوامر اللاحقة ستنفذ ضمن سياق مساحة العمل الخاصة بك.

1.3: إنشاء ملف تكوين البيئة: الآن، قم بإنشاء ملف environment.yml لتعريف إعدادات البيئة. يشير هذا الملف إلى Dockerfile الذي أنشأناه سابقًا:

$schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json
name: r1
build:
  path: .
  dockerfile_path: Dockerfile

1.4: بناء البيئة: مع إعداد ملف التكوين، قم ببناء البيئة باستخدام الأمر التالي:

az ml environment create -f environment.yml

تقوم هذه الخطوة بتجميع البيئة، مما يجعلها متاحة للاستخدام في نشرك.

الخطوة 2: نشر نقطة النهاية المدارة على Azure ML

بمجرد إعداد البيئة، ننتقل إلى نشر نموذج Deepseek R1 باستخدام نقاط النهاية المدارة على Azure ML. تقدم هذه النقاط القدرة على التنبؤ في الوقت الحقيقي مع قابلية التوسع، مما يجعلها مثالية للتطبيقات الجاهزة للإنتاج.

2.1: إنشاء ملف تكوين نقطة النهاية: ابدأ بإنشاء ملف endpoint.yml لتعريف نقطة النهاية المدارة:

$schema: https://azuremlsdk2.blob.core.windows.net/latest/managedOnlineEndpoint.schema.json
name: r1-prod
auth_mode: key

يحدد هذا التكوين اسم نقطة النهاية (r1-prod) ونمط المصادقة (key). يمكنك استرداد URI scoring الخاصة بنقطة النهاية وAPI keys لاحقًا لأغراض الاختبار.

2.2: إنشاء نقطة النهاية: استخدم الأمر التالي لإنشاء نقطة النهاية:

az ml online-endpoint create -f endpoint.yml

2.3: استرداد عنوان الصورة Docker: قبل المتابعة، استرد عنوان الصورة Docker التي تم إنشاؤها في الخطوة 1. انتقل إلى Azure ML Studio > البيئات > r1 للعثور على عنوان الصورة. سيبدو شيئًا مثل هذا:

xxxxxx.azurecr.io/azureml/azureml_xxxxxxxx

2.4: إنشاء ملف تكوين النشر: بعد ذلك، أنشئ ملف deployment.yml لتكوين إعدادات النشر. يحدد هذا الملف النموذج، نوع الوحدة، والمعلمات الأخرى:

$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: current
endpoint_name: r1-prod
environment_variables:
  MODEL_NAME: deepseek-ai/DeepSeek-R1-Distill-Llama-8B
  VLLM_ARGS: "" # المعلمات الاختيارية لتشغيل VLLM
environment:
  image: xxxxxx.azurecr.io/azureml/azureml_xxxxxxxx # ألصق عنوان صورة Docker هنا
  inference_config:
    liveness_route:
      port: 8000
      path: /ping
    readiness_route:
      port: 8000
      path: /health
    scoring_route:
      port: 8000
      path: /
instance_type: Standard_NC24ads_A100_v4
instance_count: 1
request_settings: # اختياري ولكن مهم لتحسين الإنتاجية
    max_concurrent_requests_per_instance: 32
    request_timeout_ms: 60000
liveness_probe:
  initial_delay: 10
  period: 10
  timeout: 2
  success_threshold: 1
  failure_threshold: 30
readiness_probe:
  initial_delay: 120 # الانتظار لمدة 120 ثانية قبل التحقق، للسماح للنموذج بالتحميل بسلاسة
  period: 10
  timeout: 2
  success_threshold: 1
  failure_threshold: 30

المعلمات الرئيسية التي يجب أخذها في الاعتبار:

2.5: نشر النموذج: أخيرًا، قم بنشر نموذج Deepseek R1 باستخدام الأمر التالي:

az ml online-deployment create -f deployment.yml --all-traffic

تكتمل هذه الخطوة النشر، مما يجعل النموذج قابلًا للوصول عبر نقطة النهاية المحددة.

الخطوة 3: اختبار النشر

بمجرد الانتهاء من النشر، حان الوقت لاختبار نقطة النهاية لضمان عمل كل شيء كما هو متوقع.

3.1: استرداد تفاصيل نقطة النهاية: استخدم الأوامر التالية لاسترداد URI scoring الخاصة بنقطة النهاية وAPI keys:

az ml online-endpoint show -n r1-prod
az ml online-endpoint get-credentials -n r1-prod

3.2: بث الاستجابات باستخدام OpenAI SDK: لبث الاستجابات، يمكنك استخدام OpenAI SDK:

from openai import OpenAI

url = "https://r1-prod.polandcentral.inference.ml.azure.com/v1"
client = OpenAI(base_url=url, api_key="xxxxxxxx")

response = client.chat.completions.create(
    model="deepseek-ai/DeepSeek-R1-Distill-Llama-8B",
    messages=[
        {"role": "user", "content": "ما هو الأفضل، الصيف أم الشتاء؟"},
    ],
    stream=True
)

for chunk in response:
    delta = chunk.choices[0].delta
    if hasattr(delta, "content"):
        print(delta.content, end="", flush=True)

الخطوة 4: المراقبة والتحجيم التلقائي

توفر Azure Monitor رؤى شاملة حول استخدام الموارد، بما في ذلك مقاييس GPU. عندما تكون تحت حمولة ثابتة, ستلاحظ أن vLLM يستهلك حوالي 90% من ذاكرة GPU، مع اقتراب استخدام GPU من 100%. تساعدك هذه المقاييس على تحسين الأداء وتقليل التكاليف.

لتمكين التحجيم التلقائي، قم بتكوين سياسات التحجيم بناءً على أنماط حركة المرور. على سبيل المثال، يمكنك زيادة instance_count خلال ساعات الازدحام وتقليلها خلال أوقات الهدوء لتحقيق توازن بين الأداء والتكلفة.

الخيار 3: نشر Deepseek R1 على Digital Ocean

أخيرًا، دعنا نتحدث عن نشر Deepseek R1 على Digital Ocean، المعروفة ببساطتها و affordability.

المتطلبات السابقة

قبل الغوص في عملية النشر، دعنا نتأكد من أن لديك كل ما تحتاجه:

مع هذه المتطلبات السابقة في المكان، أنت مستعد للمضي قدمًا.

إعداد Droplet GPU

الخطوة الأولى هي إعداد جهازك. اعتبر ذلك كإعداد اللوحة قبل الرسم - فأنت تريد كل شيء جاهزًا قبل الغوص في التفاصيل.

الخطوة 1: إنشاء Droplet جديد GPU

  1. قم بتسجيل الدخول إلى حساب DigitalOcean الخاص بك وانتقل إلى قسم Droplets.
  2. انقر على إنشاء Droplet واختر نظام التشغيل جاهز AI/ML. يأتي هذا النظام مسبق التهيئة مع برامج تشغيل CUDA والاعتمادات الأخرى المطلوبة لتسريع GPU.
  3. اختر وحدة معالجة الرسومات NVIDIA H100 واحدة ما لم تخطط لنشر أكبر إصدار بـ 671 مليار معلمة من Deepseek R1، والذي قد يتطلب عدة وحدات معالجة الرسوم.
  4. بعد إنشاء droplet، انتظر حتى يبدأ. تستغرق هذه العملية عادةً بضع دقائق فقط.


لماذا اختيار وحدة معالجة الرسومات H100؟

تعتبر وحدة معالجة الرسومات NVIDIA H100 قوة حقيقية، حيث تقدم 80 جيجابايت من ذاكرة الوصول العشوائي الافتراضية، و240 جيجابايت من الذاكرة، و720 جيجابايت من التخزين. بسعر 6.47 دولار في الساعة، إنها خيار فعال من حيث التكلفة لنشر نماذج اللغة الكبيرة مثل Deepseek R1. بالنسبة للنماذج الأصغر، مثل إصدار 70 مليار معلمة، فإن وحدة معالجة الرسوم H100 واحدة أكثر من كافية.

تثبيت Ollama وDeepseek R1

الآن بعد أن أصبح droplet GPU لديك قيد التشغيل، حان الوقت لتثبيت الأدوات اللازمة لتشغيل Deepseek R1. سنستخدم Ollama، وهو إطار عمل خفيف مصمم لتبسيط نشر نماذج اللغة الكبيرة.

الخطوة 1: فتح وحدة التحكم على الويب

من صفحة تفاصيل droplet، انقر على زر وحدة التحكم على الويب الموجود في الزاوية العليا اليمنى. يفتح هذا نافذة طرفية مباشرة في المتصفح الخاص بك، مما يلغي الحاجة لتكوين SSH.

الخطوة 2: تثبيت Ollama

في الطرفية، قم بلصق الأمر التالي لتثبيت Ollama:

curl -fsSL https://ollama.com/install.sh | sh

يؤتمت هذا النص عملية التثبيت، حيث يقوم بتحميل وتكوين جميع الاعتمادات اللازمة. قد يستغرق التثبيت بضع دقائق، ولكن بمجرد الانتهاء، سيكون جهازك جاهزًا لتشغيل Deepseek R1.

الخطوة 3: تشغيل Deepseek R1

مع تثبيت Ollama، يكون تنفيذ Deepseek R1 بسيطًا مثل تشغيل أمر واحد. من أجل هذا العرض التوضيحي، سنستخدم إصدار 70 مليار معلمة، الذي يحقق توازنًا بين الأداء واستخدام الموارد:

ollama run deepseek-r1:70b

عند تشغيل هذا الأمر لأول مرة، سيقوم بتحميل النموذج (حوالي 40 جيجابايت) وتحميله في الذاكرة. يمكن أن تستغرق هذه العملية عدة دقائق، ولكن سيتم أسرع بكثير في الجولات اللاحقة حيث يتم تخزين النموذج مؤقتًا محليًا.

بمجرد تحميل النموذج، سترى موجهًا تفاعليًا حيث يمكنك بدء التفاعل مع Deepseek R1. إنه مثل إجراء محادثة مع مساعد ذكي للغاية!

اختبار ورصد مع Apidog

بعد نشر نموذجك Deepseek R1، حان الوقت لاختبار ورصد أدائه. هنا يتألق Apidog.

button

ما هو Apidog؟

Apidog هو أداة قوية لاختبار واجهات برمجة التطبيقات مصممة لتبسيط تصحيح الأخطاء والتحقق. مع واجهته البديهية، يمكنك بسرعة إنشاء حالات اختبار، ومحاكاة الاستجابات، ورصد صحة واجهة برمجة التطبيقات.

لماذا استخدام Apidog؟

من خلال دمج Apidog في سير العمل الخاص بك، يمكنك التأكد من أن نشر Deepseek R1 يظل موثوقًا ويؤدي بشكل مثالي تحت أحمال متغيرة.

الخلاصة

لا يجب أن يكون نشر Deepseek R1 في السحابة أمرًا مرعبًا. باتباع الخطوات الموضحة أعلاه، يمكنك إعداد هذا النموذج المتقدم بنجاح على AWS أو Azure أو Digital Ocean. تذكر أيضًا الاستفادة من أدوات مثل Apidog لتبسيط عمليات الاختبار والمراقبة.

💡
هل أنت جاهز للخطوة التالية؟ قم بتنزيل Apidog مجانًا اليوم ورفع قدرات إدارة واجهة برمجة التطبيقات الخاصة بك أثناء نشر Deepseek R1.
button

ممارسة تصميم API في Apidog

اكتشف طريقة أسهل لبناء واستخدام واجهات برمجة التطبيقات