Skip to content

Latest commit

 

History

History
134 lines (69 loc) · 6.92 KB

022.UsingORTGenAIQuantifyingPhi35.md

File metadata and controls

134 lines (69 loc) · 6.92 KB

Quantification de Phi-3.5 en utilisant les extensions d'IA générative pour onnxruntime

Qu'est-ce que les extensions d'IA générative pour onnxruntime ?

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.

Quantification de Phi-3.5 avec les extensions d'IA générative pour onnxruntime

Modèles pris en charge

Les extensions d'IA générative pour onnxruntime prennent en charge la conversion de quantification de Microsoft Phi, Google Gemma, Mistral, Meta LLaMA.

Créateur de modèles dans les extensions d'IA générative pour onnxruntime

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

  1. 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

  2. path_to_output_folder Chemin de sauvegarde de la conversion quantifiée

  3. execution_provider Prise en charge de l'accélération matérielle différente, comme cpu, cuda, DirectML

  4. cache_dir_to_save_hf_files Nous téléchargeons le modèle depuis Hugging Face et le mettons en cache localement

Remarque:

Comment utiliser le Créateur de modèles pour quantifier Phi-3.5

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.

Phi-3.5-Instruct

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

Phi-3.5-vision-instruct-onnx-cpu-fp32

  1. Configurer l'environnement dans le terminal
mkdir models

cd models 
  1. Télécharger microsoft/Phi-3.5-vision-instruct dans le dossier models https://huggingface.co/microsoft/Phi-3.5-vision-instruct

  2. Veuillez télécharger ces fichiers dans votre dossier Phi-3.5-vision-instruct

  1. 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

  2. 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

Remarque:

  1. 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

  2. Pour utiliser le modèle quantifié d'ONNX, vous pouvez l'utiliser via les extensions d'IA générative pour le SDK onnxruntime

  3. 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

  4. 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

Ressources

  1. En savoir plus sur les extensions d'IA générative pour onnxruntime https://onnxruntime.ai/docs/genai/

  2. 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.