• Contact us
  • Documentation
  • Login
Watch a demoFree trial
Blog
Blog
BlogProduktFallstudienNachrichtenInsights
Blog

ML-Inferenz in PHP anhand eines Beispiels: Nutzung von ONNX und Transformers auf Symfony

AImaschinelles LernenPHPSymfonyopen source
19 November 2025
Teilen
Diese Seite wurde von unseren Experten auf Englisch verfasst und mithilfe einer KI übersetzt, um einen schnellen Zugriff zu ermöglichen! Die Originalversion findest du hier.

Dieser Blog basiert auf einer Präsentation von Guillaume Moigneu auf der Symfony 2024-Konferenz. 

Maschinelles Lernen und KI sind nicht mehr auf Python und Node.js beschränkt. PHP-Entwickler können nun KI-Modelle mithilfe moderner Tools und Bibliotheken direkt in ihren Anwendungen ausführen. Dieser Leitfaden zeigt Ihnen, wie Sie maschinelles Lernen in PHP mit ONNX und Transformers implementieren können.

Was sind Transformers?

Transformatoren sind eine Art neuronaler Netzwerkarchitektur, die die KI um 2016–2017 revolutioniert hat. Vor den Transformatoren war die Ausführung von Modellen für maschinelles Lernen langsam und konnte Daten nicht effektiv parallel verarbeiten.

Die wichtigsten Vorteile von Transformatoren:

  • Schnellere Verarbeitung – Kann im Gegensatz zu älteren sequenziellen Modellen mehrere Aufgaben gleichzeitig bearbeiten
  • Besseres Kontextverständnis – Analysiert Beziehungen zwischen Wörtern durch „Self-Attention”-Mechanismen
  • Parallele Verarbeitung – Kann verschiedene Datenpunkte gleichzeitig bearbeiten, wodurch eine groß angelegte Verarbeitung möglich wird
  • Effizientere Ressourcennutzung – Optimiert für Sprachverarbeitung und NLP-Aufgaben
  • Moderne KI ermöglicht – Ermöglicht Modelle wie GPT und BERT durch die Lösung grundlegender Performance-Probleme

So funktionieren Transformer

Wenn Sie Text an ein Transformer-Modell senden, durchläuft es mehrere Schritte, um Ihre Eingabe zu verstehen und zu verarbeiten. Zunächst führt das Modell eine Tokenisierung durch und teilt Ihren Text in kleinere Einheiten, sogenannte Token, auf. Diese Token sind in der Regel Wörter, können aber je nach Modell auch kleinere Teile von Wörtern sein.

Als Nächstes folgt der entscheidende Selbstaufmerksamkeitsmechanismus, bei dem das Modell die Beziehungen zwischen allen Tokens analysiert. Das ist das Besondere an Transformatoren – sie können verstehen, wie verschiedene Wörter im Kontext miteinander in Beziehung stehen. Ein Wort kann in verschiedenen Situationen völlig unterschiedliche Bedeutungen haben, daher muss das Modell die Beziehungen zwischen den Wörtern herausfinden, um zu verstehen, was Sie tatsächlich sagen wollen.

Anschließend führt das Modell eine Kontextzuordnung durch und verarbeitet diese Beziehungen mithilfe neuronaler Netze wiederholt. Es speist die Parameter durch mehrere Iterationen und versucht, die vollständige Bedeutung Ihrer Eingabe zu verstehen. Schließlich generiert es auf der Grundlage all dieser Kontextinformationen eine Ausgabe, sei es das Vervollständigen eines Satzes, das Klassifizieren von Text oder das Beantworten einer Frage.

Wenn Sie beispielsweise „Symfony ist ein großartiges Framework für ___” schreiben, analysiert das Modell die Beziehungen zwischen „Symfony”, „Framework” und „großartig”, um vorherzusagen, was als Nächstes kommt.

Erste Schritte mit PHP-Maschinellem Lernen

Um Machine-Learning-Modelle in PHP auszuführen, benötigen Sie:

  • Transformers PHP-Bibliothek
  • FFI-Erweiterung 
  • ONNX-Modelle 

Installation

composer require codeboost/transformers-php

Wichtiger Hinweis: Die Bibliothek lädt architekturspezifische Pakete herunter. Stellen Sie sicher, dass Sie die richtige Version für Ihr System haben (ARM64 für M1-Macs, AMD64 für Intel-Rechner).

Praktische Anwendungsfälle

1. Textklassifizierung

Die Textklassifizierung hilft Ihnen dabei, Textinhalte automatisch zu kategorisieren. Ideal für:

  • Analyse von Nutzerkommentaren (positiv/negativ)
  • Spam-Erkennung
  • Inhaltsmoderation
  • Bewertungsanalyse

Beispiel: Analyse von Amazon-Bewertungen

Guillaume demonstrierte dieses Konzept, indem er einen Symfony-Befehl ausführte, der Nintendo Switch-Bewertungen analysierte. Hier ist ein anschauliches Beispiel, das auf dem von ihm beschriebenen Ansatz basiert:

use Codeboost\TransformersPHP\Pipeline;

// Create a text classification pipeline
$pipeline = Pipeline::create('text-classification');

// Analyze reviews from your database
$reviews = $database->getReviews();
$results = [];

foreach ($reviews as $review) {
    $score = $pipeline($review->text);
    $results[] = [
        'review_id' => $review->id,
        'sentiment' => $score['label'], // 'POSITIVE' or 'NEGATIVE'
        'confidence' => $score['score']
    ];
}

Reale Ergebnisse: In einem Test mit 108 Bewertungen der Nintendo Switch:

  • 79 positive Bewertungen (73 %)
  • 29 negative Bewertungen (27 %)
  • Verarbeitungszeit: ~14 Bewertungen pro Sekunde auf einer Standard-CPU

2. Bildklassifizierung

Automatische Kategorisierung und Kennzeichnung hochgeladener Bilder. Anwendungsfälle sind unter anderem:

  • Hinzufügen von Alt-Text zu Bildern
  • Inhaltsfilterung
  • Automatisches Taggen
  • Objekterkennung

Beispiel: Hotdog-Erkennung

Der Referent demonstrierte dies anhand einer Live-App zur Hotdog-Erkennung. Hier ein anschauliches Beispiel basierend auf seiner Beschreibung:

use Codeboost\TransformersPHP\Pipeline;

// Create image classification pipeline
$pipeline = Pipeline::create('image-classification');

// Load image using GD or ImageMagick
$image = imagecreatefromjpeg('uploaded_image.jpg');

// Classify the image
$result = $pipeline($image);

// Results: ['label' => 'hot dog', 'score' => 0.95]

Performance: Nahezu sofortige Ergebnisse auf kleinen Servern (unter 1 Sekunde für typische Webbilder).

3. Textgenerierung

Automatische Textgenerierung für:

  • Alt-Text für Bilder
  • Produktbeschreibungen
  • Inhaltsvorschläge
  • Metadaten-Generierung

Beispiel: Textvervollständigung

Guillaume demonstrierte dies mit der Frage: „Kann ein Taco als Sandwich betrachtet werden?“ Hier ist ein anschauliches Beispiel, das auf dem von ihm vorgestellten Ansatz basiert:

use Codeboost\TransformersPHP\Pipeline;

// Create text generation pipeline
$pipeline = Pipeline::create('text-generation', [
    'model' => 'flan-t5-small',
    'temperature' => 0.7 // Controls creativity (0-1)
]);

$prompt = "Can a taco be considered a sandwich?";
$response = $pipeline($prompt);

// Result: "Yes, a taco is a sandwich made of bread"

Systemanforderungen: Läuft auf 2 CPU-Kernen mit 2 GB RAM. Reaktionszeit: 1–2 Sekunden.

So funktioniert es hinter den Kulissen

1. FFI-Erweiterung

Die Foreign Function Interface (FFI)-Erweiterung für PHP ist keine wirklich neue Erweiterung, wurde aber bis vor kurzem nicht häufig verwendet. Mit FFI können Sie C-Bibliotheken direkt aufrufen und Code ohne Übersetzung direkt ausführen. Das ist großartig, denn anstatt CGI und ähnliche alte Methoden zu verwenden, können Sie diese Bibliotheken tatsächlich unabhängig und viel schneller ausführen.

FFI hat viel zur Performance beigetragen und kann für viele verschiedene Zwecke verwendet werden, z. B. zum Aufrufen von Binärdateien und ähnlichen Aufgaben. Guillaume erwähnte, dass Transformatoren architekturabhängig sind, was im Wesentlichen daran liegt, dass sie FFI verwenden, um C-Code im Hintergrund auszuführen.

2. ONNX (Open Neural Network Exchange)

ONNX löst ein großes Problem im maschinellen Lernen. Wenn Sie ein Modell erstellen und trainieren, verwenden Sie in der Regel ein bestimmtes Framework wie TensorFlow von Google oder PyTorch. Dies führt jedoch zu einer erheblichen Einschränkung: Wenn ein Modell mit TensorFlow erstellt wurde, können Sie es nicht in einer PyTorch-Produktivumgebung verwenden und umgekehrt. Sie sind gezwungen, für das Training und die Inferenz dasselbe Framework zu verwenden.

ONNX bietet eine Lösung, indem es ein Standardformat schafft, das für alle Frameworks funktioniert. Dieser offene Standard wurde in Zusammenarbeit zwischen führenden Branchenunternehmen wie Samsung, Apple und anderen entwickelt. Mit ONNX können Sie ein Modell in jedem Framework trainieren, es in das ONNX-Format konvertieren und dann unabhängig von der ursprünglichen Trainingsumgebung überall ausführen. 

3. Modellquellen

Hugging Face Hub

Wenn Sie viele verschiedene Dinge ausprobieren möchten, besuchen Sie Hugging Face. Dort stehen derzeit fast eine Million Modelle zur Verfügung, von denen Sie die meisten auch online testen können. Sie finden dort alle möglichen Kategorien wie Videoklassifizierung, Beantwortung von Fragen, Tabellenfragen, Token-Klassifizierung und alles andere, was Sie benötigen könnten. 

Sie werden auch etwas finden, das zu Ihrem Anwendungsfall passt. Vielleicht müssen Sie ein wenig ausprobieren und testen, aber Sie werden etwas finden, das Ihren Anforderungen entspricht und das Sie anschließend mit der Bibliothek verwenden können. Es gibt auch eine Kategorie, in der Sie alle ONNX-Modelle finden, sodass Sie sicher sein können, dass sie tatsächlich mit Ihren Anforderungen kompatibel sind.

SmallML-Initiative

Etwas Neues, das vor etwa sechs Monaten aufkam, ist eine neue Modellkategorie von Hugging Face, die auch SmallML genannt wird. Das Ziel ist es, Modelle zu entwickeln, die fast so große Texte ausgeben können wie ChatGPT oder Claude, aber in einer Größe von 500 Megabyte oder weniger gebündelt sind. Das ist großartig, denn 500 Megabyte können Sie immer noch auf die meisten Rechner laden, selbst wenn Sie eine GPU auf Ihrem eigenen Rechner haben. Man kann es tatsächlich über Ollama oder was auch immer man möchte ausführen, oder auch über die PHP Transformer-Bibliothek.

Optionen für den Einsatz in der Produktivumgebung

  • Für kleine Modelle (Text-/Bildklassifizierung)

Für Text- und Bildklassifizierungsaufgaben können Sie diese Modelle ohne Probleme direkt auf Ihren PHP-Servern ausführen. Der Referent demonstrierte dies auf einem wirklich kleinen Rechner mit zwei CPUs und zwei Gigabyte RAM, und es funktionierte recht gut. Die Modelle selbst sind nicht wirklich groß; das von ihm verwendete Textklassifizierungsmodell war beispielsweise nur etwa zwei Megabyte groß, sodass es schnell läuft und Sie es überall einsetzen können. Die Implementierung in Ihrer realen Produktivumgebung ist heute kinderleicht.

  • Für große Sprachmodelle

Hier haben Sie drei Optionen:

  1. Externe APIs
    • OpenAI, Claude usw.
    • Einfach zu implementieren
    • Keine Kontrolle über Verfügbarkeit oder Antworten
  2. Gehostete Modell-Endpunkte
    • Stellen Sie Ihr eigenes Modell auf einer GPU-Infrastruktur bereit
    • Hugging Face-Inferenz-Endpunkte
    • Teurer, aber Sie haben die Kontrolle über das Modell
  3. Selbst gehostet
    • Vollständige Kontrolle
    • Erfordert eine GPU-Infrastruktur
    • Sie kümmern sich um alle Vorgänge und die Wartung

Bewährte Verfahren und Tests

Modellauswahl

  • Beginnen Sie mit beliebten Modellen auf Hugging Face
  • Testen Sie mehrere Modelle für Ihren spezifischen Anwendungsfall
  • Beliebte Modelle weisen in der Regel eine höhere Genauigkeit auf
  • Achten Sie auf aktive Entwicklung und regelmäßige Updates

Testen Sie Ihre Modelle

  1. Erstellen Sie Testdatensätze – kennzeichnen Sie mehr als 200 Beispiele manuell
  2. Führen Sie Vergleiche durch – Testen Sie die Modellausgabe anhand bekannter Ergebnisse
  3. Überwachen Sie Inkonsistenzen – Gleiche Eingaben sollten zu konsistenten Ergebnissen führen
  4. Überprüfen Sie Randfälle – Testen Sie mit Änderungen der Zeichensetzung und Tippfehlern

Wichtiger Hinweis

Überwachen Sie KI-generierte Inhalte in der Produktivumgebung stets. Modelle können unerwartete oder schädliche Ergebnisse liefern. Beachten Sie Folgendes:

  • Inhaltsfilterung
  • Menschliche Überprüfung für sensible Anwendungen
  • Fallback-Mechanismen
  • Regelmäßige Überwachung und Warnmeldungen

Fazit

PHP-Entwickler können nun maschinelles Lernen direkt in ihren Anwendungen nutzen, ohne auf externe Abhängigkeiten angewiesen zu sein. Zwar gibt es Einschränkungen (noch keine GPU-Unterstützung), doch reichen die aktuellen Funktionen für viele Anwendungsfälle in der Praxis aus.

Die Kombination aus FFI, ONNX und der PHP-Bibliothek „Transformers“ ermöglicht Folgendes:

  • Analyse von benutzergenerierten Inhalten in Echtzeit
  • Bilder automatisch klassifizieren und mit Tags versehen
  • Generieren Sie hilfreiche Textinhalte
  • Intelligentere Webanwendungen erstellen

Fangen Sie klein an, testen Sie gründlich und erweitern Sie nach und nach den Einsatz von KI in PHP-Anwendungen. Die Zukunft von PHP und maschinellem Lernen steht erst am Anfang.

Bleiben Sie auf dem Laufenden

Abonnieren Sie unseren monatlichen Newsletter.

Ihr größtes Werk
steht vor der Tür

Kostenloser Test