Créez votre propre modèle de langage : un guide simple avec Python et NumPy

Patricia Arquette
Libérer: 2024-10-19 08:10:30
original
766 Les gens l'ont consulté

Build Your Own Language Model: A Simple Guide with Python and NumPy

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).

  • Les LLM sont des modèles d'IA entraînés sur d'énormes quantités de données textuelles pour comprendre et générer le langage humain.
  • Ces LLM sont capables d'effectuer des tâches telles que répondre à des questions, rédiger des essais et même tenir des conversations. Essentiellement, les LLM prédisent le mot suivant dans une séquence en fonction des mots précédents.

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 !?

Ce que nous construisons :

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.??


Étape 1 : Configuration

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
Copier après la connexion
Copier après la connexion

Étape 2 : Comprendre les bases

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."""
Copier après la connexion
Copier après la connexion

Étape 3 : préparer le texte

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}")
Copier après la connexion
Copier après la connexion

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.

Étape 4 : Mappez des mots avec des nombres

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]
Copier après la connexion

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.

Étape 5 : Construire le modèle

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
Copier après la connexion
Copier après la connexion

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.

Étape 6 : Prédire le mot suivant

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."""
Copier après la connexion
Copier après la connexion

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.

Étape 7 : générer une phrase

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}")
Copier après la connexion
Copier après la connexion

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 !

Conclusion

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!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!