Ces extensions vous aident à exécuter l'IA générative avec ONNX Runtime (https://github.com/microsoft/onnxruntime-genai). Elles fournissent la boucle d'IA générative pour les modèles ONNX, y compris l'inférence avec ONNX Runtime, le traitement des logits, la recherche et l'échantillonnage, et la gestion du cache KV. Les développeurs peuvent appeler une méthode generate() de haut niveau, ou exécuter chaque itération du modèle dans une boucle, générant un jeton à la fois, et en option, mettre à jour les paramètres de génération à l'intérieur de la boucle. Elles prennent en charge la recherche gloutonne / en faisceau et l'échantillonnage TopP, TopK pour générer des séquences de jetons et incluent un traitement intégré des logits comme les pénalités de répétition. Vous pouvez également facilement ajouter une notation personnalisée.
Au niveau de l'application, vous pouvez utiliser les extensions d'IA générative pour onnxruntime pour créer des applications en C++/C#/Python. Au niveau du modèle, vous pouvez les utiliser pour fusionner des modèles ajustés et effectuer des travaux de déploiement quantitatif connexes.
Les extensions d'IA générative pour onnxruntime prennent en charge la conversion de quantification de Microsoft Phi, Google Gemma, Mistral, Meta LLaMA.
Le créateur de modèles accélère grandement la création de modèles ONNX optimisés et quantifiés qui fonctionnent avec l'API generate() d'ONNX Runtime.
Grâce au Créateur de modèles, vous pouvez quantifier le modèle en INT4, INT8, FP16, FP32, et combiner différentes méthodes d'accélération matérielle telles que CPU, CUDA, DirectML, Mobile, etc.
Pour utiliser le Créateur de modèles, vous devez installer
pip install torch transformers onnx onnxruntime
pip install --pre onnxruntime-genai
Après l'installation, vous pouvez exécuter le script du Créateur de modèles depuis le terminal pour effectuer la conversion de format et de quantification du modèle.
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
Comprendre les paramètres pertinents
-
model_name C'est le modèle sur Hugging Face, comme microsoft/Phi-3.5-mini-instruct, microsoft/Phi-3.5-vision-instruct, etc. Cela peut aussi être le chemin où vous stockez le modèle
-
path_to_output_folder Chemin de sauvegarde de la conversion quantifiée
-
execution_provider Prise en charge de l'accélération matérielle différente, comme cpu, cuda, DirectML
-
cache_dir_to_save_hf_files Nous téléchargeons le modèle depuis Hugging Face et le mettons en cache localement
Remarque:
Le Créateur de modèles prend désormais en charge la quantification des modèles ONNX pour Phi-3.5 Instruct et Phi-3.5-Vision.
Conversion accélérée par CPU de INT 4 quantifié
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
Conversion accélérée par CUDA de INT 4 quantifié
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
- Configurer l'environnement dans le terminal
mkdir models
cd models
-
Télécharger microsoft/Phi-3.5-vision-instruct dans le dossier models https://huggingface.co/microsoft/Phi-3.5-vision-instruct
-
Veuillez télécharger ces fichiers dans votre dossier 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
-
Téléchargez ce fichier dans le dossier models https://huggingface.co/lokinfey/Phi-3.5-vision-instruct-onnx-cpu/blob/main/onnx/build.py
-
Allez dans le terminal
Convertir la prise en charge ONNX avec FP32
python build.py -i .\Your Phi-3.5-vision-instruct Path\ -o .\vision-cpu-fp32 -p f32 -e cpu
-
Le Créateur de modèles prend actuellement en charge la conversion de Phi-3.5-Instruct et Phi-3.5-Vision, mais pas Phi-3.5-MoE
-
Pour utiliser le modèle quantifié d'ONNX, vous pouvez l'utiliser via les extensions d'IA générative pour le SDK onnxruntime
-
Nous devons envisager une IA plus responsable, donc après la conversion de la quantification du modèle, il est recommandé de mener des tests de résultats plus efficaces
-
En quantifiant le modèle CPU INT4, nous pouvons le déployer sur des appareils Edge, ce qui offre de meilleurs scénarios d'application, nous avons donc complété Phi-3.5-Instruct autour de INT 4
-
En savoir plus sur les extensions d'IA générative pour onnxruntime https://onnxruntime.ai/docs/genai/
-
Dépôt GitHub des extensions d'IA générative pour onnxruntime https://github.com/microsoft/onnxruntime-genai
Avertissement :
Ce document a été traduit à l'aide de services de traduction automatisés basés sur l'intelligence artificielle. Bien que nous nous efforcions d'assurer l'exactitude, veuillez noter que les traductions automatiques peuvent contenir des erreurs ou des inexactitudes. Le document original dans sa langue d'origine doit être considéré comme la source faisant autorité. Pour des informations cruciales, il est recommandé de recourir à une traduction humaine professionnelle. Nous ne sommes pas responsables des malentendus ou des interprétations erronées résultant de l'utilisation de cette traduction.