onnxruntime server
v1.20.0
download-onnxruntime-linux.sh/usr/local/onnxruntime ./usr/local/onnxruntime/lib à /etc/ld.so.conf.d/onnxruntime.conf et exécuter 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 | Méthode | Commande |
|---|---|---|
| Arch Linux | AUR | yay -S onnxruntime-server |
--model-dir ) où se trouvent les modèles.${model_dir}/${model_name}/${model_version}/model.onnx ou ${model_dir}/${model_name}/${model_version}.onnx Fichiers dans --model-dir | Créer un corps de demande de session | Get / Exécuter le chemin d'URL de l'API de session (après créé) |
|---|---|---|
model_name/model_version/model.onnx ou model_name/model_version.onnx | {"model":"model_name", "version":"model_version"} | /api/sessions/model_name/model_version |
sample/v1/model.onnx ou sample/v1.onnx | {"model":"sample", "version":"v1"} | /api/sessions/sample/v1 |
sample/v2/model.onnx ou sample/v2.onnx | {"model":"sample", "version":"v2"} | /api/sessions/sample/v2 |
other/20200101/model.onnx ou other/20200101.onnx | {"model":"other", "version":"20200101"} | /api/sessions/other/20200101 |
--tcp-port .--http-port .--https-port , --https-cert et --https-key .--swagger-url-path .-h , --help pour voir une liste complète des options.ONNX_SERVER_CONFIG_PRIORITY=env , les variables d'environnement ont une priorité plus élevée. Dans une image Docker, les variables d'environnement ont une priorité plus élevée. | Option | Environnement | Description |
|---|---|---|
--workers | ONNX_SERVER_WORKERS | Taille de la piscine de filetage des travailleurs. Par défaut: 4 |
--request-payload-limit | ONNX_SERVER_REQUEST_PAYLOAD_LIMIT | HTTP / HTTPS demande la limite de taille de charge utile. Par défaut: 1024 * 1024 * 10 (10 Mo) ` |
--model-dir | ONNX_SERVER_MODEL_DIR | Chemin du répertoire modèle Les fichiers du modèle ONNX doivent être situés dans le chemin suivant: ${model_dir}/${model_name}/${model_version}/model.onnx ou${model_dir}/${model_name}/${model_version}.onnxPar défaut: models |
--prepare-model | ONNX_SERVER_PREPARE_MODEL | Pré-créez certaines sessions de modèle au démarrage du serveur. Format comme une liste séparée de l'espace de model_name:model_version ou model_name:model_version(session_options, ...) .Session_options disponibles sont - cuda = device_id [ or true or false]par exemple) model1:v1 model2:v9model1:v1(cuda=true) model2:v9(cuda=1) |
| Option | Environnement | Description |
|---|---|---|
--tcp-port | ONNX_SERVER_TCP_PORT | Activez le backend TCP et le numéro de port à utiliser. |
--http-port | ONNX_SERVER_HTTP_PORT | Activer le backend HTTP et le numéro de port à utiliser. |
--https-port | ONNX_SERVER_HTTPS_PORT | Activer le backend HTTPS et le numéro de port à utiliser. |
--https-cert | ONNX_SERVER_HTTPS_CERT | Chemin de fichier de certification SSL pour HTTPS |
--https-key | ONNX_SERVER_HTTPS_KEY | Chemin de fichier de clé privé SSL pour HTTPS |
--swagger-url-path | ONNX_SERVER_SWAGGER_URL_PATH | Activez le document API Swagger pour le backend HTTP / HTTPS. Cette valeur ne peut pas commencer par "/ api /" et "/ santé" Si ce n'est pas spécifié, le document de fanfaron non fourni. par exemple) / swagger ou / api-docs |
| Option | Environnement | Description |
|---|---|---|
--log-level | ONNX_SERVER_LOG_LEVEL | Niveau de journal (débogage, info, avertissement, erreur, mortel) |
--log-file | ONNX_SERVER_LOG_FILE | Chemin de fichier journal. S'il n'est pas spécifié, les journaux seront imprimés sur stdout. |
--access-log-file | ONNX_SERVER_ACCESS_LOG_FILE | Accédez à la trajectoire du fichier journal. S'il n'est pas spécifié, les journaux seront imprimés sur 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/ au lancement. Ceci doit être utilisé avec l'option --http-port ou --https-port . ./onnxruntime_server --model-dir=YOUR_MODEL_DIR --http-port=8080 --swagger-url-path=/api-docs/http://localhost:8080/api-docs/ . %% {init: {
'séquence': {'noteAlign': 'Left', 'Mirroractors': true}
}} %%
séquenchestre
acteur A en tant qu'administrateur
Box RVB (0, 0, 0, 0.1) "ONNX Runtime Server"
participant SD comme disque
Participant SP comme processus
fin
acteur C en tant que client
Remarque Droit de A: Vous avez 3 modèles à servir.
A - >> SD: Copiez les fichiers du modèle sur disque. <Br />"/var/models/model_a/v1/model.onnx"<br />"/var/models/model_a/v2/model.onnx" <br />"/var/models/model_b/202011/model.onnex "
A - >> SP: Démarrez le serveur avec - Prépare-modèle d'option
Activer SP
Remarque Droits de A: onnxruntime_Server <Br /> - http-port = 8080 <br /> - Model-Path = / var / Modèles <Br /> - Prépare-Model = "Model_A: V1 (CUDA = 0) Model_A: V2 (CUDA = 0)"
Sp - >> sd: modèle de chargement
Remarque sur SD, SP: Modèle de chargement de <Br />"/var/models/model_a/v1/model.onnx "
SD - >> SP: modèle binaire
Activer SP
SP - >> SP: Créer <br /> onnxruntime <br /> Session
désactiver SP
désactiver SP
RGB RECT (100, 100, 100, 0,3)
Remarque sur SD, C: Exécuter la session
C - >> SP: Exécuter la demande de session
Activer SP
Remarque sur SP, C: Post / API / SESSIONS / MODÈLE_A / V1 <Br /> {<Br /> "x": [[1], [2], [3]], <Br /> "Y": [[2], [3], [4]], <Br /> "Z": [3], [4], [5]] <Br />}
Activer SP
SP - >> SP: EXECUTE <BR /> ONNXRUNTIME <BR />
désactiver SP
Sp - >> C: Exécuter la réponse de la session
désactiver SP
Remarque sur Sp, C: {<Br /> "Output": [<Br /> ·0.6492120623588562.
fin
%% {init: {
'séquence': {'noteAlign': 'Left', 'Mirroractors': true}
}} %%
séquenchestre
acteur A en tant qu'administrateur
Box RVB (0, 0, 0, 0.1) "ONNX Runtime Server"
participant SD comme disque
Participant SP comme processus
fin
acteur C en tant que client
Remarque Droit de A: Vous avez 3 modèles à servir.
A - >> SD: Copiez les fichiers du modèle sur disque. <Br />"/var/models/model_a/v1/model.onnx"<br />"/var/models/model_a/v2/model.onnx" <br />"/var/models/model_b/202011/model.onnex "
A - >> sp: start serveur
Remarque Droits de A: onnxruntime_server <br /> - http-port = 8080 <br /> - modèle-path = / var / modèles
RGB RECT (100, 100, 100, 0,3)
Remarque sur SD, C: Créer la session
C - >> SP: Créer une demande de session
Activer SP
Remarque sur SP, C: Post / API / Sessions <Br /> {"Modèle": "Model_A", "Version": "V1"}
Sp - >> sd: modèle de chargement
Remarque sur SD, SP: Modèle de chargement de <Br />"/var/models/model_a/v1/model.onnx "
SD - >> SP: modèle binaire
Activer SP
SP - >> SP: Créer <br /> onnxruntime <br /> Session
désactiver SP
Sp - >> c: créer une réponse de session
désactiver SP
Remarque sur sp, c: {<br /> "modèle": "Model_A", <r /> "version": "v1", <r /> "créé_at": 1694228106, <br /> "exécution_count": 0, <br /> "last_executed_at": 0, <br /> "entrées": {<br /> "x": "float32 [-1] /> "y": "float32 [-1,1]", <br /> "z": "float32 [-1,1]" <br />}, <r /> "sorties": {<br /> "output": "float32 [-1,1]" <br />} <br />}
Remarque Droit de C :? Vous pouvez connaître le type et la forme <br /> de l'entrée et de la sortie.
fin
RGB RECT (100, 100, 100, 0,3)
Remarque sur SD, C: Exécuter la session
C - >> SP: Exécuter la demande de session
Activer SP
Remarque sur SP, C: Post / API / SESSIONS / MODÈLE_A / V1 <Br /> {<Br /> "x": [[1], [2], [3]], <Br /> "Y": [[2], [3], [4]], <Br /> "Z": [3], [4], [5]] <Br />}
Activer SP
SP - >> SP: EXECUTE <BR /> ONNXRUNTIME <BR />
désactiver SP
Sp - >> C: Exécuter la réponse de la session
désactiver SP
Remarque sur Sp, C: {<Br /> "Output": [<Br /> ·0.6492120623588562.
fin