首页
/ Transformer-Deploy 项目教程

Transformer-Deploy 项目教程

2024-09-20 15:49:06作者:宣聪麟

1. 项目介绍

Transformer-Deploy 是一个用于优化和部署 Hugging Face Transformer 模型的开源工具。它能够在生产环境中通过单个命令行实现模型的优化和部署,提供高达 10 倍的推理加速。该项目支持 CPU 和 GPU 推理,适用于各种 Transformer 模型,包括文档分类、命名实体识别(NER)、特征提取和文本生成等任务。

2. 项目快速启动

2.1 安装

首先,克隆项目仓库并进入项目目录:

git clone https://github.com/ELS-RD/transformer-deploy.git
cd transformer-deploy

2.2 使用 Docker 快速启动

使用 Docker 可以快速启动并优化模型。以下是一个示例命令,用于优化一个分类模型:

docker run -it --rm --gpus all \
  -v $PWD:/project ghcr.io/els-rd/transformer-deploy:0.6.0 \
  bash -c "cd /project && \
  convert_model -m \"philschmid/MiniLM-L6-H384-uncased-sst2\" \
  --backend tensorrt onnx \
  --seq-len 16 128 128"

2.3 启动 Triton 推理服务器

优化完成后,可以启动 Nvidia Triton 推理服务器:

docker run -it --rm --gpus all -p8000:8000 -p8001:8001 -p8002:8002 --shm-size 256m \
  -v $PWD/triton_models:/models nvcr.io/nvidia/tritonserver:22.07-py3 \
  bash -c "pip install transformers && tritonserver --model-repository=/models"

3. 应用案例和最佳实践

3.1 文本分类

以下是一个文本分类的示例,使用 philschmid/MiniLM-L6-H384-uncased-sst2 模型:

docker run -it --rm --gpus all \
  -v $PWD:/project ghcr.io/els-rd/transformer-deploy:0.6.0 \
  bash -c "cd /project && \
  convert_model -m \"philschmid/MiniLM-L6-H384-uncased-sst2\" \
  --backend tensorrt onnx \
  --seq-len 16 128 128"

3.2 命名实体识别(NER)

以下是一个命名实体识别的示例,使用 kamalkraj/bert-base-cased-ner-conll2003 模型:

docker run -it --rm --gpus all \
  -v $PWD:/project ghcr.io/els-rd/transformer-deploy:0.6.0 \
  bash -c "cd /project && \
  convert_model -m \"kamalkraj/bert-base-cased-ner-conll2003\" \
  --backend tensorrt onnx \
  --seq-len 16 128 128 \
  --task token-classification"

3.3 文本生成

以下是一个文本生成的示例,使用 gpt2 模型:

docker run -it --rm --gpus all \
  -v $PWD:/project ghcr.io/els-rd/transformer-deploy:0.6.0 \
  bash -c "cd /project && \
  convert_model -m gpt2 \
  --backend tensorrt onnx \
  --seq-len 6 256 256 \
  --task text-generation"

4. 典型生态项目

4.1 Hugging Face Transformers

Hugging Face Transformers 是一个广泛使用的开源库,提供了大量的预训练 Transformer 模型。Transformer-Deploy 与 Hugging Face Transformers 无缝集成,支持从 Hugging Face 模型库中直接下载和优化模型。

4.2 Nvidia Triton 推理服务器

Nvidia Triton 推理服务器 是一个高性能的推理服务器,支持多种深度学习框架。Transformer-Deploy 通过优化模型并生成 Triton 配置文件,使得模型可以轻松部署到 Triton 推理服务器上,实现高效的推理服务。

4.3 ONNX Runtime

ONNX Runtime 是一个跨平台的推理引擎,支持多种硬件加速。Transformer-Deploy 支持将模型转换为 ONNX 格式,并使用 ONNX Runtime 进行推理,提供高性能的推理加速。

通过以上模块的介绍和示例,您可以快速上手并使用 Transformer-Deploy 进行模型的优化和部署。

登录后查看全文
热门项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
22
6
docsdocs
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
132
1.89 K
nop-entropynop-entropy
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
8
0
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
193
273
金融AI编程实战金融AI编程实战
为非计算机科班出身 (例如财经类高校金融学院) 同学量身定制,新手友好,让学生以亲身实践开源开发的方式,学会使用计算机自动化自己的科研/创新工作。案例以量化投资为主线,涉及 Bash、Python、SQL、BI、AI 等全技术栈,培养面向未来的数智化人才 (如数据工程师、数据分析师、数据科学家、数据决策者、量化投资人)。
Jupyter Notebook
70
63
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
379
389
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
344
1.24 K
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
915
548
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
144
189
ShopXO开源商城ShopXO开源商城
🔥🔥🔥ShopXO企业级免费开源商城系统,可视化DIY拖拽装修、包含PC、H5、多端小程序(微信+支付宝+百度+头条&抖音+QQ+快手)、APP、多仓库、多商户、多门店、IM客服、进销存,遵循MIT开源协议发布、基于ThinkPHP8框架研发
JavaScript
96
15