مستند جارٍ لعرض كيفية نشر نماذج DeepSeek R1 وضبطها بدقة باستخدام Hugging Face على AWS.

ما هو DeepSeek-R1؟

إذا كنت قد واجهت مشكلة رياضية صعبة من قبل، فأنت تعلم مدى فائدة التفكير لفترة أطول قليلاً والعمل على حلها بعناية. نموذج OpenAI O1 أظهر أنه عندما يتم تدريب طلاب ماجستير القانون على القيام بنفس الشيء – باستخدام المزيد من الحساب أثناء الاستدلال – فإنهم يتحسنون بشكل ملحوظ في حل المهام المنطقية مثل الرياضيات والترميز والمنطق.

ومع ذلك، فإن الوصفة الكامنة وراء نماذج الاستدلال الخاصة بـ OpenAI كانت سرًا محفوظًا جيدًا. وهذا هو، حتى الأسبوع الماضي، عندما أصدر DeepSeek بهم ديب سيك-R1 نموذج وكسر الإنترنت على الفور (و البورصة!).

DeepSeek AI مفتوح المصدر DeepSeek-R1-Zero وDeepSeek-R1 وستة نماذج كثيفة مستمدة من DeepSeek-R1 استنادًا إلى بنيات Llama وQwen. يمكنك العثور عليها جميعًا في مجموعة DeepSeek R1.

نحن نتعاون مع Amazon Web Services لتسهيل قيام المطورين بنشر أحدث نماذج Hugging Face على خدمات AWS لإنشاء تطبيقات ذكاء اصطناعي أفضل إنتاجية.

دعنا نراجع كيف يمكنك نشر نماذج DeepSeek R1 وضبطها بدقة باستخدام Hugging Face على AWS.

نشر نماذج DeepSeek R1

النشر على AWS مع نقاط نهاية استدلال الوجه المعانقة

معانقة الوجه استنتاج نقاط النهاية يقدم طريقة سهلة وآمنة لنشر نماذج التعلم الآلي على الحوسبة المخصصة لاستخدامها في الإنتاج على AWS. تعمل نقاط نهاية الاستدلال على تمكين المطورين وعلماء البيانات على حد سواء من إنشاء تطبيقات الذكاء الاصطناعي دون إدارة البنية التحتية: مما يؤدي إلى تبسيط عملية النشر ببضع نقرات، بما في ذلك التعامل مع كميات كبيرة من الطلبات من خلال التوسع التلقائي، وتقليل تكاليف البنية التحتية من خلال التوسع إلى الصفر، وتوفير أمان متقدم.

باستخدام Inference Endpoints، يمكنك نشر أي من النماذج الستة المقطرة من DeepSeek-R1 وأيضًا نسخة كمية من DeepSeek R1 من إنتاج Unsloth: https://huggingface.co/unsloth/DeepSeek-R1-GGUF. في صفحة النموذج، انقر على Deploy، ثم على HF Inference Endpoints. ستتم إعادة توجيهك إلى صفحة نقطة نهاية الاستدلال، حيث اخترنا لك حاوية الاستدلال المحسنة والأجهزة الموصى بها لتشغيل النموذج. بمجرد إنشاء نقطة النهاية الخاصة بك، يمكنك إرسال استفساراتك إلى DeepSeek R1 مقابل 8.3 دولار في الساعة مع AWS 🤯.

يمكنك العثور على DeepSeek R1 والنماذج المقطرة، بالإضافة إلى برامج LLM مفتوحة شائعة أخرى، جاهزة للنشر على التكوينات المحسنة في كتالوج نماذج نقاط النهاية الاستدلالية.

| ملحوظة: يعمل الفريق على تمكين نشر نماذج DeepSeek على مثيلات Inferentia. ابقوا متابعين!

النشر على Amazon Bedrock Marketplace

يمكنك نشر نماذج Deepseek المقطرة على Amazon Bedrock عبر السوق، والتي ستنشر نقطة نهاية في Amazon SageMaker AI تحت الغطاء. إليك مقطع فيديو لكيفية التنقل عبر وحدة تحكم AWS:

حجر الأساس-deployment.gif

انشر على Amazon Sagemaker AI مع المحتوى القابل للتنزيل Hugging Face LLM

DeepSeek R1 على وحدات معالجة الرسومات

| ملحوظة: يعمل الفريق على تمكين نشر DeepSeek-R1 على Amazon Sagemaker AI مع المحتوى القابل للتنزيل Hugging Face LLM على وحدة معالجة الرسومات. ابقوا متابعين!

النماذج المقطرة على وحدات معالجة الرسومات

يمكنك نشر نماذج Deepseek المقطرة على Amazon Sagemaker AI مع Hugging Face LLM DLCs باستخدام Jumpstart مباشرة أو باستخدام Python Sagemaker SDK. إليك مقطع فيديو لكيفية التنقل عبر وحدة تحكم AWS:

Jumpstart-deployment.gif

لقد رأينا الآن كيفية نشر usig Jumpstart، فلنتعرف على نشر Python Sagemaker SDK لـ DeepSeek-R1-Distill-Llama-70B.

تتوفر مقتطفات التعليمات البرمجية على صفحة النموذج أسفل زر النشر!

Deploy_sagemaker_sdk.gif

قبل ذلك، لنبدأ ببعض المتطلبات المسبقة. تأكد من تكوين نطاق Sagemaker وحصة كافية في Sagemaker ومساحة JupyterLab. بالنسبة إلى DeepSeek-R1-Distill-Llama-70B، يجب عليك رفع الحصة الافتراضية لـ ml.g6.48xlarge لاستخدام نقطة النهاية إلى 1.

كمرجع، إليك تكوينات الأجهزة التي نوصيك باستخدامها لكل من المتغيرات المقطرة:

نموذج نوع المثيل عدد وحدات معالجة الرسومات لكل نسخة متماثلة
Deepseek-ai/DeepSeek-R1-Distill-Llama-70B ml.g6.48xlarge 8
Deepseek-ai/DeepSeek-R1-Distill-Qwen-32B ml.g6.12xlarge 4
Deepseek-ai/DeepSeek-R1-Distill-Qwen-14B ml.g6.12xlarge 4
Deepseek-ai/DeepSeek-R1-Distill-Llama-8B ml.g6.2xlarge 1
Deepseek-ai/DeepSeek-R1-Distill-Qwen-7B ml.g6.2xlarge 1
Deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B ml.g6.2xlarge 1

بمجرد دخولك إلى دفتر الملاحظات، تأكد من تثبيت أحدث إصدار من SageMaker SDK.

!pip install sagemaker --upgrade

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

import json
import sagemaker
import boto3
from sagemaker.huggingface import HuggingFaceModel, get_huggingface_llm_image_uri

try:
    role = sagemaker.get_execution_role()
except ValueError:
    iam = boto3.client("iam")
    role = iam.get_role(RoleName="sagemaker_execution_role")["Role"]["Arn"]

قم بإنشاء كائن SageMaker Model باستخدام Python SDK:

model_id = "deepseek-ai/DeepSeek-R1-Distill-Llama-70B"
model_name = hf_model_id.split("https://huggingface.co/")[-1].lower()


hub = 
    "HF_MODEL_ID": model_id,
    "SM_NUM_GPUS": json.dumps(8)



huggingface_model = HuggingFaceModel(
    image_uri=get_huggingface_llm_image_uri("huggingface", version="3.0.1"),
    env=hub,
    role=role,
)

انشر النموذج على نقطة نهاية SageMaker واختبر نقطة النهاية:

endpoint_name = f"model_name-ep"


predictor = huggingface_model.deploy(
    endpoint_name=endpoint_name,
    initial_instance_count=1,
    instance_type="ml.g6.48xlarge",
    container_startup_health_check_timeout=2400,
)
  

predictor.predict("inputs": "What is the meaning of life?")

هذا كل شيء، لقد قمت بنشر نموذج التفكير Llama 70B!

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

تأكد من حذف نقطة النهاية بمجرد الانتهاء من اختبارها.

predictor.delete_model()
predictor.delete_endpoint()

نماذج مقطرة على الخلايا العصبية

دعونا نستعرض عملية نشر DeepSeek-R1-Distill-Llama-70B على مثيل Neuron، مثل AWS Trainium 2 وAWS Inferentia 2.

تتوفر مقتطفات التعليمات البرمجية على صفحة النموذج أسفل زر النشر!

Deploy_neuron.gif

المتطلبات الأساسية للنشر على مثيل Neuron هي نفسها. تأكد من تكوين مجال SageMaker، وحصة كافية في SageMaker، ومساحة JupyterLab. بالنسبة إلى DeepSeek-R1-Distill-Llama-70B، يجب عليك رفع الحصة الافتراضية لـ ml.inf2.48xlarge لاستخدام نقطة النهاية إلى 1.

ثم قم بإنشاء مثيل أ sagemaker_session والذي يستخدم لتحديد المنطقة الحالية ودور التنفيذ.

import json
import sagemaker
import boto3
from sagemaker.huggingface import HuggingFaceModel, get_huggingface_llm_image_uri

try:
    role = sagemaker.get_execution_role()
except ValueError:
    iam = boto3.client("iam")
    role = iam.get_role(RoleName="sagemaker_execution_role")["Role"]["Arn"]

قم بإنشاء كائن SageMaker Model باستخدام Python SDK:

image_uri = get_huggingface_llm_image_uri("huggingface-neuronx", version="0.0.25")
model_id = "deepseek-ai/DeepSeek-R1-Distill-Llama-70B"
model_name = hf_model_id.split("https://huggingface.co/")[-1].lower()


hub = 
    "HF_MODEL_ID": model_id,
    "HF_NUM_CORES": "24",
    "HF_AUTO_CAST_TYPE": "bf16",
    "MAX_BATCH_SIZE": "4",
    "MAX_INPUT_TOKENS": "3686",
    "MAX_TOTAL_TOKENS": "4096",



huggingface_model = HuggingFaceModel(
    image_uri=image_uri,
    env=hub,
    role=role,
)

انشر النموذج على نقطة نهاية SageMaker واختبر نقطة النهاية:

endpoint_name = f"model_name-ep"


predictor = huggingface_model.deploy(
    endpoint_name=endpoint_name,
    initial_instance_count=1,
    instance_type="ml.inf2.48xlarge",
    container_startup_health_check_timeout=3600,
    volume_size=512,
)
  

predictor.predict(
    
        "inputs": "What is is the capital of France?",
        "parameters": 
            "do_sample": True,
            "max_new_tokens": 128,
            "temperature": 0.7,
            "top_k": 50,
            "top_p": 0.95,
        
    
)

هذا كل شيء، لقد قمت بنشر نموذج التفكير Llama 70B على مثيل Neuron! تحت الغطاء، تم تنزيل نموذج تم تجميعه مسبقًا من Hugging Face لتسريع وقت بدء نقطة النهاية.

تأكد من حذف نقطة النهاية بمجرد الانتهاء من اختبارها.

predictor.delete_model()
predictor.delete_endpoint()

يمكنك النشر على EC2 Neuron باستخدام Hugging Face Neuron Deep Learning AMI

سيشرح هذا الدليل بالتفصيل كيفية تصدير ونشر وتشغيل DeepSeek-R1-Distill-Llama-70B على inf2.48xlarge مثيل AWS EC2.

قبل ذلك، لنبدأ ببعض المتطلبات المسبقة. تأكد من اشتراكك في Hugging Face Neuron Deep Learning AMI في Marketplace. فهو يوفر لك جميع التبعيات اللازمة لتدريب ونشر نماذج Hugging Face على Trainium وInferentia. بعد ذلك، قم بتشغيل مثيل inf2.48xlarge في EC2 باستخدام AMI واتصل عبر SSH. يمكنك مراجعة دليلنا خطوة بخطوة إذا لم تقم بذلك من قبل.

بمجرد الاتصال عبر المثيل، يمكنك نشر النموذج على نقطة النهاية باستخدام هذا الأمر:

docker run -p 8080:80 \
    -v $(pwd)/data:/data \
    --device=/dev/neuron0 \
    --device=/dev/neuron1 \
    --device=/dev/neuron2 \
    --device=/dev/neuron3 \
    --device=/dev/neuron4 \
    --device=/dev/neuron5 \
    --device=/dev/neuron6 \
    --device=/dev/neuron7 \
    --device=/dev/neuron8 \
    --device=/dev/neuron9 \
    --device=/dev/neuron10 \
    --device=/dev/neuron11 \
    -e HF_BATCH_SIZE=4 \
    -e HF_SEQUENCE_LENGTH=4096 \
    -e HF_AUTO_CAST_TYPE="bf16" \
    -e HF_NUM_CORES=24 \
    ghcr.io/huggingface/neuronx-tgi:latest \
    --model-id deepseek-ai/DeepSeek-R1-Distill-Llama-70B \
    --max-batch-size 4 \
    --max-total-tokens 4096

سوف يستغرق الأمر بضع دقائق لتنزيل النموذج المجمع من ذاكرة التخزين المؤقت Hugging Face وتشغيل نقطة نهاية TGI.

وبعد ذلك، يمكنك اختبار نقطة النهاية:

curl localhost:8080/generate \
    -X POST \
    -d '"inputs":"Why is the sky dark at night?"' \
    -H 'Content-Type: application/json'

تأكد من إيقاف مثيل EC2 مؤقتًا بمجرد الانتهاء من اختباره.

| ملحوظة: يعمل الفريق على تمكين نشر DeepSeek R1 على Trainium وInferentia باستخدام Hugging Face Neuron Deep Learning AMI. ابقوا متابعين!

ضبط نماذج DeepSeek R1

قم بالضبط الدقيق على Amazon SageMaker AI مع المحتوى القابل للتنزيل Hugging Face Training

| ملحوظة: يعمل الفريق على تمكين الضبط الدقيق لجميع نماذج DeepSeek باستخدام المحتوى القابل للتنزيل Hugging Face Training. ابقوا متابعين!

قم بضبط EC2 Neuron باستخدام Hugging Face Neuron Deep Learning AMI

| ملحوظة: يعمل الفريق على تمكين جميع نماذج DeepSeek من الضبط الدقيق باستخدام Hugging Face Neuron Deep Learning AMI. ابقوا متابعين!

شاركها.
اترك تعليقاً