Open Meals Information versucht seit Jahren, dieses Drawback mit regulären Ausdrücken und bestehenden Lösungen wie dem Elasticsearch-Korrektor zu lösen, jedoch ohne Erfolg. Bis vor kurzem.

Dank der neuesten Fortschritte in der künstlichen Intelligenz haben wir jetzt Zugriff auf leistungsstarke Große Sprachmodelleauch genannt LLMs.

Durch das Coaching unseres eigenen Modells haben wir das erstellt Rechtschreibprüfung der Zutaten und schaffte es nicht nur, proprietäre LLMs wie zu übertreffen GPT-4o oder Claude 3,5 Sonett zu dieser Aufgabe beitragen, sondern auch die Anzahl der nicht erkannten Inhaltsstoffe in der Datenbank reduzieren 11 %.

Dieser Artikel führt Sie durch die verschiedenen Phasen des Projekts und zeigt Ihnen, wie es uns gelungen ist, die Qualität der Datenbank mithilfe von maschinellem Lernen zu verbessern.

Viel Spaß beim Lesen!

Wenn ein Mitwirkender ein Produkt hinzufügt, durchlaufen seine Bilder eine Reihe von Prozessen, um alle relevanten Informationen zu extrahieren. Ein entscheidender Schritt ist die Extraktion des Zutatenliste.

Wenn ein Wort als Zutat identifiziert wird, wird es mit einem Querverweis versehen Taxonomie das eine vordefinierte Liste anerkannter Inhaltsstoffe enthält. Wenn das Wort mit einem Eintrag in der Taxonomie übereinstimmt, wird es als Zutat markiert und den Produktinformationen hinzugefügt.

Dieser Tagging-Prozess stellt sicher, dass die Inhaltsstoffe standardisiert und leicht durchsuchbar sind und liefert genaue Daten für Verbraucher und Analysetools.

Wird eine Zutat jedoch nicht erkannt, schlägt der Prozess fehl.

Die Zutat „Jambon do porc“ (Schweinefleischschinken) wurde vom Parser nicht erkannt (von der Seite „Produktausgabe“).

Aus diesem Grund haben wir eine zusätzliche Ebene in den Prozess eingeführt: die Rechtschreibprüfung der Zutatenentworfen, um Zutatenlisten zu korrigieren, bevor sie vom Zutatenparser verarbeitet werden.

Ein einfacherer Ansatz wäre der Peter Norvig-Algorithmusdas jedes Wort verarbeitet, indem es eine Reihe von Zeichenlöschungen, Hinzufügungen und Ersetzungen anwendet, um mögliche Korrekturen zu identifizieren.

Für unseren Anwendungsfall erwies sich diese Methode jedoch aus mehreren Gründen als unzureichend:

  • Sonderzeichen und Formatierung: Elemente wie Kommas, Klammern und Prozentzeichen sind in Zutatenlisten von entscheidender Bedeutung und beeinflussen die Produktzusammensetzung und die Allergenkennzeichnung (z. B. „Salz (1,2 %)“).
  • Mehrsprachige Herausforderungen: Die Datenbank enthält Produkte aus der ganzen Welt in einer Vielzahl von Sprachen. Dies verkompliziert einen grundlegenden zeichenbasierten Ansatz wie den von Norvig, der sprachunabhängig ist, weiter.

Stattdessen haben wir uns insbesondere den neuesten Fortschritten im maschinellen Lernen zugewandt Große Sprachmodelle (LLMs)die sich in einer Vielzahl von Bereichen auszeichnen Verarbeitung natürlicher Sprache (NLP) Aufgaben, einschließlich Rechtschreibkorrektur.

Für diesen Weg haben wir uns entschieden.

Was man nicht misst, kann man nicht verbessern.

Was ist eine gute Korrektur? Und wie misst man die Leistung des Korrektors, LLM oder Nicht-LLM?

Unser erster Schritt besteht darin, die Vielfalt der Fehler zu verstehen und zu katalogisieren, auf die der Ingredient Parser stößt.

Darüber hinaus ist es wichtig zu beurteilen, ob ein Fehler überhaupt behoben werden sollte. Manchmal kann der Versuch, Fehler zu korrigieren, mehr schaden als nützen:

flour, salt (1!2%)
# Is it 1.2% or 12%?...

Aus diesen Gründen haben wir das erstellt Richtlinien zur Rechtschreibprüfungein Regelwerk, das die Korrekturen begrenzt. Diese Richtlinien werden uns während des gesamten Projekts in vielerlei Hinsicht von Nutzen sein, von der Datensatzgenerierung bis zur Modellevaluierung.

Die Richtlinien wurden insbesondere zur Erstellung des verwendet Rechtschreibprüfungs-Benchmarkein kuratierter Datensatz mit etwa 300 manuell korrigierten Zutatenlisten.

Dieser Maßstab ist der Eckpfeiler des Projekts. Es ermöglicht uns, jede Lösung, ob maschinelles Lernen oder einfache Heuristik, für unseren Anwendungsfall zu bewerten.

Es geht entlang der Bewertungsalgorithmuseine von uns entwickelte maßgeschneiderte Lösung, die eine Reihe von Korrekturen in messbare Metriken umwandelt.

Der Bewertungsalgorithmus

Die meisten vorhandenen Metriken und Bewertungsalgorithmen für textbezogene Aufgaben berechnen die Ähnlichkeit zwischen einer Referenz und einer Vorhersage, z BLEU oder ROUGE Noten für Sprachübersetzung oder Zusammenfassung.

In unserem Fall sind diese Kennzahlen jedoch unzureichend.

Wir möchten bewerten, wie intestine der Rechtschreibalgorithmus die richtigen Wörter in einer Zutatenliste erkennt und korrigiert. Daher passen wir die an Präzision Und Abrufen Metriken für unsere Aufgabe:

Präzision = Richtige Korrekturen durch das Modell / ​Gesamtkorrekturen durch das Modell

Abrufen = Richtige Korrekturen durch das Modell / ​Gesamtzahl der Fehler

Allerdings haben wir keinen genauen Überblick darüber, welche Wörter korrigiert werden sollten … Wir haben nur Zugriff auf:

  • Der Unique: die Liste der Zutaten, wie sie in der Datenbank vorhanden ist;
  • Der Referenz: wie wir erwarten, dass diese Liste korrigiert wird;
  • Der Vorhersage: die Korrektur aus dem Modell.

Gibt es eine Möglichkeit, die Anzahl der Fehler zu berechnen, die richtig korrigiert wurden, die Fehler, die bei der Rechtschreibprüfung übersehen wurden, und schließlich die Fehler, die falsch korrigiert wurden?

Die Antwort ist ja!

Unique:       "Th cat si on the fride,"
Reference: "The cat is on the fridge."
Prediction: "Th large cat is within the fridge."

Anhand des obigen Beispiels können wir leicht erkennen, welche Wörter korrigiert werden sollten: The , is Und fridge ; und welche Wörter wurden falsch korrigiert: on hinein in. Schließlich sehen wir, dass ein zusätzliches Wort hinzugefügt wurde: large .

Wenn wir diese 3 Sequenzen paarweise ausrichten, original-reference Und original-prediction können wir erkennen, welche Wörter korrigiert werden sollten und welche nicht. Dieses Ausrichtungsproblem ist typisch für die Bioinformatik, genannt Sequenzausrichtungdessen Zweck darin besteht, Regionen mit Ähnlichkeit zu identifizieren.

Dies ist eine perfekte Analogie für unsere Aufgabe zur Rechtschreibprüfung.

Unique:       "Th    -   cat   si   on   the   fride,"
Reference: "The - cat is on the fridge."
1 0 0 1 0 0 1

Unique: "Th - cat si on the fride,"
Prediction: "Th large cat is in the fridge."
0 1 0 1 1 0 1
FN FP TP FP TP

Indem Sie jedes Paar mit einem beschriften 0 oder 1 Unabhängig davon, ob sich das Wort geändert hat oder nicht, können wir berechnen, wie oft das Modell Fehler richtig behebt (True Positives – TP)ändert fälschlicherweise die richtigen Wörter (False Positives – FP)und übersieht Fehler, die hätten korrigiert werden müssen (Falsche Adverse – FN).

Mit anderen Worten, wir können die berechnen Präzision Und Abrufen der Rechtschreibprüfung!

Wir verfügen jetzt über einen robusten Algorithmus, der jede Rechtschreibprüfungslösung bewerten kann!

Den Algorithmus finden Sie im Projekt-Repository.

Massive Language Fashions (LLMs) haben sich in verschiedenen Branchen als große Hilfe bei der Bewältigung natürlicher Sprachaufgaben erwiesen.

Sie stellen einen Weg dar, den wir für unseren Anwendungsfall erkunden müssen.

Viele LLM-Anbieter prahlen in Bestenlisten mit der Leistung ihres Modells, aber wie schneiden sie bei der Korrektur von Fehlern in Zutatenlisten ab? Daher haben wir sie bewertet!

Wir haben ausgewertet GPT-3.5 Und GPT-4o aus OpenAI, Claude-Sonett-3.5 aus AnthropischUnd Zwillinge-1,5-Flash aus Google unter Verwendung unseres benutzerdefinierten Benchmark- und Bewertungsalgorithmus.

Wir haben detaillierte Anweisungen angefordert, um die Korrekturen an unseren benutzerdefinierten Richtlinien auszurichten.

LLMs-Bewertung anhand unseres Benchmarks (Bild vom Autor)

GPT-3.5-Turbo lieferte im Vergleich zu anderen Modellen die beste Leistung, sowohl hinsichtlich der Messwerte als auch der manuellen Überprüfung. Besondere Erwähnung verdient Claude-Sonett-3.5das beeindruckende Fehlerkorrekturen zeigte (hoher Recall), aber oft zusätzliche irrelevante Erklärungen lieferte, was die Präzision verringerte.

Großartig! Wir haben ein LLM, das funktioniert! Zeit, die Funktion in der App zu erstellen!

Additionally, nicht so schnell…

Der Einsatz privater LLMs bringt viele Herausforderungen mit sich:

  1. Mangel an Eigenverantwortung: Wir werden abhängig von den Anbietern und ihren Modellen. Es werden häufig neue Modellversionen veröffentlicht, die das Verhalten des Modells verändern. Diese Instabilität, vor allem weil das Modell für allgemeine Zwecke und nicht für unsere spezifische Aufgabe konzipiert ist, erschwert die langfristige Wartung.
  2. Risiko der Modelllöschung: Wir haben keine Schutzmaßnahmen dagegen, dass Anbieter ältere Modelle entfernen. Beispielsweise wird GPT-3.5 langsam durch leistungsstärkere Modelle ersetzt, obwohl es das beste Modell für diese Aufgabe ist!
  3. Leistungseinschränkungen: Die Leistung eines privaten LLM wird durch seine Eingabeaufforderungen eingeschränkt. Mit anderen Worten: Unsere einzige Möglichkeit, die Ergebnisse zu verbessern, sind bessere Eingabeaufforderungen, da wir die Kerngewichte des Modells nicht ändern können, indem wir es anhand unserer eigenen Daten trainieren.

Aus diesen Gründen haben wir uns entschieden, unsere Bemühungen auf Open-Supply-Lösungen zu konzentrieren, die uns vollständige Kontrolle ermöglichen und allgemeine LLMs übertreffen.

Der Modelltrainings-Workflow: von der Datensatzextraktion bis zum Modelltraining (Bild vom Autor)

Jede Lösung für maschinelles Lernen beginnt mit Daten. In unserem Fall handelt es sich bei den Daten um die korrigierten Zutatenlisten.

Allerdings sind nicht alle Zutatenlisten gleich. Einige enthalten keine unerkannten Inhaltsstoffe, andere sind einfach so unleserlich, dass es keinen Sinn macht, sie zu korrigieren.

Deshalb finden wir eine perfekte Ausgewogenheit, indem wir Zutatenlisten auswählen, die dazwischen liegen 10 und 40 Prozent unerkannte Inhaltsstoffe. Wir haben außerdem dafür gesorgt, dass es keine Duplikate im Datensatz gibt, aber auch beim Benchmark, um Datenlecks während der Auswertungsphase zu verhindern.

Wir haben mithilfe von 6000 unkorrigierte Hear aus der Open Meals Information-Datenbank extrahiert DuckDBein schnelles In-Course of-SQL-Software, das Millionen von Zeilen professional Sekunde verarbeiten kann.

Diese extrahierten Hear sind jedoch noch nicht korrigiert, und es würde zu viel Zeit und Ressourcen kosten, sie manuell zu kommentieren …

Wir haben jedoch Zugriff auf LLMs, die wir bereits für die genaue Aufgabenstellung evaluiert haben. Aus diesem Grund haben wir GPT-3.5-Turbo, das beste Modell in unserem Benchmark, aufgefordert, jede Liste gemäß unseren Richtlinien zu korrigieren.

Der Vorgang dauerte weniger als eine Stunde und kostete quick 2$.

Anschließend haben wir den Datensatz manuell überprüft Argillaein Open-Supply-Annotationstool, das auf Aufgaben der Verarbeitung natürlicher Sprache spezialisiert ist. Dieser Prozess stellt sicher, dass der Datensatz von ausreichender Qualität ist, um ein zuverlässiges Modell zu trainieren.

Wir verfügen nun über eine Trainingsdatensatz und ein Bewertungsmaßstab um unser eigenes Modell für die Rechtschreibprüfungsaufgabe zu trainieren.

Ausbildung

Für diese Section haben wir uns entschieden Sequenz-zu-Sequenz-Sprachmodelle. Mit anderen Worten: Diese Modelle nehmen einen Textual content als Eingabe und geben einen Textual content als Ausgabe zurück, was für den Rechtschreibprüfungsprozess geeignet ist.

Mehrere Modelle passen zu dieser Rolle, wie zum Beispiel das T5-Familie 2020 von Google entwickelt, oder die aktuellen Open-Supply-LLMs wie Lama oder Mistraldie für die Texterstellung und das Befolgen von Anweisungen konzipiert sind.

Das Modelltraining besteht aus einer Reihe von Schritten, von denen jeder unterschiedliche Ressourcenzuweisungen erfordert, z. B. Cloud-GPUs, Datenvalidierung und Protokollierung. Aus diesem Grund haben wir uns entschieden, das Coaching mit zu orchestrieren Metaflowein Pipeline-Orchestrator, der für Information-Science- und Machine-Studying-Projekte entwickelt wurde.

Die Trainingspipeline setzt sich wie folgt zusammen:

  • Konfigurationen und Hyperparameter werden aus Konfigurations-YAML-Dateien in die Pipeline importiert;
  • Der Trainingsjob wird in der Cloud gestartet AWS Sagemakerentlang des Satzes von Modellhyperparametern und der benutzerdefinierten Module wie dem Bewertungsalgorithmus. Sobald die Aufgabe erledigt ist, wird das Modellartefakt in einem AWS S3-Bucket gespeichert. Alle Trainingsdetails werden mit verfolgt Komet ML;
  • Das fein abgestimmte Modell wird dann auf der bewertet Maßstab unter Verwendung des Bewertungsalgorithmus. Je nach Modellgröße kann dieser Vorgang extrem langwierig sein. Deshalb haben wir verwendet vLLMeine Python-Bibliothek zur Beschleunigung von LLM-Schlussfolgerungen;
  • Die Vorhersagen zum Benchmark, die ebenfalls in AWS S3 gespeichert sind, werden an gesendet Argilla zur menschlichen Beurteilung.

Nachdem wir zwischen der Verfeinerung der Daten und dem Modelltraining immer wieder iteriert hatten, erreichten wir eine Leistung vergleichbar mit proprietären LLMs bei der Aufgabe „Rechtschreibprüfung“ und erzielte einen F1-Rating von 0,65.

Von admin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert