onnxruntime server
v1.20.0
download-onnxruntime-linux.sh 스크립트를 사용하십시오/usr/local/onnxruntime 에 설치합니다./usr/local/onnxruntime/lib 에 /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| OS | 방법 | 명령 |
|---|---|---|
| 아치 리눅스 | aur | 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 환경 변수가 존재하면 환경 변수는 우선 순위가 높습니다. 도커 이미지 내에서 환경 변수는 우선 순위가 높습니다. | 옵션 | 환경 | 설명 |
|---|---|---|
--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 | 모델 디렉토리 경로 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 | 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-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/ 에서 사용 가능한 Swagger UI에 액세스 할 수 있습니다. %% {init : {
'시퀀스': { 'notealign': 'left', 'mirroractors': true}
}} %%
시퀀스 인디 아그램
관리자로서 배우 A
Box RGB (0, 0, 0, 0.1) "Onnx 런타임 서버"
디스크로 참가자 SD
참가자 SP 프로세스로 SP
끝
액터 C 클라이언트로서
a의 오른쪽 참고 : 제공 할 3 가지 모델이 있습니다.
a ->> sd : 모델 파일을 디스크에 복사합니다. <br />"/var/models/model_a/v1/model.onnx"<br />"/var/models/model_a/v2/model.onnx"<bar/models/model_b/20201101/model.onnx.
a ->> sp : -예약 모드 옵션으로 서버를 시작하십시오
sp를 활성화하십시오
a : onnxruntime_server <br />-http-port = 8080 <br />-model-path = /var /model <br />-준비 모델 = "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 : Execute Session에 대한 참고 사항
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]}
sp를 활성화하십시오
sp- >> sp : <br /> onnxruntime <br /> 세션을 실행하십시오
비활성화 sp
sp- >> c : 세션 응답을 실행합니다
비활성화 sp
sp, c : {<br /> "output": [<br />] : [<br /> [0.6492120623588562], <br /> <bbr /> <br />=
끝
%% {init : {
'시퀀스': { 'notealign': 'left', 'mirroractors': true}
}} %%
시퀀스 인디 아그램
관리자로서 배우 A
Box RGB (0, 0, 0, 0.1) "Onnx 런타임 서버"
디스크로 참가자 SD
참가자 SP 프로세스로 SP
끝
액터 C 클라이언트로서
a의 오른쪽 참고 : 제공 할 3 가지 모델이 있습니다.
a ->> sd : 모델 파일을 디스크에 복사합니다. <br />"/var/models/model_a/v1/model.onnx"<br />"/var/models/model_a/v2/model.onnx"<bar/models/model_b/20201101/model.onnx.
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 /> "version": "v1", <br /> "create_at": 1694228106, <br /> "execution_count": 0, <br /> "last_executed_at": 0, <br /> "입력": <br /"x"x "x"x ": "float32 [-1,1]", <br /> "y": "float32 [-1,1]", <br /> "z": "float32 [-1,1]"<br />}, <br /> "출력": {<br /> "float32 [-1,1]"<br />} <br />}
C의 오른쪽에 주목하십시오 :? 입력 및 출력의 유형과 모양 <br />을 알 수 있습니다.
끝
rect rgb (100, 100, 100, 0.3)
SD, C : Execute Session에 대한 참고 사항
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]}
sp를 활성화하십시오
sp- >> sp : <br /> onnxruntime <br /> 세션을 실행하십시오
비활성화 sp
sp- >> c : 세션 응답을 실행합니다
비활성화 sp
sp, c : {<br /> "output": [<br />] : [<br /> [0.6492120623588562], <br /> <bbr /> <br />=
끝