使用 optimum 使得 embedding 生成速度提高 5 倍(和原生 sentence transformer 模型对比)

今天偶然刷到了

Accelerate Sentence Transformers with Hugging Face Optimum (philschmid.de)

看到可以是用 optimum 调用 onnx API 加速 embedding 模型在 CPU 上的推理速度,而且相比之前:

使用 onnx 使得 embedding 生成速度提高 4 倍(和原生 sentence transformer 模型对比)-CSDN博客

调用方式更为简单,就研究了下如何在 GPU 上加速。

结果

[Optimum] OnnxModel Runtime gpu Inference time = 3.22 ms
Sentence Transformer gpu Inference time = 17.63 ms

可以看到使用 optimum 推理速度,还会更快些。

完整的代码可以查看:

github.com/amulil/vector_by_onnxmodel

### 使用 `optimum.onnxruntime` 导出机器学习模型 为了使用 `optimum.onnxruntime` 将 PyTorch 或 Hugging Face 的 Transformer 模型导出为 ONNX 格式,可以遵循以下过程: #### 准备环境 确保安装了必要的库,包括 `transformers`, `optimum`, `onnxruntime-gpu`。可以通过 pip 安装这些依赖项。 ```bash pip install transformers optimum onnxruntime-gpu ``` #### 创建并配置 Optimum 推理管道 对于特定的任务模型,创建相应的推理管道实例。这里以序列分类为例说明如何操作: ```python from optimum.onnxruntime import ORTModelForSequenceClassification # 加载预训练模型并转换成 ONNX 格式的模型 model = ORTModelForSequenceClassification.from_pretrained( "distilbert-base-uncased-finetuned-sst-2-english", from_transformers=True ) ``` 这段代码展示了怎样利用 `ORTModelForSequenceClassification` 类来加载一个已经经过微调用于情感分析任务的 DistilBERT 模型,并将其转化为 ONNX 格式[^2]。 #### 执行导出流程 接着定义导出的具体参数,比如优化级别 (`O3`) 可以用来减少最终 ONNX 文件大小的同时保持性能不变;还可以设置目标路径存储生成的 ONNX 文件。 ```bash (venv-meta) tarun@Taruns-MacBook-Pro ML % optimum-cli export onnx \ --model t5-small \ --optimize O3 \ t5_small_onnx ``` 上述命令行指令演示了如何通过 CLI 工具将 T5 小型版本模型导出至名为 `t5_small_onnx` 的目录下,并应用最高级别的优化选项[^3]。 #### 配置硬件加速器支持 如果希望在 AMD GPU 上运行该模型,则可以在初始化时指定执行提供者为 `"ROCMExecutionProvider"` 来启用 ROCm 支持。 ```python import torch from optimum.onnxruntime import ORTInferenceSession session_options = ort.SessionOptions() ort_session = ORTInferenceSession( 'path_to_your_model.onnx', providers=["ROCMExecutionProvider"], session_options=session_options, ) input_ids = ... # 输入张量准备 outputs = ort_session.run(None, {"input_ids": input_ids})[0] print(outputs) ``` 此部分代码片段显示了当有可用的 AMD 显卡时,应该如何调整会话配置以便充分利用 GPU 资源进行高效推理[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿姆姆姆姆姆姆姆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值