## 第一步: 创建环境
开始之前,请确保您的环境已正确配置了 Python 和 C++。安装必要的 Python 包:
pip install --upgrade --upgrade-strategy eager optimum[openvino]
## 第二步: 将模型导出为 OpenVINO IR
from optimum.intel import OVModelForCausalLMmodel_id = "meta-llama/Meta-Llama-3.1-8B"
model = OVModelForCausalLM.from_pretrained(model_id, export=True)
model.save_pretrained("./llama-3.1-8b-ov")
optimum-cli export openvino -m meta-llama/Meta-Llama-3.1-8B ./llama-3.1-8b-ov
./llama-3.1-8b-ov 文件夹将包含 .xml 和 bin IR 模型文件以及来自源模型的所需配置文件。🤗 tokenizer 也将转换为 openvino-tokenizers 库的格式,并在同一文件夹中创建相应的配置文件。
## 第三步: 模型优化
在 .from_pretrained()
方法中指定 quantization_config
参数。在这种情况下,应创建 OVWeightQuantizationConfig
对象,并将其设置为该参数,如下所示:
from optimum.intel import OVModelForCausalLM, OVWeightQuantizationConfigMODEL_ID = "meta-llama/Meta-Llama-3.1-8B"
quantization_config = OVWeightQuantizationConfig(bits=4, awq=True, scale_estimation=True, group_size=64, dataset="c4")
model = OVModelForCausalLM.from_pretrained(MODEL_ID, export=True, quantization_config=quantization_config)
model.save_pretrained("./llama-3.1-8b-ov")
optimum-cli export openvino -m meta-llama/Meta-Llama-3.1-8B --weight-format int4 --awq --scale-estimation --group-size 64 --dataset wikitext2 ./llama-3.1-8b-ov
## 第四步: 使用 OpenVINO GenAI API 进行部署
python
import argparse
import openvino_genaidevice = "CPU" # GPU can be used as well
pipe = openvino_genai.LLMPipeline(args.model_dir, device)
config = openvino_genai.GenerationConfig()
config.max_new_tokens = 100
print(pipe.generate(args.prompt, config))
c++
#include "openvino/genai/llm_pipeline.hpp"
#include <iostream>int main(int argc, char* argv[]) {std::string model_path = "./llama-3.1-8b-ov";std::string device = "CPU" // GPU can be used as well,有集成显卡的IntelCPU则使用 “GPU” ov::genai::LLMPipeline pipe(model_path, device);std::cout << pipe.generate("What is LLM model?", ov::genai::max_new_tokens(256));
}
## 说明
0. 中文原文章 https://huggingface.co/blog/zh/deploy-with-openvino
1. 总结参考自使用 Optimum-Intel 和 OpenVINO GenAI 优化和部署模型 《必读》
2. 有关 GenAI C++ 库的安装,请按照此处的说明进行操作。
3. Optimum-Intel