onnxruntime server
v1.20.0
download-onnxruntime-linux.sh脚本/usr/local/onnxruntime 。/usr/local/onnxruntime/lib to/ /etc/ld.so.conf.d/onnxruntime.conf和run 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中的文件 | 创建会话请求主体 | 获取/执行会话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 | 模型目录路径 ONX模型文件必须位于以下路径中: ${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文件。 例如) /Swagger或 /API-DOC |
| 选项 | 环境 | 描述 |
|---|---|---|
--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':'左','irriyactors':true}
}} %%
测序图
演员A作为管理员
Box RGB(0,0,0,0.1)“ ONNX Runtime Server”
参与者SD作为磁盘
参与者SP作为过程
结尾
演员C作为客户
请注意:A的右侧:您有3种型号可以使用。
A- >> SD:将模型文件复制到磁盘。
A- >> SP:使用-Prepare -Model选项启动服务器
激活sp
注意:a的右值:onnxruntime_server <br /> - http-port = 8080 <br /> - model-path = /var /models <br /> - prepard-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 /MODER_A /V1 <BR /> {<br />“ X”:[[[1],[2],[3],[3],[3],<br />“ y”:[[2],[3],[4],[4],[4],<br />
激活sp
sp- >> sp:执行<br /> onnxRuntime <br />会话
停用sp
SP- >> C:执行会话响应
停用sp
注意SP,C:{<br />“输出”:[<br /> [<br /> [0.6492120623588562]
结尾
%% {init:{
'sequence':{'notealign':'左','irriyactors':true}
}} %%
测序图
演员A作为管理员
Box RGB(0,0,0,0.1)“ ONNX Runtime Server”
参与者SD作为磁盘
参与者SP作为过程
结尾
演员C作为客户
请注意:A的右侧:您有3种型号可以使用。
A- >> SD:将模型文件复制到磁盘。
A- >> SP:启动服务器
请注意: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”,“版本”:“ 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 />“ create_at”:1694228106,<br />“ execution_count”:0,<br /> <br /> <br />“ last_exececuted_at” “ float32 [-1,1]”,<br />“ y”:“ float32 [-1,1]“,<br />” z“:” float32 [-1,1]“ <br />},<br />},<br /> utputs”:{<br />
注意C的右C:?您可以知道输入和输出的类型和形状<br />。
结尾
RECT RGB(100、100、100、0.3)
注意SD,C:执行会话
C- >> SP:执行会话请求
激活sp
请注意SP,C:POST /API /SESSIONS /MODER_A /V1 <BR /> {<br />“ X”:[[[1],[2],[3],[3],[3],<br />“ y”:[[2],[3],[4],[4],[4],<br />
激活sp
sp- >> sp:执行<br /> onnxRuntime <br />会话
停用sp
SP- >> C:执行会话响应
停用sp
注意SP,C:{<br />“输出”:[<br /> [<br /> [0.6492120623588562]
结尾