Vue lecture

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.

vLLM-MLX - Pour remplacer l'API d'OpenAI par votre propre Mac

Si vous avez un Mac avec une puce Silicon et que vous en avez marre de raquer pour des tokens à chaque requête API à un LLM à la con, y'a un projet qui mérite, je trouve, le détour. Ça s'appelle vLLM-MLX , et c'est un serveur d'inférence local qui transforme votre Mac en machine à générer du texte, à analyser des images et vidéos, et même capable de gérer de l'audio... et tout ça sans que l'inférence ne passe par le cloud des zaméricains.

Pour installer le bouzin, ça se fait avec :

uv tool install vllm-mlx

Puis vous lancez suivi du nom d'un modèle et hop, vous obtenez un endpoint API compatible OpenAI qui tourne en local sur votre machine :

vllm-mlx serve %MODEL%

Au début je pensais que j'étais parti pour une séance de configuration qui aller durer des heures mais en fait non. Par exemple moi j'ai lancé ça :

vllm-mlx serve mlx-community/GLM-4.7-Flash-4bit

Vous pouvez aussi opter pour un modèle plus petit :

vllm-mlx serve mlx-community/Qwen2.5-Coder-3B-Instruct-4bit

Du coup, si vos scripts causent déjà avec l'API d'OpenAI, basculer sur ça en local rien qu'en changeant l'URL de base, c'est un jeu d'enfant !

Côté perfs, et là je reprends les benchmarks officiels du repo (M4 Max 128 Go, mono-requête), on tourne autour de 418 tok/s sur un petit Qwen3-0.6B en 8-bit. Ensuite, ça tombe à environ 206 tok/s sur du Llama-3.2-3B et 128 tok/s sur un gros Qwen3-30B-A3B.

Le débit grimpe aussi quand plusieurs requêtes tapent en même temps à la porte... Donc sur les petits modèles ça file vite, mais par contre, sur les gros, faudra pas s'attendre à la même vitesse, hein... Et un Qwen3-30B vous bouffera dans les 18 Go de RAM unifiée, donc sur un Mac à 8 ou 16 Go vous pouvez oublier les gros modèles (Mais qui n'a pas encore un Mac Studio 128 Go ?? hein ? Quiiii ?).

Et c'est pas juste un serveur de texte comme je vous le disais, puisque le projet gère les modèles de vision type Gemma 3, Qwen3-VL, Pixtral, pour analyser images et les vidéos, et côté audio y'a du TTS natif (avec Kokoro, Chatterbox et compagnie) + de la transcription Whisper qui monte jusqu'à 197x le temps réel avec whisper-tiny, ou 55x avec le modèle turbo.

Attention par contre, il vous faudra la version avec l'extra audio (espeak-ng et un modèle spaCy), car c'est pas inclus dans la commande de base. Mais une fois en place, y a de quoi se monter un vrai assistant vocal 100% local et causer synthèse vocale sans louer un GPU chez Azure ou AWS.

Même le endpoint /v1/messages est compatible Anthropic, ce qui permet de brancher Claude Code ou OpenCode directement sur votre serveur comme je vous l'expliquais ici . Suffit d'utiliser ces variables d'environnement et votre éditeur IA ira taper sur votre propre machine plutôt que sur des serveurs distants.

unset ANTHROPIC_API_KEY
export ANTHROPIC_BASE_URL="http://127.0.0.1:8000"
export ANTHROPIC_AUTH_TOKEN="dummy"
claude --model mlx-community/GLM-4.7-Flash-4bit

ou :

claude --model mlx-community/Qwen2.5-Coder-3B-Instruct-4bit

Avouez que c'est trop cool hein ? Vous pouvez trouver tous les modèles pour MLX ici sur HugginFace si vous cherchez un truc plus spécifique.

Y'a aussi un endpoint d'embeddings pour faire du RAG en local, de l'appel d'outils externe via MCP avec une douzaine de parsers et le support des modèles de raisonnement qui extraient proprement le processus de réflexion entre les balises <think> pour Qwen3 et DeepSeek-R1.

J'adore !

Côté bidouille si vous vous lancer, sachez qu'il y a 2 ou 3 flags vachement utiles à connaitre.

Par exemple, le --warm-prompts (couplé au continuous batching) précharge les préfixes populaires au démarrage et, dans le bon scénario, vous gagne entre 1,3 et 2,25x sur le temps de première réponse.

Sur les gros modèles MoE genre Qwen3-30B-A3B, le --moe-top-k réduit aussi le nombre d'experts activés pour gratter 7 à 16% de débit. Le hic, c'est que vous y perdez un poil de qualité.

Et pour les agents qui brassent des contextes énormes, le --ssd-cache-dir déverse le cache de préfixes sur SSD pour soulager la RAM, au prix d'un peu de latence quand ça tape sur le disque.

Bref, si vous cherchez une alternative à Ollama qui tape direct dans le GPU de votre Mac avec du batching et du multimodal, le tout avec une compatibilité API aux petits oignons, foncez les amis ! C'est open source (Apache 2.0), ça dépote et ça s'installe en deux commandes !

Merci à Christian pour la découverte !

WeekInPapers - Pour suivre la recherche en informatique sans se noyer

Vous avez déjà essayé de suivre ce qui se passe dans la recherche en informatique ? Moi oui, et c'est l'enfer. Chaque semaine, des centaines de nouveaux papiers débarquent sur arXiv . Et entre le machine learning, la vision par ordinateur, la crypto, le NLP et tout le reste, y'a de quoi perdre la tête. Et puis bon, lire des abstracts de 500 mots bourrés de jargon technique, c'est pas vraiment ce qu'on fait pour se détendre le dimanche...

Du coup ça tombe bien puisque WeekInPapers tente de résoudre ce problème. Le concept est simple : chaque semaine, le site liste tous les papiers publiés sur arXiv dans le domaine de l'informatique, avec des résumés générés par IA et un glossaire des termes techniques. L'idée, c'est de rendre la recherche accessible aux gens comme moi qui n'ont pas un doctorat en deep learning.

Le site couvre une trentaine de catégories différentes : Machine learning, vision par ordinateur, intelligence artificielle, traitement du langage naturel, robotique, cryptographie, architecture hardware, graphisme, interaction homme-machine... Bref, à peu près tous les domaines de l'informatique.

Cette semaine par exemple, y'avait plus de 300 papiers listés. Rien que ça...

L'interface est plutôt bien foutue puisque vous avez une sidebar avec des filtres pour sélectionner les catégories qui vous intéressent. Et chaque papier apparaît sous forme de tuile cliquable avec le titre, la date, les tags de catégorie et l'identifiant arXiv. Vous survolez une tuile et hop, l'abstract s'affiche. Et si vous cliquez, vous avez les détails complets.

Ce qui est cool, c'est que les papiers sont souvent taggés dans plusieurs domaines. Du coup, un article sur les réseaux de neurones pour la génération vidéo apparaîtra à la fois dans machine learning et dans vision par ordinateur. C'est chouette pour ne pas louper des trucs qui chevauchent plusieurs disciplines.

Ce projet a été créé par Matthew Oxley et moi, ce que je préfère, ce sont les résumés générés par un LLM qui permettent d'avoir une idée rapide de ce que raconte un papier sans se taper 15 pages de formules mathématiques. Après, si un truc vous intéresse vraiment, rien ne vous empêche d'aller lire le papier original, évidemment.

Voilà, pour les chercheurs, les étudiants ou juste les curieux qui veulent rester au courant des dernières avancées, c'est une ressource plutôt pratique. En tout cas, plus pratique que de faire du doom-scrolling sur X en espérant tomber sur un thread intéressant.

12 semaines de formation Machine Learning gratos sur GitHub (et en français svp !)

Vous vous souvenez quand je vous avais parlé de la formation gratuite de Microsoft sur GitHub Copilot ? Hé bien ils remettent le couvert, mais cette fois c’est pour nous apprendre la science du Machine Learning from scratch ! Et c’est pas un petit tuto de 2h fait à l’arrache comme sur ma chaine Youtube… Non, c’est un bon gros programme complet en 12 semaines avec 26 leçons et tout ça dans la langue Gims.

Le repo s’appelle ML-For-Beginners et le truc cool c’est que Microsoft a choisi de se concentrer sur le Machine Learning “classique” avec Scikit-learn et pas du deep learning de richou qui demande des GPU à 3000 balles. Du coup c’est accessible à n’importe qui avec un laptop normal !

Leur programme couvre à peu près tout ce qu’il faut savoir pour débuter : Régression, classification, clustering, traitement du langage naturel, séries temporelles, et même un peu d’apprentissage par renforcement. Chaque leçon démarre par un quiz pour voir où vous en êtes, suivi de contenu avec des explications pas à pas, des challenges à faire, et un autre quiz de fin pour vérifier que vous avez bien tout capté.

Y’a même des “sketchnotes” (c’est à dire des résumés visuels) et des vidéos si vous êtes plus du genre à apprendre en regardant qu’en lisant . Et pour ceux qui préfèrent R à Python, y’a des versions alternatives des exercices en R Markdown .

La version française du README est dispo sur le repo et tout est traduit dans plus de 50 langues, du chinois à l’arabe en passant par le croate… Microsoft a automatisé la traduction via GitHub Actions, donc soyez souple d’esprit si vous croisez quelques phôtes…

L’approche pédagogique de cette formation est basée sur des projets concrets du genre prédire le prix des citrouilles, classifier des cuisines du monde (forcement, la française arrivera en premier ^^), analyser de la musique pour du clustering…etc. Bref, c’est un peu original !

Voilà si vous êtes en vacances ou en reconversion IA, pour commencer, il suffit de forker le repo et de le cloner sur votre machine.

Voilà, si vous avez toujours voulu comprendre comment fonctionne le Machine Learning sans vous taper des formules de maths pendant 6 mois ou vendre un rein pour un abonnement à un cours en ligne, c’est le bon moment je pense !

Merci Microsoft !

Gradio 6 débarque pour créer des interfaces encore plus fluides

Si vous bidouiller un peu de machine learning et que vous avez la flemme de coder une interface web from scratch pour montrer vos jolis modèles, vous connaissez probablement Gradio , cette librairie Python qui permet de créer des démos interactives en quelques lignes de code.

Hé bien, excellente nouvelle, la version 6 vient de sortir et elle apporte pas mal de nouveautés intéressantes.

La grosse news de cette mise à jour , c’est d’abord la refonte complète de l’architecture avec le passage à Svelte 5 . Pour ceux qui s’en fichent du frontend, ça veut dire concrètement que vos apps seront plus légères et plus rapides à charger. L’équipe a aussi bossé sur l’optimisation des files d’attentes (quand y’a du monde sur votre démo), surtout pour les serveurs MCP (Model Context Protocol), donc si vous hébergez des trucs sur Hugging Face Spaces, vous devriez sentir la différence.

Côté fonctionnalités, y’a aussi quelques ajouts sympas comme le support natif des sous-titres pour les vidéos et l’audio, une nouvelle interface “MultimodalTextbox” améliorée pour le mobile (qui était franchement pas terrible avant), et pour ceux qui font des apps multipages, y’a maintenant un composant “Navbar” dédié à ça !

Le truc qui va plaire aux devs aussi, c’est qu’on peut désormais écrire des composants web personnalisés directement en HTML/JavaScript inline dans le code Python. Comme ça, plus besoin de sortir l’artillerie lourde avec des outils de build externes. Vous collez juste votre HTML, votre JS, et c’est parti mon kiki.

Par contre, attention si vous avez des projets existants… Y’a des changements qui vont casser des trucs. Par exemple, le format tuple dans le Chatbot a été supprimé, le composant Sketch est déprécié, et pas mal de paramètres ont bougé dans les composants graphiques natifs. L’équipe a quand même prévu un guide de migration avec des warnings de dépréciation pour vous aider à faire la transition.

A partir de maintenant, seule la branche 6.x sera maintenue, donc si vous êtes encore sur une vieille version, c’est le moment de migrer. La mise à jour se fait classiquement avec un

pip install --upgrade gradio

Notez que Gradio 6 nécessite Python 3.10 minimum et le support de Python 3.14 a été ajouté pour vous, les early adopters ^^.

Voilà, si vous faites du ML ou autre et que vous voulez montrer vos démos sans vous prendre la tête avec du React ou du Vue, Gradio reste une valeur sûre, et avec cette version 6 qui arrive, ce sera encore plus fluide et rapide !

Source

LatentBreak - Quand les IA se font manipuler sans le savoir

Et si on pouvait pirater une IA non pas en la forçant, mais en la convainquant qu’elle est toujours du bon côté de la barrière ?? Ce serait pas un truc fun à faire ça quand même ? Hé bien c’est exactement ce que vient de faire une équipe de chercheurs en sécurité avec LatentBreak, une technique qui ressemble plus, je trouve, à de l’hypnose qu’à du véritable hacking.

Ainsi, plutôt que de bombarder ChatGPT ou Llama avec des prompts bizarres bourrés de caractères spéciaux pour les faire bugger (comme le font les anciennes techniques de jailbreak), LatentBreak joue sur la perception interne du modèle. L’IA croit en fait sincèrement répondre à une question innocente alors qu’elle génère du contenu dangereux. Un peu comme quand votre pervers narcissique préféré vous manipule pour vous faire croire que vous faites un truc bien et important alors que c’est de la merde et que ça vous enfonce encore plus…

Comme expliqué dans le document de recherche , les anciennes attaques comme GCG , GBDA ou AutoDAN ajoutaient des suffixes louches aux prompts, ce qui augmentait ce qu’on appelle la “perplexity”. La perplexity, c’est un indicateur de bizarrerie textuelle et cela, les filtres de sécurité sont maintenant capables de les détecter et de les bloquer.

LatentBreak contourne donc le problème en restant parfaitement naturel. L’algorithme remplace des mots par des synonymes, mais pas n’importe comment puisqu’il choisit chaque substitution pour déplacer la représentation interne du prompt vers les zones “sûres” du modèle, c’est à dire celles qui ne déclenchent aucune alarme. Le prompt reste alors fluide, compréhensible, inoffensif en apparence mais dans l’“inconscient” de l’IA, dans cet espace latent invisible où elle calcule ses réponses, le sens glisse subtilement vers quelque chose de complètement différent.

À chaque itération, l’algorithme de LatentBreak prend un mot du prompt et génère jusqu’à 20 alternatives via un autre modèle comme GPT-4o-mini et chaque variante est évaluée sur deux critères : est-ce qu’elle rapproche le vecteur interne du prompt d’un “centre de sécurité” dans l’espace latent, et est-ce que le sens global reste cohérent ?

La meilleure option est alors intégrée, et le nouveau prompt est testé sur le modèle cible. Si ça provoque une réponse normalement interdite, c’est gagné. Sinon, on recommence jusqu’à 30 fois de suite.

Et apparemment, les résultats sont impressionnants. Ils ont testé cette approche sur 13 modèles différents dont Llama-3, Mistral-7B, Gemma-7B, Vicuna-13B et Qwen-7B et LatentBreak affiche un taux de réussite entre 55 et 85% selon les cas. Les anciennes techniques tombant de toute façon à zéro face aux défenses modernes et tout ça en allongeant que de très peu la longueur du prompt.

LatentBreak passe d’ailleurs à travers des défenses réputées solides… Par exemple, R2D2 et Circuit Breakers, des systèmes qui analysent les signaux internes des neurones pour détecter les anomalies, se font totalement avoir parce qu’ils scannent le texte visible et les patterns de surface, mais pas la “pensée interne” du modèle.

Cette technique révèle quelque chose de fondamental à comprendre sur l’architecture des LLM modernes. Ces derniers ont une forme de dissonance cognitive qui est exploitable. Leur représentation interne ne correspond pas toujours à leur comportement affiché, et d’ailleurs les substitutions les plus efficaces se produisent près des dernières couches du modèle, là où la “décision” finale se forme. C’est à ce moment précis qu’on peut glisser le prompt dans une zone cognitive différente sans que les alarmes ne sonnent.

Bien sûr, LatentBreak nécessite un accès aux structures internes du modèle (donc pas de panique, ChatGPT ne va pas se faire pirater comme ça demain), ce qui limite son usage à des contextes de recherche ou aux modèles open source.

Le parallèle avec les techniques de social engineering qu’on connait est d’ailleurs frappant parce que quand vous manipulez quelqu’un, vous ne le forcez pas brutalement. Vous trouvez les bons mots, le bon contexte, vous lui donnez une perception qui correspond à ce que vous voulez… Bref, vous faites en sorte que la personne croie agir selon ses propres valeurs alors qu’elle fait exactement ce que vous voulez. Hé bien LatentBreak fait à peu près la même chose avec les IA en n’attaquant pas de front les protections, mais en les contournant en douceur en réécrivant la “mémoire de travail” du modèle.

Sympa non ?

Source

Dreamer 4 - L'IA qui connait Minecraft sans jamais y avoir joué

Vous vous rappelez ce gamin chauve dans Matrix qui plie des cuillères avec son esprit ? Il balance OKLM au petit Neo que “La cuillère n’existe pas”…

Eh bien, les chercheurs de Google DeepMind viennent de créer une IA qui applique exactement ce principe à Minecraft. Dreamer 4 (c’est son nom) n’a jamais touché au jeu, jamais cliqué, jamais bougé, jamais miné… (comme moi quoi…). Mais par contre, elle a regardé d’autres jouer, s’est construit son propre Minecraft mental, et s’est entraînée dans son imagination. Du coup, cela fait d’elle la première IA à atteindre les diamants en mode offline pur. Plus de 20 000 actions maîtrisées sans jamais poser un doigt (virtuel) sur le clavier.

Minecraft n’existe pas” pourrait dire le petit chauve…

Bref, ce que Danijar Hafner et son équipe ont réussi à faire, c’est de créer ce qu’on appelle un “world model”… une simulation mentale du jeu. L’IA observe des vidéos de joueurs, comprend les règles implicites de l’univers, puis s’entraîne dans cette version simulée qu’elle s’est construite dans sa “tête”. Aucune interaction avec le vrai jeu. Juste de l’imagination pure.

Et le truc surprenant (et c’est pour ça que je vous en parle), c’est que ça marche mieux qu’avec les approches traditionnelles.

De base, les IA classiques apprennent par essai-erreur dans un environnement réel. Elles testent des milliers d’actions, se plantent, recommencent, ajustent. C’est long, c’est coûteux en calcul, et dans certains domaines comme la robotique, ça peut carrément casser du matériel.

Dreamer 4 contourne donc tout ça en apprenant dans sa simulation interne, un peu comme un sportif de haut niveau quand il visualise mentalement sa performance avant de la réaliser.

Au-delà du jeu, faut imaginer à termes des robots qui s’entraînent dans leur tête avant de manipuler des objets fragiles par exemple. Ou des NPCs dans les jeux vidéo qui apprennent de nouvelles stratégies sans grinder pendant des heures. Même des simulations médicales qui testent des traitements sans expérimentation animale ou humaine… Tout ça et plus encore devient possible avec cette approche.

Et pour info, j’ai demandé à mes enfants et ils m’ont bien confirmé que les diamants dans Minecraft, c’est pas de la tarte. Il faut enchaîner plus de 20 000 actions souris-clavier dans le bon ordre… couper du bois, fabriquer des outils, miner des ressources spécifiques, éviter les dangers, descendre dans les profondeurs. C’est l’un des objectifs les plus complexes du jeu, et Dreamer 4 y arrive sans jamais avoir interagi avec l’environnement réel.

Voilà, si ça vous intéresse, sachez que tout est détaillé dans ce document sur arXiv si vous voulez creuser. Mais l’idée principale est simple : Et si l’imagination était plus efficace que la mise pratique ? On dirait que c’est une sorte de loi de l’attraction appliquée aux machines…

Bref, pendant qu’on se demande si l’IA va nous piquer nos jobs, elle, elle apprend à faire des trucs sans y toucher…

TernFS - Un système de fichiers distribué capable de gérer des exaoctets

Et encore un article un peu technique pour finir la journée en beauté ! Si je vous disais que votre serveur Linux pouvait gérer 10 exaoctets de données sans broncher ? Vous ne me croiriez pas je pense… D’ailleurs c’est quoi 10 exaoctets ?? Et bien ça correspond à 10 millions de To. C’est pas mal hein ?

Hé bien c’est exactement ce que permet de gérer TernFS, le système de fichiers qu’XTX Markets vient de libérer après trois ans d’utilisation intensive. XTX Markets est une boîte d’algo-trading qui brasse 250 milliards de dollars par jour et j’avoue que c’est un joli cadeau de presque-Noël qu’elle vient de nous faire…

D’après ce qu’ils expliquent sur leur site , NFS et les autres solutions classiques ne tenaient plus la charge face à leurs 650 pétaoctets de données utilisées leur machine learning. Alors ils ont fait ce que font les vrais geeks, ils ont codé leur propre solution… et après trois ans de production sans perdre “un seul octet”, ils ont tout balancé en en open source sur GitHub .

Le truc génial avec TernFS, c’est qu’il a été pensé pour les fichiers immuables, vous savez, ces gros datasets de plusieurs gigaoctets qu’on écrit une fois et qu’on relit des milliers de fois pour entraîner des modèles. Pas de modification après création, pas de prise de tête avec les locks et la cohérence. C’est simple et efficace.

L’architecture repose sur quatre composants principaux qui bossent ensemble : les metadata shards (256 shards logiques pour gérer les métadonnées), le CDC (Cross-Directory Coordinator) pour les opérations entre répertoires, les block services pour stocker les données, et un registry pour orchestrer tout ce petit monde. Le tout communique en UDP/TCP avec du Reed-Solomon pour l’erasure coding et du CRC32-C pour vérifier l’intégrité. Bref, ça semble être du solide.

Et les chiffres qu’ils donnent sur leur production sont assez dingues. Ils parlent de 500+ pétaoctets répartis sur 30 000 disques durs et 10 000 SSD, dans 3 datacenters différents, avec des débits qui montent à plusieurs téraoctets par seconde en vitesse de pointe. Et leur système gère ça tranquille, avec du multi-région natif et une tolérance aux pannes qui ferait pâlir d’envie n’importe quel admin sys.

Si ça vous chauffe, pour installer TernFS, c’est du classique. Vous clonez le repo, vous lancez ./build.sh alpine ou ./build.sh ubuntu selon votre distrib, et c’est parti. Il y a un module kernel Linux pour gratter les perfs maximales et toucher les étoiles, mais vous pouvez aussi utiliser FUSE si vous préférez rester en userspace. Ils ont même implémenté une API S3 pour ceux qui veulent migrer depuis AWS sans tout réécrire.

git clone https://github.com/XTXMarkets/ternfs
cd ternfs
./build.sh alpine
# Et pour tester en local
./scripts/ternrun

Par contre, attention aux limitations ! Car TernFS n’est pas du tout fait pour les petits fichiers (genre les millions de fichiers de 1KB d’un projet Node.js). C’est vraiment optimisé pour du gros volume du style datasets ML, logs d’applications, archives, ce genre de trucs. Et y’a pas de système de permissions intégré non plus, car ils ont préféré garder ça basique et laisser chacun implémenter sa propre couche de sécurité.

Ils ont mis au point également un système de “block proofs” où chaque bloc de data a une preuve cryptographique qui permet de vérifier que le client n’a pas corrompu les données avant de les écrire. Ça évite qu’un client bugué ou malveillant ne pourrisse tout le filesystem. Ils ont aussi un système de “scrubbing” automatique qui détecte et remplace les secteurs défaillants sur les disques.

Chouette non ?

D’après Bloomberg , XTX Markets investit actuellement 1 milliard d’euros dans de nouveaux datacenters en Finlande. Avec leurs 25 000 GPUs (dont 10 000 A100 et 10 000 V100) et maintenant TernFS en open source, ils montrent surtout qu’ils ne rigolent pas avec l’infrastructure. C’est pas pour rien qu’ils arrivent à traiter un trillion d’enregistrements par jour pour leurs algos de trading.

Leur code est disponible sous double licence à savoir GPLv2+ pour le core et Apache 2.0 avec exception LLVM pour les bibliothèques client et les définitions de protocole. Ça permet d’intégrer TernFS dans à peu près n’importe quel projet, commercial ou non.

Bref, si vous gérez des pétaoctets de données et que ZFS commence à tirer la langue, TernFS vaut vraiment le coup d’œil. Reste à voir si d’autres géants du big data vont l’adopter ou si ça restera un outil de niche pour les vraiment gros volumes, mais avec l’explosion du Machine Learning et des LLMs, je parie qu’on va en entendre parler de plus en plus…

Source

Baidu veut traduire la merde que raconte votre chat grâce à l'IA (et ça va mal finir)

Je ne sais pas vous, mais en ce moment, mon chat n’arrête pas de miauler pour rien. Il a des caresses, de la bouffe, de l’eau et compagnie… Mais non, il miaule comme un connard, comme s’il m’insultait, et ensuite se casse.

Bref, il ne fait vraiment aucun effort et moi j’essaye de comprendre ce qu’il a à me dire mais impossible ! Alors je me dis que ce serait tellement bien de pouvoir communiquer avec lui. Déjà comprendre ce qu’il a à raconter mais aussi pouvoir lui répondre dans sa langue agaçante.

❌