सामग्री पर जाएं

Triton अनुमान सर्वर के साथ Ultralytics YOLOv8

वही Triton अनुमान सर्वर (पूर्व में के रूप में जाना जाता है TensorRT अनुमान सर्वर) NVIDIA द्वारा विकसित एक ओपन-सोर्स सॉफ्टवेयर समाधान है। यह NVIDIA GPU के लिए अनुकूलित क्लाउड अनुमान समाधान प्रदान करता है। Triton उत्पादन में बड़े पैमाने पर एआई मॉडल की तैनाती को सरल करता है। एकीकरण Ultralytics YOLOv8 के साथ Triton अनुमान सर्वर आपको स्केलेबल, उच्च-प्रदर्शन गहन शिक्षण अनुमान वर्कलोड को तैनात करने की अनुमति देता है। यह मार्गदर्शिका एकीकरण को सेट अप करने और उसका परीक्षण करने के चरण प्रदान करती है.



सतर्कता: NVIDIA के साथ शुरुआत करना Triton अनुमान सर्वर।

क्या है Triton अनुमान सर्वर?

Triton अनुमान सर्वर को उत्पादन में विभिन्न प्रकार के AI मॉडल तैनात करने के लिए डिज़ाइन किया गया है। यह गहरी शिक्षा और मशीन लर्निंग फ्रेमवर्क की एक विस्तृत श्रृंखला का समर्थन करता है, जिसमें शामिल हैं TensorFlow, PyTorch, ONNX रनटाइम, और कई अन्य। इसके प्राथमिक उपयोग के मामले हैं:

  • एकल सर्वर इंस्टेंस से कई मॉडलों की सेवा।
  • सर्वर पुनरारंभ किए बिना गतिशील मॉडल लोडिंग और अनलोडिंग।
  • अनुमान, परिणाम प्राप्त करने के लिए कई मॉडलों को एक साथ उपयोग करने की अनुमति देता है।
  • A/B परीक्षण और रोलिंग अपडेट के लिए मॉडल संस्करण।

आवश्यकताएँ

सुनिश्चित करें कि आगे बढ़ने से पहले आपके पास निम्नलिखित पूर्वापेक्षाएँ हैं:

  • आपकी मशीन पर डॉकर स्थापित है।
  • पदासीन करना tritonclient:
    pip install tritonclient[all]
    

निर्यात YOLOv8 तक ONNX प्रारूप

मॉडल को चालू करने से पहले Triton, इसे निर्यात किया जाना चाहिए ONNX प्रारूप। ONNX (ओपन न्यूरल नेटवर्क एक्सचेंज) एक प्रारूप है जो मॉडल को विभिन्न गहन शिक्षण ढांचे के बीच स्थानांतरित करने की अनुमति देता है। का उपयोग करें export फ़ंक्शन से YOLO कक्षा:

from ultralytics import YOLO

# Load a model
model = YOLO('yolov8n.pt')  # load an official model

# Export the model
onnx_file = model.export(format='onnx', dynamic=True)

स्थापना Triton मॉडल रिपोजिटरी

वही Triton मॉडल रिपोजिटरी एक भंडारण स्थान है जहां Triton मॉडल तक पहुंच और लोड कर सकते हैं।

  1. आवश्यक निर्देशिका संरचना बनाएँ:

    from pathlib import Path
    
    # Define paths
    triton_repo_path = Path('tmp') / 'triton_repo'
    triton_model_path = triton_repo_path / 'yolo'
    
    # Create directories
    (triton_model_path / '1').mkdir(parents=True, exist_ok=True)
    
  2. निर्यात किए गए को स्थानांतरित करें ONNX के लिए मॉडल Triton कोष:

    from pathlib import Path
    
    # Move ONNX model to Triton Model path
    Path(onnx_file).rename(triton_model_path / '1' / 'model.onnx')
    
    # Create config file
    (triton_model_path / 'config.pbtxt').touch()
    

भागना Triton अनुमान सर्वर

चलाएँ Triton डॉकर का उपयोग कर अनुमान सर्वर:

import subprocess
import time

from tritonclient.http import InferenceServerClient

# Define image https://catalog.ngc.nvidia.com/orgs/nvidia/containers/tritonserver
tag = 'nvcr.io/nvidia/tritonserver:23.09-py3'  # 6.4 GB

# Pull the image
subprocess.call(f'docker pull {tag}', shell=True)

# Run the Triton server and capture the container ID
container_id = subprocess.check_output(
    f'docker run -d --rm -v {triton_repo_path}:/models -p 8000:8000 {tag} tritonserver --model-repository=/models',
    shell=True).decode('utf-8').strip()

# Wait for the Triton server to start
triton_client = InferenceServerClient(url='localhost:8000', verbose=False, ssl=False)

# Wait until model is ready
for _ in range(10):
    with contextlib.suppress(Exception):
        assert triton_client.is_model_ready(model_name)
        break
    time.sleep(1)

फिर का उपयोग करके अनुमान चलाएं Triton सर्वर मॉडल:

from ultralytics import YOLO

# Load the Triton Server model
model = YOLO(f'http://localhost:8000/yolo', task='detect')

# Run inference on the server
results = model('path/to/image.jpg')

कंटेनर को साफ करें:

# Kill and remove the container at the end of the test
subprocess.call(f'docker kill {container_id}', shell=True)

उपरोक्त चरणों का पालन करके, आप परिनियोजित और चला सकते हैं Ultralytics YOLOv8 मॉडल कुशलता से चालू Triton अनुमान सर्वर, गहन शिक्षण अनुमान कार्यों के लिए एक स्केलेबल और उच्च-प्रदर्शन समाधान प्रदान करता है। यदि आप किसी समस्या का सामना करते हैं या आपके और प्रश्न हैं, तो देखें अफ़सर Triton दस्तावेज़ीकरण या तक पहुंचें Ultralytics समर्थन के लिए समुदाय।



2023-11-12 बनाया गया, अपडेट किया गया 2024-02-03
लेखक: ग्लेन-जोचर (5)

टिप्पणियाँ