Skip to content

Latest commit

 

History

History
134 lines (69 loc) · 5.56 KB

022.UsingORTGenAIQuantifyingPhi35.md

File metadata and controls

134 lines (69 loc) · 5.56 KB

使用 Generative AI 擴展工具對 Phi-3.5 進行量化

什麼是 Generative AI 擴展工具 for onnxruntime

這些擴展工具幫助你使用 ONNX Runtime (https://github.com/microsoft/onnxruntime-genai) 來運行生成式 AI。它提供了 ONNX 模型的生成 AI 循環,包括使用 ONNX Runtime 進行推理、logits 處理、搜索和取樣以及 KV 緩存管理。開發者可以調用高級的 generate() 方法,或在循環中運行模型的每次迭代,一次生成一個 token,並可選擇在循環中更新生成參數。它支持貪婪/束搜索和 TopP、TopK 取樣來生成 token 序列,並內建如重複懲罰等 logits 處理。你也可以輕鬆添加自定義評分。

在應用層面,你可以使用 Generative AI 擴展工具 for onnxruntime 來使用 C++/ C# / Python 構建應用程序。在模型層面,你可以用它來合併微調模型並進行相關的量化部署工作。

使用 Generative AI 擴展工具 for onnxruntime 量化 Phi-3.5

支持的模型

Generative AI 擴展工具 for onnxruntime 支持對 Microsoft Phi、Google Gemma、Mistral、Meta LLaMA 進行量化轉換。

Generative AI 擴展工具 for onnxruntime 的模型構建器

模型構建器大大加速了創建優化和量化的 ONNX 模型,這些模型可以使用 ONNX Runtime 的 generate() API 運行。

通過模型構建器,你可以將模型量化為 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

了解相關參數

  1. model_name 這是在 Hugging face 上的模型,例如 microsoft/Phi-3.5-mini-instruct, microsoft/Phi-3.5-vision-instruct 等。也可以是你存儲模型的路徑

  2. path_to_output_folder 量化轉換的保存路徑

  3. execution_provider 不同的硬件加速支持,如 cpu、cuda、DirectML

  4. cache_dir_to_save_hf_files 我們從 Hugging face 下載模型並本地緩存

注意:

如何使用模型構建器量化 Phi-3.5

模型構建器現在支持 Phi-3.5 Instruct 和 Phi-3.5-Vision 的 ONNX 模型量化。

Phi-3.5-Instruct

CPU 加速的量化 INT 4 轉換

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 加速的量化 INT 4 轉換

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. 在終端設置環境
mkdir models

cd models 
  1. 在 models 文件夾中下載 microsoft/Phi-3.5-vision-instruct https://huggingface.co/microsoft/Phi-3.5-vision-instruct

  2. 請下載這些文件到你的 Phi-3.5-vision-instruct 文件夾

  1. 下載這個文件到 models 文件夾 https://huggingface.co/lokinfey/Phi-3.5-vision-instruct-onnx-cpu/blob/main/onnx/build.py

  2. 打開終端

    轉換 ONNX 支持 FP32

python build.py -i .\Your Phi-3.5-vision-instruct Path\ -o .\vision-cpu-fp32 -p f32 -e cpu

注意:

  1. 模型構建器目前支持 Phi-3.5-Instruct 和 Phi-3.5-Vision 的轉換,但不支持 Phi-3.5-MoE

  2. 要使用 ONNX 的量化模型,你可以通過 Generative AI 擴展工具 for onnxruntime SDK 來使用

  3. 我們需要考慮更多負責任的 AI,因此在模型量化轉換後,建議進行更有效的結果測試

  4. 通過量化 CPU INT4 模型,我們可以將其部署到邊緣設備,這樣有更好的應用場景,所以我們已經完成了圍繞 INT 4 的 Phi-3.5-Instruct

資源

  1. 了解更多關於 Generative AI 擴展工具 for onnxruntime 的信息 https://onnxruntime.ai/docs/genai/

  2. Generative AI 擴展工具 for onnxruntime 的 GitHub 庫 https://github.com/microsoft/onnxruntime-genai

免責聲明: 本文檔是使用機器翻譯服務進行翻譯的。儘管我們努力確保準確性,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原文檔為權威來源。對於關鍵信息,建議進行專業人工翻譯。我們對使用此翻譯所產生的任何誤解或誤讀不承擔責任。