à la demande de @canard j ouvre un topic
Disclaimer : je ne suis pas du tout un expert de l’IA juste un geek assez vieux pour avoir decouvert le basic sur oric atmos, qui dev pour bouffer et qui s’interresse à l’IA. Je crois qu il y a des gens beaucoup plus calés sur le sujet qui trainent dans le coin je compte donc sur eux pour corriger et completer les conneries que je peux dire
Alors deja on va preciser un peu de quoi on parle ici. Il y a en effet beaucoup de forme d « IA » et donc ici je vais plutot parler de deeplearning
Ensuite comme on est entre gens bien qui aiment pas les buzz word on va parler de modeles plutot que d « IA ». En effet quand on commence à s interresser un peu au sujet on s appercoit assez vite qu il y a rien de vraiment « intelligent » dans le deeplearing. C est juste une nouvelle classe d algo qui permet de resoudre des problemes qui etaient pour le moment tres compliqués à resoudre voir pratiquement impossible avec des algos classiques (avant le deeplearing on avait aussi des algos, dit de machine learning, mais pas le sujet ici).
On va aussi considerer qu on est entre dev et pas entre docteurs en mathematique ou statistique. Il y a évidemment beaucoup à dire et à apprendre sur la theorie derriere le deeplearing et ce qui fait que ca fonctionne mais par contre j ai pas plus besoin de connaitre en detail ces fondements theroriques pour faire du deeplearing que j ai besoin de connaitre en detail la theorie de l’algebre relationnelle pour faire une requete sql.
Ok mais alors comment on s y met quand on est un simple dev?
Alors deja j ai une mauvaise nouvelle… il va falloir vous mettre au python
C est pas une obligation mais 99% (stat doigt mouillé) de la communauté bosse en python et donc la plus part des exemples de code, implementation de modele, framework, etc. que vous pourrez trouver seront dans ce langage. J entre pas plus en detail sur le python ici c est un sujet à part entiere (niveau outil regardez anaconda, pycharm, jupyter notebook)
Ok. python : check. I faut aussi louer 10 serveurs chez google pour entrainer mon modele?
Non. Pas besoin d’une machine surpuissante pour faire du deeplearing. Un gpu (de preference nvidia pour avoir acces à cuda) pas trop ancien et avec un peu de VRAM vous permettra deja d obtenir des resultats interressants. Vous pouvez aussi utilisez des outils comme colab qui vous donnent acces gratuitement à des envrionnements type jupyter notebook avec derriere des gpu correct.
Ensuite il va falloir choisir un framework. La il faut faire une petite pause pour avoir une petite vision d’ou en est le deeplearing actuellement. Je vous invite donc à jeter un oeil à ce site : Browse the State-of-the-Art in Machine Learning | Papers With Code
On y trouve tous les problemes standards qu on essaie de resoudre actuellement avec le deep learing et des exemple de code avec les meilleurs modeles pour ces differentes taches. Oui il y en beaucoup. Oui il y en a beaucoup qui sont deja extremement performant. Oui il y a beaucoup de sujets pour lesquels il n y a plus du tout besoin de reinventer la roue.
C est la qu il faut selon moi bien faire la difference entre un dev qui veut integrer du deeplearing dans son soft et un chercheur qui veut faire avancer l’etat de l’art. Un chercheur aura bien evidemment besoin de connaitre la theorie en detail, par contre un dev a juste besoin d’avoir une « intuition » de la theorie derriere (pour eviter de faire des trucs qui ont pas de sens) et ca lui suffira pour utiliser/adapter un modele concu par un chercheur.
Vous vous amusez pas à reimplementer un sort à chaque fois que vous voulez trier une liste, bah en deeplearing c est pareil vous vous amusez pas à inventer une architecture de modele totalement nouvelle quand vous voulez faire par exemple de la classification d image. Vous utilisez un modele standard qui a deja fait ses preuves sur cette tache et ca roule.
L’autre gros avantage d’utiliser des modeles standards c est que generalement vous pouvez trouver des versions préentrainées de ces modeles. Ces modele ont deja eu des phases d apprentissage sur generalement des grosses quantitées de données et donc quand vous réentrainez un modele pour votre tache specifique vous avez besoin de beaucoup moins de data et de beaucoup moins de puissance.
Donc pour revenir au framework, si vous avez suivi ce que j ai dit au dessus et si vous etes un dev et pas un docteur en mathematique/statistique (sinon de tte facon vous devriez deja plus etre ici), choisissez un framework qui vous offre les fonctions du plus haut niveau possible par exemple tensorflow+keras ou pytorch+fastai
Voila j ai commencé à glisser « fastai »…
Si je suis en train de vous parler de tout ca maintenant c est que l année derniere j ai suivi les cours de deeplearing de fastai et je les ai trouvé passionants et extremement didactiques. J etais pas un noob total en deeplearing quand je me suis lancé dedans. J avais deja suivi les classiques cours de Andrew Ng sur coursera. Mais à la fin des cours de coursera j etais tout juste capable de classifier des chiffres manuscrits (vous allez en bouffer du MNIST ) alors qu à la fin des cours de fastai j’etais capable de faire de la generation de style, de la segmentation d image et d avoir des classements honorable dans les competitions kaggle
Le TRES gros avantage de ces cours c est qu on ne commence pas par de la theorie. On commence tout de suite par du code, avec des fonctions de haut niveau et qui fait facilement des trucs spectaculaires. Au debut on sait pas trop comment ni pourquoi ca marche…mais ca marche! Dans la suite des cours on voit de plus en plus la theorie et donc on se construit justement cette « intuition » necessaire pour ne pas faire n importe quoi.
En plus l’equipe derriere ces cours à aussi créé une lib de haut niveau appelée…fastai au dessus de pytorch qui est tres simple à utiliser et tres puissante.
Donc voila tout ce que je peux vous dire c est que si vous voulez decouvrir le deeplearing : suivez les cours de fastai et ne pensez pas que le deeplearing n est accesible qu aux tueurs en math ou necessite de faire une specialisation de 3 ans en fac avant de pouvoir taper une ligne de code. Par contre comme le repete regulierement le prof ne suivez pas les cours « passivement ». Il faut vraiment, comme d ailleurs dans tous les domaines, experimenter par soit meme. C est la meilleure maniere de comprendre vraiment ce qui se passe et de progresser. En plus vous avez de la chance en debarquant maintenant la lib fastai est passée en V1 (elle etait en V0.7 dans les cours de l année derniere). Elle est beaucoup plus claire, stable et surtout documentée qu elle ne l etait l’année derniere.
Donc voila j espere avoir des retours des pro pour corriger mes conneries, des retour d experience de ceux qui se sont/seront lancés, des liens cool sur le sujet et des questions auxquelles j essaierai de repondre au mieux