Qu'est-ce que le Mixture of Experts (MoE) ?

แชร์
ฝัง
  • เผยแพร่เมื่อ 18 ธ.ค. 2024

ความคิดเห็น • 21

  • @dokisho3054
    @dokisho3054 7 หลายเดือนก่อน +1

    Je viens de découvrir votre chaîne et bien que je trouve le sujet de la vidéo assez profond et que je ne sois pas quelqu'un qui s'y connaisse en LLM ou en apprentissage profond, j'arrive à comprendre la plupart des points que vous soulevez. Je ne manquerai pas de dévorer la chaîne. Merci de partager vos connaissances.

    • @alexandretl
      @alexandretl  7 หลายเดือนก่อน

      Merci beaucoup pour ce commentaire! Bon visionnage, et n'hésitez pas à commenter si vous avez des questions

  • @mohammedbelhadj-hm8qn
    @mohammedbelhadj-hm8qn 7 หลายเดือนก่อน

    Très bien expliqué. Merci

  • @atha5469
    @atha5469 7 หลายเดือนก่อน +1

    Stylé, continue

  • @bosanova1643
    @bosanova1643 7 หลายเดือนก่อน

    Vraiment extrêmement bien expliqué, merci beaucoup

    • @alexandretl
      @alexandretl  7 หลายเดือนก่อน

      Merci pour le retour!

  • @josephtilly258
    @josephtilly258 7 หลายเดือนก่อน +1

    Est-ce que les agents IA serait comparable aux à une sorte d’MoE ? Utilisant plusieurs spécialistes pour faire accomplir une tâche précise

    • @alexandretl
      @alexandretl  7 หลายเดือนก่อน

      Oui on peut dire ça 👍il y a des petites différences (pour les agents, on prend la sortie d'un seul des agents, et chaque agent est clairement spécialisé dans un domaine) mais dans le principe c'est ça (dans le machine learning cette technique qui consiste à utiliser plusieurs modèles s'appelle l'ensemble learning)

  • @Hickssama
    @Hickssama 7 หลายเดือนก่อน

    Toujours incroyable tes vidéos, merci !! Cool d’ailleurs de t’être détaché du format iPad (même si je pense que le format iPad est très bien adapté pour d’autres vidéos) 😁

    • @alexandretl
      @alexandretl  7 หลายเดือนก่อน

      Ouais certaines vidéos d'y prêtent bien d'autres non. Merci pour le retour!

  • @JetyWorld
    @JetyWorld 7 หลายเดือนก่อน +3

    👍

  • @redone7696
    @redone7696 6 หลายเดือนก่อน

    Bonjour, j’aurais une petite question.
    Je suis en train d’entraîner un transformeur qui génère du texte. Le transformeur prend en entrée une séquence de tokens et prédit le prochain token.
    Exemple :
    Entrée : [bon, jour, les]
    Cible : [jour, les, amis]
    Dans tous les cours que j’ai vus, la cible est décalée d’un token vers la droite, elle n’a pas le premier token. Mais dans le cas où il y a des tokens de fin de séquence ou de rembourrage, j’ai l’impression que ça ne sert à rien. Par exemple :
    Entrée : [bon, jour, les, amis]
    Sortie : [jour, les, amis, EOS]
    Dans cet exemple ou un exemple de rembourrage, j’ai l’impression que le modèle ne prédit pas vraiment un mot. Peut-être que je me trompe, je suis débutant.

    • @alexandretl
      @alexandretl  6 หลายเดือนก่อน +1

      oui alors déjà le token n'est pas du rembourrage (ou padding) c'est un token qui annonce la fin d'une séquence (End Of Sequence). donc c'est utile d'apprendre au Transformer à prédire ce token, puisque ça fait aussi parti du problème (en fait on lui donne l'information que la séquence doit s'arrêter avec le EOS).
      donc la prédiction amis->EOS est bien utile !
      pour ce qui est du rembourrage ou padding, là en effet tu auras qqchose du genre :
      [bon, jour, les, amis, EOS, pad, pad, pad, pad]
      [jour, les, amis, EOS, pad, pad, pad, pas, pad]
      donc là en effet les prédictions EOS->pad et pad->pad sont complètement inutiles (et donc c'est des calculs gâchés mais on peut pas faire ça). Pour ne pas prendre en compte ces prédictions inutiles, en fait dans le calcul du loss tu peux passer un ignore_index qui va dire à la fonction qui calcule le loss de ne pas prendre en compte dans le loss toutes les prédictions XX->pad. (en pytorch notamment avec torch.nn.functional.cross_entropy)
      j'espère que c'est clair!
      et aussi, on peut aussi rajouter un token pour Start Of Sequence, pour signaler le début d'une séquence.
      parce qu'au moment de générer des phrases (à l'inférence) il faut bien partir d'un token de départ que tu donnes au Transformer, donc si tu ne veux pas avoir à lui donner un token spécial (comme "bon") tu peux lui donner le token générique (à condition évidemment d'avoir ajouter un sur tes séquences pendant l'entraînement!)

    • @redone7696
      @redone7696 6 หลายเดือนก่อน

      @@alexandretl Salut, alors déjà merci beaucoup pour ta réponse très claire et concise. J’ai pas mal avancé depuis ces derniers temps.
      J’ai utilisé une méthode un peu différente de celle que tu as énoncée, je ne sais pas si c’est la meilleure. En gros, j’ai fait le décalage puis j’ai mis le padding. Donc ça me donnerait quelque chose comme :
      Input = [mon, chien]
      Target = [chien, rouge]
      Puis j’ai juste rajouté le pad de ces deux vecteurs. Je ne sais pas si c’est une bonne solution.
      Par contre, j’ai un autre problème, et malheureusement je n’arrive pas à trouver de vraies réponses ou des pistes de recherche.
      J’ai suivi le tutoriel TensorFlow de génération de texte avec un RNN (le dataset Shakespeare).
      J’ai alors décidé de remplacer le RNN par un transformeur décodeur (un peu comme GPT). Seulement, quand je compare l’accuracy des deux modèles RNN vs transformeur décodeur, il y a une très grosse différence : 0,55 vs 0,78.
      Je ne comprends pas pourquoi le RNN a un meilleur score à ce point-là.
      Note :
      Pour les paramètres du RNN, c’est les mêmes que celui du tuto original.
      Pour le transformeur décodeur :
      Num heads = 8
      Num layer = 6
      Dff = 1024
      D_model = 256
      Epoch = 20 (pour les 2)

    • @alexandretl
      @alexandretl  6 หลายเดือนก่อน

      @@redone7696 Pour ta question sur le padding ça revient au même de faire d'abord le décalage puis le padding ou d'abord mettre le padding puis faire le décalage.
      Quand tu parle de 0,55 et 0,78 tu dis que c'est une accuracy mais accuracy de quoi ?
      et au niveau du cout/loss, quelle différence entre RNN et Transformer ?
      tu peux aussi regarder l'évolution du cout en fonction du temps pour le Transformer et regarder si ça descend bien, s'il faut encore l'entraîner etc
      et aussi pour l'optimiseur avec le Transformer n'oublie pas d'utiliser AdamW.

    • @redone7696
      @redone7696 6 หลายเดือนก่อน

      @@alexandretl effectivement avec adamW il y il y a une amélioration !! , j’utilise Sparse Categorical Crossentropy
      Et par contre j’utilise learning rate sheduler avec la formule du papier original je sais pas si c’est la meilleure option.

    • @redone7696
      @redone7696 6 หลายเดือนก่อน

      @@alexandretl En fait, même pour la loss, le Transformer descend assez vite, mais à partir de loss = 1,4, ça devient hyper difficile de baisser plus.
      Alors que le RNN, il descend tranquillement à chaque epoch. À 20 epochs, il est à 0,7.

  • @Redro_
    @Redro_ 7 หลายเดือนก่อน

    Merci !

  • @michaelbaudin
    @michaelbaudin 6 หลายเดือนก่อน

    Pourquoi ne pas traduire par "mélange d'experts" au lieu d'"'ensemble d'experts" ? Après tout, c'est bien un mélange des prédictions de chaque expert qui est réalisée lorsqu'on utilise une combinaison linéaire, et non pas une agrégation. L'expression "agréger A et B" signifie qu'on crée le mot (A, B) : ce n'est pas ce qui est fait ici.

    • @alexandretl
      @alexandretl  6 หลายเดือนก่อน +3

      En fait il y a une raison précise à cela, c'est le concept d'ensemble learning en ML. Cette technique du MoE est un exemple de cette méthode d'ensemble, c'est pour cela que j'ai fait ce choix.