onnxruntime server
v1.20.0
download-onnxruntime-linux.sh/usr/local/onnxruntime ./usr/local/onnxruntime/lib to /etc/ld.so.conf.d/onnxruntime.conf y ejecute 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| Sistema operativo | Método | Dominio |
|---|---|---|
| Arch Linux | Aur | yay -S onnxruntime-server |
--model-dir ) donde se encuentran los modelos.${model_dir}/${model_name}/${model_version}/model.onnx o ${model_dir}/${model_name}/${model_version}.onnx Archivos en --model-dir | Crear cuerpo de solicitud de sesión | Obtener/ejecutar la ruta de URL de la API de la sesión (Después de crear) |
|---|---|---|
model_name/model_version/model.onnx o model_name/model_version.onnx | {"model":"model_name", "version":"model_version"} | /api/sessions/model_name/model_version |
sample/v1/model.onnx o sample/v1.onnx | {"model":"sample", "version":"v1"} | /api/sessions/sample/v1 |
sample/v2/model.onnx o sample/v2.onnx | {"model":"sample", "version":"v2"} | /api/sessions/sample/v2 |
other/20200101/model.onnx u other/20200101.onnx | {"model":"other", "version":"20200101"} | /api/sessions/other/20200101 |
--tcp-port .--http-port .--https-port , --https-cert y --https-key .--swagger-url-path .-h , --help para ver una lista completa de opciones.ONNX_SERVER_CONFIG_PRIORITY=env , las variables de entorno tienen mayor prioridad. Dentro de una imagen de Docker, las variables de entorno tienen mayor prioridad. | Opción | Ambiente | Descripción |
|---|---|---|
--workers | ONNX_SERVER_WORKERS | Tamaño del grupo de hilo de trabajadores. Valor predeterminado: 4 |
--request-payload-limit | ONNX_SERVER_REQUEST_PAYLOAD_LIMIT | HTTP/HTTPS Solicitud Pendiente Pendiente Límite de tamaño de carga. Valor predeterminado: 1024 * 1024 * 10 (10MB) ` |
--model-dir | ONNX_SERVER_MODEL_DIR | Ruta de directorio de modelos Los archivos del modelo ONNX deben ubicarse en la siguiente ruta: ${model_dir}/${model_name}/${model_version}/model.onnx o${model_dir}/${model_name}/${model_version}.onnxValor predeterminado: models |
--prepare-model | ONNX_SERVER_PREPARE_MODEL | Pre-cree algunas sesiones de modelo en el inicio del servidor. Formato como una lista separada por el espacio de model_name:model_version o model_name:model_version(session_options, ...) .Session_options disponible son - cuda = dispositivo_id [ or true or false]EG) model1:v1 model2:v9model1:v1(cuda=true) model2:v9(cuda=1) |
| Opción | Ambiente | Descripción |
|---|---|---|
--tcp-port | ONNX_SERVER_TCP_PORT | Habilite el backend de TCP y qué número de puerto usar. |
--http-port | ONNX_SERVER_HTTP_PORT | Habilite el backend http y qué número de puerto usar. |
--https-port | ONNX_SERVER_HTTPS_PORT | Habilite el backend de HTTPS y qué número de puerto usar. |
--https-cert | ONNX_SERVER_HTTPS_CERT | Ruta del archivo de certificación SSL para https |
--https-key | ONNX_SERVER_HTTPS_KEY | Ruta de archivo de clave privada SSL para https |
--swagger-url-path | ONNX_SERVER_SWAGGER_URL_PATH | Habilite el documento API Swagger para el backend HTTP/HTTPS. Este valor no puede comenzar con "/API/" y "/salud" Si no se especifica, no se proporciona documento swagger. por ejemplo) /swagger o /api-docs |
| Opción | Ambiente | Descripción |
|---|---|---|
--log-level | ONNX_SERVER_LOG_LEVEL | Nivel de registro (depuración, información, advertencia, error, fatal) |
--log-file | ONNX_SERVER_LOG_FILE | Ruta del archivo de registro. Si no se especifica, los registros se imprimirán en Stdout. |
--access-log-file | ONNX_SERVER_ACCESS_LOG_FILE | Ruta de archivo de registro de acceso. Si no se especifica, los registros se imprimirán en 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/ opción en el lanzamiento. Esto debe usarse con la opción --http-port o --https-port . ./onnxruntime_server --model-dir=YOUR_MODEL_DIR --http-port=8080 --swagger-url-path=/api-docs/http://localhost:8080/api-docs/ . %% {init: {
'secuencia': {'notealign': 'izquierda', 'Mirroractors': True}
}} %%
secuencediagram
actor A como administrador
Box RGB (0, 0, 0, 0.1) "Onnx Runtime Server"
Participante SD como disco
Participante SP como proceso
fin
Actor C como cliente
Nota Derecho de A: tiene 3 modelos para servir.
A ->> SD: Copie los archivos del modelo en el disco. <Br />"/var/models/model_a/v1/model.onnx"<br />"/var/models/model_a/v2/model.onnx"<br />"/var/models/model_b/20201101/model.onnx "" ""
A ->> SP: Inicie el servidor con la opción --Prepare -Model
activar SP
Nota Derecho de a: Onnxruntime_server <Br />-http-puerto = 8080 <Br />-Model-Path = /Var /Models <Br />-Prepare-Model = "Model_a: V1 (CUDA = 0) Model_a: V2 (CUDA = 0)"
SP ->> SD: modelo de carga
Nota sobre SD, SP: Modelo de carga desde <br />"/var/models/model_a/v1/model.onnx "
SD ->> SP: Modelo Binario
activar SP
SP ->> SP: Crear <Br /> Onnxruntime <Br /> Sesión
desactivar SP
desactivar SP
RECT RGB (100, 100, 100, 0.3)
Nota sobre SD, C: Ejecutar sesión
C ->> SP: Solicitud de sesión de ejecución
activar SP
Nota sobre 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 />}
activar SP
SP ->> SP: Ejecutar <Br /> Onnxruntime <Br /> Sesión
desactivar SP
SP ->> C: Ejecutar la respuesta de la sesión
desactivar SP
Nota sobre SP, C: {<Br /> "Output": [<Br />+.6492120623588562font>,<Br />=0.7610487341880798font>,<Br /> dispon
fin
%% {init: {
'secuencia': {'notealign': 'izquierda', 'Mirroractors': True}
}} %%
secuencediagram
actor A como administrador
Box RGB (0, 0, 0, 0.1) "Onnx Runtime Server"
Participante SD como disco
Participante SP como proceso
fin
Actor C como cliente
Nota Derecho de A: tiene 3 modelos para servir.
A ->> SD: Copie los archivos del modelo en el disco. <Br />"/var/models/model_a/v1/model.onnx"<br />"/var/models/model_a/v2/model.onnx"<br />"/var/models/model_b/20201101/model.onnx "" ""
A ->> SP: Inicio del servidor
Nota Derecho de a: Onnxruntime_server <Br />-Http-puerto = 8080 <Br />-Model-Path = /Var /Models
RECT RGB (100, 100, 100, 0.3)
Nota sobre SD, C: Crear sesión
C ->> SP: Crear solicitud de sesión
activar SP
Nota sobre SP, C: Post /API /Sessions <Br /> {"Model": "Model_a", "Versión": "V1"}
SP ->> SD: modelo de carga
Nota sobre SD, SP: Modelo de carga desde <br />"/var/models/model_a/v1/model.onnx "
SD ->> SP: Modelo Binario
activar SP
SP ->> SP: Crear <Br /> Onnxruntime <Br /> Sesión
desactivar SP
SP ->> C: Crear respuesta de sesión
desactivar SP
Nota sobre SP, C: {<Br /> "Model": "Model_a", <Br /> "Versión": "V1", <Br /> "Create_at": 16942228106, <Br /> "Execution_Count": 0, <Br /> "Last_Executed_at": 0, <Br /> "Entradas: {<Br />" X ":" Float32 " /> "Y": "Float32 [-1,1]", <Br /> "Z": "Float32 [-1,1]" <Br />}, <br /> "salidas": {<Br /> "Output": "Float32 [-1,1]" <Br />} <Br />}
Nota Derecho de C :? Puede conocer el tipo y la forma <Br /> de la entrada y la salida.
fin
RECT RGB (100, 100, 100, 0.3)
Nota sobre SD, C: Ejecutar sesión
C ->> SP: Solicitud de sesión de ejecución
activar SP
Nota sobre 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 />}
activar SP
SP ->> SP: Ejecutar <Br /> Onnxruntime <Br /> Sesión
desactivar SP
SP ->> C: Ejecutar la respuesta de la sesión
desactivar SP
Nota sobre SP, C: {<Br /> "Output": [<Br />+.6492120623588562font>,<Br />=0.7610487341880798font>,<Br /> dispon
fin