FastDeployは、PaddlePaddleチームによって開発されたオープンソースツールで、ディープラーニングモデルの迅速なデプロイに焦点を当てています。様々なハードウェアやフレームワークをサポートし、画像、動画、テキスト、音声など20以上のシナリオをカバーし、150以上の主流モデルを含んでいます。FastDeployは、本番環境向けのすぐに使えるデプロイメントソリューションを提供し、開発プロセスを簡素化し、推論パフォーマンスを向上させます。クラウドからモバイル、エッジデバイスへの展開をサポートし、企業や開発者がAIアプリケーションを迅速に実装するのに適している。このプロジェクトはApache-2.0でライセンスされており、活発なコミュニティがあり、ドキュメントが充実しており、効率的なデプロイメントを追求する開発者に適している。
機能一覧
- 複数のハードウェアをサポート:NVIDIA GPU、Kunlun XPU、Rise NPU、RK3588など、様々なチップに適応。
- 複数のモデルをサポート:画像分類、ターゲット検出、OCR、音声合成など20以上のシナリオをカバーし、150以上のモデルをサポート。
- 効率的な推論アクセラレーション: 量子化サポート(W8A16、FP8など)、投機的デコーディング、複数推論アクセラレーションを提供。 トークン 予測などの技術。
- 本番環境ですぐに使えるサポート ブイエルエルエム とOpenAIのAPIを利用することで、サービス展開を簡素化することができる。
- Visual Deployment:VisualDLと組み合わせることで、モデル構成の変更、パフォーマンス監視、サービス管理をサポートします。
- クロスプラットフォーム展開:クラウド、モバイル、エッジデバイス、ウェブ展開をサポート。
- 柔軟なコンパイルオプション:開発者はニーズに応じてバックエンドモジュールを選択し、リソースの消費を抑えることができます。
ヘルプの使用
設置プロセス
FastDeploy は、異なる開発ニーズに適した Python と C++ のインストー ル方法を提供します。以下は Ubuntu システムに基づく Python インストールの例です。Python 3.6+ とその依存関係がシステムにインストールされていることを確認する必要があります。
- 環境を整える
必要な依存関係をインストールする:sudo apt update sudo apt install -y python3 python3-dev python3-pip gcc python3-opencv python3-numpy
condaのような仮想環境を使って依存関係を分離することを推奨する:
conda create -n fastdeploy python=3.8
conda activate fastdeploy
- PaddlePaddleのインストール
FastDeploy は、開発バージョンをインストールするために PaddlePaddle フレームワークに依存しています:python -m pip install paddlepaddle==0.0.0 -f https://www.paddlepaddle.org.cn/whl/linux/cpu-mkl/develop.html
- FastDeploy のインストール
コンパイル済みのパッケージはpipでインストールできる:pip install fastdeploy-python -f https://www.paddlepaddle.org.cn/whl/fastdeploy.html
またはソースからコンパイルしたもの:
git clone https://github.com/PaddlePaddle/FastDeploy.git cd FastDeploy/python export ENABLE_ORT_BACKEND=ON export ENABLE_PADDLE_BACKEND=ON export ENABLE_VISION=ON python setup.py build python setup.py bdist_wheel pip install dist/fastdeploy_python-*-linux_x86_64.whl
RK3588のようなデバイスをコンパイルする場合、次のように設定する必要があります。
ENABLE_RKNPU2_BACKEND=ON
歌で応えるRKNN2_TARGET_SOC=RK3588
. - インストールの確認
インストール後、サンプルコードを実行して確認してください:import fastdeploy print(fastdeploy.__version__)
機能 操作の流れ
1.モデル展開
FastDeployはシングルクリックで複数のモデルのデプロイをサポートします。ターゲット検出モデルを例にとり、PaddleDetectionモデルを実行します:
from fastdeploy.vision import detection
model = detection.PaddleDetectionModel(
model_file="ppyoloe_crn_l_300e_coco/model.pdmodel",
params_file="ppyoloe_crn_l_300e_coco/model.pdiparams",
config_file="ppyoloe_crn_l_300e_coco/infer_cfg.yml"
)
result = model.predict("000000014439.jpg")
print(result)
ユーザーはモデルファイルをダウンロードする必要がある(例えば ppyoloe_crn_l_300e_coco.tgz
)を解凍してください。ファイルは公式リンクから入手できます。
2.ハードウェアの適応
FastDeploy は複数のハードウェアのデプロイをサポートします。例えば、RK3588 へのデプロイ:
cd demos/vision/detection/paddledetection/rknpu2/python
python infer.py --model_file picodet_s_416_coco_lcnet_rk3588.rknn \
--config_file picodet_s_416_coco_lcnet/infer_cfg.yml \
--image 000000014439.jpg
対応するドライバ(rknpu2など)がデバイスにインストールされていることを確認する。
3.推論の加速
FastDeploy はいくつかのアクセラレーション技術を提供する。例えば、定量化技術が使用されます(W8A16):
model.enable_quantization("W8A16")
または投機的デコードを有効にする:
model.enable_speculative_decoding()
これらの機能は推論速度を大幅に向上させ、高性能が要求されるシナリオに適している。
4.ビジュアル展開
VisualDLと連携することで、ユーザーはウェブ・インターフェイスを通じてモデルを管理できる:
- VisualDL サービスを開始します:
visualdl --model-dir model_path --host 0.0.0.0 --port 8040
- ブラウザからアクセス
http://localhost:8040
モデル構成のチューニング、パフォーマンスのモニタリング。
5.ドキュメンテーション・サポート
FastDeploy の詳細なドキュメントは <FastDeploy>/docs
ディレクトリかGitHubリポジトリにある。ユーザーが参照できる:
- モデルサポートリスト:
<FastDeploy>/docs/supported_models.md
- ハードウェア適応ガイド:
<FastDeploy>/docs/cn/build_and_install
ほら
- RK3588用のrknpu2ドライバなど、ハードウェアドライバがインストールされていることを確認する。
- メモリが不足するとコンパイルに失敗することがあるので、RK3588に少なくとも4GBのスワップ・パーティションを追加することを推奨する。
- このプロジェクトは頻繁に更新されるので、GitHubで定期的に最新版をチェックすることをお勧めする。
アプリケーションシナリオ
- インテリジェント・セキュリティ
FastDeployは、監視システム用のターゲット検出と顔認識モデルを展開します。開発者は、RK3588のようなエッジデバイス上でPaddleDetectionモデルを迅速に実行し、異常な動作をリアルタイムで検出することができます。 - スマートリテール
通行量カウントと商品識別のためのOCRと画像分類モデルをサポートします。小売業者は、FastDeployを通じて、顧客行動を分析するためにモバイルデバイス上にモデルを展開することができます。 - 産業オートメーション
FastDeployを使用して、生産ラインに画像分割モデルを展開し、製品の品質をチェックします。複雑な工場環境のための複数のハードウェア適応をサポートします。 - 音声対話
FastDeployのマルチトークン予測テクノロジーは、音声生成のスピードを向上させます。
品質保証
- FastDeploy はどのハードウェアをサポートしていますか?
NVIDIA GPU、Kunlun XPU、Rise NPU、RK3588、Iluvatar GPUなどをサポート。MetaX GPUなど、一部のハードウェアは対応中。 - 推論バックエンドを切り替えるには?
環境変数(たとえばENABLE_ORT_BACKEND=ON
)、あるいはコードでバックエンドを指定する(例えばmodel.set_backend("paddle")
) 推論エンジンを切り替える。 - FastDeploy は Web デプロイメントをサポートしていますか?
はい、Paddle.jsを介してウェブとアプレットのデプロイがサポートされています。<FastDeploy>/docs/web_deployment.md
. - 記憶力不足を感じたら、どうすればいいのでしょうか?
タスクの数はコンパイル時に制限できる(例えばpython setup.py build -j 4
)、またはデバイスにスワップパーティションを追加する。