onnxruntime server
v1.20.0
download-onnxruntime-linux.sh/usr/local/onnxruntime ./usr/local/onnxruntime/lib to /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| ОС | Метод | Командование |
|---|---|---|
| Arch Linux | Аур | yay -S onnxruntime-server |
--model-dir ), где расположены модели.${model_dir}/${model_name}/${model_version}/model.onnx или ${model_dir}/${model_name}/${model_version}.onnx Файлы в --model-dir | Создать тело запроса сеанса | Получить/выполнить путь URL -адреса Session API (После создания) |
|---|---|---|
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 (10 МБ) ` |
--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 | Проезд файла сертификации SSL для HTTPS |
--https-key | ONNX_SERVER_HTTPS_KEY | SSL Private Key Pail File для HTTPS |
--swagger-url-path | ONNX_SERVER_SWAGGER_URL_PATH | Включить документ Swagger API для бэкэнда HTTP/HTTPS. Это значение не может начаться с "/api/" и "/Health" Если не указано, документ Swagger не предоставлен. Например) /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/ при запуске». Это должно использоваться с опцией --http-port или --https-port . ./onnxruntime_server --model-dir=YOUR_MODEL_DIR --http-port=8080 --swagger-url-path=/api-docs/http://localhost:8080/api-docs/ . %% {init: {
«последовательность»: {'letealign': 'Left', 'Mirroractors': true}
}} %%
секвенированная
актер А как администратор
Box RGB (0, 0, 0, 0.1) "Onnx Runtime Server"
Участник SD как диск
участник SP как процесс
конец
актер C как клиент
ПРИМЕЧАНИЕ ПРЕДЫ: У вас есть 3 модели для обслуживания.
A ->> SD: copy model files to disk.<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: Start Server с опцией моделя -Prepare
активировать Sp
ПРИМЕЧАНИЕ ПРЕДОСТАВЛЯЕТСЯ A: ONNXRUNTIME_SERVER <BR />-http-port = 8080 <br />-model-path = /var /model
SP ->> SD: Модель нагрузки
Примечание по SD, SP: Модель загрузки от <br />"/var/models/model_a/v1/model.onnx "
SD ->> sp: модель бинарного
активировать Sp
Sp ->> sp: create <br /> onnxruntime <br /> session
Деактивировать Sp
Деактивировать Sp
Прямо 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: execute <br /> onnxruntime <br /> session
Деактивировать Sp
Sp ->> c: выполнить ответ сеанса
Деактивировать Sp
Примечание по SP, C: {<br /> "output": [<br />тнальное.
конец
%% {init: {
«последовательность»: {'letealign': 'Left', 'Mirroractors': true}
}} %%
секвенированная
актер А как администратор
Box RGB (0, 0, 0, 0.1) "Onnx Runtime Server"
Участник SD как диск
участник SP как процесс
конец
актер C как клиент
ПРИМЕЧАНИЕ ПРЕДЫ: У вас есть 3 модели для обслуживания.
A ->> SD: copy model files to disk.<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: начальный сервер
ПРИМЕЧАНИЕ ПРЕДОСТАВЛЕНИЕ A: ONNXRUNTIME_SERVER <br />-http-port = 8080 <br />-model-path = /var /models
Прямо 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: create <br /> onnxruntime <br /> session
Деактивировать Sp
Sp ->> c: создать ответ сеанса
Деактивировать Sp
Примечание по SP, C: {<br /> «модель»: «model_a», <br /> «версия»: «v1», <br /> «create_at»: 1694228106, <br /> «execution_count»: 0, <br /> "last_execed_at": 0, <br /> "inputs": {<br /> "x". /> "y": "float32 [-1,1]", <br /> "z": "float32 [-1,1]" <br />}, <br /> "Выходы": {<br /> "output": "float32 [-1,1]" <br />} <br />}
Примечание справа от C:? Вы можете знать тип и форму <br /> ввода и вывода.
конец
Прямо 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: execute <br /> onnxruntime <br /> session
Деактивировать Sp
Sp ->> c: выполнить ответ сеанса
Деактивировать Sp
Примечание по SP, C: {<br /> "output": [<br />тнальное.
конец