説明する
大型モデルの基本的な特徴はサイズが大きいことです。1 台のマシンと 1 枚のカードの展開は非常に遅くなり、ビデオ メモリが不足することもあります。結局のところ、誰もが H100/A100 を持っているわけではないので、3090 があると便利です。
現在、多くのフレームワークは大規模モデルの分散デプロイメントをサポートしており、これにより並行して推論速度を向上させることができます。1台のマシンで複数のカードを使用するだけでなく、複数のカードで複数のマシンを使用することもできます。
私自身はあまり使用経験がないので、参考までに記載しました。不足点がある場合は、コメント欄でご指摘ください。
フレーム名 | 出品方 | オープンソースアドレス |
---|---|---|
より速いトラナフォーマー | エヌビディア | FasterTransformer github |
TGI | 抱きしめる顔 | ハグフェイス/テキスト生成推論 |
vLLM | バークレー大学 LMSYS 組織 | github-vllm |
ディープスピード | マイクロソフト | github.com/microsoft/DeepSpeed |
lmdeploy | オープンミリラボ | InternLM/lmdeploy |
ターボトランスフォーマー | テンセント | テンセント/ターボトランスフォーマー |
FasterTranaformer/TensorRT-LLM
Faster Transformer は NVIDIA の大規模モデル推論ソリューションですが、NVIDIA が新しいフレームワーク TensorRT-LLM を発表したため、将来的には維持されなくなる可能性があります。これはまだアプリケーション段階にあり、将来的には完全にオープンソースになるはずです。
FasterTransformer がサポートするモデル
モデル | フレームワーク | FP16 | INT8 (チューリング後) | スパーシティ (アンペア後) | テンソル並列 | パイプラインパラレル | FP8(ホッパー後) |
---|---|---|---|---|---|---|---|
バート | TensorFlow | はい | はい | - | - | - | - |
バート | パイトーチ | はい | はい | はい | はい | はい | - |
バート | トリトンバックエンド | はい | - | - | はい | はい | - |
バート | C++ | はい | はい | - | - | - | はい |
XLネット | C++ | はい | - | - | - | - | - |
エンコーダ | TensorFlow | はい | はい | - | - | - | - |
エンコーダ | パイトーチ | はい | はい | はい | - | - | - |
デコーダ | TensorFlow | はい | - | - | - | - | - |
デコーダ | パイトーチ | はい | - | - | - | - | - |
デコード | TensorFlow | はい | - | - | - | - | - |
デコード | パイトーチ | はい | - | - | - | - | - |
GPT | TensorFlow | はい | - | - | - | - | - |
GPT/OPT | パイトーチ | はい | - | - | はい | はい | はい |
GPT/OPT | トリトンバックエンド | はい | - | - | はい | はい | - |
GPT-MoE | パイトーチ | はい | - | - | はい | はい | - |
咲く | パイトーチ | はい | - | - | はい | はい | - |
咲く | トリトンバックエンド | はい | - | - | はい | はい | - |
GPT-J | トリトンバックエンド | はい | - | - | はい | はい | - |
ロングフォーマー | パイトーチ | はい | - | - | - | - | - |
T5/UL2 | パイトーチ | はい | - | - | はい | はい | - |
T5 | テンソルフロー 2 | はい | - | - | - | - | - |
T5/UL2 | トリトンバックエンド | はい | - | - | はい | はい | - |
T5 | TensorRT | はい | - | - | はい | はい | - |
T5-MoE | パイトーチ | はい | - | - | はい | はい | - |
スイングトランス | パイトーチ | はい | はい | - | - | - | - |
スイングトランス | TensorRT | はい | はい | - | - | - | - |
ViT | パイトーチ | はい | はい | - | - | - | - |
ViT | TensorRT | はい | はい | - | - | - | - |
GPT-NeoX | パイトーチ | はい | - | - | はい | はい | - |
GPT-NeoX | トリトンバックエンド | はい | - | - | はい | はい | - |
BART/mBART | パイトーチ | はい | - | - | はい | はい | - |
ウィーネット | C++ | はい | - | - | - | - | - |
デベルタ | テンソルフロー 2 | はい | - | - | 進行中 | 進行中 | - |
デベルタ | パイトーチ | はい | - | - | 進行中 | 進行中 | - |
参考文献:
H100推理が8倍に急上昇!NVIDIA が 10 以上のモデルをサポートするオープンソース TensorRT-LLM を正式発表
NVIDIA、最大8倍の性能向上を実現したTensorRT-LLMモデルをリリース 正式リリースはいつ?これについてはどのようなことを期待していますか?
TGI(ハグフェイス/テキスト生成推論)
公式の ハグフェイス フレームワークによると: Llama 2 上の主流の推論フレームワークのパフォーマンス比較データによると、LLAMA-13b を実行したときの TGI のパフォーマンスは vllm よりも優れています。
最適化されたアーキテクチャ
他のアーキテクチャは、以下を使用してベスト エフォート ベースでサポートされます。
AutoModelForCausalLM.from_pretrained(<model>, device_map="auto")
または
AutoModelForSeq2SeqLM.from_pretrained(<model>, device_map="auto")
参考文献:
vllm
vLLM は、バークレー大学の LMSYS 組織によってオープンソース化された大規模言語モデルの高速推論フレームワークであり、リアルタイム シナリオにおける LLM サービスのスループットとメモリ使用効率を大幅に向上させます。
vLLM は、次のアーキテクチャを含む多くの Huggingface モデルをシームレスにサポートします。
- アクイラ (
BAAI/Aquila-7B
、BAAI/AquilaChat-7B
、など) - バイチュアン(
baichuan-inc/Baichuan-7B
、、baichuan-inc/Baichuan-13B-Chat
など) - BLOOM (
bigscience/bloom
,bigscience/bloomz
, etc.) - Falcon (
tiiuae/falcon-7b
,tiiuae/falcon-40b
,tiiuae/falcon-rw-7b
, etc.) - GPT-2 (
gpt2
,gpt2-xl
, etc.) - GPT BigCode (
bigcode/starcoder
,bigcode/gpt_bigcode-santacoder
, etc.) - GPT-J (
EleutherAI/gpt-j-6b
,nomic-ai/gpt4all-j
, etc.) - GPT-NeoX (
EleutherAI/gpt-neox-20b
,databricks/dolly-v2-12b
,stabilityai/stablelm-tuned-alpha-7b
, etc.) - InternLM (
internlm/internlm-7b
,internlm/internlm-chat-7b
, etc.) - LLaMA & LLaMA-2 (
meta-llama/Llama-2-70b-hf
,lmsys/vicuna-13b-v1.3
,young-geng/koala
,openlm-research/open_llama_13b
, etc.) - MPT (
mosaicml/mpt-7b
,mosaicml/mpt-30b
, etc.) - OPT (
facebook/opt-66b
,facebook/opt-iml-max-30b
, etc.) - Qwen (
Qwen/Qwen-7B
,Qwen/Qwen-7B-Chat
, etc.)
参考资料:
比HuggingFace快24倍!伯克利神级LLM推理系统开源,碾压SOTA,让GPU砍半
deepspeed
DeepSpeed是微软推出的大规模模型分布式训练的工具,主要实现了ZeRO并行训练算法。
这个框架可以做训练,也可以推理。我同事使用这个框架对baichuan-13进行推理,功能正常。
DeepSpeed has been used to train many different large-scale models, below is a list of several examples that we are aware of (if you’d like to include your model please submit a PR):
- Megatron-Turing NLG (530B)
- Jurassic-1 (178B)
- BLOOM (176B)
- GLM (130B)
- xTrimoPGLM (100B)
- YaLM (100B)
- GPT-NeoX (20B)
- AlexaTM (20B)
- Turing NLG (17B)
- METRO-LM (5.4B)
参考资料:
github.com/microsoft/DeepSpeed
lmdeploy
LMDeploy 由 MMDeploy 和 MMRazor 团队联合开发,是涵盖了 LLM 任务的全套轻量化、部署和服务解决方案。
支持的模型:
Note
W4A16 推理需要 Ampere 及以上架构的 Nvidia GPU
模型 | 模型并行 | FP16 | KV INT8 | W4A16 | W8A8 |
---|---|---|---|---|---|
Llama | Yes | Yes | Yes | Yes | No |
Llama2 | Yes | Yes | Yes | Yes | No |
InternLM | Yes | Yes | Yes | Yes | No |
QWen-7B | Yes | Yes | Yes | No | No |
Baichuan-7B | Yes | Yes | Yes | Yes | No |
Baichuan2-7B | Yes | Yes | No | No | No |
Code Llama | Yes | Yes | No | No | No |
参考资料:
TurboTransformers
TurboTransformers是腾讯开源的模型加速推理框架。
当前支持的模型种类不算多:
参考资料:
腾讯开源TurboTransformers,推理加速性能超越TensorRT等主流优化引擎