<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>KI Magazin</title>
	<atom:link href="https://www.kimagazin.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.kimagazin.com</link>
	<description>KI im Unternehmen die funktioniert.</description>
	<lastBuildDate>Fri, 10 Apr 2026 21:16:01 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://www.kimagazin.com/wp-content/uploads/2026/03/cropped-favicon-32x32.png</url>
	<title>KI Magazin</title>
	<link>https://www.kimagazin.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Mythos Preview: Eine KI, die Sicherheitslücken findet und angreift</title>
		<link>https://www.kimagazin.com/mythos-preview/</link>
		
		<dc:creator><![CDATA[Oskar Kohler]]></dc:creator>
		<pubDate>Fri, 10 Apr 2026 21:14:50 +0000</pubDate>
				<category><![CDATA[Security]]></category>
		<guid isPermaLink="false">https://www.kimagazin.com/?p=3019</guid>

					<description><![CDATA[Mythos Preview: Ein neues allgemeines Modell von Anthropic (Codename Mythos) könnte die Computersicherheit grundlegend verändern Mit dem Preview&#8230;]]></description>
										<content:encoded><![CDATA[
<h2 id="mythos-preview-ein-neues-allgemeines-modell-von-anthropic-codename-mythos-koennte-die-computersicherheit-grundlegend-veraendern" class="wp-block-heading">Mythos Preview: Ein neues allgemeines Modell von Anthropic (Codename Mythos) könnte die Computersicherheit grundlegend verändern</h2>



<p>Mit dem Preview von <em>Mythos</em> beschreibt <em>Anthropic</em> einen möglichen Wendepunkt in der Cybersicherheit.<br>Das Forschungsmodell erkennt gefährliche Sicherheitslücken in bestehender Software – oft schneller und in komplexeren Zusammenhängen als menschliche Analysten.</p>



<p>Dabei ist <em>Mythos</em> kein klassisches Security-Tool. Es wurde nicht gezielt für Exploit-Entwicklung oder Schwachstellensuche trainiert.<br>Vielmehr handelt es sich um eine Weiterentwicklung eines Large Language Models – optimiert für Code, Reasoning und Autonomie.</p>



<p>Aus dieser Skalierung heraus entstehen neue Fähigkeiten – durch ein Phänomen, das als <strong>Emergence</strong> bezeichnet wird:</p>



<ul class="wp-block-list">
<li>Analyse von Binärcode auch ohne Sourcecode</li>



<li>Erkennung klassischer Schwachstellen</li>



<li>Generierung und iterative Verfeinerung von Exploit-Strategien</li>
</ul>



<p><strong>Emergence</strong> beschreibt, dass ein Modell durch Größe und Training plötzlich Fähigkeiten zeigt, die nicht explizit antrainiert wurden – etwa die Fähigkeit zur Exploit-Analyse.</p>



<p>Das Resultat:<br>Ein allgemeines LLM ist plötzlich in der Lage, sicherheitskritische Softwareprobleme nicht nur zu erkennen, sondern auch praktisch auszunutzen.</p>



<p>Entscheidend ist jedoch, dass diese Fähigkeiten erst durch strukturierte Systeme, Tool-Nutzung und iterative Prozesse praktisch nutzbar werden.</p>



<p><em>Anthropic</em> selbst spricht dabei von einem möglichen <strong>Wendepunkt (&#8222;watershed moment&#8220;) für die Cybersicherheit</strong>.</p>



<h2 id="zwischen-automatisierung-und-realitaet" class="wp-block-heading">Zwischen Automatisierung und Realität</h2>



<p>Wichtig ist jedoch die Einordnung: <em>Mythos</em> ist (noch) kein magisches One-Click-Tool.</p>



<ul class="wp-block-list">
<li>Nicht jede gefundene Schwachstelle ist tatsächlich ausnutzbar</li>



<li>False Positives kommen vor</li>



<li>Exploits funktionieren nicht immer stabil oder reproduzierbar</li>



<li>In vielen Fällen zeigt das System erfolgreiche Ergebnisse, aber nicht 100 %</li>
</ul>



<p>Ein gefundener Bug ist nicht automatisch ein funktionierender Exploit.<br>Erst durch zusätzliche Schritte wie Informationsextraktion, Kontrolle des Programmflusses und Kombination mehrerer Schwachstellen entsteht ein tatsächlicher Angriff.</p>



<p>Das System arbeitet iterativ:</p>



<ul class="wp-block-list">
<li>Hypothesen werden gebildet</li>



<li>getestet und angepasst</li>



<li>Ergebnisse werden weiter verfeinert</li>
</ul>



<p>Dabei nutzt <em>Mythos</em> sogenannte <em>Scaffolds</em> – strukturierte Umgebungen zur Problemlösung – und kombiniert eigene Analyse mit klassischen Tools wie Debuggern oder Disassemblern.</p>



<p>Im einfachsten Fall kann ein Benutzer eine Anfrage stellen wie:<br>&#8222;Finde Sicherheitsfehler in dieser Software.&#8220;</p>



<p>Unter der Oberfläche läuft jedoch ein komplexer, mehrstufiger Analyseprozess ab, der eher einem automatisierten Security-Research-Workflow entspricht als einem simplen Scan.</p>



<p>Die Tests fanden dabei ausschließlich in kontrollierten, isolierten Umgebungen statt:</p>



<ul class="wp-block-list">
<li>kein frei zugängliches System</li>



<li>keine autonome Interaktion mit realen Zielsystemen</li>
</ul>



<h2 id="alte-schwachstellen-neue-geschwindigkeit" class="wp-block-heading">Alte Schwachstellen, neue Geschwindigkeit</h2>



<p>In internen Tests identifizierte das Modell Sicherheitslücken in realer, produktiver Software – darunter Betriebssysteme, Browser und Anwendungen.</p>



<p>Dabei zeigt sich ein entscheidender Unterschied:</p>



<p>Nicht nur die Schwachstelle selbst wird gefunden, sondern auch der passende Angriffsvektor – also ein konkreter Exploit, der diese Lücke ausnutzt.</p>



<p>Konkrete Beispiele aus den Tests zeigen die Tragweite:</p>



<ul class="wp-block-list">
<li>Ein 27 Jahre alter Bug in OpenBSD konnte in Tests identifiziert und ausgenutzt werden</li>



<li>Eine Remote Code Execution (RCE) im FreeBSD NFS-Server konnte in Tests entwickelt und demonstriert werden</li>



<li>In Tests gelang es, vier Schwachstellen zu einer Browser-Angriffskette zu kombinieren</li>



<li>In Tests konnten Sandbox Escapes aus Browser- und OS-Isolation demonstriert werden</li>
</ul>



<p>Diese Beispiele zeigen: Es geht nicht nur um theoretische Schwächen, sondern um real funktionierende Angriffe.</p>



<p>In vielen Fällen reicht dafür bereits die Binärdatei. Der fehlende Sourcecode stellt kein grundsätzliches Hindernis dar, sondern wird durch Analyse und Rekonstruktion kompensiert.</p>



<p>Der kritische Punkt ist dabei nicht nur die Fähigkeit selbst, sondern die Geschwindigkeit:</p>



<p>Schwachstellen, die jahrelang unentdeckt bleiben, können potenziell in deutlich kürzerer Zeit identifiziert und analysiert werden – teilweise innerhalb von Stunden.</p>



<p>Das ist Fluch und Segen zugleich – und genau deshalb entsteht der Bedarf nach Kontrolle.</p>



<h2 id="project-glasswing-absicherung-vor-dem-durchbruch" class="wp-block-heading"><em>Project Glasswing: </em>Absicherung vor dem Durchbruch</h2>



<p>Aufgrund dieser Brisanz wird <em>Mythos</em> nicht frei zugänglich gemacht.</p>



<p><em>Anthropic</em> nutzt das System stattdessen im Rahmen von <strong>Project Glasswing</strong> &#8211; einer Initiative mit einem klaren Ziel:<br>Kritische Software absichern, bevor solche KI-Systeme breit verfügbar werden.</p>



<p>Im Kern geht es nicht nur um klassische Schwachstellensuche, sondern um eine präventive Strategie:</p>



<ul class="wp-block-list">
<li>systematische Identifikation von Zero-Day-Schwachstellen in kritischer Infrastruktur</li>



<li>gezielte Absicherung von Software, bevor Angreifer ähnliche Fähigkeiten einsetzen können</li>



<li>Zusammenarbeit mit großen Technologie- und Infrastruktur-Anbietern</li>
</ul>



<p>Gefundene Schwachstellen werden dabei verantwortungsvoll behandelt:</p>



<ul class="wp-block-list">
<li>kritische Funde werden durch Experten validiert</li>



<li>betroffene Hersteller werden informiert</li>



<li>Exploit-Details werden nicht öffentlich gemacht</li>
</ul>



<p><em>Anthropic</em> beschreibt <em>Glasswing</em> damit implizit als Vorbereitung auf eine neue Realität:<br>Eine Welt, in der KI-Modelle in der Lage sind, komplexe Angriffe in großem Maßstab zu entwickeln.</p>



<p>Ziel ist es, Verteidigern einen entscheidenden Zeitvorsprung zu verschaffen – bevor diese Fähigkeiten zum Standard werden.</p>



<p>Ein besonders kritischer Punkt:</p>



<p>Es waren nicht zwingend spezialisierte Security-Experten nötig.<br>Auch Personen ohne tiefen Security-Hintergrund konnten das System nutzen, um komplexe Schwachstellen zu finden und Exploits zu erzeugen.<br>In einzelnen Fällen wurde dem Modell eine Aufgabe über Nacht gestellt – am nächsten Morgen lag ein funktionierender Exploit vor.</p>



<p><em>Anthropic</em> weist auch darauf hin:</p>



<ul class="wp-block-list">
<li>Weniger als 1 % der im Rahmen der Tests gefundenen Schwachstellen sind aktuell gepatcht.</li>



<li>Ein Großteil der Ergebnisse bleibt daher bewusst unveröffentlicht</li>
</ul>



<h2 id="warum-sicherheitsluecken-so-gefaehrlich-sind" class="wp-block-heading">Warum Sicherheitslücken so gefährlich sind</h2>



<p>Sicherheitslücken sind oft keine offensichtlichen Programmfehler.<br>Software kann lange fehlerfrei funktionieren – bis unerwartete Eingaben oder gezielte Angriffe kritische Schwächen offenlegen.</p>



<p>Beispielsweise kann ein Eingabefeld, das für kurze Texte gedacht ist, durch ungewöhnlich lange oder manipulierte Eingaben zu unerwartetem Verhalten führen &#8211; oder zu konkreten Angriffen.</p>



<h2 id="die-grundlage-vieler-angriffe-memory-corruption" class="wp-block-heading">Die Grundlage vieler Angriffe: Memory Corruption</h2>



<p>Seit den Anfängen der Softwareentwicklung existiert ein grundlegendes Problem: <strong>Buffer Overflows</strong>.</p>



<p>Das Prinzip:</p>



<ol class="wp-block-list">
<li>Ein Programm reserviert Speicher für Eingaben</li>



<li>Die Eingabe überschreitet diesen Speicherbereich</li>



<li>Benachbarter Speicher wird überschrieben</li>



<li>Programmabläufe werden manipuliert</li>
</ol>



<h3 id="beispiel-stack-overflow-mit-adressen" class="wp-block-heading">Beispiel: Stack Overflow mit Adressen</h3>



<p>Ein Programm reserviert auf dem Stack Speicher für einen Namen mit 4 Zeichen.</p>



<pre class="wp-block-code"><code>name&#091;4]
Startadresse: 1000</code></pre>



<p>Der Stack ist ein schneller temporärer <strong>LIFO (Last In, First Out)</strong> Speicher – das zuletzt gespeicherte Element wird zuerst wieder ausgelesen.</p>



<p>Die Speicheraufteilung könnte vereinfacht so aussehen:</p>



<pre class="wp-block-code"><code>1000 name&#091;0]
1001 name&#091;1]
1002 name&#091;2]
1003 name&#091;3]
1004 Rücksprungadresse Byte 1
1005 Rücksprungadresse Byte 2
1006 Rücksprungadresse Byte 3
1007 Rücksprungadresse Byte 4</code></pre>



<p>Nun gibt der Benutzer mehr ein als vorgesehen:</p>



<p>&#8222;Otto Müller&#8220;</p>



<p>Ergebnis:</p>



<pre class="wp-block-code"><code>1000 O
1001 t
1002 t
1003 o
1004 _ ← Overflow beginnt
1005 M
1006 ü
1007 l</code></pre>



<p>Ab dem fünften Zeichen wird bereits die Rücksprungadresse überschrieben.</p>



<p>Das Programm kehrt danach nicht mehr an die ursprüngliche Stelle zurück, sondern springt an eine manipulierte Adresse.</p>



<p>Das ist die Grundlage vieler Angriffe:<br><strong>Inputs verändern den Kontrollfluss eines Programms.</strong></p>



<h2 id="moderne-systeme-sind-besser-geschuetzt-aber-nicht-sicher" class="wp-block-heading">Moderne Systeme sind besser geschützt – aber nicht sicher</h2>



<p>Heute existieren zahlreiche Schutzmechanismen:</p>



<ul class="wp-block-list">
<li>NX (No Execute) verhindert das Ausführen von Daten als Code</li>



<li>ASLR randomisiert Speicheradressen und schützt vor gezielten Speichermanipulationen</li>



<li>Stack Canaries erkennen Buffer Overflows durch Sicherheitskennungen</li>



<li>Control Flow Integrity (CFI) begrenzt unerlaubte Sprünge</li>
</ul>



<p>Diese Maßnahmen erschweren Angriffe erheblich – verhindern sie aber nicht vollständig.</p>



<p>Zudem sind nicht alle dieser Maßnahmen für sämtliche Systeme und Programmiersprachen verfügbar. Insbesondere ältere Programme wurden häufig in systemnahen Programmiersprachen entwickelt, die über keine expliziten Schutzmechanismen verfügten.</p>



<h2 id="warum-exploits-heute-komplex-sind" class="wp-block-heading">Warum Exploits heute komplex sind</h2>



<p>Moderne Exploits bauen auf genau solchen Fehlern auf, sind aber deutlich komplexer geworden.</p>



<p>Angriffe bestehen heute aus mehreren kombinierten Schritten:</p>



<ol class="wp-block-list">
<li><strong>Speicherfehler (z. B. Buffer Overflow)</strong></li>



<li><strong>Informationsgewinn (Info Leak) oder Brute-Force Adressierung zur Umgehung von ASLR</strong></li>



<li><strong>Code-Wiederverwendung (ROP – Return-Oriented Programming)</strong></li>
</ol>



<p>Anstatt eigenen Code einzuschleusen, nutzen Angreifer vorhandene Codefragmente (sogenannte &#8222;Gadgets&#8220;), die gezielt kombiniert werden.</p>



<p>So entsteht eine komplexe Angriffskette aus mehreren voneinander abhängigen Schritten.</p>



<h2 id="mythos-macht-genau-das-skalierbar" class="wp-block-heading"><em>Mythos</em> macht genau das skalierbar</h2>



<p>Hier liegt der eigentliche Durchbruch:</p>



<p>Nicht das Finden einzelner Bugs ist neu – sondern die Fähigkeit, daraus funktionierende Angriffsketten zu bauen.</p>



<p>Das Modell kann:</p>



<ul class="wp-block-list">
<li>Speicherstrukturen analysieren</li>



<li>Offsets berechnen</li>



<li>geeignete Gadgets identifizieren</li>



<li>mehrere Schwachstellen zu vollständigen Exploits kombinieren</li>
</ul>



<p>Die resultierenden Angriffe umfassen:</p>



<ul class="wp-block-list">
<li>Privilege Escalation (User → Admin/Root)</li>



<li>Remote Code Execution (RCE)</li>



<li>Sandbox Escapes</li>
</ul>



<p>Und besonders kritisch:</p>



<p>Die Kombination mehrerer Schwachstellen zu vollständigen End-to-End-Angriffen.</p>



<p>Auch Logikfehler – nicht nur klassische Memory Corruption – können dabei eine Rolle spielen.</p>



<p>Für menschliche Analysten ist dieser Prozess aufwendig und zeitintensiv.<br>Ein Modell wie <em>Mythos</em> kann ihn systematisch automatisieren und massiv skalieren.</p>



<h2 id="besonders-gefaehrdet-embedded-systeme" class="wp-block-heading">Besonders gefährdet: Embedded Systeme</h2>



<p>Ein oft unterschätztes Risiko sind sogenannte Embedded Devices:</p>



<ul class="wp-block-list">
<li>Router, Firewalls und VPN-Gateways</li>



<li>IoT-Geräte wie Kameras, Thermostate oder Sprachassistenten</li>



<li>Industrie- und Steuerungssysteme (SPS)</li>



<li>Bürogeräte wie Drucker oder NAS-Systeme</li>
</ul>



<p>Diese Systeme haben häufig mehrere Probleme:</p>



<ul class="wp-block-list">
<li>Einsatz hardwarenaher, speicherunsicherer Sprachen</li>



<li>fehlende oder schwache Schutzmechanismen</li>



<li>seltene oder gar keine Updates</li>



<li>direkte Anbindung ans Internet</li>
</ul>



<p>Gerade hier können automatisierte Schwachstellenanalysen und Exploit-Generierung ein besonders hohes Risiko darstellen.</p>



<h2 id="das-eigentliche-risiko-zeit" class="wp-block-heading">Das eigentliche Risiko: Zeit</h2>



<p>Der entscheidende Faktor ist das sogenannte <strong>Window of Exposure</strong> &#8211; die Zeit zwischen:</p>



<ul class="wp-block-list">
<li>Entdeckung einer Schwachstelle</li>



<li>ihrer tatsächlichen Ausnutzung</li>
</ul>



<p>Mit KI verschiebt sich dieses Gleichgewicht:</p>



<ul class="wp-block-list">
<li>Früher: Wochen oder Monate</li>



<li>Heute: potenziell Stunden oder Tage</li>
</ul>



<p>Während Angreifer schneller werden, bleibt die Verteidigung weiterhin angewiesen auf:</p>



<ul class="wp-block-list">
<li>Entwicklung von Patches</li>



<li>Tests</li>



<li>Rollout-Prozesse</li>
</ul>



<p>Der Engpass verschiebt sich damit von der Entdeckung zur Reaktion.</p>



<h2 id="fazit" class="wp-block-heading">Fazit</h2>



<p>Sicherheitslücken sind nicht verschwunden – sie sind komplexer geworden.</p>



<p>Ein moderner Exploit ist kein einzelner &#8222;Trick&#8220;, sondern ein präzise konstruiertes System aus:</p>



<ul class="wp-block-list">
<li>Speicherfehlern</li>



<li>Informationsgewinn</li>



<li>kontrollierter Code-Wiederverwendung</li>
</ul>



<p>Mit Systemen wie <em>Mythos</em> wird dieser Prozess erstmals skalierbar.</p>



<p>Das macht sie gleichzeitig zu einem der gefährlichsten &#8211; und wertvollsten &#8211; Werkzeuge in der Cybersicherheit.</p>



<p><a href="https://red.anthropic.com/2026/mythos-preview/">https://red.anthropic.com/2026/mythos-preview/</a><br><a href="https://www.anthropic.com/glasswing">https://www.anthropic.com/glasswing</a></p>



<p></p>
<ul class="shariff-buttons theme-round orientation-horizontal buttonsize-medium"><li class="shariff-button facebook shariff-nocustomcolor" style="background-color:#4273c8"><a href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.kimagazin.com%2Fmythos-preview%2F" title="Bei Facebook teilen" aria-label="Bei Facebook teilen" role="button" rel="nofollow" class="shariff-link" style="; background-color:#3b5998; color:#fff" target="_blank"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 32"><path fill="#3b5998" d="M17.1 0.2v4.7h-2.8q-1.5 0-2.1 0.6t-0.5 1.9v3.4h5.2l-0.7 5.3h-4.5v13.6h-5.5v-13.6h-4.5v-5.3h4.5v-3.9q0-3.3 1.9-5.2t5-1.8q2.6 0 4.1 0.2z"/></svg></span></a></li><li class="shariff-button twitter shariff-nocustomcolor" style="background-color:#595959"><a href="https://twitter.com/share?url=https%3A%2F%2Fwww.kimagazin.com%2Fmythos-preview%2F&text=Mythos%20Preview%3A%20Eine%20KI%2C%20die%20Sicherheitsl%C3%BCcken%20findet%20und%20angreift" title="Bei X teilen" aria-label="Bei X teilen" role="button" rel="noopener nofollow" class="shariff-link" style="; background-color:#000; color:#fff" target="_blank"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="#000" d="M14.258 10.152L23.176 0h-2.113l-7.747 8.813L7.133 0H0l9.352 13.328L0 23.973h2.113l8.176-9.309 6.531 9.309h7.133zm-2.895 3.293l-.949-1.328L2.875 1.56h3.246l6.086 8.523.945 1.328 7.91 11.078h-3.246zm0 0"/></svg></span></a></li><li class="shariff-button linkedin shariff-nocustomcolor" style="background-color:#1488bf"><a href="https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fwww.kimagazin.com%2Fmythos-preview%2F" title="Bei LinkedIn teilen" aria-label="Bei LinkedIn teilen" role="button" rel="noopener nofollow" class="shariff-link" style="; background-color:#0077b5; color:#fff" target="_blank"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 27 32"><path fill="#0077b5" d="M6.2 11.2v17.7h-5.9v-17.7h5.9zM6.6 5.7q0 1.3-0.9 2.2t-2.4 0.9h0q-1.5 0-2.4-0.9t-0.9-2.2 0.9-2.2 2.4-0.9 2.4 0.9 0.9 2.2zM27.4 18.7v10.1h-5.9v-9.5q0-1.9-0.7-2.9t-2.3-1.1q-1.1 0-1.9 0.6t-1.2 1.5q-0.2 0.5-0.2 1.4v9.9h-5.9q0-7.1 0-11.6t0-5.3l0-0.9h5.9v2.6h0q0.4-0.6 0.7-1t1-0.9 1.6-0.8 2-0.3q3 0 4.9 2t1.9 6z"/></svg></span></a></li><li class="shariff-button whatsapp shariff-nocustomcolor" style="background-color:#5cbe4a"><a href="https://api.whatsapp.com/send?text=https%3A%2F%2Fwww.kimagazin.com%2Fmythos-preview%2F%20Mythos%20Preview%3A%20Eine%20KI%2C%20die%20Sicherheitsl%C3%BCcken%20findet%20und%20angreift" title="Bei Whatsapp teilen" aria-label="Bei Whatsapp teilen" role="button" rel="noopener nofollow" class="shariff-link" style="; background-color:#34af23; color:#fff" target="_blank"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#34af23" d="M17.6 17.4q0.2 0 1.7 0.8t1.6 0.9q0 0.1 0 0.3 0 0.6-0.3 1.4-0.3 0.7-1.3 1.2t-1.8 0.5q-1 0-3.4-1.1-1.7-0.8-3-2.1t-2.6-3.3q-1.3-1.9-1.3-3.5v-0.1q0.1-1.6 1.3-2.8 0.4-0.4 0.9-0.4 0.1 0 0.3 0t0.3 0q0.3 0 0.5 0.1t0.3 0.5q0.1 0.4 0.6 1.6t0.4 1.3q0 0.4-0.6 1t-0.6 0.8q0 0.1 0.1 0.3 0.6 1.3 1.8 2.4 1 0.9 2.7 1.8 0.2 0.1 0.4 0.1 0.3 0 1-0.9t0.9-0.9zM14 26.9q2.3 0 4.3-0.9t3.6-2.4 2.4-3.6 0.9-4.3-0.9-4.3-2.4-3.6-3.6-2.4-4.3-0.9-4.3 0.9-3.6 2.4-2.4 3.6-0.9 4.3q0 3.6 2.1 6.6l-1.4 4.2 4.3-1.4q2.8 1.9 6.2 1.9zM14 2.2q2.7 0 5.2 1.1t4.3 2.9 2.9 4.3 1.1 5.2-1.1 5.2-2.9 4.3-4.3 2.9-5.2 1.1q-3.5 0-6.5-1.7l-7.4 2.4 2.4-7.2q-1.9-3.2-1.9-6.9 0-2.7 1.1-5.2t2.9-4.3 4.3-2.9 5.2-1.1z"/></svg></span></a></li><li class="shariff-button mailto shariff-nocustomcolor" style="background-color:#a8a8a8"><a href="mailto:?body=https%3A%2F%2Fwww.kimagazin.com%2Fmythos-preview%2F&subject=Mythos%20Preview%3A%20Eine%20KI%2C%20die%20Sicherheitsl%C3%BCcken%20findet%20und%20angreift" title="Per E-Mail versenden" aria-label="Per E-Mail versenden" role="button" rel="noopener nofollow" class="shariff-link" style="; background-color:#999; color:#fff"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#999" d="M32 12.7v14.2q0 1.2-0.8 2t-2 0.9h-26.3q-1.2 0-2-0.9t-0.8-2v-14.2q0.8 0.9 1.8 1.6 6.5 4.4 8.9 6.1 1 0.8 1.6 1.2t1.7 0.9 2 0.4h0.1q0.9 0 2-0.4t1.7-0.9 1.6-1.2q3-2.2 8.9-6.1 1-0.7 1.8-1.6zM32 7.4q0 1.4-0.9 2.7t-2.2 2.2q-6.7 4.7-8.4 5.8-0.2 0.1-0.7 0.5t-1 0.7-0.9 0.6-1.1 0.5-0.9 0.2h-0.1q-0.4 0-0.9-0.2t-1.1-0.5-0.9-0.6-1-0.7-0.7-0.5q-1.6-1.1-4.7-3.2t-3.6-2.6q-1.1-0.7-2.1-2t-1-2.5q0-1.4 0.7-2.3t2.1-0.9h26.3q1.2 0 2 0.8t0.9 2z"/></svg></span></a></li></ul></div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>KI im Beauty-Bereich: Wie künstliche Intelligenz Beratung, Umsatz und Effizienz optimiert</title>
		<link>https://www.kimagazin.com/ki-im-beauty-bereich/</link>
		
		<dc:creator><![CDATA[Oskar Kohler]]></dc:creator>
		<pubDate>Sun, 05 Apr 2026 17:05:01 +0000</pubDate>
				<category><![CDATA[Use Cases]]></category>
		<guid isPermaLink="false">https://www.kimagazin.com/?p=2899</guid>

					<description><![CDATA[Künstliche Intelligenz verändert den Beauty-Bereich nachhaltig. Gerade in einer Branche, in der visuelle Entscheidungen im Mittelpunkt stehen, kann&#8230;]]></description>
										<content:encoded><![CDATA[
<p>Künstliche Intelligenz verändert den Beauty-Bereich nachhaltig. Gerade in einer Branche, in der visuelle Entscheidungen im Mittelpunkt stehen, kann KI die Kundenzufriedenheit deutlich steigern. Gleichzeitig lassen sich auch interne Abläufe im Salon optimieren, wodurch weniger manuelle Arbeit anfällt und Gewinne gesteigert werden können.</p>



<p>KI ist damit nicht nur ein Beratungstool, sondern entwickelt sich zunehmend zu einem <strong>wirtschaftlichen Hebel für moderne Beauty-Unternehmen</strong>.</p>



<h2 id="visuelle-sicherheit-als-schluessel-zur-entscheidung" class="wp-block-heading">Visuelle Sicherheit als Schlüssel zur Entscheidung</h2>



<p>Kund:innen haben häufig Bedenken: Wie sehen sie nach einer Behandlung tatsächlich aus? Gerade im Beauty-Bereich sind Ergebnisse oft schwer oder gar nicht zu korrigieren.</p>



<p>Die persönliche Beratung bleibt zwar der wichtigste Faktor – doch Geschmäcker sind unterschiedlich, und Vorstellungskraft ist begrenzt. Eine realistische visuelle Vorschau des erwarteten Ergebnisses wird daher zu einem entscheidenden Element im Entscheidungsprozess.</p>



<p>Typische Einsatzfelder sind:</p>



<ul class="wp-block-list">
<li>Friseur: Hairstyle, Colorierung, Haaranalyse</li>



<li>Kosmetik: Make-up Vorschau, Altersveränderung, Beautifying, Hautanalyse</li>



<li>Nail Design: visuelle Vorschau</li>
</ul>



<h2 id="einsatzbereiche-von-ki-im-detail" class="wp-block-heading">Einsatzbereiche von KI im Detail</h2>



<h3 id="colorierung" class="wp-block-heading">Colorierung</h3>



<figure class="wp-block-image size-large"><img  fetchpriority="high"  decoding="async"  width="1024"  height="1024"  src="https://www.kimagazin.com/wp-content/uploads/colors-1024x1024.webp"  alt=""  class="wp-image-2904"  srcset="https://www.kimagazin.com/wp-content/uploads/colors-1024x1024.webp 1024w, https://www.kimagazin.com/wp-content/uploads/colors-300x300.webp 300w, https://www.kimagazin.com/wp-content/uploads/colors-150x150.webp 150w, https://www.kimagazin.com/wp-content/uploads/colors-768x768.webp 768w, https://www.kimagazin.com/wp-content/uploads/colors-1536x1536.webp 1536w, https://www.kimagazin.com/wp-content/uploads/colors-80x80.webp 80w, https://www.kimagazin.com/wp-content/uploads/colors-110x110.webp 110w, https://www.kimagazin.com/wp-content/uploads/colors-380x380.webp 380w, https://www.kimagazin.com/wp-content/uploads/colors-550x550.webp 550w, https://www.kimagazin.com/wp-content/uploads/colors-800x800.webp 800w, https://www.kimagazin.com/wp-content/uploads/colors-1160x1160.webp 1160w, https://www.kimagazin.com/wp-content/uploads/colors.webp 1920w"  sizes="(max-width: 1024px) 100vw, 1024px" ></figure>



<p>Die meisten Friseure arbeiten noch mit klassischen Farbkarten – Bücher mit eingefärbten synthetischen Haarsträhnen. Es erfordert viel Vorstellungskraft, sich das Ergebnis auf dem eigenen Kopf vorzustellen.</p>



<p>Mit KI lässt sich die Haarfarbe direkt auf dem eigenen Bild simulieren. Kund:innen sehen sofort:</p>



<ul class="wp-block-list">
<li>wie die Farbe auf ihren Haaren wirkt</li>



<li>wie sie mit dem Hautton harmoniert</li>
</ul>



<p>Moderne Systeme berücksichtigen dabei:</p>



<ul class="wp-block-list">
<li>die aktuelle Haarfarbe</li>



<li>Haarstruktur</li>



<li>Ergebnisse aus der Haaranalyse</li>
</ul>



<p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Das Ergebnis ist eine deutlich höhere Entscheidungssicherheit.</p>



<h3 id="vorschau-hair-design" class="wp-block-heading">Vorschau Hair Design</h3>



<figure class="wp-block-image size-large"><img  decoding="async"  width="1024"  height="1024"  src="https://www.kimagazin.com/wp-content/uploads/styles-1-1024x1024.webp"  alt=""  class="wp-image-2908"  srcset="https://www.kimagazin.com/wp-content/uploads/styles-1-1024x1024.webp 1024w, https://www.kimagazin.com/wp-content/uploads/styles-1-300x300.webp 300w, https://www.kimagazin.com/wp-content/uploads/styles-1-150x150.webp 150w, https://www.kimagazin.com/wp-content/uploads/styles-1-768x768.webp 768w, https://www.kimagazin.com/wp-content/uploads/styles-1-1536x1536.webp 1536w, https://www.kimagazin.com/wp-content/uploads/styles-1-80x80.webp 80w, https://www.kimagazin.com/wp-content/uploads/styles-1-110x110.webp 110w, https://www.kimagazin.com/wp-content/uploads/styles-1-380x380.webp 380w, https://www.kimagazin.com/wp-content/uploads/styles-1-550x550.webp 550w, https://www.kimagazin.com/wp-content/uploads/styles-1-800x800.webp 800w, https://www.kimagazin.com/wp-content/uploads/styles-1-1160x1160.webp 1160w, https://www.kimagazin.com/wp-content/uploads/styles-1.webp 1920w"  sizes="(max-width: 1024px) 100vw, 1024px" ></figure>



<p>Auch bei der Wahl einer neuen Frisur fällt es vielen schwer, sich das Ergebnis vorzustellen.</p>



<p>Frühere digitale Lösungen arbeiteten mit statischen Bildern, die manuell angepasst werden mussten. Die Ergebnisse waren oft ungenau und unnatürlich.</p>



<p>Moderne KI-Systeme gehen deutlich weiter:</p>



<ul class="wp-block-list">
<li>Analyse der Kopfform</li>



<li>realistische Simulation der Haartextur</li>



<li>präzise Anpassung an das Gesicht</li>
</ul>



<p>Dadurch lassen sich heute auch komplexe Veränderungen darstellen, wie:</p>



<ul class="wp-block-list">
<li>sehr kurze Haare oder Glatze</li>



<li>komplette Stilwechsel</li>
</ul>



<p>Dieses Prinzip funktioniert auch für Bartstyles bei Männern.</p>



<h3 id="haaranalyse" class="wp-block-heading">Haaranalyse</h3>



<p>KI ermöglicht eine präzise Analyse der Haare.</p>



<p>Dazu werden Haarsträhnen – oft mittels Mikroskop – erfasst und von der KI ausgewertet. So lassen sich:</p>



<ul class="wp-block-list">
<li>Haarstruktur</li>



<li>Zustand</li>



<li>Schäden</li>
</ul>



<p>analysieren und bewerten.</p>



<p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Die Beratung wird dadurch objektiver und datenbasiert.</p>



<h3 id="alter-veraendern" class="wp-block-heading">Alter verändern</h3>



<figure class="wp-block-image size-large"><img  decoding="async"  width="1024"  height="469"  src="https://www.kimagazin.com/wp-content/uploads/age-1024x469.webp"  alt=""  class="wp-image-2909"  srcset="https://www.kimagazin.com/wp-content/uploads/age-1024x469.webp 1024w, https://www.kimagazin.com/wp-content/uploads/age-300x137.webp 300w, https://www.kimagazin.com/wp-content/uploads/age-768x352.webp 768w, https://www.kimagazin.com/wp-content/uploads/age-1536x703.webp 1536w, https://www.kimagazin.com/wp-content/uploads/age-380x174.webp 380w, https://www.kimagazin.com/wp-content/uploads/age-550x252.webp 550w, https://www.kimagazin.com/wp-content/uploads/age-800x366.webp 800w, https://www.kimagazin.com/wp-content/uploads/age-1160x531.webp 1160w, https://www.kimagazin.com/wp-content/uploads/age-80x37.webp 80w, https://www.kimagazin.com/wp-content/uploads/age.webp 1920w"  sizes="(max-width: 1024px) 100vw, 1024px" ></figure>



<p>Eine interessante Anwendung ist die Simulation von Altersveränderungen.</p>



<p>Kund:innen können sehen:</p>



<ul class="wp-block-list">
<li>wie sie in 10 Jahren aussehen könnten</li>



<li>wie sie früher ausgesehen hätten</li>
</ul>



<p>Das kann insbesondere bei der Style- und Typberatung hilfreich sein und eröffnet neue Perspektiven in der Beratung.</p>



<h3 id="style-transfer" class="wp-block-heading">Style Transfer</h3>



<figure class="wp-block-image size-large"><img  loading="lazy"  decoding="async"  width="1024"  height="859"  src="https://www.kimagazin.com/wp-content/uploads/transfer-1024x859.webp"  alt=""  class="wp-image-2910"  srcset="https://www.kimagazin.com/wp-content/uploads/transfer-1024x859.webp 1024w, https://www.kimagazin.com/wp-content/uploads/transfer-300x252.webp 300w, https://www.kimagazin.com/wp-content/uploads/transfer-768x644.webp 768w, https://www.kimagazin.com/wp-content/uploads/transfer-1536x1288.webp 1536w, https://www.kimagazin.com/wp-content/uploads/transfer-380x319.webp 380w, https://www.kimagazin.com/wp-content/uploads/transfer-550x461.webp 550w, https://www.kimagazin.com/wp-content/uploads/transfer-800x671.webp 800w, https://www.kimagazin.com/wp-content/uploads/transfer-1160x973.webp 1160w, https://www.kimagazin.com/wp-content/uploads/transfer-80x67.webp 80w, https://www.kimagazin.com/wp-content/uploads/transfer.webp 1920w"  sizes="auto, (max-width: 1024px) 100vw, 1024px" ></figure>



<p>Viele Kund:innen orientieren sich an Vorbildern – etwa Prominenten.</p>



<p>Mit KI lassen sich:</p>



<ul class="wp-block-list">
<li>Frisuren</li>



<li>Haarfarben</li>



<li>Make-up Styles</li>
</ul>



<p>von einer Person auf eine andere übertragen.</p>



<p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Dadurch wird aus einer vagen Vorstellung eine konkrete Visualisierung.</p>



<h3 id="beautifier" class="wp-block-heading">Beautifier</h3>



<figure class="wp-block-image size-large"><img  loading="lazy"  decoding="async"  width="1024"  height="518"  src="https://www.kimagazin.com/wp-content/uploads/beauty-1024x518.webp"  alt=""  class="wp-image-2911"  srcset="https://www.kimagazin.com/wp-content/uploads/beauty-1024x518.webp 1024w, https://www.kimagazin.com/wp-content/uploads/beauty-300x152.webp 300w, https://www.kimagazin.com/wp-content/uploads/beauty-768x389.webp 768w, https://www.kimagazin.com/wp-content/uploads/beauty-1536x778.webp 1536w, https://www.kimagazin.com/wp-content/uploads/beauty-380x192.webp 380w, https://www.kimagazin.com/wp-content/uploads/beauty-550x278.webp 550w, https://www.kimagazin.com/wp-content/uploads/beauty-800x405.webp 800w, https://www.kimagazin.com/wp-content/uploads/beauty-1160x587.webp 1160w, https://www.kimagazin.com/wp-content/uploads/beauty-80x41.webp 80w, https://www.kimagazin.com/wp-content/uploads/beauty.webp 1920w"  sizes="auto, (max-width: 1024px) 100vw, 1024px" ></figure>



<p>KI kann Portraits gezielt „verschönern“.</p>



<p>Dabei werden:</p>



<ul class="wp-block-list">
<li>Unebenheiten reduziert</li>



<li>Haut optimiert</li>



<li>kleinere Korrekturen vorgenommen</li>
</ul>



<p>Auf Wunsch sind auch stärkere Veränderungen möglich.</p>



<p>Neben der Anwendung für Profilbilder kann dies auch als Grundlage für individuelle Styling-Empfehlungen dienen.</p>



<h3 id="visuelles-make-up" class="wp-block-heading">Visuelles Make-up</h3>



<figure class="wp-block-image size-large"><img  loading="lazy"  decoding="async"  width="1024"  height="845"  src="https://www.kimagazin.com/wp-content/uploads/makeup-1024x845.webp"  alt=""  class="wp-image-2912"  srcset="https://www.kimagazin.com/wp-content/uploads/makeup-1024x845.webp 1024w, https://www.kimagazin.com/wp-content/uploads/makeup-300x248.webp 300w, https://www.kimagazin.com/wp-content/uploads/makeup-768x634.webp 768w, https://www.kimagazin.com/wp-content/uploads/makeup-1536x1268.webp 1536w, https://www.kimagazin.com/wp-content/uploads/makeup-380x314.webp 380w, https://www.kimagazin.com/wp-content/uploads/makeup-550x454.webp 550w, https://www.kimagazin.com/wp-content/uploads/makeup-800x660.webp 800w, https://www.kimagazin.com/wp-content/uploads/makeup-1160x958.webp 1160w, https://www.kimagazin.com/wp-content/uploads/makeup-80x66.webp 80w, https://www.kimagazin.com/wp-content/uploads/makeup.webp 1920w"  sizes="auto, (max-width: 1024px) 100vw, 1024px" ></figure>



<p>Mit KI können Kund:innen verschiedene Make-up-Stile direkt an sich selbst ausprobieren.</p>



<p>Das ermöglicht:</p>



<ul class="wp-block-list">
<li>schnelle Vergleiche unterschiedlicher Looks</li>



<li>bessere Entscheidungsgrundlagen</li>
</ul>



<p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Eine ideale Ergänzung zur klassischen Typberatung.</p>



<h3 id="hautanalyse" class="wp-block-heading">Hautanalyse</h3>



<p>Auch die Hautanalyse lässt sich durch KI deutlich verbessern.</p>



<p>Auf Basis hochauflösender Bilder erkennt die KI:</p>



<ul class="wp-block-list">
<li>Hautprobleme</li>



<li>Hauttyp</li>



<li>Auffälligkeiten</li>
</ul>



<p>Zusätzlich können passende kosmetische Produkte vorgeschlagen werden.</p>



<p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Die Beratung wird präziser und stärker personalisiert.</p>



<h3 id="virtual-try-on" class="wp-block-heading">Virtual Try-On</h3>



<p>Die zugrunde liegenden Technologien lassen sich auch über den klassischen Beauty-Bereich hinaus einsetzen.</p>



<p>Typische Anwendungen sind:</p>



<ul class="wp-block-list">
<li>Brillen</li>



<li>Mode</li>



<li>Nail Design</li>
</ul>



<p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Virtual Try-On entwickelt sich zu einem universellen Werkzeug im Retail.</p>



<h3 id="smart-mirrors" class="wp-block-heading">Smart Mirrors</h3>



<p>Ein wichtiger Schritt ist die Integration der Technologie in den Salon-Alltag.</p>



<p>Smart Mirrors sind Spiegel mit integrierter Kamera und Display. Sie ermöglichen es, KI-Anwendungen direkt am Platz zu nutzen.</p>



<p>Kund:innen können die Ergebnisse unmittelbar im Spiegel sehen – ohne zwischen Geräten wechseln zu müssen.</p>



<p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Das sorgt für ein besonders immersives und hochwertiges Beratungserlebnis.</p>



<h2 id="ki-in-der-kundenbetreuung" class="wp-block-heading">KI in der Kundenbetreuung</h2>



<p>Auch die Kommunikation mit Kund:innen lässt sich durch KI optimieren.</p>



<p>Typische Anwendungen sind:</p>



<ul class="wp-block-list">
<li>telefonische Kundenannahme</li>



<li>automatisierte Beratung</li>



<li>intelligente Terminverwaltung</li>
</ul>



<p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Das ermöglicht eine bessere Erreichbarkeit und entlastet das Personal.</p>



<h2 id="ki-im-salonmanagement" class="wp-block-heading">KI im Salonmanagement</h2>



<p>Neben der Kundeninteraktion bietet KI großes Potenzial im operativen Betrieb.</p>



<p>Viele zeitaufwändige Aufgaben lassen sich automatisieren:</p>



<ul class="wp-block-list">
<li>Terminverwaltung</li>



<li>Lagerverwaltung</li>



<li>Warenbestellung</li>



<li>Kundenakquise</li>



<li>Marketing</li>



<li>Rechnungserstellung</li>
</ul>



<p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Prozesse werden effizienter, Fehler reduziert und Ressourcen besser genutzt.</p>



<h2 id="monetarisierung-wie-ki-umsatz-steigert" class="wp-block-heading">Monetarisierung: Wie KI Umsatz steigert</h2>



<p>Der Einsatz von KI hat direkte wirtschaftliche Effekte.</p>



<p><strong>1. Höhere Abschlussquoten</strong><br>Kund:innen treffen schneller Entscheidungen, wenn sie das Ergebnis sehen können.</p>



<p><strong>2. Upselling und Cross-Selling</strong><br>Zusätzliche Leistungen und Produkte lassen sich leichter verkaufen, wenn sie visuell dargestellt werden.</p>



<p><strong>3. Höherer Warenkorbwert</strong><br>Durch personalisierte Empfehlungen steigt der durchschnittliche Umsatz pro Kund:in.</p>



<p><strong>4. Premium-Positionierung</strong><br>Salons können KI als innovatives Feature vermarkten und höhere Preise durchsetzen.</p>



<h2 id="integration-erfolgsfaktor-fuer-den-praktischen-einsatz" class="wp-block-heading">Integration: Erfolgsfaktor für den praktischen Einsatz</h2>



<p>Damit KI ihr volles Potenzial entfalten kann, muss sie in bestehende Systeme integriert werden:</p>



<ul class="wp-block-list">
<li>Buchungssysteme (Terminplanung, Auslastung)</li>



<li>CRM-Systeme (Kundendaten, Präferenzen)</li>



<li>Kassensysteme (Produktverkauf)</li>



<li>Marketing-Tools (personalisierte Kampagnen)</li>
</ul>



<p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Erst durch diese Vernetzung entsteht ein durchgängiges, effizientes System.</p>



<h2 id="wettbewerbsvorteil-der-ki-gestuetzte-salon" class="wp-block-heading">Wettbewerbsvorteil: Der KI-gestützte Salon</h2>



<p>Der Einsatz von KI bietet klare strategische Vorteile:</p>



<ul class="wp-block-list">
<li>Differenzierung gegenüber Mitbewerbern</li>



<li>modernes, innovatives Markenimage</li>



<li>bessere Kundenerlebnisse</li>



<li>standardisierte, skalierbare Beratung</li>
</ul>



<p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/27a1.png" alt="➡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Besonders für wachsende Unternehmen und Ketten ist dies ein entscheidender Faktor.</p>



<h2 id="trends-die-zukunft-von-ki-im-beauty-bereich" class="wp-block-heading">Trends: Die Zukunft von KI im Beauty-Bereich</h2>



<p>Die Entwicklung zeigt klar in Richtung:</p>



<p><strong>Hyper-Personalisierung</strong><br>Individuelle Empfehlungen auf Basis von Daten und Verhalten</p>



<p><strong>Generative KI</strong><br>Komplette Style-Konzepte statt einzelner Elemente</p>



<p><strong>Omnichannel-Erlebnisse</strong><br>Verknüpfung von Online-Try-On und Salonbesuch</p>



<p><strong>Neue Hardware</strong><br>Smart Mirrors, mobile Anwendungen und perspektivisch AR-Brillen</p>



<h2 id="fazit" class="wp-block-heading">Fazit</h2>



<p>Wer seinen Kund:innen visuelle Sicherheit, intelligente Beratung und ein optimiertes Salonmanagement bieten möchte, findet in KI ein leistungsstarkes Werkzeug.</p>



<p>Die Kombination aus:</p>



<ul class="wp-block-list">
<li>besserer Entscheidungsfindung</li>



<li>effizienteren Prozessen</li>



<li>neuen Umsatzpotenzialen</li>
</ul>



<p>macht KI zu einem zentralen Baustein für die Zukunft der Beauty-Branche.</p>
<ul class="shariff-buttons theme-round orientation-horizontal buttonsize-medium"><li class="shariff-button facebook shariff-nocustomcolor" style="background-color:#4273c8"><a href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.kimagazin.com%2Fki-im-beauty-bereich%2F" title="Bei Facebook teilen" aria-label="Bei Facebook teilen" role="button" rel="nofollow" class="shariff-link" style="; background-color:#3b5998; color:#fff" target="_blank"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 32"><path fill="#3b5998" d="M17.1 0.2v4.7h-2.8q-1.5 0-2.1 0.6t-0.5 1.9v3.4h5.2l-0.7 5.3h-4.5v13.6h-5.5v-13.6h-4.5v-5.3h4.5v-3.9q0-3.3 1.9-5.2t5-1.8q2.6 0 4.1 0.2z"/></svg></span></a></li><li class="shariff-button twitter shariff-nocustomcolor" style="background-color:#595959"><a href="https://twitter.com/share?url=https%3A%2F%2Fwww.kimagazin.com%2Fki-im-beauty-bereich%2F&text=KI%20im%20Beauty-Bereich%3A%20Wie%20k%C3%BCnstliche%20Intelligenz%20Beratung%2C%20Umsatz%20und%20Effizienz%20optimiert" title="Bei X teilen" aria-label="Bei X teilen" role="button" rel="noopener nofollow" class="shariff-link" style="; background-color:#000; color:#fff" target="_blank"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="#000" d="M14.258 10.152L23.176 0h-2.113l-7.747 8.813L7.133 0H0l9.352 13.328L0 23.973h2.113l8.176-9.309 6.531 9.309h7.133zm-2.895 3.293l-.949-1.328L2.875 1.56h3.246l6.086 8.523.945 1.328 7.91 11.078h-3.246zm0 0"/></svg></span></a></li><li class="shariff-button linkedin shariff-nocustomcolor" style="background-color:#1488bf"><a href="https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fwww.kimagazin.com%2Fki-im-beauty-bereich%2F" title="Bei LinkedIn teilen" aria-label="Bei LinkedIn teilen" role="button" rel="noopener nofollow" class="shariff-link" style="; background-color:#0077b5; color:#fff" target="_blank"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 27 32"><path fill="#0077b5" d="M6.2 11.2v17.7h-5.9v-17.7h5.9zM6.6 5.7q0 1.3-0.9 2.2t-2.4 0.9h0q-1.5 0-2.4-0.9t-0.9-2.2 0.9-2.2 2.4-0.9 2.4 0.9 0.9 2.2zM27.4 18.7v10.1h-5.9v-9.5q0-1.9-0.7-2.9t-2.3-1.1q-1.1 0-1.9 0.6t-1.2 1.5q-0.2 0.5-0.2 1.4v9.9h-5.9q0-7.1 0-11.6t0-5.3l0-0.9h5.9v2.6h0q0.4-0.6 0.7-1t1-0.9 1.6-0.8 2-0.3q3 0 4.9 2t1.9 6z"/></svg></span></a></li><li class="shariff-button whatsapp shariff-nocustomcolor" style="background-color:#5cbe4a"><a href="https://api.whatsapp.com/send?text=https%3A%2F%2Fwww.kimagazin.com%2Fki-im-beauty-bereich%2F%20KI%20im%20Beauty-Bereich%3A%20Wie%20k%C3%BCnstliche%20Intelligenz%20Beratung%2C%20Umsatz%20und%20Effizienz%20optimiert" title="Bei Whatsapp teilen" aria-label="Bei Whatsapp teilen" role="button" rel="noopener nofollow" class="shariff-link" style="; background-color:#34af23; color:#fff" target="_blank"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#34af23" d="M17.6 17.4q0.2 0 1.7 0.8t1.6 0.9q0 0.1 0 0.3 0 0.6-0.3 1.4-0.3 0.7-1.3 1.2t-1.8 0.5q-1 0-3.4-1.1-1.7-0.8-3-2.1t-2.6-3.3q-1.3-1.9-1.3-3.5v-0.1q0.1-1.6 1.3-2.8 0.4-0.4 0.9-0.4 0.1 0 0.3 0t0.3 0q0.3 0 0.5 0.1t0.3 0.5q0.1 0.4 0.6 1.6t0.4 1.3q0 0.4-0.6 1t-0.6 0.8q0 0.1 0.1 0.3 0.6 1.3 1.8 2.4 1 0.9 2.7 1.8 0.2 0.1 0.4 0.1 0.3 0 1-0.9t0.9-0.9zM14 26.9q2.3 0 4.3-0.9t3.6-2.4 2.4-3.6 0.9-4.3-0.9-4.3-2.4-3.6-3.6-2.4-4.3-0.9-4.3 0.9-3.6 2.4-2.4 3.6-0.9 4.3q0 3.6 2.1 6.6l-1.4 4.2 4.3-1.4q2.8 1.9 6.2 1.9zM14 2.2q2.7 0 5.2 1.1t4.3 2.9 2.9 4.3 1.1 5.2-1.1 5.2-2.9 4.3-4.3 2.9-5.2 1.1q-3.5 0-6.5-1.7l-7.4 2.4 2.4-7.2q-1.9-3.2-1.9-6.9 0-2.7 1.1-5.2t2.9-4.3 4.3-2.9 5.2-1.1z"/></svg></span></a></li><li class="shariff-button mailto shariff-nocustomcolor" style="background-color:#a8a8a8"><a href="mailto:?body=https%3A%2F%2Fwww.kimagazin.com%2Fki-im-beauty-bereich%2F&subject=KI%20im%20Beauty-Bereich%3A%20Wie%20k%C3%BCnstliche%20Intelligenz%20Beratung%2C%20Umsatz%20und%20Effizienz%20optimiert" title="Per E-Mail versenden" aria-label="Per E-Mail versenden" role="button" rel="noopener nofollow" class="shariff-link" style="; background-color:#999; color:#fff"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#999" d="M32 12.7v14.2q0 1.2-0.8 2t-2 0.9h-26.3q-1.2 0-2-0.9t-0.8-2v-14.2q0.8 0.9 1.8 1.6 6.5 4.4 8.9 6.1 1 0.8 1.6 1.2t1.7 0.9 2 0.4h0.1q0.9 0 2-0.4t1.7-0.9 1.6-1.2q3-2.2 8.9-6.1 1-0.7 1.8-1.6zM32 7.4q0 1.4-0.9 2.7t-2.2 2.2q-6.7 4.7-8.4 5.8-0.2 0.1-0.7 0.5t-1 0.7-0.9 0.6-1.1 0.5-0.9 0.2h-0.1q-0.4 0-0.9-0.2t-1.1-0.5-0.9-0.6-1-0.7-0.7-0.5q-1.6-1.1-4.7-3.2t-3.6-2.6q-1.1-0.7-2.1-2t-1-2.5q0-1.4 0.7-2.3t2.1-0.9h26.3q1.2 0 2 0.8t0.9 2z"/></svg></span></a></li></ul></div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Lokaler KI-Assistent: Vom Sci-Fi-Konzept zur Business-Realität</title>
		<link>https://www.kimagazin.com/lokaler-ki-assistent/</link>
		
		<dc:creator><![CDATA[Oskar Kohler]]></dc:creator>
		<pubDate>Thu, 02 Apr 2026 14:35:13 +0000</pubDate>
				<category><![CDATA[Use Cases]]></category>
		<guid isPermaLink="false">https://www.kimagazin.com/?p=2845</guid>

					<description><![CDATA[Was vor wenigen Jahren noch nach Science-Fiction klang, ist heute mit überschaubarem Setup realisierbar: ein vollständig lokaler, persönlicher&#8230;]]></description>
										<content:encoded><![CDATA[
<p>Was vor wenigen Jahren noch nach Science-Fiction klang, ist heute mit überschaubarem Setup realisierbar: ein vollständig lokaler, persönlicher KI-Assistent.</p>



<p>Die zentrale Frage hinter dem Projekt war simpel – und gleichzeitig überraschend unbeantwortet:<br><strong>Warum existiert noch kein wirklich persönlicher AI-Assistent, der komplett lokal läuft?</strong></p>



<p>Die technologischen Bausteine sind längst vorhanden. Also entstand aus dieser Frage ein Experiment – und daraus wiederum ein funktionierendes System: <strong>AIBoxly (&#8222;Boxly&#8220;)</strong>.</p>



<figure class="wp-block-video"><video height="1080" style="aspect-ratio: 1920 / 1080;" width="1920" controls src="https://www.kimagazin.com/wp-content/uploads/aiboxly.mp4"></video></figure>



<h2 id="architektur-klar-modular-und-lokal" class="wp-block-heading">Architektur: Klar, modular und lokal</h2>



<p>Der Aufbau folgt einem bewusst einfachen, aber leistungsfähigen Prinzip:</p>



<p><strong>Wakeword → Spracheingabe → Sprachmodell → Reasoning → Tools → Sprachausgabe</strong></p>



<p>Das Besondere dabei:</p>



<ul class="wp-block-list">
<li>Keine Cloud-Abhängigkeit</li>



<li>Keine externen APIs</li>



<li>Volle Kontrolle über Daten und Prozesse</li>
</ul>



<p>Das System verarbeitet Spracheingaben, interpretiert sie kontextuell, entscheidet eigenständig über notwendige Aktionen (Tool Calling) und liefert direkt eine sprachbasierte Antwort zurück.</p>



<h2 id="funktionalitaet-mehr-als-nur-ein-voice-assistant" class="wp-block-heading">Funktionalität: Mehr als nur ein Voice Assistant</h2>



<p>Boxly ist kein klassischer Sprachassistent, sondern eher eine lokale AI-Orchestrierungsplattform.</p>



<ul class="wp-block-list">
<li>Über <strong>100 Skills</strong> lassen sich flexibel definieren und erweitern</li>



<li>Kombination aus <strong>LLM + Reasoning + Tool Execution</strong></li>



<li>Unterstützung für natürliche Konversation statt starrer Befehle</li>
</ul>



<p>Bemerkenswert ist die Robustheit der Spracherkennung:</p>



<ul class="wp-block-list">
<li>Funktioniert auch auf Distanz</li>



<li>Kommt mit undeutlicher Aussprache klar</li>



<li>Verarbeitet sogar Dialekte zuverlässig</li>
</ul>



<h2 id="performance-auf-consumer-hardware" class="wp-block-heading">Performance auf Consumer-Hardware</h2>



<p>Ein entscheidender Punkt aus Business-Sicht: <strong>Effizienz auf begrenzter Hardware</strong></p>



<p>Das gesamte System läuft auf:</p>



<ul class="wp-block-list">
<li>RTX 3060</li>



<li>8 GB VRAM</li>
</ul>



<p>Dabei erreicht Boxly:</p>



<ul class="wp-block-list">
<li><strong>&lt; 1 Sekunde Reaktionszeit</strong> (einfachere Anfragen)</li>



<li><strong>bis ca. 3 Sekunden End-to-End</strong> (komplexere Tasks)</li>
</ul>



<p>Und das trotz vollständiger lokaler Verarbeitung inklusive:</p>



<ul class="wp-block-list">
<li>Speech-to-Text</li>



<li>LLM-Inferenz</li>



<li>Reasoning</li>



<li>Tool-Ausführung</li>



<li>Text-to-Speech</li>



<li>optionaler 3D-Visualisierung</li>
</ul>



<h2 id="herausforderungen-wo-es-wirklich-komplex-wird" class="wp-block-heading">Herausforderungen: Wo es wirklich komplex wird</h2>



<h3 id="1-tool-calling" class="wp-block-heading">1. Tool Calling</h3>



<p>Die größte technische Hürde ist nicht das Modell selbst, sondern die Orchestrierung:</p>



<ul class="wp-block-list">
<li>Wann wird welches Tool genutzt?</li>



<li>Wie bleibt die Entscheidung konsistent bei vielen Skills?</li>
</ul>



<p>Mit wachsender Anzahl an Funktionen steigt die Komplexität exponentiell.</p>



<h3 id="2-hardware-limits" class="wp-block-heading">2. Hardware-Limits</h3>



<p>Lokale AI bedeutet immer Trade-offs:</p>



<ul class="wp-block-list">
<li>Speichergrenzen</li>



<li>Latenz vs. Modellgröße</li>



<li>Parallelisierung von Komponenten</li>
</ul>



<p>Das Ziel: maximale Performance bei minimaler Infrastruktur.</p>



<h2 id="fazit-lokale-ai-ist-kein-zukunftsthema-mehr" class="wp-block-heading">Fazit: Lokale AI ist kein Zukunftsthema mehr</h2>



<p>Das Ergebnis ist klar:<br><strong>Ein vollständig lokaler, persönlicher KI-Assistent funktioniert – und zwar überraschend gut.</strong></p>



<p>Noch nicht perfekt, noch nicht vollständig stabil – aber ein entscheidender Schritt in eine neue Richtung:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Weg von Cloud-Abhängigkeiten<br>Hin zu echter, persönlicher AI direkt auf eigener Hardware</p>
</blockquote>



<p>Für AI-Business-Kontexte eröffnet das spannende Perspektiven:</p>



<ul class="wp-block-list">
<li>Datenschutzfreundliche AI-Lösungen</li>



<li>Edge-AI für Unternehmen</li>



<li>Individuelle Assistenzsysteme ohne Vendor Lock-in</li>
</ul>



<p>Die Frage ist nicht mehr, <em>ob</em> das funktioniert – sondern, <strong>wie schnell sich solche Systeme durchsetzen werden.</strong></p>



<p></p>
<ul class="shariff-buttons theme-round orientation-horizontal buttonsize-medium"><li class="shariff-button facebook shariff-nocustomcolor" style="background-color:#4273c8"><a href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.kimagazin.com%2Flokaler-ki-assistent%2F" title="Bei Facebook teilen" aria-label="Bei Facebook teilen" role="button" rel="nofollow" class="shariff-link" style="; background-color:#3b5998; color:#fff" target="_blank"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 32"><path fill="#3b5998" d="M17.1 0.2v4.7h-2.8q-1.5 0-2.1 0.6t-0.5 1.9v3.4h5.2l-0.7 5.3h-4.5v13.6h-5.5v-13.6h-4.5v-5.3h4.5v-3.9q0-3.3 1.9-5.2t5-1.8q2.6 0 4.1 0.2z"/></svg></span></a></li><li class="shariff-button twitter shariff-nocustomcolor" style="background-color:#595959"><a href="https://twitter.com/share?url=https%3A%2F%2Fwww.kimagazin.com%2Flokaler-ki-assistent%2F&text=Lokaler%20KI-Assistent%3A%20Vom%20Sci-Fi-Konzept%20zur%20Business-Realit%C3%A4t" title="Bei X teilen" aria-label="Bei X teilen" role="button" rel="noopener nofollow" class="shariff-link" style="; background-color:#000; color:#fff" target="_blank"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="#000" d="M14.258 10.152L23.176 0h-2.113l-7.747 8.813L7.133 0H0l9.352 13.328L0 23.973h2.113l8.176-9.309 6.531 9.309h7.133zm-2.895 3.293l-.949-1.328L2.875 1.56h3.246l6.086 8.523.945 1.328 7.91 11.078h-3.246zm0 0"/></svg></span></a></li><li class="shariff-button linkedin shariff-nocustomcolor" style="background-color:#1488bf"><a href="https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fwww.kimagazin.com%2Flokaler-ki-assistent%2F" title="Bei LinkedIn teilen" aria-label="Bei LinkedIn teilen" role="button" rel="noopener nofollow" class="shariff-link" style="; background-color:#0077b5; color:#fff" target="_blank"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 27 32"><path fill="#0077b5" d="M6.2 11.2v17.7h-5.9v-17.7h5.9zM6.6 5.7q0 1.3-0.9 2.2t-2.4 0.9h0q-1.5 0-2.4-0.9t-0.9-2.2 0.9-2.2 2.4-0.9 2.4 0.9 0.9 2.2zM27.4 18.7v10.1h-5.9v-9.5q0-1.9-0.7-2.9t-2.3-1.1q-1.1 0-1.9 0.6t-1.2 1.5q-0.2 0.5-0.2 1.4v9.9h-5.9q0-7.1 0-11.6t0-5.3l0-0.9h5.9v2.6h0q0.4-0.6 0.7-1t1-0.9 1.6-0.8 2-0.3q3 0 4.9 2t1.9 6z"/></svg></span></a></li><li class="shariff-button whatsapp shariff-nocustomcolor" style="background-color:#5cbe4a"><a href="https://api.whatsapp.com/send?text=https%3A%2F%2Fwww.kimagazin.com%2Flokaler-ki-assistent%2F%20Lokaler%20KI-Assistent%3A%20Vom%20Sci-Fi-Konzept%20zur%20Business-Realit%C3%A4t" title="Bei Whatsapp teilen" aria-label="Bei Whatsapp teilen" role="button" rel="noopener nofollow" class="shariff-link" style="; background-color:#34af23; color:#fff" target="_blank"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#34af23" d="M17.6 17.4q0.2 0 1.7 0.8t1.6 0.9q0 0.1 0 0.3 0 0.6-0.3 1.4-0.3 0.7-1.3 1.2t-1.8 0.5q-1 0-3.4-1.1-1.7-0.8-3-2.1t-2.6-3.3q-1.3-1.9-1.3-3.5v-0.1q0.1-1.6 1.3-2.8 0.4-0.4 0.9-0.4 0.1 0 0.3 0t0.3 0q0.3 0 0.5 0.1t0.3 0.5q0.1 0.4 0.6 1.6t0.4 1.3q0 0.4-0.6 1t-0.6 0.8q0 0.1 0.1 0.3 0.6 1.3 1.8 2.4 1 0.9 2.7 1.8 0.2 0.1 0.4 0.1 0.3 0 1-0.9t0.9-0.9zM14 26.9q2.3 0 4.3-0.9t3.6-2.4 2.4-3.6 0.9-4.3-0.9-4.3-2.4-3.6-3.6-2.4-4.3-0.9-4.3 0.9-3.6 2.4-2.4 3.6-0.9 4.3q0 3.6 2.1 6.6l-1.4 4.2 4.3-1.4q2.8 1.9 6.2 1.9zM14 2.2q2.7 0 5.2 1.1t4.3 2.9 2.9 4.3 1.1 5.2-1.1 5.2-2.9 4.3-4.3 2.9-5.2 1.1q-3.5 0-6.5-1.7l-7.4 2.4 2.4-7.2q-1.9-3.2-1.9-6.9 0-2.7 1.1-5.2t2.9-4.3 4.3-2.9 5.2-1.1z"/></svg></span></a></li><li class="shariff-button mailto shariff-nocustomcolor" style="background-color:#a8a8a8"><a href="mailto:?body=https%3A%2F%2Fwww.kimagazin.com%2Flokaler-ki-assistent%2F&subject=Lokaler%20KI-Assistent%3A%20Vom%20Sci-Fi-Konzept%20zur%20Business-Realit%C3%A4t" title="Per E-Mail versenden" aria-label="Per E-Mail versenden" role="button" rel="noopener nofollow" class="shariff-link" style="; background-color:#999; color:#fff"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#999" d="M32 12.7v14.2q0 1.2-0.8 2t-2 0.9h-26.3q-1.2 0-2-0.9t-0.8-2v-14.2q0.8 0.9 1.8 1.6 6.5 4.4 8.9 6.1 1 0.8 1.6 1.2t1.7 0.9 2 0.4h0.1q0.9 0 2-0.4t1.7-0.9 1.6-1.2q3-2.2 8.9-6.1 1-0.7 1.8-1.6zM32 7.4q0 1.4-0.9 2.7t-2.2 2.2q-6.7 4.7-8.4 5.8-0.2 0.1-0.7 0.5t-1 0.7-0.9 0.6-1.1 0.5-0.9 0.2h-0.1q-0.4 0-0.9-0.2t-1.1-0.5-0.9-0.6-1-0.7-0.7-0.5q-1.6-1.1-4.7-3.2t-3.6-2.6q-1.1-0.7-2.1-2t-1-2.5q0-1.4 0.7-2.3t2.1-0.9h26.3q1.2 0 2 0.8t0.9 2z"/></svg></span></a></li></ul></div>]]></content:encoded>
					
		
		<enclosure url="https://www.kimagazin.com/wp-content/uploads/aiboxly.mp4" length="21822824" type="video/mp4" />

			</item>
		<item>
		<title>Self-Attention entschlüsselt – wie Transformer wirklich denken</title>
		<link>https://www.kimagazin.com/self-attention-im-detail/</link>
		
		<dc:creator><![CDATA[Oskar Kohler]]></dc:creator>
		<pubDate>Tue, 31 Mar 2026 20:30:54 +0000</pubDate>
				<category><![CDATA[Inside AI]]></category>
		<guid isPermaLink="false">https://www.kimagazin.com/?p=2691</guid>

					<description><![CDATA[Dies ist Teil 7 der Kursserie „ChatGPT &#38; Co verstehen: Wie große Sprachmodelle wirklich arbeiten – anschaulich &#38;&#8230;]]></description>
										<content:encoded><![CDATA[
<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Dies ist Teil 7 der Kursserie „ChatGPT &amp; Co verstehen: Wie große Sprachmodelle wirklich arbeiten – anschaulich &amp; interaktiv“.</p>
</blockquote>



<h2 id="dem-self-attention-mechanismus-unter-die-haube-geschaut" class="wp-block-heading">Dem Self-Attention-Mechanismus unter die Haube geschaut!</h2>



<p>Das <strong>Ziel von Self-Attention</strong> ist es, die <strong>wechselseitigen Abhängigkeiten zwischen Tokens im Satzkontext zu erkennen und zu gewichten</strong>.</p>



<figure class="wp-block-image size-full"><img  loading="lazy"  decoding="async"  width="1000"  height="100"  src="https://www.kimagazin.com/wp-content/uploads/context.svg"  alt=""  class="wp-image-2696" ></figure>



<p>Für jedes einzelne Token wird dabei ein <strong>neues kontextangepasstes Embedding</strong> berechnet – also ein <strong>neuer Merkmalsvektor</strong>, der die gewichteten Informationen <strong>aller Tokens bis zum aktuellen Token im Satz berücksichtigt</strong>.<br>So entsteht für jedes Token eine <strong>neue Repräsentation</strong>, die <strong>seine Bedeutung im Kontext der anderen Tokens widerspiegelt</strong>.</p>



<figure class="wp-block-image size-large"><img  loading="lazy"  decoding="async"  width="1024"  height="475"  src="https://www.kimagazin.com/wp-content/uploads/context-embedding-1024x475.webp"  alt=""  class="wp-image-2698"  srcset="https://www.kimagazin.com/wp-content/uploads/context-embedding-1024x475.webp 1024w, https://www.kimagazin.com/wp-content/uploads/context-embedding-300x139.webp 300w, https://www.kimagazin.com/wp-content/uploads/context-embedding-768x356.webp 768w, https://www.kimagazin.com/wp-content/uploads/context-embedding-1536x712.webp 1536w, https://www.kimagazin.com/wp-content/uploads/context-embedding-380x176.webp 380w, https://www.kimagazin.com/wp-content/uploads/context-embedding-550x255.webp 550w, https://www.kimagazin.com/wp-content/uploads/context-embedding-800x371.webp 800w, https://www.kimagazin.com/wp-content/uploads/context-embedding-1160x538.webp 1160w, https://www.kimagazin.com/wp-content/uploads/context-embedding-80x37.webp 80w, https://www.kimagazin.com/wp-content/uploads/context-embedding.webp 1868w"  sizes="auto, (max-width: 1024px) 100vw, 1024px" ></figure>



<p><em>Jedes Token startet mit einem eigenen Embedding aus der <strong>Roh-Embedding-Lookup-Tabelle</strong> – sie wird während des Trainings gelernt und bleibt bei der Inferenz unverändert. So kann etwa „zwei“ als Zahl, „schwarze“ als Farbe und „Katzen“ als Tier dargestellt werden.<br>Durch den Transformer-Mechanismus werden diese Informationen gemeinsam verarbeitet. Dadurch erhält das Token „Katzen“ ein neues, kontextangepasstes Embedding, das die Bedeutung des gesamten Satzes widerspiegelt – das Bild zweier schwarzer Katzen. (Reale Embeddings sind natürlich latent, wie wir bereits gesehen haben.)</em></p>



<p>Ein Transformer führt eine <strong>große Menge an Berechnungen durch</strong> – und das gleichzeitig für viele Tokens.<br>Um all diese Berechnungen – von den Q/K/V-Transformationen bis zur Gewichtung der Kontextinformationen – effizient durchzuführen, braucht es ein Werkzeug, das viele Operationen <strong>parallel und blitzschnell</strong> ausführen kann.</p>



<p><strong>➔ Hier kommen Matrizen ins Spiel &#8230;</strong></p>



<h2 id="mathe-keine-sorge" class="wp-block-heading">Mathe? Keine Sorge!</h2>



<p>Um Self-Attention richtig zu verstehen, brauchen wir etwas Mathe – aber keine Angst, das ist <strong>handlich und intuitiv</strong>.</p>



<div class="cnvs-block-alert cnvs-block-alert-1774988256900 is-style-cnvs-block-alert-info" >
	<div class="cnvs-block-alert-inner">
		

<p>Die <strong>zwei wichtigsten Werkzeuge</strong> sind:</p>



<p><strong>Vektoren</strong>: Listen von Zahlen (kennen wir bereits)</p>



<pre class="wp-block-code"><code>&#091;0.3, -1.2, 4.7, ...]</code></pre>



<p><strong>Matrizen</strong>: Tabellen aus Zahlen – sie ermöglichen schnelle, parallele Berechnungen</p>



<pre class="wp-block-code"><code>&#091; 1  2  3 ]
&#091; 4  5  6 ]
&#091; 7  8  9 ]</code></pre>

	</div>
	</div>



<h3 id="warum-matrizen" class="wp-block-heading">Warum Matrizen?</h3>



<p>Die <strong>bahnbrechende Publikation von Vaswani et al. („Attention is All You Need“)</strong> hat nicht nur eine revolutionäre Architektur vorgestellt, sondern sie auch <strong>vollständig auf Matrizenoperationen aufgebaut</strong>.<br>Dieser Ansatz bildet bis heute das Herzstück moderner Transformer-Modelle – darunter GPT, Claude, Gemini, Granite und viele andere.<br>Die Rechenstruktur wurde seitdem nur leicht optimiert, die Grundidee ist aber nahezu <strong>unverändert übernommen worden</strong>.</p>



<h3 id="warum-matrizen-so-maechtig-sind" class="wp-block-heading">Warum Matrizen so mächtig sind</h3>



<p>Matrizen haben zwei entscheidende Vorteile:</p>



<ol class="wp-block-list">
<li>Sie ermöglichen es, <strong>Millionen mathematische Operationen in einem Schritt</strong> durchzuführen – dank hochoptimierter Matrixmultiplikation.</li>



<li>Sie lassen sich hervorragend auf <strong>GPUs parallelisieren</strong> – was sie <strong>ultra schnell</strong> macht.</li>
</ol>



<p>Matrizen werden schon seit Jahrzehnten in der Computergrafik eingesetzt – besonders in einem Bereich, den fast jeder kennt: <strong>3D-Spiele</strong>.<br>In den letzten Jahren ist die Qualität und der Realismus in Games regelrecht explodiert.<br>Hauptgrund dafür: <strong>Grafikkarten (GPUs)</strong> wurden immer leistungsfähiger und können <strong>Millionen von Vektor- und Matrizenberechnungen pro Sekunde</strong> durchführen.</p>



<p>Man könnte sagen: <strong>Power-Gamer haben den Weg bereitet</strong>, damit heutige Computer zu echten <strong>Matrizenspezialisten</strong> geworden sind – eine Entwicklung, von der KI-Modelle heute massiv profitieren.</p>



<h3 id="erlebe-matrizen-in-aktion" class="wp-block-heading">Erlebe Matrizen in Aktion!</h3>



<p>In dieser 3D-Szene siehst du ein Raumschiff als anschauliches Beispiel.</p>



<p><strong>Eine Matrix genügt</strong><br>Anstatt jeden Rechenschritt – wie Verschiebung, Rotation (um X-, Y- und Z-Achse), Skalierung usw. – einzeln auszuführen, wird das gesamte Modell inklusive Umgebung mit <strong>einer einzigen sogenannten Model-View-Projection-Matrix (MVP)</strong> transformiert.</p>



<p><strong>Verschiedene Blickwinkel</strong><br>Du kannst das Raumschiff dabei aus unterschiedlichen <strong>Perspektiven</strong> betrachten – ähnlich wie wir das später bei <strong>Transformationen</strong> der <strong>Embeddings</strong> machen, um Informationen gezielt aus verschiedenen <strong>Blickwinkeln</strong> zu erfassen.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f449.png" alt="👉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Probiere es aus: Du kannst dich mit der Maus oder Touch in der Szene frei bewegen!</p>



<ul class="wp-block-list">
<li><strong>linke Maustaste: drehen</strong>,</li>



<li><strong>rechte Maustaste: verschieben</strong>,</li>



<li><strong>Scrollrad: zoomen</strong>.</li>
</ul>
</blockquote>


<div id="spaceship" style="width:100%; height:500px;"></div>

<!-- es-module-shims laden -->
<script async src="https://ga.jspm.io/npm:es-module-shims@1.10.0/dist/es-module-shims.js"></script>

<!-- Importmap -->
<script type="importmap-shim">
{
  "imports": {
    "three": "/wp-content/uploads/kimagazin-html/js/three/three.module.js",
    "three/addons/controls/": "/wp-content/uploads/kimagazin-html/js/three/controls/",
    "three/addons/loaders/": "/wp-content/uploads/kimagazin-html/js/three/loaders/",
    "three/addons/utils/": "/wp-content/uploads/kimagazin-html/js/three/utils/"
  }
}
</script>

<!-- Dein ursprüngliches Script -->
<script type="module-shim">
  import * as THREE from 'three';
  import { OrbitControls } from 'three/addons/controls/OrbitControls.js';
  import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js';

  const scene = new THREE.Scene();
  const camera = new THREE.PerspectiveCamera(
    60,
    window.innerWidth / window.innerHeight,
    0.1,
    500
  );
  camera.position.set(5, 3, 6);

  const container = document.getElementById('spaceship');
  if (!container) {
    throw new Error('Container #spaceship nicht gefunden.');
  }

  const renderer = new THREE.WebGLRenderer({ antialias: true });
  renderer.setPixelRatio(window.devicePixelRatio);
  renderer.setSize(container.clientWidth, container.clientHeight);
  container.appendChild(renderer.domElement);

  const controls = new OrbitControls(camera, renderer.domElement);
  controls.enableDamping = true;

  const textureLoader = new THREE.TextureLoader();
  const envMap = textureLoader.load(
    '/wp-content/uploads/kimagazin-html/3d/asteroid_field_2.webp',
    () => {
      envMap.mapping = THREE.EquirectangularReflectionMapping;

      if ('colorSpace' in envMap && THREE.SRGBColorSpace) {
        envMap.colorSpace = THREE.SRGBColorSpace;
      } else if ('encoding' in envMap && THREE.sRGBEncoding) {
        envMap.encoding = THREE.sRGBEncoding;
      }

      scene.background = envMap;
    }
  );

  const grid = new THREE.GridHelper(20, 20);
  grid.material.opacity = 0.3;
  grid.material.transparent = true;
  scene.add(grid);

  scene.add(new THREE.AmbientLight(0xffffff, 0.4));
  scene.add(new THREE.HemisphereLight(0xffffff, 0x222244, 0.6));

  const dirLight = new THREE.DirectionalLight(0xffffff, 1.4);
  dirLight.position.set(10, 10, 10);
  scene.add(dirLight);

  const loader = new GLTFLoader();
  loader.load(
    '/wp-content/uploads/kimagazin-html/3d/low_space_ship.glb',
    (gltf) => {
      const model = gltf.scene;

      const box = new THREE.Box3().setFromObject(model);
      const center = new THREE.Vector3();
      box.getCenter(center);
      model.position.sub(center);

      model.traverse((child) => {
        if (child.isMesh && child.material) {
          child.material.envMap = envMap;
          child.material.envMapIntensity = 1.5;

          if ('metalness' in child.material) {
            child.material.metalness = 0.5;
          }

          if ('roughness' in child.material) {
            child.material.roughness = 0.2;
          }

          child.material.needsUpdate = true;
        }
      });

      scene.add(model);
    },
    undefined,
    (error) => {
      console.error('Fehler beim Laden des Modells:', error);
    }
  );

  window.addEventListener('resize', () => {
    const width = container.clientWidth;
    const height = container.clientHeight;

    if (!width || !height) return;

    camera.aspect = width / height;
    camera.updateProjectionMatrix();
    renderer.setSize(width, height);
  });

  function animate() {
    requestAnimationFrame(animate);
    controls.update();
    renderer.render(scene, camera);
  }

  animate();
</script>



<h2 id="drei-verschiedene-ansichten-von-jedem-token" class="wp-block-heading">Drei verschiedene Ansichten von jedem Token</h2>



<p>Jedes Token liegt ursprünglich als <strong>Embedding-Vektor</strong> vor – ein Vektor mit z. B. 12.288 Zahlen, die seine Bedeutung in einem hochdimensionalen Raum abbilden.</p>



<p>Aus diesem Embedding-Vektor werden durch Projektion <strong>drei neue Vektoren</strong> gebildet, die im Attention-Mechanismus unterschiedliche Funktionen erfüllen:</p>



<ul class="wp-block-list">
<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2753.png" alt="❓" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Query (Q) Vektor</strong> – der mit den Keys der anderen Tokens auf Ähnlichkeit geprüft wird</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f510.png" alt="🔐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Key (K) Vektor</strong> – der als Grundlage für diesen Vergleich dient</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4e6.png" alt="📦" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Value (V) Vektor</strong> – dessen Inhalte – je nach Relevanz – in die neue Darstellung des Tokens einfließen</li>
</ul>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img  loading="lazy"  decoding="async"  width="1024"  height="879"  src="https://www.kimagazin.com/wp-content/uploads/qkv-1024x879.webp"  alt=""  class="wp-image-2705"  style="width:auto;height:600px"  srcset="https://www.kimagazin.com/wp-content/uploads/qkv-1024x879.webp 1024w, https://www.kimagazin.com/wp-content/uploads/qkv-300x258.webp 300w, https://www.kimagazin.com/wp-content/uploads/qkv-768x659.webp 768w, https://www.kimagazin.com/wp-content/uploads/qkv-1536x1318.webp 1536w, https://www.kimagazin.com/wp-content/uploads/qkv-380x326.webp 380w, https://www.kimagazin.com/wp-content/uploads/qkv-550x472.webp 550w, https://www.kimagazin.com/wp-content/uploads/qkv-800x687.webp 800w, https://www.kimagazin.com/wp-content/uploads/qkv-1160x996.webp 1160w, https://www.kimagazin.com/wp-content/uploads/qkv-80x69.webp 80w, https://www.kimagazin.com/wp-content/uploads/qkv.webp 1596w"  sizes="auto, (max-width: 1024px) 100vw, 1024px" ></figure>
</div>


<p><em>„Im Bild sehen wir einen einzelnen Token Vektor mit 4 Merkmalen, der auf 3 Dimensionen projiziert wurde – in realen Modellen wie GPT‑3.5 bestehen solche Vektoren tatsächlich aus über 12.288 Dimensionen.“</em></p>



<p>Die Transformation erfolgt durch drei verschiedene – beim Training mit Milliarden Wörtern erlernte – Gewichtsmatrizen:<br>Eine für Query, eine für Key, eine für Value.</p>



<div class="cnvs-block-alert cnvs-block-alert-1774992569923 is-style-cnvs-block-alert-info" >
	<div class="cnvs-block-alert-inner">
		

<p><strong>Kurzer Exkurs zur Multiplikation von Matrizen und Vektoren:</strong><br>Multiplizierst du einen Vektor mit einer Matrix, dann gehst du Spalte für Spalte durch die Matrix: Du multiplizierst jedes Element des Vektors mit dem Element derselben Zeile in dieser Spalte, addierst die Produkte – und diese Summen sind die Einträge des neuen Vektors.<br>Die Länge des Vektors muss mit der Anzahl der Zeilen der Matrix übereinstimmen.<br>Die Rechenschritte sind einfach – ich habe sie dir hier aufgeschrieben:</p>



<div class="wp-block-katex-display-block katex-eq" data-katex-display="true"><pre>\vec{v} \cdot W =
\begin{bmatrix}
\color{blue}{2} &amp; \color{red}{3} &amp; \color{green}{1} &amp; \color{orange}{1}
\end{bmatrix}
\cdot
\begin{bmatrix}
\color{blue}{1} &amp; \color{blue}{0} &amp; \color{blue}{2} \\
\color{red}{2} &amp; \color{red}{1} &amp; \color{red}{1} \\
\color{green}{0} &amp; \color{green}{1} &amp; \color{green}{0} \\
\color{orange}{1} &amp; \color{orange}{0} &amp; \color{orange}{1}
\end{bmatrix}
=
\begin{bmatrix}
\color{blue}{9} &amp; \color{red}{4} &amp; \color{green}{8}
\end{bmatrix}</pre></div>



<div class="wp-block-katex-display-block katex-eq" data-katex-display="true"><pre>\begin{aligned}
\color{blue}{2} \cdot \color{blue}{1} + \color{red}{3} \cdot \color{red}{2} + \color{green}{1} \cdot \color{green}{0} + \color{orange}{1} \cdot \color{orange}{1} &amp;= 2 + 6 + 0 + 1 = \color{blue}{9} \\
\color{blue}{2} \cdot \color{blue}{0} + \color{red}{3} \cdot \color{red}{1} + \color{green}{1} \cdot \color{green}{1} + \color{orange}{1} \cdot \color{orange}{0} &amp;= 0 + 3 + 1 + 0 = \color{red}{4} \\
\color{blue}{2} \cdot \color{blue}{2} + \color{red}{3} \cdot \color{red}{1} + \color{green}{1} \cdot \color{green}{0} + \color{orange}{1} \cdot \color{orange}{1} &amp;= 4 + 3 + 0 + 1 = \color{green}{8}
\end{aligned}</pre></div>

	</div>
	</div>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p></p>
</blockquote>



<p>Für jedes Token wird das ursprüngliche Embedding <strong>x_i</strong> mit den drei Gewichtsmatrizen<br><strong>W_Q</strong>, <strong>W_K</strong> und <strong>W_V</strong> multipliziert, um die drei Vektoren <strong>Query (Q)</strong>, <strong>Key (K)</strong> und <strong>Value (V)</strong> zu erzeugen.<br>Diese bilden die Grundlage für den Self-Attention-Mechanismus – vollständig auf Matrizenoperationen basierend und dadurch sehr effizient.</p>



<p>In der Praxis kommt ein weiterer Vorteil hinzu: Alle Tokens der Eingabesequenz <strong>X</strong> werden parallel verarbeitet – über eine einzige Matrixmultiplikation, bei der jede Zeile einem Token entspricht.</p>



<div class="cnvs-block-alert cnvs-block-alert-1774992796771 is-style-cnvs-block-alert-info" >
	<div class="cnvs-block-alert-inner">
		

<div class="wp-block-katex-display-block katex-eq" data-katex-display="true"><pre>\begin{aligned}
\mathbf{Q} &amp;= \mathbf{X} \cdot \mathbf{W}^Q \\
\mathbf{K} &amp;= \mathbf{X} \cdot \mathbf{W}^K \\
\mathbf{V} &amp;= \mathbf{X} \cdot \mathbf{W}^V
\end{aligned}</pre></div>

	</div>
	</div>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p></p>
</blockquote>



<p>Die <strong>Gewichtsmatrizen</strong> haben so viele <strong>Zeilen wie das Embedding Dimensionen besitzt</strong> (z. B. 12.288) und so viele <strong>Spalten wie die gewünschte Zieldimension vorgibt</strong> (z. B. 128).</p>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img  loading="lazy"  decoding="async"  width="1024"  height="381"  src="https://www.kimagazin.com/wp-content/uploads/qkv-transform-1024x381.webp"  alt=""  class="wp-image-2716"  style="width:auto;height:250px"  srcset="https://www.kimagazin.com/wp-content/uploads/qkv-transform-1024x381.webp 1024w, https://www.kimagazin.com/wp-content/uploads/qkv-transform-300x112.webp 300w, https://www.kimagazin.com/wp-content/uploads/qkv-transform-768x285.webp 768w, https://www.kimagazin.com/wp-content/uploads/qkv-transform-1536x571.webp 1536w, https://www.kimagazin.com/wp-content/uploads/qkv-transform-2048x761.webp 2048w, https://www.kimagazin.com/wp-content/uploads/qkv-transform-380x141.webp 380w, https://www.kimagazin.com/wp-content/uploads/qkv-transform-550x204.webp 550w, https://www.kimagazin.com/wp-content/uploads/qkv-transform-800x297.webp 800w, https://www.kimagazin.com/wp-content/uploads/qkv-transform-1160x431.webp 1160w, https://www.kimagazin.com/wp-content/uploads/qkv-transform-80x30.webp 80w, https://www.kimagazin.com/wp-content/uploads/qkv-transform.webp 2120w"  sizes="auto, (max-width: 1024px) 100vw, 1024px" ></figure>
</div>


<p>Das Embedding wird mit jeder Spalte der Gewichtsmatrix elementweise multipliziert und die Produkte addiert:</p>



<ul class="wp-block-list">
<li>Die erste Spalte liefert das <strong>erste neue Merkmal</strong>,</li>



<li>die zweite Spalte das <strong>zweite neue Merkmal</strong>,</li>



<li>und so weiter &#8230;</li>
</ul>



<p>Jedes dieser neuen Merkmale entsteht durch eine <strong>lineare Projektion</strong> der ursprünglichen Merkmale – einige werden dabei <strong>verstärkt</strong>, andere <strong>abgeschwächt</strong>, manche vollständig <strong>ausgeblendet</strong> oder sogar <strong>umgekehrt (negiert)</strong>.</p>



<p>Auf diese Weise entsteht aus dem ursprünglichen Merkmalsvektor eine neue Repräsentation in einem <strong>kompakteren, reduzierten Merkmalsraum</strong> – zum Beispiel von <strong>12.288 auf 128 Merkmale</strong>.</p>



<h3 id="wichtig-nochmals-zu-erwaehnen" class="wp-block-heading">Wichtig nochmals zu erwähnen!</h3>



<ul class="wp-block-list">
<li><strong>Alle Tokens verwenden dieselben Q-, K- und V-Matrizen pro Attention-Head.</strong><br>Es gibt also keine token-spezifischen Gewichtungen, sondern eine einheitliche Transformation für alle Eingaben – das sorgt für maximale Effizienz und Generalisierung.</li>



<li><strong>Die Q-, K- und V-Matrizen sind unabhängig voneinander.</strong><br>Sie lassen sich <strong>nicht voneinander ableiten oder direkt in Beziehung setzen</strong> – jede von ihnen hat eigene Parameter, die <strong>ausschließlich durch das Training gelernt wurden</strong>.</li>



<li>Mit einer solchen <strong>Q/K/V-Projektion kann das Modell jeweils nur eine bestimmte Art semantischer Beziehung zwischen Tokens erfassen</strong>.<br>Ein einzelner Attention-Head bildet dabei <strong>typischerweise genau eine Perspektive</strong> ab – z. B. „welches Subjekt gehört zu welchem Verb?“.</li>



<li>In einem vollständigen Transformer-Modell arbeiten jedoch <strong>mehrere Heads gleichzeitig</strong> und <strong>in mehreren gestapelten Layern</strong>.<br>So entstehen <strong>tausende Projektionen</strong>, die gemeinsam eine Vielzahl semantischer Muster und Abhängigkeiten erfassen – vom Satzbau bis zur Bedeutung über ganze Absätze hinweg – mehr dazu in einem späteren Abschnitt.</li>
</ul>



<h3 id="warum-wird-die-dimension-reduziert" class="wp-block-heading">Warum wird die Dimension reduziert?</h3>



<ul class="wp-block-list">
<li>Die Reduktion <strong>spart Rechenzeit und Speicher</strong> – besonders bei großer Kontextgröße,<br>da die Berechnungen im Attention-Mechanismus <strong>quadratisch mit der Anzahl der Tokens</strong> zunehmen.</li>



<li>Sie erlaubt es dem Modell, die Informationen in einer <strong>kompakteren Form darzustellen</strong> –<br>jeder sogenannte <strong>Attention-Kopf</strong> arbeitet dadurch mit einer eigenen Projektion, die bestimmte Aspekte der ursprünglichen Merkmale hervorheben kann.</li>



<li>Der Transformer verwendet mehrere solcher <strong>Attention-Köpfe</strong>.<br>Damit jeder Kopf effizient arbeiten kann, wird die ursprüngliche Embedding-Dimension aufgeteilt – z. B. bei 96 Köpfen: <strong>12.288 / 96 = 128 Dimensionen pro Kopf</strong>.</li>
</ul>



<h4 id="%f0%9f%91%89-in-dieser-interaktiven-demo-wird-das-prinzip-anschaulich-visualisiert" class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f449.png" alt="👉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> In dieser interaktiven Demo wird das Prinzip anschaulich visualisiert</h4>


<div class=outer-wrapper>
<div class=container>
<div class=feature id=features></div>
<div class=arrow>⇨</div>
<div class=projection id=projections></div>
</div>
</div>
<div class=controls>
<label for=dimRange>Ziel-Dimensionen: </label>
<input type=range id=dimRange min=2 max=20 value=8>
<span id=dimLabel>8</span>
</div>
<style>.outer-wrapper{display:flex;justify-content:center}.container{display:flex;align-items:flex-end;justify-content:center;gap:2rem;padding:1rem 2rem;min-height:150px}.feature,.projection{display:flex;align-items:flex-end;gap:.2rem}.bar{display:inline-block;vertical-align:bottom}.bar.left{width:5px}.bar.right{background:orange}.arrow{font-size:3rem;align-self:center;color:#888}.controls{margin-top:2rem;text-align:center}</style>
<script>const numInputDims=20,features=Array.from({length:20},(()=>Math.random())),colors=["#3498db","#e74c3c","#2ecc71","#9b59b6","#f1c40f","#e67e22","#1abc9c","#34495e","#ff00aa","#00ffaa"],containerLeft=document.getElementById("features"),containerRight=document.getElementById("projections"),dimRange=document.getElementById("dimRange"),dimLabel=document.getElementById("dimLabel");function render(e){containerRight.innerHTML="",dimLabel.textContent=e;for(let t=0;t<e;t++){const n=features.map((()=>2*Math.random()-1));let a=0;features.forEach(((e,t)=>a+=e*n[t])),a=(a+1)/2,a=Math.max(.05,Math.min(1,a));const l=document.createElement("div");l.className="bar right",l.style.height=100*a+"px",l.style.width=`${Math.max(4,100/e)}px`,l.style.background=colors[t%colors.length],l.style.display="inline-block",containerRight.appendChild(l)}}features.forEach(((e,t)=>{const n=document.createElement("div");n.className="bar left",n.style.height=100*e+"px",n.style.width="5px",n.style.background=colors[t%colors.length],n.style.display="inline-block",containerLeft.appendChild(n)})),dimRange.addEventListener("input",(e=>{render(+e.target.value)})),render(+dimRange.value)</script>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<h4 id="wie-entstehen-diese-qkv-matrizen" class="wp-block-heading">Wie entstehen diese Q,K,V Matrizen?</h4>



<p>Die Q-, K- und V-Matrizen werden durch Training mit riesigen Textmengen gelernt – meist Milliarden von Wörtern.<br>Das Trainingsziel ist immer die <strong>Vorhersage des nächsten Tokens</strong><br>-&gt; Fehlerhafte Vorhersagen führen zu Rückmeldungen über <strong>Backpropagation</strong>.</p>



<p>Dadurch lernen die Matrizen:</p>



<ul class="wp-block-list">
<li>Query- und Key-Vektoren so anzupassen, dass <strong>relevante Tokens hohe Ähnlichkeit zueinander aufweisen</strong></li>



<li>Value-Vektoren so zu gestalten, dass <strong>nur kontextrelevante Informationen weitergegeben werden</strong></li>
</ul>
</blockquote>



<h2 id="so-erkennt-der-transformer-welche-tokens-relevant-fuereinander-sind" class="wp-block-heading">So erkennt der Transformer, welche Tokens relevant füreinander sind</h2>



<p>Im Kapitel über Embeddings haben wir bereits gesehen, dass <strong>semantisch ähnliche Tokens im Merkmalsraum näher beieinander liegen.</strong></p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img  loading="lazy"  decoding="async"  width="942"  height="877"  src="https://www.kimagazin.com/wp-content/uploads/cos.webp"  alt=""  class="wp-image-2719"  style="width:auto;height:300px"  srcset="https://www.kimagazin.com/wp-content/uploads/cos.webp 942w, https://www.kimagazin.com/wp-content/uploads/cos-300x279.webp 300w, https://www.kimagazin.com/wp-content/uploads/cos-768x715.webp 768w, https://www.kimagazin.com/wp-content/uploads/cos-380x354.webp 380w, https://www.kimagazin.com/wp-content/uploads/cos-550x512.webp 550w, https://www.kimagazin.com/wp-content/uploads/cos-800x745.webp 800w, https://www.kimagazin.com/wp-content/uploads/cos-80x74.webp 80w"  sizes="auto, (max-width: 942px) 100vw, 942px" ></figure>
</div>


<p>Die Nähe zweier Vektoren wird entweder über ihren <strong>Abstand</strong> oder den <strong>Winkel</strong> zwischen ihnen gemessen – bei manchen Verfahren spielt auch ihre <strong>Länge</strong> eine Rolle.</p>



<p>Bei Transformern spielt vor allem der <strong>Winkel zwischen den Vektoren</strong> eine zentrale Rolle – nicht ihr euklidischer Abstand.</p>



<p>Zur Erinnerung: Es gibt zwei gängige Verfahren, um Ähnlichkeit über Winkel zu messen:</p>



<p><strong>Skalares Produkt (Dot-Produkt)</strong><br>Hier werden die entsprechenden Komponenten zweier Vektoren multipliziert und anschließend aufsummiert.<br>Das Ergebnis ist ein einzelner Wert, der die semantische Ähnlichkeit ausdrückt:</p>



<ul class="wp-block-list">
<li>nahe <strong>0</strong> → kaum Ähnlichkeit</li>



<li><strong>positiv</strong> → semantisch ähnlich</li>



<li><strong>negativ</strong> → eher gegensätzlich</li>
</ul>



<div class="wp-block-katex-display-block katex-eq" data-katex-display="true"><pre>\mathbf{x} \cdot \mathbf{y} = \sum_{i=1}^{n} x_i , y_i</pre></div>



<p><strong>Kosinus-Ähnlichkeit</strong><br>Die Kosinus-Ähnlichkeit ist ein <strong>normalisiertes Skalarprodukt</strong>.<br>Sie berücksichtigt nur den <strong>Winkel</strong> zwischen den Vektoren – unabhängig von ihrer Länge.<br>Das Ergebnis liegt immer zwischen <strong>–1</strong> und <strong>1</strong>.</p>



<div class="wp-block-katex-display-block katex-eq" data-katex-display="true"><pre> cos(\theta) = \frac{ \vec{A} \cdot \vec{B} }{ | \vec{A} | \cdot | \vec{B} | }</pre></div>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Wert</th><th>Bedeutung</th></tr></thead><tbody><tr><td>+1</td><td>exakt gleiche Richtung</td></tr><tr><td>0</td><td>orthogonal → keine Ähnlichkeit</td></tr><tr><td>−1</td><td>exakt entgegengesetzt</td></tr></tbody></table></figure>



<h2 id="attention-attention" class="wp-block-heading">Attention Attention!</h2>



<p>Bei Transformern ist entscheidend, welche Tokens Einfluss aufeinander ausüben.<br>Genauer: Für jedes einzelne Token zählt, <strong>wie relevant die anderen Tokens für es sind</strong> – also welche Informationen sie beisteuern können, die zu seiner Repräsentation im Kontext beitragen.</p>



<p>Um diese Relevanz zu berechnen, haben wir die Tokens bereits mithilfe der Gewichtsmatrizen unterschiedlich projiziert:<br>Einmal als <strong>Query-Vektor</strong> und einmal als <strong>Key-/Value-Vektoren</strong>.<br>Je besser die <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2753.png" alt="❓" class="wp-smiley" style="height: 1em; max-height: 1em;" />Query eines Tokens zu den <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f510.png" alt="🔐" class="wp-smiley" style="height: 1em; max-height: 1em;" />Keys der anderen passt, desto mehr <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4e6.png" alt="📦" class="wp-smiley" style="height: 1em; max-height: 1em;" />Value wird von diesen Tokens übernommen.</p>



<h3 id="attention-score" class="wp-block-heading">Attention Score</h3>



<p>Die Berechnung der Aufmerksamkeit zwischen Tokens bezeichnet man als <strong>Attention Score</strong>.<br>Dabei geht es nicht um einen klassischen geometrischen Abstand, sondern um ein Maß für ihre <strong>Nähe im Merkmalsraum</strong> – zum Beispiel über die <strong>Kosinus-Ähnlichkeit</strong>.</p>



<p>Vaswani et al. entschieden sich für die <strong>pragmatische Lösung</strong>, die besonders effizient ist:<br>Statt die aufwändige Kosinus-Ähnlichkeit mit zusätzlicher Normierung zu berechnen,<br>verwenden sie direkt das <strong>Skalarprodukt (Dot-Produkt)</strong>:</p>



<div class="wp-block-katex-display-block katex-eq" data-katex-display="true"><pre>\text{score} = \mathbf{q} \cdot \mathbf{k}^\top</pre></div>



<p>Das Dot-Produkt hat noch einen weiteren Vorteil:<br>Beim Dot-Produkt tragen sowohl der <strong>Winkel zwischen den Vektoren</strong> als auch ihre <strong>Länge</strong> zum Ergebnis bei.<br>Damit hat das Modell die Freiheit, sowohl die <strong>Richtung</strong> (semantische Nähe) als auch die <strong>Stärke einzelner Merkmale</strong> (Vektorlängen) zu berücksichtigen.</p>



<p>Allerdings ergibt sich nun ein kleines Problem:<br><strong>Skalarprodukte in hochdimensionalen Räumen</strong> können sehr große Werte annehmen.<br>Das erschwert die spätere Gewichtung, weil einzelne Tokens dadurch <strong>übermäßig stark hervorgehoben</strong> werden, während andere kaum noch berücksichtigt würden.</p>



<p>Die Lösung ist einfach und effizient:<br>Man teilt das Ergebnis durch die <strong>Wurzel der Dimensionalität des Key-Vektors</strong> (√dk).<br>So bleiben die Scores stabil und vergleichbar:</p>



<div class="wp-block-katex-display-block katex-eq" data-katex-display="true"><pre>\text{score} = \frac{\mathbf{q} \cdot \mathbf{k}^\top}{\sqrt{d_k}}</pre></div>



<h4 id="%f0%9f%91%89-token-relevanz-probiere-aus-wie-sich-winkel-und-dimensionen-auf-cosine-similarity-und-dot-produkt-auswirken" class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f449.png" alt="👉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Token-Relevanz: Probiere aus, wie sich Winkel und Dimensionen auf Cosine Similarity und Dot-Produkt auswirken</h4>


<div class=csim-container>
<div class=csim-canvas-wrapper>
<canvas id=csim-canvas></canvas>
</div>
<div class=csim-ui>
<div class=csim-result-row>
<div class=csim-result><strong>Dot-Produkt:</strong> <span id=dot>0</span></div>
<div class=csim-result><strong>Attention-Score:</strong> <span id=vaswani>0</span></div>
</div>
<div class=csim-slider-group>
<label>Dimensionen:
<input type=range id=dim min=1 max=1000 step=1 value=1000>
</label>
<div class=csim-result><strong>Cosine Similarity:</strong> <span id=cosine>0</span></div>
</div>
<div class=csim-slider-group>
<label>Token 1 – Merkmal X:
<input type=range id=x1 min=-3 max=3 step=0.1 value=2>
</label>
<label>Token 1 – Merkmal Y:
<input type=range id=y1 min=-3 max=3 step=0.1 value=2>
</label>
</div>
<div class=csim-slider-group>
<label>Token 2 – Merkmal X:
<input type=range id=x2 min=-3 max=3 step=0.1 value=1>
</label>
<label>Token 2 – Merkmal Y:
<input type=range id=y2 min=-3 max=3 step=0.1 value=1>
</label>
</div>
</div>
</div>
<style>.csim-container{font-family:sans-serif;max-width:600px;margin:0 auto;padding:1em}.csim-header{text-align:center;font-size:1.2em;margin-bottom:1em}.csim-canvas-wrapper{display:flex;justify-content:center;margin-bottom:1em}#csim-canvas{width:400px;height:400px;background-color:#fff}.csim-ui{display:flex;flex-direction:column;gap:.5em}.csim-slider-group{display:flex;gap:1em;flex-wrap:wrap;margin-bottom:.5em}.csim-result-row{display:flex;gap:1em;flex-wrap:wrap;margin-bottom:.5em}.csim-ui label{background:#f0f0f0;padding:.3em;border-radius:5px;flex:1;min-width:130px}.csim-ui input[type=range]{width:100%}.csim-result{background:#f9f9f9;padding:.4em .6em;border-radius:5px;flex:1;min-width:130px}@media (prefers-color-scheme:dark){#csim-canvas{background-color:#111}.csim-result,.csim-ui label{background:#222;color:#eee}}</style>
<script>const canvas=document.getElementById("csim-canvas"),ctx=canvas.getContext("2d");function setupCanvas(){const t=window.devicePixelRatio||1,e=400;canvas.width=e*t,canvas.height=e*t,canvas.style.width="400px",canvas.style.height="400px",ctx.setTransform(t,0,0,t,0,0)}setupCanvas();const sliders=["x1","y1","x2","y2","dim"].map((t=>document.getElementById(t)));function draw(){const t=parseFloat(document.getElementById("x1").value),e=parseFloat(document.getElementById("y1").value),c=parseFloat(document.getElementById("x2").value),n=parseFloat(document.getElementById("y2").value),a=parseInt(document.getElementById("dim").value),o=400;ctx.clearRect(0,0,o,400);const x=200,l=200,i=170/3,s=t*i,d=-e*i,m=c*i,h=-n*i;ctx.lineWidth=2,ctx.strokeStyle="#aaa",ctx.beginPath(),ctx.moveTo(0,l),ctx.lineTo(o,l),ctx.moveTo(x,0),ctx.lineTo(x,400),ctx.stroke(),ctx.strokeStyle="blue",ctx.beginPath(),ctx.moveTo(x,l),ctx.lineTo(x+s,l+d),ctx.stroke(),ctx.strokeStyle="red",ctx.beginPath(),ctx.moveTo(x,l),ctx.lineTo(x+m,l+h),ctx.stroke();const r=(t,e,c,n)=>{ctx.beginPath(),ctx.arc(t,e,22,0,2*Math.PI),ctx.fillStyle=c,ctx.fill(),ctx.fillStyle="white",ctx.font="bold 11px sans-serif",ctx.textAlign="center",ctx.textBaseline="middle",ctx.fillText(n,t,e)},y=Math.hypot(t,e).toFixed(2),u=Math.hypot(c,n).toFixed(2);r(x+s,l+d,"blue",y),r(x+m,l+h,"red",u);const v=t*c+e*n,f=v*(a/2),g=v/(Math.hypot(t,e)*Math.hypot(c,n)),p=Math.acos(Math.min(Math.max(g,-1),1)),I=isNaN(p)?"–":(180*p/Math.PI).toFixed(1);ctx.beginPath(),ctx.arc(x,l,25,0,2*Math.PI),ctx.fillStyle="#333",ctx.fill(),ctx.fillStyle="#fff",ctx.font="bold 13px sans-serif",ctx.fillText(`${I}°`,x,l);const E=f/Math.sqrt(a);document.getElementById("cosine").textContent=g.toFixed(3),document.getElementById("dot").textContent=f.toFixed(2),document.getElementById("vaswani").textContent=E.toFixed(2)}sliders.forEach((t=>t.addEventListener("input",draw))),draw()</script>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><strong>Was bedeutet das T bei den Keys?</strong><br>Das ‚T‘ steht für Transponieren: Es macht aus dem Key-Zeilenvektor einen Spaltenvektor, sodass das Skalarprodukt mit dem Query-Zeilenvektor berechnet werden kann.</p>
</blockquote>



<h3 id="die-attention-score-matrix" class="wp-block-heading">Die Attention Score Matrix</h3>



<p>Jetzt berechnen wir diese Scores für <strong>alle möglichen Kombinationen von Tokens</strong> im Satzkontext.<br>Dazu erstellen wir eine Tabelle: <strong>Alle Tokens stehen sowohl in den Zeilen (als Query) als auch in den Spalten (als Key)</strong>.<br>An jedem Schnittpunkt wird das <strong>Skalarprodukt zwischen Query- und Key-Vektor</strong> berechnet – das ergibt den Attention Score.</p>



<p>So entsteht eine <strong>vollständige Attention-Matrix</strong>, die zeigt, <strong>wie stark jedes Token auf alle anderen achtet</strong>.<br><em>(In dieser Attention-Matrix treten nur positive Scores auf, obwohl negative ebenfalls möglich wären.)</em></p>


<script src="https://www.kimagazin.com/wp-content/plugins/kimagazin/js/plotly.min.js"></script><div class="plotly-container-full">  <div class="plot-wrapper"><div id=attention-matrix style="max-width:720px;max-height:520px;margin:auto;cursor:url('data:image/svg+xml;utf8,<svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;20&quot; height=&quot;20&quot;><circle cx=&quot;10&quot; cy=&quot;10&quot; r=&quot;5&quot; fill=&quot;red&quot;/></svg>') 10 10,auto"></div>
<div id=attention-container style=text-align:center;margin-top:1em>
<button id=mask-button onclick=toggleMask()><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f3ad.png" alt="🎭" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Maskierung aktivieren</button>
</div>
<style>#mask-button{background-color:#f0f0f0;color:#000;border:2px solid #444;border-radius:6px;padding:10px 20px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease;z-index:10;position:relative}#mask-button:hover{background-color:#ddd;border-color:#222}@media (prefers-color-scheme:dark){#mask-button{background-color:#222;color:#eee;border-color:#666}#mask-button:hover{background-color:#333;border-color:#aaa}}</style>
<script src=https://cdn.plot.ly/plotly-latest.min.js></script>
<script>const tokens=["Die","Katze","hat","wieder","Hunger"],originalScores=[[.31,.42,.23,.28,.34],[.23,.39,.3,.25,.27],[.26,.33,.41,.24,.23],[.29,.35,.23,.32,.26],[.3,.38,.28,.25,.45]];let maskActive=!1;function renderMatrix(e,t=!1){const o=[],r=[],i=[],s=[],n=[],a=[];for(let c=0;c<tokens.length;c++)for(let l=0;l<tokens.length;l++){const k=e[c][l];o.push(tokens[l]),r.push(tokens[c]),t&&l>c?(i.push("−∞"),s.push(40),n.push("rgba(100,100,100,0.5)"),a.push(`Key: ${tokens[l]}<br>Query: ${tokens[c]}<br>Score: −∞ (maskiert)`)):(i.push(k.toFixed(2)),s.push(170*k),n.push(k),a.push(`Key: ${tokens[l]}<br>Query: ${tokens[c]}<br>Score: ${k.toFixed(2)}`))}const c=[{type:"scatter",mode:"markers+text",x:o,y:r,text:i,textposition:"middle center",textfont:{size:16,color:"white"},marker:{size:s,color:n,colorscale:"Cividis",cmin:.2,cmax:.5,showscale:!0,line:{color:"black",width:1}},hovertext:a,hoverinfo:"text",name:"Attention"}];Plotly.newPlot("attention-matrix",c,{margin:{t:0},xaxis:{title:"Key",tickfont:{size:16,color:"#3498db"},titlefont:{size:18,color:"#3498db"},fixedrange:!0},yaxis:{title:"Query",tickfont:{size:16,color:"#e74c3c"},titlefont:{size:18,color:"#e74c3c"},autorange:"reversed",fixedrange:!0},hovermode:"closest",dragmode:!1,plot_bgcolor:"rgba(0,0,0,0)",paper_bgcolor:"rgba(0,0,0,0)",width:720,height:520},{displayModeBar:!1,scrollZoom:!1,staticPlot:!1})}function toggleMask(){maskActive=!maskActive,renderMatrix(originalScores,maskActive),document.getElementById("mask-button").textContent=maskActive?"&#x1f3ad; Maskierung deaktivieren":"&#x1f3ad; Maskierung aktivieren"}renderMatrix(originalScores)</script>  </div></div>



<p>Die Attention-Score-Matrix ist konzeptionell von Größe <strong>n × n</strong>. Der Rechenaufwand wächst damit quadratisch mit der Länge des Kontextfensters, und bei &#8222;naiver&#8220; Implementierung gilt dies auch für den Speicherbedarf.</p>



<p>Bei mehreren tausend Tokens steigen die benötigten Ressourcen entsprechend stark an und stellen heutige Hardware schnell vor praktische Grenzen. Ohne spezielle Optimierungen lassen sich in der Praxis meist nur <strong>einige Tausend Tokens</strong> effizient verarbeiten.<br>Sehr große Kontextfenster im Bereich von <strong>100.000 Tokens</strong> und mehr sind technisch möglich, erfordern jedoch optimierte Verfahren wie <strong>FlashAttention</strong> sowie teilweise zusätzliche strukturelle Ansätze wie <strong>Sparse Attention</strong> oder <strong>Segmentierung</strong>.<br>Ein weiterer limitierender Faktor ist die Attention selbst – bei sehr langen Kontexten kann sich der Fokus so stark verteilen, dass wichtige Stellen an Gewicht verlieren.</p>



<div class="cnvs-block-alert cnvs-block-alert-1774993878511 is-style-cnvs-block-alert-info" >
	<div class="cnvs-block-alert-inner">
		

<p>In der Praxis werden die Attention-Scores als skaliertes Matrixprodukt der Query-Matrix mit der transponierten Key-Matrix berechnet. Moderne Implementierungen wie <strong>FlashAttention</strong> führen diese Berechnung <strong>blockweise (tiled)</strong> aus und vermeiden dabei, die vollständige n × n-Score-Matrix im Speicher abzulegen.</p>



<div class="wp-block-katex-display-block katex-eq" data-katex-display="true"><pre>\text{score} = \frac{\mathbf{Q} \cdot \mathbf{K}^\top}{\sqrt{d_k}}</pre></div>



<p>(<em>Vektoren werden üblicherweise mit Kleinbuchstaben geschrieben (zum Beispiel: q, k, v), Matrizen hingegen mit Großbuchstaben (zum Beispiel: Q, K, V).</em>)</p>

	</div>
	</div>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p></p>
</blockquote>



<h2 id="jetzt-zaehlen-die-wahren-werte" class="wp-block-heading">Jetzt zählen die wahren Werte!</h2>



<p>Im nächsten Schritt kommen endlich die <strong>Value-Vektoren</strong> ins Spiel.<br>Jetzt entscheidet sich, <strong>welche Informationen aus dem Kontext auf welches Token übertragen werden</strong>.</p>



<p>Doch bevor wir loslegen, müssen wir noch ein Problem lösen …</p>



<h3 id="bitte-nicht-schummeln" class="wp-block-heading">Bitte nicht schummeln &#8230;</h3>



<p>Wenn wir für jedes Token alle Attention Scores im Satz berücksichtigen, <strong>könnte das Modell auch auf Tokens zugreifen, die erst später folgen</strong> – und damit Informationen nutzen, die es <strong>zu diesem Zeitpunkt eigentlich noch gar nicht kennen dürfte</strong>.</p>



<p>Das widerspricht der Idee eines <strong>autoregressiven Decoders</strong>, der bei der Vorhersage <strong>ausschließlich auf frühere Tokens</strong> zugreifen darf.</p>



<h3 id="die-attention-maske" class="wp-block-heading">Die Attention-Maske</h3>



<p>Wie verhindern wir diese Schummelei?</p>



<p>Mit einem einfachen Trick: Wir verwenden eine <strong>Maske</strong>.<br>Dabei werden alle Scores, die sich auf <strong>zukünftige Tokens</strong> beziehen, <strong>ausgeblendet</strong> – oder etwas technischer:<br>Sie werden durch <strong>−∞</strong> (oder eine sehr große negative Zahl) ersetzt, damit diese Positionen bei der Berechnung komplett ausgeschlossen werden.</p>



<p>Wird anschließend die Gewichtung (Softmax) angewendet, werden diese Positionen automatisch <strong>auf null gesetzt</strong> – und damit vollständig ignoriert.</p>



<p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f449.png" alt="👉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <a href="#attention-score">Probiere es selbst in der Attention-Demo: Aktiviere die Maskierung – und beobachte, wie das Modell nicht mehr auf spätere Tokens zugreifen kann.</a></p>



<h3 id="welches-token-traegt-wie-viel-bei" class="wp-block-heading">Welches Token trägt wie viel bei?</h3>



<p>Mit der Attention-Matrix wissen wir nun, <strong>welche Tokens einander Aufmerksamkeit schenken</strong>. Doch wie genau beeinflussen diese Scores, welche <strong>Merkmale ein Token von anderen übernimmt</strong>?</p>



<p>Die zentrale Idee: Tokens erhalten im Kontext nicht nur Aufmerksamkeit, sondern <strong>übernehmen auch Merkmale</strong> – und zwar aus den Value-Vektoren der Tokens, auf die sie sich fokussieren.</p>



<p>Das Team um <strong>Vaswani</strong> hat dafür einen eleganten Mechanismus entwickelt:<br>Man geht <strong>zeilenweise</strong> durch die Attention-Matrix – also <strong>Token für Token</strong> – und berechnet für jedes Ziel-Token, <strong>welche anderen Tokens in der Zeile wie stark beitragen</strong>.</p>


<div class="plotly-container-full">  <div class="plot-wrapper"><div class=smx-table>
<div class="smx-row smx-row-header">
<div class=smx-cell>Die</div>
<div class=smx-cell>Katze</div>
<div class=smx-cell>hat</div>
<div class=smx-cell>wieder</div>
<div class=smx-cell>Hunger</div>
</div>
<div class="smx-row smx-row-scores">
<div class=smx-cell>2.4</div>
<div class=smx-cell>-1.1</div>
<div class=smx-cell>0.0</div>
<div class=smx-cell>5.5</div>
<div class=smx-cell>-3.2</div>
</div>
</div>
<style>.smx-table{display:flex;flex-direction:column;gap:4px;max-width:100%;margin:1em auto;font-family:sans-serif}.smx-row{display:grid;grid-template-columns:repeat(5,1fr);text-align:center;font-size:1rem}.smx-row-header{font-weight:700;font-size:1.1rem}.smx-row-scores{font-family:monospace;font-size:.95rem;border-top:2px solid #aaa;border-bottom:1px solid #ccc}.smx-cell{padding:.7em;color:#000}.smx-cell:first-child{background-color:#ffe0e0}.smx-cell:nth-child(2){background-color:#e0ffe0}.smx-cell:nth-child(3){background-color:#e0e0ff}.smx-cell:nth-child(4){background-color:#fff3cd}.smx-cell:nth-child(5){background-color:#d1ecf1}@media (max-width:600px){.smx-cell{padding:.5em;font-size:.95rem}}</style>  </div></div>



<p>Allerdings: Die rohen Attention-Scores sind noch <strong>nicht direkt geeignet zum Rechnen</strong> – sie sind <strong>nicht skaliert</strong>, <strong>nicht normiert</strong>, und schwer vergleichbar.<br>Deshalb brauchen wir eine Funktion, die Ordnung in diese Werte bringt mit denen wir zuverlässig gewichten können.</p>



<h3 id="die-rolle-der-softmax-funktion" class="wp-block-heading">Die Rolle der Softmax-Funktion</h3>



<p>Hier kommt die <strong>Softmax-Funktion</strong> ins Spiel.<br>Sie ist eine mathematische Methode, mit der sich eine Liste von Zahlen in <strong>relative Gewichtungen</strong> umrechnen lässt.</p>



<p>Dabei wird jeder Wert zunächst durch die Exponentialfunktion verstärkt und anschließend so normalisiert, dass <strong>alle Ergebnisse zwischen 0 und 1 liegen und ihre Summe genau 1 ergibt</strong>.</p>



<p>So entstehen <strong>proportionale Gewichtungen</strong>: Größere Eingabewerte erhalten mehr Gewicht, kleinere weniger – so wird die <strong>Auswahl gezielt auf die relevantesten Tokens gelenkt</strong>.</p>



<p>Die Softmax-Funktion liefert uns damit für <strong>jedes Token in einer Attention-Zeile</strong> genau den <strong>Multiplikator</strong>, mit dem sein <strong>Value-Vektor</strong> gewichtet in das Ziel-Token einfließt.</p>


<div class="plotly-container-full">  <div class="plot-wrapper"><div class=smx-table>
<div class="smx-row smx-row-header">
<div class=smx-cell>Die</div>
<div class=smx-cell>Katze</div>
<div class=smx-cell>hat</div>
<div class=smx-cell>wieder</div>
<div class=smx-cell>Hunger</div>
</div>
<div class="smx-row smx-row-scores">
<div class=smx-cell>2.4</div>
<div class=smx-cell>-1.1</div>
<div class=smx-cell>0.0</div>
<div class=smx-cell>5.5</div>
<div class=smx-cell>-3.2</div>
</div>
<div class="smx-row smx-row-softmax">
<div class=smx-cell>0.061</div>
<div class=smx-cell>0.002</div>
<div class=smx-cell>0.011</div>
<div class=smx-cell>0.924</div>
<div class=smx-cell>0.001</div>
</div>
</div>
<style>.smx-table{display:flex;flex-direction:column;gap:4px;max-width:100%;margin:1em auto;font-family:sans-serif}.smx-row{display:grid;grid-template-columns:repeat(5,1fr);text-align:center;font-size:1rem}.smx-row-header{font-weight:700;font-size:1.1rem}.smx-row-scores{font-family:monospace;font-size:.95rem;border-top:2px solid #aaa;border-bottom:1px solid #ccc}.smx-row-softmax{font-weight:700;font-size:1rem}.smx-cell{padding:.7em;color:#000}.smx-cell:first-child{background-color:#ffe0e0}.smx-cell:nth-child(2){background-color:#e0ffe0}.smx-cell:nth-child(3){background-color:#e0e0ff}.smx-cell:nth-child(4){background-color:#fff3cd}.smx-cell:nth-child(5){background-color:#d1ecf1}@media (max-width:600px){.smx-cell{padding:.5em;font-size:.95rem}}</style>  </div></div>



<p><em>Die Softmax-Werte einer Zeile <strong>ergeben immer genau 1</strong> – das garantiert, dass die resultierende Kombination der Value-Vektoren <strong>stabil und ausgewogen</strong> ist.</em></p>



<div class="wp-block-katex-display-block katex-eq" data-katex-display="true"><pre>\text{Softmax}(z_i) = \frac{e^{zi}}{\sum{j=1}^{n} e^{z_j}}</pre></div>



<p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f449.png" alt="👉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Probiere aus, wie sich die Softmax-Gewichtungen verändern, wenn du die Score-Werte anpasst:</p>


<div class="plotly-container-full">  <div class="plot-wrapper"><div class=softmax-demo>
<div class=softmax-container id=tokens>
</div>
<style>.softmax-demo .softmax-container{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:800px;margin:1 em auto 0 auto}@media (max-width:900px){.softmax-demo .softmax-container{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.softmax-demo .softmax-container{grid-template-columns:1fr}}.softmax-demo .token{display:flex;flex-direction:column;align-items:center;gap:.5em}.softmax-demo .softmax{font-weight:700;padding:.3em .6em;border-radius:8px;background-color:#333;color:#fff;min-width:70px;text-align:center}.softmax-demo .score{font-family:monospace;font-size:.9em;padding:.3em .6em;border-radius:8px;background-color:#f0f0f0;color:#000;min-width:90px;text-align:center}.softmax-demo input[type=range]{width:100%}</style>
<script>!function(){const t=[],e=[],n=[];function o(){const o=t.map((t=>parseFloat(t.value))),a=function(t){const e=Math.max(...t),n=t.map((t=>Math.exp(t-e))),o=n.reduce(((t,e)=>t+e),0);return n.map((t=>t/o))}(o);for(let t=0;t<6;t++)e[t].textContent=a[t].toFixed(3),n[t].textContent=`Score: ${o[t].toFixed(1).padStart(5," ")}`}!function(){const a=document.querySelector(".softmax-demo #tokens");for(let c=0;c<6;c++){const c=document.createElement("div");c.className="token";const s=document.createElement("div");s.className="softmax",s.textContent="0.000",e.push(s);const d=document.createElement("input");d.type="range",d.min=-10,d.max=10,d.step=.1,d.value=0,d.oninput=o,t.push(d);const m=document.createElement("div");m.className="score",m.textContent="Score:  0.0",n.push(m),c.appendChild(s),c.appendChild(d),c.appendChild(m),a.appendChild(c)}o()}()}()</script>
</div>  </div></div>



<h3 id="das-neue-embedding-entsteht" class="wp-block-heading">Das neue Embedding entsteht</h3>



<p>Jetzt haben wir alles beisammen:</p>



<ul class="wp-block-list">
<li>Die <strong>Attention-Matrix</strong> zeigt, wie stark ein Token auf andere achtet.</li>



<li>Die <strong>Softmax-Funktion</strong> wandelt diese Werte in Gewichtungen um.</li>



<li>Die <strong>Value-Vektoren</strong> enthalten die Merkmale, die weitergegeben werden.</li>
</ul>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img  loading="lazy"  decoding="async"  width="1024"  height="454"  src="https://www.kimagazin.com/wp-content/uploads/embedding-1024x454.webp"  alt=""  class="wp-image-2744"  style="width:auto;height:250px"  srcset="https://www.kimagazin.com/wp-content/uploads/embedding-1024x454.webp 1024w, https://www.kimagazin.com/wp-content/uploads/embedding-300x133.webp 300w, https://www.kimagazin.com/wp-content/uploads/embedding-768x341.webp 768w, https://www.kimagazin.com/wp-content/uploads/embedding-1536x682.webp 1536w, https://www.kimagazin.com/wp-content/uploads/embedding-380x169.webp 380w, https://www.kimagazin.com/wp-content/uploads/embedding-550x244.webp 550w, https://www.kimagazin.com/wp-content/uploads/embedding-800x355.webp 800w, https://www.kimagazin.com/wp-content/uploads/embedding-1160x515.webp 1160w, https://www.kimagazin.com/wp-content/uploads/embedding-80x36.webp 80w, https://www.kimagazin.com/wp-content/uploads/embedding.webp 1618w"  sizes="auto, (max-width: 1024px) 100vw, 1024px" ></figure>
</div>


<p>Nun berechnen wir für jedes Token die <strong>gewichtete Summe der Value-Vektoren</strong> – mit den Softmax-Werten als Multiplikatoren.<br>Das Ergebnis ist ein <strong>neuer, kontextsensitiver Merkmalsvektor</strong> – also <strong>das neue Embedding</strong>.</p>



<p>Dieser Vektor fasst zusammen, <strong>welche Informationen aus dem gesamten Satzkontext für das aktuelle Token wichtig sind</strong>.</p>



<h2 id="die-formel-die-gerade-die-welt-veraendert" class="wp-block-heading">Die Formel, die gerade die Welt verändert!</h2>



<div class="wp-block-katex-display-block katex-eq" data-katex-display="true"><pre>\cancel{\boldsymbol{E = mc^2}}</pre></div>



<div class="wp-block-katex-display-block katex-eq" data-katex-display="true"><pre>\mathbf{Attention}(\mathbf{Q}, \mathbf{K}, \mathbf{V}) = \mathbf{softmax}\left( \frac{\mathbf{Q}\mathbf{K}^\top}{\sqrt{d_k}} + \mathbf{M} \right)\mathbf{V}</pre></div>



<p>Der gesamte Vorgang der <strong>Self-Attention</strong>, den wir hier beschrieben haben, wurde von <strong>Vaswani und seinem Team</strong> in <strong>einer einzigen eleganten Formel</strong> zusammengefasst.<br><strong>Alle Hochachtung</strong> für diesen genialen Mechanismus – an Vaswani, das gesamte Forschungsteam und natürlich auch an all jene, die zuvor den Weg dafür bereitet haben.</p>



<p>An heutigen Tools wie <strong>ChatGPT</strong>, <strong>Gemini</strong> und vielen anderen sehen wir Entwicklungen, die wir noch vor wenigen Jahren für <strong>undenkbar</strong> gehalten hätten.<br>Und es ist <strong>sehr wahrscheinlich</strong>, dass wir schon bald weitere <strong>emergente Phänomene</strong> erleben werden – <strong>Entwicklungen</strong>, die unsere heutige <strong>Vorstellungskraft</strong> nicht nur <strong>fordern</strong>, sondern <strong>weit übersteigen</strong>.</p>



<h2 id="wie-geht-es-nun-weiter" class="wp-block-heading">Wie geht es nun weiter?</h2>



<p>Mit der Self-Attention haben wir nun ein Embedding erzeugt, das für jedes Token – insbesondere das letzte („<strong>schläft</strong>“) – den gesamten Kontext berücksichtigt.</p>



<figure class="wp-block-image size-full"><img  loading="lazy"  decoding="async"  width="700"  height="200"  src="https://www.kimagazin.com/wp-content/uploads/prediction-1.svg"  alt=""  class="wp-image-2750" ></figure>



<p>Was jetzt noch fehlt: Dieses Embedding muss einem konkreten <strong>nächsten Token</strong> zugeordnet werden.<br>Dafür kommt ein weiteres neuronales Netz ins Spiel: ein <strong>Feedforward-Layer</strong>, der das Embedding weiterverarbeitet – und dabei hilft, <strong>logische und semantische Muster</strong> zu erkennen.</p>



<p>Am Ende erzeugt ein Decoder eine <strong>Wahrscheinlichkeitsverteilung</strong> über das Vokabular – und wählt das wahrscheinlichste nächste Token aus.</p>



<p>Wie das funktioniert, sehen wir im <strong>nächsten Kapitel</strong>.</p>



<ul class="shariff-buttons theme-round orientation-horizontal buttonsize-medium"><li class="shariff-button facebook shariff-nocustomcolor" style="background-color:#4273c8"><a href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.kimagazin.com%2Fself-attention-im-detail%2F" title="Bei Facebook teilen" aria-label="Bei Facebook teilen" role="button" rel="nofollow" class="shariff-link" style="; background-color:#3b5998; color:#fff" target="_blank"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 32"><path fill="#3b5998" d="M17.1 0.2v4.7h-2.8q-1.5 0-2.1 0.6t-0.5 1.9v3.4h5.2l-0.7 5.3h-4.5v13.6h-5.5v-13.6h-4.5v-5.3h4.5v-3.9q0-3.3 1.9-5.2t5-1.8q2.6 0 4.1 0.2z"/></svg></span></a></li><li class="shariff-button twitter shariff-nocustomcolor" style="background-color:#595959"><a href="https://twitter.com/share?url=https%3A%2F%2Fwww.kimagazin.com%2Fself-attention-im-detail%2F&text=Self-Attention%20entschl%C3%BCsselt%20%E2%80%93%20wie%20Transformer%20wirklich%20denken" title="Bei X teilen" aria-label="Bei X teilen" role="button" rel="noopener nofollow" class="shariff-link" style="; background-color:#000; color:#fff" target="_blank"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="#000" d="M14.258 10.152L23.176 0h-2.113l-7.747 8.813L7.133 0H0l9.352 13.328L0 23.973h2.113l8.176-9.309 6.531 9.309h7.133zm-2.895 3.293l-.949-1.328L2.875 1.56h3.246l6.086 8.523.945 1.328 7.91 11.078h-3.246zm0 0"/></svg></span></a></li><li class="shariff-button linkedin shariff-nocustomcolor" style="background-color:#1488bf"><a href="https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fwww.kimagazin.com%2Fself-attention-im-detail%2F" title="Bei LinkedIn teilen" aria-label="Bei LinkedIn teilen" role="button" rel="noopener nofollow" class="shariff-link" style="; background-color:#0077b5; color:#fff" target="_blank"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 27 32"><path fill="#0077b5" d="M6.2 11.2v17.7h-5.9v-17.7h5.9zM6.6 5.7q0 1.3-0.9 2.2t-2.4 0.9h0q-1.5 0-2.4-0.9t-0.9-2.2 0.9-2.2 2.4-0.9 2.4 0.9 0.9 2.2zM27.4 18.7v10.1h-5.9v-9.5q0-1.9-0.7-2.9t-2.3-1.1q-1.1 0-1.9 0.6t-1.2 1.5q-0.2 0.5-0.2 1.4v9.9h-5.9q0-7.1 0-11.6t0-5.3l0-0.9h5.9v2.6h0q0.4-0.6 0.7-1t1-0.9 1.6-0.8 2-0.3q3 0 4.9 2t1.9 6z"/></svg></span></a></li><li class="shariff-button whatsapp shariff-nocustomcolor" style="background-color:#5cbe4a"><a href="https://api.whatsapp.com/send?text=https%3A%2F%2Fwww.kimagazin.com%2Fself-attention-im-detail%2F%20Self-Attention%20entschl%C3%BCsselt%20%E2%80%93%20wie%20Transformer%20wirklich%20denken" title="Bei Whatsapp teilen" aria-label="Bei Whatsapp teilen" role="button" rel="noopener nofollow" class="shariff-link" style="; background-color:#34af23; color:#fff" target="_blank"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#34af23" d="M17.6 17.4q0.2 0 1.7 0.8t1.6 0.9q0 0.1 0 0.3 0 0.6-0.3 1.4-0.3 0.7-1.3 1.2t-1.8 0.5q-1 0-3.4-1.1-1.7-0.8-3-2.1t-2.6-3.3q-1.3-1.9-1.3-3.5v-0.1q0.1-1.6 1.3-2.8 0.4-0.4 0.9-0.4 0.1 0 0.3 0t0.3 0q0.3 0 0.5 0.1t0.3 0.5q0.1 0.4 0.6 1.6t0.4 1.3q0 0.4-0.6 1t-0.6 0.8q0 0.1 0.1 0.3 0.6 1.3 1.8 2.4 1 0.9 2.7 1.8 0.2 0.1 0.4 0.1 0.3 0 1-0.9t0.9-0.9zM14 26.9q2.3 0 4.3-0.9t3.6-2.4 2.4-3.6 0.9-4.3-0.9-4.3-2.4-3.6-3.6-2.4-4.3-0.9-4.3 0.9-3.6 2.4-2.4 3.6-0.9 4.3q0 3.6 2.1 6.6l-1.4 4.2 4.3-1.4q2.8 1.9 6.2 1.9zM14 2.2q2.7 0 5.2 1.1t4.3 2.9 2.9 4.3 1.1 5.2-1.1 5.2-2.9 4.3-4.3 2.9-5.2 1.1q-3.5 0-6.5-1.7l-7.4 2.4 2.4-7.2q-1.9-3.2-1.9-6.9 0-2.7 1.1-5.2t2.9-4.3 4.3-2.9 5.2-1.1z"/></svg></span></a></li><li class="shariff-button mailto shariff-nocustomcolor" style="background-color:#a8a8a8"><a href="mailto:?body=https%3A%2F%2Fwww.kimagazin.com%2Fself-attention-im-detail%2F&subject=Self-Attention%20entschl%C3%BCsselt%20%E2%80%93%20wie%20Transformer%20wirklich%20denken" title="Per E-Mail versenden" aria-label="Per E-Mail versenden" role="button" rel="noopener nofollow" class="shariff-link" style="; background-color:#999; color:#fff"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#999" d="M32 12.7v14.2q0 1.2-0.8 2t-2 0.9h-26.3q-1.2 0-2-0.9t-0.8-2v-14.2q0.8 0.9 1.8 1.6 6.5 4.4 8.9 6.1 1 0.8 1.6 1.2t1.7 0.9 2 0.4h0.1q0.9 0 2-0.4t1.7-0.9 1.6-1.2q3-2.2 8.9-6.1 1-0.7 1.8-1.6zM32 7.4q0 1.4-0.9 2.7t-2.2 2.2q-6.7 4.7-8.4 5.8-0.2 0.1-0.7 0.5t-1 0.7-0.9 0.6-1.1 0.5-0.9 0.2h-0.1q-0.4 0-0.9-0.2t-1.1-0.5-0.9-0.6-1-0.7-0.7-0.5q-1.6-1.1-4.7-3.2t-3.6-2.6q-1.1-0.7-2.1-2t-1-2.5q0-1.4 0.7-2.3t2.1-0.9h26.3q1.2 0 2 0.8t0.9 2z"/></svg></span></a></li></ul></div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Self-Attention – das Herzstück moderner KI</title>
		<link>https://www.kimagazin.com/self-attention-verstehen/</link>
		
		<dc:creator><![CDATA[Oskar Kohler]]></dc:creator>
		<pubDate>Mon, 30 Mar 2026 20:10:43 +0000</pubDate>
				<category><![CDATA[Inside AI]]></category>
		<guid isPermaLink="false">https://www.kimagazin.com/?p=2671</guid>

					<description><![CDATA[Dies ist Teil 6 der Kursserie „ChatGPT &#38; Co verstehen: Wie große Sprachmodelle wirklich arbeiten – anschaulich &#38;&#8230;]]></description>
										<content:encoded><![CDATA[
<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Dies ist Teil 6 der Kursserie „ChatGPT &amp; Co verstehen: Wie große Sprachmodelle wirklich arbeiten – anschaulich &amp; interaktiv“.</p>
</blockquote>



<h2 id="bedeutung-durch-kontext" class="wp-block-heading">Bedeutung durch Kontext</h2>



<p>Transformer haben den großen Durchbruch erzielt, weil sie die Bedeutung von Wörtern <strong>nicht isoliert</strong>, sondern im <strong>gesamten Kontext</strong> erfassen.</p>



<div class="cnvs-block-alert cnvs-block-alert-1774986979550 is-style-cnvs-block-alert-warning" >
	<div class="cnvs-block-alert-inner">
		

<p>Ich verwende hier den technisch korrekten Begriff <strong>„Token“</strong>. Ein Token kann ein Wort, ein Wortteil oder auch ein Sonderzeichen sein.<br>Der Einfachheit halber kannst du dir darunter einfach <strong>„Wörter“</strong> vorstellen.</p>

	</div>
	</div>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p></p>
</blockquote>



<p>Im Unterschied zu früheren Modellen analysieren Transformer alle Tokens <strong>parallel</strong> und setzen sie dabei <strong>in Beziehung zueinander</strong>.<br>So erkennen sie <strong>semantische Zusammenhänge</strong> und können Sprache auf einer tieferen Ebene verarbeiten.</p>



<p>Was wir bisher schon wissen:</p>



<ul class="wp-block-list">
<li>Die Bedeutung einzelner Tokens wird durch <strong>Embeddings</strong> dargestellt – also durch ihre Lage im Merkmalsraum.</li>



<li>Die <strong>Position im Satz</strong> wird zusätzlich durch ein <strong>Position Encoding</strong> berücksichtigt.</li>
</ul>



<h3 id="aber-reicht-das-aus-um-den-sinn-eines-ganzen-satzes-zu-verstehen" class="wp-block-heading">Aber &#8211; reicht das aus, um den Sinn eines ganzen Satzes zu verstehen?</h3>



<p>Sehen wir uns ein Beispiel an:</p>



<p>Das Wort <strong>„Schloss“</strong> kann vieles bedeuten:<br>ein Vorhängeschloss, ein Türschloss – oder ein adeliges Schloss auf einem Hügel.<br>Ohne weiteren Kontext bleibt die Bedeutung <strong>mehrdeutig</strong>. In der Fachsprache nennt man das: <strong>Ambiguität</strong></p>



<p>Betrachten wir nun einen ganzen Satz:</p>



<figure class="wp-block-image size-full"><img  loading="lazy"  decoding="async"  width="1000"  height="120"  src="https://www.kimagazin.com/wp-content/uploads/context_old.svg"  alt=""  class="wp-image-2677" ></figure>



<p>Klingt poetisch – aber auch hier bleibt offen, was gemeint ist.<br>Das Adjektiv „alt“ hilft uns zwar weiter, grenzt die Bedeutung aber noch nicht eindeutig ein.</p>



<p>Erweitern wir den Satz um ein weiteres Adjektiv:</p>



<figure class="wp-block-image size-full"><img  loading="lazy"  decoding="async"  width="1000"  height="140"  src="https://www.kimagazin.com/wp-content/uploads/context_rusty.svg"  alt=""  class="wp-image-2679" ></figure>



<p>Nun wird klar: Ein adeliges Schloss rostet nicht &#8211; wahrscheinlich ist ein Sicherheitsschloss gemeint.</p>



<p>Präzisieren wir den Satz noch einmal:</p>



<figure class="wp-block-image size-full"><img  loading="lazy"  decoding="async"  width="1000"  height="160"  src="https://www.kimagazin.com/wp-content/uploads/context_bike.svg"  alt=""  class="wp-image-2680" ></figure>



<p>Jetzt besteht kein Zweifel mehr: Es handelt sich eindeutig um ein <strong>Fahrradschloss</strong>.</p>



<p>Dieses Beispiel zeigt: <strong>Wörter werden erst durch den Kontext eindeutig verständlich.</strong></p>



<div class="cnvs-block-alert cnvs-block-alert-1774987554901 is-style-cnvs-block-alert-info" >
	<div class="cnvs-block-alert-inner">
		

<p>Genau das ist das <strong>Grundprinzip von Transformern</strong>:<br>Sie analysieren alle Tokens <strong>parallel</strong> und berechnen ihre <strong>wechselseitige Bedeutung</strong>, um die <strong>semantische Struktur eines Satzes</strong> zu erfassen.</p>

	</div>
	</div>



<h3 id="encoder-und-decoder-im-urspruenglichen-transformer" class="wp-block-heading">Encoder und Decoder im ursprünglichen Transformer</h3>



<p>Das Paper von Vaswani et al. <em>„Attention Is All You Need“</em> stellte ursprünglich ein Modell für maschinelle Übersetzung vor.<br>Dafür gab es zwei zentrale Bausteine:</p>



<ul class="wp-block-list">
<li><strong>Encoder</strong>: Erfasst den gesamten Eingabetext (z. B. einen deutschen Satz) und erzeugt eine <strong>kontextabhängige Darstellung</strong> jedes Tokens – also eine Folge von Vektoren, die die Bedeutung im Satzzusammenhang darstellen.</li>



<li><strong>Decoder</strong>: Nutzt diese Abbildung <strong>plus</strong> die bisher generierten Tokens, um Schritt für Schritt die Übersetzung in der Zielsprache zu erzeugen.</li>
</ul>



<p>Moderne Sprachmodelle wie <strong>GPT</strong> vereinfachen diese Architektur: Sie bestehen nur aus <strong>Decoder-Stacks</strong>.</p>



<p>Das wirkt wie eine Reduktion – ist aber für die Sprachgenerierung eine geniale Spezialisierung. Denn ein Decoder kann beides:</p>



<ul class="wp-block-list">
<li>Den bisherigen Kontext „verstehen“ (durch Self-Attention)</li>



<li>Und ihn gleichzeitig „weitererzählen“ (durch die Ausgabe des nächsten Tokens).</li>
</ul>



<p>Darum verwendet GPT nur den Decoder-Teil und verzichtet auf den Encoder:<br>Es übersetzt nicht von einer Sprache in eine andere, sondern <strong>setzt einfach die eigene Geschichte fort.</strong></p>



<h3 id="roh-embedding" class="wp-block-heading">Roh Embedding</h3>



<p>Zu Beginn erhält jedes Token ein <strong>Roh-Embedding</strong> – also eine Vektorrepräsentation im Merkmalsraum, die während des Trainings gelernt wurde. Dieses Embedding ist zunächst <strong>kontextunabhängig</strong>: Es berücksichtigt noch nicht die anderen Tokens im Kontextfenster.<br>Das gleiche Token – etwa ‚Bank‘ – wird immer gleich eingebettet, unabhängig vom Kontext.</p>



<p>Bei <strong>mehrdeutigen Tokens</strong> – wie <em>Schloss</em> – hat das Modell gelernt, dass sie in <strong>verschiedenen Bedeutungsbereichen</strong> im Merkmalsraum auftreten können. So wird <em>Schloss</em> anfänglich irgendwo <strong>zwischen</strong> den semantischen Clustern von <strong>adeligem Gebäude</strong> und <strong>Sicherheitsschlösser</strong> (z. B. Vorhängeschlössern) positioniert.</p>



<div class="cnvs-block-alert cnvs-block-alert-1774987587258 is-style-cnvs-block-alert-info" >
	<div class="cnvs-block-alert-inner">
		

<p><strong>Roh-Embeddings</strong> sind kontextunabhängig: Gleiches Wort, gleicher Vektor – egal ob „Schloss“ ein Gebäude oder ein Türschloss meint. Erst durch Self-Attention wird Bedeutung aus dem Kontext heraus klar.</p>

	</div>
	</div>



<p><strong>Erst durch den Kontext der umliegenden Tokens</strong> entsteht aus dem <strong>ursprünglichen Embedding</strong> von <em>Schloss</em> eine <strong>kontextabhängige Bedeutung</strong> – seine <strong>Position im Merkmalsraum</strong> verschiebt sich entsprechend.</p>



<p>Im nächsten Beispiel kannst du das selbst beobachten:<br>Je nachdem, welchen Satz du auswählst, bewegt sich das Embedding von <em>Schloss</em> näher an den Cluster <strong>repräsentativer Gebäude</strong> oder an den Cluster <strong>Sicherheitsschlösser</strong>.</p>


<div class="plotly-container-full">  <div class="plot-wrapper"><div class=plotly-wrapper>
<div id=plot-container>
<div id=plot></div>
</div>
<div class=buttons>
<button onclick=moveSchloss(.6)><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f3f0.png" alt="🏰" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Viele <b>Touristen</b> besuchen das Schloss jedes Jahr</button>
<button onclick=moveSchloss(-.6)><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f511.png" alt="🔑" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Mit dem <b>Schlüssel</b> lässt sich das Schloss öffnen.</button>
</div>
</div>
<script>const leftWords=["Türschloss","Fahrradschloss","Vorhängeschloss"],rightWords=["Neuschwanstein","Versailles","Windsor"],leftX=Array(leftWords.length).fill(-1),leftY=[1,.7,.4],leftZ=[.2,.5,.8],rightX=Array(rightWords.length).fill(1),rightY=[1,.7,.4],rightZ=[.3,.6,.9];let currentX=0;const schlossY=.6,schlossZ=.5,data=[{x:leftX,y:leftY,z:leftZ,mode:"text",type:"scatter3d",text:leftWords,textfont:{size:14,color:"#4a90e2"},hoverinfo:"text",showlegend:!1},{x:rightX,y:rightY,z:rightZ,mode:"text",type:"scatter3d",text:rightWords,textfont:{size:14,color:"#e74c3c"},hoverinfo:"text",showlegend:!1},{x:[currentX],y:[.6],z:[.5],mode:"text",type:"scatter3d",text:["Schloss"],textfont:{size:20,color:"#888888"},hoverinfo:"text",showlegend:!1}],layout={autosize:!0,margin:{l:0,r:0,t:0,b:0},paper_bgcolor:"transparent",plot_bgcolor:"transparent",scene:{xaxis:{title:"",showticklabels:!1,showgrid:!0,gridcolor:"#aaa",zeroline:!0},yaxis:{title:"",showticklabels:!1,showgrid:!0,gridcolor:"#aaa",zeroline:!0},zaxis:{title:"",showticklabels:!1,showgrid:!0,gridcolor:"#aaa",zeroline:!0},camera:{eye:{x:1.4,y:1.3,z:1.2}}}},config={responsive:!0,displayModeBar:!1,scrollZoom:!1};function easeOutCubic(t){return 1-Math.pow(1-t,3)}function moveSchloss(t){const e=[];for(let o=1;o<=60;o++){const r=easeOutCubic(o/60),l=currentX+(t-currentX)*r;e.push({name:`frame${o}`,data:[{},{},{x:[l],y:[.6],z:[.5]}]})}Plotly.addFrames("plot",e),Plotly.animate("plot",e.map((t=>t.name)),{transition:{duration:0},frame:{duration:10,redraw:!0},mode:"afterall"}),currentX=t}function plotScene(){Plotly.newPlot("plot",data,layout,config).then((()=>{Plotly.Plots.resize(document.getElementById("plot"))}))}window.addEventListener("resize",(()=>{Plotly.Plots.resize(document.getElementById("plot"))})),plotScene()</script>
<style>.plotly-wrapper{max-width:900px;margin:0 auto;padding:20px;border:2px solid #aaa;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.05);width:100%}#plot{width:100%;height:100%}.buttons{display:flex;flex-direction:column;align-items:center;gap:10px;margin:20px 0}.buttons button{font-size:16px;padding:10px 20px;cursor:pointer;border:none;background-color:#444;color:#fff;border-radius:5px;text-align:center}.buttons button:hover{background-color:#666}</style>  </div></div>



<h2 id="wie-der-transformer-zusammenhaenge-zwischen-tokens-erkennt" class="wp-block-heading">Wie der Transformer Zusammenhänge zwischen Tokens erkennt</h2>



<h3 id="der-self-attention-mechanismus" class="wp-block-heading">Der Self-Attention-Mechanismus</h3>



<p>Komplexe neuronale Verfahren wie der <strong>Self-Attention-Mechanismus</strong> lassen sich für Menschen oft nur schwer intuitiv erfassen. Häufig hilft eine passende Analogie, um ein Gefühl für das zugrunde liegende Prinzip zu bekommen.</p>



<p>Es gibt viele solcher Analogien, die versuchen, das Konzept von Attention verständlich zu machen. Aus meiner Sicht greifen viele davon jedoch zu kurz: Sie vereinfachen den Mechanismus so stark, dass man glaubt, ihn verstanden zu haben – in Wirklichkeit hat man aber nur das Bild verstanden, nicht die dahinterliegende Technik.</p>



<p>Deshalb habe ich mir eine eigene Analogie überlegt – eine, die anschaulich ist, aber dennoch relativ nah an der tatsächlichen Funktionsweise bleibt.</p>



<h3 id="eine-analogie-tokens-als-beratende-experten" class="wp-block-heading">Eine Analogie: Tokens als beratende Experten</h3>



<p>Du kannst dir den Self-Attention-Mechanismus als eine Art <strong>Expertenplattform</strong> vorstellen.</p>



<figure class="wp-block-image size-full"><img  loading="lazy"  decoding="async"  width="961"  height="541"  src="https://www.kimagazin.com/wp-content/uploads/knowledge.svg"  alt=""  class="wp-image-2686" ></figure>



<p>Jedes <strong>Token</strong> in der Sequenz ist ein <strong>Experte</strong>, der zwei Dinge bereitstellt:<br>ein <strong>Beratungsprofil (Key)</strong> – also worin es sich auskennt –<br>und <strong>konkretes Wissen (Value)</strong>, das es teilen kann.</p>



<p>Ein anderes Token stellt eine <strong>Anfrage (Query)</strong> – es sucht gezielt nach Expertise,<br>die ihm im aktuellen Kontext weiterhilft.</p>



<p>Der <strong>Self-Attention-Mechanismus</strong> übernimmt die <strong>Vermittlung</strong>:<br>Er vergleicht die Frage mit allen Profilen und berechnet, wer wie gut passt.<br><strong>Je besser ein Experte zur Frage passt, desto mehr Wissen bringt er ein.</strong></p>



<p>So entsteht eine <strong>neue Repräsentation</strong> &#8211; eine neue kontextabhängige Bedeutung &#8211; des fragenden Tokens:<br>angereichert mit genau den Informationen, die im Moment relevant sind – <strong>gezielt, gewichtet und kontextabhängig.</strong></p>



<p><strong>Jedes Token</strong> im Kontextfenster stellt seine <strong>Anfrage</strong> an alle anderen Tokens, um sich besser in den <strong>Gesamtkontext</strong> einzuordnen.</p>



<p>Gleichzeitig <strong>tritt jedes Token auch als Berater auf</strong>, indem es <strong>Informationen bereitstellt</strong>, auf die andere Tokens zugreifen können.</p>



<p>Dieser Austausch erfolgt <strong>nicht aktiv</strong>, sondern wird <strong>parallel und automatisch</strong> durch den <strong>Self-Attention-Mechanismus</strong> berechnet.</p>



<h3 id="query-key-und-value" class="wp-block-heading">Query, Key und Value</h3>



<p>Jedes <strong>Token</strong> wird im Self-Attention-Mechanismus aus drei verschiedenen Perspektiven betrachtet:</p>



<ul class="wp-block-list">
<li>als <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2753.png" alt="❓" class="wp-smiley" style="height: 1em; max-height: 1em;" /><strong>Query</strong>: eine gezielte <strong>Anfrage</strong>, um relevante Informationen aus dem Kontext zu erhalten,</li>



<li>als <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f510.png" alt="🔐" class="wp-smiley" style="height: 1em; max-height: 1em;" /><strong>Key</strong>: ein <strong>Profil</strong>, das beschreibt, welche Informationen dieses Token anbietet,</li>



<li>als <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4e6.png" alt="📦" class="wp-smiley" style="height: 1em; max-height: 1em;" /><strong>Value</strong>: der eigentliche <strong>Informationsinhalt</strong>, den es weitergeben kann.</li>
</ul>



<figure class="wp-block-image size-full"><img  loading="lazy"  decoding="async"  width="951"  height="779"  src="https://www.kimagazin.com/wp-content/uploads/attention.svg"  alt=""  class="wp-image-2687" ></figure>



<p>Der <strong>Self-Attention-Mechanismus</strong> vergleicht die <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2753.png" alt="❓" class="wp-smiley" style="height: 1em; max-height: 1em;" /><strong>Query</strong> eines Tokens mit den <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f510.png" alt="🔐" class="wp-smiley" style="height: 1em; max-height: 1em;" /><strong>Keys</strong> aller anderen Tokens.<br>Je besser ein <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f510.png" alt="🔐" class="wp-smiley" style="height: 1em; max-height: 1em;" /><strong>Key</strong> zur <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2753.png" alt="❓" class="wp-smiley" style="height: 1em; max-height: 1em;" /><strong>Query</strong> passt, desto stärker wird das zugehörige <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4e6.png" alt="📦" class="wp-smiley" style="height: 1em; max-height: 1em;" /><strong>Value</strong> in die Berechnung einbezogen.</p>



<div class="cnvs-block-alert cnvs-block-alert-1774987769507 is-style-cnvs-block-alert-info" >
	<div class="cnvs-block-alert-inner">
		

<p>Ein <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2753.png" alt="❓" class="wp-smiley" style="height: 1em; max-height: 1em;" /><strong>Query</strong> wird mit allen <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f510.png" alt="🔐" class="wp-smiley" style="height: 1em; max-height: 1em;" /><strong>Keys</strong> im Kontext verglichen – und die passenden <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4e6.png" alt="📦" class="wp-smiley" style="height: 1em; max-height: 1em;" /><strong>Values</strong> fließen gewichtet in die Bedeutung des Tokens im aktuellen Kontext ein.</p>

	</div>
	</div>



<p>So entsteht für jedes Token eine neue Repräsentation – <strong>angereichert mit den Informationen derjenigen Tokens, die im aktuellen Kontext am relevantesten sind.</strong></p>



<p>Wir haben jetzt das Grundprinzip des <strong>Self-Attention-Mechanismus</strong> verstanden – Zeit, einen Blick unter die Haube zu werfen.<br>Dafür brauchen wir etwas <strong>Mathematik</strong>, aber keine Sorge: Es bleibt <strong>gut nachvollziehbar</strong>.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Solche <strong>multidimensionalen Zusammenhänge</strong> sind oft schwer vorstellbar.<br>Doch schon mit ein wenig <strong>Mathematik</strong> lassen sie sich erstaunlich gut nachvollziehen.<br>Mein Tipp: <strong>dranbleiben</strong> – es lohnt sich!</p>
</blockquote>



<ul class="shariff-buttons theme-round orientation-horizontal buttonsize-medium"><li class="shariff-button facebook shariff-nocustomcolor" style="background-color:#4273c8"><a href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.kimagazin.com%2Fself-attention-verstehen%2F" title="Bei Facebook teilen" aria-label="Bei Facebook teilen" role="button" rel="nofollow" class="shariff-link" style="; background-color:#3b5998; color:#fff" target="_blank"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 32"><path fill="#3b5998" d="M17.1 0.2v4.7h-2.8q-1.5 0-2.1 0.6t-0.5 1.9v3.4h5.2l-0.7 5.3h-4.5v13.6h-5.5v-13.6h-4.5v-5.3h4.5v-3.9q0-3.3 1.9-5.2t5-1.8q2.6 0 4.1 0.2z"/></svg></span></a></li><li class="shariff-button twitter shariff-nocustomcolor" style="background-color:#595959"><a href="https://twitter.com/share?url=https%3A%2F%2Fwww.kimagazin.com%2Fself-attention-verstehen%2F&text=Self-Attention%20%E2%80%93%20das%20Herzst%C3%BCck%20moderner%20KI" title="Bei X teilen" aria-label="Bei X teilen" role="button" rel="noopener nofollow" class="shariff-link" style="; background-color:#000; color:#fff" target="_blank"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="#000" d="M14.258 10.152L23.176 0h-2.113l-7.747 8.813L7.133 0H0l9.352 13.328L0 23.973h2.113l8.176-9.309 6.531 9.309h7.133zm-2.895 3.293l-.949-1.328L2.875 1.56h3.246l6.086 8.523.945 1.328 7.91 11.078h-3.246zm0 0"/></svg></span></a></li><li class="shariff-button linkedin shariff-nocustomcolor" style="background-color:#1488bf"><a href="https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fwww.kimagazin.com%2Fself-attention-verstehen%2F" title="Bei LinkedIn teilen" aria-label="Bei LinkedIn teilen" role="button" rel="noopener nofollow" class="shariff-link" style="; background-color:#0077b5; color:#fff" target="_blank"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 27 32"><path fill="#0077b5" d="M6.2 11.2v17.7h-5.9v-17.7h5.9zM6.6 5.7q0 1.3-0.9 2.2t-2.4 0.9h0q-1.5 0-2.4-0.9t-0.9-2.2 0.9-2.2 2.4-0.9 2.4 0.9 0.9 2.2zM27.4 18.7v10.1h-5.9v-9.5q0-1.9-0.7-2.9t-2.3-1.1q-1.1 0-1.9 0.6t-1.2 1.5q-0.2 0.5-0.2 1.4v9.9h-5.9q0-7.1 0-11.6t0-5.3l0-0.9h5.9v2.6h0q0.4-0.6 0.7-1t1-0.9 1.6-0.8 2-0.3q3 0 4.9 2t1.9 6z"/></svg></span></a></li><li class="shariff-button whatsapp shariff-nocustomcolor" style="background-color:#5cbe4a"><a href="https://api.whatsapp.com/send?text=https%3A%2F%2Fwww.kimagazin.com%2Fself-attention-verstehen%2F%20Self-Attention%20%E2%80%93%20das%20Herzst%C3%BCck%20moderner%20KI" title="Bei Whatsapp teilen" aria-label="Bei Whatsapp teilen" role="button" rel="noopener nofollow" class="shariff-link" style="; background-color:#34af23; color:#fff" target="_blank"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#34af23" d="M17.6 17.4q0.2 0 1.7 0.8t1.6 0.9q0 0.1 0 0.3 0 0.6-0.3 1.4-0.3 0.7-1.3 1.2t-1.8 0.5q-1 0-3.4-1.1-1.7-0.8-3-2.1t-2.6-3.3q-1.3-1.9-1.3-3.5v-0.1q0.1-1.6 1.3-2.8 0.4-0.4 0.9-0.4 0.1 0 0.3 0t0.3 0q0.3 0 0.5 0.1t0.3 0.5q0.1 0.4 0.6 1.6t0.4 1.3q0 0.4-0.6 1t-0.6 0.8q0 0.1 0.1 0.3 0.6 1.3 1.8 2.4 1 0.9 2.7 1.8 0.2 0.1 0.4 0.1 0.3 0 1-0.9t0.9-0.9zM14 26.9q2.3 0 4.3-0.9t3.6-2.4 2.4-3.6 0.9-4.3-0.9-4.3-2.4-3.6-3.6-2.4-4.3-0.9-4.3 0.9-3.6 2.4-2.4 3.6-0.9 4.3q0 3.6 2.1 6.6l-1.4 4.2 4.3-1.4q2.8 1.9 6.2 1.9zM14 2.2q2.7 0 5.2 1.1t4.3 2.9 2.9 4.3 1.1 5.2-1.1 5.2-2.9 4.3-4.3 2.9-5.2 1.1q-3.5 0-6.5-1.7l-7.4 2.4 2.4-7.2q-1.9-3.2-1.9-6.9 0-2.7 1.1-5.2t2.9-4.3 4.3-2.9 5.2-1.1z"/></svg></span></a></li><li class="shariff-button mailto shariff-nocustomcolor" style="background-color:#a8a8a8"><a href="mailto:?body=https%3A%2F%2Fwww.kimagazin.com%2Fself-attention-verstehen%2F&subject=Self-Attention%20%E2%80%93%20das%20Herzst%C3%BCck%20moderner%20KI" title="Per E-Mail versenden" aria-label="Per E-Mail versenden" role="button" rel="noopener nofollow" class="shariff-link" style="; background-color:#999; color:#fff"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#999" d="M32 12.7v14.2q0 1.2-0.8 2t-2 0.9h-26.3q-1.2 0-2-0.9t-0.8-2v-14.2q0.8 0.9 1.8 1.6 6.5 4.4 8.9 6.1 1 0.8 1.6 1.2t1.7 0.9 2 0.4h0.1q0.9 0 2-0.4t1.7-0.9 1.6-1.2q3-2.2 8.9-6.1 1-0.7 1.8-1.6zM32 7.4q0 1.4-0.9 2.7t-2.2 2.2q-6.7 4.7-8.4 5.8-0.2 0.1-0.7 0.5t-1 0.7-0.9 0.6-1.1 0.5-0.9 0.2h-0.1q-0.4 0-0.9-0.2t-1.1-0.5-0.9-0.6-1-0.7-0.7-0.5q-1.6-1.1-4.7-3.2t-3.6-2.6q-1.1-0.7-2.1-2t-1-2.5q0-1.4 0.7-2.3t2.1-0.9h26.3q1.2 0 2 0.8t0.9 2z"/></svg></span></a></li></ul></div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Kontextfenster &#038; Positionskodierung im Transformer</title>
		<link>https://www.kimagazin.com/kontext-und-position/</link>
		
		<dc:creator><![CDATA[Oskar Kohler]]></dc:creator>
		<pubDate>Sun, 29 Mar 2026 15:00:27 +0000</pubDate>
				<category><![CDATA[Inside AI]]></category>
		<guid isPermaLink="false">https://www.kimagazin.com/?p=2655</guid>

					<description><![CDATA[Dies ist Teil 5 der Kursserie „ChatGPT &#38; Co verstehen: Wie große Sprachmodelle wirklich arbeiten – anschaulich &#38;&#8230;]]></description>
										<content:encoded><![CDATA[
<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Dies ist Teil 5 der Kursserie „ChatGPT &amp; Co verstehen: Wie große Sprachmodelle wirklich arbeiten – anschaulich &amp; interaktiv“.</p>
</blockquote>



<h2 id="die-grossen-vorteile-moderner-transformer-modelle" class="wp-block-heading">Die großen Vorteile moderner Transformer-Modelle</h2>



<p>Die drei wichtigsten Vorteile aktueller LLMs mit Transformer-Architektur:</p>



<ul class="wp-block-list">
<li><strong>Parallele Verarbeitung</strong>: Alle Tokens werden gleichzeitig verarbeitet – nicht Schritt für Schritt.</li>



<li><strong>Besseres Textverständnis</strong>: Das Modell erkennt komplexe semantische Zusammenhänge.</li>



<li><strong>Langer Kontext</strong>: Transformer können tausende Tokens gleichzeitig betrachten</li>
</ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Diese Fortschritte ermöglichen Einsatzbereiche, die noch vor wenigen vollkommen Jahren undenkbar waren.</p>
</blockquote>



<h2 id="wie-viel-text-versteht-ein-sprachmodell-wirklich" class="wp-block-heading">Wie viel Text versteht ein Sprachmodell wirklich?</h2>



<p>Die Länge des sogenannten <strong>Kontextfensters</strong> ist ein zentraler Aspekt moderner Sprachmodelle.<br>Ein LLM analysiert alle Tokens im Kontextfenster <strong>gleichzeitig</strong> und setzt sie <strong>miteinander in Beziehung</strong>. So kann es den ganzen Text „verstehen“.</p>



<div class="cnvs-block-alert cnvs-block-alert-1774968757839 is-style-cnvs-block-alert-info" >
	<div class="cnvs-block-alert-inner">
		

<p>Das <strong>Kontextfenster</strong> ist die <strong>maximale Anzahl von Tokens</strong>, die ein Modell <strong>gleichzeitig analysieren und in Beziehung</strong> setzen kann</p>

	</div>
	</div>



<p><strong>Je größer dieses Fenster, desto mehr Text kann das Modell auf einmal erfassen</strong> – also nicht nur einzelne Wörter und Sätze, sondern sogar ganze Abschnitte oder Kapitel.</p>



<p>Die Größe des Kontextfensters bestimmt maßgeblich das Einsatzgebiet eines Sprachmodells – und ist deshalb ein entscheidender Wettbewerbsfaktor bei der Entwicklung leistungsfähiger LLMs.</p>



<p>In den letzten Jahren hat sich die maximale Kontextlänge massiv erhöht:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Modell</th><th>Kontextfenster (Tokens)</th><th>Ca. Seiten</th><th>Jahr</th><th>Anbieter</th></tr></thead><tbody><tr><td>GPT-1</td><td>512</td><td>&lt; 1</td><td>2018</td><td>OpenAI</td></tr><tr><td>GPT-2</td><td>1.024</td><td>~1,5</td><td>2019</td><td>OpenAI</td></tr><tr><td>GPT-3</td><td>2.048</td><td>~3</td><td>2020</td><td>OpenAI</td></tr><tr><td>GPT-3.5</td><td>4.096</td><td>~5–6</td><td>2022</td><td>OpenAI</td></tr><tr><td>GPT-3.5 Turbo</td><td>bis 16.384</td><td>~20–25</td><td>2023</td><td>OpenAI</td></tr><tr><td>GPT-4</td><td>8.192 / 32.768</td><td>~10 / ~40</td><td>2023</td><td>OpenAI</td></tr><tr><td>GPT-4 Turbo</td><td><strong>128.000</strong></td><td><strong>~160</strong></td><td>2023</td><td>OpenAI</td></tr><tr><td>Claude 1</td><td>~9.000 (geschätzt)</td><td>~12</td><td>2023</td><td>Anthropic</td></tr><tr><td>Claude 2</td><td>100.000</td><td>~130</td><td>2023</td><td>Anthropic</td></tr><tr><td>Claude 3</td><td><strong>200.000</strong></td><td><strong>~260</strong></td><td>2024</td><td>Anthropic</td></tr><tr><td>Gemini 1.5</td><td><strong>1.000.000</strong></td><td><strong>~1.300+</strong></td><td>2024</td><td>Google DeepMind</td></tr><tr><td>LLaMA 2</td><td>4.096</td><td>~5–6</td><td>2023</td><td>Meta</td></tr><tr><td>LLaMA 3</td><td>8.192 – 32.000</td><td>~10–40</td><td>2024</td><td>Meta</td></tr><tr><td>Mistral 7B</td><td>8.192</td><td>~10</td><td>2023</td><td>Mistral.ai</td></tr><tr><td>Mixtral (MoE)</td><td>32.768</td><td>~40</td><td>2023</td><td>Mistral.ai</td></tr><tr><td>Command R+</td><td>128.000</td><td>~160</td><td>2024</td><td>Cohere</td></tr></tbody></table></figure>



<p>In der Tabelle erkennt man deutlich: Einige Modelle haben das Kontextfenster beinahe explosionsartig erweitert.<br>Diese Vergrößerung wird jedoch häufig durch <strong>technische Workarounds oder Speichertricks erreicht</strong> – denn tatsächlich liegt die effektiv nutzbare Kontexttiefe bei den meisten Modellen <strong>weiterhin im Bereich von einigen Tausend Tokens</strong>.</p>



<h2 id="aber-wo-befindet-sich-nun-welches-token" class="wp-block-heading">Aber &#8211; wo befindet sich nun welches Token?</h2>



<p>Die parallele Verarbeitung bringt ein Problem mit sich, das serielle Modelle wie RNNs nicht kennen:<br><strong>Die Reihenfolge der Tokens im Kontext.</strong></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Beispiel:</p>



<ul class="wp-block-list">
<li><em>Der Hund biss den Briefträger.</em></li>



<li><em>Der Briefträger biss den Hund.</em></li>
</ul>
</blockquote>



<p>Beide Sätze enthalten genau die gleichen Wörter – aber die <strong>Reihenfolge der Wörter verändert die Bedeutung</strong> vollkommen.</p>



<p>Transformer müssen also wissen: <strong>An welcher Position steht jedes Token?</strong></p>



<p>Dieses Problem war auch Vaswani und seinem Team bewusst:<br>Ein Transformer verarbeitet alle Tokens gleichzeitig – kennt dabei aber <strong>nicht die Reihenfolge</strong>, in der sie im Satz standen.</p>



<p>Daher musste eine Methode gefunden werden, dem Modell <strong>Positionsinformationen</strong> mitzugeben:<br>Es muss wissen, <strong>an welcher Stelle</strong> im Satz sich ein Token ursprünglich befand.</p>



<h2 id="positional-encoding" class="wp-block-heading">Positional Encoding</h2>



<p>Dazu wird jedem Token eine Positionsangabe hinzugefügt.<br>Das kann entweder <strong>statisch</strong> erfolgen – über eine feste Zahl für jede Position –<br>oder das Modell <strong>lernt selbst</strong>, wie es sich die Position merken kann – mithilfe einer internen Tabelle.</p>



<p>Doch das Problem ist jedoch etwas komplexer, als es erstmals klingt:<br>Es genügt nicht, dem Token einfach eine Zahl mitzugeben – wie z.B. Position 1, 2, 3 &#8230;<br>denn die Position muss sich auch <strong>in den Embeddings widerspiegeln</strong>, also in den einzelnen <strong>Merkmalsdimensionen</strong>, die das Modell intern verarbeitet.<br>Nur so kann das Modell lernen, <strong>wie sich semantische Beziehungen ändern</strong>, wenn die Tokens <strong>an unterschiedlichen Positionen</strong> im Satz stehen.</p>



<div class="cnvs-block-alert cnvs-block-alert-1774968814404 is-style-cnvs-block-alert-info" >
	<div class="cnvs-block-alert-inner">
		

<p>Da das Modell <strong>Tokens parallel verarbeitet</strong>, muss ihre <strong>Position in den Embeddings enthalten sein</strong>, damit es erfassen kann, wie sich Bedeutungen durch unterschiedliche Anordnungen verändern.</p>

	</div>
	</div>



<p>Vaswani wählte dafür eine sehr elegante Lösung:<br>Das sogenannte <strong>Sinusoidal Position Encoding</strong> – auch als <strong>„Vaswani-Methode“</strong> bekannt.</p>



<h2 id="vaswani-methode" class="wp-block-heading">„Vaswani-Methode“</h2>



<p><strong>Die Idee:</strong><br>Jede Position im Satz wird mithilfe von <strong>Sinus- und Kosinus-Funktionen</strong> in unterschiedliche Werte umgewandelt – <strong>separat für jede Dimension im Embedding</strong>.<br>So entsteht ein <strong>einzigartiges Wellenmuster</strong>, das die Position codiert – mathematisch unterscheidbar für jedes Token <strong>und jede Dimension im Embedding</strong>.</p>



<div class="cnvs-block-alert cnvs-block-alert-1774968857747 is-style-cnvs-block-alert-info" >
	<div class="cnvs-block-alert-inner">
		

<div class="wp-block-katex-display-block katex-eq" data-katex-display="true"><pre>PE_{(pos, i)} =
\begin{cases}
\sin\left(\frac{pos}{10000^{\frac{2i}{d}}}\right), &amp; \text{für gerade } i \\
\cos\left(\frac{pos}{10000^{\frac{2i}{d}}}\right), &amp; \text{für ungerade } i
\end{cases}</pre></div>



<p>wobei:</p>



<p>( pos ): Position im Satz</p>



<p>( i ): Index der Dimension</p>



<p>( d ): Dimension des Embeddings</p>

	</div>
	</div>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p></p>
</blockquote>



<p>Die exakte Formel ist weniger entscheidend – wichtig ist:<br>Man kann erkennen, dass die <strong>Positionskodierung je nach Position im Satz und Embedding-Dimension variiert</strong>.<br>Dabei wechseln sich Sinus- und Kosinus Funktionen ab und beginnen mit versetzten Phasen – so entsteht für <strong>jede Position ein eindeutiges, unterscheidbares Wellenmuster</strong>.</p>



<div class="cnvs-block-alert cnvs-block-alert-1774969078216 is-style-cnvs-block-alert-info" >
	<div class="cnvs-block-alert-inner">
		

<p>Bei der <strong>&#8222;Vaswani-Methode&#8220;</strong> entstehen <strong>Positionskodierungen durch sinus- und kosinus-basierte Muster</strong>, die je nach Position und Dimension variieren – so wird <strong>jede Position eindeutig unterscheidbar</strong>.</p>

	</div>
	</div>



<p>Die folgende interaktive Grafik zeigt die Positionskodierung im Detail – du kannst sie selbst steuern und erkunden.</p>


<div class="plotly-container-full">  <div class="plot-wrapper"><div style="border:1px solid #666;border-radius:8px;padding:1rem;margin-bottom:1rem;background-color:transparent">
<div id=plot3d style=width:100%;height:600px></div>
</div>
<script>const numPositions=20,stepsPerPos=10,totalSteps=200,numDims=5,d_model=512,dimSpacing=.1,traces=[];for(let o=0;o<5;o++){const e=[],t=[],r=[],s=.1*o;for(let c=0;c<200;c++){const l=c/10,i=l/Math.pow(1e4,2*Math.floor(o/2)/512),a=o%2==0?Math.sin(i):Math.cos(i);e.push(l),t.push(s),r.push(a)}traces.push({x:e,y:t,z:r,mode:"lines",type:"scatter3d",line:{width:2},showlegend:!1})}Plotly.newPlot("plot3d",traces,{scene:{xaxis:{title:"Token Position",range:[0,20],dtick:5,gridcolor:"#555",zeroline:!1,color:"#ccc"},yaxis:{title:"Dimension",tickvals:[...Array(5).keys()].map((o=>.1*o)),ticktext:[...Array(5).keys()],gridcolor:"#555",zeroline:!1,color:"#ccc"},zaxis:{title:"Value (sin/cos)",range:[-1,1],gridcolor:"#555",zeroline:!1,color:"#ccc"},camera:{eye:{x:-1.6,y:-1.6,z:.8}},bgcolor:"transparent"},margin:{l:0,r:0,b:0,t:0},paper_bgcolor:"transparent"},{displayModeBar:!1,scrollZoom:!1})</script>  </div></div>



<p><strong>Das Positions-Encoding wird einfach zum Vektor des Tokens addiert – also zu jedem einzelnen Embedding.</strong><br>Dadurch verschiebt sich die Lage des Tokens im Merkmalsraum leicht, sodass das LLM erkennen kann, an welcher Stelle im Satz das Token ursprünglich stand.</p>



<h2 id="moderne-methoden-wie-rope" class="wp-block-heading">Moderne Methoden wie RoPE</h2>



<p>Neuere Modelle verwenden eine <strong>verfeinerte Form der Positionskodierung</strong> – etwa <strong>RoPE</strong> (<em>Rotary Positional Encoding</em>).<br>Dabei wird nicht das Token selbst im Merkmalsraum verschoben, sondern die <strong>Art der Betrachtung</strong> des Tokens leicht <strong>gedreht</strong>.<br>RoPE ist eine relative, aber fest definierte Positionskodierung – sie integriert die Abstände zwischen Tokens direkt in die Berechnung, statt absolute Positionen zu kodieren.</p>



<p>Das zugrunde liegende Prinzip bleibt jedoch gleich:<br>Die <strong>Positions-Information</strong> muss dem Modell mitgegeben werden – sonst kann es die Reihenfolge der Tokens nicht erfassen.</p>



<ul class="shariff-buttons theme-round orientation-horizontal buttonsize-medium"><li class="shariff-button facebook shariff-nocustomcolor" style="background-color:#4273c8"><a href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.kimagazin.com%2Fkontext-und-position%2F" title="Bei Facebook teilen" aria-label="Bei Facebook teilen" role="button" rel="nofollow" class="shariff-link" style="; background-color:#3b5998; color:#fff" target="_blank"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 32"><path fill="#3b5998" d="M17.1 0.2v4.7h-2.8q-1.5 0-2.1 0.6t-0.5 1.9v3.4h5.2l-0.7 5.3h-4.5v13.6h-5.5v-13.6h-4.5v-5.3h4.5v-3.9q0-3.3 1.9-5.2t5-1.8q2.6 0 4.1 0.2z"/></svg></span></a></li><li class="shariff-button twitter shariff-nocustomcolor" style="background-color:#595959"><a href="https://twitter.com/share?url=https%3A%2F%2Fwww.kimagazin.com%2Fkontext-und-position%2F&text=Kontextfenster%20%26%20Positionskodierung%20im%20Transformer" title="Bei X teilen" aria-label="Bei X teilen" role="button" rel="noopener nofollow" class="shariff-link" style="; background-color:#000; color:#fff" target="_blank"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="#000" d="M14.258 10.152L23.176 0h-2.113l-7.747 8.813L7.133 0H0l9.352 13.328L0 23.973h2.113l8.176-9.309 6.531 9.309h7.133zm-2.895 3.293l-.949-1.328L2.875 1.56h3.246l6.086 8.523.945 1.328 7.91 11.078h-3.246zm0 0"/></svg></span></a></li><li class="shariff-button linkedin shariff-nocustomcolor" style="background-color:#1488bf"><a href="https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fwww.kimagazin.com%2Fkontext-und-position%2F" title="Bei LinkedIn teilen" aria-label="Bei LinkedIn teilen" role="button" rel="noopener nofollow" class="shariff-link" style="; background-color:#0077b5; color:#fff" target="_blank"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 27 32"><path fill="#0077b5" d="M6.2 11.2v17.7h-5.9v-17.7h5.9zM6.6 5.7q0 1.3-0.9 2.2t-2.4 0.9h0q-1.5 0-2.4-0.9t-0.9-2.2 0.9-2.2 2.4-0.9 2.4 0.9 0.9 2.2zM27.4 18.7v10.1h-5.9v-9.5q0-1.9-0.7-2.9t-2.3-1.1q-1.1 0-1.9 0.6t-1.2 1.5q-0.2 0.5-0.2 1.4v9.9h-5.9q0-7.1 0-11.6t0-5.3l0-0.9h5.9v2.6h0q0.4-0.6 0.7-1t1-0.9 1.6-0.8 2-0.3q3 0 4.9 2t1.9 6z"/></svg></span></a></li><li class="shariff-button whatsapp shariff-nocustomcolor" style="background-color:#5cbe4a"><a href="https://api.whatsapp.com/send?text=https%3A%2F%2Fwww.kimagazin.com%2Fkontext-und-position%2F%20Kontextfenster%20%26%20Positionskodierung%20im%20Transformer" title="Bei Whatsapp teilen" aria-label="Bei Whatsapp teilen" role="button" rel="noopener nofollow" class="shariff-link" style="; background-color:#34af23; color:#fff" target="_blank"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#34af23" d="M17.6 17.4q0.2 0 1.7 0.8t1.6 0.9q0 0.1 0 0.3 0 0.6-0.3 1.4-0.3 0.7-1.3 1.2t-1.8 0.5q-1 0-3.4-1.1-1.7-0.8-3-2.1t-2.6-3.3q-1.3-1.9-1.3-3.5v-0.1q0.1-1.6 1.3-2.8 0.4-0.4 0.9-0.4 0.1 0 0.3 0t0.3 0q0.3 0 0.5 0.1t0.3 0.5q0.1 0.4 0.6 1.6t0.4 1.3q0 0.4-0.6 1t-0.6 0.8q0 0.1 0.1 0.3 0.6 1.3 1.8 2.4 1 0.9 2.7 1.8 0.2 0.1 0.4 0.1 0.3 0 1-0.9t0.9-0.9zM14 26.9q2.3 0 4.3-0.9t3.6-2.4 2.4-3.6 0.9-4.3-0.9-4.3-2.4-3.6-3.6-2.4-4.3-0.9-4.3 0.9-3.6 2.4-2.4 3.6-0.9 4.3q0 3.6 2.1 6.6l-1.4 4.2 4.3-1.4q2.8 1.9 6.2 1.9zM14 2.2q2.7 0 5.2 1.1t4.3 2.9 2.9 4.3 1.1 5.2-1.1 5.2-2.9 4.3-4.3 2.9-5.2 1.1q-3.5 0-6.5-1.7l-7.4 2.4 2.4-7.2q-1.9-3.2-1.9-6.9 0-2.7 1.1-5.2t2.9-4.3 4.3-2.9 5.2-1.1z"/></svg></span></a></li><li class="shariff-button mailto shariff-nocustomcolor" style="background-color:#a8a8a8"><a href="mailto:?body=https%3A%2F%2Fwww.kimagazin.com%2Fkontext-und-position%2F&subject=Kontextfenster%20%26%20Positionskodierung%20im%20Transformer" title="Per E-Mail versenden" aria-label="Per E-Mail versenden" role="button" rel="noopener nofollow" class="shariff-link" style="; background-color:#999; color:#fff"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#999" d="M32 12.7v14.2q0 1.2-0.8 2t-2 0.9h-26.3q-1.2 0-2-0.9t-0.8-2v-14.2q0.8 0.9 1.8 1.6 6.5 4.4 8.9 6.1 1 0.8 1.6 1.2t1.7 0.9 2 0.4h0.1q0.9 0 2-0.4t1.7-0.9 1.6-1.2q3-2.2 8.9-6.1 1-0.7 1.8-1.6zM32 7.4q0 1.4-0.9 2.7t-2.2 2.2q-6.7 4.7-8.4 5.8-0.2 0.1-0.7 0.5t-1 0.7-0.9 0.6-1.1 0.5-0.9 0.2h-0.1q-0.4 0-0.9-0.2t-1.1-0.5-0.9-0.6-1-0.7-0.7-0.5q-1.6-1.1-4.7-3.2t-3.6-2.6q-1.1-0.7-2.1-2t-1-2.5q0-1.4 0.7-2.3t2.1-0.9h26.3q1.2 0 2 0.8t0.9 2z"/></svg></span></a></li></ul></div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Embeddings: Wie KI die Bedeutung von Wörtern versteht</title>
		<link>https://www.kimagazin.com/embeddings-erklaert/</link>
		
		<dc:creator><![CDATA[Oskar Kohler]]></dc:creator>
		<pubDate>Sat, 28 Mar 2026 10:21:25 +0000</pubDate>
				<category><![CDATA[Inside AI]]></category>
		<guid isPermaLink="false">https://www.kimagazin.com/?p=2580</guid>

					<description><![CDATA[Dies ist Teil 4 der Kursserie „ChatGPT &#38; Co verstehen: Wie große Sprachmodelle wirklich arbeiten – anschaulich &#38;&#8230;]]></description>
										<content:encoded><![CDATA[
<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Dies ist Teil 4 der Kursserie „ChatGPT &amp; Co verstehen: Wie große Sprachmodelle wirklich arbeiten – anschaulich &amp; interaktiv“.</p>
</blockquote>



<h2 id="wie-versteht-ein-sprachmodell-einzelne-woerter" class="wp-block-heading">Wie versteht ein Sprachmodell einzelne Wörter?</h2>



<p>Dank des <strong>Tokenizers</strong> lässt sich ein ursprünglich für den Computer völlig <strong>unverständlicher Text</strong> in eine Liste von <strong>Token-IDs</strong> umwandeln – also in <strong>Zahlen</strong>, die das <strong>Sprachmodell</strong> intern digital weiterverarbeiten kann.</p>



<div class="cnvs-block-alert cnvs-block-alert-1774941796389 is-style-cnvs-block-alert-info" >
	<div class="cnvs-block-alert-inner">
		

<p>Ein <strong>Token</strong> kann ein ganzes Wort sein – aber auch ein Wortbestandteil oder ein Satzzeichen.<br>Sprachmodelle (LLMs) verarbeiten Texte intern ausschließlich auf Basis solcher Tokens.</p>

	</div>
	</div>



<div class="cnvs-block-alert cnvs-block-alert-1774941833501 is-style-cnvs-block-alert-warning" >
	<div class="cnvs-block-alert-inner">
		

<p><strong>Hinweis:</strong><br>Zur besseren Lesbarkeit verwende ich im Folgenden meist den Begriff <strong>„Wort“</strong>, obwohl technisch stets <strong>Tokens</strong> gemeint sind.</p>

	</div>
	</div>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p></p>
</blockquote>



<p>Doch wie gelingt es einem <strong>Sprachmodell (LLM)</strong>, aus diesen nackten Zahlen die <strong>Bedeutung einzelner Wörter</strong> zu erkennen – und letztlich den <strong>Sinn ganzer Texte</strong> zu erfassen?</p>



<h3 id="wie-machen-wir-menschen-das" class="wp-block-heading">Wie machen wir Menschen das?</h3>



<p>Stellen wir uns das Wort <strong>„Katze“</strong> vor.<br>Für uns ist es weit mehr als eine Reihe von Buchstaben: Wir verbinden damit sofort Vorstellungen wie <strong>weiches Fell</strong>, <strong>flauschige Ohren</strong>, <strong>große Augen</strong> und <strong>schnurrende Laute</strong>. Zudem wissen wir aus eigener <strong>Erfahrung</strong> oder <strong>Geschichten</strong>, dass Katzen gerne <strong>Mäuse jagen</strong>, viel <strong>schlafen</strong> – und mit <strong>Hunden</strong> nicht immer gut auskommen.</p>


	<img
		class="kim-dark-image aligncenter"
		src="https://www.kimagazin.com/wp-content/uploads/cat_light.webp"
		data-light="https://www.kimagazin.com/wp-content/uploads/cat_light.webp"
		data-dark="https://www.kimagazin.com/wp-content/uploads/cat_dark.webp"
		data-height="350"		alt=""
		loading="lazy"
		decoding="async"
	>
	



<p>Ein <strong>LLM wie ChatGPT</strong> versucht genau diese Zusammenhänge ebenfalls abzubilden – aber auf <strong>statistische Weise</strong>.</p>



<h3 id="lernen-aus-texten-merkmale-ohne-etikett" class="wp-block-heading">Lernen aus Texten: Merkmale ohne Etikett</h3>



<p><strong>Sprachmodelle</strong> können die Welt noch <strong>nicht selbst beobachten</strong>. Sie haben <strong>keine Sinne</strong> und können daher <strong>keine eigenen Erfahrungen sammeln</strong>. Stattdessen lernen sie <strong>ausschließlich aus Texten</strong> – aus <strong>zig Milliarden Wörtern</strong>, gesammelt aus <strong>Wikipedia-Artikeln</strong>, <strong>Büchern</strong>, <strong>Foren</strong>, <strong>Webseiten</strong> und vielen anderen Quellen.</p>



<p>Wir haben bereits gesehen, dass <strong>neuronale Netze</strong> wahre Meister darin sind, <strong>komplexe Muster</strong> zu erkennen.<br>Beim <strong>Training</strong> erkennt das Modell typische <strong>Muster und Zusammenhänge</strong>: dass <strong>„Katze“</strong> häufig gemeinsam mit Begriffen wie <strong>„schnurrt“</strong>, <strong>„flauschig“</strong>, <strong>„Maus“</strong> oder <strong>„Tier“</strong> vorkommt.</p>



<p>Aus dieser statistischen Häufigkeit leitet es typische <strong>Eigenschaften</strong> ab – etwa dass eine <strong>Katze</strong> oft als <strong>weich</strong>, <strong>klein</strong>, <strong>Haustier</strong> oder <strong>verspielt</strong> beschrieben wird.</p>



<p>Diese Eigenschaften nennt man <strong>latente Merkmale</strong> (engl. <strong><em>latent Features</em></strong>) – weil sie nicht direkt benannt oder beschriftet sind.<br>Das Modell vergibt keine festen Etiketten wie <strong>„hat Fell“</strong> oder <strong>„jagt Mäuse“</strong>, sondern <strong>entdeckt solche Muster</strong> eigenständig auf Basis der <strong>Häufigkeit</strong> und des <strong>Kontexts</strong> im <strong>Text</strong>.</p>



<p>Ähnlich wie bei <strong>neuronalen Netzen zur Bilderkennung</strong>, bei denen man nicht exakt sagen kann, welche <strong>Kante</strong> oder welcher <strong>Bogen</strong> eine <strong>„6“</strong> erkennen lässt, lassen sich auch diese <strong>Merkmale</strong> im Sprachmodell nicht direkt ablesen.<br>Wir wissen nicht, <strong>welche intern erkannten Eigenschaften</strong> genau für eine <strong>„Katze“</strong> stehen – aber das Modell <strong>lernt</strong> sie aus dem statistischen Zusammenhang der Sprache.</p>



<div class="cnvs-block-alert cnvs-block-alert-1774941934255 is-style-cnvs-block-alert-info" >
	<div class="cnvs-block-alert-inner">
		

<p>Ein <strong>latentes Merkmal</strong> (engl. <em>latent Feature</em>) ist eine vom Sprachmodell gelernte, unbenannte Eigenschaft eines Wortes – nicht vorgegeben, sondern aus den Trainingsdaten abgeleitet.</p>

	</div>
	</div>



<p>LLMs erkennen eine Vielzahl an <strong>Merkmalen</strong> – bei <strong>GPT-3.5</strong> sind es <strong>12.288 latente Merkmale</strong>, auch <strong>Dimensionen</strong> genannt.<br>Jedes Wort wird durch diese 12.288 Merkmale beschrieben – das bildet die Grundlage für seine <strong>semantische Bedeutung</strong> im Modell.</p>



<div class="cnvs-block-alert cnvs-block-alert-1774941971225 is-style-cnvs-block-alert-info" >
	<div class="cnvs-block-alert-inner">
		

<p>Der Begriff <strong>„semantisch“</strong> bezieht sich auf die Bedeutung von Wörtern und ihre inhaltlichen Beziehungen zueinander.</p>

	</div>
	</div>



<p>Noch einmal zur Erinnerung: Die <strong>Merkmale</strong> (Dimensionen) sind <strong>abstrakt</strong> und für uns <strong>nicht direkt interpretierbar</strong>.<br>Vielleicht steht eines davon für etwas wie <strong>„flauschig“</strong> – doch diese Bedeutungen sind <strong>nicht benannt</strong>, sondern entstehen <strong>automatisch beim Training</strong> des Modells.<br>Wir Menschen können nur mit bestimmten <strong>Analyseverfahren</strong> vermuten, welche Eigenschaften sie repräsentieren.</p>



<div class="cnvs-block-alert cnvs-block-alert-1774942018558 is-style-cnvs-block-alert-info" >
	<div class="cnvs-block-alert-inner">
		

<p>Illustrativ – reale Merkmale sind abstrakt und unbenannt</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Dimension</th><th>Merkmal</th><th>Beschreibung</th></tr></thead><tbody><tr><td>1</td><td>flauschig / weich</td><td>Typisches Gefühl des Fells</td></tr><tr><td>2</td><td>Haustier</td><td>Wird oft in Haushalten gehalten</td></tr><tr><td>&#8230;</td><td>&#8230;</td><td>&#8230;</td></tr><tr><td>12.287</td><td>schnurrt</td><td>Lautäußerung bei Wohlbefinden</td></tr><tr><td>12.288</td><td>Konflikt mit Hunden</td><td>Typisches Feindbild in Erzählungen</td></tr></tbody></table></figure>

	</div>
	</div>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p></p>
</blockquote>



<p>Jedes einzelne Wort wird als eine <strong>Liste von Zahlen</strong> dargestellt, zum Beispiel:<br><code>[0.12, -0.98, 1.57, 0.03, ..., -0.44]</code></p>



<p>Jede dieser Zahlen steht für den <strong>Wert eines Merkmals</strong> (einer Dimension).<br>Diese Liste von Zahlen nennt man in der Mathematik einen <strong>Vektor</strong> – in der KI meist ein <strong>Embedding</strong>, also ein Vektor, der die <strong>Bedeutung eines Wortes</strong> beschreibt.</p>



<div class="cnvs-block-alert cnvs-block-alert-1774942076804 is-style-cnvs-block-alert-info" >
	<div class="cnvs-block-alert-inner">
		

<p>Ein <strong>Embedding</strong> ist eine Liste von Zahlen, die die Merkmale eines Wortes zusammenfasst – also ein Merkmalsvektor, der dessen Bedeutung im Modell repräsentiert.</p>

	</div>
	</div>



<h2 id="der-merkmalsraum-bedeutung-in-zahlen" class="wp-block-heading">Der Merkmalsraum – Bedeutung in Zahlen</h2>



<p>Jedes einzelne Wort im Text wird geometrisch in einen <strong>Merkmalsraum</strong> (engl. <strong><em>Embedding Space</em></strong>) eingetragen, der seine <strong>semantische Bedeutung</strong> repräsentiert.<br>Dieser <strong>Vektor</strong>, der die <strong>Position im Merkmalsraum</strong> festlegt und damit die Bedeutung des Worts beschreibt, wird <strong>Embedding</strong> genannt.</p>


	<img
		class="kim-dark-image aligncenter"
		src="https://www.kimagazin.com/wp-content/uploads/3d_light.webp"
		data-light="https://www.kimagazin.com/wp-content/uploads/3d_light.webp"
		data-dark="https://www.kimagazin.com/wp-content/uploads/3d_dark.webp"
		data-height="350"		alt=""
		loading="lazy"
		decoding="async"
	>
	



<p>Wir Menschen kennen Räume typischerweise in <strong>drei Dimensionen</strong> – mit den Achsen <strong>Breite</strong>, <strong>Länge</strong> und <strong>Höhe</strong>.<br>Der Merkmalsraum in einem Sprachmodell wie <strong>GPT-3.5</strong> hat jedoch <strong>12.288 Dimensionen</strong>.<br>Jede dieser Achsen repräsentiert ein <strong>latentes Merkmal</strong>, das die Bedeutung des Wortes mitbestimmt.</p>



<p>Die Illustration zeigt eine vereinfachte Darstellung von acht Dimensionen eines Embeddings.</p>


	<img
		class="kim-dark-image aligncenter"
		src="https://www.kimagazin.com/wp-content/uploads/8d_light.webp"
		data-light="https://www.kimagazin.com/wp-content/uploads/8d_light.webp"
		data-dark="https://www.kimagazin.com/wp-content/uploads/8d_dark.webp"
		data-height="350"		alt=""
		loading="lazy"
		decoding="async"
	>
	



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Das ist nicht nur eine Metapher zur besseren visuellen Vorstellung – der Merkmalsraum wird mathematisch tatsächlich als geometrischer Raum abgebildet.</p>
</blockquote>



<p><strong>Worte mit ähnlichen Merkmalen</strong> – etwa <strong>Katze</strong>, <strong>Hund</strong> oder <strong>Haustier</strong> – gruppieren sich in einer Region des <strong>Merkmalsraums</strong>, während Begriffe wie <strong>Auto</strong>, <strong>Fahrrad</strong> oder <strong>Lkw</strong> sich in einer anderen Region konzentrieren.</p>



<p>Im <strong>geometrischen Vektorraum</strong> bilden sich solche <strong>semantisch verwandten Begriffe</strong> typischerweise zu <strong>Clustern</strong> (Gruppen).</p>



<p><strong>Je näher zwei Wörter im Raum beieinander liegen</strong>, desto <strong>ähnlicher sind sie sich inhaltlich bzw. semantisch</strong>.</p>


<div class="plotly-container-full">  <div class="plot-wrapper"><div style="border:2px solid #bbb;padding:.5rem;border-radius:8px;max-width:1280px;margin:2rem auto">
<div id=plotly-embed style=width:100%;height:600px></div>
</div>
<script>document.addEventListener("DOMContentLoaded",(function(){Plotly.newPlot("plotly-embed",[{type:"scatter3d",mode:"markers+text",x:[-3.3,-3,-2.3,-2,0,2,2.3,3,3.3],y:[1,1.2,1.1,1.4,2.2,2,2.3,3,3.3],z:[1,1.1,1.2,1.5,2.3,2,2.2,3,3.2],text:["Hund","Kaninchen","Meerschweinchen","Katze","Transportbox","Fahrrad","Motorrad","Auto","LKW"],textposition:"top center",textfont:{size:16,color:"#999"},marker:{size:12,color:["#e74c3c","#d35400","#f39c12","#c0392b","#7f8c8d","#2ecc71","#1abc9c","#27ae60","#16a085"],opacity:.9,line:{width:1.5,color:"#33333388"}}}],{title:{text:"Embeddings in 3D<br><span style='font-size:14px; color:#999999;'>Bewege die Maus und beobachte wie Merkmale sich im Raum gruppieren!</span>",font:{size:20,color:"#999999"},x:.5,xanchor:"center"},paper_bgcolor:"rgba(0,0,0,0)",plot_bgcolor:"rgba(0,0,0,0)",margin:{l:0,r:0,t:70,b:0},scene:{aspectmode:"data",camera:{eye:{x:-1.6,y:-1.6,z:.8}},xaxis:{title:"",showticklabels:!1,showspikes:!0,color:"#888",gridcolor:"#444",zeroline:!0},yaxis:{title:"",showticklabels:!1,showspikes:!0,color:"#888",gridcolor:"#444",zeroline:!0},zaxis:{title:"",showticklabels:!1,showspikes:!0,color:"#888",gridcolor:"#444",zeroline:!0}}},{responsive:!0,displayModeBar:!1,scrollZoom:!1})}))</script>  </div></div>



<p><strong>Die Abbildung zeigt eine dreidimensionale Darstellung semantischer Wortbeziehungen.</strong><br>Ähnliche Begriffe gruppieren sich zu erkennbaren <strong>Clustern</strong>:</p>



<p><strong>Links</strong> sammeln sich typische <strong>Haustiere</strong> wie <strong>Hund</strong>, <strong>Kaninchen</strong> und <strong>Meerschweinchen</strong> in enger Nachbarschaft.<br>Etwas abseits thront die <strong>Katze</strong> auf ihrem eigenen Platz: selbstständig, aber thematisch verwandt.<br>In der <strong>Mitte</strong> befindet sich die <strong>Transportbox</strong> – eine neutrale Verbindung zwischen Tier- und Fahrzeugwelt.</p>



<p><strong>Rechts</strong> davon formieren sich zwei weitere Cluster:<br><strong>Leichte Fahrzeuge</strong> wie <strong>Fahrrad</strong> und <strong>Motorrad</strong> – und weiter außen <strong>schwere Fahrzeuge</strong> wie <strong>Auto</strong> und <strong>LKW</strong>.</p>



<p><strong>Die räumliche Anordnung ist – wie wir bereits wissen – kein Zufall:</strong><br>Sie ergibt sich aus den <strong>statistischen Mustern</strong>, die Sprachmodelle aus Milliarden Wörtern erkennen<br><strong>Je näher sich Begriffe im Raum befinden, desto stärker ähneln sie sich in Bedeutung und Verwendung.</strong></p>



<p>Ein bekanntes Beispiel veranschaulicht dies: Der Vektorunterschied zwischen <strong>„Frau“</strong> und <strong>„Mann“</strong> ist ähnlich dem zwischen <strong>„Königin“</strong> und <strong>„König“</strong>, was auf das Merkmal <strong>Geschlecht</strong> hinweist. Ebenso ist der Unterschied zwischen <strong>„car“</strong> und <strong>„cars“</strong> vergleichbar mit dem zwischen <strong>„dog“</strong> und <strong>„dogs“</strong> – das zeigt, dass auch der Unterschied zwischen <strong>Einzahl</strong> und <strong>Mehrzahl</strong> im Vektorraum abgebildet wird.</p>



<p>So entsteht aus Sprache ein <strong>intuitives, visuell greifbares Landschaftsbild</strong> – mit <strong>Clustern</strong> und <strong>Untergruppen</strong>.</p>



<h2 id="wie-aehnlich-sind-zwei-woerter" class="wp-block-heading">Wie ähnlich sind zwei Wörter?</h2>



<p>Klassische Embedding-Modelle wie <strong>Word2Vec</strong>, <strong>GloVe</strong> oder <strong>FastText</strong>, aber auch moderne <strong>Transformer-Modelle</strong>, messen semantische Ähnlichkeit anhand der <strong>räumlichen Nähe</strong> von Wortvektoren im <strong>Embedding Space</strong>.<br>Wörter mit ähnlichem Kontext liegen näher beieinander – unabhängig von Grammatik oder Satzstruktur.</p>



<p>Grundlegend gibt es drei Möglichkeiten, die räumliche Nähe zu messen:</p>



<p>1) <strong>Euklidische Distanz</strong><br>Dabei wird der geometrische Abstand zwischen zwei Embeddings über alle Dimensionen berechnet.<br>Anschaulich entspricht das der „geraden Linie“ zwischen zwei Punkten im Vektorraum.</p>



<div class="cnvs-block-alert cnvs-block-alert-1774963393278 is-style-cnvs-block-alert-info" >
	<div class="cnvs-block-alert-inner">
		

<p>Für alle, die es mathematisch mögen:</p>



<p>Die euklidische Distanz ist einfach die Länge der Geraden zwischen zwei Punkten, berechnet nach dem Satz des Pythagoras.</p>



<p>Als Beispiel gilt für 3 Dimensionen:</p>



<div class="wp-block-katex-display-block katex-eq" data-katex-display="true"><pre>d(\mathbf{x}, \mathbf{y}) = \sqrt{(x_1 - y_1)^2 + (x_2 - y_2)^2 + (x_3 - y_3)^2}</pre></div>



<p>In der allgemeinen Form für (n) Dimensionen schreibt man kompakter:</p>



<div class="wp-block-katex-display-block katex-eq" data-katex-display="true"><pre>d(\mathbf{x}, \mathbf{y}) = \sqrt{sum_{i=1}^{n} (x_i - y_i)^2}</pre></div>

	</div>
	</div>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p></p>
</blockquote>



<p>2) <strong>Skalares Produkt (Dot-Produkt)</strong><br>Die Ähnlichkeit von Wörtern lässt sich auch über den Winkel und die Länge der Vektoren ihrer Embeddings verstehen.<br>Man kann sich das so vorstellen: Je kleiner der Winkel zwischen den Vektoren zweier Wörter ist, desto ähnlicher sind ihre Bedeutungen.</p>



<div class="cnvs-block-alert cnvs-block-alert-1774963756201 is-style-cnvs-block-alert-info" >
	<div class="cnvs-block-alert-inner">
		

<p>Für alle, die es wieder mathematisch mögen:</p>



<p>Man multipliziert die einzelnen Komponenten (Hadamard-Produkt) und summiert anschließend die Ergebnisse.<br>So entsteht ein einzelner Wert, der die semantische Ähnlichkeit ausdrückt.</p>



<p><strong>negativ</strong> → eher gegensätzlich</p>



<p>nahe <strong>0</strong> → kaum Ähnlichkeit</p>



<p><strong>positiv</strong> → semantisch ähnlich</p>



<div class="wp-block-katex-display-block katex-eq" data-katex-display="true"><pre>\mathbf{x} \cdot \mathbf{y} = sum_{i=1}^{n} x_i , y_i</pre></div>

	</div>
	</div>



<p>3) <strong>Kosinus-Ähnlichkeit</strong></p>


	<img
		class="kim-dark-image aligncenter"
		src="https://www.kimagazin.com/wp-content/uploads/cos_light.webp"
		data-light="https://www.kimagazin.com/wp-content/uploads/cos_light.webp"
		data-dark="https://www.kimagazin.com/wp-content/uploads/cos_dark.webp"
		data-height="300"		alt=""
		loading="lazy"
		decoding="async"
	>
	



<p>Die Kosinus-Ähnlichkeit geht noch einen Schritt weiter und ist ein <strong>normalisiertes Skalarprodukt</strong>.<br>Das bedeutet: Es wird nur der <strong>Winkel</strong> zwischen den Vektoren betrachtet, unabhängig von ihrer Länge.<br>Das Ergebnis liegt immer zwischen <strong>–1</strong> und <strong>1</strong>.<br>Wie auch bei den anderen Verfahren fließen alle Dimensionen der Embeddings in die Berechnung ein.</p>



<div class="cnvs-block-alert cnvs-block-alert-1774964036083 is-style-cnvs-block-alert-info" >
	<div class="cnvs-block-alert-inner">
		

<p>Für alle Matheliebhaber:</p>



<div class="wp-block-katex-display-block katex-eq" data-katex-display="true"><pre>cos(\theta) = \frac{ \vec{A} \cdot \vec{B} }{ | \vec{A} | \cdot | \vec{B} | }</pre></div>



<p>Die Formel misst, wie ähnlich zwei <strong>Wort-Embeddings</strong> im semantischen Raum ausgerichtet sind.</p>



<ul class="wp-block-list">
<li>Im Zähler steht ihr <strong>Skalarprodukt</strong> – also wie stark sie in die gleiche Richtung zeigen.</li>



<li>Im Nenner das Produkt ihrer <strong>Längen</strong> – wodurch die Werte normiert werden.</li>
</ul>



<p>Das Ergebnis liegt zwischen <strong>–1</strong> und <strong>1</strong>:</p>

	</div>
	</div>



<h4 id="zusammenfassung" class="wp-block-heading">Zusammenfassung</h4>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Verfahren</th><th>Idee</th><th>Wertebereich</th><th>Typischer Einsatz</th></tr></thead><tbody><tr><td><strong>Euklidische Distanz</strong></td><td>Geometrischer Abstand im Raum</td><td>0 → ∞</td><td>Clustering, Abstandsmaße</td></tr><tr><td><strong>Skalares Produkt</strong></td><td>Berücksichtigt Winkel und Vektorlängen</td><td>–∞ → +∞</td><td>Attention, Ranking, Scores</td></tr><tr><td><strong>Kosinus-Ähnlichkeit</strong></td><td>Winkel zwischen Vektoren (normiert)</td><td>–1 → +1</td><td>Semantische Suche, Retrieval</td></tr></tbody></table></figure>



<div class="cnvs-block-alert cnvs-block-alert-1774964173094 is-style-cnvs-block-alert-info" >
	<div class="cnvs-block-alert-inner">
		

<p>Die <strong>semantische Ähnlichkeit</strong> zwischen Wörtern wird im Merkmalsraum häufig über den Winkel zwischen ihren Vektoren berechnet – typischerweise mithilfe der Kosinus-Ähnlichkeit.</p>

	</div>
	</div>



<p>Das Prinzip der <strong>Vektorähnlichkeit</strong> wird auch in modernen KI-Anwendungen genutzt – etwa bei der <strong>semantischen Suche</strong>, bei der Begriffe nicht nur wörtlich, sondern über ihre Bedeutung verglichen werden.<br>Auch Sprachmodelle verwenden es, um aus großen Textmengen passende Inhalte zu finden und weiterzuverarbeiten.</p>



<p>Moderne LLMs wie <strong>ChatGPT</strong> gehen allerdings deutlich weiter:<br>Sie vergleichen nicht nur die semantische Nähe von Wörtern, sondern berücksichtigen zusätzlich auch <strong>Grammatik</strong>, <strong>Satzstruktur</strong> und <strong>Kontext</strong>.</p>



<p>Wie das genau funktioniert, schauen wir uns in den nächsten Abschnitten an.</p>



<h2 id="mehr-als-sprache-multimodale-embeddings" class="wp-block-heading">Mehr als Sprache: Multimodale Embeddings</h2>



<p>Embeddings sind längst nicht mehr &#8222;nur&#8220; auf Sprache beschränkt.<br>Neben Text und Tokens lassen sich auch andere Medientypen in Vektoren übersetzen – etwa <strong>Bilder</strong>, <strong>Audio</strong> oder sogar <strong>Video</strong>.<br>So können KI-Modelle Bedeutungen nicht nur sprachlich, sondern auch visuell und akustisch erfassen.</p>


	<img
		class="kim-dark-image aligncenter"
		src="https://www.kimagazin.com/wp-content/uploads/multimodal_light.webp"
		data-light="https://www.kimagazin.com/wp-content/uploads/multimodal_light.webp"
		data-dark="https://www.kimagazin.com/wp-content/uploads/multimodal_dark.webp"
		data-height="350"		alt=""
		loading="lazy"
		decoding="async"
	>
	



<p>Die bisher besprochenen Embeddings beziehen sich auf <strong>Wort-Embeddings</strong> (genauer gesagt <strong>Token-Embeddings</strong>).<br>Doch die neuen Modelle von OpenAI, Anthropic, IBM, Meta und anderen sind <strong>multimodale Foundation-Modelle</strong>:<br>Sie verstehen nicht nur Text, sondern auch <strong>Bilder</strong> und <strong>Audio</strong>.</p>



<p>Das Grundprinzip bleibt dabei gleich:</p>



<ul class="wp-block-list">
<li><strong>Texte</strong> zerlegen sie in Tokens,</li>



<li><strong>Bilder</strong> in kleine Bildausschnitte (Patches),</li>



<li><strong>Audio</strong> in kurze Zeitfenster (Samples).</li>
</ul>



<p>Aus diesen Fragmenten erzeugen die Modelle Vektoren (Embeddings) und verankern sie in semantischen Räumen.</p>



<p>Dabei gibt es zwei Ansätze:</p>



<ul class="wp-block-list">
<li>ein <strong>gemeinsamer Embedding-Space</strong> für alle Modalitäten,</li>



<li>oder <strong>separate Räume</strong>, die durch das Training so aufeinander abgestimmt werden, dass sie miteinander kompatibel sind und sich direkt vergleichen lassen.</li>
</ul>



<p>So können die Modelle <strong>crossmodal</strong> arbeiten – ein Bild mit einer Textbeschreibung abgleichen oder ein Geräusch mit einem geschriebenen Begriff verknüpfen.<br>Auf diese Weise entsteht ein multimediales Verständnis von Inhalten.</p>



<p>Ein einfaches Beispiel macht das greifbar:</p>



<ul class="wp-block-list">
<li><strong>Text → Bild</strong>: Die Eingabe <em>„eine Katze in einer Transportbox“</em> liefert in einer Bilddatenbank genau die passenden Bilder.</li>



<li><strong>Bild → Text</strong>: Ein Foto der gleichen Szene führt zu einer automatisch generierten Bildbeschreibung in Worten.</li>
</ul>



<p>So verknüpfen multimodale Foundation-Modelle Inhalte in beiden Richtungen und schaffen Verbindungen zwischen Text, Bild und Audio.</p>



<ul class="shariff-buttons theme-round orientation-horizontal buttonsize-medium"><li class="shariff-button facebook shariff-nocustomcolor" style="background-color:#4273c8"><a href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.kimagazin.com%2Fembeddings-erklaert%2F" title="Bei Facebook teilen" aria-label="Bei Facebook teilen" role="button" rel="nofollow" class="shariff-link" style="; background-color:#3b5998; color:#fff" target="_blank"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 32"><path fill="#3b5998" d="M17.1 0.2v4.7h-2.8q-1.5 0-2.1 0.6t-0.5 1.9v3.4h5.2l-0.7 5.3h-4.5v13.6h-5.5v-13.6h-4.5v-5.3h4.5v-3.9q0-3.3 1.9-5.2t5-1.8q2.6 0 4.1 0.2z"/></svg></span></a></li><li class="shariff-button twitter shariff-nocustomcolor" style="background-color:#595959"><a href="https://twitter.com/share?url=https%3A%2F%2Fwww.kimagazin.com%2Fembeddings-erklaert%2F&text=Embeddings%3A%20Wie%20KI%20die%20Bedeutung%20von%20W%C3%B6rtern%20versteht" title="Bei X teilen" aria-label="Bei X teilen" role="button" rel="noopener nofollow" class="shariff-link" style="; background-color:#000; color:#fff" target="_blank"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="#000" d="M14.258 10.152L23.176 0h-2.113l-7.747 8.813L7.133 0H0l9.352 13.328L0 23.973h2.113l8.176-9.309 6.531 9.309h7.133zm-2.895 3.293l-.949-1.328L2.875 1.56h3.246l6.086 8.523.945 1.328 7.91 11.078h-3.246zm0 0"/></svg></span></a></li><li class="shariff-button linkedin shariff-nocustomcolor" style="background-color:#1488bf"><a href="https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fwww.kimagazin.com%2Fembeddings-erklaert%2F" title="Bei LinkedIn teilen" aria-label="Bei LinkedIn teilen" role="button" rel="noopener nofollow" class="shariff-link" style="; background-color:#0077b5; color:#fff" target="_blank"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 27 32"><path fill="#0077b5" d="M6.2 11.2v17.7h-5.9v-17.7h5.9zM6.6 5.7q0 1.3-0.9 2.2t-2.4 0.9h0q-1.5 0-2.4-0.9t-0.9-2.2 0.9-2.2 2.4-0.9 2.4 0.9 0.9 2.2zM27.4 18.7v10.1h-5.9v-9.5q0-1.9-0.7-2.9t-2.3-1.1q-1.1 0-1.9 0.6t-1.2 1.5q-0.2 0.5-0.2 1.4v9.9h-5.9q0-7.1 0-11.6t0-5.3l0-0.9h5.9v2.6h0q0.4-0.6 0.7-1t1-0.9 1.6-0.8 2-0.3q3 0 4.9 2t1.9 6z"/></svg></span></a></li><li class="shariff-button whatsapp shariff-nocustomcolor" style="background-color:#5cbe4a"><a href="https://api.whatsapp.com/send?text=https%3A%2F%2Fwww.kimagazin.com%2Fembeddings-erklaert%2F%20Embeddings%3A%20Wie%20KI%20die%20Bedeutung%20von%20W%C3%B6rtern%20versteht" title="Bei Whatsapp teilen" aria-label="Bei Whatsapp teilen" role="button" rel="noopener nofollow" class="shariff-link" style="; background-color:#34af23; color:#fff" target="_blank"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#34af23" d="M17.6 17.4q0.2 0 1.7 0.8t1.6 0.9q0 0.1 0 0.3 0 0.6-0.3 1.4-0.3 0.7-1.3 1.2t-1.8 0.5q-1 0-3.4-1.1-1.7-0.8-3-2.1t-2.6-3.3q-1.3-1.9-1.3-3.5v-0.1q0.1-1.6 1.3-2.8 0.4-0.4 0.9-0.4 0.1 0 0.3 0t0.3 0q0.3 0 0.5 0.1t0.3 0.5q0.1 0.4 0.6 1.6t0.4 1.3q0 0.4-0.6 1t-0.6 0.8q0 0.1 0.1 0.3 0.6 1.3 1.8 2.4 1 0.9 2.7 1.8 0.2 0.1 0.4 0.1 0.3 0 1-0.9t0.9-0.9zM14 26.9q2.3 0 4.3-0.9t3.6-2.4 2.4-3.6 0.9-4.3-0.9-4.3-2.4-3.6-3.6-2.4-4.3-0.9-4.3 0.9-3.6 2.4-2.4 3.6-0.9 4.3q0 3.6 2.1 6.6l-1.4 4.2 4.3-1.4q2.8 1.9 6.2 1.9zM14 2.2q2.7 0 5.2 1.1t4.3 2.9 2.9 4.3 1.1 5.2-1.1 5.2-2.9 4.3-4.3 2.9-5.2 1.1q-3.5 0-6.5-1.7l-7.4 2.4 2.4-7.2q-1.9-3.2-1.9-6.9 0-2.7 1.1-5.2t2.9-4.3 4.3-2.9 5.2-1.1z"/></svg></span></a></li><li class="shariff-button mailto shariff-nocustomcolor" style="background-color:#a8a8a8"><a href="mailto:?body=https%3A%2F%2Fwww.kimagazin.com%2Fembeddings-erklaert%2F&subject=Embeddings%3A%20Wie%20KI%20die%20Bedeutung%20von%20W%C3%B6rtern%20versteht" title="Per E-Mail versenden" aria-label="Per E-Mail versenden" role="button" rel="noopener nofollow" class="shariff-link" style="; background-color:#999; color:#fff"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#999" d="M32 12.7v14.2q0 1.2-0.8 2t-2 0.9h-26.3q-1.2 0-2-0.9t-0.8-2v-14.2q0.8 0.9 1.8 1.6 6.5 4.4 8.9 6.1 1 0.8 1.6 1.2t1.7 0.9 2 0.4h0.1q0.9 0 2-0.4t1.7-0.9 1.6-1.2q3-2.2 8.9-6.1 1-0.7 1.8-1.6zM32 7.4q0 1.4-0.9 2.7t-2.2 2.2q-6.7 4.7-8.4 5.8-0.2 0.1-0.7 0.5t-1 0.7-0.9 0.6-1.1 0.5-0.9 0.2h-0.1q-0.4 0-0.9-0.2t-1.1-0.5-0.9-0.6-1-0.7-0.7-0.5q-1.6-1.1-4.7-3.2t-3.6-2.6q-1.1-0.7-2.1-2t-1-2.5q0-1.4 0.7-2.3t2.1-0.9h26.3q1.2 0 2 0.8t0.9 2z"/></svg></span></a></li></ul></div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>RAG in der Praxis: KI-gestützte Dokumentennutzung</title>
		<link>https://www.kimagazin.com/rag-praxis-ki-dokumentennutzung/</link>
		
		<dc:creator><![CDATA[Oskar Kohler]]></dc:creator>
		<pubDate>Sat, 21 Mar 2026 09:19:25 +0000</pubDate>
				<category><![CDATA[Inside AI]]></category>
		<category><![CDATA[Playbooks]]></category>
		<guid isPermaLink="false">https://www.kimagazin.com/?p=2353</guid>

					<description><![CDATA[Wie kann ich Dokumente intelligent nutzen? Dieses Problem existiert bereits seit vielen Jahren:Unternehmen sitzen auf einem riesigen Berg&#8230;]]></description>
										<content:encoded><![CDATA[
<h2 id="wie-kann-ich-dokumente-intelligent-nutzen" class="wp-block-heading">Wie kann ich Dokumente intelligent nutzen?</h2>



<p>Dieses <strong>Problem</strong> existiert bereits seit vielen Jahren:<br>Unternehmen sitzen auf einem <strong>riesigen Berg wertvoller interner Dokumente</strong> in unterschiedlichsten Formaten. <strong>Wissen, Regeln, Anweisungen, Tipps und Erfahrungen</strong> wurden über Jahre hinweg dokumentiert, gesammelt und an den verschiedensten Orten abgelegt.</p>



<p>Es ist ein <strong>enormer Schatz an Wissen</strong> – doch sobald man darauf zugreifen möchte, scheint er <strong>unauffindbar</strong> zu sein. Man weiß, dass die Information <strong>irgendwo existiert</strong>, doch <strong>niemand weiß mehr genau, wo</strong> sie abgelegt wurde.</p>



<p>Viele Unternehmen kennen dieses Problem nur zu gut. Immer wieder wird versucht, <strong>Ordnung in dieses Dokumentenchaos</strong> zu bringen und eine <strong>sinnvolle Struktur</strong> zu etablieren. Doch das ist in der Praxis oft <strong>schwieriger als gedacht</strong>. Selbst wenn man sich auf eine <strong>einheitliche Struktur</strong> geeinigt hat, bleiben Herausforderungen bestehen: Inhalte sind <strong>doppelt vorhanden</strong>, wurden <strong>mehrfach aktualisiert</strong> oder <strong>widersprechen sich</strong> an einzelnen Stellen.</p>



<p>Häufig versucht man, dem Ganzen mit <strong>strikten Ordnerhierarchien</strong>, <strong>Namenskonventionen</strong> und <strong>Volltextsuche</strong> Herr zu werden. Trotzdem kostet die <strong>Suche nach den passenden Dokumenten</strong> viel Zeit – ganz abgesehen davon, dass die gefundenen Dateien erst <strong>mühsam gesichtet</strong> werden müssen, um die <strong>tatsächlich relevante Information</strong> zu finden.</p>



<p>Wie praktisch wäre es, stattdessen <strong>einfach Fragen stellen</strong> zu können – und ein <strong>hilfreicher Assistent</strong> beantwortet sie direkt auf Basis der <strong>unternehmenseigenen Dokumente</strong>?<br><strong>Welche Richtlinie gilt in diesem Fall?</strong><br><strong>Was muss ich hier beachten?</strong></p>



<h2 id="grosse-sprachmodelle-als-game-changer" class="wp-block-heading">Große Sprachmodelle als Game Changer</h2>



<p>Bis vor <strong>Kurzem</strong> war dies leider noch <strong>Wunschdenken</strong>. Doch dank <strong>aktueller Fortschritte in der KI</strong> – insbesondere durch <strong>große Sprachmodelle</strong> wie <strong>ChatGPT</strong>, <strong>Gemini</strong> oder <strong>Mistral</strong> – ist genau das inzwischen <strong>realistisch umsetzbar</strong>.</p>



<p>Diese <strong>Sprachmodelle</strong> sind in der Lage, <strong>Texte semantisch zu verarbeiten</strong> und <strong>Fragen auf Basis vorgegebener Texte</strong> zu beantworten. Dabei geht es nicht um reines <strong>Stichwortsuchen</strong>, sondern um das <strong>Verstehen von Zusammenhängen und Bedeutungen</strong> im Text.</p>



<div class="cnvs-block-alert cnvs-block-alert-1774817401508 is-style-cnvs-block-alert-info" >
	<div class="cnvs-block-alert-inner">
		

<p><strong>Große Sprachmodelle (LLMs – Large Language Models)</strong> sind darauf trainiert, <strong>Wörter und ihre Bedeutung im Kontext</strong> zu erfassen. Ihre technische Grundlage bilden <strong>Transformer-Architekturen</strong>, die die Beziehungen zwischen Wörtern (genauer <strong>Tokens</strong>: Worte, Wortteile oder Satzzeichen) in einem Text abbilden und so die <strong>semantische Struktur</strong> des Inhalts erkennen.<br>Trainiert werden diese Modelle auf <strong>Textvervollständigung</strong>: Sie lernen, auf Basis des bisherigen Kontexts das <strong>wahrscheinlich nächste Token</strong> vorherzusagen und einen Text dadurch schrittweise sinnvoll zu <strong>vervollständigen</strong>.</p>

	</div>
	</div>



<p>Wir nutzen <strong>LLMs wie ChatGPT und ähnliche Modelle</strong> heute <strong>praktisch täglich</strong>, und viele können sich ein <strong>Leben ohne sie kaum noch vorstellen</strong>. Die <strong>Handhabung ist dabei erstaunlich einfach</strong>:<br>Wir geben dem LLM <strong>etwas Kontext</strong> in Form eines <strong>Prompts</strong>, und das Modell <strong>vervollständigt</strong> diesen.</p>



<p>Stellen wir eine <strong>Frage</strong>, erhalten wir – im Idealfall – eine <strong>passende Antwort</strong>. Dieses Wissen bezieht das LLM aus seinem <strong>Weltwissen</strong>, also aus den <strong>Daten, mit denen es trainiert wurde</strong>.</p>



<p><strong>Fortschrittliche Modelle</strong> nutzen darüber hinaus <strong>Function Calling</strong> oder ähnliche Mechanismen, um sich <strong>zusätzliche Informationen aus externen Quellen</strong>, etwa aus dem <strong>Internet</strong>, zu beschaffen.</p>



<h2 id="wie-bringen-wir-nun-unsere-eigenen-dokumente-ins-spiel" class="wp-block-heading">Wie bringen wir nun unsere eigenen Dokumente ins Spiel?</h2>



<p>Für <strong>allgemeines Wissen</strong> funktioniert das bereits sehr gut. Doch wie stellen wir Fragen zu <strong>eigenen Dokumenten</strong> – etwa zu einer <strong>PDF-Datei</strong>?</p>



<p>Im Prinzip scheint auch das <strong>ganz einfach</strong> zu sein:<br>Wir <strong>extrahieren den Text</strong> (und gegebenenfalls auch <strong>Bilder und Tabellen</strong>) aus dem Dokument, <strong>kopieren</strong> ihn in das Chatfenster und stellen anschließend unsere <strong>Frage</strong>. Als Antwort erhalten wir – idealerweise – Informationen, die <strong>direkt aus dem Dokument</strong> stammen.</p>



<div class="wp-block-merpress-mermaidjs diagram-source-mermaid"><pre class="mermaid">flowchart TD
subgraph A[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4c4.png" alt="📄" class="wp-smiley" style="height: 1em; max-height: 1em;" /> PDF-Verarbeitung]
A0[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4c4.png" alt="📄" class="wp-smiley" style="height: 1em; max-height: 1em;" /> PDF] --> A1[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9f0.png" alt="🧰" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Text extrahieren]
end

subgraph B[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2753.png" alt="❓" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Anfrage]
B0[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4ac.png" alt="💬" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Nutzerfrage] --> B1[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9fe.png" alt="🧾" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Prompt]
A1 --> B1
end

subgraph C[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2728.png" alt="✨" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Generierung]
B1 --> C0[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f916.png" alt="🤖" class="wp-smiley" style="height: 1em; max-height: 1em;" /> LLM]
C0 --> C1[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4dd.png" alt="📝" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Antwort]
end</pre></div>



<p>So unkompliziert das zunächst klingt, <strong>verbergen sich dahinter jedoch einige grundlegende Probleme</strong>:</p>



<ol class="wp-block-list">
<li>Das <strong>Herauskopieren relevanter Informationen</strong> aus Dokumenten kann bereits beim <strong>Copy-and-Paste</strong> mühsam und fehleranfällig sein.</li>



<li>Wir müssen dem <strong>Modell sehr genau vorgeben</strong>, wie es sich verhalten soll, damit es <strong>kein eigenes Weltwissen beimischt</strong> oder <strong>halluziniert</strong>.</li>



<li>Bei <strong>großen Dokumenten</strong> stoßen wir schnell an die <strong>Grenzen des Kontextfensters</strong> – also an die maximale Textmenge, die ein LLM gleichzeitig verarbeiten kann.</li>



<li>Der Kontext bleibt nur erhalten, weil das Dokument <strong>Teil des Chatverlaufs</strong> ist. Wird es nicht erneut mitgeschickt oder fällt aus dem Kontextfenster, ist es für das LLM <strong>nicht mehr verfügbar</strong>.</li>



<li>Durch die <strong>hohe Anzahl an Tokens</strong> kann dieser Ansatz <strong>sehr schnell teuer</strong> werden.</li>



<li>Zudem können wir auf diese Weise <strong>immer nur einzelne Dokumente</strong> mitgeben – in der Praxis ist relevantes Wissen jedoch häufig auf <strong>Hunderte oder Tausende von Dokumenten</strong> verteilt.</li>
</ol>



<h2 id="retrieval-augmented-generation-rag" class="wp-block-heading">Retrieval-Augmented Generation (RAG)</h2>



<p>Die <strong>grundlegende Idee</strong> ist einfach:<br>Zu einer <strong>Frage</strong> werden <strong>relevante Abschnitte aus den vorhandenen Dokumenten</strong> herausgesucht und dem <strong>Prompt als zusätzlicher Kontext</strong> mitgegeben. Das LLM verfügt dadurch über genau die <strong>Informationen</strong>, die es benötigt, um die Frage <strong>dokumentengetreu</strong> zu beantworten.</p>



<div class="wp-block-merpress-mermaidjs diagram-source-mermaid"><pre class="mermaid">flowchart TD
subgraph D[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4da.png" alt="📚" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Dokumente vorbereiten]
D0[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4c4.png" alt="📄" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Dokumente] --> D1[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9f0.png" alt="🧰" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Inhalte extrahieren]
end

D1 --> K[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4da.png" alt="📚" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Wissensbasis]

Q[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4ac.png" alt="💬" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Nutzerfrage] --> R[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f50e.png" alt="🔎" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Relevante Inhalte finden]
K --> R
R --> P[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9fe.png" alt="🧾" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Prompt mit Kontext]
P --> L[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f916.png" alt="🤖" class="wp-smiley" style="height: 1em; max-height: 1em;" /> LLM]
L --> A[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4dd.png" alt="📝" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Antwort]</pre></div>



<p>Wichtig ist dabei: Die Dokumente werden <strong>nicht vollständig</strong>, sondern nur <strong>selektiv</strong> eingebunden – also genau die Textstellen, die für die jeweilige Frage relevant sind.</p>



<p>Auf diese Weise lassen sich <strong>mehrere der zuvor beschriebenen Kernprobleme direkt lösen</strong>:<br>Durch die <strong>gezielte Auswahl relevanter Ausschnitte</strong> können Inhalte aus <strong>vielen Dokumenten gleichzeitig</strong> berücksichtigt werden, ohne das <strong>Kontextfenster zu sprengen</strong> oder die <strong>Tokenkosten explodieren</strong> zu lassen.</p>



<h2 id="gute-vorbereitung-ist-alles" class="wp-block-heading">Gute Vorbereitung ist alles</h2>



<p>Damit das LLM <strong>schnell und gezielt auf relevante Inhalte</strong> zugreifen kann, müssen die Dokumente <strong>vorab aufbereitet</strong> werden.<br>Zunächst gilt es, die Dokumente in eine <strong>für Maschinen lesbare Form</strong> zu überführen. Anschließend werden die Inhalte in <strong>kleinere Einheiten</strong> aufgeteilt und <strong>indexiert</strong>, sodass ein <strong>schneller Zugriff</strong> möglich ist – vergleichbar mit einer Datenbank.</p>



<h3 id="dokumente-in-eine-lesbare-form-bringen" class="wp-block-heading">Dokumente in eine lesbare Form bringen</h3>



<p>Dieser erste Schritt ist <strong>deutlich anspruchsvoller</strong>, als es auf den ersten Blick scheint. Dokumente liegen in der Praxis in den <strong>unterschiedlichsten Formaten</strong> vor: einfache Textdateien, Word-Dokumente, E-Mails, PDFs, Webseiten und vieles mehr.</p>



<p>Bei <strong>einfachen Texten, Word-Dateien oder E-Mails</strong> ist die Extraktion meist unproblematisch. Anders sieht es bei <strong>PDFs oder Webseiten</strong> aus. Diese enthalten oft <strong>komplexe Formatierungen</strong>, <strong>Tabellen</strong>, <strong>Bilder</strong>, <strong>Layouts</strong> oder sogar <strong>interaktive Elemente</strong>.</p>



<p>Im Idealfall werden <strong>alle relevanten Inhalte vollständig extrahiert</strong>, die <strong>inhaltliche Hierarchie beibehalten</strong> und <strong>Bilder sowie Tabellen</strong> dem jeweils passenden Text zugeordnet. Gerade bei <strong>Webseiten, E-Mails oder PDFs</strong> stellt das jedoch häufig eine <strong>große Herausforderung</strong> dar.</p>



<p>Für diese Konvertierung kommen unterschiedliche Ansätze zum Einsatz: von <strong>selbstgebauten Extraktionspipelines</strong> über <strong>Dokumentenkonvertierungslösungen</strong> bis hin zu spezialisierten <strong>Parsern wie Docling</strong>. Je nach Aufbau und Qualität der Quelldokumente kann dieser Schritt <strong>relativ einfach</strong> – oder nahezu ein <strong>unlösbares Problem</strong> sein.</p>



<p>Das Ziel ist im optimalen Fall eine <strong>strukturierte, hierarchische Repräsentation der Inhalte</strong>, die als Grundlage für alle weiteren Verarbeitungsschritte dient.</p>



<h3 id="dokumente-in-kleinere-happen-aufteilen" class="wp-block-heading">Dokumente in kleinere Happen aufteilen</h3>



<p>Nachdem wir die <strong>Daten in eine einheitliche, lesbare Form</strong> gebracht haben, werden die Dokumente in <strong>kleinere Einheiten</strong> zerlegt – sogenannte <strong>Chunks</strong>.<br>Diese Aufgabe übernimmt ein <strong>Splitter</strong>.</p>



<p>Je nach <strong>Art und Struktur des Dokuments</strong> kommen dabei unterschiedliche Strategien zum Einsatz:<br>vom <strong>einfachen Längenschnitt</strong>, über <strong>rekursive Splitter</strong>, bis hin zu Verfahren, die Inhalte <strong>hierarchisch</strong> entlang von Überschriften, Absätzen oder Abschnitten aufteilen.</p>



<p>Damit die einzelnen Chunks ihren <strong>inhaltlichen Zusammenhang</strong> nicht verlieren, wird in der Praxis meist ein <strong>Overlap</strong> verwendet. Dabei wird ein <strong>Teil des vorherigen und nachfolgenden Inhalts</strong> in jeden Chunk übernommen, um Kontext zu erhalten.</p>



<p>Dieser Schritt ist ein <strong>essenzieller Bestandteil der RAG-Pipeline</strong>, denn die <strong>Chunk-Größe</strong> hat einen maßgeblichen Einfluss auf die <strong>Qualität der Ergebnisse</strong>:</p>



<ul class="wp-block-list">
<li><strong>Zu kleine Chunks</strong> trennen Informationen, die eigentlich zusammengehören.</li>



<li><strong>Zu große Chunks</strong> packen zu viel auf einmal hinein, sodass das Wichtige untergeht.</li>
</ul>



<p>Auch der <strong>Overlap</strong> spielt dabei eine entscheidende Rolle. Häufig werden Faustregeln wie <strong>200–800 Tokens Chunk-Größe</strong> bei etwa <strong>10–20 % Overlap</strong> genannt. Diese Werte sind jedoch <strong>keine festen Vorgaben</strong>, sondern hängen stark vom <strong>Dokumenttyp und dem konkreten Anwendungsfall</strong> ab.</p>



<p>Bewährt haben sich <strong>Stichproben</strong>, um zu prüfen, ob einzelne Chunks <strong>für sich verständlich</strong> und sinnvoll <strong>in den Gesamtkontext einzuordnen</strong> sind. Diese Prüfung kann <strong>manuell</strong> erfolgen, lässt sich in vielen Fällen aber auch <strong>automatisiert</strong> unterstützen.</p>



<h3 id="bedeutung-statt-woerter-speichern" class="wp-block-heading">Bedeutung statt Wörter speichern</h3>



<p>Nun haben wir unsere <strong>lesbaren Häppchen</strong> – diese möchten wir so abspeichern, dass wir sie <strong>später schnell und gezielt wiederfinden</strong> können.<br>Das Ziel ist, zu einem <strong>großen Dokumentenpool Fragen zu stellen</strong> und dabei genau die <strong>relevanten Chunks</strong> zu erhalten.</p>



<p>Früher hätte man diese Chunks einfach in einer <strong>klassischen Datenbank</strong> gespeichert und über eine <strong>Volltextsuche</strong> abgefragt – mit, wie wir wissen, oft <strong>mäßigen Ergebnissen</strong>. Die Suche bleibt dabei stark <strong>wortbasiert</strong> und berücksichtigt dabei kaum Bedeutung oder inhaltliche Nähe.</p>



<h4 id="embedding-die-bedeutung-eines-worts" class="wp-block-heading">Embedding &#8211; die Bedeutung eines Worts</h4>



<p>Dank moderner <strong>Transformer-Modelle</strong> können wir heute einen <strong>deutlich effektiveren Ansatz</strong> verfolgen:<br>Statt nur den Text zu speichern, speichern wir dessen <strong>Bedeutung</strong>. Dieser Vorgang wird als <strong>Embedding</strong> bezeichnet.</p>



<div class="cnvs-block-alert cnvs-block-alert-1774818349443 is-style-cnvs-block-alert-info" >
	<div class="cnvs-block-alert-inner">
		

<p><strong>LLMs und Embedding-Modelle</strong> basieren beide auf der <strong>Transformer-Technologie</strong>, verfolgen jedoch <strong>unterschiedliche Ziele</strong>.<br>LLMs werden auf <strong>Textvervollständigung</strong> (Next-Token-Prediction) trainiert.<br><strong>Embedding-Modelle</strong> hingegen werden darauf optimiert, <strong>semantische Ähnlichkeit</strong> abzubilden.<br>Typischerweise geschieht dies mithilfe von <strong>Textpaaren</strong> (z. B. Frage/Antwort oder thematisch verwandte Texte). Das Ziel ist, <strong>inhaltlich ähnliche Texte im Embedding-Space nahe beieinander</strong> zu platzieren.</p>

	</div>
	</div>



<p>In den <strong>Grundlagen</strong> auf dieser Webseite beschreibe ich die <strong>Technologie hinter Embeddings</strong> ausführlicher. An dieser Stelle fasse ich das <strong>Prinzip bewusst vereinfacht</strong> noch einmal zusammen.</p>



<p>Wem das Thema Embeddings geläufig ist, kann diesen Absatz überspringen.</p>



<p>Einzelne <strong>Wörter – genauer gesagt Tokens –</strong> werden anhand einer Vielzahl von <strong>Merkmalen</strong> (man könnte auch von <strong>Eigenschaften</strong> sprechen) beschrieben und als <strong>Punkte in einem mehrdimensionalen Raum</strong> abgelegt.</p>



<p>Nehmen wir als vereinfachtes Beispiel eine <strong>Katze</strong>. Mit drei Eigenschaften – etwa <em>flauschige Ohren</em>, <em>Fellnase</em> und <em>große Augen</em> – ließe sich eine Katze in einem <strong>dreidimensionalen Raum</strong> darstellen: <strong>eine Dimension pro Eigenschaft</strong>.</p>



<p>Erhöhen wir die Anzahl der Dimensionen, können entsprechend <strong>mehr Eigenschaften gleichzeitig</strong> berücksichtigt werden. Mit acht Dimensionen wären es acht Eigenschaften, mit sechzehn entsprechend sechzehn. <strong>Moderne Embedding-Modelle</strong> arbeiten jedoch mit <strong>sehr viel höheren Dimensionalitäten</strong>, zum Beispiel <strong>1.536 Dimensionen</strong>, und können damit eine entsprechend <strong>feingranulare Beschreibung</strong> der Bedeutung eines Tokens abbilden.</p>


	<img
		class="kim-dark-image aligncenter"
		src="https://www.kimagazin.com/wp-content/uploads/8d_light.webp"
		data-light="https://www.kimagazin.com/wp-content/uploads/8d_light.webp"
		data-dark="https://www.kimagazin.com/wp-content/uploads/8d_dark.webp"
		data-height="350"		alt=""
		loading="lazy"
		decoding="async"
	>
	



<div class="cnvs-block-alert cnvs-block-alert-1774818544474 is-style-cnvs-block-alert-info" >
	<div class="cnvs-block-alert-inner">
		

<p>Dies ist nicht nur eine Metapher zur besseren visuellen Vorstellung – der Merkmalsraum wird <strong>mathematisch tatsächlich als geometrischer Raum</strong> modelliert, in dem Abstände und Richtungen berechnet werden können.</p>

	</div>
	</div>



<p>Wichtig dabei: Die Eigenschaften einzelner Wörter oder Begriffe werden <strong>nicht manuell festgelegt oder beschriftet</strong>. Stattdessen lernt das Modell diese Merkmale <strong>automatisch während des Trainings</strong> auf großen Textmengen. Man spricht hierbei von <strong>latenten Merkmalen</strong>, da sie zwar wirksam sind, für uns Menschen jedoch <strong>nicht direkt interpretierbar</strong>.</p>



<p>Das Ziel ist es, <strong>Begriffe mit ähnlicher Bedeutung</strong> im Raum <strong>nahe beieinander</strong> abzubilden.<br>Der <strong>Abstand zwischen ihnen</strong> drückt dabei die <strong>semantische Nähe</strong> aus.</p>



<p><strong>Worte mit ähnlichen Merkmalen</strong> – etwa <strong>Katze</strong>, <strong>Hund</strong> oder <strong>Haustier</strong> – gruppieren sich in einer Region des <strong>Merkmalsraums</strong>, während Begriffe wie <strong>Auto</strong>, <strong>Fahrrad</strong> oder <strong>Lkw</strong> sich in einer anderen Region konzentrieren.</p>


<div class="plotly-container-full">  <div class="plot-wrapper"><div style="border:2px solid #bbb;padding:.5rem;border-radius:8px;max-width:1280px;margin:2rem auto">
<div id=plotly-embed style=width:100%;height:600px></div>
</div>
<script>document.addEventListener("DOMContentLoaded",(function(){Plotly.newPlot("plotly-embed",[{type:"scatter3d",mode:"markers+text",x:[-3.3,-3,-2.3,-2,0,2,2.3,3,3.3],y:[1,1.2,1.1,1.4,2.2,2,2.3,3,3.3],z:[1,1.1,1.2,1.5,2.3,2,2.2,3,3.2],text:["Hund","Kaninchen","Meerschweinchen","Katze","Transportbox","Fahrrad","Motorrad","Auto","LKW"],textposition:"top center",textfont:{size:16,color:"#999"},marker:{size:12,color:["#e74c3c","#d35400","#f39c12","#c0392b","#7f8c8d","#2ecc71","#1abc9c","#27ae60","#16a085"],opacity:.9,line:{width:1.5,color:"#33333388"}}}],{title:{text:"Embeddings in 3D<br><span style='font-size:14px; color:#999999;'>Bewege die Maus und beobachte wie Merkmale sich im Raum gruppieren!</span>",font:{size:20,color:"#999999"},x:.5,xanchor:"center"},paper_bgcolor:"rgba(0,0,0,0)",plot_bgcolor:"rgba(0,0,0,0)",margin:{l:0,r:0,t:70,b:0},scene:{aspectmode:"data",camera:{eye:{x:-1.6,y:-1.6,z:.8}},xaxis:{title:"",showticklabels:!1,showspikes:!0,color:"#888",gridcolor:"#444",zeroline:!0},yaxis:{title:"",showticklabels:!1,showspikes:!0,color:"#888",gridcolor:"#444",zeroline:!0},zaxis:{title:"",showticklabels:!1,showspikes:!0,color:"#888",gridcolor:"#444",zeroline:!0}}},{responsive:!0,displayModeBar:!1,scrollZoom:!1})}))</script>  </div></div>



<p>Alle <strong>Wörter (Tokens)</strong> eines Chunks werden nun <strong>embedded</strong> – das heißt, sie werden in eine <strong>Position in einem mehrdimensionalen Vektorraum</strong> überführt.<br>Das Ergebnis ist ein <strong>numerischer Vektor</strong>, zum Beispiel <em>(0.1, 0.23, …)</em>, mit <strong>einem Zahlenwert pro Dimension</strong>.</p>



<p>Verschiedene <strong>Anbieter</strong> stellen heute <strong>unterschiedliche Embedding-Modelle</strong> zur Verfügung, darunter zum Beispiel <strong>E5</strong>, <strong>OpenAI</strong> oder <strong>Cohere</strong>.</p>



<p>Betrachten wir einen Chunk mit beispielsweise <strong>500 Tokens</strong>. Würde man jedes Token einzeln als Vektor mit <strong>1.536 Dimensionen</strong> darstellen, ergäbe das pro Chunk <strong>768.000 Zahlenwerte</strong>. Das ist <strong>unhandlich</strong> und lässt sich später nur schwer effizient vergleichen.</p>



<p>Deshalb verfolgen wir einen anderen Ansatz:<br><strong>Jeder Chunk wird als Ganzes durch einen einzigen Vektor beschrieben</strong>. Dieser Vektor dient als eine Art <strong>kompakter Fingerabdruck</strong> für den gesamten Inhalt des Chunks.</p>



<h4 id="pooling" class="wp-block-heading">Pooling</h4>



<p>Das Verfahren, aus vielen Token-Vektoren einen <strong>einzigen Fingerabdruck für den gesamten Chunk</strong> zu berechnen, nennt man <strong>Pooling</strong>.<br>Dabei gibt es verschiedene Pooling-Strategien, zum Beispiel <strong>Mean Pooling</strong>, <strong>Max Pooling</strong>, <strong>CLS-Token</strong> oder <strong>Weighted Pooling</strong>.</p>



<p>Für <strong>RAG-Anwendungen</strong> wird in der Praxis <strong>häufig Mean Pooling</strong> eingesetzt. Dabei wird für jede Dimension der <strong>arithmetische Mittelwert</strong> über alle Token-Vektoren eines Chunks berechnet. Konkret bedeutet das:<br>Jede einzelne Dimension aller Token wird aufsummiert und anschließend durch die <strong>Anzahl der Tokens</strong> geteilt – eine klassische <strong>Mittelwertberechnung</strong>.</p>



<p>Durch dieses Verfahren werden die <strong>semantischen Merkmale aller Tokens</strong> eines Chunks zusammengeführt.<br>Erstaunlicherweise liefert diese <strong>einfache Methode</strong> in vielen Anwendungsfällen <strong>stabile und gut vergleichbare Ergebnisse</strong>.</p>



<p>Je nach Embedding-Modell ist dieser Pooling-Schritt intern umgesetzt oder explizit auswählbar.</p>



<h4 id="speichern-in-der-datenbank" class="wp-block-heading">Speichern in der Datenbank</h4>



<p>Nun können wir den <strong>Chunk-Vektor</strong> gemeinsam mit dem zugehörigen <strong>Text</strong> in einer <strong>Vektordatenbank</strong> speichern.<br>Dadurch lassen sich die Inhalte später <strong>schnell, zuverlässig und semantisch</strong> wiederfinden.</p>



<p>Zur Auswahl stehen <strong>verschiedene Vektordatenbanken</strong>, die jeweils ihre <strong>eigenen Vor- und Nachteile</strong> haben. Dazu zählen zum Beispiel <strong>Pinecone</strong>, <strong>Weaviate</strong>, <strong>Qdrant</strong>, <strong>Milvus</strong> oder <strong>ChromaDB</strong>.</p>



<p>Für <strong>Tests und Prototypen (MVPs)</strong> eignet sich <strong>ChromaDB</strong> besonders gut, da es <strong>leichtgewichtig</strong>, <strong>einfach aufzusetzen</strong> und lokal nutzbar ist.<br>Für den <strong>produktiven Einsatz</strong> greifen Unternehmen hingegen häufiger zu <strong>Pinecone</strong>, <strong>Weaviate</strong> oder <strong>Qdrant</strong>, da diese Lösungen besser auf <strong>Skalierbarkeit</strong>, <strong>Stabilität</strong> und <strong>Betrieb in Produktionsumgebungen</strong> ausgelegt sind.</p>



<h2 id="frage-deine-ki" class="wp-block-heading">Frage deine KI</h2>



<p><strong>RAG-Systeme</strong> sind in Unternehmen oft der <strong>erste Berührungspunkt mit KI</strong>. Sie lassen sich <strong>vergleichsweise einfach implementieren</strong> und liefern schnell einen <strong>konkreten, messbaren Mehrwert</strong>.</p>



<p>Für <strong>Mitarbeitende</strong> ist das besonders praktisch, um Fragen zu <strong>internen Richtlinien</strong>, <strong>Prozessen</strong> oder dem <strong>unternehmensweiten Wissenspool</strong> zu stellen. Gleichzeitig profitieren auch <strong>Kundinnen und Kunden</strong>, etwa bei Fragen zu <strong>Öffnungszeiten</strong>, <strong>Produkten</strong> oder <strong>Services</strong>.</p>



<p>In der Praxis erfolgt die Interaktion häufig über eine <strong>Chatoberfläche</strong>, die an bekannte KI-Systeme erinnert. Alternativ wird das System direkt in eine <strong>bestehende Infrastruktur</strong> integriert, zum Beispiel in <strong>Microsoft Teams</strong> oder ähnliche Kollaborationstools.</p>



<p>Dabei gilt: <strong>Je unauffälliger und natürlicher die Integration</strong>, desto <strong>besser wird KI von den Menschen angenommen</strong>.</p>



<h3 id="wie-findet-rag-die-relevanten-chunks" class="wp-block-heading">Wie findet RAG die relevanten Chunks?</h3>



<p>In der Praxis stellt ein <strong>Nutzer</strong> eine Frage, zum Beispiel: <em>„Wie sind die Öffnungszeiten?“</em><br>Nun ist es Aufgabe des <strong>RAG-Systems</strong>, auf Basis dieser Anfrage die <strong>relevanten Chunks</strong> zu finden und daraus eine <strong>möglichst passende Antwort</strong> zu generieren.</p>



<p>Der Ablauf ist dabei sehr ähnlich zu dem Prozess, den wir bereits beim <strong>Embedding der Dokumente</strong> kennengelernt haben:</p>



<ol class="wp-block-list">
<li>Die <strong>Frage des Nutzers</strong> wird zunächst in <strong>Tokens</strong> zerlegt.</li>



<li>Anschließend wird die <strong>gesamte Frage embedded</strong> und – je nach Modell – <strong>gepoolt</strong>. Dadurch erhält sie eine <strong>Position im Embedding Space</strong>, also im <strong>mehrdimensionalen latenten Vektorraum</strong>.</li>



<li>Die <strong>Chunks, die im Vektorraum am nächsten</strong> zu dieser Frage liegen, sind diejenigen, die uns interessieren.</li>
</ol>



<p>Ganz wichtig dabei ist, dass für das <strong>Embedding der Chunks</strong> und für das <strong>Embedding der Nutzerfrage</strong> <strong>dasselbe Embedding-Modell</strong> und <strong>dieselben Parameter</strong> verwendet werden.</p>



<p>Andernfalls liegen Frage und Dokumente <strong>in unterschiedlichen Vektorräumen</strong> – sie „sprechen“ dann <strong>nicht dieselbe Sprache</strong> und lassen sich <strong>nicht sinnvoll miteinander vergleichen</strong>.</p>



<h4 id="wie-finden-wir-heraus-welche-chunks-am-naechsten-zu-unserer-frage-sind" class="wp-block-heading">Wie finden wir heraus, welche Chunks am nächsten zu unserer Frage sind?</h4>



<p>Dazu messen wir die <strong>räumliche Distanz</strong> zwischen dem <strong>Vektor der Nutzerfrage</strong> und den <strong>Vektoren der gespeicherten Chunks</strong>.<br>Chunks mit dem <strong>geringsten Abstand</strong> gelten als <strong>semantisch am ähnlichsten</strong> und werden für die Beantwortung der Frage herangezogen.</p>



<p>Wie man den <strong>geometrischen Abstand</strong> zwischen Vektoren misst, habe ich in den <strong>Grundlagen</strong> auf dieser Webseite bereits ausführlich erklärt.<br>Ich greife den Punkt hier <strong>noch einmal kurz auf</strong>, um den Zusammenhang klarzumachen.</p>



<h4 id="geometrische-naehe-im-embedding-raum" class="wp-block-heading">Geometrische Nähe im Embedding-Raum</h4>



<p>Grundlegend gibt es drei Möglichkeiten, die räumliche Nähe zu messen:</p>



<p>1) <strong>Euklidische Distanz</strong><br>Dabei wird der geometrische Abstand zwischen zwei Vektoren über alle Dimensionen berechnet.<br>Anschaulich entspricht das der „geraden Linie“ zwischen zwei Punkten im Vektorraum.</p>



<div class="cnvs-block-alert cnvs-block-alert-1774818817945 is-style-cnvs-block-alert-info" >
	<div class="cnvs-block-alert-inner">
		

<p>Für alle, die es mathematisch mögen:</p>



<p>Die euklidische Distanz ist einfach die Länge der Geraden zwischen zwei Punkten, berechnet nach dem Satz des Pythagoras.</p>



<p>Als Beispiel gilt für 3 Dimensionen:</p>



<div class="wp-block-katex-display-block katex-eq" data-katex-display="true"><pre>d(\mathbf{x}, \mathbf{y}) = \sqrt{(x_1 - y_1)^2 + (x_2 - y_2)^2 + (x_3 - y_3)^2}</pre></div>



<p>In der allgemeinen Form für (n) Dimensionen schreibt man kompakter:</p>



<div class="wp-block-katex-display-block katex-eq" data-katex-display="true"><pre>d(\mathbf{x}, \mathbf{y}) = \sqrt{\sum_{i=1}^{n} (x_i - y_i)^2}</pre></div>

	</div>
	</div>



<p>2) <strong>Skalares Produkt (Dot-Produkt)</strong><br>Die Ähnlichkeit von Wörtern lässt sich auch über den Winkel und die Länge der Vektoren ihrer Embeddings verstehen.<br>Man kann sich das so vorstellen: Je kleiner der Winkel zwischen den Vektoren zweier Wörter ist, desto ähnlicher sind ihre Bedeutungen.</p>



<div class="cnvs-block-alert cnvs-block-alert-1774819249018 is-style-cnvs-block-alert-info" >
	<div class="cnvs-block-alert-inner">
		

<p>Für alle, die es wieder mathematisch mögen:</p>



<p>Man multipliziert die einzelnen Komponenten (Hadamard-Produkt) und summiert anschließend die Ergebnisse.<br>So entsteht ein einzelner Wert, der die semantische Ähnlichkeit ausdrückt.</p>



<p><strong>negativ</strong> → eher gegensätzlich</p>



<p>nahe <strong>0</strong> → kaum Ähnlichkeit</p>



<p><strong>positiv</strong> → semantisch ähnlich</p>



<div class="wp-block-katex-display-block katex-eq" data-katex-display="true"><pre>\mathbf{x} \cdot \mathbf{y} = \sum_{i=1}^{n} x_i , y_i</pre></div>

	</div>
	</div>



<p>3) <strong>Kosinus-Ähnlichkeit</strong></p>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img  loading="lazy"  decoding="async"  width="1024"  height="483"  src="https://www.kimagazin.com/wp-content/uploads/cos_light-1024x483.webp"  alt=""  class="wp-image-2443"  style="width:auto;height:200px"  srcset="https://www.kimagazin.com/wp-content/uploads/cos_light-1024x483.webp 1024w, https://www.kimagazin.com/wp-content/uploads/cos_light-300x141.webp 300w, https://www.kimagazin.com/wp-content/uploads/cos_light-768x362.webp 768w, https://www.kimagazin.com/wp-content/uploads/cos_light-380x179.webp 380w, https://www.kimagazin.com/wp-content/uploads/cos_light-550x259.webp 550w, https://www.kimagazin.com/wp-content/uploads/cos_light-800x377.webp 800w, https://www.kimagazin.com/wp-content/uploads/cos_light-1160x547.webp 1160w, https://www.kimagazin.com/wp-content/uploads/cos_light-80x38.webp 80w, https://www.kimagazin.com/wp-content/uploads/cos_light.webp 1536w"  sizes="auto, (max-width: 1024px) 100vw, 1024px" ></figure>
</div>


<p>Die Kosinus-Ähnlichkeit geht noch einen Schritt weiter und ist ein <strong>normalisiertes Skalarprodukt</strong>.<br>Das bedeutet: Es wird nur der <strong>Winkel</strong> zwischen den Vektoren betrachtet, unabhängig von ihrer Länge.<br>Das Ergebnis liegt immer zwischen <strong>–1</strong> und <strong>1</strong>.<br>Wie auch bei den anderen Verfahren fließen alle Dimensionen der Embeddings in die Berechnung ein.</p>



<div class="cnvs-block-alert cnvs-block-alert-1774819583988 is-style-cnvs-block-alert-info" >
	<div class="cnvs-block-alert-inner">
		

<p>Für alle Matheliebhaber:</p>



<div class="wp-block-katex-display-block katex-eq" data-katex-display="true"><pre>cos(\theta) = \frac{ \vec{A} \cdot \vec{B} }{ | \vec{A} | \cdot | \vec{B} | }</pre></div>



<p>Die Formel misst, wie ähnlich zwei <strong>Wort-Embeddings</strong> im semantischen Raum ausgerichtet sind.</p>



<ul class="wp-block-list">
<li>Im Zähler steht ihr <strong>Skalarprodukt</strong> – also wie stark sie in die gleiche Richtung zeigen.</li>



<li>Im Nenner das Produkt ihrer <strong>Längen</strong> – wodurch die Werte normiert werden.</li>
</ul>



<p>Das Ergebnis liegt zwischen <strong>–1</strong> und <strong>1</strong>:</p>

	</div>
	</div>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Verfahren</th><th>Idee</th><th>Wertebereich</th><th>Typischer Einsatz</th></tr></thead><tbody><tr><td><strong>Euklidische Distanz</strong></td><td>Geometrischer Abstand im Raum</td><td>0 → ∞</td><td>Clustering, Abstandsmaße</td></tr><tr><td><strong>Skalares Produkt</strong></td><td>Berücksichtigt Winkel und Vektorlängen</td><td>–∞ → +∞</td><td>Attention, Ranking, Scores</td></tr><tr><td><strong>Kosinus-Ähnlichkeit</strong></td><td>Winkel zwischen Vektoren (normiert)</td><td>–1 → +1</td><td>Semantische Suche, Retrieval</td></tr></tbody></table></figure>



<p>In vielen RAG-Systemen lässt sich eines dieser Distanz- bzw. Ähnlichkeitsverfahren konfigurieren.</p>



<p>In der Praxis werden Embedding-Vektoren oft normalisiert, sodass ihre Länge keine Rolle mehr spielt und beim Vergleich nur noch die inhaltliche Richtung zählt.</p>



<h3 id="nur-die-besten-kommen-in-die-auswahl" class="wp-block-heading">Nur die besten kommen in die Auswahl</h3>



<p>In der Praxis übergeben wir der <strong>Vektordatenbank</strong> die <strong>Nutzerfrage</strong> (als Embedding) sowie die <strong>gewünschte Anzahl an Treffern</strong> (<em>k</em>).</p>



<p>Die Vektordatenbank berechnet daraufhin, welche <strong>Chunks der Anfrage semantisch am nächsten</strong> liegen, sortiert sie nach <strong>Ähnlichkeit</strong> und liefert die <strong>Top-k relevantesten Chunks</strong> zurück.</p>



<h3 id="anfrage-an-das-llm" class="wp-block-heading">Anfrage an das LLM</h3>



<p>Die Anfrage an das LLM erfolgt in Form eines <strong>Prompts</strong>. Dabei werden die <strong>System-Anweisung</strong>, die <strong>relevanten Chunks</strong> sowie die <strong>Nutzeranfrage</strong> zu einem gemeinsamen Kontext zusammengeführt und in <strong>einer Anfrage</strong> an das LLM gesendet.</p>



<p>In der Praxis wird die <strong>System-Anweisung</strong> häufig <strong>auf Englisch</strong> formuliert – selbst dann, wenn der eigentliche Kontext und die Nutzerfrage <strong>deutsch</strong> sind. Der Grund dafür ist, dass die <strong>Stabilität und Zuverlässigkeit von Instruktionen</strong> bei den meisten LLMs in <strong>englischer Sprache</strong> höher ist.</p>



<pre class="wp-block-code"><code>{
  "messages": &#091;
    {
      "role": "system",
      "content": "You are a helpful assistant. Answer only based on the provided context. If the answer is not contained in the context, say that you do not know."
    },
    {
      "role": "user",
      "content": "Context:\n---\n&#091;Chunk 1]\n&#091;Chunk 2]\n&#091;Chunk N]\n---\n\nQuestion:\nWie sind die Öffnungszeiten?"
    }
  ]
}</code></pre>



<p>Mit dieser Anweisung vervollständigt das LLM die <strong>Nutzeranfrage</strong> gemeinsam mit dem bereitgestellten <strong>Kontext</strong> zu einer <strong>sinnvollen, zusammenhängenden Antwort</strong>.</p>



<pre class="wp-block-code"><code>{
  "role": "assistant",
  "content": "Unsere Öffnungszeiten sind Montag bis Freitag von 08:00 bis 17:00 Uhr."
}</code></pre>



<p>In vielen Systemen werden zusätzlich die verwendeten Textstellen referenziert oder mitgeliefert, um Antworten nachvollziehbar zu machen.</p>



<p>Am Ende dieses Prozesses steht ein <strong>funktionsfähiges RAG-System</strong>, das Antworten auf Grundlage der hochgeladenen Dokumente generiert.</p>



<h3 id="die-rag-pipeline-im-ueberblick" class="wp-block-heading">Die RAG-Pipeline im Überblick</h3>



<div class="wp-block-merpress-mermaidjs diagram-source-mermaid"><pre class="mermaid">flowchart TD

%% INDEXING
subgraph A[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4da.png" alt="📚" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Indexing]
A0[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4c4.png" alt="📄" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Dokumente] --> A1[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2702.png" alt="✂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Chunking]
A1 --> A2[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f524.png" alt="🔤" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Tokenisierung]
A2 --> A3[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9e0.png" alt="🧠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Transformer Encoder]
A3 --> A4[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9e9.png" alt="🧩" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Token Vektoren]
A4 --> A5[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4ca.png" alt="📊" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Pooling z.B.: Mean]
A5 --> A6[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4d0.png" alt="📐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Chunk Vektor]
A6 --> A7[(<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f5c4.png" alt="🗄" class="wp-smiley" style="height: 1em; max-height: 1em;" /> VectorDB)]
end

%% QUERY
subgraph B[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2753.png" alt="❓" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Query]
B0[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4ac.png" alt="💬" class="wp-smiley" style="height: 1em; max-height: 1em;" /> User Query] --> B1[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f524.png" alt="🔤" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Tokenisierung]
B1 --> B2[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9e0.png" alt="🧠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Transformer Encoder]
B2 --> B3[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9e9.png" alt="🧩" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Token Vektoren]
B3 --> B4[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4ca.png" alt="📊" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Pooling z.B.: Mean]
B4 --> B5[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4d0.png" alt="📐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Query Vektor]
end

%% RETRIEVAL
subgraph C[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f50d.png" alt="🔍" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Retrieval]
B5 --> C1[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f50e.png" alt="🔎" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Similarity Search]
A7 --> C1
C1 --> C2[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4cc.png" alt="📌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Top-k Chunks]
end

%% GENERATION
subgraph D[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2728.png" alt="✨" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Generation]
D0[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9fe.png" alt="🧾" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Prompt + Kontext + Frage] --> D1[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f916.png" alt="🤖" class="wp-smiley" style="height: 1em; max-height: 1em;" /> LLM]
D1 --> D2[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4dd.png" alt="📝" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Antwort]
end

C2 --> D0</pre></div>



<p>Unsere <strong>RAG-Pipeline</strong> ist bereits <strong>voll funktionsfähig</strong> – dennoch lässt sie sich weiter <strong>verbessern</strong>.</p>



<p>Die Antworten basieren primär auf <strong>semantischer Ähnlichkeit</strong>. Das ist der große Fortschritt – und in den meisten Fällen genau richtig. Manchmal möchte man jedoch ganz gezielt <strong>exakte Details</strong> finden, zum Beispiel <strong>Nummern</strong>, <strong>IDs</strong> oder <strong>konkrete Fehlermeldungen</strong>. In solchen Fällen ist ein rein semantischer Ansatz nicht immer die beste Wahl.</p>



<h3 id="gespuer-fuer-details-bm25" class="wp-block-heading">Gespür für Details &#8211; BM25</h3>



<p>Hier kann ein <strong>klassisches Retrieval-Verfahren</strong> helfen: <strong>BM25</strong> (<em>Best Matching 25</em>).<br>BM25 basiert auf <strong>Wortstatistiken</strong> und kommt <strong>ohne KI</strong> aus. Die Grundidee ist einfach: <strong>Seltene Wörter</strong> sind oft besonders aussagekräftig – vor allem dann, wenn sie in wenigen, aber relevanten Textstellen auftauchen (z. B. eine eindeutige Fehlermeldung oder ein spezieller Fachbegriff).</p>



<p>BM25 nutzt dabei unter anderem folgende Größen:</p>



<ul class="wp-block-list">
<li><strong>Term Frequency (TF)</strong>: Wie oft kommt ein Wort in einem Chunk vor?</li>



<li><strong>Document Frequency (DF)</strong>: In wie vielen Chunks kommt dieses Wort insgesamt vor?</li>



<li><strong>Dokumentlänge</strong>: Wie lang ist der Chunk im Vergleich zu anderen?</li>
</ul>



<p>In Kombination mit <strong>Embeddings</strong> entsteht so ein <strong>robustes Hybrid-Retrieval</strong>:<br>Embeddings liefern <strong>Textverständnis</strong> und finden auch ähnliche Formulierungen, während BM25 besonders gut bei <strong>exakten Begriffen</strong>, <strong>Fehlercodes</strong> und <strong>Fachtermini</strong> ist.</p>



<p>Beim Chunking der Dokumente werden die Chunks sowohl in einen BM25-Textindex aufgenommen als auch parallel als Embeddings in der Vektordatenbank gespeichert.</p>



<h3 id="hybrid-rag" class="wp-block-heading">Hybrid RAG</h3>



<p>Beim <strong>hybriden RAG</strong> werden für eine Nutzeranfrage <strong>zwei Suchen parallel</strong> ausgeführt: eine <strong>semantische Vektorsuche</strong> auf Basis von <strong>Embeddings</strong> und eine <strong>statistische, wortbasierte Suche</strong> mit <strong>BM25</strong>.<br>Beide Verfahren liefern jeweils ihre <strong>Top-k Chunks</strong>, die anschließend zusammengeführt und weiterverarbeitet werden.</p>



<div class="wp-block-merpress-mermaidjs diagram-source-mermaid"><pre class="mermaid">flowchart TD

%% INDEXING
subgraph A[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4da.png" alt="📚" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Indexing]
A0[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4c4.png" alt="📄" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Dokumente] --> A1[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2702.png" alt="✂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Chunking]
A1 --> A2[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9e0.png" alt="🧠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Embedding Model]
A2 --> A3[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4d0.png" alt="📐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Chunk Embeddings]
A3 --> A4[(<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f5c4.png" alt="🗄" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Vector Database)]
A1 --> A5[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f524.png" alt="🔤" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Tokenization]
A5 --> A6[(<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f5c2.png" alt="🗂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> BM25 Text Index)]
end

%% QUERY
subgraph B[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2753.png" alt="❓" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Query]
B0[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4ac.png" alt="💬" class="wp-smiley" style="height: 1em; max-height: 1em;" /> User Query] --> B1[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9e0.png" alt="🧠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Embedding Model]
B1 --> B2[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4d0.png" alt="📐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Query Embedding]
B0 --> B3[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f524.png" alt="🔤" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Tokenization]
end

%% RETRIEVAL
subgraph C[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f50d.png" alt="🔍" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Retrieval]
B2 --> C1[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f50e.png" alt="🔎" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Vector Search]
A4 --> C1
C1 --> C2[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4cc.png" alt="📌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Top-k Vector]

B3 --> C3[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f50e.png" alt="🔎" class="wp-smiley" style="height: 1em; max-height: 1em;" /> BM25 Retrieval]
A6 --> C3
C3 --> C4[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4cc.png" alt="📌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Top-k BM25]

C2 --> C5[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f500.png" alt="🔀" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Merge / Re-ranking]
C4 --> C5
C5 --> C6[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4cc.png" alt="📌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Final Top-k Chunks]

end

%% GENERATION
subgraph D[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2728.png" alt="✨" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Generation]
C6 --> D0[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9fe.png" alt="🧾" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Prompt: Context + Question]
D0 --> D1[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f916.png" alt="🤖" class="wp-smiley" style="height: 1em; max-height: 1em;" /> LLM]
D1 --> D2[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4dd.png" alt="📝" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Answer]
end</pre></div>



<p>Hier kommt im <strong>Retriever</strong> eine zusätzliche Komponente ins Spiel: <strong>Merge / Re-Ranking</strong>.<br>Denn wir erhalten zwei getrennte Ergebnislisten – einmal aus der <strong>Vektorsuche</strong> und einmal aus <strong>BM25</strong>. Diese Kandidaten müssen wir <strong>zusammenführen</strong>, nach <strong>Relevanz sortieren</strong> und anschließend auf ein <strong>finales Top-k</strong> begrenzen.</p>



<p>Dafür gibt es unterschiedliche Strategien, zum Beispiel:</p>



<ul class="wp-block-list">
<li><strong>score-basiert</strong> (Scores werden normalisiert und kombiniert)</li>



<li><strong>ranking-basiert</strong> (Ränge werden zusammengeführt, z. B. über Rank-Fusion)</li>
</ul>



<p>Besonders gute Ergebnisse liefern <strong>Transformer-Modelle</strong> als Re-Ranker. In der Praxis sind zwei Ansätze verbreitet:</p>



<ol class="wp-block-list">
<li><strong>Cross-Encoder Re-Ranker</strong><br>Ein Modell, das <strong>Query und Chunk gemeinsam</strong> bewertet und daraus einen <strong>Relevanzscore</strong> ableitet. Solche Modelle sind typischerweise <strong>für Relevanzbewertung</strong> (Ranking) optimiert.</li>



<li><strong>LLM Re-Ranking</strong> (z. B. per GPT)<br>Ein klassisches LLM, das per Prompt dazu angeleitet wird, die Kandidaten-Chunks nach <strong>Passgenauigkeit zur Frage</strong> zu sortieren oder die <strong>besten k</strong> auszuwählen.</li>
</ol>



<p>Anschließend gehen die <strong>Nutzeranfrage</strong> und die <strong>passendsten Chunks</strong> in die <strong>Generation-Pipeline</strong>, wo das LLM daraus eine <strong>möglichst passende und informative Antwort</strong> auf die Frage des Nutzers erzeugt.</p>



<h3 id="millionen-von-vektoren-hierarchical-navigable-small-world-hnsw" class="wp-block-heading">Millionen von Vektoren? – Hierarchical Navigable Small World (HNSW)</h3>



<p>Spätestens bei großen RAG-Systemen stellt sich die Frage, wie sich <strong>Millionen multidimensionaler Vektoren</strong> in akzeptabler Zeit durchsuchen lassen. Ein exakter Vergleich aller Vektoren wäre hier zu langsam.</p>



<p>In der Praxis kommen daher <strong>approximative Ähnlichkeitssuchen</strong> zum Einsatz – Verfahren, die sich schrittweise an die relevantesten Vektoren annähern.<br>Ein häufig verwendeter Ansatz ist <strong>HNSW (Hierarchical Navigable Small World)</strong>, der von vielen Vektordatenbanken eingesetzt wird.</p>



<p>Das Prinzip lässt sich gut mit einem <strong>Straßennetz</strong> vergleichen:<br>Vektoren werden in mehreren <strong>Hierarchieebenen</strong> organisiert. Die obersten Ebenen sind sehr <strong>dünn besetzt</strong> und entsprechen gewissermaßen <strong>Autobahnen</strong>, über die man schnell große Distanzen zurücklegt. Die darunterliegenden Ebenen werden zunehmend <strong>dichter</strong> und bilden feinere lokale Verbindungen ab – vergleichbar mit Landstraßen und Nebenstraßen.</p>



<p>Die Suche beginnt immer in der <strong>obersten Ebene</strong>. Dort wird der Vektor gesucht, der der Anfrage am ähnlichsten erscheint. Von diesem Punkt aus wechselt der Algorithmus in die nächsttiefere, dichter vernetzte Ebene und setzt die Suche fort. Dieser Vorgang wiederholt sich Ebene für Ebene, bis die unterste und detaillierteste Ebene erreicht ist.</p>



<p>Auf diese Weise nähert sich die Suche gezielt dem Zielvektor, ohne alle Vektoren vergleichen zu müssen.<br>Das ermöglicht eine <strong>sehr schnelle Ähnlichkeitssuche</strong>, insbesondere bei großen Vektormengen, bei gleichzeitig <strong>hoher Trefferqualität</strong>.</p>



<h2 id="grenzen-von-rag" class="wp-block-heading">Grenzen von RAG</h2>



<p>Moderne LLMs machen es erstmals möglich, <strong>intelligente Frage-Antwort-Systeme</strong> auf Basis bestehender Dokumente zu realisieren. Dennoch sollten bei RAG-Systemen einige <strong>grundlegende Einschränkungen</strong> berücksichtigt werden.</p>



<ol class="wp-block-list">
<li><strong>Datenqualität ist entscheidend</strong><br>RAG kann nur mit den Informationen arbeiten, die tatsächlich extrahiert wurden. Gerade bei komplexen Formaten wie <strong>PDFs, Webseiten oder E-Mails</strong> ist die zuverlässige Extraktion von Text, Struktur und Kontext häufig eine große Herausforderung.</li>



<li><strong>Verlust von Kontext durch Chunking</strong><br>Durch die Aufteilung von Dokumenten in einzelne Chunks können <strong>Zusammenhänge verloren gehen</strong>. Aufgaben, die ein <strong>globales Verständnis</strong> erfordern – etwa vollständige Zusammenfassungen oder Querverweise über mehrere Abschnitte hinweg – sind dadurch nur eingeschränkt möglich.</li>



<li><strong>Halluzinationen sind nicht vollständig ausgeschlossen</strong><br>RAG reduziert Halluzinationen deutlich, verhindert sie jedoch nicht vollständig. Findet das System keine passenden Inhalte zur Anfrage oder sind die bereitgestellten Chunks unklar, kann das LLM weiterhin <strong>plausibel klingende, aber falsche Antworten</strong> erzeugen.</li>



<li><strong>Begrenzte Nachvollziehbarkeit</strong><br>Ohne zusätzliche Maßnahmen ist oft nicht transparent, <strong>auf welchen Textstellen</strong> eine Antwort basiert. In der Praxis ist es daher sinnvoll, <strong>Quellen, Textausschnitte oder Positionsangaben</strong> mitzuliefern, um Ergebnisse überprüfbar zu machen.</li>
</ol>
<ul class="shariff-buttons theme-round orientation-horizontal buttonsize-medium"><li class="shariff-button facebook shariff-nocustomcolor" style="background-color:#4273c8"><a href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.kimagazin.com%2Frag-praxis-ki-dokumentennutzung%2F" title="Bei Facebook teilen" aria-label="Bei Facebook teilen" role="button" rel="nofollow" class="shariff-link" style="; background-color:#3b5998; color:#fff" target="_blank"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 32"><path fill="#3b5998" d="M17.1 0.2v4.7h-2.8q-1.5 0-2.1 0.6t-0.5 1.9v3.4h5.2l-0.7 5.3h-4.5v13.6h-5.5v-13.6h-4.5v-5.3h4.5v-3.9q0-3.3 1.9-5.2t5-1.8q2.6 0 4.1 0.2z"/></svg></span></a></li><li class="shariff-button twitter shariff-nocustomcolor" style="background-color:#595959"><a href="https://twitter.com/share?url=https%3A%2F%2Fwww.kimagazin.com%2Frag-praxis-ki-dokumentennutzung%2F&text=RAG%20in%20der%20Praxis%3A%20KI-gest%C3%BCtzte%20Dokumentennutzung" title="Bei X teilen" aria-label="Bei X teilen" role="button" rel="noopener nofollow" class="shariff-link" style="; background-color:#000; color:#fff" target="_blank"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="#000" d="M14.258 10.152L23.176 0h-2.113l-7.747 8.813L7.133 0H0l9.352 13.328L0 23.973h2.113l8.176-9.309 6.531 9.309h7.133zm-2.895 3.293l-.949-1.328L2.875 1.56h3.246l6.086 8.523.945 1.328 7.91 11.078h-3.246zm0 0"/></svg></span></a></li><li class="shariff-button linkedin shariff-nocustomcolor" style="background-color:#1488bf"><a href="https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fwww.kimagazin.com%2Frag-praxis-ki-dokumentennutzung%2F" title="Bei LinkedIn teilen" aria-label="Bei LinkedIn teilen" role="button" rel="noopener nofollow" class="shariff-link" style="; background-color:#0077b5; color:#fff" target="_blank"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 27 32"><path fill="#0077b5" d="M6.2 11.2v17.7h-5.9v-17.7h5.9zM6.6 5.7q0 1.3-0.9 2.2t-2.4 0.9h0q-1.5 0-2.4-0.9t-0.9-2.2 0.9-2.2 2.4-0.9 2.4 0.9 0.9 2.2zM27.4 18.7v10.1h-5.9v-9.5q0-1.9-0.7-2.9t-2.3-1.1q-1.1 0-1.9 0.6t-1.2 1.5q-0.2 0.5-0.2 1.4v9.9h-5.9q0-7.1 0-11.6t0-5.3l0-0.9h5.9v2.6h0q0.4-0.6 0.7-1t1-0.9 1.6-0.8 2-0.3q3 0 4.9 2t1.9 6z"/></svg></span></a></li><li class="shariff-button whatsapp shariff-nocustomcolor" style="background-color:#5cbe4a"><a href="https://api.whatsapp.com/send?text=https%3A%2F%2Fwww.kimagazin.com%2Frag-praxis-ki-dokumentennutzung%2F%20RAG%20in%20der%20Praxis%3A%20KI-gest%C3%BCtzte%20Dokumentennutzung" title="Bei Whatsapp teilen" aria-label="Bei Whatsapp teilen" role="button" rel="noopener nofollow" class="shariff-link" style="; background-color:#34af23; color:#fff" target="_blank"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#34af23" d="M17.6 17.4q0.2 0 1.7 0.8t1.6 0.9q0 0.1 0 0.3 0 0.6-0.3 1.4-0.3 0.7-1.3 1.2t-1.8 0.5q-1 0-3.4-1.1-1.7-0.8-3-2.1t-2.6-3.3q-1.3-1.9-1.3-3.5v-0.1q0.1-1.6 1.3-2.8 0.4-0.4 0.9-0.4 0.1 0 0.3 0t0.3 0q0.3 0 0.5 0.1t0.3 0.5q0.1 0.4 0.6 1.6t0.4 1.3q0 0.4-0.6 1t-0.6 0.8q0 0.1 0.1 0.3 0.6 1.3 1.8 2.4 1 0.9 2.7 1.8 0.2 0.1 0.4 0.1 0.3 0 1-0.9t0.9-0.9zM14 26.9q2.3 0 4.3-0.9t3.6-2.4 2.4-3.6 0.9-4.3-0.9-4.3-2.4-3.6-3.6-2.4-4.3-0.9-4.3 0.9-3.6 2.4-2.4 3.6-0.9 4.3q0 3.6 2.1 6.6l-1.4 4.2 4.3-1.4q2.8 1.9 6.2 1.9zM14 2.2q2.7 0 5.2 1.1t4.3 2.9 2.9 4.3 1.1 5.2-1.1 5.2-2.9 4.3-4.3 2.9-5.2 1.1q-3.5 0-6.5-1.7l-7.4 2.4 2.4-7.2q-1.9-3.2-1.9-6.9 0-2.7 1.1-5.2t2.9-4.3 4.3-2.9 5.2-1.1z"/></svg></span></a></li><li class="shariff-button mailto shariff-nocustomcolor" style="background-color:#a8a8a8"><a href="mailto:?body=https%3A%2F%2Fwww.kimagazin.com%2Frag-praxis-ki-dokumentennutzung%2F&subject=RAG%20in%20der%20Praxis%3A%20KI-gest%C3%BCtzte%20Dokumentennutzung" title="Per E-Mail versenden" aria-label="Per E-Mail versenden" role="button" rel="noopener nofollow" class="shariff-link" style="; background-color:#999; color:#fff"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#999" d="M32 12.7v14.2q0 1.2-0.8 2t-2 0.9h-26.3q-1.2 0-2-0.9t-0.8-2v-14.2q0.8 0.9 1.8 1.6 6.5 4.4 8.9 6.1 1 0.8 1.6 1.2t1.7 0.9 2 0.4h0.1q0.9 0 2-0.4t1.7-0.9 1.6-1.2q3-2.2 8.9-6.1 1-0.7 1.8-1.6zM32 7.4q0 1.4-0.9 2.7t-2.2 2.2q-6.7 4.7-8.4 5.8-0.2 0.1-0.7 0.5t-1 0.7-0.9 0.6-1.1 0.5-0.9 0.2h-0.1q-0.4 0-0.9-0.2t-1.1-0.5-0.9-0.6-1-0.7-0.7-0.5q-1.6-1.1-4.7-3.2t-3.6-2.6q-1.1-0.7-2.1-2t-1-2.5q0-1.4 0.7-2.3t2.1-0.9h26.3q1.2 0 2 0.8t0.9 2z"/></svg></span></a></li></ul></div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>KI lokal betreiben: Multimodale Sprach- und Bildmodelle auf eigener Hardware</title>
		<link>https://www.kimagazin.com/lokale-ki-modelle-multimodal/</link>
		
		<dc:creator><![CDATA[Oskar Kohler]]></dc:creator>
		<pubDate>Fri, 20 Mar 2026 09:14:04 +0000</pubDate>
				<category><![CDATA[Inside AI]]></category>
		<category><![CDATA[Playbooks]]></category>
		<guid isPermaLink="false">https://www.kimagazin.com/?p=2325</guid>

					<description><![CDATA[Künstliche Intelligenz (KI) – mehr als nur ein Hype? Alle reden über Künstliche Intelligenz – ein Hype, der&#8230;]]></description>
										<content:encoded><![CDATA[
<p></p>



<p>Künstliche Intelligenz (KI) – mehr als nur ein Hype?</p>



<p>Alle reden über Künstliche Intelligenz – ein Hype, der in aller Munde ist. Täglich hört man von den erstaunlichen Fähigkeiten moderner Sprachmodelle wie ChatGPT, Gemini, Granite und vielen anderen.</p>



<figure class="wp-block-image size-full"><img  loading="lazy"  decoding="async"  width="384"  height="96"  src="https://www.kimagazin.com/wp-content/uploads/2026/03/classic.svg"  alt=""  class="wp-image-2327" ></figure>



<p>Obwohl es <strong>Künstliche Intelligenz (KI)</strong> und <strong>Neuronale Netze</strong> schon seit Jahrzehnten gibt – etwa für</p>



<ul class="wp-block-list">
<li><strong>Filmempfehlungen</strong></li>



<li><strong>Produktvorschläge</strong></li>



<li><strong>Werbeoptimierung</strong></li>



<li><strong>Bonitätsprüfungen</strong></li>
</ul>



<p>löste <strong>ChatGPT</strong> Ende 2022 einen weltweiten Hype aus.</p>



<h3 id="warum-war-das-so" class="wp-block-heading">Warum war das so?</h3>



<p>KI war zuvor meist <strong>unsichtbar im Hintergrund</strong> aktiv: Sie unterstützte Geschäftsprozesse, half bei Analysen oder steuerte Personalisierungen, ohne dass Endnutzer sie direkt wahrnahmen.</p>



<figure class="wp-block-image size-full"><img  loading="lazy"  decoding="async"  width="480"  height="96"  src="https://www.kimagazin.com/wp-content/uploads/2026/03/tasks.svg"  alt=""  class="wp-image-2329" ></figure>



<p>Erst mit der Veröffentlichung des <strong>großen Sprachmodells (LLM) ChatGPT durch OpenAI</strong> konnten plötzlich Millionen Menschen <strong>selbst erleben</strong>, wie leistungsfähig moderne KI-Systeme sind:</p>



<ul class="wp-block-list">
<li>Texte schreiben</li>



<li>Erklären</li>



<li>Zusammenfassen</li>



<li>Ideen liefern</li>



<li>Programmieren</li>
</ul>



<p>Und das alles in natürlicher Sprache – scheinbar mühelos. Damit rückt die KI in Bereiche vor, die lange als <strong>kreative Domäne des Menschen</strong> galten: Sprache verstehen, Wissen verknüpfen, neue Ideen hervorbringen.</p>



<p>Innerhalb von nur <strong>2 Monaten</strong> erreichte ChatGPT bereits <strong>über 100 Millionen Nutzer</strong> – ein Rekord, der es zum am schnellsten wachsenden digitalen Produkt der Geschichte machte.</p>



<p>Damit wurde KI zum ersten Mal <strong>unmittelbar erfahrbar für jedermann</strong>, nicht nur für Experten oder Unternehmen. Dieser direkte Zugang erklärt den enormen Hype – und markiert einen Wendepunkt in der öffentlichen Wahrnehmung von Künstlicher Intelligenz.</p>



<h2 id="ki-sicher-mehr-als-nur-ein-hype" class="wp-block-heading">KI – sicher mehr als nur ein Hype</h2>



<p>Ist das alles nur heiße Luft? <strong>Meiner Meinung nach nicht.</strong> Vielmehr stehen wir wahrscheinlich mitten in einer der größten technologischen Revolutionen unserer Zeit – mit Auswirkungen, die weit über einzelne Branchen hinausgehen werden.</p>



<p>Heute gibt es nicht nur <strong>ChatGPT</strong>, sondern viele weitere Mitbewerber wie <strong>Gemini</strong> (Google), <strong>Granite</strong> (IBM), <strong>LLaMA</strong> (Meta), <strong>Mistral</strong>, <strong>DeepSeek</strong> und zahlreiche andere.<br>Die rasanten Entwicklungen und Erfolge sind inzwischen kaum mehr vollständig zu überblicken.</p>



<p>Doch gerade deshalb stellt sich die spannende Frage:<br><strong>Warum überhaupt eine KI auf der eigenen Hardware betreiben, wenn es so viele leistungsstarke Modelle in der Cloud gibt?</strong></p>



<h2 id="warum-eine-eigene-ki-betreiben" class="wp-block-heading">Warum eine eigene KI betreiben?</h2>



<p>Stellen wir uns vor, wir könnten Sprachmodelle lokal installieren – welche Vorteile würde das mit sich bringen?</p>



<ul class="wp-block-list">
<li><strong>Spezialisierung</strong> – Lokale Modelle können gezielt auf eigene Daten oder Fachgebiete zugeschnitten werden.</li>



<li><strong>Kosten</strong> – Nach der Einrichtung entstehen keine laufenden API- oder Abo-Kosten, nur Strom- und Hardwareaufwand.</li>



<li><strong>Performance</strong> – Für viele Anwendungen reicht die Geschwindigkeit lokaler Modelle aus, besonders mit optimierten Versionen.</li>



<li><strong>Latenz</strong> – Abfragen laufen direkt auf der eigenen Hardware, ohne Umweg über die Cloud.</li>



<li><strong>Sicherheit &amp; Datenschutz</strong> – Alle Daten bleiben lokal, nichts verlässt den eigenen Rechner oder das Unternehmensnetzwerk.</li>



<li><strong>Flexibilität</strong> – Nutzer entscheiden selbst, welche Modelle und Tools sie einsetzen.</li>



<li><strong>Finetuning</strong> – Modelle lassen sich mit eigenen Daten nachtrainieren und damit optimal anpassen.</li>



<li><strong>Vielfalt der Modelle</strong> – Es gibt viele offene Modelle (z. B. LLaMA, Mistral, Falcon, DeepSeek), die je nach Bedarf eingesetzt werden können.</li>



<li><strong>Offline-Nutzung</strong> – Auch ohne Internetzugang bleibt die KI einsatzfähig.</li>



<li><strong>Keine externen Beschränkungen</strong> – Keine Limits bei Abfragen oder Abhängigkeit von Nutzungsbedingungen Dritter.</li>



<li><strong>Individuelle Sicherheitseinstellungen</strong> – Man kann selbst entscheiden, welche „Guardrails“ oder Sicherheitsfilter aktiv sein sollen – oder eben nicht.</li>
</ul>



<p>Die nächste spannende Frage lautet: <strong>Ist es überhaupt möglich, so große Sprachmodelle lokal zu betreiben?</strong></p>



<p>Die ganz großen Modelle – etwa GPT-5 (OpenAI), Gemini 2.5 Pro (Google) oder Claude Opus 4 (Anthropic) – werden weder <strong>Privatnutzer</strong> noch die meisten <strong>Unternehmen</strong> lokal installieren können. Sie laufen in riesigen Rechenzentren mit <strong>Millionen spezialisierter Recheneinheiten (GPUs/TPUs/NPUs)</strong> und erfordern eine Infrastruktur, die außerhalb von Hyperscalern (Google, Microsoft, Meta, Amazon usw.) nicht realistisch ist.</p>



<p>{{&lt; note &gt;}}</p>



<ul class="wp-block-list">
<li><strong>GPU:</strong> Grafikprozessor, heute auch für parallele KI-Berechnungen.</li>



<li><strong>TPU:</strong> Spezialisierte Google-Hardware für effiziente Tensor-Operationen.</li>



<li><strong>NPU:</strong> Energiesparender KI-Beschleuniger für mobile und Edge-Geräte.<br>{{&lt; /note &gt;}}</li>
</ul>



<h2 id="ja-es-gibt-sie-wirklich-grosse-sprachmodelle-fuer-den-lokalen-einsatz" class="wp-block-heading">Ja, es gibt sie wirklich: große Sprachmodelle für den lokalen Einsatz</h2>



<figure class="wp-block-image size-full"><img  loading="lazy"  decoding="async"  width="512"  height="220"  src="https://www.kimagazin.com/wp-content/uploads/2026/03/laptop_bubble.svg"  alt=""  class="wp-image-2330" ></figure>



<p>Aber: Es ist durchaus möglich, <strong>leistungsstarke offene Sprachmodelle lokal</strong> auf der eigenen Hardware zu betreiben. Projekte wie <strong>LLaMA (Meta)</strong>, <strong>Mistral</strong>, <strong>Falcon</strong>, <strong>DeepSeek</strong> oder <strong>Mixtral</strong> sind so optimiert, dass sie auch auf <strong>normaler Consumer-Hardware</strong> (starke CPU, moderne GPU, ausreichend RAM) lauffähig sind.</p>



<p>Und das Erstaunliche: Manche dieser lokalen Modelle kommen in einzelnen Disziplinen – etwa beim Textverständnis, Programmieren oder in Benchmarks – den großen Cloud-Modellen <strong>beeindruckend nahe</strong>. Damit eröffnen sich für Forschung, Unternehmen und Privatpersonen völlig neue Möglichkeiten: von <strong>Datenschutz und Kostenkontrolle</strong> bis hin zu <strong>individuellen Anpassungen</strong>.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Wir sprechen hier meist von <strong>Sprachmodellen</strong>, doch aktuelle Systeme können längst viel mehr.<br>Sie verstehen nicht nur Text, sondern sind in der Lage, auch <strong>Bilder, Audio und sogar Video zu verarbeiten und zu erzeugen</strong>.</p>



<p>Deshalb spricht man heute nicht mehr ausschließlich von Sprachmodellen, sondern von <strong>multimodalen Foundation Modellen</strong> (kurz <strong>MFM</strong>).<br>Diese Modelle verknüpfen verschiedene Eingabe- und Ausgabeformen und eröffnen dadurch völlig neue Anwendungsmöglichkeiten – etwa Bildbeschreibung, Spracherkennung, Code-Generierung oder Videoanalyse.</p>
</blockquote>



<p>Auch wenn einige Vorteile vielleicht dafürsprechen, es lokal zu versuchen – welche Nachteile gibt es?<br>Klar ist: Man benötigt auf jeden Fall leistungsstarke Hardware und ein gewisses Maß an technischem Know-how.</p>



<h2 id="neuronale-netze" class="wp-block-heading">Neuronale Netze</h2>



<figure class="wp-block-image size-full"><img  loading="lazy"  decoding="async"  width="868"  height="703"  src="https://www.kimagazin.com/wp-content/uploads/2026/03/ffn.webp"  alt=""  class="wp-image-2331"  srcset="https://www.kimagazin.com/wp-content/uploads/2026/03/ffn.webp 868w, https://www.kimagazin.com/wp-content/uploads/2026/03/ffn-300x243.webp 300w, https://www.kimagazin.com/wp-content/uploads/2026/03/ffn-768x622.webp 768w, https://www.kimagazin.com/wp-content/uploads/2026/03/ffn-380x308.webp 380w, https://www.kimagazin.com/wp-content/uploads/2026/03/ffn-550x445.webp 550w, https://www.kimagazin.com/wp-content/uploads/2026/03/ffn-800x648.webp 800w, https://www.kimagazin.com/wp-content/uploads/2026/03/ffn-80x65.webp 80w"  sizes="auto, (max-width: 868px) 100vw, 868px" ></figure>



<p>Sprachmodelle – oder allgemeiner <strong>Multimodale Foundation Models (MFM)</strong> – basieren auf <strong>künstlichen neuronalen Netzen</strong>.<br>Diese sind von der Funktionsweise des Gehirns inspiriert und bestehen aus Millionen künstlicher Neuronen sowie Milliarden von <strong>Parametern</strong>.<br>Parameter sind die <strong>Gewichte und Bias-Werte</strong>, mit denen das Netzwerk während des Trainings Muster erkennt und z.B. Vorhersagen trifft.</p>



<p>Dass hierfür enorme Rechenleistung nötig ist, liegt auf der Hand.<br>Ein einzelner Prozessor (CPU) stößt hier ganz schnell an seine Grenzen – moderne <strong>Grafikkarten (GPUs)</strong> sind dagegen bestens geeignet.</p>



<h2 id="grafikkarten-treiben-lokale-ki-an" class="wp-block-heading">Grafikkarten treiben lokale KI an</h2>



<p>Warum? Neuronale Netze benötigen vor allem extrem viele <strong>Matrix-Multiplikationen</strong>.<br>Genau diese Art von Berechnungen sind seit jeher das Herzstück der <strong>3D-Grafik</strong>:<br>Schon seit Jahrzehnten nutzen Computerspiele GPUs, um komplexe 3D-Spielwelten in Echtzeit zu berechnen.<br>Mit dem steigenden Anspruch an Grafikqualität haben sich Grafikkarten zu wahren <strong>Rechenmonstern</strong> entwickelt.</p>



<p>Heute profitiert die KI davon: Dieselbe Hardware, die für 3D-Spiele gedacht war, eignet sich auch hervorragend für das Training und den Betrieb neuronaler Netze.<br>(Zudem gibt es heute auch spezialisierte Chips wie <strong>TPUs</strong> von Google oder die <strong>Tensor Cores</strong> in NVIDIA-GPUs sowie andere dedizierte AI-Chips, die speziell für KI-Berechnungen entwickelt wurden.)</p>



<h3 id="wichtiger-faktor-geschwindigkeit" class="wp-block-heading">Wichtiger Faktor: Geschwindigkeit</h3>



<p>Um möglichst viele Matrizen berechnen zu können, braucht es vor allem eine hohe <strong>Parallelität</strong>.<br>Das bedeutet: Viele Recheneinheiten („Shaderkerne“) und eine solide Taktfrequenz.</p>



<p><strong>Was sind Shaderkerne?</strong><br>Shaderkerne sind kleine Recheneinheiten innerhalb der GPU, die ursprünglich für die Berechnung von 3D-Grafik gedacht waren,</p>



<ul class="wp-block-list">
<li>Geometrie zu berechnen (<strong>Vertex-Shader</strong>)</li>



<li>Farben und Pixel zu berechnen (<strong>Fragment-Shader</strong>)</li>
</ul>



<p>Mit dem Aufkommen von KI kam eine weitere Nutzung hinzu: <strong>Compute-Shader</strong>.<br>Dabei handelt es sich um Programme, die auf Shaderkernen laufen und speziell für <strong>mathematische Operationen</strong> (z. B. Matrixmultiplikationen) entwickelt wurden.<br>(NVIDIA nennt sie daher <strong>CUDA-Kerne</strong>)</p>



<p>Im KI-Bereich spricht man deshalb oft von <strong>Kernels</strong> – hochoptimierten Routinen, die die eigentlichen Berechnungen übernehmen.</p>



<p><strong>Warum ist das wichtig?</strong></p>



<ul class="wp-block-list">
<li>Shaderkerne / CUDA-Kerne sind <strong>extrem zahlreich</strong> – bei aktuellen Karten wie der RTX 4090 über <strong>16.000 Stück</strong>.</li>



<li>Sie können gleichzeitig (parallel) rechnen, wodurch enorme Geschwindigkeiten erreicht werden.</li>



<li>Für die Leistung sind daher sowohl die <strong>Taktfrequenz</strong> als auch vor allem die <strong>Anzahl der Kerne</strong> entscheidend.</li>
</ul>



<h3 id="ausschlaggebend-speicher" class="wp-block-heading">Ausschlaggebend: Speicher</h3>



<p>Noch wichtiger als die reine Rechengeschwindigkeit ist der <strong>Speicher</strong> – und zwar nicht der Hauptspeicher (RAM), sondern das <strong>VRAM (Video RAM)</strong> direkt auf der Grafikkarte.<br>Die Recheneinheiten der GPU (CUDA-/Shaderkerne) können ausschließlich auf diesen Grafikspeicher zugreifen.</p>



<p><strong>Foundation Models</strong> sind riesig: Sie enthalten Milliarden von Parametern und benötigen daher enorme Mengen an Speicherplatz. Zusätzlich fällt während der Berechnung weiterer Speicherbedarf für Zwischenergebnisse (z.B. KV-Cache) an.<br>Das macht den Grafikspeicher zum eigentlichen <strong>Flaschenhals</strong>.</p>



<ul class="wp-block-list">
<li>Mit <strong>8 GB VRAM</strong> lassen sich nur kleine Modelle (z. B. 7B-Modelle in starker Quantisierung) nutzen.</li>



<li><strong>16 GB</strong> ermöglichen schon komfortableres Arbeiten und den Einsatz mittelgroßer Modelle.</li>



<li>Ab <strong>24 GB VRAM</strong> lassen sich auch größere Sprachmodelle lokal laden und sinnvoll betreiben.</li>
</ul>



<p>Zwar ist es technisch möglich, den <strong>Hauptspeicher (RAM)</strong> einzubinden, wenn der VRAM nicht ausreicht – doch dann müssen Daten ständig zwischen Hauptspeicher und VRAM hin- und her kopiert werden.<br>Das verlangsamt die Berechnungen drastisch und macht eine sinnvolle Nutzung praktisch unmöglich.</p>



<h2 id="das-modell" class="wp-block-heading">Das Modell</h2>



<p>Wir haben nun schon einige Male den Begriff <strong>Modell</strong> verwendet – aber was genau bedeutet das eigentlich?</p>



<p>Ein <strong>Modell</strong> ist das Ergebnis des Trainings eines neuronalen Netzes.<br>Es umfasst:</p>



<ul class="wp-block-list">
<li>die <strong>Parameter</strong> des Netzes (vor allem Gewichte und Bias-Werte),</li>



<li>die <strong>Architektur</strong> des Netzwerks, also die Beschreibung der Schichten und ihrer Verbindungen (oft als Rechengraph dargestellt).</li>
</ul>



<p>All diese Informationen werden in einer oder mehreren <strong>Dateien gespeichert</strong> und können später wieder geladen werden.<br>So wird aus dem trainierten Modell ein Werkzeug, das für die <strong>Inferenz</strong> – also die praktische Anwendung – genutzt werden kann.</p>



<p>Das sind letztlich die <strong>Rohdaten</strong> des Modells, die von einer passenden <strong>Runtime</strong> oder einem Framework geladen und ausgeführt werden können.<br>Ähnlich wie bei <strong>Bildern</strong> – die je nach Format (z. B. JPG, PNG, TIFF) unterschiedliche Eigenschaften haben – gibt es auch für <strong>Modelle</strong> verschiedene Speicherformate.<br>Nur wenn das richtige Format verwendet wird, kann ein Modell korrekt geladen und für die Inferenz ausgeführt werden.</p>



<h2 id="sprach-und-foundation-modelle-wahre-giganten" class="wp-block-heading">Sprach- und Foundation-Modelle – wahre Giganten</h2>



<p>Wir haben bereits erwähnt, dass Foundation Models extrem groß sein können. Aber wie groß ist „groß“?<br>Bei aktuellen Modellen geben die Betreiber – vermutlich aus Konkurrenzgründen – kaum noch Details wie Architektur oder genaue Parameterzahlen preis.<br>Es gibt jedoch Leaks und fundierte Schätzungen.</p>



<p>Demnach arbeiten diese Netzwerke mit bis zu <strong>Billionen von Parametern</strong>.<br>Allerdings werden je nach Architektur (z. B. <em>Mixture of Experts</em>, kurz MoE) nicht alle Parameter gleichzeitig genutzt.<br>Um Rechenzeit und Speicher zu sparen, werden pro Anfrage („Prompt“) nur bestimmte Experten-Teile des Netzes aktiviert.<br>Bei <strong>GPT-4</strong> bedeutet das nach Schätzungen trotzdem immer noch rund <strong>300 Milliarden aktive Parameter pro Inferenz</strong>.</p>



<p>Die Parameter liegen in der Regel als <strong>Fließkommazahlen im FP16-Format</strong> vor, also <strong>2 Byte pro Parameter</strong> (seltener auch als <strong>BF16</strong>).<br>Allein das Modell würde damit schon <strong>300 Milliarden × 2 Byte ≈ 600 GB VRAM</strong> belegen –<br>und das ohne zusätzliche Zwischenspeicherungen wie den <strong>KV-Cache</strong>, der bei langen Kontexten nochmals hunderte Gigabyte beanspruchen kann.</p>



<p>Alles in allem also: <strong>riesig und viel zu groß für den lokalen Einsatz</strong>.<br>Deshalb werden für den Betrieb auf normaler Hardware <strong>kleinere Modelle</strong> entwickelt und optimiert – die aber trotzdem eine erstaunliche Leistung erreichen.</p>



<h3 id="aktuelle-open-weight-modelle-fuer-lokale-nutzung" class="wp-block-heading">Aktuelle Open-Weight-Modelle für lokale Nutzung</h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Familie / Modell</th><th>Verfügbare Größen (Parameter)</th><th>Aktiv pro Inferenz</th><th>Multimodal?</th></tr></thead><tbody><tr><td><strong>LLaMA 2</strong> (Meta, 2023)</td><td>7B, 13B, 70B</td><td>alle aktiv</td><td>Nein</td></tr><tr><td><strong>LLaMA 3</strong> (Meta, 2024)</td><td>8B, 70B, 405B</td><td>alle aktiv</td><td>Bild-Funktionen</td></tr><tr><td><strong>LLaMA 4</strong> (Meta, 2025)</td><td>109B gesamt</td><td>17B aktiv (MoE)</td><td>Text + Bild</td></tr><tr><td><strong>Mistral 7B</strong> (2023)</td><td>7.3B</td><td>7.3B</td><td>Nein</td></tr><tr><td><strong>Mixtral 8×7B</strong> (2023)</td><td>46.7B gesamt</td><td>12.9B aktiv</td><td>Nein</td></tr><tr><td><strong>Phi-3</strong> (Microsoft, 2024)</td><td>3.8B, 7B, 14B</td><td>alle aktiv</td><td>Nein</td></tr><tr><td><strong>Phi-4</strong> (Microsoft, 2025)</td><td>3.8B (Mini), 14B</td><td>alle aktiv</td><td>Text + Bild</td></tr><tr><td><strong>Granite Language</strong> (IBM, 2024/25)</td><td>3B, 8B, 20B, 34B</td><td>alle aktiv</td><td>Nein</td></tr><tr><td><strong>Granite Vision</strong> (IBM, 2024/25)</td><td>verschiedene Größen</td><td>alle aktiv</td><td>Text + Bild</td></tr><tr><td><strong>Falcon</strong> (TII, 2023)</td><td>7B, 40B</td><td>alle aktiv</td><td>Nein</td></tr><tr><td><strong>Gemma 1</strong> (Google, 2024)</td><td>2B, 7B</td><td>alle aktiv</td><td>Nein</td></tr><tr><td><strong>Gemma 2</strong> (Google, 2025)</td><td>9B, 27B</td><td>alle aktiv</td><td>Nein</td></tr><tr><td><strong>DeepSeek-V2</strong> (2024)</td><td>236B gesamt</td><td>21B aktiv (MoE)</td><td>Nein</td></tr><tr><td><strong>DeepSeek-V3</strong> (2024/25)</td><td>671B gesamt</td><td>37B aktiv (MoE)</td><td>experimentell</td></tr><tr><td><strong>DeepSeek-R1 Distills</strong> (2025)</td><td>1.5B – 70B</td><td>alle aktiv</td><td>Nein &#8211; Reasoning</td></tr></tbody></table></figure>



<p>Die Größe der Modelle wird meist mit <strong>B</strong> angegeben – das steht im Englischen für „Billion“ (US-Zählweise) und entspricht <strong>Milliarden Parametern</strong> auf Deutsch.<br>Beispiel: <strong>LLaMA-3 8B</strong> bedeutet, dass das Modell etwa <strong>8 Milliarden Parameter</strong> hat.</p>



<p>{{&lt; note &gt;}}<br>Die Größe von großen Sprachmodellen bzw. Foundation Models wird in der Anzahl der <strong>Parameter</strong> angegeben.<br>Die Einheit ist das amerikanische <strong>B</strong> für „Billion“ (US), was im Deutschen <strong>einer Milliarde</strong> entspricht.<br>In der Regel werden die Parameter als <strong>16-Bit-Fließkommazahlen</strong> gespeichert – meist im Format <strong>FP16</strong> oder <strong>BF16</strong>.<br>Das entspricht <strong>2 Bytes pro Parameter</strong>.<br>{{&lt; /note &gt;}}</p>



<p>Rechnen wir kurz: Das kleinste Modell der Reihe, <strong>LLaMA-3 8B</strong>, hat rund <strong>8 Milliarden Parameter</strong>.</p>



<p>Bei <strong>FP16/BF16</strong> (16 Bit) entspricht das <strong>2 Byte pro Parameter</strong> → <strong>8B × 2 Byte ≈ 16 GB VRAM</strong> nur für die Modellgewichte.</p>



<p>Dazu kommt der <strong>KV-Cache</strong> für die Attention, dessen Größe linear mit der Kontextlänge wächst.<br>Als &#8222;sehr grobe&#8220; Faustregel (bei 16 Bit):</p>



<ul class="wp-block-list">
<li>kleine Modelle bis ~10B Parameter → ca. <strong>0,5 MB pro Token</strong></li>



<li>mittlere Modelle (~10–30B Parameter) → ca. <strong>1 MB pro Token</strong></li>



<li>große Modelle (70B+) → ca. <strong>3–4 MB pro Token</strong></li>
</ul>



<p><strong>Praxisbeispiel (8k Kontext):</strong></p>



<ul class="wp-block-list">
<li>16 GB (Gewichte) + ~4 GB (KV-Cache) + Overhead ⇒ <strong>&gt; 20 GB Gesamtbedarf</strong></li>
</ul>



<p>Selbst eine hochwertige Grafikkarte mit <strong>16 GB VRAM reicht für LLaMA-3 8B in FP16 nicht mehr aus</strong>.</p>



<h3 id="trotzdem-zu-gross-speicher-weiter-reduzieren" class="wp-block-heading">Trotzdem zu groß – Speicher weiter reduzieren</h3>



<p>Drücken wir den Speicherbedarf einmal gedanklich herunter:</p>



<p>Modelle werden meist im Format <strong>FP16</strong> ausgeliefert.</p>



<p>In FP16 besteht eine Zahl aus:</p>



<p><strong>V EEEEE MMMMMMMMMM</strong></p>



<ul class="wp-block-list">
<li><strong>v</strong> = 1 Bit Vorzeichen</li>



<li><strong>e</strong> = 5 Bit Exponent (legt den Wertebereich fest)</li>



<li><strong>m</strong> = 10 Bit Mantisse (legt die Genauigkeit fest)</li>
</ul>



<p>Damit lässt sich ein Bereich von rund <strong>−65.504 bis +65.504</strong> abdecken.</p>



<p>Für viele KI-Modelle sind die Gewichte jedoch bereits <strong>auf den Bereich −1 bis +1 normalisiert</strong>.<br>Der große Exponentenbereich wird also kaum genutzt – die 5 Exponenten-Bits sind in diesem Fall überflüssig.</p>



<p>Theoretisch würden also <strong>11 Bit (1+10)</strong> genügen, um Modellgewichte in diesem Bereich ohne Präzisionsverlust darzustellen.<br>Das entspräche einer Ersparnis von rund <strong>31 % Speicher</strong> – allerdings nur als Gedankenmodell, da es kein echtes 11-Bit-Format gibt.</p>



<p>Wie kann man diese Modelle doch noch in den Griff bekommen?</p>



<h3 id="quantisierung-das-wunder-der-fast-verlustfreien-komprimierung" class="wp-block-heading">Quantisierung &#8211; das Wunder der (fast) verlustfreien Komprimierung</h3>



<p>Genau hier setzt <strong>Quantisierung</strong> an:<br>Sie reduziert die Bitbreite noch weiter – typischerweise auf <strong>8 Bit oder sogar 4 Bit</strong> –<br>und erzielt dadurch enorme Einsparungen bei Speicher und Rechenaufwand, bei meist nur geringem Qualitätsverlust.</p>



<p>In unseren einfachen Rechnungen konnten wir bereits <strong>5 Bit einsparen</strong>, ohne Genauigkeitsverluste.<br>In der Praxis lässt sich der Wertebereich jedoch nicht immer exakt auf <strong>–1 bis +1</strong> begrenzen. Manchmal reicht er weiter, manchmal liegt er nur zwischen <strong>–0.2 und +0.2</strong>.<br>Daher arbeitet man nicht mit fixen Grenzen, sondern bestimmt den tatsächlichen <strong>Minimal- und Maximalwert</strong> der Parameter.<br>Die so entstehende <strong>Range zwischen Min und Max</strong> wird anschließend <strong>quantisiert</strong>, indem man sie in gleichmäßige (lineare) Abstände aufteilt.</p>



<figure class="wp-block-image size-large"><img  loading="lazy"  decoding="async"  width="1024"  height="363"  src="https://www.kimagazin.com/wp-content/uploads/2026/03/quantisierung-1024x363.webp"  alt=""  class="wp-image-2332"  srcset="https://www.kimagazin.com/wp-content/uploads/2026/03/quantisierung-1024x363.webp 1024w, https://www.kimagazin.com/wp-content/uploads/2026/03/quantisierung-300x106.webp 300w, https://www.kimagazin.com/wp-content/uploads/2026/03/quantisierung-768x272.webp 768w, https://www.kimagazin.com/wp-content/uploads/2026/03/quantisierung-380x135.webp 380w, https://www.kimagazin.com/wp-content/uploads/2026/03/quantisierung-550x195.webp 550w, https://www.kimagazin.com/wp-content/uploads/2026/03/quantisierung-800x283.webp 800w, https://www.kimagazin.com/wp-content/uploads/2026/03/quantisierung-1160x411.webp 1160w, https://www.kimagazin.com/wp-content/uploads/2026/03/quantisierung-80x28.webp 80w, https://www.kimagazin.com/wp-content/uploads/2026/03/quantisierung.webp 1296w"  sizes="auto, (max-width: 1024px) 100vw, 1024px" ></figure>



<p>Die Quantisierung wird in <strong>Bit</strong> angegeben, z. B. <strong>8 Bit</strong>, <strong>4 Bit</strong> oder sogar nur <strong>2 Bit</strong>.</p>



<ul class="wp-block-list">
<li><strong>8 Bit = 256 Stufen</strong></li>



<li><strong>4 Bit = 16 Stufen</strong></li>



<li>Ganzzahlen: <strong>8 Bit = 1 Byte</strong></li>
</ul>



<p>Beispiel:<br>Bei einem Range von <strong>–1 bis +1</strong> (Breite = 2.0) und <strong>8 Bit</strong> teilen wir diesen Bereich in <strong>256 Stufen</strong> auf = 1 Byte</p>



<p>Teilen wir den Wertebereich 2.0 durch 256 Stufen, ergibt sich ein <strong>Skalierungswert von 0.0078125</strong>.<br>Das ist der Abstand von einer Stufe zur nächsten und bestimmt die <strong>Genauigkeit</strong>:</p>



<ul class="wp-block-list">
<li>Weniger Bits → größere Abstände → geringere Genauigkeit.</li>
</ul>



<p>In der Praxis:</p>



<ul class="wp-block-list">
<li>Für jeden Parameter wird eine <strong>Stufe</strong> gespeichert (als Byte).</li>



<li>Zusätzlich gibt es den <strong>Skalierungsfaktor</strong>.</li>



<li>Diese Quantisierung passiert <strong>nach dem Training</strong>, aber <strong>vor der Nutzung</strong> des Modells.</li>
</ul>



<p><strong>Symmetrische Quantisierung</strong></p>



<figure class="wp-block-image size-large"><img  loading="lazy"  decoding="async"  width="1024"  height="139"  src="https://www.kimagazin.com/wp-content/uploads/2026/03/sym_quant-1024x139.webp"  alt=""  class="wp-image-2333"  srcset="https://www.kimagazin.com/wp-content/uploads/2026/03/sym_quant-1024x139.webp 1024w, https://www.kimagazin.com/wp-content/uploads/2026/03/sym_quant-300x41.webp 300w, https://www.kimagazin.com/wp-content/uploads/2026/03/sym_quant-768x104.webp 768w, https://www.kimagazin.com/wp-content/uploads/2026/03/sym_quant-1536x209.webp 1536w, https://www.kimagazin.com/wp-content/uploads/2026/03/sym_quant-380x52.webp 380w, https://www.kimagazin.com/wp-content/uploads/2026/03/sym_quant-550x75.webp 550w, https://www.kimagazin.com/wp-content/uploads/2026/03/sym_quant-800x109.webp 800w, https://www.kimagazin.com/wp-content/uploads/2026/03/sym_quant-1160x158.webp 1160w, https://www.kimagazin.com/wp-content/uploads/2026/03/sym_quant-80x11.webp 80w, https://www.kimagazin.com/wp-content/uploads/2026/03/sym_quant.webp 1993w"  sizes="auto, (max-width: 1024px) 100vw, 1024px" ></figure>



<ul class="wp-block-list">
<li>Range ist um <strong>0</strong> symmetrisch (z. B. –1 bis +1).</li>



<li>Nur ein <strong>Skalierungsfaktor</strong> wird gespeichert.</li>



<li>Einfach, aber bei asymmetrischen Daten geht Präzision verloren.</li>
</ul>



<p><strong>Asymmetrische Quantisierung</strong></p>



<figure class="wp-block-image size-large"><img  loading="lazy"  decoding="async"  width="1024"  height="128"  src="https://www.kimagazin.com/wp-content/uploads/2026/03/asym_quant-1024x128.webp"  alt=""  class="wp-image-2334"  srcset="https://www.kimagazin.com/wp-content/uploads/2026/03/asym_quant-1024x128.webp 1024w, https://www.kimagazin.com/wp-content/uploads/2026/03/asym_quant-300x38.webp 300w, https://www.kimagazin.com/wp-content/uploads/2026/03/asym_quant-768x96.webp 768w, https://www.kimagazin.com/wp-content/uploads/2026/03/asym_quant-1536x192.webp 1536w, https://www.kimagazin.com/wp-content/uploads/2026/03/asym_quant-2048x256.webp 2048w, https://www.kimagazin.com/wp-content/uploads/2026/03/asym_quant-380x48.webp 380w, https://www.kimagazin.com/wp-content/uploads/2026/03/asym_quant-550x69.webp 550w, https://www.kimagazin.com/wp-content/uploads/2026/03/asym_quant-800x100.webp 800w, https://www.kimagazin.com/wp-content/uploads/2026/03/asym_quant-1160x145.webp 1160w, https://www.kimagazin.com/wp-content/uploads/2026/03/asym_quant-80x10.webp 80w, https://www.kimagazin.com/wp-content/uploads/2026/03/asym_quant.webp 2232w"  sizes="auto, (max-width: 1024px) 100vw, 1024px" ></figure>



<ul class="wp-block-list">
<li>Range ist verschoben (z. B. –1 bis +0.2).</li>



<li>Zusätzlich zum <strong>Skalierungsfaktor</strong> wird ein <strong>Nullpunkt (Zero Point)</strong> gespeichert.</li>



<li>Der Zero Point legt fest, welche Ganzzahl genau den Wert <strong>0</strong> repräsentiert.</li>



<li>Vorteil: Der verfügbare Wertebereich wird optimal genutzt.</li>
</ul>



<h3 id="dequantisierung" class="wp-block-heading">Dequantisierung</h3>



<p>Bei der <strong>Inferenz</strong> (Anwendung des Modells) liegen die Parameter nicht mehr als <strong>FP16-Werte</strong> vor, sondern z. B. nur noch als <strong>Ganzzahlenwerte</strong> (z. B. 1 Byte pro Gewicht).</p>



<figure class="wp-block-image size-large"><img  loading="lazy"  decoding="async"  width="1024"  height="269"  src="https://www.kimagazin.com/wp-content/uploads/2026/03/dequantisierung-1024x269.png"  alt=""  class="wp-image-2335"  srcset="https://www.kimagazin.com/wp-content/uploads/2026/03/dequantisierung-1024x269.png 1024w, https://www.kimagazin.com/wp-content/uploads/2026/03/dequantisierung-300x79.png 300w, https://www.kimagazin.com/wp-content/uploads/2026/03/dequantisierung-768x202.png 768w, https://www.kimagazin.com/wp-content/uploads/2026/03/dequantisierung-1536x403.png 1536w, https://www.kimagazin.com/wp-content/uploads/2026/03/dequantisierung-380x100.png 380w, https://www.kimagazin.com/wp-content/uploads/2026/03/dequantisierung-550x144.png 550w, https://www.kimagazin.com/wp-content/uploads/2026/03/dequantisierung-800x210.png 800w, https://www.kimagazin.com/wp-content/uploads/2026/03/dequantisierung-1160x305.png 1160w, https://www.kimagazin.com/wp-content/uploads/2026/03/dequantisierung-80x21.png 80w, https://www.kimagazin.com/wp-content/uploads/2026/03/dequantisierung.png 1622w"  sizes="auto, (max-width: 1024px) 100vw, 1024px" ></figure>



<p>Für die Berechnung müssen diese Ganzzahlen wieder in <strong>FP16</strong> konvertiert werden:<br>Dies geschieht, indem man die Ganzzahl mit dem <strong>Skalierungsfaktor</strong> multipliziert.<br>Bei <strong>asymmetrischer Quantisierung</strong> wird zusätzlich der <strong>Nullpunkt (Zero Point)</strong> berücksichtigt.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Parameter_fp = (Stufe × Skalierungsfaktor) [+ Nullpunkt bei asymmetrisch]
</blockquote>



<p>Durch die Quantisierung können <strong>Fehler</strong> entstehen, wenn der rekonstruierte Wert vom ursprünglichen Wert abweicht.<br>Je weniger Bits verwendet werden, desto höher die mögliche Abweichung.</p>



<ul class="wp-block-list">
<li>Mit <strong>8 Bit</strong> spart man bereits rund <strong>50 % Speicherplatz</strong>, in der Praxis meist mit kaum messbaren Verlusten.</li>



<li>Mit <strong>4 Bit</strong> lassen sich sogar <strong>75 %</strong> einsparen, allerdings steigt die Wahrscheinlichkeit von Genauigkeitsverlusten.</li>
</ul>



<p><strong>Faustregel:</strong></p>



<ul class="wp-block-list">
<li><strong>FP16:</strong> Originalpräzision → hohe Qualität, viel Speicherbedarf</li>



<li><strong>INT8:</strong> Standard für Inferenz → kaum Qualitätsverlust, große Ersparnis</li>



<li><strong>INT4:</strong> weitere starke Ersparnis → meist noch gute Qualität (mit spezieller Quantisierung)</li>



<li><strong>INT2:</strong> extreme Kompression → Qualität stark eingeschränkt, oft kaum brauchbar</li>
</ul>



<h4 id="bedeutet-das-nicht-grossen-rechenaufwand" class="wp-block-heading">Bedeutet das nicht großen Rechenaufwand?</h4>



<p>Ja, für jeden Parameter ist eine <strong>Multiplikation</strong> und ggf. eine <strong>Addition</strong> (bei asymmetrischer Quantisierung) nötig.<br>Der <strong>VRAM-Gewinn</strong> gleicht diesen Mehraufwand aber meist aus.<br>Außerdem unterstützen moderne <strong>GPUs, TPUs und NPUs</strong> bereits spezielle <strong>Quantisierungs-Operatoren</strong>, die diese Schritte sehr effizient ausführen.</p>



<h4 id="bekommt-das-ganze-netzwerk-die-gleiche-skalierung" class="wp-block-heading">Bekommt das ganze Netzwerk die gleiche Skalierung?</h4>



<p>Nicht unbedingt &#8230;<br>In der Praxis teilt man die Parameter oft in <strong>Spalten (Channels)</strong> oder <strong>Gruppen</strong> auf und vergibt dafür getrennte Skalierungsfaktoren.<br>Das verbessert die Genauigkeit deutlich gegenüber einer einzigen globalen Skalierung.</p>



<h4 id="werden-alle-parameter-des-modells-quantisiert" class="wp-block-heading">Werden alle Parameter des Modells quantisiert?</h4>



<p>Grundsätzlich ja – aber die größten Einsparungen erzielt man bei den Hauptblöcken:</p>



<ol class="wp-block-list">
<li><strong>Attention (Q, K, V, O Projektionen):</strong><br>Belegen je nach Architektur rund <strong>20–30 %</strong> der Parameter.</li>



<li><strong>Feed Forward Network (FFN / MLP):</strong><br>Macht rund <strong>60–70 %</strong> der Parameter aus.</li>
</ol>



<p>Kleinere Teile wie Embeddings oder LayerNorms sind vergleichsweise unbedeutend. Die <strong>meisten Einsparungen</strong> durch Quantisierung entstehen also im FFN und im Attention-Block.</p>



<h4 id="gptq-gradient-post-training-quantization" class="wp-block-heading">GPTQ (Gradient Post-Training Quantization)</h4>



<p><strong>GPTQ</strong> ist ein Verfahren, das <strong>nach dem Training</strong> angewendet wird und die Qualität der Quantisierung deutlich verbessert.</p>



<p>Dabei werden die <strong>Parameter nicht alle gleich behandelt</strong>, sondern nach ihrer <strong>Wichtigkeit</strong> unterschieden.<br>Mit Hilfe der <strong>Hessian-Matrix</strong> (eine Ableitungsmatrix, die Sensitivität und Krümmung beschreibt) wird abgeschätzt, wie stark sich ein Quantisierungsfehler bei einem bestimmten Parameter auf die Modellqualität auswirkt.</p>



<p>So erhalten wichtige Parameter feinere <strong>Skalierungen</strong>, während weniger wichtige Parameter gröber quantisiert werden können.<br>Das ermöglicht eine <strong>effizientere Kompression</strong>, bei gleichzeitig <strong>geringerem Qualitätsverlust</strong>.</p>



<p><strong>Vorteil</strong>: GPTQ erlaubt oft Quantisierungen bis <strong>4 Bit</strong> mit nur minimalen Genauigkeitseinbußen, wodurch große Modelle auf deutlich kleineren Geräten lauffähig werden.</p>



<h2 id="der-player-fuer-dein-ki-modell-die-runtime" class="wp-block-heading">Der Player für dein KI-Modell: die Runtime</h2>



<figure class="wp-block-image size-full"><img  loading="lazy"  decoding="async"  width="512"  height="220"  src="https://www.kimagazin.com/wp-content/uploads/2026/03/play.svg"  alt=""  class="wp-image-2336" ></figure>



<p>Jetzt haben wir den etwas trockenen Teil hinter uns und wissen, worauf es ankommt und worauf wir achten müssen.<br>Einen passenden Computer mit starker Grafikkarte und ausreichend VRAM haben wir uns bereits besorgt.</p>



<p>Nun geht es in die Praxis: <strong>Wie lassen sich multimodale Foundation Models auf Consumer-Hardware nutzen?</strong></p>



<p>Bei Modellen ist es ähnlich wie bei Videos: Mit der Datei allein kann der Computer wenig anfangen – er braucht einen Player, damit etwas passiert.<br>Was bei Videos der <strong>Videoplayer</strong> ist, ist bei Foundation Models die <strong>LLM-Runtime</strong>.<br>Sie lädt das Modell und bietet uns die Schnittstelle, um damit zu interagieren – zum Beispiel in Form eines Chats.</p>



<h3 id="wie-ki-software-auf-die-grafikkarte-zugreift" class="wp-block-heading">Wie KI-Software auf die Grafikkarte zugreift</h3>



<p>Der Zugriff einer Runtime – oder allgemein von KI-Software – auf die GPU erfolgt in mehreren Ebenen.</p>



<figure class="wp-block-image size-full"><img  loading="lazy"  decoding="async"  width="586"  height="266"  src="https://www.kimagazin.com/wp-content/uploads/2026/03/gpu_flowchart.svg"  alt=""  class="wp-image-2337" ></figure>



<ul class="wp-block-list">
<li><strong>Unterste Ebene:</strong> die eigentliche <strong>Hardware</strong> (GPU).<br>Dafür stellt der jeweilige Hersteller passende <strong>Treiber</strong> bereit.<br>Diese Treiber sind nötig, damit das Betriebssystem und die Software überhaupt mit der GPU kommunizieren können.</li>



<li><strong>Darüber:</strong> der Zugriff auf die Hardware geschieht über eine <strong>Programmierschnittstelle (API)</strong>.<br>Diese kann entweder
<ul class="wp-block-list">
<li><strong>herstellerspezifisch</strong> sein (z. B. CUDA von NVIDIA)</li>



<li>oder auf einem <strong>offenen Standard</strong> basieren (z. B. DirectML)</li>
</ul>
</li>
</ul>



<p>Diese Schnittstellen bilden die Grundlage, auf der KI-Frameworks wie PyTorch, TensorFlow oder KI Applikationen arbeiten.</p>



<h4 id="herstellerspezifische-schnittstellen" class="wp-block-heading">Herstellerspezifische Schnittstellen</h4>



<p>Diese Schnittstellen sind speziell für eine bestimmte Hardware-Familie optimiert (z. B. nur für NVIDIA).<br>Sie funktionieren ausschließlich auf den GPUs dieses Herstellers.</p>



<ul class="wp-block-list">
<li><strong>Vorteil:</strong><br>Die besonderen Fähigkeiten und Funktionen der Hardware können gezielt und sehr performant genutzt werden.</li>



<li><strong>Nachteil:</strong><br>Für jede andere Hardware-Familie muss separat programmiert werden – ein Wechsel des Herstellers ist damit schwierig.</li>
</ul>



<p>Beispiele:</p>



<ul class="wp-block-list">
<li><strong>NVIDIA:</strong> CUDA</li>



<li><strong>AMD:</strong> ROCm</li>



<li><strong>Intel:</strong> oneAPI</li>



<li><strong>Apple:</strong> Metal (MPS)</li>
</ul>



<h4 id="universelle-schnittstellen" class="wp-block-heading">Universelle Schnittstellen</h4>



<p>Hier stellen Konsortien oder Standardisierungsorganisationen eine gemeinsame Schnittstelle bereit, die auf Hardware vieler Hersteller lauffähig ist.</p>



<ul class="wp-block-list">
<li><strong>Vorteil:</strong><br>Eine Schnittstelle funktioniert mit GPUs verschiedener Anbieter – weniger Abhängigkeit vom Hersteller.</li>



<li><strong>Nachteil:</strong><br>Spezielle Funktionen einzelner GPUs können nicht ausgereizt werden, außerdem ist der Zugriff in der Regel etwas langsamer.</li>
</ul>



<p>Beispiele:</p>



<ul class="wp-block-list">
<li><strong>OpenCL:</strong> – Khronos Group</li>



<li><strong>Vulkan Compute:</strong> – Khronos Group</li>



<li><strong>DirectML:</strong> – Microsoft</li>
</ul>



<h3 id="runtimes-fuer-lokale-und-skalierte-nutzung" class="wp-block-heading">Runtimes für lokale und skalierte Nutzung</h3>



<p>Für die verschiedenen Betriebssysteme – Linux, Windows und macOS – stehen unterschiedliche Runtimes zur Verfügung.<br>Aktuell sind <strong>Linux-Nutzer etwas im Vorteil</strong>, da viele Tools zuerst für Linux entwickelt und optimiert werden.<br>Unter <strong>Windows</strong> lassen sich viele davon jedoch ebenfalls nutzen, z. B. über das <strong>Windows Subsystem for Linux (WSL)</strong>.<br>Auch <strong>macOS</strong> wird inzwischen gut unterstützt, insbesondere seit es Apple Silicon (M1/M2/M3) mit eigener GPU-Beschleunigung gibt.</p>



<p>Wichtig ist die <strong>Unterscheidung nach dem Einsatzzweck</strong>:</p>



<ul class="wp-block-list">
<li><strong>Lokale Runtimes</strong> für Einzelrechner (z. B. llama.cpp)</li>



<li><strong>Server- oder Cluster-Runtimes</strong> für skalierte Nutzung (z. B. vLLM)</li>
</ul>



<h4 id="lokale-runtimes" class="wp-block-heading">Lokale Runtimes</h4>



<p>Eine <strong>lokale Runtime</strong> ist in der Regel schnell installiert und eingerichtet.<br>Sie ist für den <strong>Betrieb auf einem einzelnen Rechner</strong> gedacht und eignet sich besonders für kleinere Workflows, die direkt auf dieser Maschine laufen oder sich gezielt mit genau diesem Rechner verbinden.</p>



<p>Typische Vertreter:</p>



<ul class="wp-block-list">
<li><strong>llama.cpp</strong> – leichtgewichtig, sehr portabel, läuft auf fast allen Plattformen</li>



<li><strong>Ollama</strong> – CLI-/API-orientiert, einfach in eigene Anwendungen integrierbar</li>



<li><strong>LM Studio</strong> – benutzerfreundliche Desktop-App mit GUI und Modellverwaltung</li>
</ul>



<h4 id="server-oder-cluster-runtimes-inference-engines" class="wp-block-heading">Server- oder Cluster-Runtimes (Inference Engines)</h4>



<p>Diese Runtimes sind deutlich komplexer in der Installation und richten sich an <strong>professionelle Anwendungen</strong> mit vielen gleichzeitigen Anfragen.<br>Sie sind für den Einsatz auf <strong>leistungsstarker Server-Hardware</strong> gedacht, oft mit mehreren GPUs, und lassen sich sehr gut skalieren – von einzelnen Servern bis hin zu großen Clustern.<br>Typischerweise werden dafür <strong>Datacenter-GPUs</strong> wie die NVIDIA A100 oder H100 genutzt.</p>



<p>Typische Vertreter:</p>



<ul class="wp-block-list">
<li><strong>vLLM (UC Berkeley)</strong> – hochoptimierte Inference Engine, u. a. mit <em>PagedAttention</em></li>



<li><strong>Text Generation Inference (TGI, Hugging Face)</strong> – Serving-Framework für Produktionsumgebungen</li>



<li><strong>TensorRT-LLM (NVIDIA)</strong> – maximal optimierte Inferenz auf NVIDIA-GPUs mit Tensor Cores</li>
</ul>



<h3 id="fuer-kleinere-anwendungen-bieten-sich-lokale-runtimes-an" class="wp-block-heading">Für kleinere Anwendungen bieten sich lokale Runtimes an</h3>



<p>Grundsätzlich brauchen wir einen <strong>Motor unter der Haube</strong>, der Modelle laden und ausführen kann.<br>Bei den lokalen Runtimes kommt sehr häufig <strong>llama.cpp</strong> zum Einsatz.</p>



<h4 id="llama-cpp" class="wp-block-heading">llama.cpp</h4>



<p><strong>llama.cpp</strong> ist eine extrem schnelle, hardwarenahe Bibliothek, die in <strong>C/C++</strong> mit teils <strong>Assembler-Optimierungen</strong> entwickelt wurde.<br>Sie ermöglicht es, große Sprachmodelle effizient auch auf Consumer-Hardware laufen zu lassen.</p>



<ul class="wp-block-list">
<li>Bietet <strong>Bindings</strong> für viele Programmiersprachen (z. B. Python, Go, Rust), sodass andere KI-Programme unter verschiedenen Betriebssystemen die Funktionen der Bibliothek nutzen können.</li>



<li>Dieser Zugriff erfolgt über eine <strong>API (Application Programming Interface)</strong>.</li>



<li>Zusätzlich gibt es ein <strong>Command Line Interface (CLI)</strong>, über das man direkt mit der Bibliothek arbeiten kann.</li>
</ul>



<p>llama.cpp kann <strong>GGUF-Modelle (Generalized GGML Unified Format)</strong> laden und ausführen – auch in <strong>quantisierter Form</strong>, um Speicher und Rechenleistung zu sparen.</p>



<p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f517.png" alt="🔗" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <a href="https://github.com/ggml-org/llama.cpp">llama.cpp auf GitHub</a></p>



<p>Da die direkte Nutzung von <strong>llama.cpp</strong> eher technisch und für Entwickler gedacht ist, greifen viele Nutzer auf eine <strong>höhere Abstraktionsebene</strong> zurück – also auf Runtimes oder Tools, die auf llama.cpp aufbauen und eine benutzerfreundlichere Oberfläche bieten.</p>



<h4 id="lm-studio" class="wp-block-heading">LM Studio</h4>



<p><strong>LM Studio</strong> ist eine komfortable <strong>Runtime</strong> mit klarer <strong>GUI-Ausrichtung</strong> und richtet sich vor allem an <strong>Endanwender</strong>.<br>Es bietet eine integrierte <strong>Modell-Liste</strong> („Model Catalog“), über die man Modelle direkt auswählen und herunterladen kann.</p>



<p>Inzwischen legt das Projekt auch mehr Fokus auf <strong>Entwickler</strong>:</p>



<ul class="wp-block-list">
<li>Es gibt ein eigenes <strong>Command Line Tool (<code>lms</code>)</strong>, mit dem sich Modelle laden, verwalten und der API-Server steuern lassen.</li>



<li>Zusätzlich stellt LM Studio eine <strong>OpenAI-kompatible REST-Schnittstelle</strong> bereit, sodass es problemlos von anderen Programmen angesteuert werden kann.</li>
</ul>



<p><strong>Unterstützte Formate:</strong></p>



<ul class="wp-block-list">
<li><strong>GGUF</strong> (Standard für llama.cpp-basierte Runtimes)</li>



<li><strong>MLX</strong> (speziell für Apple über die MLX-Schnittstelle)</li>
</ul>



<p><strong>Basis:</strong> LM Studio baut intern auf <strong>llama.cpp</strong> auf, erweitert dies aber um GUI, API und Komfortfunktionen.</p>



<p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f517.png" alt="🔗" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <a href="https://lmstudio.ai/">LM Studio Website</a><br><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f517.png" alt="🔗" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <a href="https://lmstudio.ai/models">LM Studio Model Catalog</a></p>



<h4 id="ollama" class="wp-block-heading">Ollama</h4>



<p><strong>Ollama</strong> ist stärker auf <strong>Developer</strong> ausgerichtet und bietet umfangreiche Steuerungsmöglichkeiten:</p>



<ul class="wp-block-list">
<li><strong>Command Line Interface (CLI)</strong> für direkte Kontrolle</li>



<li><strong>OpenAI-kompatible REST-API</strong> für die Integration in eigene Anwendungen</li>



<li><strong>SDKs</strong> (z. B. für Python, JavaScript), um Ollama von außen programmatisch zu steuern</li>
</ul>



<p>Inzwischen richtet sich Ollama aber auch zunehmend an <strong>Endanwender</strong> – dafür gibt es z. B. einen integrierten <strong>UI-Chat-Client</strong>.</p>



<p><strong>Basis:</strong> Auch Ollama nutzt unter der Haube <strong>llama.cpp</strong> als Runtime.</p>



<p><strong>Unterstützte Formate:</strong></p>



<ul class="wp-block-list">
<li><strong>Eigenes Ollama-Format</strong> (<code>Modelfile</code>), vergleichbar mit einem <em>Dockerfile für Modelle</em>.</li>



<li><strong>GGUF</strong> (Standard für llama.cpp-basierte Runtimes) – kann in ein Ollama-Format „importiert“ werden.</li>



<li><strong>PyTorch (.pt / .pth)</strong> – nach Konvertierung.</li>



<li><strong>Safetensors (.safetensors)</strong> – nach Konvertierung.</li>
</ul>



<p><strong>Modellbibliothek:</strong><br>Ollama stellt eine eigene offizielle <strong>Modellbibliothek</strong> bereit, aus der Modelle direkt per CLI heruntergeladen und gestartet werden können:</p>



<p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f517.png" alt="🔗" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <a href="https://ollama.com/library">Ollama Model Library</a></p>



<p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f517.png" alt="🔗" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <a href="https://ollama.com">Ollama Website</a><br><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f517.png" alt="🔗" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <a href="https://github.com/ollama/ollama">Ollama GitHub</a></p>



<p>{{&lt; note &gt;}}<br>Was ist eigentlich &#8230;</p>



<ul class="wp-block-list">
<li><strong>API (Application Programming Interface):</strong><br>Schnittstelle, über die Programme Funktionen einer Bibliothek aufrufen können.</li>



<li><strong>Library (Bibliothek):</strong><br>Sammlung von wiederverwendbaren Funktionen, die in eigenen Programmen genutzt werden können.</li>



<li><strong>SDK (Software Development Kit):</strong><br>Werkzeugkasten für Entwickler, der eine Bibliothek, Dokumentation, Beispiele und Tools enthält.</li>



<li><strong>REST API:</strong><br>Eine Web-API, die über das HTTP-Protokoll funktioniert und nach REST-Schema aufgebaut ist. Wird genutzt um Dienste über das Netzwerk anzusprechen.<br>{{&lt; /note &gt;}}</li>
</ul>



<h3 id="gaengige-formate-fuer-foundation-models" class="wp-block-heading">Gängige Formate für Foundation Models</h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Format / Suffix</th><th>Firma/Organisation</th><th>Kurzbeschreibung</th><th>Typische Anwendung</th></tr></thead><tbody><tr><td><strong>PyTorch (.pt, .pth, .bin, .safetensors)</strong></td><td>Meta / Open-Source</td><td>Standard für Training</td><td>Viele Open-Source-Modelle</td></tr><tr><td><strong>GGUF / GGML (.gguf, .ggml)</strong></td><td>Community (llama.cpp)</td><td>Optimiert für lokale Nutzung</td><td>Ollama, LM Studio, llama.cpp</td></tr><tr><td><strong>ONNX (.onnx)</strong></td><td>Microsoft / Open-Source</td><td>Austauschformat</td><td>Deployment auf Servern/Edge</td></tr><tr><td><strong>TensorRT (.engine)</strong></td><td>NVIDIA</td><td>GPU-optimiertes Format</td><td>Inferenz auf NVIDIA-GPUs</td></tr><tr><td><strong>CoreML (.mlmodel)</strong></td><td>Apple</td><td>Apple-spezifisches Format</td><td>KI auf iPhone, iPad, Mac</td></tr></tbody></table></figure>



<h4 id="welche-runtime-passt-am-besten" class="wp-block-heading">Welche Runtime passt am besten?</h4>



<p>Die drei Runtimes unterscheiden sich zunehmend weniger in ihrem Funktionsumfang.<br>Am Ende ist es vor allem <strong>eine Frage der persönlichen Vorlieben</strong>:</p>



<ul class="wp-block-list">
<li>Wie schnell möchte ich starten?</li>



<li>Wie viel Zeit und Energie will ich in Konfiguration und Feinschliff investieren?</li>
</ul>



<p>Im nächsten Abschnitt werfen wir einen praktischen Blick auf die <strong>Ollama Runtime</strong>.</p>



<h3 id="ollama-in-der-praxis" class="wp-block-heading">Ollama in der Praxis</h3>



<p>In diesem Tutorial zeige ich dir die Installation und Nutzung von Ollama unter Windows.</p>



<h4 id="ollama-herunterladen" class="wp-block-heading">Ollama herunterladen</h4>



<p>Rufe die offizielle Download-Seite auf:</p>



<p><a href="https://ollama.com/download">https://ollama.com/download</a></p>



<p>Dort wählst du dein Betriebssystem aus.</p>



<figure class="wp-block-image size-full"><img  loading="lazy"  decoding="async"  width="422"  height="208"  src="https://www.kimagazin.com/wp-content/uploads/2026/03/ollama_download.png"  alt=""  class="wp-image-2338"  srcset="https://www.kimagazin.com/wp-content/uploads/2026/03/ollama_download.png 422w, https://www.kimagazin.com/wp-content/uploads/2026/03/ollama_download-300x148.png 300w, https://www.kimagazin.com/wp-content/uploads/2026/03/ollama_download-380x187.png 380w, https://www.kimagazin.com/wp-content/uploads/2026/03/ollama_download-80x39.png 80w"  sizes="auto, (max-width: 422px) 100vw, 422px" ></figure>



<h4 id="installation" class="wp-block-heading">Installation</h4>



<p>Nachdem der Download abgeschlossen ist, startest du die Installation.</p>



<ul class="wp-block-list">
<li><strong>Standardinstallation</strong> (Ollama wird in den Standardordner installiert): <code>OllamaSetup.exe</code></li>



<li><strong>Eigener Installationspfad</strong> (Beispiel): <code>OllamaSetup.exe /DIR="D:DeinPfad"</code></li>
</ul>



<h4 id="ollama-starten" class="wp-block-heading">Ollama starten</h4>



<p>Die Installation ist abgeschlossen – jetzt können wir Ollama starten.<br>Da Ollama <strong>Command-Line-first</strong> ist, öffnen wir eine Eingabeaufforderung oder PowerShell und starten es dort:</p>



<figure class="wp-block-image size-full"><img  loading="lazy"  decoding="async"  width="812"  height="566"  src="https://www.kimagazin.com/wp-content/uploads/2026/03/ollama_commandline1.png"  alt=""  class="wp-image-2339"  srcset="https://www.kimagazin.com/wp-content/uploads/2026/03/ollama_commandline1.png 812w, https://www.kimagazin.com/wp-content/uploads/2026/03/ollama_commandline1-300x209.png 300w, https://www.kimagazin.com/wp-content/uploads/2026/03/ollama_commandline1-768x535.png 768w, https://www.kimagazin.com/wp-content/uploads/2026/03/ollama_commandline1-380x265.png 380w, https://www.kimagazin.com/wp-content/uploads/2026/03/ollama_commandline1-550x383.png 550w, https://www.kimagazin.com/wp-content/uploads/2026/03/ollama_commandline1-800x558.png 800w, https://www.kimagazin.com/wp-content/uploads/2026/03/ollama_commandline1-80x56.png 80w"  sizes="auto, (max-width: 812px) 100vw, 812px" ></figure>



<h4 id="architektur-von-ollama" class="wp-block-heading">Architektur von Ollama</h4>



<p>Ollama hat einen <strong>hierarchischen Aufbau</strong>:</p>



<ul class="wp-block-list">
<li>Es basiert auf <strong>llama.cpp</strong></li>



<li>Beim Start öffnet es einen Port unter<br><a href="http://localhost:11434">http://localhost:11434</a></li>



<li>Darüber stellt es eine <strong>OpenAPI-kompatible REST-API</strong> bereit</li>
</ul>



<figure class="wp-block-image size-full"><img  loading="lazy"  decoding="async"  width="1024"  height="1024"  src="https://www.kimagazin.com/wp-content/uploads/2026/03/ollama.webp"  alt=""  class="wp-image-2340"  srcset="https://www.kimagazin.com/wp-content/uploads/2026/03/ollama.webp 1024w, https://www.kimagazin.com/wp-content/uploads/2026/03/ollama-300x300.webp 300w, https://www.kimagazin.com/wp-content/uploads/2026/03/ollama-150x150.webp 150w, https://www.kimagazin.com/wp-content/uploads/2026/03/ollama-768x768.webp 768w, https://www.kimagazin.com/wp-content/uploads/2026/03/ollama-80x80.webp 80w, https://www.kimagazin.com/wp-content/uploads/2026/03/ollama-110x110.webp 110w, https://www.kimagazin.com/wp-content/uploads/2026/03/ollama-380x380.webp 380w, https://www.kimagazin.com/wp-content/uploads/2026/03/ollama-550x550.webp 550w, https://www.kimagazin.com/wp-content/uploads/2026/03/ollama-800x800.webp 800w"  sizes="auto, (max-width: 1024px) 100vw, 1024px" ></figure>



<p>Auf dieser Grundlage können verschiedene Clients mit Ollama kommunizieren – zum Beispiel:</p>



<ul class="wp-block-list">
<li>die <strong>Kommandozeile</strong></li>



<li>die <strong>Chat-Oberfläche</strong></li>



<li>externe <strong>AI-Programme oder Skripte</strong></li>
</ul>



<h4 id="ollama-modell-laden" class="wp-block-heading">Ollama Modell laden</h4>



<p>Nachdem Ollama läuft, wollen wir natürlich ein Modell starten, mit dem wir chatten können.</p>



<p><strong>Modelle finden</strong></p>



<p>Eine Übersicht verfügbarer Modelle findest du in der <strong>Ollama Library</strong>:<br><a href="https://ollama.com/library">https://ollama.com/library</a></p>



<p><strong>Modell herunterladen</strong></p>



<p>Hast du ein Modell gefunden, kannst du es mit <code>ollama pull</code> in dein lokales Modellverzeichnis laden.<br>Beispiel:</p>



<pre class="wp-block-code"><code>ollama pull llama3.2-vision:11b-instruct-q4_K_M</code></pre>



<figure class="wp-block-image size-large"><img  loading="lazy"  decoding="async"  width="1024"  height="234"  src="https://www.kimagazin.com/wp-content/uploads/2026/03/ollama_pull-1024x234.png"  alt=""  class="wp-image-2341"  srcset="https://www.kimagazin.com/wp-content/uploads/2026/03/ollama_pull-1024x234.png 1024w, https://www.kimagazin.com/wp-content/uploads/2026/03/ollama_pull-300x68.png 300w, https://www.kimagazin.com/wp-content/uploads/2026/03/ollama_pull-768x175.png 768w, https://www.kimagazin.com/wp-content/uploads/2026/03/ollama_pull-380x87.png 380w, https://www.kimagazin.com/wp-content/uploads/2026/03/ollama_pull-550x126.png 550w, https://www.kimagazin.com/wp-content/uploads/2026/03/ollama_pull-800x183.png 800w, https://www.kimagazin.com/wp-content/uploads/2026/03/ollama_pull-80x18.png 80w, https://www.kimagazin.com/wp-content/uploads/2026/03/ollama_pull.png 1148w"  sizes="auto, (max-width: 1024px) 100vw, 1024px" ></figure>



<p><strong>Modell starten</strong></p>



<p>Um mit dem Modell zu chatten, starten wir es mit <code>ollama run</code>:</p>



<pre class="wp-block-code"><code>ollama run llama3.2-vision:11b-instruct-q4_K_M</code></pre>



<figure class="wp-block-image size-full"><img  loading="lazy"  decoding="async"  width="732"  height="82"  src="https://www.kimagazin.com/wp-content/uploads/2026/03/ollama_run.png"  alt=""  class="wp-image-2342"  srcset="https://www.kimagazin.com/wp-content/uploads/2026/03/ollama_run.png 732w, https://www.kimagazin.com/wp-content/uploads/2026/03/ollama_run-300x34.png 300w, https://www.kimagazin.com/wp-content/uploads/2026/03/ollama_run-380x43.png 380w, https://www.kimagazin.com/wp-content/uploads/2026/03/ollama_run-550x62.png 550w, https://www.kimagazin.com/wp-content/uploads/2026/03/ollama_run-80x9.png 80w"  sizes="auto, (max-width: 732px) 100vw, 732px" ></figure>



<p>In diesem Beispiel verwende ich ein <strong>multimodales Vision-/Text-Modell</strong> (4-Bit quantisiert).<br>Das bedeutet: es kann sowohl <strong>Texteingaben</strong> als auch <strong>Bilder</strong> verarbeiten. Und obwohl es sich um ein sehr kleines, hochquantisiertes Modell handelt – und als <strong>Text-Vision-Modell</strong> im reinen Textverständnis nicht ganz so stark ist – liefert es bereits in deutscher Sprache beeindruckend gute Antworten.</p>



<p><strong>Laufzeit-Parameter</strong></p>



<p>Beim Start lassen sich zusätzliche Optionen setzen, um das Verhalten des Modells zu steuern.<br>Beispiel:</p>



<pre class="wp-block-code"><code>ollama run granite3.2-vision:latest -o temperature=0.2 -o num_ctx=4096</code></pre>



<p>Hiermit werden die Parameter <strong>temperature</strong> und <strong>Kontextlänge (num_ctx)</strong> überschrieben.</p>



<p><strong>Nützliche Befehle zur Modellverwaltung</strong></p>



<ul class="wp-block-list">
<li><code>ollama list</code> → installierte Modelle auflisten</li>



<li><code>ollama show &lt;modell&gt;</code> → Infos &amp; Fähigkeiten eines Modells anzeigen</li>



<li><code>ollama pull &lt;modell&gt;</code> → Modell herunterladen</li>



<li><code>ollama push &lt;modell&gt;</code> → Modell hochladen</li>



<li><code>ollama create &lt;modell&gt;</code> → neues Modell anlegen</li>



<li><code>ollama cp &lt;quelle&gt; &lt;ziel&gt;</code> → Modell kopieren</li>



<li><code>ollama rm &lt;modell&gt;</code> → Modell löschen</li>
</ul>



<p><strong>Runtime-Befehle von Ollama</strong></p>



<p>Neben den Modell-Management-Befehlen gibt es auch <strong>Runtime-Befehle</strong>, mit denen laufende Modelle gesteuert werden können:</p>



<ul class="wp-block-list">
<li><code>ollama stop &lt;modell&gt;</code> → laufendes Modell stoppen</li>



<li><code>ollama ps</code> → aktuell laufende Modelle auflisten</li>



<li><code>ollama serve</code> → Ollama-Server ohne Modell starten</li>
</ul>



<p><strong>Modellquellen &amp; Vertrauenswürdigkeit</strong></p>



<p>Alle registrierten Modelle findest du hier:<br><a href="https://ollama.com/library">https://ollama.com/library</a></p>



<p><strong>Wichtig:</strong> Eine „echte“ zentrale Qualitätskontrolle gibt es nicht. Ollama ist eher ein <strong>Community-getriebenes Projekt</strong>.<br>Daher solltest du beim Download darauf achten, dass die Modelle von <strong>seriösen Uploadern</strong> stammen (z. B. direkt von <em>Ollama</em> selbst) und ein Modell <strong>validieren</strong>, bevor du es produktiv einsetzt.</p>



<h4 id="herkunft-der-modelle" class="wp-block-heading">Herkunft der Modelle</h4>



<p>Viele Modelle werden von den Anbietern (Vendors) zunächst auf <strong>Hugging Face</strong> veröffentlicht:<br><a href="https://huggingface.co/">https://huggingface.co/</a></p>



<p>Erst danach werden sie von der Community in die Ollama-Bibliothek übernommen.<br>Daher kann es manchmal etwas dauern, bis <strong>neue Modelle</strong> auch über Ollama verfügbar sind.</p>



<h4 id="modelle-anpassen-customizing" class="wp-block-heading">Modelle anpassen (Customizing)</h4>



<p>Ollama erlaubt es, ein Modell zu <strong>customizen</strong>, sodass bestimmte Parameter oder Systemeinstellungen direkt ins Modell „eingebrannt“ werden.<br>Beispiel:</p>



<pre class="wp-block-code"><code>PARAMETER temperature 0.2
SYSTEM "Du bist ein hilfsbereiter Assistent"</code></pre>



<p>Damit kannst du z. B. die <strong>Temperatur</strong> dauerhaft setzen oder ein globales <strong>System-Prompt</strong> definieren.</p>



<h4 id="openai-kompatible-rest-api" class="wp-block-heading">OpenAI-kompatible REST-API</h4>



<p>Ollama bietet eine <strong>OpenAI-kompatible REST-API</strong>, über die sich Anfragen senden lassen – z. B. mit <code>curl</code> oder in einem <strong>Python-Skript</strong>.</p>



<p>Diese API hat sich inzwischen <strong>faktisch als Standard-Schnittstelle</strong> etabliert, um verschiedenste Sprach- und Foundation-Modelle anzusprechen.<br>Das bedeutet: Viele vorhandene Tools und Bibliotheken, die eigentlich für die OpenAI-API gedacht sind, lassen sich direkt mit Ollama nutzen.</p>



<p><strong>API-Nutzung mit curl</strong></p>



<p>Über die REST-API von Ollama lassen sich Modelle direkt ansprechen – zum Beispiel mit <code>curl</code>:</p>



<pre class="wp-block-code"><code>curl http://localhost:11434/v1/chat/completions -H "Content-Type: application/json" -H "Authorization: Bearer ollama" -d "{"model":"llama3.2-vision:11b-instruct-q4_K_M","messages":&#091;{"role":"user","content":"Welche Stadt ist die Landeshauptstadt von Vorarlberg?"}]}"</code></pre>



<p><strong>API-Nutzung mit python</strong></p>



<pre class="wp-block-code"><code>#pip install openai

from openai import OpenAI

client = OpenAI(
    api_key="dummy",
    base_url="http://localhost:11434/v1"
)

resp = client.chat.completions.create(
    model="llama3.2-vision:11b-instruct-q4_K_M",
    messages=&#091;{"role": "user", "content": "Welche Stadt ist die Landeshauptstadt von Vorarlberg?"}]
)

print(resp.choices&#091;0].message.content)</code></pre>



<pre class="wp-block-code"><code>... und wir erhalten jeweils das richige Ergebnis als json reponse: Bregenz</code></pre>



<h4 id="environment-variablen-in-ollama" class="wp-block-heading">Environment-Variablen in Ollama</h4>



<p>Ollama unterstützt verschiedene <strong>Environment-Variablen</strong>, mit denen sich Verhalten und Speicherorte anpassen lassen.<br>Hier eine kleine Auswahl (die vollständige Liste findest du in der offiziellen Dokumentation):</p>



<ul class="wp-block-list">
<li><code>OLLAMA_HOST</code> → Server-Adresse &amp; Port festlegen (z. B. <code>127.0.0.1:0815</code>)</li>



<li><code>OLLAMA_MODELS</code> → Speicherort für Modell-Dateien überschreiben</li>



<li><code>OLLAMA_DEBUG</code> → auf <code>1</code> setzen, um zusätzliche Debug-Ausgaben zu aktivieren</li>
</ul>



<p>Damit kannst du Ollama an deine lokale Umgebung und Workflows anpassen.</p>



<h4 id="dokumentation" class="wp-block-heading">Dokumentation</h4>



<p>Ollama ist gut dokumentiert – mit vielen Beispielen und Code-Snippets.<br><a href="https://ollama.readthedocs.io/en/">https://ollama.readthedocs.io/en/</a></p>



<h4 id="ollama-gui" class="wp-block-heading">Ollama GUI</h4>



<p>Obwohl Ollama ursprünglich <strong>Command-Line-first</strong> entwickelt wurde, gibt es mittlerweile auch eine <strong>grafische Benutzeroberfläche (GUI)</strong>.</p>



<p>Du kannst das GUI mit folgendem Befehl starten:</p>



<pre class="wp-block-code"><code>"ollama app.exe"</code></pre>



<p><strong>Frage im GUI:</strong> „Welche Stadt ist die Landeshauptstadt von Vorarlberg?“</p>



<figure class="wp-block-image size-full"><img  loading="lazy"  decoding="async"  width="957"  height="577"  src="https://www.kimagazin.com/wp-content/uploads/2026/03/ollama-gui-text.png"  alt=""  class="wp-image-2343"  srcset="https://www.kimagazin.com/wp-content/uploads/2026/03/ollama-gui-text.png 957w, https://www.kimagazin.com/wp-content/uploads/2026/03/ollama-gui-text-300x181.png 300w, https://www.kimagazin.com/wp-content/uploads/2026/03/ollama-gui-text-768x463.png 768w, https://www.kimagazin.com/wp-content/uploads/2026/03/ollama-gui-text-380x229.png 380w, https://www.kimagazin.com/wp-content/uploads/2026/03/ollama-gui-text-550x332.png 550w, https://www.kimagazin.com/wp-content/uploads/2026/03/ollama-gui-text-800x482.png 800w, https://www.kimagazin.com/wp-content/uploads/2026/03/ollama-gui-text-80x48.png 80w"  sizes="auto, (max-width: 957px) 100vw, 957px" ></figure>



<p>Wenn du ein <strong>multimodales Modell</strong> (z. B. <code>llama3.2-vision</code>) verwendest, kannst du im GUI nicht nur Texteingaben machen, sondern auch <strong>Bilder hochladen</strong>.</p>



<p>So kannst du direkt Fragen zu einem Bild stellen – das Modell kombiniert dann <strong>Text- und Bildinformationen</strong> in seiner Antwort.</p>



<figure class="wp-block-image size-full"><img  loading="lazy"  decoding="async"  width="845"  height="647"  src="https://www.kimagazin.com/wp-content/uploads/2026/03/cert.webp"  alt=""  class="wp-image-2344"  srcset="https://www.kimagazin.com/wp-content/uploads/2026/03/cert.webp 845w, https://www.kimagazin.com/wp-content/uploads/2026/03/cert-300x230.webp 300w, https://www.kimagazin.com/wp-content/uploads/2026/03/cert-768x588.webp 768w, https://www.kimagazin.com/wp-content/uploads/2026/03/cert-380x291.webp 380w, https://www.kimagazin.com/wp-content/uploads/2026/03/cert-550x421.webp 550w, https://www.kimagazin.com/wp-content/uploads/2026/03/cert-800x613.webp 800w, https://www.kimagazin.com/wp-content/uploads/2026/03/cert-80x60.webp 80w"  sizes="auto, (max-width: 845px) 100vw, 845px" ></figure>



<p>Nachdem wir ein Bild hochgeladen und eine Frage gestellt haben, liefert uns das <strong>multimodale Modell</strong> die passende Antwort.</p>



<figure class="wp-block-image size-full"><img  loading="lazy"  decoding="async"  width="958"  height="576"  src="https://www.kimagazin.com/wp-content/uploads/2026/03/vision.png"  alt=""  class="wp-image-2345"  srcset="https://www.kimagazin.com/wp-content/uploads/2026/03/vision.png 958w, https://www.kimagazin.com/wp-content/uploads/2026/03/vision-300x180.png 300w, https://www.kimagazin.com/wp-content/uploads/2026/03/vision-768x462.png 768w, https://www.kimagazin.com/wp-content/uploads/2026/03/vision-380x228.png 380w, https://www.kimagazin.com/wp-content/uploads/2026/03/vision-550x331.png 550w, https://www.kimagazin.com/wp-content/uploads/2026/03/vision-800x481.png 800w, https://www.kimagazin.com/wp-content/uploads/2026/03/vision-80x48.png 80w"  sizes="auto, (max-width: 958px) 100vw, 958px" ></figure>



<h4 id="ollama-im-system-tray" class="wp-block-heading">Ollama im System-Tray</h4>



<p>Neben der Kommandozeile und dem GUI ist Ollama nach der Installation auch im <strong>System-Tray</strong> verfügbar (Taskleiste unten rechts in Windows).</p>



<figure class="wp-block-image size-full"><img  loading="lazy"  decoding="async"  width="248"  height="182"  src="https://www.kimagazin.com/wp-content/uploads/2026/03/ollama_systray.png"  alt=""  class="wp-image-2346"  srcset="https://www.kimagazin.com/wp-content/uploads/2026/03/ollama_systray.png 248w, https://www.kimagazin.com/wp-content/uploads/2026/03/ollama_systray-80x60.png 80w"  sizes="auto, (max-width: 248px) 100vw, 248px" ></figure>



<h4 id="einstellungen-in-ollama" class="wp-block-heading">Einstellungen in Ollama</h4>



<p>Über die <strong>Einstellungen</strong> in der Ollama-App lassen sich verschiedene Optionen anpassen.<br>Besonders interessant sind dabei:</p>



<ul class="wp-block-list">
<li><strong>Model Location</strong> → legt fest, in welchem Verzeichnis die Modelle gespeichert werden.</li>



<li><strong>Context Length</strong> → bestimmt die Länge des Kontextfensters.
<ul class="wp-block-list">
<li>Je größer das Kontextfenster, desto mehr Text (oder Bildinformationen) kann das Modell gleichzeitig berücksichtigen.</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a0.png" alt="⚠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Achtung: Ein größeres Kontextfenster benötigt auch mehr Grafikspeicher (VRAM).</li>
</ul>
</li>
</ul>



<h2 id="fazit" class="wp-block-heading">Fazit</h2>



<p>Lokale Foundation-Modelle sind längst kein Spielzeug mehr. Mit der richtigen Hardware und Runtime lassen sie sich heute effizient einsetzen – privat wie auch im Unternehmen. Sie bringen <strong>Datenschutz, Kontrolle und Kostenersparnis</strong>, erfordern aber auch technisches Know-how und klare Verantwortung.</p>
<ul class="shariff-buttons theme-round orientation-horizontal buttonsize-medium"><li class="shariff-button facebook shariff-nocustomcolor" style="background-color:#4273c8"><a href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.kimagazin.com%2Flokale-ki-modelle-multimodal%2F" title="Bei Facebook teilen" aria-label="Bei Facebook teilen" role="button" rel="nofollow" class="shariff-link" style="; background-color:#3b5998; color:#fff" target="_blank"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 32"><path fill="#3b5998" d="M17.1 0.2v4.7h-2.8q-1.5 0-2.1 0.6t-0.5 1.9v3.4h5.2l-0.7 5.3h-4.5v13.6h-5.5v-13.6h-4.5v-5.3h4.5v-3.9q0-3.3 1.9-5.2t5-1.8q2.6 0 4.1 0.2z"/></svg></span></a></li><li class="shariff-button twitter shariff-nocustomcolor" style="background-color:#595959"><a href="https://twitter.com/share?url=https%3A%2F%2Fwww.kimagazin.com%2Flokale-ki-modelle-multimodal%2F&text=KI%20lokal%20betreiben%3A%20Multimodale%20Sprach-%20und%20Bildmodelle%20auf%20eigener%20Hardware" title="Bei X teilen" aria-label="Bei X teilen" role="button" rel="noopener nofollow" class="shariff-link" style="; background-color:#000; color:#fff" target="_blank"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="#000" d="M14.258 10.152L23.176 0h-2.113l-7.747 8.813L7.133 0H0l9.352 13.328L0 23.973h2.113l8.176-9.309 6.531 9.309h7.133zm-2.895 3.293l-.949-1.328L2.875 1.56h3.246l6.086 8.523.945 1.328 7.91 11.078h-3.246zm0 0"/></svg></span></a></li><li class="shariff-button linkedin shariff-nocustomcolor" style="background-color:#1488bf"><a href="https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fwww.kimagazin.com%2Flokale-ki-modelle-multimodal%2F" title="Bei LinkedIn teilen" aria-label="Bei LinkedIn teilen" role="button" rel="noopener nofollow" class="shariff-link" style="; background-color:#0077b5; color:#fff" target="_blank"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 27 32"><path fill="#0077b5" d="M6.2 11.2v17.7h-5.9v-17.7h5.9zM6.6 5.7q0 1.3-0.9 2.2t-2.4 0.9h0q-1.5 0-2.4-0.9t-0.9-2.2 0.9-2.2 2.4-0.9 2.4 0.9 0.9 2.2zM27.4 18.7v10.1h-5.9v-9.5q0-1.9-0.7-2.9t-2.3-1.1q-1.1 0-1.9 0.6t-1.2 1.5q-0.2 0.5-0.2 1.4v9.9h-5.9q0-7.1 0-11.6t0-5.3l0-0.9h5.9v2.6h0q0.4-0.6 0.7-1t1-0.9 1.6-0.8 2-0.3q3 0 4.9 2t1.9 6z"/></svg></span></a></li><li class="shariff-button whatsapp shariff-nocustomcolor" style="background-color:#5cbe4a"><a href="https://api.whatsapp.com/send?text=https%3A%2F%2Fwww.kimagazin.com%2Flokale-ki-modelle-multimodal%2F%20KI%20lokal%20betreiben%3A%20Multimodale%20Sprach-%20und%20Bildmodelle%20auf%20eigener%20Hardware" title="Bei Whatsapp teilen" aria-label="Bei Whatsapp teilen" role="button" rel="noopener nofollow" class="shariff-link" style="; background-color:#34af23; color:#fff" target="_blank"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#34af23" d="M17.6 17.4q0.2 0 1.7 0.8t1.6 0.9q0 0.1 0 0.3 0 0.6-0.3 1.4-0.3 0.7-1.3 1.2t-1.8 0.5q-1 0-3.4-1.1-1.7-0.8-3-2.1t-2.6-3.3q-1.3-1.9-1.3-3.5v-0.1q0.1-1.6 1.3-2.8 0.4-0.4 0.9-0.4 0.1 0 0.3 0t0.3 0q0.3 0 0.5 0.1t0.3 0.5q0.1 0.4 0.6 1.6t0.4 1.3q0 0.4-0.6 1t-0.6 0.8q0 0.1 0.1 0.3 0.6 1.3 1.8 2.4 1 0.9 2.7 1.8 0.2 0.1 0.4 0.1 0.3 0 1-0.9t0.9-0.9zM14 26.9q2.3 0 4.3-0.9t3.6-2.4 2.4-3.6 0.9-4.3-0.9-4.3-2.4-3.6-3.6-2.4-4.3-0.9-4.3 0.9-3.6 2.4-2.4 3.6-0.9 4.3q0 3.6 2.1 6.6l-1.4 4.2 4.3-1.4q2.8 1.9 6.2 1.9zM14 2.2q2.7 0 5.2 1.1t4.3 2.9 2.9 4.3 1.1 5.2-1.1 5.2-2.9 4.3-4.3 2.9-5.2 1.1q-3.5 0-6.5-1.7l-7.4 2.4 2.4-7.2q-1.9-3.2-1.9-6.9 0-2.7 1.1-5.2t2.9-4.3 4.3-2.9 5.2-1.1z"/></svg></span></a></li><li class="shariff-button mailto shariff-nocustomcolor" style="background-color:#a8a8a8"><a href="mailto:?body=https%3A%2F%2Fwww.kimagazin.com%2Flokale-ki-modelle-multimodal%2F&subject=KI%20lokal%20betreiben%3A%20Multimodale%20Sprach-%20und%20Bildmodelle%20auf%20eigener%20Hardware" title="Per E-Mail versenden" aria-label="Per E-Mail versenden" role="button" rel="noopener nofollow" class="shariff-link" style="; background-color:#999; color:#fff"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#999" d="M32 12.7v14.2q0 1.2-0.8 2t-2 0.9h-26.3q-1.2 0-2-0.9t-0.8-2v-14.2q0.8 0.9 1.8 1.6 6.5 4.4 8.9 6.1 1 0.8 1.6 1.2t1.7 0.9 2 0.4h0.1q0.9 0 2-0.4t1.7-0.9 1.6-1.2q3-2.2 8.9-6.1 1-0.7 1.8-1.6zM32 7.4q0 1.4-0.9 2.7t-2.2 2.2q-6.7 4.7-8.4 5.8-0.2 0.1-0.7 0.5t-1 0.7-0.9 0.6-1.1 0.5-0.9 0.2h-0.1q-0.4 0-0.9-0.2t-1.1-0.5-0.9-0.6-1-0.7-0.7-0.5q-1.6-1.1-4.7-3.2t-3.6-2.6q-1.1-0.7-2.1-2t-1-2.5q0-1.4 0.7-2.3t2.1-0.9h26.3q1.2 0 2 0.8t0.9 2z"/></svg></span></a></li></ul></div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Der Tokenizer: Wie KI-Modelle Texte in Zahlen übersetzen</title>
		<link>https://www.kimagazin.com/tokenizer-erklaert/</link>
		
		<dc:creator><![CDATA[Oskar Kohler]]></dc:creator>
		<pubDate>Thu, 19 Mar 2026 21:33:26 +0000</pubDate>
				<category><![CDATA[Inside AI]]></category>
		<guid isPermaLink="false">https://www.kimagazin.com/?p=2555</guid>

					<description><![CDATA[Dies ist Teil 3 der Kursserie „ChatGPT &#38; Co verstehen: Wie große Sprachmodelle wirklich arbeiten – anschaulich &#38;&#8230;]]></description>
										<content:encoded><![CDATA[
<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Dies ist Teil 3 der Kursserie „ChatGPT &amp; Co verstehen: Wie große Sprachmodelle wirklich arbeiten – anschaulich &amp; interaktiv“.</p>
</blockquote>



<h2 id="wie-verarbeiten-computer-eigentlich-texte" class="wp-block-heading">Wie verarbeiten Computer eigentlich Texte?</h2>



<p>Genau genommen: <strong>Gar nicht!</strong><br>Computer sind pure Rechenmaschinen – sie verarbeiten intern <strong>ausschließlich Zahlen</strong>.<br>Mit natürlicher Sprache, wie wir sie sprechen oder schreiben, können sie <strong>absolut nichts anfangen</strong>.<br>Deshalb muss jeder Text zunächst in eine <strong>für den Computer verständliche Form</strong> übersetzt werden.</p>



<h3 id="ein-zeichen-eine-zahl-ascii-und-ansi" class="wp-block-heading">Ein Zeichen – eine Zahl: ASCII und ANSI</h3>



<p><strong>Jedes Zeichen</strong> (z. B. ein Buchstabe oder Satzzeichen) wird <strong>einer Zahl zugeordnet</strong> – typischerweise im Bereich von <strong>0 bis 127</strong> (für ASCII) oder bis <strong>255</strong> (für ANSI).</p>



<p>Diese Zahlen passen genau in <strong>ein Byte</strong> – die kleinste adressierbare Speichereinheit eines Computers.<br>Mit diesem Ansatz lassen sich <strong>alle englischen Buchstaben</strong>, Ziffern und einige Sonderzeichen abbilden.</p>



<div class="wp-block-merpress-mermaidjs diagram-source-mermaid"><pre class="mermaid">flowchart TD
classDef bigText font-size:1.0em;

A(["<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2328.png" alt="⌨" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Text-Eingabe"]):::bigText
B(["<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f522.png" alt="🔢" class="wp-smiley" style="height: 1em; max-height: 1em;" /> In Zahlen umwandeln"]):::bigText
C(["<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9ee.png" alt="🧮" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Computer verarbeitet Zahlen"]):::bigText
D(["<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f521.png" alt="🔡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Rückkonvertierung zu Zeichen"]):::bigText
E(["<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f5a5.png" alt="🖥" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Ausgabe am Bildschirm"]):::bigText

A --> B --> C --> D --> E</pre></div>



<div class="cnvs-block-alert cnvs-block-alert-1774902918336 is-style-cnvs-block-alert-info" >
	<div class="cnvs-block-alert-inner">
		

<p>Auszug der ASCII-Tabelle (American Standard Code for Information Interchange):</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>ID</th><th>Char</th><th>ID</th><th>Char</th><th>ID</th><th>Char</th><th>ID</th><th>Char</th></tr></thead><tbody><tr><td>32</td><td>␣</td><td>33</td><td>!</td><td>34</td><td>&#8222;</td><td>35</td><td>#</td></tr><tr><td>36</td><td>$</td><td>37</td><td>%</td><td>38</td><td>&amp;</td><td>39</td><td>&#8218;</td></tr><tr><td>40</td><td>(</td><td>41</td><td>)</td><td>42</td><td>*</td><td>43</td><td>+</td></tr><tr><td>48</td><td>0</td><td>49</td><td>1</td><td>50</td><td>2</td><td>51</td><td>3</td></tr><tr><td>65</td><td>A</td><td>66</td><td>B</td><td>67</td><td>C</td><td>68</td><td>D</td></tr><tr><td>97</td><td>a</td><td>98</td><td>b</td><td>99</td><td>c</td><td>100</td><td>d</td></tr></tbody></table></figure>

	</div>
	</div>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p></p>
</blockquote>



<p>Das funktioniert für amerikanisches Englisch perfekt. Doch diese einfache Codierung war <strong>auf den US-Markt beschränkt</strong> – für viele andere Sprachen reichte sie nicht aus.</p>



<h3 id="regionale-codepages" class="wp-block-heading">Regionale Codepages</h3>



<p>Außerhalb der USA gibt es viele Sprachen mit <strong>zusätzlichen Zeichen</strong>:<br>z. B. <strong>ä, ö, ü, ñ, ç, é</strong> – oder völlig andere Schriften wie <strong>Kyrillisch, Arabisch, Chinesisch</strong>.</p>



<p>Um dieses Problem zu lösen, wurden sogenannte <strong>Codepages</strong> eingeführt:</p>



<ul class="wp-block-list">
<li>Jedes Land oder Region hatte ihre <strong>eigene Zeichentabelle</strong></li>



<li>Die Zeichen ab <strong>Byte 128–255</strong> wurden je nach Codepage unterschiedlich belegt</li>
</ul>



<div class="cnvs-block-alert cnvs-block-alert-1774903246023 is-style-cnvs-block-alert-info" >
	<div class="cnvs-block-alert-inner">
		

<p>Beispiele für regionale Zeichencodierungen (Codepages):</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Codepage</th><th>Region / Sprache</th><th>Beispiel-Zeichen</th></tr></thead><tbody><tr><td><strong>ASCII</strong></td><td>USA / Englisch</td><td><code>A</code>, <code>B</code>, <code>!</code>, <code>@</code></td></tr><tr><td><strong>ISO-8859-1</strong></td><td>Westeuropa</td><td><code>é</code>, <code>ä</code>, <code>ö</code>, <code>ü</code></td></tr><tr><td><strong>Windows-1252</strong></td><td>Westeuropa (Microsoft)</td><td><code>€</code>, <code>‚</code>, <code>“</code>, <code>”</code></td></tr><tr><td><strong>ISO-8859-6</strong></td><td>Arabisch</td><td><code>ا</code>, <code>ب</code>, <code>ت</code></td></tr><tr><td><strong>ISO-8859-8</strong></td><td>Hebräisch</td><td><code>א</code>, <code>ב</code>, <code>ג</code></td></tr></tbody></table></figure>

	</div>
	</div>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p></p>
</blockquote>



<p>Das funktionierte lokal – aber beim <strong>Datenaustausch über Sprach- oder Landesgrenzen hinweg</strong> führte es zu <strong>Chaos</strong>:</p>



<ul class="wp-block-list">
<li>Texte wurden <strong>falsch dargestellt</strong></li>



<li>Ein Text konnte in einem Land lesbar sein, im anderen absolut unverständlich</li>
</ul>



<h3 id="unicode-ein-zeichensatz-fuer-die-ganze-welt" class="wp-block-heading">Unicode – ein Zeichensatz für die ganze Welt</h3>



<p>Um dieses Problem dauerhaft zu lösen, gründeten mehrere Tech-Unternehmen das <strong>Unicode Consortium</strong>.</p>



<p><strong>Ziel:</strong></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Ein gemeinsamer Standard, der <strong>alle Zeichen aller Sprachen der Welt</strong> eindeutig codieren kann.</p>
</blockquote>



<p>Der <strong>Unicode-Standard</strong> wurde geboren – und mit ihm konnten nun auch:</p>



<ul class="wp-block-list">
<li><strong>Chinesische Schriftzeichen</strong></li>



<li><strong>Kyrillisch, Arabisch</strong></li>



<li><strong>Mathematische Symbole</strong></li>



<li><strong>Emojis <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f604.png" alt="😄" class="wp-smiley" style="height: 1em; max-height: 1em;" /></strong></li>



<li>&#8230; und viele weitere Zeichenarten verarbeitet werden</li>
</ul>



<p>Unicode verwendet <strong>1 bis 4 Bytes pro Zeichen</strong>, je nach Codierung (z. B. UTF-8, UTF-16, UTF-32).<br><strong>UTF-8</strong> ist heute der häufigste verwendete Zeichensatz, da er alle Unicode-Zeichen variabel mit 1 bis 4 Bytes kodiert, platzsparend ist und vollständig mit ASCII kompatibel bleibt.</p>



<p>Damit war endlich möglich:</p>



<ul class="wp-block-list">
<li><strong>Sprachübergreifender Textaustausch</strong></li>



<li>Einheitliche Darstellung auf allen Geräten</li>



<li>Kein Chaos mit Codepages</li>
</ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><strong>Aber Achtung:</strong> Nicht alle Texte werden im Unicode-Format gespeichert – der Ärger ist also noch nicht ganz ausgestanden &#8230;</p>
</blockquote>



<h2 id="maschinelles-textverstaendnis-weit-mehr-als-nur-worte" class="wp-block-heading">Maschinelles Textverständnis: Weit mehr als nur Worte</h2>



<p>Das sinnvolle Erfassen von Texten ist für Computer eine enorme Herausforderung. Was für uns Menschen selbstverständlich ist, stellt Computer vor riesige Probleme.<br>Mit traditionellen Programmiertechniken ließ sich dieses Problem nicht lösen.</p>



<p>Frühere Ansätze versuchten, Texte mithilfe einfacher Algorithmen zu analysieren – etwa um E-Mails als Spam zu erkennen.</p>



<ol class="wp-block-list">
<li><strong>Mustererkennung:</strong> Programme suchten im Text nach typischen Wortmustern oder Phrasen, die auf Spam hindeuten.</li>



<li><strong>Bag-of-Words-Modell (BoW):</strong> Der Text wurde in einzelne Wörter zerlegt und diese gezählt.<br>Begriffe wie „kostenlos“ oder „gewinnen“ waren statistisch häufiger in Spamnachrichten zu finden.</li>
</ol>



<p>Diese Algorithmen lieferten teilweise erstaunlich gute Ergebnisse – <strong>aber mit wirklichem Textverständnis hatten sie nichts zu tun.</strong></p>



<h3 id="transformer-der-durchbruch" class="wp-block-heading">Transformer: Der Durchbruch</h3>



<p>Erst durch neuronale Netzwerke – und insbesondere durch die Einführung von <strong>Transformer-Modellen</strong> – wurde es möglich, Sprache mit <strong>Kontext und Bedeutung</strong> zu erfassen. Damit begann eine neue Ära im maschinellen Sprachverständnis.</p>



<p>LLMs (Large Language Models) schaffen es mithilfe genialer Techniken, die Bedeutung einzelner Wörter – genauer gesagt: <strong>Tokens</strong> – zueinander in Beziehung zu setzen.<br>Dadurch können sie Texte nicht nur lesen, sondern auch <strong>semantisch verstehen</strong>.</p>



<p>Doch auch bei LLMs beginnt alles mit einem essentiellen Schritt:<br>Der Text muss zunächst in eine <strong>für den Computer verständliche Form</strong> umgewandelt werden – sprich: in <strong>Zahlen</strong>.</p>



<p>Dazu wird die Eingabe in kleine Einheiten zerlegt – sogenannte <strong>Tokens</strong>.</p>



<h2 id="textbruchstuecke-tokens" class="wp-block-heading">Textbruchstücke – Tokens</h2>



<p><strong>Tokens</strong> sind die grundlegenden Bausteine eines Texts.<br>Sie können ganze Wörter sein, Wortbestandteile oder auch einzelne Zeichen.<br>Jedem Token wird eine eindeutige <strong>numerische ID</strong> zugewiesen – über das sogenannte <strong>Vokabular</strong>, eine Tabelle aller bekannten Tokens.<br>Diese IDs sind die Grundlage für die Rechenoperationen im Sprachmodell.</p>



<h3 id="ausschnitt-aus-dem-vokabular" class="wp-block-heading">Ausschnitt aus dem Vokabular</h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Token</th><th>ID</th><th>Beschreibung</th></tr></thead><tbody><tr><td>the</td><td>464</td><td>häufigstes englisches Wort</td></tr><tr><td>hello</td><td>7592</td><td>ganzes Wort</td></tr><tr><td>Grüß</td><td>29213</td><td>Subwort (z. B. in „Grüße“)</td></tr><tr><td>e</td><td>68</td><td>einzelner Buchstabe</td></tr><tr><td>!</td><td>0</td><td>Satzzeichen</td></tr></tbody></table></figure>



<div class="cnvs-block-alert cnvs-block-alert-1774903397610 is-style-cnvs-block-alert-info" >
	<div class="cnvs-block-alert-inner">
		

<p>GPT-Modelle verwenden <strong>ca. 50.000 Tokens</strong> in ihrem Vokabular (z. B. GPT-3: 50.257 Tokens).</p>

	</div>
	</div>



<h3 id="wie-wurde-dieses-vokabular-erstellt" class="wp-block-heading">Wie wurde dieses Vokabular erstellt?</h3>



<p>Bevor ein Sprachmodell wie GPT trainiert wird, analysieren spezielle Algorithmen <strong>Milliarden von Texten</strong>, um die <strong>häufigsten Zeichenfolgen</strong> zu identifizieren.<br>Diese Zeichenfolgen – ganze Wörter, Wortbestandteile oder einzelne Zeichen – bilden die Grundlage für das sogenannte <strong>Vokabular</strong>, also die Token-Tabelle.</p>



<p>Das Verfahren dahinter nennt sich <strong>Byte Pair Encoding (BPE)</strong>.<br>Ziel ist es, wiederkehrende Textmuster zu finden, die sich effizient als Token darstellen lassen.<br>Erst auf Basis dieser Tokens kann das Sprachmodell lernen, mit Text zu rechnen und Bedeutung abzuleiten.</p>



<h3 id="llms-wie-chatgpt-sind-wahre-sprachgenies-sie-verstehen-ueber-90-sprachen" class="wp-block-heading">LLMs wie ChatGpt sind wahre Sprachgenies – sie verstehen über 90 Sprachen</h3>



<p>Dabei werden nicht nur Wörter aus einer Sprache berücksichtigt.<br>Modelle wie <strong>ChatGpt</strong> sind <strong>multilingual</strong> – sie wurden mit Texten in <strong>über 90 Sprachen</strong> trainiert.</p>



<p>Dementsprechend enthält das Vokabular Tokens aus vielen verschiedenen Sprachräumen, zum Beispiel:</p>



<ul class="wp-block-list">
<li><strong>Englisch</strong></li>



<li><strong>Deutsch</strong></li>



<li><strong>Chinesisch</strong></li>



<li><strong>Arabisch</strong><br>&#8230; und viele mehr.</li>
</ul>



<p>So kann das Modell nicht nur Text in verschiedenen Sprachen erkennen – es kann ihn auch <strong>verstehen, analysieren und weiterverarbeiten</strong>.</p>



<h2 id="der-tokenizer" class="wp-block-heading">Der Tokenizer</h2>



<p>Der <strong>Tokenizer</strong> ist die Komponente, die einen Text in kleinere Einheiten – sogenannte <strong>Tokens</strong> – zerlegt.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p><strong>GPT-Tokenizer Live-Demo!</strong></p>



<p>Probier’s einfach aus – gib deinen Text ein und sieh live, wie GPT ihn in Tokens zerlegt!</p>


<div>
<input id=inputText placeholder="z B. Hello from Bregenz &#x1f60a;">
<div id=output></div>
<div id=warning></div>
</div>
<style>.token-box{display:inline-block;margin:2px;padding:4px 6px;border-radius:4px;background:#e0e7ff}.token-id{font-size:.7em;color:#444;text-align:center}input{padding:.5em;font-size:1em;margin-top:1em;width:100%;max-width:600px}#output{margin-top:1.5em}#warning{color:#8b0000;font-weight:700}</style>
<script>if(!window.gpt2TokenizerLoaded){window.gpt2TokenizerLoaded=!0;let e={},t=[],n=new Map,o=new Map,s=new Map;async function loadResources(){const[c,i]=await Promise.all([fetch("/wp-content/uploads/kimagazin-html/vocab.json").then((e=>e.json())),fetch("/wp-content/uploads/kimagazin-html/merges.txt").then((e=>e.text()))]);e=c,t=i.trim().split("\n").slice(1).map((e=>e.split(" "))),t.forEach(((e,t)=>n.set(e.join(" "),t))),Object.entries(e).forEach((([e,t])=>o.set(e,t))),Object.entries(e).forEach((([e,t])=>s.set(t,e)))}function bytesToUnicode(){const e=[];for(let t=33;t<=126;t++)e.push(t);for(let t=161;t<=172;t++)e.push(t);for(let t=174;t<=255;t++)e.push(t);const t=e.slice();let n=0;for(let o=0;o<256;o++)e.includes(o)||(e.push(o),t.push(256+n),n++);const o={},s={};for(let n=0;n<e.length;n++){const c=String.fromCharCode(t[n]);o[e[n]]=c,s[c]=e[n]}return{byteToUnicode:o,unicodeToByte:s}}const{byteToUnicode:c,unicodeToByte:i}=bytesToUnicode(),r=c,d=i;function getPairs(e){const t=new Set;for(let n=0;n<e.length-1;n++)t.add(e[n]+" "+e[n+1]);return t}function bpe(e){if(e.length<=1)return[e];let t=e.split(""),o=getPairs(t);for(;;){let e=null,s=1/0;for(let t of o){const o=n.get(t);void 0!==o&&o<s&&(s=o,e=t)}if(!e)break;const[c,i]=e.split(" "),r=[];let d=0;for(;d<t.length;){const e=t.indexOf(c,d);-1!==e&&t[e+1]===i?(r.push(...t.slice(d,e),c+i),d=e+2):(r.push(t[d]),d++)}if(t=r,1===t.length)break;o=getPairs(t)}return t}function decodeToken(e){const t=[...e].map((e=>d[e]));return new TextDecoder("utf-8").decode(new Uint8Array(t))}async function tokenizeGPT2(){o.size||await loadResources();const e=document.getElementById("inputText").value,t=(new TextEncoder).encode(e),n=Array.from(t).map((e=>r[e])).join("");let s=[];for(let e of n.match(/\S+|\s+/g)||[])s.push(...bpe(e));const c=s.map((e=>o.get(e))).filter((e=>void 0!==e)),i=document.getElementById("output"),d=document.getElementById("warning");i.innerHTML="",d.textContent="",c.length>100?d.textContent=`&#x26a0; Too much: ${c.length} Tokens (max. 100 allowed)`:s.forEach((e=>{const t=o.get(e),n=decodeToken(e),s=document.createElement("span");s.className="token-box",s.innerHTML=`<div>${n.replace(/ /g,"&nbsp;")}</div><div class='token-id'>#${t}</div>`,i.appendChild(s)}))}loadResources(),document.addEventListener("DOMContentLoaded",(()=>{document.getElementById("inputText")?.addEventListener("input",tokenizeGPT2)}))}</script>



<p><small>(GPT-3 verwendet denselben Tokenizer wie GPT-2 – auf Byte Pair Encoding (BPE) basierend.)</small></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>Dieser Prozess läuft in 4 Schritten ab:</p>



<div class="wp-block-merpress-mermaidjs diagram-source-mermaid"><pre class="mermaid">flowchart TD
classDef step fill:#eef,stroke:#888,stroke-width:1px,rx:10,ry:10,font-size:1em;

A[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9ee.png" alt="🧮" class="wp-smiley" style="height: 1em; max-height: 1em;" /> UTF-8-Encoding]:::step
B[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f524.png" alt="🔤" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Byte-to-Unicode-Mapping]:::step
C[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f517.png" alt="🔗" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Byte Pair Encoding]:::step

subgraph LEXP [Token-ID-Zuordnung]
direction LR
D[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4d8.png" alt="📘" class="wp-smiley" style="height: 1em; max-height: 1em;" />Vokabular]:::step --> E[<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9fe.png" alt="🧾" class="wp-smiley" style="height: 1em; max-height: 1em;" />„hello“ → 7592]:::step
end
A --> B --> C --> LEXP</pre></div>



<ol class="wp-block-list">
<li><strong>UTF-8-Encoding</strong><br>Der Text wird zunächst in <strong>Bytes</strong> umgewandelt – also Zahlen zwischen 0 und 255.</li>



<li><strong>Byte-to-Unicode-Mapping</strong><br>Nicht alle Bytewerte entsprechen direkt sichtbaren Zeichen (z. B. Steuerzeichen). GPT-3 verwendet deshalb den sogenannten <strong>&#8222;Byte-to-Unicode-Trick&#8220;</strong>, um <strong>jeden Bytewert eindeutig in ein darstellbares Unicode-Zeichen</strong> zu konvertieren. So können alle Zeichen sicher verarbeitet werden.</li>



<li><strong>Byte Pair Encoding (BPE)</strong><br>Anschließend wird die Zeichenfolge mithilfe von <strong>Byte Pair Encoding</strong> in Tokens zerlegt.<br>Häufig vorkommende Zeichen- oder Wortteile werden gemäß einer <strong>Merge-Tabelle</strong> zu größeren Einheiten zusammengeführt.<br>Beispiel: <code>t</code> + <code>h</code> → <code>th</code></li>



<li><strong>Token-ID-Zuordnung</strong><br>Die gefundenen Tokens werden nun im <strong>Vokabular</strong> nachgeschlagen.<br>Jeder Token hat dort eine eindeutige <strong>numerische ID</strong>, mit der das Modell arbeiten kann.</li>
</ol>



<p>Am Ende dieses Prozesses entsteht eine Liste von <strong>Token-IDs</strong> – also eine Zahlenfolge, die das Sprachmodell als Eingabe verarbeitet.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Hallo</th><th>,</th><th>mein</th><th>Name</th><th>ist</th><th>Chat</th><th>GPT</th><th>.</th></tr></thead><tbody><tr><td>15496</td><td>11</td><td>616</td><td>1438</td><td>318</td><td>707</td><td>1001</td><td>13</td></tr></tbody></table></figure>



<p>Ein interessanter Aspekt ist das sogenannte <strong>„greedy Verhalten“</strong>:<br>Der Tokenizer wählt stets das <strong>längst mögliche passende Token</strong> aus dem Vokabular.</p>



<p>Trotzdem wird ein vorhandenes Token wie <strong>„grüße“</strong> nicht immer als solches verwendet.<br>Warum?</p>



<ul class="wp-block-list">
<li>Es kommt auf <strong>exakte Übereinstimmung</strong> an (Groß-/Kleinschreibung, Kodierung).</li>



<li>Wird kein exakter Treffer gefunden, wird das Wort in <strong>Subtokens aufgeteilt</strong> – z. B. <code>Grüß</code> + <code>e</code> oder <code>gr</code> + <code>ü</code> + <code>ße</code>.</li>
</ul>



<h3 id="tiktoken-die-etwas-modernere-variante" class="wp-block-heading">Tiktoken – die etwas modernere Variante</h3>



<p>Neuere Modelle wie <strong>GPT-4</strong> verwenden nicht mehr den ursprünglichen GPT-2/3-Tokenizer, sondern eine leicht optimierte Variante namens <strong>Tiktoken</strong>. Tiktoken basiert weiterhin auf <strong>Byte Pair Encoding (BPE)</strong>, wurde aber intern so optimiert, dass er schneller, Unicode-sicherer und robuster bei mehrsprachiger Eingabe ist.</p>



<ul class="shariff-buttons theme-round orientation-horizontal buttonsize-medium"><li class="shariff-button facebook shariff-nocustomcolor" style="background-color:#4273c8"><a href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.kimagazin.com%2Ftokenizer-erklaert%2F" title="Bei Facebook teilen" aria-label="Bei Facebook teilen" role="button" rel="nofollow" class="shariff-link" style="; background-color:#3b5998; color:#fff" target="_blank"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 32"><path fill="#3b5998" d="M17.1 0.2v4.7h-2.8q-1.5 0-2.1 0.6t-0.5 1.9v3.4h5.2l-0.7 5.3h-4.5v13.6h-5.5v-13.6h-4.5v-5.3h4.5v-3.9q0-3.3 1.9-5.2t5-1.8q2.6 0 4.1 0.2z"/></svg></span></a></li><li class="shariff-button twitter shariff-nocustomcolor" style="background-color:#595959"><a href="https://twitter.com/share?url=https%3A%2F%2Fwww.kimagazin.com%2Ftokenizer-erklaert%2F&text=Der%20Tokenizer%3A%20Wie%20KI-Modelle%20Texte%20in%20Zahlen%20%C3%BCbersetzen" title="Bei X teilen" aria-label="Bei X teilen" role="button" rel="noopener nofollow" class="shariff-link" style="; background-color:#000; color:#fff" target="_blank"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="#000" d="M14.258 10.152L23.176 0h-2.113l-7.747 8.813L7.133 0H0l9.352 13.328L0 23.973h2.113l8.176-9.309 6.531 9.309h7.133zm-2.895 3.293l-.949-1.328L2.875 1.56h3.246l6.086 8.523.945 1.328 7.91 11.078h-3.246zm0 0"/></svg></span></a></li><li class="shariff-button linkedin shariff-nocustomcolor" style="background-color:#1488bf"><a href="https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fwww.kimagazin.com%2Ftokenizer-erklaert%2F" title="Bei LinkedIn teilen" aria-label="Bei LinkedIn teilen" role="button" rel="noopener nofollow" class="shariff-link" style="; background-color:#0077b5; color:#fff" target="_blank"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 27 32"><path fill="#0077b5" d="M6.2 11.2v17.7h-5.9v-17.7h5.9zM6.6 5.7q0 1.3-0.9 2.2t-2.4 0.9h0q-1.5 0-2.4-0.9t-0.9-2.2 0.9-2.2 2.4-0.9 2.4 0.9 0.9 2.2zM27.4 18.7v10.1h-5.9v-9.5q0-1.9-0.7-2.9t-2.3-1.1q-1.1 0-1.9 0.6t-1.2 1.5q-0.2 0.5-0.2 1.4v9.9h-5.9q0-7.1 0-11.6t0-5.3l0-0.9h5.9v2.6h0q0.4-0.6 0.7-1t1-0.9 1.6-0.8 2-0.3q3 0 4.9 2t1.9 6z"/></svg></span></a></li><li class="shariff-button whatsapp shariff-nocustomcolor" style="background-color:#5cbe4a"><a href="https://api.whatsapp.com/send?text=https%3A%2F%2Fwww.kimagazin.com%2Ftokenizer-erklaert%2F%20Der%20Tokenizer%3A%20Wie%20KI-Modelle%20Texte%20in%20Zahlen%20%C3%BCbersetzen" title="Bei Whatsapp teilen" aria-label="Bei Whatsapp teilen" role="button" rel="noopener nofollow" class="shariff-link" style="; background-color:#34af23; color:#fff" target="_blank"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#34af23" d="M17.6 17.4q0.2 0 1.7 0.8t1.6 0.9q0 0.1 0 0.3 0 0.6-0.3 1.4-0.3 0.7-1.3 1.2t-1.8 0.5q-1 0-3.4-1.1-1.7-0.8-3-2.1t-2.6-3.3q-1.3-1.9-1.3-3.5v-0.1q0.1-1.6 1.3-2.8 0.4-0.4 0.9-0.4 0.1 0 0.3 0t0.3 0q0.3 0 0.5 0.1t0.3 0.5q0.1 0.4 0.6 1.6t0.4 1.3q0 0.4-0.6 1t-0.6 0.8q0 0.1 0.1 0.3 0.6 1.3 1.8 2.4 1 0.9 2.7 1.8 0.2 0.1 0.4 0.1 0.3 0 1-0.9t0.9-0.9zM14 26.9q2.3 0 4.3-0.9t3.6-2.4 2.4-3.6 0.9-4.3-0.9-4.3-2.4-3.6-3.6-2.4-4.3-0.9-4.3 0.9-3.6 2.4-2.4 3.6-0.9 4.3q0 3.6 2.1 6.6l-1.4 4.2 4.3-1.4q2.8 1.9 6.2 1.9zM14 2.2q2.7 0 5.2 1.1t4.3 2.9 2.9 4.3 1.1 5.2-1.1 5.2-2.9 4.3-4.3 2.9-5.2 1.1q-3.5 0-6.5-1.7l-7.4 2.4 2.4-7.2q-1.9-3.2-1.9-6.9 0-2.7 1.1-5.2t2.9-4.3 4.3-2.9 5.2-1.1z"/></svg></span></a></li><li class="shariff-button mailto shariff-nocustomcolor" style="background-color:#a8a8a8"><a href="mailto:?body=https%3A%2F%2Fwww.kimagazin.com%2Ftokenizer-erklaert%2F&subject=Der%20Tokenizer%3A%20Wie%20KI-Modelle%20Texte%20in%20Zahlen%20%C3%BCbersetzen" title="Per E-Mail versenden" aria-label="Per E-Mail versenden" role="button" rel="noopener nofollow" class="shariff-link" style="; background-color:#999; color:#fff"><span class="shariff-icon" style=""><svg width="32px" height="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#999" d="M32 12.7v14.2q0 1.2-0.8 2t-2 0.9h-26.3q-1.2 0-2-0.9t-0.8-2v-14.2q0.8 0.9 1.8 1.6 6.5 4.4 8.9 6.1 1 0.8 1.6 1.2t1.7 0.9 2 0.4h0.1q0.9 0 2-0.4t1.7-0.9 1.6-1.2q3-2.2 8.9-6.1 1-0.7 1.8-1.6zM32 7.4q0 1.4-0.9 2.7t-2.2 2.2q-6.7 4.7-8.4 5.8-0.2 0.1-0.7 0.5t-1 0.7-0.9 0.6-1.1 0.5-0.9 0.2h-0.1q-0.4 0-0.9-0.2t-1.1-0.5-0.9-0.6-1-0.7-0.7-0.5q-1.6-1.1-4.7-3.2t-3.6-2.6q-1.1-0.7-2.1-2t-1-2.5q0-1.4 0.7-2.3t2.1-0.9h26.3q1.2 0 2 0.8t0.9 2z"/></svg></span></a></li></ul></div>]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
