CPU (레거시)

자체 인프라의 CPU에서 모델을 배포하세요.

circle-exclamation

CPU Inference Server 설치 및 사용

추론 API는 64비트 Intel 및 AMD 머신용 Docker 컨테이너로 제공되며 Mac OS 기반 장치와는 호환되지 않습니다. 설치하려면 컨테이너를 풀하면 됩니다:

sudo docker pull roboflow/inference-server:cpu

그런 다음 실행합니다:

sudo docker run --net=host roboflow/inference-server:cpu

이제 Inference Server를 당사의 Hosted Inference API (여러 프로그래밍 언어의 예제 코드 스니펫은 해당 문서를 참조하세요). Hosted API의 샘플 코드를 사용하되 다음을 교체하세요 https://detect.roboflow.com 를 사용하여 http://{INFERENCE-SERVER-IP}:9001 API 호출에서. 예를 들어,

base64 YOUR_IMAGE.jpg | curl -d @- \
"http://10.0.0.1:9001/your-model/42?api_key=YOUR_KEY"

문제 해결

참고: 모델에 대한 첫 번째 호출은 가중치를 다운로드하고 초기화하는 데 몇 초가 걸리며 이후의 예측은 훨씬 빠릅니다.

Google Cloud VM에 배포하기

Docker 컨테이너를 Google Cloud Virtual Machines에 배포하려면 먼저 Google Cloud 계정을 만들고 VM 인스턴스를 설정해야 합니다. 이 예제에서는 머신 유형을 변경하여 "e2-medium" 인스턴스를 설정합니다. 프로덕션 작업의 경우 더 강력한 머신 유형을 선택해야 할 수 있습니다.

인스턴스를 만들기 전에 "Boot disk" 섹션으로 스크롤하여 부팅 크기를 최소 50GB 이상으로 늘리려면 "change"를 클릭하세요. 부팅 디스크 설정에서 운영 체제도 변경할 수 있습니다. 기본값인 "Debian 10 기반 Deep Learning VM (with Intel MKL) M101" 버전이 선택된 "Deep Learning on Linux" 운영 체제를 선택하세요.

이제 하단으로 스크롤하여 "create"를 클릭하여 인스턴스를 초기화할 수 있습니다. VM이 실행되면 인스턴스에 SSH로 접속하여 Docker를 설치할 수 있습니다. 작은 "SSH" 연결 버튼을 두 번 클릭하여 두 개의 터미널을 엽니다. 이 중 하나의 터미널은 Docker 컨테이너를 실행하는 데 사용하고 다른 하나는 추론을 실행하는 데 사용합니다.

Google Virtual Machine에 SSH로 접속한 후 아래 명령을 사용하여 머신에서 CPU inference server를 풀하고 실행할 수 있습니다. 컨테이너가 실행되어 "inference-server is ready to receive traffic."라고 표시될 때까지 기다리세요.

컨테이너가 VM에서 실행되면 VM의 내부 IP 주소를 사용하여 접근할 수 있습니다. 컨테이너의 포트로 들어오는 트래픽을 허용하려면 VM의 방화벽 규칙을 구성해야 할 수 있습니다. Google Cloud 플랫폼의 VM 인스턴스 페이지에서 "Internal IP"를 찾을 수 있습니다. 이 내부 IP를 사용하여 다른 SSH 터미널에서 아래 명령을 실행할 수 있습니다:

성공적인 curl 호출은 도커 컨테이너가 Roboflow 가중치를 다운로드하고 추론 엔진을 준비하도록 트리거해야 합니다. 다음은 성공적인 추론 예시입니다:

Google Cloud Run에 배포하기

gcloud CLI를 설치하려면 먼저 시스템에 Google Cloud SDK가 설치되어 있어야 합니다. Google Cloud 웹사이트에서 Google Cloud SDK를 다운로드할 수 있습니다. SDK를 설치한 후에는 gcloud 명령을 사용하여 gcloud CLI를 설치할 수 있습니다.

Google Cloud SDK 설치 문서는 다음에서 확인할 수 있습니다: https://cloud.google.com/sdk/docs/installarrow-up-right

Google Cloud SDK를 설치한 후 Roboflow Docker 이미지를 로드하려면 좋아하는 터미널을 엽니다.

Docker 이미지가 로드된 후 우리는 gcloud 를 사용하여 터미널을 인증해야 합니다.

이제 터미널이 인증되었으므로 우리는 docker tag 이제 GPU TRT 컨테이너가 Docker에서 실행 중입니다. 다른 Ubuntu 터미널을 열어 Docker 컨테이너로 추론 데이터를 보낼 준비를 합니다. 다음을 사용하세요: docker push 를 사용하여 Roboflow 이미지를 Google Cloud Container Registryarrow-up-right.

이제 roboflow/inference-server:cpu 가 귀하의 Google Cloud Container Registryarrow-up-right에 업로드되었습니다. 로 이동하세요 Cloud Runarrow-up-right Container Registry 안의 업로드된 이미지로 서비스 를 생성하려면 기존 컨테이너 섹션에서 "SELECT"를 클릭하고 "cpu-inference-server" 폴더로 이동하여 최신 빌드를 선택하세요.

"Authentication"에서 서비스가 공개 API로 실행되도록 하려면 "Allow unauthenticated invocations" 버튼을 선택하세요. "Container, Connections, Security" 섹션을 확장하고 "Container port" 번호를 다음으로 변경하세요 9001.

create services 페이지 하단으로 스크롤하여 "CREATE"를 클릭하세요. 그러면 도커 컨테이너가 서비스로 다운로드되어 초기화가 실행됩니다. 성공적인 빌드는 서비스 이름과 함께 녹색 체크 표시를 반환하며 이는 서비스가 도커 컨테이너를 성공적으로 빌드하고 실행했음을 의미합니다.

열고자 하는 서비스 이름을 클릭하여 Cloud Run 서비스를 엽니다. 우리는 "cpu-inference-server" 서비스를 열 예정입니다. 열면 서비스 URL을 복사하세요. 서비스 URL은 대략 다음과 같이 보입니다 https://cpu-inference-server-njsdrsria-uc.a.run.app. 이 서비스 URL을 사용하면 curl 요청을 실행하고 Roboflow 모델을 사용할 수 있는 모든 준비가 된 것입니다.

curl 요청을 실행하려면 터미널을 열고 아래의 base64 명령을 사용하세요:

base64 your_image.jpg | curl -d @- "https://[Service_URL]/[MODEL_ID]/[VERSION]?api_key=[YOUR_API_KEY]"

타일링으로 큰 이미지 처리하기

경우에 따라 매우 큰 이미지에 대해 추론해야 할 수 있으며 이 경우 정확도가 크게 저하될 수 있습니다. 이런 경우 더 나은 정확도를 위해 추론을 실행하기 전에 추론 서버가 이미지를 더 작은 타일로 나누도록 하는 것이 좋습니다.

주어진 픽셀 너비와 높이로 타일링하려면 픽셀 치수를 포함하는 쿼리 매개변수와 함께 추론 서버에 curl을 수행해야 합니다. 우리는 해당 픽셀 치수를 사용하여 너비와 높이에 해당하는 치수의 타일을 생성합니다. 쿼리 매개변수는 다음과 같아야 합니다 &tile=500. 이렇게 하면 추론을 실행하기 전에 이미지를 500x500 픽셀 타일로 분할합니다.

전체 curl 요청 예시:

Last updated

Was this helpful?