Künstliche Intelligenz ist heutzutage allgegenwärtig, und Sprachmodelle spielen dabei eine große Rolle. Als ChatGPT eingeführt wurde, haben Sie sich vielleicht gefragt, wie die KI das nächste Wort in einem Satz vorhersagen oder sogar ganze Absätze schreiben konnte. In diesem Tutorial erstellen wir ein supereinfaches Sprachmodell, ohne auf ausgefallene Frameworks wie TensorFlow oder PyTorch angewiesen zu sein – einfach nur Python und NumPy.
Bevor ich mit dem Tutorial beginne, möchte ich erklären, was ein großes Sprachmodell (LLM) ist.
In diesem Tutorial erstellen wir eine viel einfachere Version davon – ein Bigramm-Modell – um
Klingt cool? Fangen wir an!?
Wir erstellen ein Bigramm-Modell, das Ihnen eine grundlegende Vorstellung davon vermittelt, wie Sprachmodelle funktionieren. Es sagt das nächste Wort in einem Satz basierend auf dem aktuellen Wort voraus. Wir halten es einfach und leicht verständlich, damit Sie lernen, wie die Dinge funktionieren, ohne sich zu sehr in Details zu vertiefen.??
Bevor wir beginnen, stellen wir sicher, dass Sie Python und NumPy einsatzbereit haben. Wenn Sie NumPy nicht installiert haben, installieren Sie es schnell mit:
pip install numpy
Ein Sprachmodell sagt das nächste Wort in einem Satz voraus. Wir halten die Dinge einfach und erstellen ein Bigram-Modell. Das bedeutet lediglich, dass unser Modell das nächste Wort nur anhand des aktuellen Wortes vorhersagen wird.
Wir beginnen mit einem kurzen Text, um das Modell zu trainieren. Hier ist ein kleines Beispiel, das wir verwenden werden:
import numpy as np # Sample dataset: A small text corpus corpus = """Artificial Intelligence is the new electricity. Machine learning is the future of AI. AI is transforming industries and shaping the future."""
Das Wichtigste zuerst: Wir müssen diesen Text in einzelne Wörter aufteilen und ein Vokabular erstellen (im Grunde eine Liste aller eindeutigen Wörter). Das gibt uns etwas, mit dem wir arbeiten können.
# Tokenize the corpus into words words = corpus.lower().split() # Create a vocabulary of unique words vocab = list(set(words)) vocab_size = len(vocab) print(f"Vocabulary: {vocab}") print(f"Vocabulary size: {vocab_size}")
Hier wandeln wir den Text in Kleinbuchstaben um und teilen ihn in Wörter auf. Danach erstellen wir eine Liste einzigartiger Wörter, die als unser Vokabular dienen.
Computer arbeiten mit Zahlen, nicht mit Wörtern. Also ordnen wir jedes Wort einem Index zu und erstellen auch eine umgekehrte Zuordnung (dies hilft, wenn wir sie später wieder in Wörter umwandeln).
word_to_idx = {word: idx for idx, word in enumerate(vocab)} idx_to_word = {idx: word for word, idx in word_to_idx.items()} # Convert the words in the corpus to indices corpus_indices = [word_to_idx[word] for word in words]
Im Grunde wandeln wir Wörter nur in Zahlen um, die unser Modell verstehen kann. Jedes Wort erhält eine eigene Nummer, zum Beispiel könnte „AI“ je nach Reihenfolge zu 0 und „Lernen“ zu 1 werden.
Kommen wir nun zum Kern der Sache: dem Aufbau des Bigram-Modells. Wir wollen die Wahrscheinlichkeit ermitteln, dass ein Wort auf das andere folgt. Dazu zählen wir, wie oft jedes Wortpaar (Bigramm) in unserem Datensatz vorkommt.
pip install numpy
Hier ist, was passiert:
Wir zählen, wie oft jedes Wort auf ein anderes folgt (das ist das Bigram).
Dann wandeln wir diese Zählungen in Wahrscheinlichkeiten um, indem wir sie normalisieren.
Vereinfacht ausgedrückt bedeutet dies, dass die Wahrscheinlichkeit für dieses Paar höher ist, wenn auf „AI“ häufig ein „ist“ folgt.
Jetzt testen wir unser Modell, indem wir es das nächste Wort basierend auf einem bestimmten Wort vorhersagen lassen. Wir tun dies, indem wir Stichproben aus der Wahrscheinlichkeitsverteilung des nächsten Wortes ziehen.
import numpy as np # Sample dataset: A small text corpus corpus = """Artificial Intelligence is the new electricity. Machine learning is the future of AI. AI is transforming industries and shaping the future."""
Diese Funktion nimmt ein Wort, sucht nach seinen Wahrscheinlichkeiten und wählt basierend auf diesen Wahrscheinlichkeiten zufällig das nächste Wort aus. Wenn Sie „KI“ übergeben, könnte das Modell als nächstes Wort etwas wie „ist“ vorhersagen.
Lassen Sie uns zum Schluss einen ganzen Satz generieren! Wir beginnen mit einem Wort und sagen das nächste Wort ein paar Mal voraus.
# Tokenize the corpus into words words = corpus.lower().split() # Create a vocabulary of unique words vocab = list(set(words)) vocab_size = len(vocab) print(f"Vocabulary: {vocab}") print(f"Vocabulary size: {vocab_size}")
Diese Funktion nimmt ein erstes Wort und sagt das nächste voraus, verwendet dann dieses Wort, um das folgende vorherzusagen, und so weiter. Bevor Sie es wissen, haben Sie einen vollständigen Satz!
Da haben Sie es – ein einfaches Bigramm-Sprachmodell, das von Grund auf nur mit Python und NumPy erstellt wurde. Wir haben keine ausgefallenen Bibliotheken verwendet und Sie haben jetzt ein grundlegendes Verständnis dafür, wie KI Text vorhersagen kann. Sie können mit diesem Code herumspielen, ihn mit anderem Text füttern oder ihn sogar durch die Verwendung fortgeschrittenerer Modelle erweitern.
Probieren Sie es aus und lassen Sie mich wissen, wie es läuft. Viel Spaß beim Codieren!
Das obige ist der detaillierte Inhalt vonErstellen Sie Ihr eigenes Sprachmodell: Eine einfache Anleitung mit Python und NumPy. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!