NVIDIA에서 오픈소스 소프트웨어로 제공되는 머신러닝 모델 inference 서버

 

1. 아키텍쳐

Model Repository에 모델 파일들을 올려놓으면 클라이언트가 api로 추론 요청 후 결과를 받을 수 있다.

간단한 사용 예

2. Model Repository [—model-repository]

서빙할 모델 파일들을 저장. 서버의 로컬 또는 클라우드 저장소도 가능

launch할때 옵션으로 여러 개 선택 가능

 

2-1. Model Management [—model-control-mode]

  • none
    • Repository의 모든 모델 로드, 가동 중에는 Rspository 변경 사항이나 management 요청을 무시
  • explicit [—load-model]
    • —load-model 옵션으로 명시된 모델만 로드, 없으면 아무것도 로드하지 않음
  • poll [—repository-poll-secs]
    • 모든 모델을 로드 후 주기적으로 변경 사항을 감지하여 재로드, management 사용 불가

 

2-2. Model Configuration

config.pdtxt 파일에 작성, 필수 옵션 = backend, max_batch_size, input, output

 

 

출처 

https://peaceatlast.tistory.com/25

 

NVIDIA Triton 한 눈에 알아보기

GitHub - triton-inference-server/client: Triton Python, C++ and Java client libraries, and GRPC-generated client examples for go Triton Python, C++ and Java client libraries, and GRPC-generated client examples for go, java and scala. - GitHub - triton-infe

peaceatlast.tistory.com

 

https://github.com/triton-inference-server/server

 

GitHub - triton-inference-server/server: The Triton Inference Server provides an optimized cloud and edge inferencing solution.

The Triton Inference Server provides an optimized cloud and edge inferencing solution. - GitHub - triton-inference-server/server: The Triton Inference Server provides an optimized cloud and edge i...

github.com

 

 

 

'MLOps(DevOps)' 카테고리의 다른 글

RabbitMQ [AMQP / MQTT 비교]  (0) 2025.11.12

 

1. AMQP와 MQTT의 핵심 차이

AMQP (Advanced Message Queuing Protocol) VS MQTT (Message Queuing Telemetry Transport)

주 목적 기업용 메시지 큐 (거래/백엔드 시스템) IoT 센서, 디바이스 통신용
전송 단위 메시지(Message) — 헤더, 속성, 바디 모두 포함 토픽 기반 텍스트/바이너리 데이터
통신 모델 Producer → Exchange → Queue → Consumer Publisher → Broker → Subscriber
표준화 정도 복잡한 프로토콜 (라우팅, 트랜잭션 등 지원) 아주 단순한 프로토콜 (토픽 기반)
전송 보장 수준(QoS) 3단계 보장 (at-most-once, at-least-once, exactly-once) + 트랜잭션 3단계 QoS (0, 1, 2)
전송 방식 TCP 기반, 프레임 단위의 명령어 교환 TCP/IP 위에서 동작, 단순 PUB/SUB
사용 포트 기본 5672 (AMQP), 15672 (관리용 HTTP) 기본 1883 (MQTT), 8883 (TLS)
메시지 라우팅 Exchange(Direct, Fanout, Topic 등) 기반 라우팅 가능 단순 토픽 문자열 기반
Payload 크기 크고 복잡한 메시지도 OK (ex: JSON, 파일, 객체 등) 매우 작고 단순해야 함 (센서 데이터 등)
성능 특성 신뢰성↑, 속도↓, 복잡도↑ 속도↑, 신뢰성↓, 단순도↑
대표 브로커 RabbitMQ, Apache Qpid Mosquitto, HiveMQ, EMQX

 

 

  • AMQP = “기업용 신뢰성 있는 메시지 시스템”
  • MQTT = “IoT 디바이스용 가벼운 실시간 프로토콜”

2. RabbitMQ란?

RabbitMQ는 AMQP 프로토콜을 구현한 오픈소스 메시지 브로커
Erlang 언어로 만들어졌고, 안정성과 신뢰성이 매우 높다.

기본 구조

RabbitMQ는 아래 4단계 구조로 메시지를 전달한다.

Producer → Exchange → Queue → Consumer

① Producer

  • 메시지를 생성해서 브로커로 보냄.

② Exchange (교환기)

  • 메시지를 적절한 Queue로 라우팅.
  • Exchange 타입에 따라 라우팅 방식이 다름:
  • 타입설명
    Direct 라우팅키 정확히 일치하는 큐로 전달
    Fanout 연결된 모든 큐에 브로드캐스트
    Topic 와일드카드 기반 토픽 매칭 (sensor.#, *.info 등)
    Headers 메시지 헤더 값 기반으로 라우팅

③ Queue

  • 메시지를 실제로 저장하는 버퍼.
  • 여러 Consumer가 동시에 구독할 수 있음.
  • 메시지는 한 번 소비되면 큐에서 삭제됨(기본 설정).

④ Consumer

  • 큐를 구독해서 메시지를 받아 처리.

 

RabbitMQ의 장점

  1. 메시지 보장 (Durability, Acknowledgement)
    • 메시지를 디스크에 저장해 시스템 다운되어도 복구 가능.
    • ack 메커니즘으로 소비 확인 후 메시지 삭제.
  2. Exchange 기반 라우팅
    • 단순 PUB/SUB보다 훨씬 유연한 라우팅 가능.
  3. 다양한 프로토콜 지원
    • 기본 AMQP 외에도 MQTT, STOMP, HTTP 등 플러그인으로 확장 가능.
  4. 클러스터링 / 고가용성
    • 여러 노드로 구성 가능, HA Queue도 지원.
  5. 관리도구 (Management Plugin)
  6. 성숙한 에코시스템
    • Python(pika), Node.js, Go, Java 등 대부분 언어 클라이언트 지원.

 

3. 정리 요약

항목 AMQP MQTT RabbitMQ

역할 메시지 큐 프로토콜 IoT 통신 프로토콜 AMQP 구현 브로커
특징 신뢰성, 트랜잭션, 라우팅 지원 초경량, 실시간, 저전력 안정적, 다양한 언어 지원
주로 쓰는 곳 금융, 백엔드, 이벤트 시스템 IoT, 센서, 모바일 장치 백엔드 통합, 이벤트 허브
통신 모델 Exchange–Queue Publish–Subscribe Exchange–Queue (AMQP)

 

'MLOps(DevOps)' 카테고리의 다른 글

NVIDIA Triton server  (0) 2025.11.12

+ Recent posts