모델 서빙이 훈련된 모델과 실제 운영 환경 사이의 간극을 어떻게 메우는지 알아보세요. Ultralytics 플랫폼에서 Ultralytics 배포 전략을 살펴보세요.
모델 서빙은 훈련된 머신러닝 모델을 호스팅하고 네트워크 인터페이스를 통해 소프트웨어 애플리케이션이 해당 기능을 활용할 수 있도록 하는 과정입니다. 이는 디스크에 저장된 정적 모델 파일과 실제 데이터를 처리하는 운영 시스템 사이의 가교 역할을 합니다. 모델이 머신러닝(ML) 훈련 단계를 완료하면 이미지, 텍스트, 표 형식 데이터 등의 입력을 받아 예측 결과를 반환할 수 있는 운영 환경에 통합되어야 합니다. 이는 일반적으로 모델을 애플리케이션 프로그래밍 인터페이스(API)로 포장하여 웹 서버, 모바일 앱 또는 IoT 기기와 통신할 수 있도록 함으로써 달성됩니다.
모델 서빙의 주요 목표는 예측 모델링 기능을 효과적으로 운영화하는 것입니다. 훈련이 정확도와 손실 최소화에 중점을 두는 반면, 서빙은 지연 시간 (예측 결과가 반환되는 속도) 및 처리량 (초당 처리 가능한 요청 수)과 같은 성능 지표에 초점을 맞춥니다. 견고한 서빙 인프라를 통해 컴퓨터 비전(CV) 시스템이 과부하 상태에서도 안정성을 유지합니다. 이는 종종 Docker와 같은 도구를 활용한 컨테이너화 기술을 포함하는데, 모델과 종속성을 패키징하여 다양한 컴퓨팅 환경에서 일관된 동작을 보장합니다.
모델 서비스는 데이터를 기반으로 즉각적인 의사 결정을 내릴 수 있도록 지원하여 다양한 산업에서 유비쿼터스 AI 기능을 강화합니다. 데이터.
모델을 효과적으로 활용하려면 모델을 ONNX와 같은 표준화된 형식으로 내보내는 것이 종종 유용합니다. ONNX과 같은 표준화된 형식으로 내보내는 것이 유용합니다. 이는 서로 다른 훈련 프레임워크와 서빙 엔진 간의 상호 운용성을 촉진합니다. 다음 예시는 모델을 로드하고 추론을 실행하는 방법을 보여줍니다. 이는 Python을 사용하여 서빙 엔드포인트 내부에 존재할 논리를 시뮬레이션합니다. Python.
from ultralytics import YOLO
# Load the YOLO26 model (this typically happens once when the server starts)
model = YOLO("yolo26n.pt")
# Simulate an incoming API request with an image source URL
image_source = "https://ultralytics.com/images/bus.jpg"
# Run inference to generate predictions for the user
results = model.predict(source=image_source)
# Process results (e.g., simulating a JSON response to a client)
print(f"Detected {len(results[0].boxes)} objects in the image.")
서비스 전략의 선택은 특정 사용 사례에 크게 좌우됩니다. 온라인 서비스는 REST나 gRPC 같은 프로토콜을 통해 즉각적인 응답을 제공하며, 이는 사용자 대상 웹 애플리케이션에 필수적입니다. 반면 배치 서비스는 대량의 데이터를 오프라인에서 처리하여 야간 보고서 생성 같은 작업에 적합합니다. 인터넷 의존 없이 프라이버시나 낮은 지연 시간이 필요한 애플리케이션의 경우, 엣지 AI는 서비스 프로세스를 기기로 직접 이동시켜 최적화된 형식(예: TensorRT 와 같은 최적화된 형식을 활용하여 제한된 하드웨어에서 성능을 극대화합니다. 많은 조직은 Ultralytics 활용하여 클라우드 API 및 에지 디바이스를 포함한 다양한 엔드포인트로의 모델 배포를 간소화합니다.
비록 밀접하게 연관되어 있지만, "모델 서빙"은 모델 배포 및 추론과 구별됩니다.