True ML Talks #13 - ML Platform @ Cookpad

Gebouwd voor snelheid: ~10ms latentie, zelfs onder belasting
De razendsnelle manier om je modellen te bouwen, volgen en implementeren!
- Verwerkt 350+ RPS op slechts 1 vCPU — geen tuning nodig
- Productieklaar met volledige enterprise-ondersteuning
We zijn terug met een nieuwe aflevering van True ML Talks. In deze aflevering duiken we diep in de ML-architectuur bij Cookpad, een van 's werelds grootste receptenserviceplatforms. We behandelen ook de uitdagingen bij het bouwen van een succesvol machine learning-platform en hoe ze de Nvidia Triton Inference Server gebruiken om modellen op uit te voeren.
We spreken met Jose Navarro
Jose is Lead ML Platform Engineer bij Cookpad en helpt machine learning engineers en alle ML-professionals om ML-systemen snel en betrouwbaar op te leveren.
📌
Onze gesprekken met Jose behandelen de volgende aspecten:
- Structuur van de ML-teams @ Cookpad
- GPU-gebaseerde ML-infrastructuur
- Geautomatiseerde model-deployment bij Cookpad
- Feature Store-integratie en configuratie voor online inference
- Databronnen en featurebeheer tijdens modelexperimenten
- Argo Workflows gebruiken voor het hertrainen van ML-modellen
- Nvidia's Triton Inference Server en de voordelen ervan
- Integratie van de MLflow Model Registry met Triton Inference Server
- LLM's en Gen AI benutten bij Cookpad
- De MLOps-architectuur afstemmen op uw behoeften
Bekijk de volledige aflevering hieronder:
Structuur van de ML-teams @ Cookpad
- Machine Learning Engineers: Het kern-ML-team bestaat uit engineers met expertise in zowel machine learning als software engineering. Zij zijn verantwoordelijk voor het ontwikkelen, trainen en deployen van machine learning-modellen en werken nauw samen met productteams.
- Platform Team: Het platformteam ondersteunt de ML-engineers door de onderliggende infrastructuur te beheren, waaronder Kubernetes-clusters. Zij zorgen voor de schaalbaarheid, betrouwbaarheid en prestaties van ML-systemen. Daarnaast ontwikkelen en onderhouden ze interne tools en frameworks om het ML-ontwikkelproces te stroomlijnen.
GPU-gebaseerde ML-infrastructuur
- Cloudgebaseerde infrastructuur: Cookpad beheert zijn ML-infrastructuur in de cloud, voornamelijk met AWS en enkele resources in GCP. De infrastructuur is ontworpen om de schaal en eisen van Cookpads wereldwijde gebruikersbestand aan te kunnen.
- Dataverwerking en feature-extractie: Door gebruikers gegenereerde content en acties worden binnengehaald via Kafka en verwerkt in een streamingdienst. Features worden berekend en opgeslagen in de Amazon SageMaker feature store, met Amazon Redshift als datawarehouse.
- Microservice-architectuur en inference-laag: Het ML-platform van Cookpad is gebouwd op een microservice-architectuur gedeployed op Kubernetes. Pre-processing vindt plaats binnen microservices en Nvidia Inference Server wordt gebruikt voor ML-inference.
- Experimenteerplatform voor ML-engineers: Cookpad biedt een experimenteerplatform voor ML-engineers, inclusief Jupyter-servers voor data-exploratie en modeltraining. MLflow wordt gebruikt voor experiment-tracking en de model registry.
- Model-deployment en automatisering: ML-engineers registreren modellen in MLflow, en geautomatiseerde processen verzorgen de transformatie en deployment van modellen op de Nvidia Inference Server (Triton).
- GPU-intensieve use cases: De GPU-infrastructuur van Cookpad ondersteunt verschillende modellen, waaronder meertalige modellen en image embedders. Meertalige modellen maken gebruik van grote neurale netwerken, terwijl image embedders computationeel zwaar zijn. Modellen worden standaard gedeployed op GPU's met behulp van Nvidia Triton Inference Server.
Geautomatiseerde model-deployment bij Cookpad
- Jupyter Hub voor experimenten: ML-engineers bij Cookpad hebben toegang tot een beheerde Jupyter Hub-omgeving waar ze hun experimenten kunnen uitvoeren. Het team ondersteunt verschillende kernels binnen Jupyter Hub voor experimenteerdoeleinden.
- Modellen publiceren naar MLflow: Zodra de ML-engineer een model heeft ontwikkeld en bevredigende resultaten heeft behaald, kan deze het model publiceren naar MLflow, dat dient als de model registry en het platform voor experiment-tracking.
- End-to-end automatisering: Cookpad heeft een end-to-end geautomatiseerde pipeline geïmplementeerd voor model-deployment. De geautomatiseerde pipeline neemt het over van de MLflow model registry en loodst het model naadloos door het deploymentproces.
- Ondersteunde backend-frameworks: De geautomatiseerde pipeline van Cookpad ondersteunt een subset van backend-frameworks, waaronder PyTorch, TensorFlow en ONNX. Deze frameworks worden gebruikt om de modellen effectief te optimaliseren en te deployen.
- Standaardkeuze voor PyTorch en TensorFlow: Hoewel Cookpad meerdere backend-frameworks ondersteunt, kiest het team voor modelontwikkeling en -deployment standaard meestal voor PyTorch en TensorFlow vanwege hun brede gebruik en compatibiliteit met de infrastructuur.
📌
Geautomatiseerde model-deployment met MLflow en backend-ondersteuning:
Wanneer een machine learning engineer bij Cookpad experimenteert, heeft deze toegang tot een beheerde Jupyter hub waar experimenten kunnen worden uitgevoerd met verschillende kernels. Zodra ze een model hebben ontwikkeld, publiceren ze het naar MLflow, dat fungeert als de model registry. Vanaf dat punt is het proces volledig geautomatiseerd.
De geautomatiseerde pipeline van Cookpad ondersteunt een lijst met backends die compatibel zijn met zowel MLflow als de Triton Inference Server. De ondersteunde backends omvatten onder meer PyTorch, TensorFlow en ONNX. De geautomatiseerde pipeline verwerkt de deployment van de geregistreerde modellen en maakt gebruik van de juiste backend op basis van compatibiliteit. De standaardkeuzes voor deployment zijn meestal PyTorch of TensorFlow, terwijl ONNX wordt gebruikt voor het optimaliseren van specifieke neurale netwerken.
Feature Store-integratie en configuratie voor online inference
Bij Cookpad gebruiken data scientists de feature store voor zowel experimenten als online inference. Tijdens experimenten hebben ze offline toegang om bestaande features te query'en voor modeltraining. Bij het verkennen van nieuwe features worden gegevens uit het Data Warehouse gehaald, getransformeerd en gebruikt om nieuwe features te maken. Zodra ze tevreden zijn over de prestaties van het model, maken data scientists eenvoudig een nieuwe featuregroep aan in de feature store via het repository-schema.
Data stroomt van het Data Warehouse naar de feature store via Kafka, wat het streamen van nieuw aangemaakte features mogelijk maakt. Om online inference in te schakelen, breiden data scientists de streamingdienst uit om relevante events te verwerken en transformaties uit te voeren. Tijdens de modelregistratie specificeren data scientists de opbouw van het model en de gebruikte features, en de transformatiecode wordt geconfigureerd om specifieke features op naam op te halen.
Deze integratie tussen de feature store, het Data Warehouse en de streamingdienst zorgt voor een naadloze opname van features in het online inference-proces, wat flexibiliteit biedt voor aanpassingen en updates wanneer dat nodig is.
Databronnen en featurebeheer tijdens modelexperimenten
Tijdens modelexperimenten hebben de data scientists van Cookpad twee opties voor het verkrijgen van data. Als de vereiste features al beschikbaar zijn in de feature store, kunnen ze deze rechtstreeks offline query'en. Bij het verkennen van nieuwe features openen ze echter het Data Warehouse, halen ze de gegevens op en maken ze de nodige transformaties voor het trainen van de modellen.
Het toevoegen van nieuwe features aan de feature store is eenvoudig. Data scientists dienen een pull request (PR) in met de details van het feature-schema, en automatisering verzorgt het aanmaken van de featuregroep via AWS-calls. De gegevens uit het Data Warehouse worden via Kafka gestreamd om online inference met de nieuw aangemaakte features mogelijk te maken. De bestaande streamingdienst wordt uitgebreid om events te verwerken en transformaties toe te passen, wat zorgt voor een continue stroom van features naar de feature store.
Voor het behoud van de feature-configuratie voegen data scientists relevante informatie toe bij het registreren van het model in MLflow. De transformatiecode heeft rechtstreeks toegang tot de feature store, en via configuratie specificeren data scientists de vereiste featurenamen. Deze flexibiliteit maakt het eenvoudig om feature-configuraties waar nodig aan te passen.
Argo Workflows gebruiken voor het hertrainen van ML-modellen
Het proces om hertrainingspipelines in de architectuur te integreren is bij Cookpad momenteel nog in ontwikkeling. Hoewel de nadruk heeft gelegen op het snel itereren door nieuwe ML-features, wordt de implementatie van volwassen hertrainingspipelines die modellen dagelijks of wekelijks vervangen of hertrainen nog steeds ontwikkeld. De aanbevelingssystemen bij Cookpad bevinden zich nog in een vroeg stadium, en de iteratieve aanpak maakt snelle experimenten en modelvervanging via A/B-testen mogelijk.
Hoewel het potentieel bestaat om reproduceerbare pipelines te bouwen met Argo Workflows, erkent Cookpad dat ze zich in de beginfase van deze implementatie bevinden. Het is nog geen ideale oplossing, en de reproduceerbaarheid van de pipelines is een uitdaging waar ze actief aan werken.
Beginnen met kleinere, eenvoudigere experimenten en het automatiseren van kritieke pipeline-componenten zorgt voor een weldoordachte architectuur. Cookpad gaf prioriteit aan het automatiseren van inference vanwege het kritieke karakter ervan, en is van plan zich in de toekomst te richten op hertrainingspipelines. Deze georganiseerde en incrementele aanpak voor het bouwen van het platform is een waardevol leermoment voor het publiek, wat de effectiviteit van de methodologie benadrukt.
Proberen om vanaf het begin een end-to-end systeem te bouwen leidt vaak tot onnodige of slecht passende componenten. Hij stelt voor om alternatieven voor Argo Workflows te verkennen voor reproduceerbare pipelines, zoals het gebruik van een Python-wrapper of een andere tool die beter aansluit bij de bekendheid van machine learning engineers met Kubernetes-manifests en goed past binnen hun CI/CD-praktijken.
Nvidia's Triton Inference Server en de voordelen ervan
- Besluit om Triton Inference Server te gebruiken: Cookpad koos voor Triton Inference Server om uitdagingen aan te pakken bij het uitvoeren van inference op GPU's binnen Kubernetes, waarbij kosten en prestaties worden geoptimaliseerd met oog voor de balans tussen kosten en bedrijfswaarde.
- Voordelen van Triton Inference Server: Triton Inference Server biedt kostenoptimalisatie door modellen te aggregeren, GPU-resources te delen en verzoeken intelligent te routen om de kosten te verlagen. Het verbetert de prestaties door modellen standaard op GPU's te deployen, wat resulteert in snellere inference. Het verbetert de gebruikerservaring voor ML-engineers door deployment te vereenvoudigen via een enkele config map-regel en naadloze modelophaling en -laden.
Door gebruik te maken van Nvidia's Triton Inference Server behaalt Cookpad kostenoptimalisatie, verbetert het de prestaties van model-inference en vereenvoudigt het de deployment voor ML-engineers.
Integratie van MLflow Model Registry met Triton Inference Server
Cookpad heeft MLflow Model Registry en Triton Inference Server geïntegreerd om de deployment van modellen op schaal te stroomlijnen. Zo hebben ze dat aangepakt:
- MLflow Model-opslag: Wanneer een model wordt geregistreerd in MLflow, wordt het opgeslagen in een S3-bucket met een specifieke mapstructuur op basis van de conventies van MLflow. Het model kan in TensorFlow- of PyTorch-formaat zijn, elk met een eigen structuur.
- Modelstructuur van Triton: Triton Inference Server verwacht een andere mapstructuur voor het laden van modellen, inclusief configuratiebestanden. Deze mismatch vereist enkele aanpassingen om een model van MLflow naar Triton over te brengen.
- Sidecar-deployment: Cookpad heeft een sidecar-component ontwikkeld die naast Triton Inference Server wordt gedeployed. Deze kleine Python-container query't elke minuut de MLflow-API om nieuw geregistreerde modellen te identificeren. Het query't ook de Triton-API om te controleren welke modellen momenteel geladen zijn.
- Modelconsolidatie: Bij het detecteren van een nieuw model in MLflow dat niet aanwezig is in Triton, haalt de sidecar het modelbestand op uit de S3-bucket. Het voert de nodige bestandsverplaatsingen uit en zorgt ervoor dat de mapstructuur overeenkomt met de verwachtingen van Triton.
- Modellen laden: De sidecar plaatst vervolgens de modelbestanden in de juiste map binnen het Triton-volume en roept de Triton-API aan om het model te laden. Het model wordt naadloos geladen in Triton Inference Server zonder dat een herstart van de server of handmatige tussenkomst vereist is.
Door van deze integratie gebruik te maken, maakt Cookpad efficiënte model-deployment van MLflow naar Triton Inference Server mogelijk, wat schaalbaarheid en eenvoudige updates biedt zonder lopende inference-operaties te verstoren.
LLM's en Gen AI benutten bij Cookpad
Cookpad onderzoekt actief de potentiele use cases en toepassingen van Large Language Models (LLM's) en Generatieve AI-technologie (Gen AI) binnen het eigen platform. Hoewel specifieke implementaties zich nog in de verkenningsfase bevinden, zijn hier enkele gebieden waar Cookpad deze vooruitgang wil inzetten:
- Receptcreatie vereenvoudigen: Cookpad streeft ernaar de drempel voor gebruikers om recepten te maken te verlagen door gebruik te maken van LLM's. Gebruikers kunnen bijvoorbeeld spraakherkenningsapplicaties op hun smartphone gebruiken om receptinstructies te dicteren tijdens het koken. De transcripties worden vervolgens door LLM's verwerkt om geformatteerde recepttekst te genereren, wat de inspanning vermindert die nodig is om recepten nauwkeurig en efficiënt te documenteren.
- Slimme ingrediëntenherkenning: Cookpad ziet mogelijkheden om Gen AI-functionaliteiten te integreren waarmee gebruikers een foto kunnen maken van de ingrediënten in hun koelkast of voorraadkast en om receptsuggesties kunnen vragen. Het AI-systeem herkent de ingrediënten en geeft receptaanbevelingen via het zoeksysteem van Cookpad.
- Recepthulp en aanpassing: Met behulp van LLM's is Cookpad van plan functies te ontwikkelen die recepthulp en -aanpassing bieden. Gebruikers kunnen bijvoorbeeld vragen om vervanging van ingrediënten of aanpassingen die aansluiten bij hun voorkeuren of beschikbare ingrediënten. Het op LLM gebaseerde systeem biedt alternatieve suggesties en stroomlijnt het kookproces.
Tijdens de ontwikkeling en implementatie van deze use cases geeft Cookpad prioriteit aan de privacy van gebruikersgegevens en compliance.
We moeten dat proces volgen en zorgen dat alles voldoet aan de veiligheidseisen.
De MLOps-architectuur afstemmen op uw behoeften
Als het gaat om het bouwen van een real-time inference-stack met MLOps, bestaat er geen universele aanpak. Jose Navarro benadrukt het belang van het afstemmen van de architectuur op de specifieke vereisten en het volwassenheidsniveau van de machine learning (ML)-praktijk binnen een bedrijf. Hier zijn enkele belangrijke inzichten over de essentiële componenten van een MLOps-architectuur:
- Inzicht in volwassenheid: De huidige staat van de ML-implementatie speelt een cruciale rol bij het bepalen van de onmisbare componenten. Als een bedrijf zich in een vroeg stadium bevindt met een sterke focus op experimenten en model-delivery, ligt de nadruk mogelijk op het opleveren van het model en het bouwen van de inference-laag. Aan de andere kant worden voor bedrijven met ML-modellen die al in productie zijn en essentieel zijn voor de bedrijfsvoering, reproduceerbare pipelines, feature stores en model-observability vitale componenten.
- Overcomplexiteit vermijden: Jose raadt aan om de neiging te vermijden om onnodige tools of componenten aan de MLOps-stack toe te voegen. In plaats daarvan is het belangrijk om te focussen op vereenvoudiging en het oplossen van problemen door eliminatie. Door niet-essentiële elementen te verwijderen of het probleem te vereenvoudigen, kunnen bedrijven vaak sneller tot een oplossing komen. Met deze aanpak kunnen teams prioriteit geven aan het creëren van waarde en het beoordelen van de impact van hun ML-initiatieven voordat ze tijd investeren in complexe tooling.
- Agile tool-adoptie: In plaats van een vooraf vastgestelde lijst van must-haves te volgen, raadt Jose aan om tools te introduceren naarmate de behoefte ontstaat. Begin met het identificeren van de kernuitdagingen en -vereisten en introduceer vervolgens geleidelijk tools die aan die specifieke behoeften voldoen. In plaats van veel tijd te besteden aan het onderzoeken en integreren van een feature store, kunt u bijvoorbeeld overwegen om snel een key-value store te bouwen met een dienst zoals DynamoDB om het project te starten en de waarde ervan te beoordelen. Deze iteratieve aanpak maakt snellere validatie van ML-initiatieven mogelijk en minimaliseert onnodige complexiteit.
Lees onze eerdere blogs in de True ML Talks-serie:
Blijf kijken naar de TrueML YouTube-serie en lees de TrueML blog-serie.
TrueFoundry is een ML Deployment PaaS over Kubernetes om workflows van developers te versnellen, terwijl ze volledige flexibiliteit behouden bij het testen en deployen van modellen, met gegarandeerde beveiliging en controle voor het infrastructuurteam. Via ons platform stellen we Machine Learning-teams in staat om binnen 15 minuten modellen te deployen en te monitoren met 100% betrouwbaarheid, schaalbaarheid en de mogelijkheid om binnen seconden te roll-backen. Hierdoor kunnen ze kosten besparen en modellen sneller naar productie brengen, wat leidt tot echte realisatie van bedrijfswaarde.
TrueFoundry AI Gateway levert een latentie van ~3–4 ms, verwerkt 350+ RPS op 1 vCPU, schaalt moeiteloos horizontaal en is klaar voor productie, terwijl LiteLLM last heeft van hoge latentie, moeite heeft boven een gemiddeld aantal RPS, geen ingebouwde schaling heeft en het meest geschikt is voor lichte workloads of prototypes.
















.png)

.webp)



.webp)








.webp)





