


Créez votre propre modèle de langage?: un guide simple avec Python et NumPy
Oct 19, 2024 am 08:10 AML'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 taches 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
é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."""
é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}")
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]
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
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."""
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}")
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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

La clé pour gérer l'authentification de l'API est de comprendre et d'utiliser correctement la méthode d'authentification. 1. Apikey est la méthode d'authentification la plus simple, généralement placée dans l'en-tête de demande ou les paramètres d'URL; 2. BasicAuth utilise le nom d'utilisateur et le mot de passe pour la transmission de codage Base64, qui convient aux systèmes internes; 3. OAuth2 doit d'abord obtenir le jeton via client_id et client_secret, puis apporter le Bearertoken dans l'en-tête de demande; 4. Afin de gérer l'expiration des jetons, la classe de gestion des jetons peut être encapsulée et rafra?chie automatiquement le jeton; En bref, la sélection de la méthode appropriée en fonction du document et le stockage en toute sécurité des informations clés sont la clé.

Assert est un outil d'affirmation utilisé dans Python pour le débogage et lance une affirmation d'établissement lorsque la condition n'est pas remplie. Sa syntaxe est affirmer la condition plus les informations d'erreur facultatives, qui conviennent à la vérification de la logique interne telle que la vérification des paramètres, la confirmation d'état, etc., mais ne peuvent pas être utilisées pour la sécurité ou la vérification des entrées des utilisateurs, et doit être utilisée en conjonction avec des informations d'invite claires. Il n'est disponible que pour le débogage auxiliaire au stade de développement plut?t que pour remplacer la manipulation des exceptions.

Une méthode courante pour parcourir deux listes simultanément dans Python consiste à utiliser la fonction zip (), qui appariera plusieurs listes dans l'ordre et sera la plus courte; Si la longueur de liste est incohérente, vous pouvez utiliser itertools.zip_langest () pour être le plus long et remplir les valeurs manquantes; Combiné avec enumerate (), vous pouvez obtenir l'index en même temps. 1.zip () est concis et pratique, adapté à l'itération des données appariées; 2.zip_langest () peut remplir la valeur par défaut lorsqu'il s'agit de longueurs incohérentes; 3. L'énumération (zip ()) peut obtenir des indices pendant la traversée, en répondant aux besoins d'une variété de scénarios complexes.

TypeHintsInpythonsolvetheproblebandofambigu?té et opposant à un montant de type de type parallèlement au développement de l'aménagement en fonction des types de type.

Inpython, itérateurslawjectsThatallowloopingthroughCollectionsbyImpleting __iter __ () et__Next __ (). 1) iteratorsworkVeatheitorat

Pour créer des API modernes et efficaces à l'aide de Python, FastAPI est recommandé; Il est basé sur des invites de type Python standard et peut générer automatiquement des documents, avec d'excellentes performances. Après avoir installé FastAPI et ASGI Server Uvicorn, vous pouvez écrire du code d'interface. En définissant les itinéraires, en écrivant des fonctions de traitement et en renvoyant des données, les API peuvent être rapidement construites. Fastapi prend en charge une variété de méthodes HTTP et fournit des systèmes de documentation SwaggerUI et Redoc générés automatiquement. Les paramètres d'URL peuvent être capturés via la définition du chemin, tandis que les paramètres de requête peuvent être implémentés en définissant des valeurs par défaut pour les paramètres de fonction. L'utilisation rationnelle des modèles pydantiques peut aider à améliorer l'efficacité du développement et la précision.

Pour tester l'API, vous devez utiliser la bibliothèque des demandes de Python. Les étapes consistent à installer la bibliothèque, à envoyer des demandes, à vérifier les réponses, à définir des délais d'attente et à réessayer. Tout d'abord, installez la bibliothèque via PiPinstallRequests; Utilisez ensuite les demandes.get () ou les demandes.Post () et d'autres méthodes pour envoyer des demandes GET ou POST; Vérifiez ensuite la réponse.status_code et la réponse.json () pour vous assurer que le résultat de retour est en conformité avec les attentes; Enfin, ajoutez des paramètres de délai d'expiration pour définir l'heure du délai d'expiration et combinez la bibliothèque de réessayer pour obtenir une nouvelle tentative automatique pour améliorer la stabilité.

Dans Python, les variables définies à l'intérieur d'une fonction sont des variables locales et ne sont valides que dans la fonction; Les variables globales sont définies à l'extérieur qui peuvent être lues n'importe où. 1. Les variables locales sont détruites lors de l'exécution de la fonction; 2. La fonction peut accéder aux variables globales mais ne peut pas être modifiée directement, donc le mot-clé global est requis; 3. Si vous souhaitez modifier les variables de fonction externes dans les fonctions imbriquées, vous devez utiliser le mot-clé non local; 4. Les variables avec le même nom ne se affectent pas dans différentes lunettes; 5. Global doit être déclaré lors de la modification des variables globales, sinon une erreur non liée à la dorsale sera augmentée. Comprendre ces règles permet d'éviter les bogues et d'écrire des fonctions plus fiables.
