Engineering/토치서브(Torchserve)9 [torchserve] torchserve start -> ModuleNotFound Error (import yaml) torchserve를 실행하는데 ModuleNotFoundError가 나면서 yaml을 import하라는 로그가 떨어졌다. conda list에 이미 yaml이 있는데 안되서 해결방법을 찾다가 아래 실행해서 해결! pip install pyyaml https://stackoverflow.com/questions/14261614/how-do-i-install-the-yaml-package-for-python 위 방법으로도 안되어서 아래로 해결 $ conda install -c anaconda pyyaml 2022. 12. 6. [Torchserve]'NoneType' object is not callable 새로운 서버에서 기존에 생성한 mar파일로 torchsere 실행 시, 다른 서버에서는 정상적으로 작동하였으나 특정 서버에서 Handler가 request마다 초기화 되어 'NoneType Error'가 발생함을 확인함 찾은 원인을 정리하자면 아래 2가지이다. 1. CUDA와 NVIDIA-driver의 설치 여부 및 호환성 문제 [확인 방법] torch.cuda.is_available() = False [해결 방법] CUDA와 NVIDIA driver가 설치되어있는지, 서로 호환이 가능한지 확인 ✔ CUDA 확인 : nvcc -V ✔ NVIDIA driver 확인 : nvidia-smi nvidia driver 에 맞는 CUDA는 10.2 인데(이미지), 실제 설치된 CUDA는 10.0이어서 호환성이 맞.. 2022. 11. 14. [Torchserve] java.lang.NoSuchMethodError 새로운 서버에서 기존에 생성한 mar파일로 torcsherve 실행시, java.lang.NosuchMethodError 오류 발생함 이는 java version의 문제로 java 1.8 버전을 사용하는 서버에서 모두 문제가 발생했음. java 11이상으로 변경했을때 정상적으로 작동함 확인 ✔️ 아래 명령어를 실행하여 java 버전 변경 update-alternatives --config java ✔️ java11이 설치되어있지 않다면 아래 진행해서 설치 $ sudo apt-get update $ sudo apt-get upgrade $ sudo apt-get install openjdk-11-jdk ✔️ 아래와 같은 오류 메세지가 뜬다면, sudo 추가 update-alternatives: using .. 2022. 11. 14. [Torchserve] ImportError: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found 새로운 서버에서 기존에 생성한 mar 파일로 torchserve start를 했을때 위의 오류 발생 libstdc++.so.6.0.19 → so.6.0.26 이상으로 업그레이드 후 해결됨 1. 버전확인 ll /usr/lib64/libstdc++.so.6 2. 원하는 버전이 있는 위치 찾기 sudo find / -name "libstdc++.so.6" libstdc++.so.6이 존재하는 모든 위치가 출력되지만, 26 이상 으로 업그레이드 하고자 하므로, 26이 있는 위치 선택함 ~/anaconda3/envs/odqa/lib/libstdc++.so.6.0.26 3. /usr/lib64/ 위치에 최신버전 파일 이동 sudo cp [2에서 찾은 경로] /usr/lib64 4. 기존 링크 삭제 rm -rf /u.. 2022. 11. 14. [Torchserve] torchserve explanations API 사용하기 [torchserve에서 기본으로 제공하는 API] torchserve는 기본적으로 아래 3가지 Service API를 제공하고 있습니다. - Inference API - Management API - Metrics API 그리고 각각의 API는 다른 포트와 path 로 구분을 하여 request 합니다. 각 API 별 curl 예시는 아래와 같습니다. API curl example PORT path inference http://127.0.0.1:8080/predictions/resnet-18/2.0 -T kitten_small.jpg 8080 predictions management http://127.0.0.1:8081/models/noop 8181 models metrics http://127.0.. 2022. 9. 1. [Torchserve] torchserve Backend worker did not respond in given time [Error message] - Backend response time : 120000 - Backend worker did not respond in given time torchserve에서 API를 request 했을 때 handle 함수를 실행하는데, 이때 handle 함수를 실행해서 return 하는 시간은 기본적으로 120초(2분)으로 설정되어있다. (default config 값: default_response_timeout=120) 일반적인 추론의 기능에서는 문제가 없지만, 재색인을 한다는 등의 running time이 요구되는 기능을 추가했을 경우 이 timeout 시간에 걸려서 중간에 멈출수 있으니, config에서 parameter 값을 수정해야한다. config.properties에.. 2022. 8. 31. [Torchserve] torchserve error - java.io.IOException: Failed to bind ② torchserve error - java.io.IOException: Failed to bind 이전 글에서 에러를 해결하기위해 PORT 번호를 바꾸는 방법을 찾았다. 2022.08.29 - [Error] - [torchserve] torchserve error - java.io.IOException: Failed to bind ① [torchserve] torchserve error - java.io.IOException: Failed to bind ① torchserve --stop으로 중단시킨 후 --start 로 재시작하였으나, 주소가 이미 사용 중이라는 에러가 발생함 netstat 으로 8080 포트를 확인했지만, kill 할 수있는 PID가 보이지않음! # 문제점1. torchserve가.... 2022. 8. 31. [Torchserve] torchserve API PORT change torchserve에는 custom API 개발을 위해 기본적으로 설정되어있는 PORT가 있지만, 사정상 해당 포트(8080, 8081)를 쓸 수 없는 경우 매핑된 PORT를 변경하는 방법을 공유하고자 한다. torchserve는 기본적으로 inference API는 8080, model관련된 API(management) 8081 포트를 쓰도록 디폴트 설정이 되어있다 아래는 따로 설정하지 않아도 자동으로 생성되는 config파일 (config.properties)이다. inference_address=http://0.0.0.0:8080 management_address=http://0.0.0.0:8081 하지만, 같은 서버에서 8080, 8081 포트를 사용할수 없는 경우가 생기는데, 이때 PORT를 변.. 2022. 8. 30. [Torchserve] torchserve error - java.io.IOException: Failed to bind ① torchserve --stop으로 중단시킨 후 --start 로 재시작하였으나, 주소가 이미 사용 중이라는 에러가 발생함 netstat 으로 8080 포트를 확인했지만, kill 할 수있는 PID가 보이지않음! # 문제점1. torchserve가 중단되어 있는데 curl /ping, /models는 response가 온다. # 문제점2. netstat | grep에서 PID가 배정되지 않음을 확인하였지만, torchserve --start로 실행시, 이미 주소를 쓰고 있다는 에러가 뜬다. -> root에서 확인하는 명령어 sudo ss -lntu netstat -ntlp | grep :9090 현재 9090 포트를 쓰고있는 프로세스 번호를 확인하고 kill torchserve를 쓰지 않고 java를 연.. 2022. 8. 29. 이전 1 다음