Pisanie własnego predyktora
Dodaj własny kod przetwarzania wstępnego i modelu
Pisanie własnego predyktora to bezpłatna lekcja MLOps Academy 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 MLOps Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs MLOps Academy zawiera 4 lekcji w sumie.
Gdy wbudowane rozwiązania nie wystarczają
Wbudowane środowiska uruchomieniowe obsługują sklearn, PyTorch i inne frameworki. Jeśli jednak model wymaga specjalnej logiki, należy napisać własne rozwiązanie. custom predictor zapewnia pełną kontrolę. 🛠️
To tylko kontener
Własny predictor to obraz kontenera, który obsługuje protokół KServe. Pakujesz kod, model i zależności do jednego image i przekazujesz go KServe.
Pakiet KServe Python SDK
Pakiet kserve dla języka Python udostępnia klasę bazową do rozszerzenia. Tworzysz podklasę kserve.Model i definiujesz w niej sposób ładowania modelu oraz wykonywania predykcji.
import kserve
class MyModel(kserve.Model):
def __init__(self, name):
super().__init__(name)
self.ready = FalseZaimplementuj load()
Metoda load podczas uruchamiania jednorazowo odczytuje model z dysku do pamięci. Po jej zakończeniu ustaw ready na True, aby poinformować KServe, że może udostępniać model.
def load(self):
self.model = joblib.load("/mnt/models/model.joblib")
self.ready = TrueZaimplementuj predict()
Metoda predict przyjmuje dane żądania, uruchamia model i zwraca wynik jako dict. To właśnie tutaj znajduje się właściwa logika wnioskowania.
def predict(self, payload, headers=None):
rows = payload["instances"]
preds = self.model.predict(rows)
return {"predictions": preds.tolist()}Tutaj pasuje własne przetwarzanie wstępne
Chcesz zmienić kształt danych wejściowych albo zastosować reguły biznesowe przed wnioskowaniem? Umieść tę logikę bezpośrednio w predict lub w kroku preprocess. Środowisko uruchomieniowe nie musi o niej wiedzieć.
Uruchom serwer modelu
Podłączasz swoją klasę do ModelServer i uruchamiasz go. Serwer KServe obsługuje HTTP, kontrolę stanu oraz protokół, więc piszesz wyłącznie kod modelu. Pętlę obsługi uruchamia ModelServer.
if __name__ == "__main__":
model = MyModel("custom-model")
model.load()
kserve.ModelServer().start([model])Spakuj wszystko w Dockerfile
Budujesz kontener, który instaluje kserve, kopiuje kod i uruchamia serwer. Ten Dockerfile tworzy obraz, który KServe uruchomi.
FROM python:3.11-slim
RUN pip install kserve joblib scikit-learn
COPY model.py /app/model.py
CMD ["python", "/app/model.py"]Wskaż obraz w specyfikacji
W InferenceService predictor korzysta ze zwykłego bloku containers zamiast formatu modelu. Podajesz nazwę obrazu, a KServe go uruchamia.
spec:
predictor:
containers:
- name: kserve-container
image: my-registry/custom-model:latestPodłączanie modelu
Nadal możesz ustawić storageUri, a KServe podłączy pobrany model pod znaną ścieżką, którą odczyta Twój kod. Kontener i storageUri współpracują ze sobą.
Ten sam protokół, własna logika
Ponieważ implementujesz standardowe endpointy, klienci wywołują Twój własny predictor dokładnie tak samo jak wbudowany. Protocol pozostaje identyczny, zmieniają się tylko elementy wewnętrzne.
Szybkie sprawdzenie
Tworzysz podklasę kserve.Model dla własnego predictora. Która metoda ładuje model do pamięci?
Podsumowanie
Zbudowałeś custom predictor, tworząc podklasę kserve.Model, implementując load i predict oraz dostarczając rozwiązanie jako kontener. Ten sam protokół, własna logika. Świetna praca! 🎉
Często zadawane pytania
Czy lekcja „Pisanie własnego predyktora” jest bezpłatna?
Tak — pełny tekst „Pisanie własnego predyktora” 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 MLOps Academy, przejdź na CoddyKit PRO. Kurs MLOps Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Pisanie własnego predyktora”?
Dodaj własny kod przetwarzania wstępnego i modelu Ćwiczysz MLOps Academy 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ąć MLOps Academy?
Nie wymagamy żadnego doświadczenia. MLOps Academy 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 „Pisanie własnego predyktora”?
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 MLOps Academy?
Tak. Każda lekcja MLOps Academy 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
- Zasób InferenceService
- Skalowanie do zera i z powrotem
- Pisanie własnego predyktora
- KServe a Seldon Core