Logo niceshops

niceshops

Etablierte Firma

Vorhersage der Verpackungsgröße via Machine Learning

Description

Lilly Adlgasser und Michael Heininger von niceshops unterhalten sich in ihrem devjobs.at TechTalk "Die Vorhersage der Verpackungsgröße via Machine Learning" über die wichtigsten Eckpunkte des Projektes.

Beim Videoaufruf stimmst Du der Datenübermittlung an YouTube und der Datenschutzerklärung zu.

Video Zusammenfassung

In „Vorhersage der Verpackungsgröße via Machine Learning“ zeigen Lilly Adlgasser & Michael Heininger, wie niceshops aus historischen Versanddaten ein ML-System zur Vorhersage der Kartongröße entwickelt—vom Data Engineering über Feature-Auswahl (Gewicht, Artikelanzahl, Selbstabholung/Kühlversand, approximiertes Volumen) bis zum Modellvergleich (k-NN, Naive Bayes, Decision Trees, Random Forest). Das approximierte Volumen erweist sich als Schlüssel-Feature; der Random Forest liefert die besten Ergebnisse und Top-3-Empfehlungen sind in über 95% der Fälle korrekt, wodurch sich die Auswahl von >40 Größen auf drei reduziert. Deployt auf der Google AI Platform mit benutzerdefinierter Vorhersageroutine und in die PHP-Lagersoftware integriert, werden Vorhersagen vorab berechnet, was Packprozesse beschleunigt und Transportvolumenplanung pro Carrier ermöglicht.

Vorhersage der Verpackungsgröße via Machine Learning bei niceshops: Von den Daten zum produktiven Modell

Kontext: E-Commerce-Skalierung trifft Verpackungslogik

Bei „Vorhersage der Verpackungsgröße via Machine Learning“ von Lilly Adlgasser & Michael Heininger (niceshops) ging es um ein sehr konkretes, hoch skaliertes Logistikproblem: Jeden Tag verlassen über 20.000 Pakete die Lagerhallen, adressiert an mehr als 1 Million Kund:innen. Die Herausforderung beginnt nicht erst beim Transport, sondern bereits an der Packstation: Welche der über 40 verfügbaren Verpackungsgrößen ist für eine gegebene Lieferung die richtige?

Für die Mitarbeitenden im Lager ist das keine triviale Entscheidung. Sie arbeiten mit einem Interface, in dem rechts der Warenkorb der Lieferung sichtbar ist und links die verfügbaren Verpackungsgrößen. Die Idee des Projekts: Ein ML-Modell schlägt eine kleine, hochwahrscheinliche Teilmenge vor – idealerweise drei Größen – und beschleunigt so den Verpackungsprozess. Zusätzlich ermöglicht eine frühe Vorhersage bessere Vorausschau im Transport: Wer weiß, in welchen Verpackungsgrößen die heutigen Lieferungen voraussichtlich verschickt werden, kann das Transportvolumen pro Zustelldienst besser planen.

„Mit einer Vorhersage der Verpackungsgröße kann man den Lagerarbeiter unterstützen. Man kann eine Submenge aus über 40 verschiedenen Größen geben.“

Wir haben die Session als DevJobs.at-Redaktion verfolgt und zeichnen im Folgenden die technische Umsetzung nach – von der Datenerhebung über das Feature Engineering bis zum Deployment auf der Google AI Platform und der Integration in die bestehende PHP-basierte Lagersoftware.

Warum Machine Learning? Daten sind vorhanden, Dimensionen oft nicht

niceshops hatte einen zentralen Vorteil bereits an Bord: Historische Lieferdaten inklusive tatsächlich verwendeter Verpackungsgrößen wurden seit einiger Zeit aufgezeichnet. Gleichzeitig fehlten häufig die exakten Produktdimensionen – eine regelbasierte Lösung ausschließlich auf Basis von Länge/Breite/Höhe der Artikel war damit nicht möglich. Das öffnete die Tür für einen datengetriebenen Ansatz.

„Machine Learning ist sehr gut im Erkennen von Zusammenhängen in großen Mengen von Daten… Und im Unternehmen sind die Dimensionen der Produkte nicht oft hinterlegt.“

Michael Heininger, Backend-Entwickler und Kenner der internen Warenwirtschafts- und Lagersoftware, nutzte seine Masterarbeit, um genau dieses Vorhersagesystem zu entwickeln – mit Fokus auf pragmatische Modellierung und robuste Integration in die bestehende Systemlandschaft.

Projektaufbau: Drei Phasen vom Rohdatenstrom bis zur Produktivintegration

Der Ablauf gliederte sich in drei klar definierte Phasen:

  1. Data Engineering: Daten aus mehreren Shop-Datenbanken via REST abholen, in Google Colab analysieren und für das Training aufbereiten.
  2. Modellierung und Evaluierung: Features definieren, Klassifikationsmodelle mit scikit-learn trainieren und vergleichen.
  3. Deployment und Integration: Modell auf die Google AI Platform bringen (Custom Prediction Routine) und aus der bestehenden PHP-Anwendung ansprechen.

Diese Struktur half, das Risiko zu entkoppeln: Erst wenn die Datenqualität und die Feature-Auswahl stimmten, wurde an das Tuning und schließlich an das Deployment gegangen.

Data Engineering: Verteilte Daten, REST-Schnittstellen, Colab-Workflows

niceshops betreibt mehrere Shops, jeweils mit eigener Datenbank. Für das Projekt bedeutete das: Daten konsolidieren, ohne die produktiven Systeme zu stören. Der Weg führte über REST-Endpunkte pro Shop. Die gewonnenen Daten – historische Lieferungen mit den zugehörigen, tatsächlich verwendeten Verpackungsgrößen – wurden anschließend in Google Colab geladen und dort exploriert, bereinigt und für das Modell aufbereitet.

Google Colab passte aus zwei Gründen: Schnelles Prototyping im Browser und direkte Anbindung an die Google-Cloud-Umgebung für spätere Deployments. Für die Masterarbeit und das Unternehmensprojekt war das eine pragmatische Lösung mit kurzer Feedback-Schleife.

Lessons im Data Engineering

  • Der Prozess der Datenbeschaffung über mehrere REST-Schnittstellen war aufwendig und fehleranfällig.
  • Für die Zukunft wünscht sich das Team eine direkte Synchronisation über Google BigQuery: Daten zentralisieren, Modelle konsistenter trainieren und Ergebnisse zurückschreiben, um Monitoring und (Re-)Training zu automatisieren.

„Cool wäre natürlich, wenn wir das direkt synchronisieren würden, z.B. über Google BigQuery… und die Vorhersagegenauigkeit laufend überprüfen.“

Feature Engineering: Von einfachen Signalen zur entscheidenden Kennzahl

Zu Beginn definierte das Team eine Reihe gut verfügbarer Merkmale, die für alle Lieferungen stabil erfasst werden:

  • Gewicht der Lieferung
  • Anzahl der Produkte in der Lieferung
  • Flag für Selbstabholung
  • Flag für Kühlversand
  • Ein approximiertes Volumen der Lieferung

Die ersten vier Merkmale sind naheliegend und früh verfügbar. Der zentrale Durchbruch gelang jedoch über das approximierte Volumen. Denn ohne konsistente Produktabmessungen ist ein Volumen schwer direkt zu berechnen. niceshops nutzte deshalb bekannte Werte aus dem Versandprozess (z.B. Paketvolumen, Gewichtsgrößen) und leitete daraus eine volumetrische Annäherung ab.

„Bevor wir das approximierte Volumen gehabt haben, waren wir bei 50–60% Vorhersagegenauigkeit. Für den Einsatz im Lager zu wenig.“

Mit dem zusätzlichen Volumenfeature stieg die Qualität signifikant – genug, um konkrete Einsatzszenarien im Lager umzusetzen.

Warum das approximierte Volumen wirkt

  • Verpackungsgrößen korrelieren natürlich stark mit Volumenanforderungen.
  • Das reine Gewicht ist nur bedingt aussagekräftig (leichte, voluminöse Artikel; schwere, kompakte Artikel).
  • Das approximierte Volumen bringt die entscheidende räumliche Dimension in die Vorhersage – auch ohne exakte Produktmaße.

Modellierung mit scikit-learn: Einfach starten, sauber vergleichen

Für die Modellierung fiel die Wahl auf scikit-learn. Der Grund war pragmatisch: schnelle Iteration mit etablierten Algorithmen, klare APIs und gute Vergleichbarkeit der Modelle. Das Team trainierte und evaluierte mehrere Klassifikatoren:

  • K-Nearest Neighbors (KNN)
  • Naive Bayes
  • Decision Trees
  • Random Forest

Das beste Ergebnis lieferte der Random-Forest-Ansatz. Wichtig: Die Auswahl basierte nicht auf theoretischen Erwägungen, sondern auf der tatsächlichen Vorhersageleistung auf den verfügbaren Daten.

„Mit dem Random-Forest-Algorithmus hatten wir die höchste Vorhersagegenauigkeit.“

Metriken: Top-1 und Top-3 für den Praxiseinsatz

Zwei Kennzahlen standen im Fokus:

  • Top-1-Genauigkeit: Anteil der Vorhersagen, bei denen die vorhergesagte Größe exakt der tatsächlich verwendeten Größe entspricht.
  • Top-3-Genauigkeit: Anteil der Fälle, in denen die tatsächliche Größe unter den drei wahrscheinlichsten vom Modell vorgeschlagenen Größen liegt.

Während die Top-1-Genauigkeit shopübergreifend schwankt (durch Sortiment, Versandarten, etc.), ist die Top-3-Genauigkeit mit über 95% anwendungsreif für das Lager. Drei gut begründete Vorschläge unter mehr als 40 möglichen Optionen sind eine erhebliche Entlastung im Alltag.

Deployment: Custom Prediction Routine auf der Google AI Platform

Das Modell wurde auf der Google AI Platform bereitgestellt – mit einem Feature, das für Integrationsteams besonders wertvoll ist: der benutzerdefinierten Vorhersageroutine. Diese erlaubt es, Custom-Python-Code rund um das Modell auszuführen und zwei zentrale Klassen zu definieren:

  • Preprocessor: Nimmt die Vorhersageanfrage entgegen und bereitet die Daten auf (z.B. Umwandlung kategorischer Werte in numerische Features).
  • Predictor: Steuert den Ablauf – nimmt die Anfrage entgegen, leitet sie an den Preprocessor weiter, ruft das Modell auf und formt die Antwort.

„Der Vorteil ist, dass man Custom Python Code auf der Cloud ausführen kann… Man kann einen Predictor und einen Präprozessor definieren.“

Der technische Packaging-Prozess folgte einem klaren Schema: Preprocessor und Predictor als Python-Quellpaket bündeln, zusammen mit dem trainierten Modell in die Cloud laden, Versionen benennen – alles direkt aus Google Colab orchestriert. Laut Heininger war das in wenigen Zellen erledigt.

Warum Custom Prediction wichtig ist

  • Es erlaubt eine stabile, serverseitige Vorverarbeitung – identisch zu dem, was beim Training passierte.
  • Die Antwort kann shop- und anwendungsbezogen strukturiert werden (z.B. Top-N-Kandidaten).
  • Kategorische Encodings, Konsistenzprüfungen und Fallbacks lassen sich an einem zentralen Ort kapseln.

Integration in die PHP-Lagersoftware: Einfach anbinden, sinnvoll entkoppeln

niceshops setzt in der Lagerlogik vorrangig auf PHP. Für die Anbindung der Vorhersagen nutzte das Team die „Google Machine Learning Engine für PHP“. Zentral sind zwei Integrationsdetails:

  • Authentifizierung: Ein JSON-File mit Dienstkontoschlüssel dient zur Erstellung eines autorisierten Services.
  • Inferenz-Aufruf: Über den autorisierten Service wird die Predict-API der AI Platform mit dem Modellnamen und einem Request-Array (Instanzen) angesprochen. Die Antwort wird ausgewertet und in der Anwendung weiterverarbeitet.

„Mit dem Dienstkontenschlüssel kann man einen autorisierten Service erstellen… Mit dem Request-Array kann man sehr einfach das Modell anbinden.“

Latenz als Produktentscheid: Vorhersagen vorziehen und cachen

Statt Vorhersagen erst mit Start des Verpackungsprozesses anzustoßen, generiert niceshops sie bereits bei der Erzeugung der Lieferung. Das entkoppelt Latenz vom Arbeitsmoment am Packtisch. Die Ergebnisse werden in der Datenbank gespeichert und stehen beim Start sofort zur Verfügung.

„Wir haben uns für Zweiteres entschieden… Wir speichern dann die Vorhersagergebnisse vorab in die Datenbank.“

UI-Einbindung: Drei Größen, optional vorgewählt

Im produktiven Test in einem Shop zeigt die Oberfläche drei vorgeschlagene Verpackungsgrößen, konfigurierbar mit einer Vorauswahl der wahrscheinlichsten Größe. Das passt zur Top-3-Metrik: hohe Trefferquote, klare Guidance, kein Zwang zu einer einzigen Antwort.

Betrieb und Monitoring: Schrittweise ausrollen, Qualität prüfen

Zum Zeitpunkt der Session lief das System produktiv in einem Shop. Ziel ist ein schrittweiser Rollout in weitere Shops – immer gekoppelt an die beobachtete Vorhersagegenauigkeit. Dabei wird die Data Foundation im Blick behalten: Je shop-spezifischer und aktueller die Datengrundlage, desto stabiler die Empfehlungen.

Ein besonders spannender Ausblick: die Ableitung von Transportvolumina. Wenn früh klar ist, in welchen Größen die Tagesmengen verpackt werden, lässt sich der Bedarf pro Lieferdienst besser planen – bis hin zur Anzahl der Fahrzeuge.

„Ein spannendes Projekt ist die Bestimmung von Transportvolumen, das wir vorab machen können, auf Basis von dem Modell.“

Learnings, die wir mitnehmen

Aus der Perspektive unserer Redaktion kristallisierten sich folgende Lehren heraus:

  • Datenzugang zuerst lösen: Ein funktionierendes ML-Projekt beginnt nicht beim Algorithmus, sondern bei der robusten, wiederholbaren Datenbereitstellung. Das Team plant, den REST-getriebenen Prozess durch eine BigQuery-Synchronisation zu ersetzen.
  • Feature Engineering zahlt sich aus: Das approximierte Volumen war der Gamechanger, der die Vorhersagequalität in den produktionsreifen Bereich katapultiert hat.
  • Metrik nah am Prozess wählen: Top-3-Genauigkeit ist für das Lager aussagekräftiger als reine Top-1-Accuracy – sie passt zur realen Entscheidungssituation am Packplatz.
  • Deployment mit Vorverarbeitung: Die Custom Prediction Routine stellt sicher, dass Preprocessing und Modell in der Cloud konsistent zusammenlaufen.
  • Latenz entkoppeln: Vorhersagen bereits bei der Lieferung erzeugen, Ergebnisse cachen und am Packtisch sofort anzeigen. So wird ML zu einem unauffälligen, aber spürbar hilfreichen Teil des Workflows.

Technische Eckpunkte – präzise, aber pragmatisch

  • Technologie-Stack fürs Training: Python, scikit-learn, Google Colab.
  • Evaluierte Modelle: KNN, Naive Bayes, Decision Trees, Random Forest (bester Performer).
  • Features: Gewicht, Anzahl Produkte, Flags (Selbstabholung, Kühlversand), approximiertes Volumen.
  • Metriken: Top-1-Genauigkeit (shopabhängig), Top-3-Genauigkeit (>95% über alle Shops gemittelt).
  • Deployment: Google AI Platform, Custom Prediction Routine mit Preprocessor und Predictor als Python-Klassen; Packaging als Quell-Distributions-Paket.
  • Integration: Google Machine Learning Engine für PHP, Auth via JSON-Dienstkonto, Predict-Aufruf mit Modellname und Request-Array.
  • Betriebsmodus: Vorhersagen bei Lieferungserzeugung, Speicherung in DB, Anzeige drei Größen im UI, optional mit Vorauswahl der wahrscheinlichsten Größe.

Ausblick: Mehr Shops, bessere Daten, automatisiertes Re-Training

Der weitere Weg ist klar umrissen:

  • Rollout in zusätzliche Shops, jeweils mit laufender Qualitätskontrolle.
  • Verbesserung der Datengrundlage pro Shop; Suche nach weiteren repräsentativen Features.
  • Zentrale Datensynchronisation (z.B. BigQuery) zur Vereinfachung des Trainings und des Monitorings.
  • Rückschreiben von Ergebnissen und Metriken, um automatisierte Trainingsjobs zu starten, wenn die Vorhersagegenauigkeit nachlässt.

Fazit: Ein ML-Projekt, das am Shop-Floor ankommt

„Vorhersage der Verpackungsgröße via Machine Learning“ zeigt exemplarisch, wie man ein datengetriebenes Projekt von der Idee bis zum Packtisch führt. Keine überkomplexe Architektur, sondern saubere Schritte: Daten anheben, wirkungsvolle Features finden, einfache, robuste Modelle evaluieren, Cloud-Deployment mit reproduzierbarer Vorverarbeitung, pragmatische Integration in den bestehenden PHP-Stack – und ein UI, das Mitarbeiter:innen Anleitung gibt, ohne sie zu entmündigen.

Oder, in den Worten aus der Session: Machine Learning erkennt Zusammenhänge in den Daten – entscheidend ist, diese Erkenntnis so einzubetten, dass sie im Lager sofort Nutzen stiftet. Genau das ist niceshops gelungen.

Titel der Session: Vorhersage der Verpackungsgröße via Machine Learning

Speaker: Lilly Adlgasser & Michael Heininger

Company: niceshops

Weitere Tech Talks

Weitere Tech Lead Stories