L'intelligence artificielle est partout de nos jours, et les modèles de langage en sont une grande partie. Lorsque ChatGPT a été introduit, vous vous êtes peut-être demandé comment l'IA pouvait prédire le mot suivant dans une phrase ou même écrire des paragraphes entiers. Dans ce didacticiel, nous allons créer un modèle de langage très simple sans recourir à des frameworks sophistiqués comme TensorFlow ou PyTorch, tout simplement Python et NumPy.
Avant de commencer le didacticiel, laissez-moi vous expliquer ce qu'est un grand modèle de langage (LLM).
Dans ce tutoriel, nous créons une version beaucoup plus simple de ceci, un modèle bigramme, pour
Ça a l'air cool ? Commençons !?
Nous allons créer un modèle bigramme, qui vous donnera une idée de base du fonctionnement des modèles de langage. Il prédit le mot suivant dans une phrase en fonction du mot actuel. Nous allons le garder simple et facile à suivre afin que vous appreniez comment les choses fonctionnent sans vous plonger dans trop de détails.??
Avant de commencer, assurons-nous que Python et NumPy sont prêts à fonctionner. Si NumPy n'est pas installé, installez-le rapidement avec :
pip install numpy
Un modèle de langage prédit le mot suivant dans une phrase. Nous allons garder les choses simples et construire un modèle bigramme. Cela signifie simplement que notre modèle prédira le mot suivant en utilisant uniquement le mot actuel.
Nous commencerons par un court texte pour entraîner le modèle. Voici un petit échantillon que nous utiliserons :
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."""
Tout d'abord, nous devons diviser ce texte en mots individuels et créer un vocabulaire (essentiellement une liste de tous les mots uniques). Cela nous donne de quoi travailler.
# 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}")
Ici, nous convertissons le texte en minuscules et le divisons en mots. Après cela, nous créons une liste de mots uniques pour servir de vocabulaire.
Les ordinateurs fonctionnent avec des chiffres, pas avec des mots. Nous allons donc mapper chaque mot à un index et créer également un mappage inversé (cela nous aidera lorsque nous les reconvertirons en mots plus tard).
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]
En gros, nous transformons simplement des mots en chiffres que notre modèle peut comprendre. Chaque mot reçoit son propre numéro, comme « IA » peut devenir 0 et « apprentissage » peut devenir 1, selon l'ordre.
Maintenant, entrons dans le vif du sujet : construire le modèle bigramme. Nous voulons déterminer la probabilité qu’un mot suive un autre. Pour ce faire, nous compterons la fréquence à laquelle chaque paire de mots (bigramme) apparaît dans notre ensemble de données.
pip install numpy
Voici ce qui se passe :
Nous comptons la fréquence à laquelle chaque mot en suit un autre (c'est le bigramme).
Ensuite, nous transformons ces chiffres en probabilités en les normalisant.
En termes simples, cela signifie que si « AI » est souvent suivi de « est », la probabilité d'avoir cette paire sera plus élevée.
Testons maintenant notre modèle en lui faisant prédire le mot suivant en fonction d'un mot donné. Nous faisons cela en échantillonnant à partir de la distribution de probabilité du mot suivant.
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."""
Cette fonction prend un mot, recherche ses probabilités et sélectionne au hasard le mot suivant en fonction de ces probabilités. Si vous transmettez « IA », le modèle pourrait prédire quelque chose comme « est » comme mot suivant.
Enfin, générons une phrase entière ! Nous commencerons par un mot et continuerons à prédire le mot suivant plusieurs fois.
# 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}")
Cette fonction prend un mot initial et prédit le suivant, puis utilise ce mot pour prédire le suivant, et ainsi de suite. Avant de vous en rendre compte, vous avez une phrase complète !
Voilà : un modèle de langage bigramme simple construit à partir de zéro en utilisant uniquement Python et NumPy. Nous n’avons utilisé aucune bibliothèque sophistiquée et vous avez maintenant une compréhension de base de la façon dont l’IA peut prédire le texte. Vous pouvez jouer avec ce code, lui alimenter un texte différent ou même l'étendre en utilisant des modèles plus avancés.
Essayez-le et dites-moi comment ça se passe. Bon codage !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!