مقدمة
يستخدم هذا المقال مثيل GPU بـ 8 × H100 لشرح كيفية نشر نموذج Llama3.1–405B. يعد نشر النماذج الكبيرة بنفسك مهمة تستغرق وقتًا طويلاً ومكلفة. لتجنب هذا العمل الشاق والمكلف، يمكنك التفكير في استخدام Llama3.1–405B مباشرة. ابحث عن منصات مزودة للنماذج الممتازة في مجال الذكاء الاصطناعي واستخدمها عبر معيار OpenAI API لخدمات الاستدلال. إنها سهلة الاستخدام ونموذج التسعير المرن (الدفع حسب الاستخدام) فعال من حيث التكلفة ويمكن التحكم فيه. نوصي بخدمة API للاستدلال Llama3.1–405B التي تقدمها Novita AI.
متطلبات نشر Llama3.1–405B
جميع نماذج Llama3.1 التي أصدرتها Meta تشمل 8B و70B و405B. نموذج Llama3.1–405B هو أكبر نموذج لغة مفتوح المصدر حتى الآن بمعاملات تصل إلى 405 مليار. نتائج تقييم أداء النموذج تتفوق على GPT-4 وGPT-4o وتعادل Claude3.5-Sonnet.
من الصعب تحميل مثل هذا النموذج الكبير على GPU. الإصدار الأصلي FP16 من نموذج 405B يتطلب 810 جيجابايت من ذاكرة GPU، كما هو موضح في الصورة أدناه. ومع ذلك، خذ أقوى GPU متاح حاليًا H100 كمثال، فإن الخادم ذو 8 مقابس لا يمكنه تحميل هذا الإصدار من النموذج مباشرة. من الضروري قياس كمية الإصدار FP16 من النموذج وتحويله إلى تمثيل منخفض الدقة، مما يقلل متطلبات الذاكرة ويسمح بتحميله بنجاح على GPU.
نماذج Llama3.1 لها بنية مشابهة لنماذج Llama3، مما يسهل إطار العمل الاستدلالي. يمكن تكييف حلول الاستدلال مفتوحة المصدر مثل vLLM بسرعة لدعم Llama3.1–405B الكبير.
لنشر خدمة استدلال لـ Llama3.1–405B، الاستعدادات الثلاثة الرئيسية هي:
- الأجهزة: نوصي باستئجار مثيل خادم GPU 8 × H100 وحجز حوالي 1.5 تيرابايت من مساحة التخزين.
- النموذج: قم بإعداد حساب Hugging Face وتنزيل Llama3.1–405B الأصلي أو إصدارات FP8 أو INT4 من النموذج.
- إطار الاستدلال: قم بتنزيل أحدث إصدار من vLLM v0.5.3.post1.
تحضير النموذج
بعد تحضير خادم GPU 8 × H100، سجل الدخول إلى الخادم وقم بتنزيل النموذج. نقدم كيفية تنزيل إصدار FP16 من النموذج وتحويله إلى إصدارات FP8 وINT4 المقاسة الكمية (بالطبع، يمكنك أيضًا تنزيل النماذج المقاسة مسبقًا من Hugging Face).
نوصي بتنزيل إصدار Instruct من منصة Hugging Face. أولاً، قم بالتسجيل والدخول إلى Hugging Face. قم بإنشاء وحفظ Access Token للمستخدم الحالي في صفحة الإعدادات، والذي سيُستخدم عند تنزيل النموذج.
افتح صفحة نموذج Llama3.1–405B: https://huggingface.co/meta-llama/Meta-Llama-3.1-405B-Instruct، أرسل طلب نموذج إلى Meta وانتظر حوالي نصف ساعة للترخيص.
ارجع إلى خادم GPU، قم بتثبيت تطبيق عميل Hugging Face وابدأ بتنزيل النموذج. الأمر كالتالي:
pip install huggingface-hub
huggingface-cli login ## إدخال Access Token
huggingface-cli download meta-llama/Meta-Llama-3.1-405B-Instruct ## بدء تنزيل 405B
بعد انتظار طويل (حسب سرعة الإنترنت)، سيتم تنزيل النموذج بحجم 800 جيجابايت إلى الجهاز المحلي. استخدم الأمر “huggingface-cli scan-cache” لعرض معلومات النموذج بالتفصيل.
بعد ذلك، سنقوم بقياس كمية FP8 وINT4 على النموذج الأصلي.
أولاً، قم بتنزيل أداة قياس FP8. يمكنك استخدام AutoFP8 مفتوح المصدر: https://github.com/neuralmagic/AutoFP8. قم باستدعاء البرامج النصية فيه لإجراء القياس باستخدام الوضع الديناميكي. قم بذلك كالتالي:
git clone https://github.com/neuralmagic/AutoFP8.git
cd AutoFP8
pip install -e . ## تجميع وتثبيت أداة AutoFP8 محليًا
python3 examples/quantize.py --model-id meta-llama/Meta-Llama-3.1-405B-Instruct --save-dir Meta-Llama-3-8B-Instruct-fp8 --activation-scheme dynamic --max-seq-len 2048 --num-samples 2048
يحدد البرنامج النصي للقياس مسار الإخراج لإصدار النموذج المقاس باستخدام “ — save-dir”. نظرًا لأن هذا قياس للأوزان فقط، فإن السرعة الإجمالية سريعة.
يمكنك أيضًا تنزيل إصدار FP8 المقاس الذي توفره Meta: https://huggingface.co/meta-llama/Meta-Llama-3.1-405B-Instruct-FP8. أمر التنزيل كالتالي:
huggingface-cli download meta-llama/Meta-Llama-3.1-405B-Instruct-FP8
كما هو الحال مع قياس FP8، يمكنك استخدام أداة AutoAWQ مفتوحة المصدر لإجراء قياس INT4. عنوان طريقة القياس هذه هو https://github.com/casper-hansen/AutoAWQ. خطوات القياس كالتالي:

بناء إطار الاستدلال
بفضل المجتمع مفتوح المصدر القوي، فإن vLLM هو إطار استدلال فعال يوفر دعمًا لمختلف LLMs مع تحديثات في الوقت المناسب. من الإصدار v0.5.3.post1، يدعم vLLM خدمة الاستدلال لنماذج Llama 3.1.
خطوات تنزيل كود مصدر vLLM وتجميعه كالتالي:
git clone https://github.com/vllm-project/vllm
cd vllm
git checkout -b v0.5.3.post1 v0.5.3.post1
pip install -e .
بعد التجميع، يمكنك بدء خدمة الاستدلال.
بالإضافة إلى تجميع vLLM على الجهاز المحلي، يمكنك بناء vLLM كصورة Docker. الطريقة كالتالي:
git clone https://github.com/vllm-project/vllm
cd vllm
git checkout -b v0.5.3.post1 v0.5.3.post1
docker build -t vllm_0.5.3.p1 .
يمكنك أيضًا تنزيل صورة vLLM:
docker pull vllm/vllm-openai:v0.5.3.post1
تشغيل خدمة الاستدلال
بعد بناء إطار استدلال vLLM، يمكنك بدء تشغيل vLLM وتحميل نموذج Llama 3.1–405B لتنفيذ خدمة الاستدلال. بالنسبة لتجميع vLLM المحلي، تحتاج إلى التبديل إلى الدليل الجذر لكود مصدر vLLM ثم تشغيل الأمر التالي لبدء خدمة الاستدلال:
cd vllm
python3 -m vllm.entrypoints.openai.api_server --port 18001 --model meta-llama/Meta-Llama-3.1-405B-Instruct-FP8 --tensor-parallel-size 8 --pipeline-parallel-size 1 --swap-space 16 --gpu-memory-utilization 0.99 --dtype auto --served-model-name llama31-405b-fp8 --max-num-seqs 32 --max-model-len 32768 --max-num-batched-tokens 32768 --max-seq-len-to-capture 32768
إذا كنت ترغب في تشغيل خدمة الاستدلال عبر حاوية Docker، يمكنك استخدام الأمر التالي:
docker run -d --gpus all --privileged --ipc=host --net=host vllm/vllm-openai:v0.5.3.post1 --port 18001 --model meta-llama/Meta-Llama-3.1-405B-Instruct-FP8 --tensor-parallel-size 8 --pipeline-parallel-size 1 --swap-space 16 --gpu-memory-utilization 0.99 --dtype auto --served-model-name llama31-405b-fp8 --max-num-seqs 32 --max-model-len 32768 --max-num-batched-tokens 32768 --max-seq-len-to-capture 32768
بمجرد تشغيل إطار استدلال vLLM، سيستمع على المنفذ 18001 أثناء استقبال ومعالجة طلبات المستخدمين. يمكنك التحقق بسرعة من خدمة الاستدلال عن طريق إرسال طلب POST إلى نقطة نهاية completions من جهازك المحلي. الأمر كالتالي:
curl -X POST -H “Content-Type: application/json”
http://localhost:18001/v1/completions
-d ‘{“model”: “llama31-405b-fp8”, “prompt”: “San Francisco is a”}’
وبهذا، يكتمل نشر نموذج Llama 3.1.
Novita AI هي المنصة السحابية الشاملة التي تعزز طموحاتك في الذكاء الاصطناعي. APIs متكاملة، بدون خادم، مثيل GPU — الأدوات الفعالة من حيث التكلفة التي تحتاجها. تخلص من البنية التحتية، ابدأ مجانًا، وحقق رؤيتك للذكاء الاصطناعي.
