Quelques trucs à savoir:
- Le nom --> LLM: Large Langage Machine.
- Les gros LLM sont propriétaires (Gemini/google, Claude/Anthropic, LLama/Meta, Perplexity, Copilot/Microsoft, Mistral (cocorico), Deepseek (Chine), Ernie (Chine), etc.) Mais certains de ces gros fournisseurs d'IA mettent aussi des modèles plus restreints en open-source, c'est ces modèles qui nous intéressent.
On peut retrouver ces LLM Open-source sur des sites tels que Hugging-Face, Groq.
- Unité de base d'une IA: le token, qui correspond en gros à un mot ou parfois une syllabe.
- Fonctionnement d'un LLM:
Rien de magique (si ce n'est le niveau de technologie) il ne fait rien de plus que deviner le mot idéal à mettre au bout d'une suite de mots, il les pondère avec l'expérience de son entraînement, ses datas (connaissances), effectue une analyse sémantique (analyse le sens de la phrase), puis rajoute le mot qui a le plus gros pourcentage de réussite. Rien de plus mais avec les milliards de paramètres il donne l'impression d'être intelligent, il faudrait plutôt l'appeler "connaissance artificielle".
Pendant la phase d'entraînement le LLM a accès a toutes les bibliothéques nationales, a tout le web, toutes les publications, à certains forums, etc.
Elon Musk à déclaré il n'y a pas longtemps que pour son LLM GROK (xAI) ils étaient arrivés au maximum de ce qu'on pouvait injecter à une IA, il faudrait maintenant inventer des données !
- Pour un modèle 70b (70 milliards de paramètres) ses connaissances équivalent à celles d'un humain qui aurait lu 16 milliards de livres !
- Se termine souvent par des sigles:
. 2b (2 milliards de paramètres), 7b (7 milliards de paramètres), 70b (70 milliards de paramètres), etc.
. Instant, Instruct, des mots commerciaux pour dire que ces modèles ont été entraînés particulièrement pour la conversation.
- Pour l'installation se faire aider par un gros LLM pour démarrer, les scripts python, etc., on n'est pas obligé de tout savoir non plus.
- Matériel: PC assez récent mais pas obligé d'avoir une bête de course pour faire tourner un petit modèle. Pas la peine d'y penser avec un pentium4. Je fais tourner une IA sur mon Raspberry PI5.
- A savoir: un LLM est créé puis entraîné pendant un certain temps, puis à l'issue mis sur le marché. Son entraînement a pris fin mais il continue à s'entraîner avec vous et vos questions, la raison de la version free des IA et en récupérant par la même occasion toutes les infos que vous pourrez lui donner ( d'ou l'adage bien connu: "Quand c'est gratuit c'est vous le produit...").
Par exemple on peut demander des infos sur le PI4 à gemma:2b mais elle dira que le PI5 n'existe pas car elle a été mise sur le marché avant sa sortie.
IA embarquée sur RAspberry PI5 8Go:
- J'ai commencé par installer gemma:2b sur mon cyberdeck PI5, çà fonctionnait bien mais elle mettait entre 30 secondes et 1mn pour répondre, trop long. Ca aurait été sans doute mieux avec un PI5 16Go.
- Je suis ensuite passé sur un modèle dans le cloud, hébergé chez Groq (fabricant de puces IA, ne pas confondre avec le LLM GROK de xAI). On ouvre un compte chez Groq et demande une API (gratuite) pour faire tourner un des modèles open-source qu'ils mettent en ligne.
- Avantage: je tourne pour l'instant sur Llama-3.1-8b-Instant, bien plus puissant, hyper rapide, réponse immédiate.
- Inconvénient: fil à la patte RJ45, le modèle n'est plus hébergé sur le cyberdeck, attention aux données persos à ne pas communiquer à l'IA.
Fonctionnement d'une IA embarquée:
Pour injecter des connaissances à notre IA embarquée (lui donner des infos sur les PIC, lui apprendre vos mots de passe, etc.) il faut lui injecter des fichiers.
C'est ce qu'on appelle de RAG (Retrieval-augmented-Generation) (Génération augmentée de Récupération).
On associe à notre IA embarquée une base de données, pour la mienne j'ai choisi ChromaDB, cette base de donnée est hébergée sur notre machine.
Les fichiers sont découpés en chunks (petits paragraphes, suites de mots, etc.). La longueur des chunks est fonction de la machine qui fait tourner l'IA, pour exemple sur le PI5 je ne peux pas aller au-dessus de chunks de 500 tokens, cette limite est un maximum, mes chunks peuvent être de longueur variable et souvent plus petits.
Ces chunks sont ensuite vectorisés (transformés en une longue suite de nombres) et stockés dans la base de données (ChromaDB).
Ce travail (découpage en chunks, vectorisation) est effectué par un "Retriever" (souvent une IA spécialisée). On peut soit utiliser un retriever open-source qu'on héberge sur notre machine, soit un retriever sur le cloud (j'utilise un retriever (sentence-transformer/all-MiniLM-L6-V2) hébergé chez Hugging-face via une API gratuite chez eux).
Le fonctionnement de tout cela est lié par seulement deux scripts pythons (on se fait aider par un gros LLM pour les pondre, ils font çà très bien). Pour faire tourner mon IA je n'utilise que deux scripts : ingest.py pour injecter/vectoriser des fichiers et chat.py pour discuter et récolter les infos.
--------------------------------------------------------------------------------------------------------------------------------------------------------
Salut tout le monde,
Pour cet hiver j'avais prévu de continuer le projet Rubik et de me mettre à l'asm 16bits, et évidemment je suis parti dans autre chose.
Multi-lièvriste.
A force de leur poser des questions je me suis aperçu que les IA (toutes, même les grosses) étaient très performantes avec tous les langages évolués (C, C++, C#, Python) mais des vraies tanches en asm PIC
Je me suis amusé à leur poser des questions simples, genre hello world sur une led et elles me répondent en général en inventant des mnémoniques ou à moitié C, il y en a même une qui m'a fait un mix asm/python.
Alors j'ai posé cette question à Gemini, ChatGPT, Grok et les réponses sont les mêmes " parce que nous sommes entraînées en cherchant sur le web et les documentations, que les langages évolués sont largement représentés et que l'asm PIC est une toute petite niche peu représentative".
Vexantes en plus.
Moi de mon coté j'ai envie de me faire un majordome style J.A.R.V.I.S de Iron-Man avec la personnalité d'Alfred de Batman. Mais un majordome qui cause en python ne me sert à rien, d'ou l'idée de lui apprendre l'asm.
Pour cela je suis en train de construire un deuxième cyberdeck avec le PI5 qui me reste, 2 écrans et double arbre à cames en tête (le premier cyberdeck équipé du PI4 est réservé au pilotage de mes cnc), il est presque terminé et il servira à N.E.S.T.O.R ( Noyau Evolutif & Système Taquin Orienté Raillerie), je vais aussi lui apprendre l'humour. Il ne me reste qu'à recevoir deux UBECs pour le finaliser.
En attendant j'ai chargé plusieurs petites IA dans mon PC pour me faire la main et une culture. Je les ai testées et j'ai gardé seulement gemma-2-2B qui semble faire le job. Il y a tout un éco-système à installer et c'est très intéressant, on comprends le fonctionnement d'une IA, le traitement des questions, le traitement des réponses, comment tout est vectorisé dans un rag, etc., çà démystifie bien le truc.
Finalement "Intelligence Artificielle" n'est pas la bonne appellation, il faudrait plutôt parler de "Connaissance Artificielle".
Tout cela est maintenant fonctionnel sur mon PC (je migrerai ensuite sur le PI5) et je vais commencer à lui injecter des données pour lui apprendre l'asm, le projet est vaste et je n'ai pas une équipe d'ingénieurs d'OpenAI à mon service, pour ne pas me perdre je vais me concentrer dans un premier temps sur le PIC18F2525/4525 que je connais bien, et lui injecter aussi certaines parties du cours de Bigonoff. Suivant les résultats on verra pour aller plus loin, pourquoi pas lui injecter ensuite l'asm 16bits ? Un sacré boulot mais passionnant.
Je vous tiens au courant.
