這些擴展工具幫助你使用 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 支持對 Microsoft Phi、Google Gemma、Mistral、Meta LLaMA 進行量化轉換。
模型構建器大大加速了創建優化和量化的 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
了解相關參數
-
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 下載模型並本地緩存
注意:
模型構建器現在支持 Phi-3.5 Instruct 和 Phi-3.5-Vision 的 ONNX 模型量化。
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-instruct-onnx-cpu-fp32
- 在終端設置環境
mkdir models
cd models
-
在 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
-
下載這個文件到 models 文件夾 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 的量化模型,你可以通過 Generative AI 擴展工具 for onnxruntime SDK 來使用
-
我們需要考慮更多負責任的 AI,因此在模型量化轉換後,建議進行更有效的結果測試
-
通過量化 CPU INT4 模型,我們可以將其部署到邊緣設備,這樣有更好的應用場景,所以我們已經完成了圍繞 INT 4 的 Phi-3.5-Instruct
-
了解更多關於 Generative AI 擴展工具 for onnxruntime 的信息 https://onnxruntime.ai/docs/genai/
-
Generative AI 擴展工具 for onnxruntime 的 GitHub 庫 https://github.com/microsoft/onnxruntime-genai
免責聲明: 本文檔是使用機器翻譯服務進行翻譯的。儘管我們努力確保準確性,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原文檔為權威來源。對於關鍵信息,建議進行專業人工翻譯。我們對使用此翻譯所產生的任何誤解或誤讀不承擔責任。