8 points par GN⁺ 2024-07-17 | 1 commentaires | Partager sur WhatsApp
  • Apparu en 2017, Transformer est parti de la traduction automatique avant de s’étendre à presque tous les domaines, devenant une connaissance clé en IA que les ingénieurs d’aujourd’hui doivent maîtriser
  • Ce guide est structuré progressivement, des réseaux de neurones jusqu’à l’attention, pour permettre aux ingénieurs de suivre uniquement ce qui est nécessaire à la compréhension de Transformer
  • Il fournit des exemples de code Python exécutables ainsi que des ressources de référence, afin d’apprendre en vérifiant par soi-même plutôt que de se limiter à la lecture
  • Le contenu est divisé en réseaux de neurones, RNN, NLP et attention, Transformer, ainsi qu’une annexe sur les bases de Python et des mathématiques ; des sections sur PyTorch et les Multi-Agents basés sur les LLM ont aussi été ajoutées
  • Les conditions d’utilisation à des fins éducatives et non commerciales sont relativement ouvertes, mais les prises de contact anonymes sont limitées, avec notamment l’exigence de fournir au moins deux profils de réseaux sociaux à des fins de vérification

Parcours d’apprentissage pour comprendre Transformer

  • The Engineer’s Guide To Deep Learning est un guide concis qui propose aux ingénieurs le parcours minimal nécessaire pour comprendre Transformer
  • L’IA actuelle est présentée comme son troisième âge d’or
    • Les deux précédents âges d’or ont eu lieu dans les années 1950–1960 et dans les années 1980
    • À l’époque, les attentes avaient dépassé les capacités techniques, menant à des déceptions
    • L’âge d’or actuel de l’IA, commencé au milieu des années 2010, est décrit comme une dynamique qui dépasse continuellement les attentes
  • Transformer est une percée introduite en 2017
    • Il a d’abord été développé comme modèle de traduction automatique
    • Son influence s’est ensuite étendue à presque tous les domaines
  • Des exemples de code Python exécutables sont fournis comme supports d’apprentissage
  • Des ressources complémentaires sont également présentées afin que chaque lecteur puisse choisir celles qui lui conviennent

Structure du document et mises à jour

  • Le guide est conçu pour construire les bases nécessaires dans l’ordre, plutôt que de plonger directement dans Transformer
  • L’historique des changements se poursuit depuis la publication de la première version le 21 mai 2024
    • 23 juillet 2024 : ajout de versions PyTorch aux Parts 1 et 2
    • 16 septembre 2024 : ajout d’une section sur les Multi-Agents basés sur les LLM
  • À l’avenir, le guide pourrait couvrir plusieurs technologies basées sur Transformer actuellement en développement, ainsi qu’une autre percée majeure attendue dans un futur proche

Conditions d’utilisation et mode de contact

  • Les conditions d’utilisation de la FAQ sur le copyright sont ouvertes principalement pour les usages éducatifs et non commerciaux
    • Les enseignants et étudiants rattachés à des établissements d’enseignement peuvent utiliser librement les documents et illustrations à des fins d’apprentissage
    • Dans les réunions et cours non commerciaux, les documents et illustrations peuvent être utilisés à condition de mentionner le lien du site et le copyright
    • Les explications sur le revenue share et le full buyout dans la section consacrée aux usages commerciaux sont une plaisanterie, et l’auteur précise ne pas avoir l’intention d’établir de relation commerciale
  • Les e-mails de contact doivent fournir, à des fins de vérification, au moins deux profils de réseaux sociaux comme LinkedIn ou Twitter
  • Depuis l’affaire de la backdoor XZ, les contacts de personnes anonymes ne sont plus acceptés

1 commentaires

 
GN⁺ 2024-07-17
Commentaires Hacker News
  • Il existe pas mal de meilleures ressources. The Annotated Transformer / Attention is All You Need : http://nlp.seas.harvard.edu/annotated-transformer/
    Transformers from Scratch : https://e2eml.school/transformers.html
    La série d’introduction d’Andrej Karpathy est aussi très bien : https://karpathy.ai/zero-to-hero.html
    Let's build GPT: from scratch, in code, spelled out: https://www.youtube.com/watch?v=kCc8FmEb1nY
    GPT with Andrej Karpathy: Part 1 : https://medium.com/@kdwa2404/gpt-with-andrej-karpathy-part-1...
    Le “But what is a GPT? Visual intro to transformers | Chapter 5, Deep Learning” de 3Blue1Brown : https://www.youtube.com/watch?v=wjZofJX0v4M
    “Attention in transformers, visually explained | Chapter 6, Deep Learning” : https://www.youtube.com/watch?v=eMlx5fFNoYc
    La playlist complète de 3Blue1Brown sur les réseaux de neurones : https://www.youtube.com/playlist?list=PLZHQObOWTQDNU6R1_6700...
    • À noter aussi que tous les sites ci-dessus sont gratuits. Le site posté ici dit « achat des droits complets d’utilisation commerciale de l’ensemble du contenu et du dépôt GitHub pour 10 000 000 € », et réclame aussi 20 % de royalties pour un usage commercial
      C’est plutôt cher pour un tutoriel Keras
    • Question un peu à côté, mais j’aimerais participer au Vesuvius Challenge ; je n’ai pas de background en machine learning, je suis juste développeur web généraliste. Je me demande si Zero to Hero de Karpathy et le livre Understanding Deep Learning suffiraient pour acquérir un niveau pratique en machine learning, ou s’il faudrait apprendre davantage
      Mon idée est de comprendre les solutions primées de l’an dernier, puis d’essayer de choisir une sous-tâche plus modeste : https://scrollprize.org/
    • Les slides de Lucas Beyer sont aussi très corrects : https://docs.google.com/presentation/d/1ZXFIhYczos679r70Yu8v...
  • Les tutoriels sur les Transformers sont un peu devenus les nouveaux tutoriels sur les monades
  • Cette ressource fait un survol très condensé, du perceptron jusqu’au Transformer
    Par exemple, la partie où l’on déroule le gradient dans un LSTM n’est pas là pour vous aider à l’implémenter dans votre framework préféré, mais pour faciliter la compréhension
    Le fait de montrer des solutions dans plusieurs frameworks vise aussi à faire le lien entre la forme des équations et leur apparence dans le code
  • Ce qu’il y a de plus frustrant dans la documentation sur les Transformers, c’est qu’elle est presque entièrement centrée sur le traitement du langage naturel
    En particulier, ce qu’il y a d’intéressant dans l’architecture Transformer, c’est que le mécanisme d’attention est invariant par permutation. C’est encore plus vrai si l’on n’essaie pas de compenser cette propriété singulière avec des embeddings positionnels, et comme on peut masquer arbitrairement des nœuds spécifiques d’un graphe ou même des arêtes individuelles, il y a une grande souplesse pour injecter de la connaissance métier dans l’architecture
    Dans beaucoup de cas, les embeddings positionnels restent sans doute nécessaires, mais on peut concevoir les choses plus intelligemment si l’on sort de cette vision excessivement restrictive où l’entrée d’une couche d’attention n’est qu’une simple séquence 1D
  • J’aimerais demander aux spécialistes en machine learning / intelligence artificielle. Si quelqu’un connaît de bonnes ressources d’introduction pour une personne qui veut passer du CRUD / des API backend au ML/à l’IA, je serais preneur. Le domaine part dans plusieurs directions et je ne sais pas par où commencer
    Si j’ai bien compris, un ingénieur ML construit des modèles avec des frameworks comme PyTorch, un ingénieur IA construit des applications sur des solutions d’IA comme le prompt engineering ou les API OpenAI/Claude, et le MLOps s’occupe du déploiement et du serving des modèles ; je me demande si cette distinction est correcte
    • Il n’existe pas de définition formelle de ces termes. La seule règle d’association dont vous avez besoin est : intitulé qui sonne bien → cela peut vouloir dire tout ce que l’entreprise veut lui faire dire
      En pratique, ces rôles peuvent recouvrir aussi bien « fait de la recherche de pointe » que « a déjà ouvert un CSV une fois »
    • 85 % du temps d’un projet de machine learning passe dans la qualité des données et un peu de feature engineering spécifique au domaine
      Si vous voulez avoir de l’impact, il suffit d’être très bon là-dedans. C’est une compétence réutilisable aussi dans l’intégration de systèmes ou l’analyse métier, tandis que les algorithmes — et aujourd’hui même les modèles entraînés — peuvent être fournis par des chercheurs
    • « Ingénieur IA » serait plus justement un ingénieur applicatif spécialisé dans l’intégration du machine learning dans le logiciel
    • Kaggle est un bon point de départ
  • À part quelques paragraphes d’introduction, il n’y a pas de contenu. Le vrai contenu renvoie à 404 not found
    • Les liens dans le corps de page sont cassés. Ceux du menu hamburger fonctionnent bien
    • Le menu de gauche sur desktop fonctionne. On dirait que seuls les liens de la première page sont cassés
  • On y voit la phrase : « lorsque vous envoyez un e-mail, merci de fournir au moins deux adresses de réseaux sociaux comme LinkedIn ou Twitter à des fins de vérification… nous n’acceptons plus les messages de personnes anonymes »
    C’est assez amer de voir que même parmi les techniciens, les réseaux sociaux sont adoptés comme moyen de vérifier l’identité et la confiance. C’était déjà assez mauvais quand certains gouvernements ont commencé à demander des identifiants de réseaux sociaux pour les demandes de visa ou d’immigration, mais maintenant il faudrait une preuve sociale même pour envoyer un simple e-mail à un technicien ?
    • La phrase « nous n’acceptons plus les messages de personnes anonymes » fait penser à cette blague où quelqu’un se présente au centre de recrutement du quartier général de l’armée de l’air. On lui demande : « licence de pilote ? expérience ? qualifications ? » et il répond : « non. Je suis juste venu vous dire de ne rien attendre de moi ! »
    • Si l’on déplie la partie masquée, cela devient : « nous n’acceptons plus les messages de personnes anonymes à cause de l’affaire de la backdoor XZ »
      L’attaquant XZ aurait probablement pu se connecter via GitHub à de très nombreux services. L’auteur du billet original estime aussi qu’il a probablement téléchargé quelque chose depuis PyPI, potentiellement compromis par une fuite de token restée sans traitement pendant plus d’un an
      En plus, comme il travaille dans le machine learning, il télécharge probablement d’énormes frameworks Python difficiles à auditer depuis GitHub, conda et PyPI, et les gens de ce domaine téléchargent aussi des modèles non fiables pour expérimenter
      Mais c’est l’e-mail en texte brut, lisible dans un client mail en ligne de commande avec MIME et autres extensions désactivés, qui poserait problème ?
  • C’est une très bonne ressource pour construire des bases solides de manière concise