← Homelab

Modell-Showdown: nomic-embed-text gegen bge-m3

Welches Modell die Bedeutung der Notizen in Zahlenfolgen übersetzt, entscheidet darüber, wie gut die Suche später trifft und welche Hardware der Stack braucht. Zwei Kandidaten standen zur Wahl: nomic-embed-text und bge-m3.

4 Min. Lesezeit
Modell-Showdown: nomic-embed-text gegen bge-m3
Inhalt · 8 Abschnitte
  1. Was ein Embedding-Modell macht
  2. Wie das Ergebnis in die Suche einfließt
  3. Ein Testaufbau mit echten Notizen
  4. Qualität: beide bestehen
  5. Geschwindigkeit: der GPU-Test täuscht
  6. Die Entscheidung
  7. Fazit
  8. Ausblick

Welches Modell die Bedeutung der Notizen in Zahlenfolgen übersetzt, entscheidet darüber, wie gut die Suche später trifft und welche Hardware der Stack braucht. Zwei Kandidaten standen zur Wahl: nomic-embed-text und bge-m3. Statt nach Bauchgefühl oder Beliebtheit zu entscheiden, habe ich beide mit echten Notizen aus dem Vault gemessen. Das Ergebnis hing überraschend stark davon ab, ob dabei eine Grafikkarte im Spiel war.

Was ein Embedding-Modell macht

Ein Embedding-Modell liest einen Text und übersetzt seine Bedeutung in eine lange Zahlenreihe. Bei nomic-embed-text sind es 768 Zahlen pro Text. Man kann sich diese Reihe wie Koordinaten auf einer Landkarte der Bedeutung vorstellen: Texte zu ähnlichen Themen landen dicht beieinander, Texte zu fernen Themen weit auseinander. Entscheidend ist, dass dabei nicht die Wörter zählen, sondern der Sinn. Eine Notiz über die "Sicherung auf dem NAS" und eine über das "Backup-Konzept für den Fileserver" teilen kaum ein Wort und liegen trotzdem nah beieinander. Eine klassische Stichwortsuche würde diese Verbindung verpassen.

Wie gut ein Modell diese Landkarte zeichnet, unterscheidet sich von Modell zu Modell. Genau das macht die Wahl wichtig: Das Modell bestimmt, was die Suche später überhaupt als ähnlich erkennen kann.

Wie das Ergebnis in die Suche einfließt

Das Modell kommt an zwei Stellen zum Einsatz. Beim Einlesen bekommt jede Notiz ihre Zahlenreihe und wird damit in der Datenbank gespeichert. Bei einer Suche wird die Anfrage vom selben Modell ebenfalls in eine Zahlenreihe übersetzt, und die Datenbank liefert die Notizen, deren Reihen am nächsten liegen. Das Maß dafür ist dieselbe Cosine-Similarity, die ich im Test genutzt habe: Werte nahe 1 bedeuten große inhaltliche Nähe, Werte nahe 0 kaum Verwandtschaft.

Daraus folgen zwei Konsequenzen. Erstens muss für Notizen und Anfragen dasselbe Modell verwendet werden, sonst sind die Landkarten nicht vergleichbar. Ein späterer Wechsel hieße, den gesamten Bestand neu zu berechnen. Zweitens zahlt die Qualität des Modells direkt auf die Trefferqualität ein, während seine Geschwindigkeit bestimmt, wie lange das Einlesen dauert. Beides floss in den Vergleich ein.

Ein Testaufbau mit echten Notizen

Beide Modelle liefen über Ollama, den Dienst aus dem Compose-Stack. Als Testmaterial dienten sechs echte Notizen: mehrere thematisch verwandte aus der Hardware-Dokumentation, dazu eine bewusst fernliegende Kontrollnotiz. Für die Qualität habe ich die Cosine-Similarity genutzt: Verwandte Notizen sollten hohe Werte erreichen, die Kontrollnotiz einen niedrigen.

Die Geschwindigkeit habe ich zweimal gemessen: einmal mit Grafikkarte, einmal in einem temporären Container ganz ohne. Der zweite Test war der wichtigere, denn die NUCs im Homelab haben keine Grafikkarte.

Qualität: beide bestehen

  • nomic-embed-text: 0,91 für die verwandten Notizen, 0,58 für die Kontrollnotiz.
  • bge-m3: 0,79 für die verwandten Notizen, 0,40 für die Kontrollnotiz. Der Abstand ist mit 0,39 etwas größer als bei nomic-embed-text (0,33), das Modell trennt also etwas schärfer.

Beide Modelle erkannten außerdem korrekt, dass die Einrichtungsnotiz für Home Assistant zur Hardware-Dokumentation des passenden Geräts gehört. Ein kleiner Qualitätsvorteil bei bge-m3, aber nichts, was den Ausschlag geben musste.

Geschwindigkeit: der GPU-Test täuscht

Mit Grafikkarte war bge-m3 das schnellere Modell: 0,61 Sekunden pro Notiz gegen 0,92 Sekunden bei nomic-embed-text. Hätte ich nur diesen Wert genommen, wäre die Wahl in die falsche Richtung gegangen. Ohne Grafikkarte kehrte sich das Bild um:

  • nomic-embed-text: 0,67 Sekunden pro Notiz.
  • bge-m3: 1,97 Sekunden pro Notiz, also fast das Dreifache.

Hochgerechnet auf die rund 1.740 Notizen der ersten Befüllung sind das etwa 20 Minuten gegenüber gut 57 Minuten. Dabei lief auch der Test ohne Grafikkarte auf einem stärkeren Prozessor als in den NUCs. Die Werte sind daher eine optimistische Untergrenze, auf der Zielhardware dürfte es eher länger dauern.

Die Entscheidung

Die Wahl fiel auf nomic-embed-text: fast dreimal schneller ohne Grafikkarte, deutlich kleiner (274 MB statt 1,2 GB) und mit nur einem geringen Qualitätsnachteil. bge-m3 bleibt als Option im Hintergrund, falls sich im Alltag zeigt, dass die Trennschärfe nicht ausreicht.

Fazit

Die Ausgangsfrage war, welches Modell besser ist. Die Antwort lautet: das, das in der Zielumgebung besser läuft. Ein Vergleich auf der falschen Hardware hätte hier das falsche Modell gekürt.

Ausblick

Mit dem Modell steht die Grundlage. Im nächsten Teil wird daraus die erste befüllte Datenbank, in der jede Notiz ihre Zahlenreihe bekommt, samt einem Stolperstein, der auf einer unscheinbaren Netzwerkfreigabe wartete. Ob die Modellwahl auch im Alltag trägt oder bge-m3 doch noch zum Zug kommt, zeigt sich in den späteren Teilen mit der praktischen Nutzung.

Porträt Moritz Conjé

Geschrieben von

Moritz Conjé

Senior Projektmanager & Konzepter für Verwaltungsdigitalisierung

Projektmanager bei Dataport AöR, zertifiziert nach PRINCE2 Agile und IPMA Level D. Ich führe Teams zwischen Fachbereich, Management und IT und ordne Technik für Entscheidungen ein.

Meine Rolle in dieser Serie: Konzeption, Planung, Steuerung und Abnahme – die technische Umsetzung erfolgt KI-gestützt.

Beitrag teilen
LinkedIn Xing

Weiterlesen

Mehr aus der Serie Vector Search

Alle 14 Teile

Remote Claude nutzt LiteLLM

Remote Claude nutzt LiteLLM

Im Beitrag über das Gateway habe ich einen zentralen Zugang gebaut, über den KI-Werkzeuge die Suche und das Regelwerk meines Second Brains erreichen. Zwei Wochen später fiel mir auf, dass ihn noch niemand benutzte. Den Anstoß gab etwas ganz anderes: ...
Eine eigene Statuszeile fürs Terminal: mehr Überblick bei der Arbeit mit Claude Code

Eine eigene Statuszeile fürs Terminal: mehr Überblick bei der Arbeit mit Claude Code

Wer täglich mit einer KI im Terminal arbeitet, kennt das Problem: Wie ausgelastet die laufende Sitzung gerade ist, wie nah man an ein Nutzungslimit kommt oder was sie bereits gekostet hat, bleibt normalerweise unsichtbar. Man merkt es meist erst, wen ...
Fähigkeiten ergänzen: passende Skills für die Rollen und Aufgaben finden

Fähigkeiten ergänzen: passende Skills für die Rollen und Aufgaben finden

Ein KI-Assistent kann schon ohne Erweiterungen erstaunlich viel. Für ein konkretes Projekt reicht „erstaunlich viel" aber selten als Arbeitsweise. Beim Aufbau des Second Brain kamen zuletzt drei sehr unterschiedliche, eigenständige Projekte zusammen: ...