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

يستفيد عملاء NVIDIA AI وشركاء النظام البيئي من خدمات NVIDIA NIM الصغيرة للاستدلال لتبسيط نشر أحدث نماذج الذكاء الاصطناعي على البنية التحتية المتسارعة لـ NVIDIA، بما في ذلك LLMs والنماذج متعددة الوسائط والنماذج الخاصة بالمجال من NVIDIA وMeta وMistral AI وGoogle ومئات من منشئي النماذج المبتكرة. لقد رأينا العملاء والشركاء يقدمون المزيد من الابتكار، بشكل أسرع، من خلال نهج مبسط وموثوق لنشر النموذج، واليوم نحن متحمسون لفتح أكثر من 100000 LLMs على Hugging Face للنشر السريع والموثوق باستخدام NIM.

خدمة NIM صغيرة واحدة لنشر مجموعة واسعة من شهادات LLM

توفر NIM الآن حاوية إرساء واحدة لنشر مجموعة واسعة من برامج LLM المدعومة بأطر عمل الاستدلال الرائدة من NVIDIA والمجتمع بما في ذلك NVIDIA TensorRT-LLM وvLLM وSGLang. عندما يتم توفير LLM لحاوية NIM، فإنها تنفذ عدة خطوات للنشر وتحسين الأداء، دون تكوين يدوي:

مرحلة التكيف LLM ماذا يفعل نيم
تحليل النموذج يحدد NIM تنسيق النموذج تلقائيًا، بما في ذلك نماذج Hugging Face، أو نقاط تفتيش TensorRT-LLM، أو محركات TensorRT-LLM المعدة مسبقًا، مما يضمن التوافق.
كشف العمارة والتكميم فهو يحدد بنية النموذج (على سبيل المثال، Llama، Mistral) وتنسيق التكميم (على سبيل المثال، FP16، FP8، INT4).
اختيار الواجهة الخلفية بناءً على هذا التحليل، تحدد NIM واجهة خلفية للاستدلال (NVIDIA TensorRT-LLM أو vLLM أو SGLang).
إعداد الأداء يطبق NIM الإعدادات التي تم تكوينها مسبقًا للنموذج والواجهة الخلفية المختارة ثم يبدأ تشغيل خادم الاستدلال، مما يقلل من جهود الضبط اليدوي.

الجدول 1. مراحل ووظائف التكيف NVIDIA NIM LLM

تدعم حاوية NIM الواحدة تنسيقات الوزن الشائعة في LLM، بما في ذلك:

  • معانقة نقاط التفتيش محولات الوجه: يمكن نشر LLMs مباشرة من مستودعات Hugging Face باستخدام.safetensors الملفات، مما يلغي الحاجة إلى تحويلات معقدة.
  • نقاط تفتيش GGUF: يمكن نشر نقاط فحص GGUF الكمية لبنيات النماذج المدعومة مباشرةً من HuggingFace أو من الملفات التي تم تنزيلها محليًا
  • نقاط تفتيش TensorRT-LLM: النماذج المعبأة داخل أ trtllm_ckpt يمكن نشر الدليل المُحسّن لـ TensorRT-LLM.
  • محركات TensorRT-LLM: محركات TensorRT-LLM مسبقة الصنع من أ trtllm_engine يمكن استخدام الدليل لتحقيق أعلى أداء على وحدات معالجة الرسومات NVIDIA.

ابدء

لاستخدام NIM، تأكد من أن بيئتك تحتوي على وحدات معالجة الرسومات NVIDIA مع برامج التشغيل المناسبة (CUDA 12.1+)، وتثبيت Docker، وحساب NVIDIA NGC ومفتاح API لصور NIM Docker، وحساب Hugging Face ورمز API المميز للنماذج التي تتطلب المصادقة. تعرف على المزيد حول متطلبات البيئة الأساسية في وثائق NIM.

يتضمن إعداد البيئة تعيين متغيرات البيئة وإنشاء دليل ذاكرة التخزين المؤقت المستمر. تأكد من nim_cache يحتوي الدليل على أذونات Unix الصحيحة، والتي يملكها بشكل مثالي نفس مستخدم Unix الذي يقوم بتشغيل حاوية Docker، لمنع مشكلات الأذونات. استخدام الأوامر -u $(id -u) لإدارة هذا.

لسهولة الاستخدام، دعونا نقوم بتخزين بعض المعلومات المستخدمة بشكل متكرر في متغيرات البيئة.


NIM_IMAGE=llm-nim

HF_TOKEN=<your_huggingface_token>

المثال 1: نشر نموذج

تم توضيح نشر LLM من Hugging Face باستخدام Codestral-22B:

docker run --rm --gpus all \
  --shm-size=16GB \
  --network=host \
  -u $(id -u) \
  -v $(pwd)/nim_cache:/opt/nim/.cache \
  -v $(pwd):$(pwd) \
  -e HF_TOKEN=$HF_TOKEN \
  -e NIM_TENSOR_PARALLEL_SIZE=1 \
  -e NIM_MODEL_NAME="hf://mistralai/Codestral-22B-v0.1" \
  $NIM_IMAGE

بالنسبة للنماذج التي تم تنزيلها محليًا، أشر إلى NIM_MODEL_NAME إلى المسار وقم بتحميل الدليل:

docker run --rm --gpus all \
  --shm-size=16GB \
  --network=host \
  -u $(id -u) \
  -v $(pwd)/nim_cache:/opt/nim/.cache \
  -v $(pwd):$(pwd) \
  -v /path/to/model/dir:/path/to/model/dir \
  -e HF_TOKEN=$HF_TOKEN \
  -e NIM_TENSOR_PARALLEL_SIZE=1 \
  -e NIM_MODEL_NAME="/path/to/model/dir/mistralai-Codestral-22B-v0.1" \
  $NIM_IMAGE

أثناء نشر نموذج، لا تتردد في فحص سجلات المخرجات للتعرف على الاختيارات التي تم إجراؤها على NIM أثناء نشر النموذج. النماذج المنشورة متوفرة في http://localhost:8000، مع نقاط نهاية API عند http://localhost:8000/docs.

تتوفر الوسائط الإضافية بواسطة المحرك الأساسي. يمكنك فحص القائمة الكاملة لهذه الوسائط عن طريق تشغيل nim-run –help في الحاوية، كما هو موضح أدناه.

docker run --rm --gpus all \
  --network=host \
  -u $(id -u) \
  $NIM_IMAGE nim-run --help

المثال 2: تحديد الواجهة الخلفية

لفحص الواجهات الخلفية المتوافقة أو اختيار واحدة محددة، استخدم list-model-profiles:

docker run --rm --gpus all \
  --shm-size=16GB \
  --network=host \
  -u $(id -u) \
  -v $(pwd)/nim_cache:/opt/nim/.cache \
  -v $(pwd):$(pwd) \
  -e HF_TOKEN=$HF_TOKEN \
  $NIM_IMAGE list-model-profiles --model "hf://meta-llama/Llama-3.1-8B-Instruct"

يعرض هذا الأمر ملفات التعريف المتوافقة، بما في ذلك محولات LoRA. للنشر باستخدام واجهة خلفية معينة مثل vLLM، استخدم NIM_MODEL_PROFILE متغير البيئة، وذلك باستخدام الإخراج الذي يوفره list-model-profiles:

docker run --rm --gpus all \
  --shm-size=16GB \
  --network=host \
  -u $(id -u) \
  -v $(pwd)/nim_cache:/opt/nim/.cache \
  -v $(pwd):$(pwd) \
  -e HF_TOKEN=$HF_TOKEN \
  -e NIM_TENSOR_PARALLEL_SIZE=1 \
  -e NIM_MODEL_NAME="hf://meta-llama/Llama-3.1-8B-Instruct" \
  -e NIM_MODEL_PROFILE="e2f00b2cbfb168f907c8d6d4d40406f7261111fbab8b3417a485dcd19d10cc98" \
  $NIM_IMAGE

المثال 3: نشر النموذج الكمي

يسهل NIM نشر النماذج الكمية. يكتشف تلقائيًا تنسيق التكميم (على سبيل المثال، GGUF، AWQ) ويحدد الواجهة الخلفية المناسبة باستخدام أوامر النشر القياسية:





docker run --rm --gpus all \
  --shm-size=16GB \
  --network=host \
  -u $(id -u) \
  -v $(pwd)/nim_cache:/opt/nim/.cache \
  -v $(pwd):$(pwd) \
  -e HF_TOKEN=$HF_TOKEN \
  -e NIM_TENSOR_PARALLEL_SIZE=1 \
  -e NIM_MODEL_NAME=$MODEL \
  $NIM_IMAGE

بالنسبة للمستخدمين المتقدمين، يوفر NIM التخصيص من خلال متغيرات البيئة مثل NIM_MAX_MODEL_LEN لطول السياق. بالنسبة للماجستير في القانون الكبير، NIM_TENSOR_PARALLEL_SIZE يتيح نشر وحدات معالجة الرسومات المتعددة. يضمن --shm-size=<shared memory size> يتم تمريره إلى Docker للاتصال متعدد وحدات معالجة الرسومات.

تدعم حاوية NIM نطاقًا واسعًا من دورات LLM التي تدعمها NVIDIA TensorRT-LLM وvLLM وSGLang، بما في ذلك دورات LLM الشهيرة والمتغيرات المتخصصة في Hugging Face. لمزيد من التفاصيل حول LLMs المدعومة، راجع الوثائق.

قم بالبناء مع عناق الوجه وNVIDIA

تم تصميم NIM لتبسيط نشر نموذج الذكاء الاصطناعي على البنية التحتية المتسارعة لـ NVIDIA، وتسريع الابتكار والوقت اللازم لتحقيق القيمة لمنشئي الذكاء الاصطناعي عالي الأداء وفرق الذكاء الاصطناعي للمؤسسات. نحن نتطلع إلى المشاركة والتعليقات من مجتمع Hugging Face.

ابدأ باستخدام مثال للمطور في بيئة حوسبة مستضافة بواسطة NVIDIA على الموقع build.nvidia.com.

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