onnxruntime server
v1.20.0
download-onnxruntime-linux.sh -Skript/usr/local/onnxruntime ./usr/local/onnxruntime/lib to /etc/ld.so.conf.d/onnxruntime.conf und führen Sie ldconfig aus.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| Betriebssystem | Verfahren | Befehl |
|---|---|---|
| Arch Linux | Aur | yay -S onnxruntime-server |
--model-dir ) eingeben, in der sich die Modelle befinden.${model_dir}/${model_name}/${model_version}/model.onnx oder ${model_dir}/${model_name}/${model_version}.onnx Dateien in --model-dir | Sitzungsanforderungskörper erstellen | Session API URL -Pfad erhalten/ausführen (nach dem Erstellen) |
|---|---|---|
model_name/model_version/model.onnx oder model_name/model_version.onnx | {"model":"model_name", "version":"model_version"} | /api/sessions/model_name/model_version |
sample/v1/model.onnx oder sample/v1.onnx | {"model":"sample", "version":"v1"} | /api/sessions/sample/v1 |
sample/v2/model.onnx oder sample/v2.onnx | {"model":"sample", "version":"v2"} | /api/sessions/sample/v2 |
other/20200101/model.onnx oder other/20200101.onnx | {"model":"other", "version":"20200101"} | /api/sessions/other/20200101 |
--tcp-port angeben.--http-port angeben.--https-port , --https-cert und --https-key angeben.--swagger-url-path Option angeben.-h , --help -Option, um eine vollständige Liste der Optionen anzuzeigen.ONNX_SERVER_CONFIG_PRIORITY=env Umgebungsvariable vorhanden ist, haben Umgebungsvariablen eine höhere Priorität. In einem Docker -Bild haben Umgebungsvariablen eine höhere Priorität. | Option | Umfeld | Beschreibung |
|---|---|---|
--workers | ONNX_SERVER_WORKERS | Größe des Arbeiter -Thread -Pools. Standard: 4 |
--request-payload-limit | ONNX_SERVER_REQUEST_PAYLOAD_LIMIT | HTTP/HTTPS -Nutzlastgrößengrenze. Standard: 1024 * 1024 * 10 (10 MB) `` |
--model-dir | ONNX_SERVER_MODEL_DIR | Modellverzeichnispfad Die ONNX -Modelldateien müssen sich auf dem folgenden Pfad befinden: ${model_dir}/${model_name}/${model_version}/model.onnx oder${model_dir}/${model_name}/${model_version}.onnxStandard: models |
--prepare-model | ONNX_SERVER_PREPARE_MODEL | Erstellen Sie einige Modellsitzungen beim Server-Start. Format als speicher getrennte Liste von model_name:model_version oder model_name:model_version(session_options, ...) .Verfügbare Session_Options sind - CUDA = Device_id [ or true or false]zB) model1:v1 model2:v9model1:v1(cuda=true) model2:v9(cuda=1) |
| Option | Umfeld | Beschreibung |
|---|---|---|
--tcp-port | ONNX_SERVER_TCP_PORT | Aktivieren Sie das TCP -Backend und welche Portnummer zu verwenden. |
--http-port | ONNX_SERVER_HTTP_PORT | Aktivieren Sie das HTTP -Backend und welche Portnummer zu verwenden. |
--https-port | ONNX_SERVER_HTTPS_PORT | Aktivieren Sie das HTTPS -Backend und welche Portnummer zu verwenden. |
--https-cert | ONNX_SERVER_HTTPS_CERT | SSL -Zertifizierungsdateipfad für HTTPS |
--https-key | ONNX_SERVER_HTTPS_KEY | SSL Private Schlüsseldateipfad für HTTPS |
--swagger-url-path | ONNX_SERVER_SWAGGER_URL_PATH | Aktivieren Sie das Swagger -API -Dokument für das HTTP/HTTPS -Backend. Dieser Wert kann nicht mit "/api/" und "/Gesundheit" beginnen Wenn nicht angegeben, wird das Swagger -Dokument nicht bereitgestellt. z. B.) /Prahlerei oder /API-Docs |
| Option | Umfeld | Beschreibung |
|---|---|---|
--log-level | ONNX_SERVER_LOG_LEVEL | Protokollebene (Debug, Info, Warn, Fehler, tödlich) |
--log-file | ONNX_SERVER_LOG_FILE | Protokolldateipfad. Wenn nicht angegeben, werden Protokolle in STDOut gedruckt. |
--access-log-file | ONNX_SERVER_ACCESS_LOG_FILE | Zugriff auf Protokolldateipfad. Wenn nicht angegeben, werden Protokolle in STDOut gedruckt. |
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 hinzu. Dies muss mit der Option --http-port oder --https-port verwendet werden. ./onnxruntime_server --model-dir=YOUR_MODEL_DIR --http-port=8080 --swagger-url-path=/api-docs/http://localhost:8080/api-docs/ verfügbar ist. %% {init: {
'Sequenz': {'Notalign': 'links', 'Mirroractors': true}
}} %%%
sequenzieren
Schauspieler A als Administrator
Box RGB (0, 0, 0, 0,1) "Onnx Runtime Server"
Teilnehmer SD als Festplatte
Teilnehmer SP als Prozess
Ende
Schauspieler C als Kunde
Beachten Sie das Recht von A: Sie haben 3 Modelle zum Servieren.
A ->> SD: Modelldateien auf Festplatte kopieren.
A ->> SP: Der Server mit -Vorbereitungsmodelloption starten
aktivieren sp
HINWEIS RICHTIG VON A: ONNXRUNTIME_SERVER <BR />-HTTP-PORT = 8080 <BR />-MODELL-PADH = /VAR /MODELLE <BR />-Preped-Model = "model_a: v1 (cuda = 0) model_a: v2 (cuda = 0)"
SP ->> SD: Lastmodell
Hinweis über SD, SP: Lastmodell von <br />"/var/models/model_a/v1/model.onnx "
SD ->> SP: Model Binary
aktivieren sp
SP ->> SP: Create <BR /> OnnxRuntime <BR /> Session
deaktivieren sp
deaktivieren sp
RECT RGB (100, 100, 100, 0,3)
Hinweis über SD, C: Sitzung ausführen
C ->> SP: Sitzungsanforderung ausführen
aktivieren sp
Hinweis über 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 />} <br />
aktivieren sp
SP ->> SP: Ausführen <br /> OnnxRuntime <BR /> Session
deaktivieren sp
SP ->> C: Sitzungsantwort ausführen
deaktivieren sp
Hinweis über sp, c: {<br /> "output": [<br /> 20.6492120623588562..,ell /> 20.7610487341880798 weibliche, <Br /> · 0.8728854656219482 92 21,Br />] <br />] <br />]
Ende
%% {init: {
'Sequenz': {'Notalign': 'links', 'Mirroractors': true}
}} %%%
sequenzieren
Schauspieler A als Administrator
Box RGB (0, 0, 0, 0,1) "Onnx Runtime Server"
Teilnehmer SD als Festplatte
Teilnehmer SP als Prozess
Ende
Schauspieler C als Kunde
Beachten Sie das Recht von A: Sie haben 3 Modelle zum Servieren.
A ->> SD: Modelldateien auf Festplatte kopieren.
A ->> SP: Server starten
HINWEIS RICHTIG VON A: ONNXRUNTIME_SERVER <BR />-HTTP-PORT = 8080 <BR />-Modellpath = /var /Modelle
RECT RGB (100, 100, 100, 0,3)
Hinweis über SD, C: Sitzung erstellen
C ->> SP: Sitzungsanforderung erstellen
aktivieren sp
Hinweis über SP, C: Post /API /Sessions <BR /> {"Modell": "model_a", "Version": "v1"}
SP ->> SD: Lastmodell
Hinweis über SD, SP: Lastmodell von <br />"/var/models/model_a/v1/model.onnx "
SD ->> SP: Model Binary
aktivieren sp
SP ->> SP: Create <BR /> OnnxRuntime <BR /> Session
deaktivieren sp
SP ->> C: Sitzungsantwort erstellen
deaktivieren sp
Note over SP, C: {<br />"model": "model_A",<br />"version": "v1",<br />"created_at": 1694228106,<br />"execution_count": 0,<br />"last_executed_at": 0,<br />"inputs": {<br />"x": "float32[-1,1]",<br /> "y": "float32 [-1,1]", <br /> "z": "float32 [-1,1]" <br />}, <br /> "Ausgaben": {<br /> "Ausgabe": "Float32 [-1,1]" <br />} <br />}}}}}}}}}}}}}}
Hinweis Recht von C:? Sie können den Typ und die Form <br /> des Eingangs und der Ausgabe kennen.
Ende
RECT RGB (100, 100, 100, 0,3)
Hinweis über SD, C: Sitzung ausführen
C ->> SP: Sitzungsanforderung ausführen
aktivieren sp
Hinweis über 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 />} <br />
aktivieren sp
SP ->> SP: Ausführen <br /> OnnxRuntime <BR /> Session
deaktivieren sp
SP ->> C: Sitzungsantwort ausführen
deaktivieren sp
Hinweis über sp, c: {<br /> "output": [<br /> 20.6492120623588562..,ell /> 20.7610487341880798 weibliche, <Br /> · 0.8728854656219482 92 21,Br />] <br />] <br />]
Ende