تساعد هذه الإضافات في تشغيل الذكاء الاصطناعي التوليدي باستخدام ONNX Runtime (https://github.com/microsoft/onnxruntime-genai). توفر هذه الإضافات حلقة الذكاء الاصطناعي التوليدي لنماذج ONNX، بما في ذلك الاستدلال باستخدام ONNX Runtime، ومعالجة logits، والبحث وأخذ العينات، وإدارة ذاكرة التخزين المؤقت KV. يمكن للمطورين استدعاء طريقة generate() عالية المستوى، أو تشغيل كل تكرار للنموذج في حلقة، حيث يتم توليد رمز واحد في كل مرة، مع إمكانية تحديث معلمات التوليد داخل الحلقة. تدعم الإضافات البحث الجشع/الحزمة، وأخذ العينات باستخدام TopP وTopK لتوليد تسلسلات الرموز، بالإضافة إلى معالجة logits المدمجة مثل عقوبات التكرار. كما يمكنك بسهولة إضافة تقييمات مخصصة.
على مستوى التطبيقات، يمكنك استخدام إضافات الذكاء الاصطناعي التوليدي لـ onnxruntime لبناء تطبيقات باستخدام C++/ C# / Python. وعلى مستوى النماذج، يمكنك استخدامها لدمج النماذج المخصصة وإجراء أعمال نشر كمية ذات صلة.
تدعم إضافات الذكاء الاصطناعي التوليدي لـ onnxruntime تحويل الكمية لنماذج Microsoft Phi وGoogle Gemma وMistral وMeta LLaMA.
يسرّع منشئ النماذج بشكل كبير عملية إنشاء نماذج ONNX المحسّنة والمكمّنة التي تعمل باستخدام واجهة generate() لـ ONNX Runtime.
من خلال منشئ النماذج، يمكنك تقليل كمية النموذج إلى INT4، INT8، FP16، FP32، ودمج طرق تسريع الأجهزة المختلفة مثل CPU وCUDA وDirectML وMobile، إلخ.
لاستخدام منشئ النماذج، تحتاج إلى تثبيت:
pip install torch transformers onnx onnxruntime
pip install --pre onnxruntime-genai
بعد التثبيت، يمكنك تشغيل سكربت منشئ النماذج من خلال الطرفية لإجراء تحويل صيغة النموذج والكمية.
python3 -m onnxruntime_genai.models.builder -m model_name -o path_to_output_folder -p precision -e execution_provider -c cache_dir_to_save_hf_files
فهم المعلمات ذات الصلة:
-
model_name هذا هو النموذج الموجود على Hugging Face، مثل microsoft/Phi-3.5-mini-instruct، microsoft/Phi-3.5-vision-instruct، إلخ. يمكن أن يكون أيضًا المسار الذي تخزّن فيه النموذج.
-
path_to_output_folder مسار حفظ تحويل الكمية.
-
execution_provider دعم تسريع الأجهزة المختلفة، مثل cpu، cuda، DirectML.
-
cache_dir_to_save_hf_files نقوم بتنزيل النموذج من Hugging Face وتخزينه مؤقتًا محليًا.
ملاحظة:
يدعم منشئ النماذج الآن كمية نموذج ONNX لكل من Phi-3.5 Instruct وPhi-3.5-Vision.
تحويل مع تسريع CPU لكمية INT4
python3 -m onnxruntime_genai.models.builder -m microsoft/Phi-3.5-mini-instruct -o ./onnx-cpu -p int4 -e cpu -c ./Phi-3.5-mini-instruct
تحويل مع تسريع CUDA لكمية INT4
python3 -m onnxruntime_genai.models.builder -m microsoft/Phi-3.5-mini-instruct -o ./onnx-cpu -p int4 -e cuda -c ./Phi-3.5-mini-instruct
python3 -m onnxruntime_genai.models.builder -m microsoft/Phi-3.5-mini-instruct -o ./onnx-cpu -p int4 -e cuda -c ./Phi-3.5-mini-instruct
Phi-3.5-vision-instruct-onnx-cpu-fp32
- إعداد البيئة في الطرفية:
mkdir models
cd models
-
تنزيل microsoft/Phi-3.5-vision-instruct في مجلد النماذج
https://huggingface.co/microsoft/Phi-3.5-vision-instruct -
يرجى تنزيل هذه الملفات إلى مجلد Phi-3.5-vision-instruct الخاص بك:
-
https://huggingface.co/lokinfey/Phi-3.5-vision-instruct-onnx-cpu/resolve/main/onnx/config.json
-
https://huggingface.co/lokinfey/Phi-3.5-vision-instruct-onnx-cpu/blob/main/onnx/modeling_phi3_v.py
-
تنزيل هذا الملف إلى مجلد النماذج:
https://huggingface.co/lokinfey/Phi-3.5-vision-instruct-onnx-cpu/blob/main/onnx/build.py -
الانتقال إلى الطرفية:
تحويل دعم ONNX مع FP32:
python build.py -i .\Your Phi-3.5-vision-instruct Path\ -o .\vision-cpu-fp32 -p f32 -e cpu
-
يدعم منشئ النماذج حاليًا تحويل Phi-3.5-Instruct وPhi-3.5-Vision، ولكنه لا يدعم Phi-3.5-MoE.
-
لاستخدام نموذج ONNX المكمّن، يمكنك استخدامه من خلال SDK الخاص بإضافات الذكاء الاصطناعي التوليدي لـ onnxruntime.
-
يجب علينا مراعاة الذكاء الاصطناعي المسؤول بشكل أكبر، لذلك بعد تحويل كمية النموذج، يُوصى بإجراء اختبارات نتائج فعالة.
-
من خلال تقليل كمية نموذج CPU INT4، يمكننا نشره على الأجهزة الطرفية، مما يوفر سيناريوهات تطبيق أفضل. لذلك، أكملنا Phi-3.5-Instruct حول INT4.
-
لمعرفة المزيد عن إضافات الذكاء الاصطناعي التوليدي لـ onnxruntime: https://onnxruntime.ai/docs/genai/
-
مستودع GitHub لإضافات الذكاء الاصطناعي التوليدي لـ onnxruntime: https://github.com/microsoft/onnxruntime-genai
إخلاء مسؤولية:
تم ترجمة هذا المستند باستخدام خدمات الترجمة الآلية بالاعتماد على الذكاء الاصطناعي. بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الموثوق. بالنسبة للمعلومات الحساسة أو الهامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ نتيجة لاستخدام هذه الترجمة.