Tutorial Triton Inference Server: High-Performance Model Serving

# Tutorial 19: Triton Inference Server - Penyajian Model Berperforma Tinggi ## Daftar Isi 1. [Pendahuluan](#pendahuluan) 2. [Prasyarat](#prasyarat) 3. [Menyiapkan Triton Inference Server](#menyiapka...

By Ruby Abdullah · · tutorial
TritonInference ServerModel ServingNVIDIAGPUKubernetes

Tutorial 19: Triton Inference Server - Penyajian Model Berperforma Tinggi

Daftar Isi

  • Pendahuluan
  • Prasyarat
  • Menyiapkan Triton Inference Server
  • Struktur Repository Model
  • Dukungan Multiple Backend
  • Dynamic Batching
  • Pipeline Ensemble Model
  • Penjadwalan GPU dan Manajemen Sumber Daya
  • Performance Analyzer
  • Deploy di Kubernetes
  • Praktik Terbaik
  • Kesimpulan
  • Pendahuluan

    NVIDIA Triton Inference Server adalah perangkat lunak serving inferensi open-source yang memungkinkan tim men-deploy model AI dari framework apa pun pada infrastruktur GPU atau CPU. Server ini mendukung berbagai format model secara bersamaan — TensorFlow, PyTorch, ONNX Runtime, TensorRT, dan backend Python kustom — semuanya dari satu instance server tunggal.

    Triton menangani masalah-masalah sulit dalam penyajian model produksi: dynamic batching untuk memaksimalkan pemanfaatan GPU, ensemble model untuk pipeline multi-tahap, eksekusi model secara bersamaan, versioning model, pemantauan kesehatan, dan ekspor metrik. Tutorial ini membahas semuanya mulai dari pengaturan awal hingga deploy Kubernetes tingkat produksi.

    Prasyarat

    • Docker terinstal dengan NVIDIA Container Toolkit
    • GPU NVIDIA dengan CUDA 12.0+ (untuk serving GPU)
    • Python 3.9+ dengan library tritonclient
    • Pemahaman dasar konsep model serving
    • kubectl dan helm (untuk bagian Kubernetes)

    # Instal library klien Triton
    

    pip install tritonclient[all] grpcio numpy

    import tritonclient.grpc as grpcclient

    import tritonclient.http as httpclient

    import numpy as np

    Menyiapkan Triton Inference Server

    Mengunduh dan Menjalankan Triton

    # Unduh kontainer Triton Inference Server
    

    docker pull nvcr.io/nvidia/tritonserver:24.01-py3

    Buat direktori repository model

    mkdir -p /opt/triton/repositorymodel

    Jalankan Triton dengan dukungan GPU

    docker run --gpus all \

    --rm -p 8000:8000 -p 8001:8001 -p 8002:8002 \

    -v /opt/triton/repositorymodel:/models \

    nvcr.io/nvidia/tritonserver:24.01-py3 \

    tritonserver --model-repository=/models \

    --log-verbose=1

    Port:

    8000 - Endpoint HTTP/REST

    8001 - Endpoint gRPC

    8002 - Endpoint Metrik (format Prometheus)

    Memverifikasi Server

    import tritonclient.http as httpclient
    
    

    Periksa kesehatan server

    client = httpclient.InferenceServerClient(url="localhost:8000")

    print(f"Server hidup: {client.isserverlive()}")

    print(f"Server siap: {client.isserverready()}")

    Daftar model yang dimuat

    indeksrepository = client.getmodelrepositoryindex()

    for model in indeksrepository:

    print(f"Model: {model['name']}, Versi: {model.get('version', 'N/A')}, "

    f"Status: {model.get('state', 'N/A')}")

    Struktur Repository Model

    Triton menggunakan struktur direktori tertentu untuk repository modelnya. Setiap model memiliki direktorinya sendiri dengan file konfigurasi dan subdirektori versi bernomor.

    repositorymodel/
    

    ├── pengklasifikasigambar/

    │ ├── config.pbtxt

    │ ├── 1/

    │ │ └── model.onnx

    │ └── 2/

    │ └── model.onnx

    ├── encoderteks/

    │ ├── config.pbtxt

    │ └── 1/

    │ └── model.pt

    ├── ekstraktorfitur/

    │ ├── config.pbtxt

    │ └── 1/

    │ └── model.savedmodel/

    │ ├── savedmodel.pb

    │ └── variables/

    └── praprosesor/

    ├── config.pbtxt

    └── 1/

    └── model.py

    Konfigurasi Model (config.pbtxt)

    # config.pbtxt untuk pengklasifikasi gambar ONNX
    

    name: "pengklasifikasigambar"

    platform: "onnxruntimeonnx"

    maxbatchsize: 32

    input [

    {

    name: "input"

    datatype: TYPEFP32

    dims: [ 3, 224, 224 ]

    Artikel Terkait

    Tutorial KServe: Model Serving Serverless di Kubernetes

    Serverless Model Serving di Kubernetes dengan KServe KServe adalah platform native Kubernetes untuk menyajikan model mac...

    Tutorial Lengkap Kubeflow: MLOps di Kubernetes

    Tutorial Lengkap Kubeflow: MLOps di Kubernetes Kubeflow adalah platform open-source untuk deploy, mengelola, dan scaling...

    Tutorial Lengkap BentoML: Packaging dan Serving ML Models ke Production

    Tutorial Lengkap BentoML: Packaging dan Serving ML Models ke Production BentoML adalah framework open-source untuk build...

    Modal: Serverless GPU Cloud untuk Deploy Model ML

    Modal: Serverless GPU Cloud untuk Deploy Model ML Salah satu tantangan terbesar dalam machine learning bukan membuat mod...