يوفر هذا الدليل إرشادات خطوة بخطوة لنشر نماذج Llama 4 من Meta (Scout وMaverick) على ثلاث منصات رئيسية: AWS وAzure وHugging Face. تقدم هذه النماذج قدرات متقدمة تشمل المعالجة متعددة الوسائط، ونوافذ سياق ضخمة، وأداء على أحدث طراز.

المتطلبات السابقة ومتطلبات الأجهزة لنشر Llama 4
- الوصول إلى نماذج Llama 4 من خلال اتفاقية ترخيص Meta
- حساب Hugging Face مع رمز وصول للقراءة
- حساب AWS أو Azure أو Hugging Face Pro حسب الحاجة لنقطة نشر الهدف الخاصة بك
- فهم أساسي للتعبئة والخدمات السحابية
AWS (عبر TensorFuse)
- Scout: 8 بطاقات رسوميات H100 لسياق 1M رمز
- Maverick: 8 بطاقات رسوميات H100 لسياق 430K رمز
- بديل: 8 بطاقات رسوميات A100 (نوافذ سياق مصغرة)
Azure
(هذا يتماشى مع إرشادات Azure ML العامة لنماذج اللغة الكبيرة، ولكن لم يتم العثور على وثائق محددة لـ Llama 4 لتأكيد المتطلبات الدقيقة.)
- موصى به: ND A100 من الجيل الرابع (8 بطاقات رسوميات NVIDIA A100)
- حد أدنى: Standard_ND40rs_v2 أو أعلى
Hugging Face
- موصى به: معدات A10G-Large Space
- بديل: A100-Large (خيار أجهزة متميزة)
- معدات المستوى المجاني غير كافية للنماذج الكاملة
1. نشر Llama 4 على AWS باستخدام TensorFuse
1.1 إعداد AWS وTensorFuse
تثبيت واجهة سطر الأوامر لـ TensorFuse:
pip install tensorfuse
تكوين بيانات اعتماد AWS:
aws configure
تهيئة TensorFuse مع حساب AWS الخاص بك:
tensorkube init
1.2 إنشاء الأسرار المطلوبة
تخزين رمز Hugging Face الخاص بك:
tensorkube secret create hugging-face-secret YOUR_HF_TOKEN --env default HUGGING_FACE_HUB_TOKEN=
إنشاء رمز مصادقة API:
tensorkube secret create vllm-token vllm-key --env default VLLM_API_KEY=
1.3 إنشاء Dockerfile لـ Llama 4
لنموذج Scout:
FROM vllm/vllm-openai:v0.8.3
ENV HF_HUB_ENABLE_HF_TRANSFER=1
EXPOSE 80
ENTRYPOINT ["python3", "-m", "vllm.entrypoints.openai.api_server", \\\\
"--model", "meta-llama/Llama-4-Scout-17B-16E-Instruct", \\\\
"--dtype", "bfloat16", \\\\
"--trust-remote-code", \\\\
"--tensor-parallel-size", "8", \\\\
"--max-model-len", "1000000", \\\\
"--port", "80", \\\\
"--override-generation-config", "{\\\\"attn_temperature_tuning\\\\": true}", \\\\
"--limit-mm-per-prompt", "image=10", \\\\
"--kv-cache-dtype", "fp8", \\\\
"--api-key", "${VLLM_API_KEY}"]
لنموذج Maverick:
FROM vllm/vllm-openai:v0.8.3
ENV HF_HUB_ENABLE_HF_TRANSFER=1
EXPOSE 80
ENTRYPOINT ["python3", "-m", "vllm.entrypoints.openai.api_server", \\\\
"--model", "meta-llama/Llama-4-Maverick-17B-128E-Instruct", \\\\
"--dtype", "bfloat16", \\\\
"--trust-remote-code", \\\\
"--tensor-parallel-size", "8", \\\\
"--max-model-len", "430000", \\\\
"--port", "80", \\\\
"--override-generation-config", "{\\\\"attn_temperature_tuning\\\\": true}", \\\\
"--limit-mm-per-prompt", "image=10", \\\\
"--kv-cache-dtype", "fp8", \\\\
"--api-key", "${VLLM_API_KEY}"]
1.4 إنشاء تكوين النشر
إنشاء deployment.yaml:
gpus: 8
gpu_type: h100
secret:
- huggingfacesecret
- vllmtoken
min-scale: 1
readiness:
httpGet:
path: /health
port: 80
1.5 نشر على AWS
نشر خدمتك:
tensorkube deploy --config-file ./deployment.yaml
1.6 الوصول إلى خدمتك المنشورة
قائمة النشر للحصول على عنوان URL لنقطة النهاية الخاصة بك:
tensorkube deployment list
اختبار النشر الخاص بك:
curl --request POST \\\\
--url YOUR_APP_URL/v1/completions \\\\
--header 'Content-Type: application/json' \\\\
--header 'Authorization: Bearer vllm-key' \\\\
--data '{
"model": "meta-llama/Llama-4-Scout-17B-16E-Instruct",
"prompt": "الأرض إلى Llama 4. ماذا يمكنك أن تفعل؟",
"max_tokens": 1000
}'
2. نشر Llama 4 على Azure
2.1 إعداد مساحة عمل Azure ML
تثبيت Azure CLI وملحقاته:
pip install azure-cli azure-ml
az login
إنشاء مساحة عمل Azure ML:
az ml workspace create --name llama4-workspace --resource-group your-resource-group
2.2 إنشاء كتلة حسابية
az ml compute create --name llama4-cluster --type amlcompute --min-instances 0 \\\\
--max-instances 1 --size Standard_ND40rs_v2 --vnet-name your-vnet-name \\\\
--subnet your-subnet --resource-group your-resource-group --workspace-name llama4-workspace
2.3 تسجيل نموذج Llama 4 في Azure ML
إنشاء model.yml:
$schema: <https://azuremlschemas.azureedge.net/latest/model.schema.json>
name: llama-4-scout
version: 1
path: .
properties:
model_name: "meta-llama/Llama-4-Scout-17B-16E-Instruct"
تسجيل النموذج:
az ml model create --file model.yml --resource-group your-resource-group --workspace-name llama4-workspace
2.4 إنشاء تكوين النشر
إنشاء deployment.yml:
$schema: <https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json>
name: llama4-deployment
endpoint_name: llama4-endpoint
model: azureml:llama-4-scout@latest
instance_type: Standard_ND40rs_v2
instance_count: 1
environment_variables:
HUGGING_FACE_HUB_TOKEN: ${{secrets.HF_TOKEN}}
VLLM_API_KEY: ${{secrets.VLLM_KEY}}
environment:
image: vllm/vllm-openai:v0.8.3
conda_file: conda.yml
إنشاء conda.yml:
channels:
- conda-forge
dependencies:
- python=3.10
- pip
- pip:
- vllm==0.8.3
- transformers
- accelerate
2.5 إنشاء نقطة النهاية والنشر
az ml online-endpoint create --name llama4-endpoint \\\\
--resource-group your-resource-group --workspace-name llama4-workspace
az ml online-deployment create --file deployment.yml \\\\
--resource-group your-resource-group --workspace-name llama4-workspace
2.6 اختبار النشر
az ml online-endpoint invoke --name llama4-endpoint --request-file request.json \\\\
--resource-group your-resource-group --workspace-name llama4-workspace
حيث يحتوي request.json على:
{
"model": "meta-llama/Llama-4-Scout-17B-16E-Instruct",
"prompt": "الأرض إلى Llama 4. ماذا يمكنك أن تفعل؟",
"max_tokens": 1000
}
3. نشر Llama 4 على Hugging Face
3.1 إعداد حساب Hugging Face
- إنشاء حساب Hugging Face على https://huggingface.co/
- قبول اتفاقية الترخيص لنماذج Llama 4 على https://huggingface.co/meta-llama
3.2 النشر باستخدام مساحات Hugging Face
انتقل إلى https://huggingface.co/spaces واضغط على "إنشاء مساحة جديدة"
قم بتكوين مساحتك:
- الاسم: llama4-deployment
- الرخصة: حدد الترخيص المناسب
- SDK: اختر Gradio
- معدات المساحة: A10G-Large (لأفضل أداء)
- الخصوصية: خاصة أو عامة بناءً على احتياجاتك
استنساخ مستودع المساحة:
git clone <https://huggingface.co/spaces/YOUR_USERNAME/llama4-deployment>
cd llama4-deployment
3.3 إنشاء ملفات التطبيق
إنشاء app.py:
import gradio as gr
import torch
from transformers import pipeline, AutoModelForCausalLM, AutoTokenizer
import os
# أضف رمز HF الخاص بك إلى البيئة أو الأسرار
os.environ["HUGGING_FACE_HUB_TOKEN"] = "YOUR_HF_TOKEN"
# تحميل النموذج والمحلل مع التكوين المناسب
model_id = "meta-llama/Llama-4-Scout-17B-16E-Instruct"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
device_map="auto",
trust_remote_code=True
)
# إنشاء خط أنابيب
pipe = pipeline(
"text-generation",
model=model,
tokenizer=tokenizer,
max_length=2048
)
def generate_text(prompt, max_length=1000, temperature=0.7):
# تنسيق الطلب وفقًا لتنسيق Llama 4
formatted_prompt = f"<|begin_of_text|><|user|>\\\\n{prompt}<|end_of_text|>\\\\n<|assistant|>"
outputs = pipe(
formatted_prompt,
max_length=len(tokenizer.encode(formatted_prompt)) + max_length,
temperature=temperature,
do_sample=True,
)
return outputs[0]['generated_text'].replace(formatted_prompt, "")
# إنشاء واجهة Gradio
demo = gr.Interface(
fn=generate_text,
inputs=[
gr.Textbox(lines=4, placeholder="أدخل طلبك هنا...", label="الطلب"),
gr.Slider(minimum=100, maximum=2000, value=1000, step=100, label="الحد الأقصى للطول"),
gr.Slider(minimum=0.1, maximum=1.0, value=0.7, step=0.1, label="درجة الحرارة")
],
outputs="text",
title="عرض Llama 4",
description="توليد نص باستخدام نموذج Llama 4 من Meta",
)
demo.launch()
إنشاء requirements.txt:
accelerate>=0.20.3
bitsandbytes>=0.41.1
gradio>=3.50.0
torch>=2.0.1
transformers>=4.34.0
3.4 نشر على Hugging Face
ادفع إلى مساحة Hugging Face الخاصة بك:
git add app.py requirements.txt
git commit -m "إضافة نشر Llama 4"
git push
3.5 مراقبة النشر
- قم بزيارة عنوان URL الخاص بمساحة عملك: https://huggingface.co/spaces/YOUR_USERNAME/llama4-deployment
- ستستغرق عملية البناء الأولى بعض الوقت لأنها تحتاج إلى تنزيل النموذج وإعداده
- بمجرد النشر، سترى واجهة Gradio حيث يمكنك التفاعل مع النموذج
4. اختبار والتفاعل مع نشراتك
4.1 استخدام عميل بايثون للوصول إلى API (AWS وAzure)
import openai
# لـ AWS
client = openai.OpenAI(
base_url="YOUR_AWS_URL/v1", # من قائمة نشر tensorkube
api_key="vllm-key" # مفتاح API الخاص بك
)
# لـ Azure
client = openai.AzureOpenAI(
azure_endpoint="YOUR_AZURE_ENDPOINT",
api_key="YOUR_API_KEY",
api_version="2023-05-15"
)
# إجراء طلب استكمال نص
response = client.completions.create(
model="meta-llama/Llama-4-Scout-17B-16E-Instruct",
prompt="اكتب قصيدة قصيرة عن الذكاء الاصطناعي.",
max_tokens=200
)
print(response.choices[0].text)
# من أجل القدرات متعددة الوسائط (إذا كانت مدعومة)
import base64
# تحميل الصورة كقيمة مشفرة base64
with open("image.jpg", "rb") as image_file:
image_base64 = base64.b64encode(image_file.read()).decode('utf-8')
# إنشاء استكمال دردشة مع الصورة
response = client.chat.completions.create(
model="meta-llama/Llama-4-Scout-17B-16E-Instruct",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "صف هذه الصورة:"},
{"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{image_base64}"}}
]
}
],
max_tokens=300
)
print(response.choices[0].message.content)
الخاتمة
لديك الآن إرشادات خطوة بخطوة لنشر نماذج Llama 4 على AWS وAzure وHugging Face. تقدم كل منصة مزايا مختلفة:
- AWS مع TensorFuse: التحكم الكامل، قابلية التوسع العالية، أفضل أداء
- Azure: تكامل مع نظام Microsoft البيئي، خدمات ML المدارة
- Hugging Face: إعداد أبسط، ممتاز لتطوير النماذج والنماذج التجريبية
اختر المنصة التي تناسب متطلباتك الخاصة من حيث التكلفة، والحجم، والأداء، وسهولة الإدارة.
