Was sind Einbettungen? Vektoren und Kosinusähnlichkeit einfach erklärt

  1. Startseite
  2. Blog
  3. Künstliche Intelligenz

Künstliche Intelligenz

Was sind Einbettungen? Vektoren und Kosinusähnlichkeit einfach erklärt

Durch Einbettungen können Computer die Bedeutung vergleichen, anstatt genaue Wörter zuzuordnen. Sie unterstützen die semantische Suche, Empfehlungen und RAG. Erfahren Sie, was sie sind, wie Ähnlichkeit gemessen wird und wo sie Sie im Stich lassen.

8 Min. Lesezeit
Was sind Einbettungen? Vektoren und Kosinusähnlichkeit einfach erklärt

Das Wichtigste

  • Eine Einbettung ist eine Liste von Zahlen, die die Bedeutung von Text, einem Bild oder anderen Daten darstellt.
  • Ähnliche Elemente haben am Ende ähnliche Zahlen, sodass ihre Bedeutung mit der Mathematik verglichen werden kann.
  • Kosinus-Ähnlichkeit vergleicht die Richtung und ist eine gängige Methode, um zu bewerten, wie ähnlich zwei Einbettungen sind.
  • Vergleichen Sie nur Einbettungen aus demselben Modell und testen Sie die Ergebnisse anhand Ihrer eigenen Daten.

Suchen Sie nach „Wie bekomme ich mein Geld zurück?“ und ein gutes System sollte eine Seite mit dem Titel „Rückerstattungsrichtlinie“ finden, auch wenn die beiden keine wichtigen Wörter gemeinsam haben. Diese Fähigkeit kommt von Einbettungen, einer der nützlichsten Ideen in der modernen KI.

Dieser Leitfaden erklärt Einbettungen ohne schwere Mathematik. Wir haben ein kleines Beispiel in Python 3.13 ausgeführt und die Ausgabe ist unten dargestellt. Die darin enthaltenen Vektoren sind diejenigen, die wir von Hand erstellt haben, mit jeweils nur drei Zahlen, um die Idee leicht erkennbar zu machen. Echte Einbettungen stammen aus einem trainierten Modell und haben oft Hunderte oder Tausende von Zahlen.

Was ist eine Einbettung?

Eine Einbettung ist eine Darstellung von etwas als Liste von Zahlen, die als Vektor bezeichnet wird. Ein Modell wird so trainiert, dass Elemente mit verwandten Bedeutungen nahe beieinander liegende Vektoren erhalten.

"kitten"  -> [0.9, 0.8, 0.1]
"cat"     -> [0.9, 0.7, 0.2]
"invoice" -> [0.0, 0.1, 0.9]

Sobald der Text in dieser Form vorliegt, kann ein Computer berechnen, wie ähnlich zwei Textteile sind, was mit Wörtern nicht direkt möglich ist. Auch Einbettungen sind nicht auf Wörter beschränkt. Sätze, ganze Dokumente, Bilder, Audio und Produkte können eingebettet werden.

Warum nicht einfach Keywords abgleichen?

Abfrage und Dokument Stichwortsuche Einbettungssuche
„Geld zurück“ und „Rückerstattungsrichtlinie“ Vermisst es, keine gemeinsamen Worte Kann es finden
„Laptop“ und „Notebook“ Vermisst es Kann es finden
„Fehler E1042“ und eine Seite mit „E1042“ Findet es genau Kann es vermissen
„Bank“ (Fluss) und „Bank“ (Geld) Behandelt sie gleich Kann sie je nach Kontext trennen

Unser Leitfaden zu RAG zeigt dies in der Praxis. Eine einfache Suche nach Wörtern ergab für die Frage „Wann kann ich mein Geld zurückbekommen?“ null Treffer. gegen ein Rückerstattungsdokument, da sie keine Worte austauschten. Beachten Sie auch die dritte Zeile: Genaue Bezeichner sind eine Schwäche von Einbettungen, sodass die Suche nach Schlüsselwörtern immer noch ihren Platz hat.

Denken Sie an eine Karte

Stellen Sie sich vor, Sie platzieren jedes Wort auf einer riesigen Karte, auf der der Ort die Bedeutung widerspiegelt. „Katze“ und „Kätzchen“ sitzen fast nebeneinander, „Hund“ ist in der gleichen Nachbarschaft und „Rechnung“ ist in einer anderen Stadt. Um verwandte Wörter zu finden, schauen Sie einfach in der Nähe nach.

Eine echte Einbettung funktioniert auf die gleiche Weise, außer dass die Karte Hunderte statt zwei Dimensionen hat. Die Leute können sich das nicht vorstellen, aber die Rechnung funktioniert trotzdem. Einzelne Zahlen haben im Allgemeinen keine klare Bedeutung, wie zum Beispiel „Felligkeit“. Entscheidend ist die Gesamtposition.

Ein kleines Arbeitsbeispiel

So vergleichen Sie unsere handgefertigten Vektoren:

import math

def cosine(a, b):
    dot = sum(x * y for x, y in zip(a, b))
    return dot / (math.sqrt(sum(x * x for x in a)) *
                  math.sqrt(sum(y * y for y in b)))

vectors = {
    "kitten":  [0.9, 0.8, 0.1],
    "cat":     [0.9, 0.7, 0.2],
    "dog":     [0.8, 0.3, 0.2],
    "invoice": [0.0, 0.1, 0.9],
}

for word in ("kitten", "dog", "invoice"):
    print(word, round(cosine(vectors["cat"], vectors[word]), 3))

# kitten 0.994
# dog 0.955
# invoice 0.238

Gegen „Katze“ erzielt „Kätzchen“ die höchste Punktzahl, „Hund“ folgt als nächstes und „Rechnung“ deutlich schlechter. Wir haben diese Vektoren ausgewählt, um dieses Muster zu erzeugen, daher beweist die Rangfolge nichts über die tatsächliche Sprache. Es zeigt nur, wie sich die Berechnung verhält. Eine semantische Suche erledigt das Gleiche in drei Schritten: Einbetten der Abfrage, Bewerten für jedes gespeicherte Element und Sortieren.

query = [0.85, 0.75, 0.15]
sorted(vectors, key=lambda w: cosine(query, vectors[w]), reverse=True)

# ['kitten', 'cat', 'dog', 'invoice']

Kosinusähnlichkeit erklärt

Man kann sich jeden Vektor als einen vom Ursprung ausgehenden Pfeil vorstellen. Die Kosinusähnlichkeit misst den Winkel zwischen zwei Pfeilen und ignoriert dabei deren Länge. Wir haben die Schlüsselwerte bestätigt:

cosine([1, 2, 3], [2, 4, 6])   # 1.0   same direction
cosine([1, 0], [0, 1])         # 0.0   unrelated (at right angles)
cosine([1, 0], [-1, 0])        # -1.0  opposite directions
Punktzahl Bedeutung
In der Nähe von 1 Zeigen Sie fast in die gleiche Richtung, also sehr ähnlich
Nahezu 0 Ohne Zusammenhang
Nahe bei -1 Zeigen Sie in entgegengesetzte Richtungen

Schauen Sie sich die erste Zeile an. [2, 4, 6] ist doppelt so lang wie [1, 2, 3], dennoch ist die Punktzahl perfekt 1,0, da nur die Richtung zählt. Das ist nützlich für Text, bei dem die Länge eher Dinge wie die Dokumentgröße als die Bedeutung widerspiegeln kann. Seien Sie auch bei Schwellenwerten vorsichtig. Es gibt keinen universellen Wert, der „ähnlich“ bedeutet, da die nützlichen Bereiche von Modell zu Modell unterschiedlich sind. Testen Sie sie daher anhand Ihrer eigenen Daten.

Andere Distanzmaße

Messen Was es sieht Notizen
Kosinusähnlichkeit Nur Winkel Ein gängiger Standardwert für Text
Punktprodukt Winkel und Länge Schnell und entspricht dem Kosinus auf normalisierten Vektoren
Euklidischer Abstand Gerader Abstand Kleiner bedeutet ähnlicher

Der Unterschied ist leicht zu erkennen. Dieselben zwei Vektoren mit einem Kosinuswert von 1,0 haben einen euklidischen Abstand von 3,742, da einer länger als der andere ist. Viele Systeme normalisieren Vektoren und skalieren jeden auf eine Länge von 1. Danach liefern Skalarprodukt und Kosinus das gleiche Ergebnis, und wir haben dies bestätigt: Beide ergaben 0,955 für „Katze“ und „Hund“. Sehen Sie in der Dokumentation Ihres Modells nach, welche Maßnahme empfohlen wird.

Wie Einbettungen gelernt werden

In realen Systemen ordnet niemand diese Nummern von Hand zu. Ein neuronales Netzwerk lernt sie beim Training. Eine frühe und einflussreiche Idee ist, dass Wörter, die in ähnlichen Kontexten vorkommen, tendenziell eine ähnliche Bedeutung haben, wie zum Beispiel „Ich habe meine Katze gefüttert“ und „Ich habe meinen Hund gefüttert“. Modelle wie Word2Vec und GloVe lernten Wortvektoren aus diesen Mustern.

Später machten transformatorbasierte Modelle wie BERT Einbettungen kontextsensitiv, sodass „Bank“ einen anderen Vektor in „Flussufer“ und „Bankdarlehen“ erhalten konnte. Viele moderne Modelle betten ganze Sätze oder Passagen auf einmal ein. Unser Leitfaden zu großen Sprachmodellen erklärt, wie Transformatoren mit Kontext umgehen.

Wo Einbettungen verwendet werden

Benutzen Wie es hilft
Semantische Suche Findet Ergebnisse anhand der Bedeutung und nicht anhand exakter Wörter
RAG Ruft relevante Passagen für ein Sprachmodell ab
Empfehlungen Schlägt Artikel vor, die denen ähneln, die Ihnen gefallen haben
Clustering Gruppen unterstützen Tickets oder Rezensionen nach Thema
Duplikaterkennung Erkennt ähnliche Fragen oder Einträge
Klassifizierung Bietet Funktionen für einfache Modelle
Anomalieerkennung Markiert Elemente, die weit entfernt von allem anderen sind

In unserem Beispiel wurde eine Abfrage mit jedem Artikel verglichen, was als exakte Suche bezeichnet wird. Das funktioniert bei Tausenden von Artikeln gut, bei vielen Millionen wird es jedoch langsam. Approximate Nearest Neighbour (ANN)-Indizes wie HNSW lösen dieses Problem. Sie finden schnell sehr enge Übereinstimmungen, indem sie eine kleine Chance aufgeben, die absolut beste Übereinstimmung zu verpassen.

Vektordatenbanken und Erweiterungen wie pgvector für PostgreSQL stellen diese Indizes zusammen mit Filterung und Speicherung bereit. Unser Vektordatenbank-Leitfaden behandelt die Optionen. Für ein kleines Projekt benötigen Sie möglicherweise überhaupt keines, und eine In-Memory-Suche ist ein absolut guter Anfang.

Tipp: Erwägen Sie frühzeitig die Hybridsuche. Die Kombination der Einbettungsähnlichkeit mit dem Keyword-Matching führt häufig zu besseren Ergebnissen als beides allein, insbesondere wenn Benutzer nach Produktcodes, Namen oder Fehlermeldungen suchen.

Auswahl eines Einbettungsmodells

  • Sprache. Wenn Ihre Inhalte beispielsweise auf Hindi oder Tamil vorliegen, prüfen Sie, ob das Modell damit gut zurechtkommt.
  • Domäne. Allgemeine Modelle können mit juristischen oder medizinischen Fachbegriffen Schwierigkeiten haben.
  • Abmessungen. Mit mehr Dimensionen können mehr Details erfasst werden, sie kosten jedoch mehr Speicherplatz und Arbeitsspeicher.
  • Kosten und Hosting. Vergleichen Sie eine gehostete API mit einem offenen Modell, das Sie selbst ausführen können, insbesondere für private Daten.
  • Eingabelänge. Modelle haben eine Grenze, daher müssen lange Dokumente zuerst in Blöcke aufgeteilt werden.

Der beste Test sind Ihre eigenen Daten. Sammeln Sie etwa 20 echte Anfragen zusammen mit den Dokumenten, die sie finden sollten, und vergleichen Sie, wie jedes Modell sie einordnet. Veröffentlichte Benchmarks spiegeln möglicherweise nicht Ihren Inhalt wider.

Einschränkungen

  • Modell-Lock-in. Vektoren aus verschiedenen Modellen können nicht verglichen werden. Wenn Sie Modelle ändern, müssen Sie alles neu einbetten.
  • Genaue Begriffe. IDs, Codes und seltene Namen werden möglicherweise nicht zuverlässig zugeordnet.
  • Verneinung. „Rückerstattungen zulässig“ und „Rückerstattungen nicht zulässig“ können nahe beieinander liegen, obwohl sie gegensätzliche Bedeutungen haben.
  • Ähnlich bedeutet nicht richtig. Eine enge Übereinstimmung kann veraltet oder einfach falsch sein.
  • Voreingenommenheit. Einbettungen können Stereotypen aus ihren Trainingsdaten absorbieren.
  • Kosinus ist keine Magie. Forscher haben in Frage gestellt, wie aussagekräftig er bei einigen erlernten Einbettungen ist. Behandeln Sie Scores daher als nützliches Signal und nicht als Maß für die Wahrheit.

Häufige Fehler

  • Modelle mischen. Betten Sie Abfragen und Dokumente mit demselben Modell und derselben Version ein.
  • Überall einen Ähnlichkeitsschwellenwert verwenden. Passen Sie ihn für jedes Modell und jede Aufgabe an.
  • Einbetten großer Dokumente als Ganzes. Die Bedeutung wird verwässert, also teilen Sie sie zuerst in Stücke.
  • Auswertung überspringen. Ohne Testabfragen können Sie nicht sagen, ob eine Änderung geholfen hat.
  • Einbettungen für alles verwenden. Wenn Benutzer nach genauen IDs suchen, ist ein normaler Datenbankindex besser.

Fazit

Eine Einbettung wandelt Bedeutung in Zahlen um, sodass Software Ideen statt Zeichenfolgen vergleichen kann. Das Konzept ist einfach, während die praktische Arbeit darin besteht, ein Modell auszuwählen, Daten aufzuteilen und anhand realer Abfragen zu testen. Um es selbst auszuprobieren, betten Sie ein paar Dutzend Ihrer eigenen Dokumente mit einem beliebigen Einbettungsmodell ein, durchsuchen Sie sie mit echten Fragen und sehen Sie, welche Ergebnisse Sie überraschen.

Häufige Fragen

Was sind Einbettungen in einfachen Worten?

Einbettungen sind Listen von Zahlen, die eine Bedeutung darstellen. Gegenstände mit ähnlicher Bedeutung erhalten ähnliche Zahlen, sodass ein Computer sie mathematisch vergleichen kann.

Was ist Kosinusähnlichkeit?

Es misst den Winkel zwischen zwei Vektoren im Bereich von -1 bis 1. Ein Wert nahe 1 bedeutet, dass sie nahezu in die gleiche Richtung zeigen, was auf einen ähnlichen Inhalt schließen lässt.

Was ist der Unterschied zwischen Einbettungen und Token?

Ein Token ist ein Textblock, den ein Modell verarbeitet. Eine Einbettung ist ein numerischer Vektor, der die Bedeutung eines Tokens, Satzes oder Dokuments darstellt.

Wie viele Dimensionen sollte eine Einbettung haben?

Dies hängt vom Modell ab und liegt häufig bei Hunderten bis einigen Tausend. Mehr kann mehr Details erfassen, kostet aber mehr Speicherplatz. Testen Sie also, was Ihr Anwendungsfall benötigt.

Benötige ich eine Vektordatenbank, um Einbettungen zu verwenden?

Nein. Kleine Sammlungen können im Speicher durchsucht werden. Vektordatenbanken werden bei größeren Sammlungen, häufigen Aktualisierungen oder Filteranforderungen nützlich.

Lerne weiter

Arbeiten Sie mit Stack Quora

Benötigen Sie Hilfe beim Testen, WordPress oder SEO?

Wir helfen Teams, bessere Software zu liefern und ihre Websites zu erweitern. Sagen Sie uns, woran Sie gerade arbeiten, und wir schlagen Ihnen einen klaren nächsten Schritt vor.

Lesen Sie weiter

Weitere Anleitungen finden Sie unter Tests, KI und moderne Entwicklung

Hat Ihnen dieser Artikel gefallen? Wählen Sie ein Thema und springen Sie direkt in unsere neuesten Tutorials.

Künstliche Intelligenz

KI-Halluzinationen erklärt: Warum Sprachmodelle Dinge erfinden und wie man sie reduziert

KI-Halluzinationen erklärt: Was sie sind, warum Sprachmodelle sie produzieren, gängige Typen, wie man sie mit Erdung und Eingabeaufforderungen reduz…

Artikel lesen →
DevOps

Erklärte Umgebungsvariablen: .env-Dateien, Geheimnisse und Konfiguration richtig gemacht

Umgebungsvariablen anhand von Python-Beispielen erklärt, die wir ausgeführt haben: Sie lesen und festlegen, warum jeder Wert ein String ist, .env-Da…

Artikel lesen →
Softwareentwicklung

API-Ratenbegrenzung erklärt: Algorithmen, Header und Behandlung von 429-Fehlern

API-Ratenbegrenzung anhand einer von uns durchgeführten Simulation erklärt: Token-Bucket, festes Fenster, gleitendes Fenster, 429 Antworten, Ratenbe…

Artikel lesen →
Testautomatisierung

Spott in Python: unittest.mock, Patch und die Fehler, die Tests zum Lügen machen

Mocking in Python mit unittest.mock, getestet: Mock und return_value, side_effect, Patchen, wo ein Name verwendet wird, Spezifikation und Autospec, …

Artikel lesen →
Softwaretests

Code-Abdeckung erklärt: Leitungs- und Zweigstellenabdeckung und was 100 % wirklich bedeutet

Erklärung der Codeabdeckung anhand eines echten Coverage.py-Laufs: Zeilen-, Zweig- und Bedingungsabdeckung, Lesen eines Berichts, warum bei 100 % Ab…

Artikel lesen →
Datenbanken & SQL

DELETE vs. TRUNCATE vs. DROP in SQL: Unterschiede, Rollback und Verwendungszweck

DELETE vs. TRUNCATE vs. DROP erklärt mit getestetem SQL: was jeweils entfernt wird, Rollback, Trigger, Identitätsrücksetzung, Geschwindigkeit und wi…

Artikel lesen →
Datenbanken & SQL

Erklärte SQL-Ansichten: Erstellen, nutzen und vermeiden Sie Fallstricke mit Beispielen

SQL-Ansichten anhand der von uns ausgeführten Abfragen erklärt: Erstellen einer Ansicht, Live-Ergebnisse, Ausblenden von Spalten, Leistung, aktualis…

Artikel lesen →
Softwareentwicklung

TypeScript-Schnittstelle vs. Typ: Echte Unterschiede, getestet mit dem Compiler

TypeScript-Schnittstelle vs. Typ, überprüft mit dem echten Compiler: Was beide können, was nur einer kann, Deklarationszusammenführung, Erweiterunge…

Artikel lesen →
Softwareentwicklung

Python *args und **kwargs erklärt: Flexible Funktionen mit klaren Beispielen

Python *args und **kwargs erklärt mit Code, den wir ausgeführt haben: Packen und Entpacken, Parameterreihenfolge, Nur-Schlüsselwort- und Nur-Positio…

Artikel lesen →
Softwareentwicklung

Python-Lambda-Funktionen: Syntax, tatsächliche Verwendung und wann man sie nicht verwendet

Python-Lambda-Funktionen erklärt mit Code, den wir ausgeführt haben: Syntax, Sortierung mit Schlüssel, Karte und Filter, Abschlüsse, die Late-Bindin…

Artikel lesen →
Künstliche Intelligenz

Was sind KI-Agenten? Wie sie funktionieren, mit einer einfachen Agentenschleife, die Sie ausführen können

Was sind KI-Agenten? Eine einfache Anleitung zur Agentenschleife, zu Tools, Speicher und Leitplanken, mit einer kleinen Python-Schleife, die wir aus…

Artikel lesen →
DevOps

Überwachung vs. Beobachtbarkeit: Der wahre Unterschied, mit Protokollen, Metriken und Traces

Überwachung vs. Beobachtbarkeit erklärt: bekannte und unbekannte Fehler, Protokolle, Metriken und Spuren, eine exemplarische Vorgehensweise für Chec…

Artikel lesen →
DevOps

Docker-Volumes vs. Bind Mounts: Containerdaten auf die richtige Art und Weise beibehalten

Docker-Volumes vs. Bind-Mounts erklärt: Warum Containerdaten verschwinden, benannte Volumes, Bind-Mounts, tmpfs, Compose-Beispiele, Backups, Berecht…

Artikel lesen →
Testautomatisierung

TDD vs. BDD: Hauptunterschiede, eine Funktion, die auf beide Arten entwickelt wurde und wann sie jeweils verwendet werden sollte

TDD vs. BDD erklärt mit einer Rabattfunktion, die in beide Richtungen aufgebaut ist: Rot-Grün-Refaktor mit Code, den wir ausgeführt haben, Gegeben-W…

Artikel lesen →
Softwaretests

Benutzerakzeptanztests (UAT): Prozess, Checkliste und reale Beispiele

Benutzerakzeptanztests erklärt: Wer führt ihn durch, wie unterscheidet er sich von der Qualitätssicherung, ein siebenstufiger Prozess, eine UAT-Test…

Artikel lesen →
Datenbanken & SQL

Erklärte SQL-NULL-Werte: IS NULL, COALESCE, NULLIF und die zu vermeidenden Fallen

SQL-NULL-Werte, die mit von uns ausgeführten Abfragen erklärt wurden: dreiwertige Logik, IS NULL, COALESCE, NULLIF, wie Aggregate, Joins und Sortier…

Artikel lesen →
Datenbanken & SQL

SQL CASE WHEN-Anweisung: Syntax, reale Beispiele und häufige Fehler

SQL CASE WHEN anhand der von uns ausgeführten Abfragen erklärt: einfache und durchsuchte Formulare, Bedingungsreihenfolge, Pivots mit SUM, COUNT-Tri…

Artikel lesen →
Softwareentwicklung

Was ist JWT? JSON-Web-Tokens anhand eines funktionierenden Beispiels erklärt

Was ist JWT? JSON Web Tokens erklärt: die drei Teile, ein Token, das in dem von uns ausgeführten Code erstellt und manipuliert wurde, JWT vs. Sitzun…

Artikel lesen →
Softwareentwicklung

Erklärte JavaScript-Ereignisschleife: Aufrufstapel, Mikrotasks und Timer mit Beispielen

Die JavaScript-Ereignisschleife wurde mit dem von uns ausgeführten Code erklärt: Aufrufstapel, Aufgaben- und Mikrotask-Warteschlangen, warum setTime…

Artikel lesen →
Softwareentwicklung

Erklärung von Python-Generatoren und -Ertrag: Sparen Sie Speicher mit echten Beispielen

Python-Generatoren und Yield anhand des von uns ausgeführten Codes erklärt: wie sie angehalten und fortgesetzt werden, gemessene Speichereinsparunge…

Artikel lesen →
Künstliche Intelligenz

Was sind Einbettungen? Vektoren und Kosinusähnlichkeit einfach erklärt

Was sind Einbettungen? Ein Leitfaden in einfacher Sprache zu Vektoren, Kosinusähnlichkeit und semantischer Suche, mit einem kleinen Beispiel, das wi…

Artikel lesen →
DevOps

Blau-Grün vs. Canary-Bereitstellung: Unterschiede, Kompromisse und Auswahl

Blue-Green vs. Canary-Bereitstellung erklärt: Funktionsweise, Kosten, Risiko und Rollback, stabiles Benutzer-Bucketing, das wir getestet haben, Date…

Artikel lesen →
Testautomatisierung

Flaky-Tests: Was sie verursacht und wie man sie endgültig behebt

Flaky-Tests wurden anhand von Demos erklärt, die wir durchgeführt haben: die Hauptursachen, wie man sie bestätigt und diagnostiziert, richtige Korre…

Artikel lesen →
Softwaretests

Lasttest vs. Stresstest: Unterschiede, Metriken und k6-Beispiele

Erläuterungen zu Lasttests und Stresstests: Was die einzelnen Tests beweisen, Spike- und Soak-Tests, welche Kennzahlen wichtig sind, warum Durchschn…

Artikel lesen →
Softwaretests

Testfall vs. Testszenario: Hauptunterschiede, Beispiele und wann man sie jeweils verwendet

Testfall vs. Testszenario erklärt: klare Definitionen, eine Tabelle nebeneinander, eine Funktion zum Zurücksetzen von Passwörtern, die von Szenarios…

Artikel lesen →
Datenbanken & SQL

SQL-Abfrageoptimierung: Ausführungspläne lesen und langsame Abfragen mit Zeitvorgaben beheben

An einer Million Zeilen getestete SQL-Abfrageoptimierung: Ausführungspläne lesen, die richtigen Indizes hinzufügen, nicht sargierbare Filter korrigi…

Artikel lesen →
Datenbanken & SQL

SQL UNION vs. UNION ALL: Unterschiede, Beispiele und getestete Leistung

SQL UNION vs. UNION ALL anhand der von uns ausgeführten Abfragen erklärt: Duplikate, die Regeln, denen beide folgen, ein echter Datenfehler, gemesse…

Artikel lesen →
Softwareentwicklung

Tutorial zur JavaScript-Abruf-API: GET, POST, Fehlerbehandlung und Zeitüberschreitungen

Ein JavaScript-Abruf-API-Tutorial, das auf einem lokalen Server getestet wurde: GET und POST, warum 404 nicht ausgelöst wird, ein wiederverwendbarer…

Artikel lesen →
Softwareentwicklung

Umgang mit Python-Dateien: Lesen, Schreiben, CSV, JSON und Pathlib mit Beispielen

Die Handhabung von Python-Dateien wird anhand des von uns ausgeführten Codes erklärt: Öffnungsmodi, Lesen großer Dateien, CSV, JSON, Pathlib, Binärd…

Artikel lesen →
Softwareentwicklung

Python-Klassen und -Objekte: OOP-Tutorial mit echten Beispielen

Python-Klassen und -Objekte erklärt mit Code, den wir ausgeführt haben: __init__, Methoden, Klassen- und Instanzattribute, Vererbung, Eigenschaften,…

Artikel lesen →
Künstliche Intelligenz

Was ist ein großes Sprachmodell? Wie LLMs funktionieren, ohne großen Hype erklärt

Was ist ein großes Sprachmodell? LLMs im Klartext erklärt: Token, Einbettungen, Aufmerksamkeit, Training, Temperatur- und Kontextfenster, eine klein…

Artikel lesen →
DevOps

Linux-Befehle für Anfänger: Der grundlegende Terminal-Leitfaden mit Beispielen

Linux-Befehle für Anfänger, gruppiert nach Aufgaben: Navigation, Dateien, Anzeigen von Protokollen, Grep, Pipes, Berechtigungen, Prozesse und Archiv…

Artikel lesen →
Testautomatisierung

Selenium vs. Playwright: Hauptunterschiede, Code im Vergleich und welche Sie wählen sollten

Selenium vs. Playwright im Vergleich: Architektur, Wartezeit, Browser- und Sprachunterstützung, Debugging, der gleiche Test in beiden Tools, Migrati…

Artikel lesen →
Softwaretests

Äquivalenzpartitionierung: Testdesigntechnik anhand von Beispielen erklärt

Erklärung der Äquivalenzpartitionierung: Wie man gültige und ungültige Partitionen findet, Beispiele für Alter, Passwörter und Gutscheine, von uns d…

Artikel lesen →
Softwaretests

Schweregrad vs. Priorität beim Softwaretest: Unterschiede, Matrix und reale Beispiele

Schweregrad vs. Priorität beim Softwaretest erklärt: klare Definitionen, eine Vier-Wege-Matrix mit Beispielen, Stufenskalen, wer die einzelnen Punkt…

Artikel lesen →
Datenbanken & SQL

Tutorial zu SQL-Unterabfragen: Typen, korrelierte Unterabfragen und EXISTS mit Beispielen

Ein SQL-Unterabfrage-Tutorial mit Abfragen, die wir ausgeführt haben: Skalar-, IN-, FROM- und SELECT-Unterabfragen, korrelierte Unterabfragen, EXIST…

Artikel lesen →
Datenbanken & SQL

SQL-Transaktionen und ACID erklärt: COMMIT, ROLLBACK und Isolationsstufen

SQL-Transaktionen und ACID anhand einer von uns durchgeführten Banküberweisung erklärt: COMMIT, ROLLBACK, Sicherungspunkte, Sperren, Isolationsstufe…

Artikel lesen →
Softwareentwicklung

Git merge vs rebase: Unterschiede, Beispiele und wann man was nutzt

Git merge vs rebase erklärt mit echter Log-Ausgabe, einer Vergleichstabelle, der goldenen Regel des Rebase und einem sicheren Team-Workflow.

Artikel lesen →
Softwareentwicklung

Python List Comprehension: Syntax, Beispiele und wann man darauf verzichtet

Python List Comprehension erklärt: Syntax, Filter, if-else, verschachtelte Schleifen, gemessene Zeiten und Fälle, in denen eine normale for-Schleife…

Artikel lesen →
Datenbanken & SQL

SQL Joins erklärt mit Beispielen (Inner, Left, Right, Full)

SQL Joins Schritt für Schritt mit Beispieltabellen und Abfragen verstehen: INNER, LEFT, RIGHT, FULL, CROSS und SELF, plus typische Fehler und Perfor…

Artikel lesen →