Wysokowydajne udostępnianie modeli za pomocą Triton Inference Server
Repozytorium modeli, model config.pbtxt, współbieżne instancje modeli, dynamiczne przetwarzanie wsadowe.
Wysokowydajne udostępnianie modeli za pomocą Triton Inference Server to bezpłatna lekcja Learn AI with Python na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Learn AI with Python, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Learn AI with Python zawiera 4 lekcji w sumie.
Czym jest Triton
NVIDIA Triton Inference Server to produkcyjny system obsługi modeli, który jednocześnie udostępnia wiele modeli na procesorach CPU i GPU. Obsługuje wiele backendów (TensorRT, ONNX, PyTorch, TensorFlow, Python) za pośrednictwem jednego interfejsu API HTTP/gRPC, oferując wbudowane grupowanie wsadowe i współbieżność.
Repozytorium modeli
Triton ładuje modele z repozytorium modeli: katalogu, w którym każdy model ma własny folder, podfolder wersji oznaczony liczbą oraz plik config.pbtxt.
model_repository/
resnet50/
config.pbtxt
1/
model.onnx
bert/
config.pbtxt
1/
model.ptconfig.pbtxt: backend
Plik config.pbtxt opisuje sposób uruchamiania modelu przez Triton. Backend (lub platforma) wskazuje Tritonowi środowisko wykonawcze, którego należy użyć.
name: "resnet50"
backend: "onnxruntime"
max_batch_size: 32Tensory wejściowe i wyjściowe
Dla każdego wejścia i wyjścia deklaruje się jego nazwę, typ danych oraz wymiary tensora (kształt). Kształty muszą odpowiadać wymaganiom modelu. Początkowy wymiar partii jest określany niejawnie przez max_batch_size.
input [
{
name: "input"
data_type: TYPE_FP32
dims: [ 3, 224, 224 ]
}
]
output [
{
name: "output"
data_type: TYPE_FP32
dims: [ 1000 ]
}
]Typy danych
Triton używa jawnie określonych typów danych tensorów, aby klienci i model uzgadniali układ bajtów:
TYPE_FP32— liczba zmiennoprzecinkowa 32-bitowa (częsta w przypadku obrazów)TYPE_FP16— zmniejszona precyzja (szybsze działanie na GPU)TYPE_INT64— identyfikatory tokenów na potrzeby NLPTYPE_INT8— modele poddane kwantyzacji
Batching dynamiczny: idea
Batching dynamiczny pozwala Tritonowi łączyć kilka przychodzących żądań w większą partię przed uruchomieniem modelu. GPU działają znacznie wydajniej na dużych partiach, dlatego rozwiązanie to znacznie zwiększa przepustowość bez zmiany kodu klienta.
Konfigurowanie batchingu dynamicznego
Włącza się go w konfiguracji i ustawia czas oczekiwania Tritona na zebranie żądań. Niewielka wartość max_queue_delay_microseconds pozwala wymienić niewielkie zwiększenie opóźnienia na znacznie większą przepustowość.
dynamic_batching {
preferred_batch_size: [ 8, 16 ]
max_queue_delay_microseconds: 1000
}Współbieżne instancje modelu
Domyślnie Triton uruchamia jedną kopię (instancję) modelu. Za pomocą instance_group można uruchomić kilka instancji równolegle na jednym GPU lub wielu GPU, jednocześnie przetwarzając niezależne żądania i poprawiając wykorzystanie zasobów.
instance_group [
{
count: 2
kind: KIND_GPU
gpus: [ 0 ]
}
]Batching a współbieżność
Te mechanizmy rozwiązują różne problemy:
- Batching dynamiczny łączy żądania w jedno wywołanie modelu (przepustowość pojedynczego wywołania)
- Współbieżne instancje wykonują wiele wywołań modelu jednocześnie (równoległość)
Mechanizmy te uzupełniają się; konfiguracje produkcyjne często wykorzystują oba.
perf_analyzer
perf_analyzer to narzędzie Tritona, które obciąża serwer syntetycznymi żądaniami i podaje przepustowość (wnioskowania na sekundę) oraz percentyle opóźnienia. Należy użyć go do znalezienia ustawień batchingu i współbieżności maksymalizujących przepustowość w ramach przyjętego budżetu opóźnienia.
perf_analyzer -m resnet50 \
--concurrency-range 1:8 \
--percentile 95Odczytywanie danych wyjściowych perf_analyzer
Narzędzie sprawdza kolejne poziomy współbieżności i wyświetla dla każdego z nich przepustowość oraz opóźnienie. Należy szukać punktu przegięcia krzywej: miejsca, w którym zwiększanie współbieżności przestaje poprawiać przepustowość albo podnosi opóźnienie P95 powyżej ustalonego limitu.
# Concurrency: 4, throughput: 1820 infer/sec, p95 latency: 9.1 ms
# Concurrency: 8, throughput: 1905 infer/sec, p95 latency: 17.4 msSzybkie sprawdzenie
Sprawdź swoją wiedzę o Tritonie.
Podsumowanie
Nauczyłeś się wysokowydajnego udostępniania modeli za pomocą Tritona:
- Repozytorium modeli: foldery poszczególnych modeli z podfolderami wersji oraz plikiem
config.pbtxt config.pbtxtdeklaruje backend, kształty tensorów wejściowych i wyjściowych oraz typy danych- Batching dynamiczny zwiększa przepustowość, a współbieżne instancje zapewniają równoległość
- perf_analyzer porównuje przepustowość z opóźnieniem, pomagając dostroić ustawienia
Często zadawane pytania
Czy lekcja „Wysokowydajne udostępnianie modeli za pomocą Triton Inference Server” jest bezpłatna?
Tak — pełny tekst „Wysokowydajne udostępnianie modeli za pomocą Triton Inference Server” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Learn AI with Python, przejdź na CoddyKit PRO. Kurs Learn AI with Python zawiera 4 lekcji w sumie.
Co nauczysz się w „Wysokowydajne udostępnianie modeli za pomocą Triton Inference Server”?
Repozytorium modeli, model config.pbtxt, współbieżne instancje modeli, dynamiczne przetwarzanie wsadowe. Ćwiczysz Learn AI with Python z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Learn AI with Python?
Nie wymagamy żadnego doświadczenia. Learn AI with Python w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Wysokowydajne udostępnianie modeli za pomocą Triton Inference Server”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Learn AI with Python?
Tak. Każda lekcja Learn AI with Python zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Konteneryzacja modeli ML za pomocą Dockera
- Wdrażanie w chmurze: AWS SageMaker
- Wysokowydajne udostępnianie modeli za pomocą Triton Inference Server
- Skalowanie i automatyczne skalowanie punktów końcowych modeli