Radjaïdjah Blog

lundi 12 février 2024

Mistral Local - déploiement d'un modèle de langage hors-ligne

Un modèle de langage (LM) est un modèle mathématique permettant à une machine d'analyser statistiquement les composants d'un texte. Un modèle de langage vise fondamentalement à prédire le le symbole (lettre, syllabe, mot...) suivant une séquence, ce qui s'étend à la génération de texte humain. Il existe plusieurs types de modèles de langage qui fonctionnent sur différents principes, tels que les modèles n-grams, les réseaux de neurones récurrents (RNN) et plus récemment, les grands modèles de langage (LLM)[1].

Une bonne introduction pratique est Brilliant: how LLMs work (nécessite un compte).

Alors qu'il est populaire d'interagir avec des LLM come ChatGPT via une interface web qui se connecte sur les serveurs d'OpenAI, ou par des API distantes, des alternatives existent.

Entre autres, l'approche de faire tourner un modèle en local (sur son ordinateur ou sur un VPS par exemple) présente certains avantages.

  1. Fonctionnement hors-ligne, aucune connexion à Internet n'est nécessaire.
  2. Accès à divers modèles (Llama 2, Vicuna, Mistral, OpenOrca, etc) potentiellement via une interface unifiée.
  3. Respect de la vie privée : aucune information ou métadonnée n'est transmise à un serveur distant.
  4. Expérimentation: le contrôle de paramètres locaux offre une exploration en profondeur les modèles open-source.
  5. Coût : les modèles open-source sont gratuits et certains d'entre eux peuvent être utilisés commercialement sans restrictions.

Quelques solutions de traitements locaux de modèles de langage :

  • Ollama - Application open source permettant d'interagir localement avec des LLM
  • Jan - Alternative open-source et auto-hébergée à ChatGPT
  • LM Studio - Application propriétaire de Element Labs permettant d'intergir localement avec des LLM
  • oobabooga - Une interface web locale pour les LLM

À noter que ces clients utilisent llama.cpp, une librairie créée par Georgi Gerganov.

Quelques modèles à expérimenter :

sorrytobreakit-prompt-engineering.png

Ressources

Hugging Face - La plus grande communauté AI et de nombreuses ressources logicielles

LocalLLaMA - Subreddit sur les LLM locaux

There's an AI for that - Répertoire d'outils AI

Note

[1] Par souci de concision on confondra ici les LLM avec les mélanges d'experts (MoE).

mercredi 28 juin 2023

Launch of jewart.ai

The Radjaidjah Blog presents the jewart.ai project, paintings around judaism created through the prism of Artificial Intelligence.

mercredi 11 avril 2018

The dark side of technology II

After the dark side of chocolate and the dark side of intelligence, here is the second part of The dark side of technology, aka Charlie Brooker's third season of the mini-series Black Mirror.

  • 3x01 - Nosedive - A funny trip to a high-class wedding, or a dive inside a world where your personal online score is a real-life access key. Themes: social media, peer pressure, virtual life, online scores.

Black_Mirror_3x01.png

  • 3x02 ★ - Playtest - An American traveler short on cash signs up to test a new gaming system using a revolutionary implant. Themes: VR, entertainment, game, experiments, memory, fear.

Black_Mirror_3x02.png

  • 3x03 ★ - Shut Up and Dance - Kenny's fun suddenly turns into a blackmail situation involving allying with a strange individual. Themes: privacy, blackmail.

Black_Mirror_3x03.png

  • 3x04 - San Junipero - A transcendental connection between two girls. Themes: bonding, party, VR.

Black_Mirror_3x04.png

  • 3x05 - Men Against Fire - Some soldiers, some mutants, a war. Themes: eugenics, perception, brain.

Black_Mirror_3x05.png

  • 3x06 ★ - Hated in the Nations - In near-future London, police detective Karin Parke, and her tech-savvy sidekick Blue, investigate a string of mysterious deaths with a sinister link to social media. Themes: democracy, death, social media, drones.

Black_Mirror_3x06.png

Best episodes are starred.

mardi 10 avril 2018

Deepdream, paréidolie algorithmique

Comment les robots rêvent-ils du monde ?

Quelques expériences d'inceptionnisme avec caffe (merci à 贾扬清), le notebook ipython deepdream et le logo d'Ethereum.

deepdream-ether-ref-conv2.gif

deepdream-ether-reduce.gif

deepdream-ether-incep.gif

N'hésitez pas à enregister les gifs pour les voir tranquillement en local si l'animation est trop lente, ou à aller voir d'autres démos.

Pour des effets similaires sur des images de votre choix (portrait, etc), les commandes sont ouvertes, pour un prix modique ! -> commentaires.

mercredi 26 avril 2017

Uncaptcha me

Celles et ceux qui ont déjà posté un commentaire sur le Radjaïdjah Blog ont remarqué qu'ils avaient dû résoudre un petit problème de maths afin de valider l'envoi de leur message.

Ceci afin d'éviter le spam des commentaires par des robots. En effet, le serveur du blog compare le résultat entré par l'utilisateur avec la solution du problème mathématique, et en cas de discordance envoie le commentaire dans un vortex du cyberespace (/dev/null pour les intimes).

En vérité cette protection élémentaire contre le spam est assez facile à contourner.

La plupart des sites voulant s'assurer que l'utilisateur est humain ont recours à des CAPTCHAs (Completely Automated Program to Tell Computers from Humans Apart).

Toute personne dotée de l'esprit d'un programmeur a un jour voulu passer un CAPTCHA de façon automatisée.

Un entraînement à cela est offert via CAPTCHA me if you can, un défi où il s'agit de se poser les bonnes questions (et trouver les bonnes réponses) afin de coder la validation automatique d'un CAPTCHA élémentaire, comme par exemple :

Uncaptcha Me

Plus généralement, root-me propose de nombreux défis ayant trait à la sécurité informatique, répartis dans diverses catégories :

  • App - Script
  • App - Système
  • Cracking
  • Cryptanalyse
  • Forensic
  • Programmation
  • Réaliste
  • Réseau
  • Stéganographie
  • Web - Client
  • Web - Serveur

Entre analyser des ELF, décoder le traffic réseau, identifier des antécédents de hashs, utiliser parcimonieusement la mémoire pour insérer des overflows, trouver rapidement un terme lointain d'une suite récurrente, retrouver une image XORée, et bien plus encore, le site root-me, une plateforme d'apprentissage dédiée au hacking et à la sécurité de l'information propose une large palette d'exercices qui ravira petits et grands.

Un test de Turing est une catégorisation de comportement parmi deux groupes : humains et ordinateurs. Un CAPTCHA est ainsi suppposé être à même de valider la preuve d'un travail humain. Ce qui s'oppose à la preuve de travail informatique (proof of work) sous-jacente à la validation des blocs au sein du protocole Bitcoin, qui est basée sur l'idée du Hashcash, originalement conçu pour... la lutte anti-spam pour les e-mails.

mercredi 19 octobre 2016

VR Porn

Le titre ? Simplement pour appâter le chaland, vous croyiez quoi ?

Le monde de la réalité virtuelle grand public se divise en deux catégories :

  1. les systèmes dédiés : des casques intégrant tout le hardware VR (type Oculus Rift)
  2. les systèmes modulaires : des casques servant de boîtier à un smartphone

Cet article n'évoquera que la deuxième catégorie, les systèmes modulaires. popularisés grâce à la généralisation des smartphones comportant écran et capteur d'angles.

Il y a tout d'abord la version cheap : le boîtier en carton où se glisse un smartphone, dont le précurseur est le Google Cardboard (un projet imaginé par deux Français pendant leur temps libre).

Il y a ensuite la version sophistiquée, casque avec sangle, vision périphérique couverte, distance focale réglable, gamepad bluetooth, etc, dont de nombreuses variétés peuvent être trouvées sur AliExpress.

Quelques applications VR :

Prometteur !

lundi 28 septembre 2015

RoboZZle

...ou comment s'initier à la programmation via des jeux sérieux (serious games).

Lightbot est un petit jeu de logique qui propose aux plus jeunes et aux débutants d'appréhender des concepts de programmation comme les instructions, les branchements conditionnels, les boucles, etc, sans avoir à taper du code. Lightbot est un jeu de logique, un casse-tête dont le fonctionnement est basé sur des concepts de programmation. Le jeu est très esthétique, l'objectif de chaque niveau est d'aider un robot à allumer des cases au moyen de commandes.

robozzle-lightbot.png

Jouer en ligne à Lightbot.

Application version junior (4-8 ans) pour smartphone/tablette : Android, iOS.

Application version standard (9 ans et plus) pour smartphone/tablette : Android, iOS.

Robozzle est un jeu plus avancé créé par Igor Ostrovsky, dont le principe est très bien expliqué par le CANOPÉ d'Amiens : étant donné un terrain (constitué de cases carrées bleues, rouges, vertes ou "vides"), comportant une liste d'objectifs (des étoiles), et une position et direction initiale pour un robot, il faut fournir un programme pour le robot qui le fasse passer par tous les objectifs, en un nombre limité (1000) d'étapes et sans sortir du terrain ni passer par une case "vide".

robozzle-icon.png

Le programme du robot est organisé en plusieurs "fonctions", nommées F1 à Fn (avec n variant selon le niveau), et comportant chacune un nombre de pas de programme limité, selon le niveau. Sans inscription pour jouer directement ou avec inscription pour créer vos propres puzzles. Le "langage" du robot est constitué des instructions suivantes (selon le niveau, toutes les instructions ne sont pas nécessairement disponibles) :

  • Avancer
  • Tourner de 90° à droite
  • Tourner de 90° à gauche
  • Appeler une des fonctions (le robot gère une pile d'appels classique)
  • Fixer la couleur de la case actuellement occupée par le robot à une des trois couleurs de terrain.

Toute instruction peut de plus être conditionnée par une des trois couleurs de terrain, auquel cas le robot n'exécutera cette instruction que s'il se trouve sur une case de la couleur correspondante.

Quelques niveaux standards / rigolos : Simple Loop (màj : ne semble plus exister), , Simple Cross,Flooder (màj : ne semble plus exister), Cube Extreme, Turn around.

Pour apprendre l'empilement et la récursion : Recursion Review, Learning Stack, Boomerang, Second kind of memory, Limit yout stack!.

Plus difficiles mais qui en valent la peine : learning the call stack, Power-of-2 generator.

Jouer en ligne à RoboZZle (version javascript), il y a aussi une app : RoboZZle Droid.

Fix the Factory est un jeu similaire, développé par Lego, où un robot doit traverser une salle en contournant les différents obstacles.

Une autre façon visuelle de programmer est la programmation diagrammatique, du style de Lego Mindstorms ou de LabView.

Un jeu de plateau similaire et plus guerrier : Roborally.

Scratch, enfin, est un environnement pédagogique complet développé par le MIT dédié à l'apprentissage de la programmation.

Source : CANOPÉ Académie d'Amiens

mardi 13 janvier 2015

The dark side of technology

After the dark side of chocolate and the dark side of intelligence, here is evoked the dark side of technology, explored by Charlie Brooker's mini-series Black Mirror.

  • 1x01 ★ - The National Anthem - Upon the abduction of the Queen's daughter, a mysterious kidnapper has a bizarre request. Themes: social media, peer pressure, utilitarianism.

Black_Mirror_1x01.png

  • 1x02 ★ - Fifteen Million Merits - In a world where low-rank people operate bikes to power their environment, there is one escape: a X-factor-like TV contest. Or is there? Themes: TV show, entertainment, systems, rebellion, purpose.

Black_Mirror_1x02.png

  • 1x03 - The Entire History of You - In these days most of people are equipped with a device recording their life, and can at any moment replay or share any part from its databank. Trust issues arise within a hi-tech couple as the wife refuses to show some episodes of her own past. Themes: device implantation, privacy, openness, augmented reality, memory.

Black_Mirror_1x03.png

  • 2x01 - Be Right Back - The sudden death of her husband leads a woman to use a new online service that lets people stay in touch with a virtual version of the deceased. Themes: death, memory, IA, social media.

Black_Mirror_2x01.png

  • 2x02 - White Bear - A woman wakes up only to find herself and a bunch of allies chased by costumed characters, while ordinary people record the hunt on their smartphones. Flashes trigger blurry memory flashbacks. Themes: memory, justice.

Black_Mirror_2x02.png

  • 2x03 - The Waldo Moment - The rise of a virtual candidate and the fall of its human interpreter. Themes: political campaigns, social medias.

Black_Mirror_2x03.png

  • Special ★ - White Christmas - A 3-part dialog in a wooden outpost of two men sharing their troubled past. Themes: memory, augmented reality, coaching, slavery.

Black_Mirror_Sx01.png

Best episodes are starred.

jeudi 29 mai 2014

Le jeu d'échecs résolu

Le moteur libre Stockfish a remporté la sixième édition du Thoresen Chess Engine Competition (TCEC), après avoir vaincu en finale le moteur commercial Komodo.

L'occasion de se remémorer que le joueur cubain José Raúl Capablanca racontait souvent l'histoire suivante à ses amis.

« Un jour je disputais un tournoi en Allemagne quand un homme s'est approché de moi. Je pensais qu'il voulait simplement un autographe et j'ai commencé à sortir mon stylo, mais l'homme m'a regardé et m'a dit : "J'ai résolu le jeu d'échecs." J'ai promptement reculé, au cas où l'homme eût été dangereux en plus d'être fou, mais il continuait : "Je vous parie 50 marks que si vous venez dans ma chambre d'hôtel je pourrai vous le prouver." Bon, 50 marks sont 50 marks, donc j'ai souri au monsieur et l'ai accompagné jusqu'à sa chambre. »

« Là-bas, nous nous sommes installés devant son échiquier. "J'ai tout calculé, les blancs gagnent en 12 coups dans tous les cas.", a-t-il déclaré. J'ai joué avec les noirs, peut-être avec un peu d'inattention car je me suis rendu compte au bout d'un moment que les pièces blanches étaient mystérieusement coordonnées, et que j'allais être maté au 12e coup !  »

« Nous avons rejoué, et j'ai débuté par une ouverture complètement différente qui ne pouvait pas résulter dans une position similaire, mais après une série de mouvements bizarres, mon roi s'est retrouvé assiégé, avec mat à suivre au 12e coup. J'ai alors demandé à l'homme d'attendre quelques instants et je suis descendu chercher Emanuel Lasker, qui fut champion du monde avant moi. Il était extrêmement sceptique, mais il a accepté de venir et de jouer. En chemin nous avons récupéré Alexandre Alekhine[1], qui était le champion du monde actuel, et nous sommes allés tous les trois à la chambre. »

« Lasker n'a pas attaqué, il a joué aussi prudemment que possible, et pourtant après quelques manoeuvres en apparence insensées, il s'est retrouvé piégé dans un schéma fatal d'où il ne pouvait s'échapper. Alekhine a également joué sa chance, mais pour le même résultat. »

« C'était horrible. Nous étions là, les meilleurs joueurs de l'histoire, qui avions consacré nos vies à ce jeu, et c'était fini ! Les tournois, les matches, tout... le jeu était résolu, les blancs gagnent. »

À ce moment du récit, un ami de Capablanca l'interrompait en demandant : « Une minute, je n'ai jamais entendu parler de cette histoire... Qu'est-il devenu, ce monsieur ? »

« Pourquoi cette question... nous l'avons tué évidemment. »

Note

[1] Le capitaine de l'équipe de France aux Olympiades d'Argentine.

mardi 7 janvier 2014

La triche aux échecs

Une épreuve difficile que celle proposée par Gregory Conti et James Caroland à leurs élèves : restituer par écrit les cent premiers chiffres de pi, le rapport entre le périmètre d'un cercle et son diamètre (3,14159265...). La particularité de ce test est que les élèves avaient explicitement la possibilité de tricher et que la note attibuée reflèterait l'efficacité et l'originalité de la méthode employée, sur la base : pas vu, pas pris. La synthèse de cette expérience Embracing the Kobayashi Maru: Why You Should Teach Your Students to Cheat en recense certaines (antisèche cachée dans un faux livre ou une fausse canette, sur un ordinateur, réponse codée en mandarin...) qui le soulignent bien : tricher demande parfois de faire preuve de créativité.

C'est en pratique dans le domaine des échecs que ce constat a été illustré récemment. Tricher lors d'une partie, c'est jouer des coups que l'on n'a pas trouvés soi-même, mais par une entité extérieure (un autre joueur, ou un ordinateur[1]). Quelles que soient les motivations qui animent un tricheur, le phénomène est considéré comme un grave manquement à l'éthique du jeu et toute tentative avérée discrédite un joueur de façon quasi-irréversible (l'honneur c'est comme les allumettes...). Au-delà de cela, les deux exemples suivants démontrent une certaine créativité dans la mise en place de la triche.

Dans le premier cas, trois Français ont agi de concert pour tricher. Si on voulait romancer un peu la méthode déployée, il y aurait "l'analyste", "le messager", et "le joueur". Le joueur participe à un tournoi et dispute les parties. Le messager est présent dans la salle du tournoi, comme spectateur. Enfin, l'analyste est dans un endroit externe, avec un ordinateur. Il suit la partie du joueur sur internet, fait analyser les positions par un logiciel échiquéen (type Fritz, Shredder, Houdini, ou Rybka), et note le coup proposé par l'ordinateur, qui joue donc la même partie que le joueur. Il envoie ensuite le coup au messager par SMS, en le dissimulant dans un anodin numéro de téléphone (en cryptologie, on parlerait de stéganographie) : certains chiffres du numéro codent la notation internationale du coup à jouer. Le messager déchiffre le SMS et va signaler le coup à jouer au joueur en se plaçant à certains endroits prédéterminés de la salle pendant un certain temps. Le joueur repère alors les positions successives du messager, et joue le coup correspondant. L'adversaire réplique, la nouvelle position est aussitôt retransmise sur Internet, et l'analyste peut enchainer. En remplaçant le joueur par un enfant de dix ans, on assisterait à la démonstration d'un prodige.

(source)

Dans le second cas, il s'agit d'un joueur bulgare qui agit sans complice ; le joueur a un ordinateur miniature (type smartphone) muni d'un logiciel d'analyse dans sa chaussure et communique avec à l'aide de ses orteils. Peut-être une inspiration de la nouvelle Nora says "Check" de Martin Gardner ? Bien que la triche n'ait pas été formellement avérée, il existe un faisceau de présomptions assez impressionnant, basées sur le comportement du joueur durant certains tournois, et, plus intéressant, sur ses performances et sur les coups qu'il a joués. En effet d'une part les résultats enregistrés lors de ces tournois constituaient une aberration statistique en regard des performances attendues en vertu du classement ELO, d'autre part de très fortes corrélations ont été relevées entre les choix du joueur et les coups proposés par un ordinateur disputant la même partie. Il faut en effet savoir que, les ordinateurs basant leurs choix sur le calcul pur et les humains donnant une part plus importante à l'intuition, dans une même position ils ont tendance à jouer des coups différents. Ce qui a amené un M. Regan à proposer une sorte de test de Turing échiquéen[2] indiquant, au vu de ses coups, à quel point un joueur est susceptible d'être un ordinateur. Ce même type de méthodes est utilisé sur certains sites d'échecs en ligne pour détecter les internautes utilisant un programme pour jouer à leur place.

(source)

Complément : A history of cheating in chess, en 4 parties. 1 raconte l'histoire d'une feinte et un épisode de vraie triche, 2 parle du Turc mécanique et de l'avènement des ordinateurs aux échecs, 3 évoque l'Allemand Allwermann qui préfigure le second cas ci-dessus, et enfin 4, à partir de deux anecdotes sur un apport minimal d'information externe, envisage les performances d'un duo homme-machine (ce que Kasparov appelle advanced chess).

Bonus : Major Fraud, un reportage sur des tricheurs en carton au jeu télévisé Who wants to be a Millionaire (épisode qui a peut-être inspiré le film Slumdog Millionnaire).

En conclusion, il n'y a pas de conclusion. Bonne année 2014 !

Notes

[1] Les ordinateurs sont aujourd'hui meilleurs que les humains aux échecs. Sauf peut-être en chessboxing, si on commence par la boxe.

[2] Une illustration de la logique sous-jacente est apportée par la parabole du golfeur.

jeudi 6 octobre 2011

L'avenir des sciences de l'information

Cette semaine, une célèbre entreprise américaine (3 lettres) fêtait ses cent ans, et organisait à cette occasion une conférence sur l'avenir des sciences de l'information.

L'orateur, Marc Dupaquier, est revenu sur la victoire d'un ordinateur développé par l'entreprise, Watson, face à deux adversaires humains au jeu télévisé Jeopardy. On se souvient qu'en 1997 l'ordinateur Deep Blue avait vaincu le champion du monde d'échecs en titre Garry Kasparov 3½–2½. Le Jeopardy est autrement plus difficile à apprendre pour un ordinateur, car le jeu consiste à deviner les questions menant aux réponses qui sont affichées, et tout cela est basé sur le langage humain. D'après Marc Dupaquier, la chaîne diffusant le Jeopardy a modifié la logique des questions juste avant l'émission, ce qui a eu pour conséquence que Watson a au début de l'émission proposé des réponses complètement erronées, avant de s'adapter à cette nouvelle logique grâce à de subtils mécanismes autocorrecteurs intégrés. Marc Dupaquier n'a pas donné de détails (c'est un marketing guy) mais on peut penser aux mécanismes d'autoapprentissage associés aux réseaux neuronaux. Watson a été par la suite une ressource dans un domaine complètement différent, la recherche médicale : il aurait effectué des diagnostics corrects sur des cas spécifiques en quelques minutes, face à plusieurs semaines pour une équipe de professionnels.

Watson n'est pas connecté à Internet, il embarque son propre système de connaissances, comme Wolfram Alpha. Face à ces deux systèmes "propriétaires", il existe une autre approche d'informatisation et de traitement des connaissances via l'intelligence artificielle : le web sémantique, sur lequel on aura l'occasion de revenir (ici).

Sur le futur, Marc Dupaquier a évoqué diverses approches envisagées pour l'augmentation des capacités de calcul (vers l'exaflop) et la miniaturisation. Un des objectifs est de faire passer le volume de Watson de 10 grands racks à la taille d'une tablette en une dizaine d'année. Les buzzwords associés : passage à la conduction optique, tridimensionnalisation de l'architecture, parallélisation, utilisation de nanotubes de carbone, de graphène, de dérivés polymères, spécialisation des systèmes.

Avec l'évolution de ces technologies devrait apparaître, selon l'orateur, toute une gamme de nouveaux domaines et de nouveaux métiers. Entre autres, tout deviendra smart : les feux rouges, les systèmes de gestion d'eau, les villes, etc. Cela ne viendra pas sans interrogations éthiques et philosophiques. L'infoéthique, ou informatique éthique, devient une problématique de plus en plus importante au fur et à mesure que l'informatique s'immerge dans notre quotidien. Et face aux puissances de calculs surhumaines qui sont développées, se pose la question de la place de l'être humain.

Enfin, devant l'influence croissante des technologies sur notre vie, il serait bienvenu que les personnes qui orientent la société en comprennent bien les divers enjeux. Cela appelle donc à une place plus importante des scientifiques dans la sphère politique.