Skip to content

Artificial Intelligence

Concepts

  • Classification
  • Clustering
  • Feature
  • Inférence:
    • utilisation des connaissances acquises pour tirer des conclusions, prendre des décisions ou faire des prédictions
    • à partir de données nouvelles ou incomplètes (donc hors données d'entrainement)
    • Synonyme: extrapolation
    • Est réalisé selon différentes techniques:
      • réseaux de neurones
      • arbres de décision
      • systèmes experts
      • modèles statistiques
  • Label
  • Vrai positif:
    • = observation positive réelle correctement prédite comme positive par le modèle
    • = Le modèle a correctement prédit un cas positif
  • Vrai négatif:
    • = observation négative réelle correctement prédite comme négative par le modèle
    • = Le modèle a correctement prédit un cas négatif
  • Faux positif:
    • = observation négative réelle incorrectement prédite comme positive par le modèle
    • = Le modèle a identifié à tort un cas négatif comme étant positif
  • Faux négatif:
    • = observation positive réelle incorrectement prédite comme négative par le modèle
    • = Le modèle a identifié à tort un cas positif comme étant négatif
  • Precision:
    • Répond à la question: Parmi toutes les prédictions positives que le modèle a fait, quel pourcentage était correct ?
    • Precision = vrais positifs / (vrais positifs + faux positifs) (= aka l'ensemble des positifs)
  • Recall:
    • Répond à la question: Parmi tous les cas positifs réels, quel pourcentage le modèle a-t-il réussi à identifier correctement ?
    • Recall = vrais positifs / (vrais positifs + faux négatifs)

LLM (Large Language Model)

  • Modèle qui apprend les probabilités des séquences de mots en language naturel

GPT (Generative Pre-Trained Transformer)

  • Overview:
    • Implémentation spécifique du concept LLM (= dans la famille des LLM)
    • = modèles de languages basés sur une architecture de Transformer
    • Les Transformer sont pré entrainés sur une vaste quantité de données
  • Prompts & completions:
    • Prompt = la commande envoyé à GPT
    • Completion = la réponse générée
  • Transformer:
    • Architecture de neurones, créé en 2017
    • Capacité à capturer les dépendances à longues distance dans les séquence (aka points communs lorsqu'il y a de très nombreux paramètres)
    • Compte les relations entre chaque paire de mots plutôt que de se baser sur l'ordre
    • Permet de capturer le contexte global
  • Type de modèles:
    • DALL-E: Génération d'image basée sur du texte
    • GPT-3: => text
    • Codex:
      • Génération de code basée sur du texte => code
      • Python, C#, JavaScript, Go, Perl, PHP, Ruby, Swift, TypeScript, SQL, and Shell
    • GPT-3.5 Turbo:
      • designed for conversational interfaces
      • model is conversation-in and message-out
    • GPT-4:
      • amélioration de GPT-3.5 => text
      • version 8K: accepte au maximum 8k token
      • version 32K: accepte au max. 32K token
  • Famille par type de modèles (GPT 3 et Codex):
    • = les modèles sont classés par ordre de rapport capacités/coût/rapidité
    • De A à D: Ada, Babbage, Curie, Da Vinci
    • Un modèle de famille A sera moins performant dans sa génération qu'un modèle de famille D, mais son execution coutera moins cher et sera plus rapide
    • Recommandation:
      • Démarrer avec un modèle de famille D pour vérifier le use case
      • Affiner vers C, B puis A au besoin en fonction des résultats
    • Da Vinci (GPT) use case: Complex intent, cause and effect, summarization for audience
    • Da Vinci (Codex) use case: For applications requiring deep understanding of the content
    • Curie use case: Language translation, complex classification, text sentiment, summarization
    • Cushman (Codex) use case: for many code generation tasks
    • Babbage use case: Moderate classification, semantic search classification
    • Ada use case: Parsing text, simple classification, address correction, keywords
  • Embedding Model:
    • = une technique d'apprentissage
    • Représente les données sous forme de vecteurs de valeurs numériques (nombre réel)
    • = créé une abstraction des mots en tant que tels
    • = permet de s'affranchir des cas où les mots/contextes sont similaires mais mal orthographiés/prononcés
    • Ce format est plus facilement utilisable par un modèle d'apprentissage
    • Le vecteur est utilisé pour prédire la séquence suivante
    • Bénéfice:
      • aide à améliorer la génération de texte en permettant au modèle de comprendre les mots et leur signification de manière plus approfondie
      • peut conduire à des prédictions de mots plus précises et à des phrases plus cohérentes et naturelles
      • peut aider à résoudre des problèmes de synonymie et de polysémie
  • Fine-tuning:
    • spécialise un modèle entrainé sur une tâche générale pour une tâche spécifique
    • cela permet d'entrainer un modèle sans partir de zéro, en s'appuyant sur l'existant
      • obtention de bonnes performances même avec une quantité de données limitée pour la tâche spécifique
    • l'idée est qu'il effectue sa tâche spécifique en conservant les connaissances préalablements apprises
  • Choix Embedding Model vs Fine-tuning:
    • Dispo des données: si des données spécifiques sont dispo. alors privilégier le FT qui donnera des résultats plus précis
    • Capacité de calcul: Le FT nécéssite plus de ressource car besoin de re entrainer une grande partie du modèle. les EM utilisent le modèle tel quel.
    • Controle de l'apprentissage: Le FT offre un contrôle plus granulaire sur le processus d'apprentissage (possibilité d'ajuster les paramètres) ce que ne permet pas les EM.
  • Restreindre les réponses de GPT:
    1. Via Fine tuning: le modèle sera spécialisé et adapté à votre contexte, ce qui peut aider à générer des réponses plus cohérentes et pertinentes
    2. Via entrée conditionnées: lors de la définition du contexte, inclure des phrases préliminaires ou indications explicites pour que le modèle focus sur un sujet/aspect
    3. Via contraintes explicites: technique de pénalisation/décodage contraint pour restreindre la longueur des réponses, interdire des mots ou concepts etc...
    4. Via post traitement de la réponse: afin de filtrer, réorganiser/reformuler la sortie du modèle pour répondre aux exigences
    5. Voir https://github.com/ruoccofabrizio/azure-open-ai-embeddings-qna

Base de données véctorisées

  • Structure de données dans laquelle les données sont organisées sous forme de vecteurs ou de tableaux multidimensionnels
  • Il s'agit jsute d'un type de données, cela ne concerne pas le runtime en tant que tel de la base
  • Couramment utilisées dans des domaines tels que l'apprentissage automatique, la vision par ordinateur, le traitement du langage naturel etc.
  • Les bases types Documents ou Graph sont adaptées pour stocker des données de type vecteur.
  • LLM et embeddings :
    • Lorsqu'un modèle de langage (LLM) expose une API d'embedding, vous fournissez des données textuelles en entrée, et l'API génère des embeddings (vecteurs) pour ces données.
    • Ces vecteurs sont stockés en base