Diese Lektion wurde automatisch ins Deutsche übersetzt und noch nicht von einem Menschen geprüft. Falls etwas seltsam klingt, gilt die englische Fassung.
Jedes KI-System muss Daten speichern und abrufen – und zwar schnell. Ob es sich um eine Liste von Pixelwerten in einem Bild, einen Wortschatz von 50.000 Wörtern oder Millionen von Benutzerpräferenzen handelt, die Wahl der Datenstruktur bestimmt, wie schnell Ihre KI denken kann.
Es dominieren zwei Strukturen: Arrays und Hash-Maps. Wenn Sie diese beherrschen, haben Sie die Grundlage für nahezu jede KI-Pipeline.
Ein Array ist einfach eine nummerierte Liste von Elementen, die nebeneinander im Speicher gespeichert sind. Jedes Element hat einen Index – seine Position in der Liste, beginnend bei Null.
index: 0 1 2 3 4
value: ["cat", "dog", "bird", "fish", "frog"]
Da die Gegenstände nebeneinander liegen, können Sie direkt zu jeder Position springen. Möchten Sie Punkt 3? Fertig – keine Suche erforderlich. Das ist O(1)-Zugriff, was bedeutet, dass es die gleiche Zeit dauert, egal ob das Array 10 Elemente oder 10 Millionen enthält.
Das Einfügen oder Entfernen von Gegenständen in der Mitte ist teuer. Jedes Element nach der Änderung muss mitgemischt werden. Das ist O(n) – je mehr Elemente, desto länger dauert es.
Wenn Sie eine Playlist mit 10.000 Songs hätten und an Position 5 einen neuen Titel einfügen möchten, müsste jeder Song ab Position 5 verschoben werden. Wie könnte ein Streaming-Dienst damit umgehen, ohne langsamer zu werden?
Eine Hash-Map (auch Wörterbuch oder Hash-Tabelle genannt) speichert Daten als Schlüssel-Wert-Paare. Anstatt auf Elemente über die Indexnummer zuzugreifen, greifen Sie auf sie über einen aussagekräftigen Schlüssel zu.
Anmelden um an der Diskussion teilzunehmen
word_counts = {
"hello": 42,
"world": 37,
"AI": 156
}
Benötigen Sie die Zählung für „KI“? Die Hash-Map verwendet eine Hash-Funktion, um den Schlüssel im Hintergrund in einen Index umzuwandeln. Das Ergebnis? O(1) durchschnittliche Suchzeit – genau wie Arrays, aber mit Namen anstelle von Zahlen.
Pythons Wörterbücher sind Hash-Maps. Wenn ChatGPT während des Trainings Worthäufigkeiten zählt, verwendet es Hash-Map-ähnliche Strukturen, um Milliarden von Wortvorkommen im gesamten Text des Internets zu verfolgen.
| Betrieb | Array | Hash-Karte | |-----------|-------|----------| | Zugriff per Index | O(1) ⚡ | N/A | | Zugriff per Schlüssel | O(n) 🐢 | O(1) ⚡ | | Am Ende einfügen | O(1) ⚡ | O(1) ⚡ | | In der Mitte einsetzen | O(n) 🐢 | N/A | | Suche nach Wert | O(n) 🐢 | O(1) ⚡ |
Stellen Sie sich O(1) als „sofort, unabhängig von der Größe“ und O(n) als „langsamer, je größer die Daten“ vor.
Sie haben 100.000 Benutzerprofile und müssen einen Benutzer anhand seines Benutzernamens finden. Welche Struktur ist am schnellsten?
Eines der nützlichsten Muster sowohl bei Interviews als auch bei KI ist das Zählen von Ereignissen. Hier ist die Idee im Pseudocode:
counts = {}
for each word in text:
if word in counts:
counts[word] = counts[word] + 1
else:
counts[word] = 1
Dieser einzelne Durchgang durch den Text liefert Ihnen die Häufigkeit jedes Wortes. Sprachmodelle nutzen genau diesen Ansatz (in großem Maßstab), um zu verstehen, welche Wörter am wichtigsten sind.
Finden Sie anhand einer Reihe von Zahlen und eines Ziels zwei Zahlen, die sich zum Ziel addieren. Der naive Ansatz prüft jedes Paar – O(n²). Der clevere Ansatz nutzt eine Hash-Map:
seen = {}
for each number in array:
complement = target - number
if complement in seen:
return [seen[complement], current_index]
seen[number] = current_index
Ein Durchgang, O(n) Zeit. Die Hash-Map merkt sich, was Sie bereits gesehen haben.
Warum ist der Hash-Map-Ansatz für Zweisummen schneller als die Überprüfung jedes Paares?
Eine Empfehlungsmaschine muss prüfen, ob ein Nutzer einen Film bereits gesehen hat, bevor er ihn vorschlägt. Würden Sie den Wiedergabeverlauf des Benutzers in einem Array oder einer Hash-Map speichern? Welche Kompromisse fallen Ihnen ein?
Ein KI-Modell speichert Worteinbettungen als Arrays mit jeweils 300 Zahlen. Warum sind Arrays hier eine gute Wahl?
Du kennst jetzt die beiden Arbeitspferde der KI-Datenverarbeitung. Als Nächstes sehen wir in Strings und Textverarbeitung, wie KI rohen Text in etwas verwandelt, das ein Modell tatsächlich lesen kann. Das ist der erste Schritt hinter jedem Chatbot und jedem Suchfeld, das du nutzt.