onnxruntime server
v1.20.0
download-onnxruntime-linux.sh/usr/local/onnxruntime ./usr/local/onnxruntime/lib para /etc/ld.so.conf.d/onnxruntime.conf e execute 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| OS | Método | Comando |
|---|---|---|
| Arch Linux | Aur | yay -S onnxruntime-server |
--model-dir ), onde os modelos estão localizados.${model_dir}/${model_name}/${model_version}/model.onnx ou ${model_dir}/${model_name}/${model_version}.onnx Arquivos em --model-dir | Criar órgão de solicitação de sessão | Get/Execute Session API URL Path (depois de criado) |
|---|---|---|
model_name/model_version/model.onnx ou model_name/model_version.onnx | {"model":"model_name", "version":"model_version"} | /api/sessions/model_name/model_version |
sample/v1/model.onnx ou sample/v1.onnx | {"model":"sample", "version":"v1"} | /api/sessions/sample/v1 |
sample/v2/model.onnx ou sample/v2.onnx | {"model":"sample", "version":"v2"} | /api/sessions/sample/v2 |
other/20200101/model.onnx ou other/20200101.onnx | {"model":"other", "version":"20200101"} | /api/sessions/other/20200101 |
--tcp-port .--http-port .--https-port , --https-cert e --https-key .--swagger-url-path .-h , --help para ver uma lista completa de opções.ONNX_SERVER_CONFIG_PRIORITY=env existir, as variáveis de ambiente têm maior prioridade. Dentro de uma imagem do docker, as variáveis de ambiente têm maior prioridade. | Opção | Ambiente | Descrição |
|---|---|---|
--workers | ONNX_SERVER_WORKERS | Tamanho da piscina de threads do trabalhador. Padrão: 4 |
--request-payload-limit | ONNX_SERVER_REQUEST_PAYLOAD_LIMIT | HTTP/HTTPS Solicitar o limite de tamanho da carga útil. Padrão: 1024 * 1024 * 10 (10MB) ` |
--model-dir | ONNX_SERVER_MODEL_DIR | Caminho do diretório de modelos Os arquivos do modelo ONNX devem estar localizados no seguinte caminho: ${model_dir}/${model_name}/${model_version}/model.onnx ou${model_dir}/${model_name}/${model_version}.onnxPadrão: models |
--prepare-model | ONNX_SERVER_PREPARE_MODEL | Pré-crie algumas sessões modelo na inicialização do servidor. Formato como uma lista separada por espaço de model_name:model_version ou model_name:model_version(session_options, ...) .Disponível session_options são - cuda = device_id [ or true or false]por exemplo) model1:v1 model2:v9model1:v1(cuda=true) model2:v9(cuda=1) |
| Opção | Ambiente | Descrição |
|---|---|---|
--tcp-port | ONNX_SERVER_TCP_PORT | Ative o back -end do TCP e qual número da porta usar. |
--http-port | ONNX_SERVER_HTTP_PORT | Ativar back -end HTTP e qual número da porta use. |
--https-port | ONNX_SERVER_HTTPS_PORT | Ative o back -end HTTPS e qual número da porta usar. |
--https-cert | ONNX_SERVER_HTTPS_CERT | Caminho do arquivo de certificação SSL para HTTPS |
--https-key | ONNX_SERVER_HTTPS_KEY | Caminho de arquivo de chave privada SSL para HTTPS |
--swagger-url-path | ONNX_SERVER_SWAGGER_URL_PATH | Habilite o documento da API Swagger para back -end HTTP/HTTPS. Este valor não pode começar com "/api/" e "/saúde" Se não for especificado, o documento Swagger não é fornecido. por exemplo) /swagger ou /api-docs |
| Opção | Ambiente | Descrição |
|---|---|---|
--log-level | ONNX_SERVER_LOG_LEVEL | Nível de log (depuração, informações, aviso, erro, fatal) |
--log-file | ONNX_SERVER_LOG_FILE | Caminho do arquivo de log. Se não for especificado, os logs serão impressos para o stdout. |
--access-log-file | ONNX_SERVER_ACCESS_LOG_FILE | Acesse o caminho do arquivo de log. Se não for especificado, os logs serão impressos para o 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/ opção no lançamento. Isso deve ser usado com a opção --http-port ou --https-port . ./onnxruntime_server --model-dir=YOUR_MODEL_DIR --http-port=8080 --swagger-url-path=/api-docs/http://localhost:8080/api-docs/ . %% {init: {
'Sequência': {'NOTEALING': 'Esquerda', 'MirrorActors': True}
}} %%
Sequenciadoiagram
Ator A como administrador
Caixa RGB (0, 0, 0, 0.1) "Onnx RunTime Server"
Participante SD como disco
Participante SP como processo
fim
Ator C como cliente
Nota Direito de A: Você tem 3 modelos para servir.
A ->> SD: Copie os arquivos do modelo para o disco.
A ->> SP: Iniciar o servidor com -opção de modelo de preparação
Ativar sp
Nota Direito de A: ONNXRUNTIME_SERVER <BR />-HTTP-PORT = 8080 <BR />-Model-Path = /var /Models <r />-preparar-model = "Model_a: v1 (CUDA = 0) Model_A: V2 (CUDA = 0)"
Sp ->> sd: modelo de carga
Nota sobre SD, SP: Carregar modelo de <r />"/var/models/model_a/v1/model.onnx "
SD ->> SP: Modelo binário
Ativar sp
Sp ->> sp: Crie <r /> onnxruntime <r /> sessão
desativado sp
desativado sp
ret rgb (100, 100, 100, 0,3)
Nota sobre SD, C: Sessão de execução
C ->> SP: Execute a solicitação de sessão
Ativar sp
Nota SP, C: POST /API /Sessions /Model_A /V1 <r /> {<r /> "X": [[1], [2], [3]], <r /> "y": [[2], [3], [4]], <r /> "Z": [3], [4], [5] <r]
Ativar sp
Sp ->> sp: execute <r /> onnxruntime <r /> sessão
desativado sp
SP ->> C: Execute a resposta da sessão
desativado sp
NOTA SOB SP, C: {<BR /> "OUTPUT": [<BR />.0.6492120623588562 ], <br />.7610487341880798].
fim
%% {init: {
'Sequência': {'NOTEALING': 'Esquerda', 'MirrorActors': True}
}} %%
Sequenciadoiagram
Ator A como administrador
Caixa RGB (0, 0, 0, 0.1) "Onnx RunTime Server"
Participante SD como disco
Participante SP como processo
fim
Ator C como cliente
Nota Direito de A: Você tem 3 modelos para servir.
A ->> SD: Copie os arquivos do modelo para o disco.
A ->> SP: Start Server
NOTA DIREITO DE A: ONNXRUNTIME_SERVER <BR />-HTTP-PORT = 8080 <BR />-Model-Path = /var /modelos
ret rgb (100, 100, 100, 0,3)
Nota sobre SD, C: Criar sessão
C ->> SP: Crie solicitação de sessão
Ativar sp
Nota sobre SP, C: Post /API /Sessions <Br /> {"Model": "Model_a", "Version": "V1"}
Sp ->> sd: modelo de carga
Nota sobre SD, SP: Carregar modelo de <r />"/var/models/model_a/v1/model.onnx "
SD ->> SP: Modelo binário
Ativar sp
Sp ->> sp: Crie <r /> onnxruntime <r /> sessão
desativado sp
SP ->> C: Crie resposta da sessão
desativado 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]", <r /> "y": "float32 [-1,1]", <r /> "z": "float32 [-1,1]" <r />}, <br /> "saídas": {<r /"": "Float32 [--1,1]"
Nota direito de C :? Você pode saber o tipo e a forma <br /> da entrada e saída.
fim
ret rgb (100, 100, 100, 0,3)
Nota sobre SD, C: Sessão de execução
C ->> SP: Execute a solicitação de sessão
Ativar sp
Nota SP, C: POST /API /Sessions /Model_A /V1 <r /> {<r /> "X": [[1], [2], [3]], <r /> "y": [[2], [3], [4]], <r /> "Z": [3], [4], [5] <r]
Ativar sp
Sp ->> sp: execute <r /> onnxruntime <r /> sessão
desativado sp
SP ->> C: Execute a resposta da sessão
desativado sp
NOTA SOB SP, C: {<BR /> "OUTPUT": [<BR />.0.6492120623588562 ], <br />.7610487341880798].
fim