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]
結尾