onnxruntime server
v1.20.0
download-onnxruntime-linux.shスクリプトを使用してください/usr/local/onnxruntimeにインストールします。/usr/local/onnxruntime/libを/etc/ld.so.conf.d/onnxruntime.confに追加し、 ldconfigを実行します。brew install onnxruntimesudo apt install cmake pkg-config libboost-all-dev libssl-devsudo apt install cuda-toolkit-12 libcudnn9-dev-cuda-12
# optional, for Nvidia GPU support with Docker
sudo apt install nvidia-container-toolkit brew install cmake boost opensslcmake -B build -S . -DCMAKE_BUILD_TYPE=Release
cmake --build build --parallel
sudo cmake --install build --prefix /usr/local/onnxruntime-server| OS | 方法 | 指示 |
|---|---|---|
| Arch Linux | aur | yay -S onnxruntime-server |
--model-dir )を入力する必要があります。${model_dir}/${model_name}/${model_version}/model.onnxまたは${model_dir}/${model_name}/${model_version}.onnx --model-dirのファイル | セッション要求本体を作成します | セッションAPI URLパスを取得/実行します (作成後) |
|---|---|---|
model_name/model_version/model.onnxまたはmodel_name/model_version.onnx | {"model":"model_name", "version":"model_version"} | /api/sessions/model_name/model_version |
sample/v1/model.onnxまたはsample/v1.onnx | {"model":"sample", "version":"v1"} | /api/sessions/sample/v1 |
sample/v2/model.onnxまたはsample/v2.onnx | {"model":"sample", "version":"v2"} | /api/sessions/sample/v2 |
other/20200101/model.onnxまたはother/20200101.onnx | {"model":"other", "version":"20200101"} | /api/sessions/other/20200101 |
--tcp-portオプションを指定する必要があります。--http-portオプションを指定する必要があります。--https-port 、 --https-cert 、および--https-keyオプションを指定する必要があります。--swagger-url-pathオプションを指定する必要があります。-h 、 --helpオプションを使用して、オプションの完全なリストを表示します。ONNX_SERVER_CONFIG_PRIORITY=env環境変数が存在する場合、環境変数は優先度が高くなります。 Docker画像内では、環境変数の優先度が高くなります。 | オプション | 環境 | 説明 |
|---|---|---|
--workers | ONNX_SERVER_WORKERS | ワーカースレッドプールサイズ。 デフォルト: 4 |
--request-payload-limit | ONNX_SERVER_REQUEST_PAYLOAD_LIMIT | http/httpsは、ペイロードサイズの制限を要求します。 デフォルト:1024 * 1024 * 10(10MB) ` |
--model-dir | ONNX_SERVER_MODEL_DIR | モデルディレクトリパス ONNXモデルファイルは、次のパスに配置する必要があります。 ${model_dir}/${model_name}/${model_version}/model.onnxまたは${model_dir}/${model_name}/${model_version}.onnxデフォルト: models |
--prepare-model | ONNX_SERVER_PREPARE_MODEL | サーバーの起動時にいくつかのモデルセッションを事前に作成します。model_name:model_versionまたはmodel_name:model_version(session_options, ...)のスペース分離リストとしての形式。利用可能なsession_optionsはです -cuda = device_id [ or true or false]例) model1:v1 model2:v9model1:v1(cuda=true) model2:v9(cuda=1) |
| オプション | 環境 | 説明 |
|---|---|---|
--tcp-port | ONNX_SERVER_TCP_PORT | TCPバックエンドと使用するポート番号を有効にします。 |
--http-port | ONNX_SERVER_HTTP_PORT | HTTPバックエンドと使用するポート番号を有効にします。 |
--https-port | ONNX_SERVER_HTTPS_PORT | HTTPSバックエンドと使用するポート番号を有効にします。 |
--https-cert | ONNX_SERVER_HTTPS_CERT | HTTPSのSSL認定ファイルパス |
--https-key | ONNX_SERVER_HTTPS_KEY | HTTPSのSSL秘密キーファイルパス |
--swagger-url-path | ONNX_SERVER_SWAGGER_URL_PATH | http/httpsバックエンドのSwagger APIドキュメントを有効にします。 この値は「/api/」と「/health」で始まることはできません 指定されていない場合は、Swaggerドキュメントが提供されていません。 eg) /swaggerまたは /api-docs |
| オプション | 環境 | 説明 |
|---|---|---|
--log-level | ONNX_SERVER_LOG_LEVEL | ログレベル(デバッグ、情報、警告、エラー、致命的) |
--log-file | ONNX_SERVER_LOG_FILE | ログファイルパス。 指定されていない場合、ログはstdoutに印刷されます。 |
--access-log-file | ONNX_SERVER_ACCESS_LOG_FILE | ログファイルパスにアクセスします。 指定されていない場合、ログはstdoutに印刷されます。 |
1.20.1-linux-cuda12 AMD64(CUDA 12.X、CUDNN 9.x)1.20.1-linux-cpu AMD64、ARM64 DOCKER_IMAGE=kibae/onnxruntime-server:1.20.1-linux-cuda12 # or kibae/onnxruntime-server:1.20.1-linux-cpu
docker pull ${DOCKER_IMAGE}
# simple http backend
docker run --name onnxruntime_server_container -d --rm --gpus all
-p 80:80
-v " /your_model_dir:/app/models "
-v " /your_log_dir:/app/logs "
-e " ONNX_SERVER_SWAGGER_URL_PATH=/api-docs "
${DOCKER_IMAGE}--swagger-url-path=/swagger/ optionを追加します。これは--http-portまたは--https-portオプションで使用する必要があります。 ./onnxruntime_server --model-dir=YOUR_MODEL_DIR --http-port=8080 --swagger-url-path=/api-docs/http://localhost:8080/api-docs/で利用可能なSwagger UIにアクセスできます。 %% {init:{
'Sequence':{'Notealign': 'left'、 'mirroractors':true}
}} %%
Sequendediagram
管理者としての俳優A
ボックスRGB(0、0、0、0.1)「onnxランタイムサーバー」
ディスクとしての参加者SD
参加者SP ASプロセス
終わり
クライアントとしての俳優C
Aの右:3つのモデルを提供します。
A- >> SD:モデルファイルをディスクにコピーします。
a- >> sp:サーバーを開始-prepare -modelオプション
sp
Aの右:onnxruntime_server <br /> - http-port = 8080 <br /> - model-path = /var /models <br /> - prepare-model = "model_a:v1(cuda = 0)model_a:v2(cuda = 0)"
SP- >> SD:ロードモデル
SD、SPに注意:<br />"/var/models/model_a/v1/model.onnx "のロードモデル
SD- >> SP:モデルバイナリ
sp
sp- >> sp:<br /> onnxruntime <br />セッションを作成します
sp
sp
RECT RGB(100、100、100、0.3)
SD、Cに注意してください:セッションを実行します
C- >> SP:セッションリクエストを実行します
sp
sp、c:post /api /sessions /model_a /v1 <br /> {<br /> "x":[1]、[2]、[3]]、<br /> "y":[[2]、[3]、[4]、<br /> "z":[[3]、[4]、[5] <br />>}}
sp
sp- >> sp:実行<br /> onnxruntime <br /> session
sp
SP- >> C:セッション応答を実行します
sp
sp、c:{<br /> "output":[<br /> [0.6492120623588562]、<br /> [0.7610487341880798]、<br />
終わり
%% {init:{
'Sequence':{'Notealign': 'left'、 'mirroractors':true}
}} %%
Sequendediagram
管理者としての俳優A
ボックスRGB(0、0、0、0.1)「onnxランタイムサーバー」
ディスクとしての参加者SD
参加者SP ASプロセス
終わり
クライアントとしての俳優C
Aの右:3つのモデルを提供します。
A- >> SD:モデルファイルをディスクにコピーします。
A- >> SP:サーバーを開始します
A右A:onnxruntime_server <br /> - http-port = 8080 <br /> - model-path = /var /models
RECT RGB(100、100、100、0.3)
SD、Cに注意してください:セッションを作成します
C- >> SP:セッション要求を作成します
sp
sp、c:post /api /sessions <br /> {"model": "model_a"、 "version": "v1"}
SP- >> SD:ロードモデル
SD、SPに注意:<br />"/var/models/model_a/v1/model.onnx "のロードモデル
SD- >> SP:モデルバイナリ
sp
sp- >> sp:<br /> onnxruntime <br />セッションを作成します
sp
SP- >> C:セッション応答を作成します
sp
sp、c:{<br /> "model": "model_a"、<br /> "バージョン": "v1"、<br /> "created_at":1694228106、<br /> "execution_count":0、<br /> "last_executed_at":0、<br /> "float32 [-1,1]"、<br /> "y": "float32 [-1,1]"、<br /> "z": "float32 [-1,1]" <br />}、<br /> "出力":{<br /> "output": "float32 [-1,1]" <br />}
Cの右に注意:?入力と出力のタイプと形状<BR />を知ることができます。
終わり
RECT RGB(100、100、100、0.3)
SD、Cに注意してください:セッションを実行します
C- >> SP:セッションリクエストを実行します
sp
sp、c:post /api /sessions /model_a /v1 <br /> {<br /> "x":[1]、[2]、[3]]、<br /> "y":[[2]、[3]、[4]、<br /> "z":[[3]、[4]、[5] <br />>}}
sp
sp- >> sp:実行<br /> onnxruntime <br /> session
sp
SP- >> C:セッション応答を実行します
sp
sp、c:{<br /> "output":[<br /> [0.6492120623588562]、<br /> [0.7610487341880798]、<br />
終わり