0 Reaktionen

Mozilla stellt Erweiterungs-Schnittstelle für Lokale KI in Firefox vor

Geschätzte Lesedauer:

Mozilla hat eine neue Erweiterungs-Schnittstelle vorgestellt, welche Entwickler von Firefox-Erweiterungen nutzen können, um Anwendungsfälle für Maschinelles Lernen und Künstliche Intelligenz lokal auszuführen.

Nutzer einer Nightly-Version von Firefox können ab sofort eine neue experimentelle Erweiterungs-Schnittstelle nutzen. Diese hat Mozilla auf seinem Blog vorgestellt.

Die Schnittstelle erlaubt die Nutzung jedes maschinellen Lernmodells, welches mit Transformers.js kompatibel ist, im Browser auszuführen, ohne dass dabei Anfragen an externe Server gesendet werden. Lediglich das verwendete Modell muss bei der ersten Nutzung heruntergeladen werden, ansonsten geschieht die Arbeit vollständig lokal.

Zwar können Webanwendungen bereits Transformers.js in JavaScript nutzen. Die Ausführung über Mozillas Erweiterungsschnittstelle bietet aber mehrere Vorteile: So wird die Inferenz-Runtime in einem eigenen isolierten Firefox-Prozess ausgeführt, was die Sicherheit und Robustheit verbessert. Die Modell-Dateien werden in einer IndexedDB gespeichert und über verschiedene Ursprünge hinweg gemeinsam genutzt. Außerdem erlauben Firefox-spezifische Leistungsverbesserungen eine verbesserte Performance.

Transformers.js verwendet „Aufgaben“, um Implementierungsdetails für die Ausführung bestimmter Arten von ML-Workloads zu abstrahieren. Für die erste Iteration stellt Firefox die folgenden Aufgaben zur Verfügung:

  • text-classification – Zuweisung eines Labels oder einer Klasse zu einem gegebenen Text
  • token-classification – Zuweisung eines Labels zu jedem Token in einem Text
  • question-answering – Abrufen der Antwort auf eine Frage aus einem gegebenen Text
  • fill-mask – Maskierung einiger Wörter in einem Satz und Vorhersage, welche Wörter diese Masken ersetzen sollen
  • summarization – Erstellung einer kürzeren Version eines Dokuments unter Beibehaltung der wichtigen Informationen.
  • translation – Konvertierung von Text von einer Sprache in eine andere
  • text2text-generation – Konvertierung einer Textfolge in eine andere Textfolge
  • text-generation – Erzeugen von neuem Text durch Vorhersage des nächsten Wortes in einer Sequenz
  • zero-shot-classification – Klassifizierung von Text in Klassen, die während des Trainings nicht gesehen werden
  • image-to-text – Ausgabe von Text aus einem gegebenen Bild
  • image-classification – Zuweisung eines Labels oder einer Klasse für ein ganzes Bild
  • image-segmentation – Unterteilung eines Bildes in Segmente, in denen jedes Pixel einem Objekt zugeordnet ist
  • zero-shot-image-classification – Klassifizierung von Bildern in Klassen, die beim Training nicht gesehen werden
  • object-detection – Identifizierung von Objekten bestimmter definierter Klassen in einem Bild
  • zero-shot-object-detection – Identifizierung von Objekten von Klassen, die beim Training nicht gesehen werden
  • document-question-answering – Beantwortung von Fragen zu Dokumentenbildern
  • image-to-image – Umwandlung eines Quellbildes, damit es den Merkmalen eines Zielbildes oder eines Zielbildbereichs entspricht
  • depth-estimation – Vorhersage der Tiefe von Objekten in einem Bild
  • feature-extraction – Umwandlung von Rohdaten in numerische Merkmale, die verarbeitet werden können, wobei die Informationen im Originaldatensatz erhalten bleiben
  • image-feature-extraction – Umwandlung von Rohdaten in numerische Merkmale, die unter Beibehaltung der Informationen im Originalbild verarbeitet werden können

Für jede Aufgabe hat Mozilla ein Standard-Modell ausgewählt. Der Erweiterungs-Entwickler kann aber auf jedes Modell zurückgreifen, welches auf Hugging Face entweder von Mozilla oder Xenova veröffentlicht worden ist. Derzeit können nur Modelle dieser zwei Organisationen genutzt werden. Dass diese Einschränkung gelockert wird, ist für die Zukunft denkbar.

So einfach könnte beispielsweise Code zur Zusammenfassung von Text mit dem entsprechenden Standard-Modell aussehen:

async function summarize (text) {
  await browser.trial.ml.createEngine({ taskName: 'summarization' });
  const result = await browser.trial.ml.runEngine({ args: [text] });
  return result[0]['summary_text'];
}

Im Vergleich mit anderen WebExtension-Schnittstellen gibt es zwei wichtige Unterschiede: Zum einen kann die notwendige Berechtigung erst nach der Installation einer Erweiterung durch den Benutzer erteilt werden. Außerdem werden Änderungen der Schnittstelle in der Zukunt erwartet. Aus diesem Grund nutzt die Schnittstelle den browser.trial-Namespace, statt die Funktionen direkt in browser bereitzustellen. Damit wird die Erwartungshaltung entsprechend gesetzt, dass es sich hierbei um eine Art „Vorschau“ handelt und in Zukunft eher Anpassungen der Erweiterungen notwendig werden, als es bei WebExtensions normalerweise üblich ist.

Die KI-unterstützte Generierung eines Beschreibungstextes für Bilder in PDF-Dateien ist ein in Firefox von Haus aus integriertes Feature, welches unter der Haube aber auf genau die gleiche Weise funktioniert. Mozilla hat diesen Anwendungsfall zusätzlich auch noch in Form einer Erweiterung implementiert, um Entwicklern ein praktisches Beispiel zu geben, welches auch andere relevante Themen wie die Abfrage der Berechtigung behandelt.

Unabhängige Berichterstattung unterstützen.

Unterstütze wirklich unabhängige und Fakten-basierte Berichterstattung zu Mozilla, welche nicht das Ziel hat, Schlagzeilen zu produzieren, sondern objektiv zu informieren.

Dieser Artikel wurde von Sören Hentzschel verfasst.

Sören Hentzschel ist Webentwickler aus Salzburg. Auf soeren-hentzschel.at informiert er umfassend über Neuigkeiten zu Mozilla. Außerdem ist er Betreiber von camp-firefox.de, der ersten Anlaufstelle im deutschsprachigen Raum für Firefox-Probleme aller Art. Weitere Projekte sind firefox.agenedia.com, firefoxosdevices.org sowie sozone.de.

Und jetzt du! Deine Meinung?

Erforderliche Felder sind mit einem Asterisk (*) gekennzeichnet. Die E-Mail-Adresse wird nicht veröffentlicht.
  1. Nach Absenden des Kommentar-Formulars erfolgt eine Verarbeitung der von Ihnen eingegebenen personenbezogenen Daten durch den datenschutzrechtlich Verantwortlichen zum Zweck der Bearbeitung Ihrer Anfrage auf Grundlage Ihrer durch das Absenden des Formulars erteilten Einwilligung.
    Weitere Informationen