La plus forte source d'apprentissage est l'itération assistée voire contradictoire. Chaque demande par un humain d'une nouvelle itération sur un prompt permet de discriminer les éléments de réponse précédents qui n'étaient pas pertinents et donc deviennent de la matière pertinente pour un nouveau renforcement d'apprentissage. Au lieu de vectoriser des éléments nominaux on peut ainsi le faire sur des patterns tendanciels selon le taux d'affinité obtenu vers des itérations dont le nombre nécessaire diminue grâce à l'accroissement de la pertinence induit.
Salut Thibault, merci pour cette nouvelle vidéo ! En modélisant cet apprentissage par les premiers principes est-ce qu'on ne pourrait pas avancer sur le fameux problème dit du "sens commun" ? 🤔
Je suis en 3ème année d'informatique et sa fait plusieur mois que je me pose une question importante pour ma vie future. Je suis dans une bonne boite qui travail pour de grands groupe qui me propose un contrat en alternance en ia suivie d un cdi sur des projets de recherche lié à l'aviation et le spatial. Le choix du master ou de l'ecole d'ingé va aussi en découler. J'aime l'ia j'ai déjà fait pas mal de projet dessus mais je suis aussi passionné par la qualité de code et l'architecture de code sur des projets conséquent. Le choix est difficile et ce sont 2 domaine bien différent qui demande des connaissances bien différente. Dans les 10 prochaines année le développement va être très fortement impacté et le monde de l'ia aussi. Je cherche à obtenir le métier le plus interessant tant en terme de résponsabilité, que de salaire, de complexité et d'impact sur la société. Si le developpement deviens en grande partie automatisé dans les année le métier de developpeur sur des systèmes plus ou moins complexe sera tout de suite moins pertinent je suppose...
Oui... Choisir c'est renoncer ! Next ? 😉 En 2030 on ne sait pas ce que seront 80% des emplois, alors FAIS TOI PLAISIR AVANT TOUT et arrête de te faire des nœuds au cerveau !
Mon avis, pour ce qu'il vaut 😄. Si ça peut te rassurer, le métier d'ingénieur en informatique et le développement logiciel est beaucoup + complexe que seulement pondre des lignes de code. L'IA, comme Copilot, te génèrera du code, mais pour un même problème il y a de multiples solutions. Tu as énormément de compromis à résoudre : quel design pattern, quel idiom, comment je découpe ma fonction, etc. Or, décrire et expliciter un compromis prendra + de temps que trancher un compromis si t'es un ingénieur expérimenté. Tous les chercheurs en gestion des connaissances te diront qu'il est impossible d'expliciter toute la connaissance, c'est d'ailleurs un problème pour la préservation du patrimoine de l'humanité et des organisations. Si tu as lu les livres de référence du clean code (il y a plusieurs en anglais), tu verras vite que le code généré par les IA n'est pas du clean code. D'une part pour la raison que j'ai écrite plus haut à propos de la connaissance et aussi parce qu'il y a à boire et à manger dans ce qui a servi de base d'apprentissage. Par exemple sur github, il y a énormément de code qui fonctionne mais qui n'est du clean code et donc qui doit être retravaillé pour des projets rigoureux. C'est pas un hasard si il y a une énorme différence entre le code pondu par un junior et un senior. La qualité du code augmente avec l'expérience (et la volonté de faire du clean code). Franchement, les dev ont toujours cherché à automatiser leur travail, à générer automatiquement des fonctions : ça a commencé avec les snippets, puis les générateurs de code à partir de modèles et maintenant c'est copilot. Par conséquent, l'IA n'inquiète pas vraiment et même la bienvenue (franchement qui aime créer des dizaines de squelettes de classes en faisant du copier-coller en série ?). A mon avis, ceux en informatique qui, un jour peut etre, seront remplacés par une IA sont : - ceux qui ne savent pas faire de clean code et qui se contentent de coder la fonctionnalité qu'on leur demande, quitte à chopper le code sur le net. Si les dev médiocres sont remplacés, c'est à dire ceux qui n'aiment pas faire un code rigoureux, qui n'aiment pas le travail bien fait comme un artisan aime son oeuvre, qui ne cherchent pas à être de bon ingénieurs, c'est pas moi qui vait pleurer pour eux. - ceux qui font des langages les + éloignés de la machine (JS, TypeScript, Python notamment) et donc + proches du langage naturel (ce com est déjà assez long donc je détaille pas). JS/TypeScript + python sont indispensable à connaitre aujourd'hui, mais par prudence, je te conseille d'apprendre aussi un langage proche de la machine comme Rust ou C++ 20 (le best, bon je suis pas objectif parce que c'est mon préféré) ou Go.
J'avoue que cette vidéo me redonne de la crédence dans le fait que la fin de SO et les autres sites du même genre ne signent pas du même coup la fin de l'amélioration des LLMs. Cependant pour que ça fonctionne, que ce soit grâce à l'apprentissage par renforcement ou l'apprentissage depuis les premiers principes, je pense qu'il faut que les LLMs actuels soient encore beaucoup améliorés, surtout en terme d'architecture. Je ne suis pas convaincu que ce qui ressemble à du raisonnement chez les LLMs en soit vraiment, j'ai plus l'impression que ce sont des apparats de raisonnement, et surtout qu'on ne peut pas compter la dessus pour que les modèles s'améliorent d'eux-même. De même pour l'apprentissage par renforcement, je ne vois pas trop techniquement parlant comment un LLM pourrait apprendre par exemple un nouveau framework de manière autonome avec ce paradigme. Cela me semble très inefficace d'imaginer un processus d'essai-erreur faisant intervenir autant d'information à apprendre à partir du signal de récompenses. Et pour faire le lien avec mon commentaire précédent, il faudrait de toute façon maîtriser l'apprentissage en continu pour que le savoir fondateur précédent ne soit pas oublié par le modèle quand il se remet à jour.
Le papier Llama2 Code (version optimisée pour la programmation) indique qu'il y a une autre version non publiée entrainée via données synthétiques qui a selon les métriques est légèrement plus performante. C'est en train de devenir comme AlphaGo vs Alphazero. Le "self play" finit par l'emporter.
La plus forte source d'apprentissage est l'itération assistée voire contradictoire. Chaque demande par un humain d'une nouvelle itération sur un prompt permet de discriminer les éléments de réponse précédents qui n'étaient pas pertinents et donc deviennent de la matière pertinente pour un nouveau renforcement d'apprentissage. Au lieu de vectoriser des éléments nominaux on peut ainsi le faire sur des patterns tendanciels selon le taux d'affinité obtenu vers des itérations dont le nombre nécessaire diminue grâce à l'accroissement de la pertinence induit.
Salut Thibault, merci pour cette nouvelle vidéo ! En modélisant cet apprentissage par les premiers principes est-ce qu'on ne pourrait pas avancer sur le fameux problème dit du "sens commun" ? 🤔
Je suis en 3ème année d'informatique et sa fait plusieur mois que je me pose une question importante pour ma vie future. Je suis dans une bonne boite qui travail pour de grands groupe qui me propose un contrat en alternance en ia suivie d un cdi sur des projets de recherche lié à l'aviation et le spatial. Le choix du master ou de l'ecole d'ingé va aussi en découler. J'aime l'ia j'ai déjà fait pas mal de projet dessus mais je suis aussi passionné par la qualité de code et l'architecture de code sur des projets conséquent. Le choix est difficile et ce sont 2 domaine bien différent qui demande des connaissances bien différente. Dans les 10 prochaines année le développement va être très fortement impacté et le monde de l'ia aussi. Je cherche à obtenir le métier le plus interessant tant en terme de résponsabilité, que de salaire, de complexité et d'impact sur la société. Si le developpement deviens en grande partie automatisé dans les année le métier de developpeur sur des systèmes plus ou moins complexe sera tout de suite moins pertinent je suppose...
Oui...
Choisir c'est renoncer !
Next ?
😉
En 2030 on ne sait pas ce que seront 80% des emplois, alors FAIS TOI PLAISIR AVANT TOUT et arrête de te faire des nœuds au cerveau !
On en parlera dans le prochain live !
@@michel_p5021 C'est un bon point de vue on me le dit souvent, merci pour ton retour 😁.
Mon avis, pour ce qu'il vaut 😄.
Si ça peut te rassurer, le métier d'ingénieur en informatique et le développement logiciel est beaucoup + complexe que seulement pondre des lignes de code. L'IA, comme Copilot, te génèrera du code, mais pour un même problème il y a de multiples solutions. Tu as énormément de compromis à résoudre : quel design pattern, quel idiom, comment je découpe ma fonction, etc. Or, décrire et expliciter un compromis prendra + de temps que trancher un compromis si t'es un ingénieur expérimenté. Tous les chercheurs en gestion des connaissances te diront qu'il est impossible d'expliciter toute la connaissance, c'est d'ailleurs un problème pour la préservation du patrimoine de l'humanité et des organisations.
Si tu as lu les livres de référence du clean code (il y a plusieurs en anglais), tu verras vite que le code généré par les IA n'est pas du clean code. D'une part pour la raison que j'ai écrite plus haut à propos de la connaissance et aussi parce qu'il y a à boire et à manger dans ce qui a servi de base d'apprentissage. Par exemple sur github, il y a énormément de code qui fonctionne mais qui n'est du clean code et donc qui doit être retravaillé pour des projets rigoureux. C'est pas un hasard si il y a une énorme différence entre le code pondu par un junior et un senior. La qualité du code augmente avec l'expérience (et la volonté de faire du clean code).
Franchement, les dev ont toujours cherché à automatiser leur travail, à générer automatiquement des fonctions : ça a commencé avec les snippets, puis les générateurs de code à partir de modèles et maintenant c'est copilot. Par conséquent, l'IA n'inquiète pas vraiment et même la bienvenue (franchement qui aime créer des dizaines de squelettes de classes en faisant du copier-coller en série ?).
A mon avis, ceux en informatique qui, un jour peut etre, seront remplacés par une IA sont :
- ceux qui ne savent pas faire de clean code et qui se contentent de coder la fonctionnalité qu'on leur demande, quitte à chopper le code sur le net. Si les dev médiocres sont remplacés, c'est à dire ceux qui n'aiment pas faire un code rigoureux, qui n'aiment pas le travail bien fait comme un artisan aime son oeuvre, qui ne cherchent pas à être de bon ingénieurs, c'est pas moi qui vait pleurer pour eux.
- ceux qui font des langages les + éloignés de la machine (JS, TypeScript, Python notamment) et donc + proches du langage naturel (ce com est déjà assez long donc je détaille pas).
JS/TypeScript + python sont indispensable à connaitre aujourd'hui, mais par prudence, je te conseille d'apprendre aussi un langage proche de la machine comme Rust ou C++ 20 (le best, bon je suis pas objectif parce que c'est mon préféré) ou Go.
@@JosephGarnier "Clean" Code, Horrible Performance (Molly Rocket 2023 🙂 )
J'avoue que cette vidéo me redonne de la crédence dans le fait que la fin de SO et les autres sites du même genre ne signent pas du même coup la fin de l'amélioration des LLMs. Cependant pour que ça fonctionne, que ce soit grâce à l'apprentissage par renforcement ou l'apprentissage depuis les premiers principes, je pense qu'il faut que les LLMs actuels soient encore beaucoup améliorés, surtout en terme d'architecture. Je ne suis pas convaincu que ce qui ressemble à du raisonnement chez les LLMs en soit vraiment, j'ai plus l'impression que ce sont des apparats de raisonnement, et surtout qu'on ne peut pas compter la dessus pour que les modèles s'améliorent d'eux-même.
De même pour l'apprentissage par renforcement, je ne vois pas trop techniquement parlant comment un LLM pourrait apprendre par exemple un nouveau framework de manière autonome avec ce paradigme. Cela me semble très inefficace d'imaginer un processus d'essai-erreur faisant intervenir autant d'information à apprendre à partir du signal de récompenses. Et pour faire le lien avec mon commentaire précédent, il faudrait de toute façon maîtriser l'apprentissage en continu pour que le savoir fondateur précédent ne soit pas oublié par le modèle quand il se remet à jour.
Tu apportes des points très intéressant, je tenterai de répondre pendant le prochain live
Le papier Llama2 Code (version optimisée pour la programmation) indique qu'il y a une autre version non publiée entrainée via données synthétiques qui a selon les métriques est légèrement plus performante.
C'est en train de devenir comme AlphaGo vs Alphazero. Le "self play" finit par l'emporter.
hey! salut c'est possible d'avor une conversation ??