Le coût de l'intelligence artificielle

Sunday, 09 February 2025
|
Écrit par
Grégory Soutadé

L'intelligence artificielle est un sujet récurrent ces derniers temps. Entre la génération d'image réaliste, la (plus ou moins grande) pertinence de ChatGPT, le modèle soi-disant ultra performant et à bas coût de DeepSeek, le projet de méga centre de calcul Stargate, l'échec de la première version publique de Lucie, la concurrence dans le domaine est acharnée, avec des investissements qui vont de pair.

D'ailleurs, on ne devrait pas parler d'une intelligence artificielle, mais de plusieurs. Chacune avec son modèle et sa finalité propre. C'est exactement comme pour le cerveau qui est découpé en différentes zones avec des domaines spécialisés (langage, mémoire, vision ...). Mais dans le cas du cerveau, nous avons tous les domaines en même temps !

Pourtant, quel que soit le domaine, l'intelligence artificielle n'est pas juste un modèle informatique. Avant de pouvoir être efficace, il faut réaliser toute une phase d'apprentissage à partir de données existantes. Sur ce point, le web représente une véritable aubaine, une mine d'or de données de type divers et varié. Ce n'est pas pour rien que Microsoft a racheté Github en 2018 pour la modique somme de 7,5 milliards de dollars... Il peut ainsi accéder à, désormais, 500 millions de projets ! En ce qui concerne les données multimédia (particulièrement les images), l'apprentissage est plus complexe car il faut des personnes pour "annoter" ce que contient l'image, c'est à dire spécifier dans un carré la nature d'un élément (une personne, une voiture ...). Sur ce point, les premières annotations à grande échelle ont été réalisées via les CAPTCHA afin de "prouver" que l'utilisateur n'est pas un robot. Aujourd'hui, il existe dans des pays où la mains d'œuvre est peu chère (notamment en Asie du Sud Est) des centres professionnels où les personnes sont payées pour annoter des millions d'images.

Tout cela est relativement transparent pour les utilisateurs finaux, qui se contentent d'envoyer des requêtes via le "prompt".

Dans la dernière version d'IWLA, j'ai implémenté la fusion des robots via leur identifiant ("compatible"). Quelle ne fut pas ma surprise de voir qu'en à peine 6 jours, le robot GPTBot/1.2 a téléchargé 19,5GB de contenu depuis mon site, alors que ce dernier n'évolue que très peu. Je suppose donc que GPTBot opère une ré indexation complète à chaque changement. L'utilisation de toute cette bande passante est là encore invisible pour l'utilisateur final, mais constitue, avec le stockage des données et son traitement, une consommation d'énergie très importante.

C'est pourquoi j'ai décidé de bloquer purement et simplement toutes les requêtes venant d'openai, comme je l'avais fait pour le très gourmand robot de Microsoft (bingbot).

Voici le script que j'utilise et qui est dans mon crontab. Il va analyser les logs du serveur Apache et bloquer les IP qui correspondent à un mot :

#!/bin/bash

function ban_ip()
{
    echo "Ban $1"
    nft add rule inet BAN_RU input ip saddr $1 drop
}

function ban_file()
{
    file=$1
    token=$2
    prefix_len=$3
    fields=""
    postfix=""
    case $prefix_len in
        "8")  fields="1";       postfix=".0.0.0";;
        "16") fields="1,2";     postfix=".0.0";;
        "24") fields="1,2,3";   postfix=".0";;
        "32") fields="1,2,3,4"; postfix="";;
        *) echo "Error: prefix_len must be 8, 16, 24 or 32"
           return;;
    esac
    ips=`cat $file|grep $token|cut -f2 -d' '|sort|uniq|cut -d'.' -f$fields|uniq`
    for ip in $ips ; do
        ban_ip "${ip}${postfix}/${prefix_len}"
    done
}

if [ -z "$1" -o $1 = "-h" -o $1 = "--help" ] ; then
    echo "$0 token prefix_len (8,16,24,32)"
fi

ban_file /var/log/apache2/access.log.1 $1 $2

Il se base sur le pare-feu Linux netfilter configuré comme tel :

nft create table inet BAN_RU
nft add chain inet BAN_RU input "{{ type filter hook input priority filter; }}"

La table en question est BAN_RU, déjà utilisée pour bloquer les IP venant de Russie. Le script ne supporte que des IPv4, mais je ne vois pas de connexion IPv6 de la part de robots aussi gourmands.

IWLA 0.8

Tuesday, 04 February 2025
|
Écrit par
Grégory Soutadé

Capture d'écran IWLA

Version 0.8 of IWLA (Intelligent Web Log Analyzer written in Python) is now released. While looking at the Changelog, I realized that IWLA is now 10 years old ! It's crazy to see that it's still so useful for me, I use it everyday. There is no real alternatives to it if we consider statistic analysis without cookies/embedded javascript. Only AWSTATS do the same, but it's one big unmaintainable PERL file. This is why I created my own tool which is, I think, more accurate and fine tuned. IWLA is my most actively developed personal project, but this not the only one to be old. I also developed gPass (12 years old), KissCount (15 years old), Denote (10 years old) and Dynastie (13 years old). For these projects, I only do maintenance, but I still use them a lot. For KissCount, I think it should be re wrote from scratch with a cleaner architecture. For Dynastie, there is no real alternative, any current static site generator has a dynamic/web frontend, but I think backend should be migrated to something else (more fast). Denote is quite simple and perfect for my needs.

Going back to IWLA, the changelog is :

Core

  • Awstats data updated (8.0)
  • Sanitize HTTP requests before analyze
  • Fix potential division by 0

Plugins

  • Add rule for robot : forbid "1 page and 1 hit"
  • Try to detect robots by "compatible" strings
  • Move feeds and reverse_dns plugins from post_analysis to pre_analysis
  • Move reverse DNS core management into iwla.py

HTML

  • Add domain and number of subscribers for feed parser

Config

  • Add "multimedia_re" filter to detect multimedia files by regular expression
  • Add "no_merge_feeds_parsers_list" configuration value
  • Add "robot_domains" configuration value
  • Add "ignore_url" configuration value

A demo instance (for forge.soutade.fr) is available here

Milano nuovo

Tuesday, 07 January 2025
|
Écrit par
Grégory Soutadé

IBM à Milan

Le début d'année une période propice aux bilans divers et variés ainsi qu'à l'introspection. Ce qui amène à prendre des résolutions pour ce nouveau cycle qui commence, bien qu'en réalité notre rythme de vie est calqué sur le rythme scolaire. L'autre tradition consiste en l'envoie de ses vœux à un maximum de personnes, les outils de communication actuels permettant de transmettre ces messages immédiatement. Je préfère personnellement des messages personnalisés que l'on pourra délivrer directement à la personne, en face à face quand cela est possible.

Mais le 1er janvier est également synonyme d'entrée en vigueur de nouvelles législations et d'ajustement de taxes et pensions. Législations qui ont souvent été votées longtemps en avance (parfois des années). Il y a ainsi de grandes dates butoirs qui font régulièrement écho dans la presse : neutralité carbone en 2050, fin de la vente de véhicules thermiques en 2035... À la fois lointaines et si proches, ces mesures inquiètes car elles vont nous forcer à repenser notre mode de vie et nos déplacements, pour des modèles fort probablement plus contraignants.

En Lombardie, c'est une petite révolution qui s'opère en ce 1er janvier 2025. Les Milanais ont eu 5 ans pour se préparer psychologiquement à une nouvelle mesure : l'interdiction totale de fumer dans les espaces publics (ouverts ou fermés). Petit encart néanmoins : il est possible de fumer dans des lieux isolés avec une distance minimale de 10m autour de soi (difficile à obtenir dans une métropole aussi dense). Je me souviens en effet de mon voyage datant de 2019 dans la capitale Lombarde où je notais

Il est d'ailleurs assez difficile de trouver des rues où personne ne fume...

Je trouve donc cette mesure extrêmement courageuse sachant que 20% des Italiens fument et qu'il y a même des distributeurs de cigarettes en libre service (une aubaine pour la mafia). Cette mesure me rappelle le "big bang" opéré par le Royaume-Uni lorsqu’a été interdit la cigarette dans les pubs. On pensait alors à la mort de ces derniers, il n'en fut rien. Milan n'est pas précurseur en la matière. On trouve des règles similaires à New York (avec un peu plus de souplesse) ou Singapour. Mais cette mesure met en lumière une prise de conscience généralisée des pouvoirs publics face à ce qu'on appelle communément une "drogue douce".

Dans ma jeunesse, j'étais entouré de fumeurs. L'habitude faisant, la fumée ne provoquait qu'une gêne légère. Je me souviens encore de certains repas familiaux où flottait 20cm de fumée au plafond, ou encore certains restaurants/bars totalement enfumés. Les plus anciens ont même connus la cigarette dans les avions ! Il y a désormais moins de fumeurs dans mon entourage. Puis, il y a eu ce 1er février 2007 où la cigarette a été interdite dans les restaurants (entre autres). Et puis, la plupart des voisins sont non fumeurs. Et puis, j'ai commencé à faire plus de sport, domaine où l'oxygène est une ressource précieuse. Les bronches étant particulièrement ouvertes, on est beaucoup plus sensible à la pollution atmosphérique. Il s'est donc opéré un réel sevrage depuis plusieurs années. À tel point que cette odeur m'est désormais particulièrement désagréable. Et pour cause, une fois sevré, on se rend compte à quel point ce produit est de la grosse m****.

Parce que la cigarette n'apporte que des mauvaises choses :

Pour soi

  • Dépendance
  • Troubles de l'humeur
  • Perte de goût et d'odorat
  • Jaunissement des dents et de la peau
  • Mauvaise haleine
  • Encrassement des poumons et des artères
  • Risque de cancer
  • Perte de capacité respiratoire
  • Obligation de fumer en extérieur par temps froids et pluvieux
  • Obligation de se réapprovisionner régulièrement
  • Coût du tabac

Pour les autres

  • Tabagisme passif
  • Pollution de l'air
  • Exploitation des travailleurs pauvres

Pour l'environnement

  • Produit exotique venant de loin
  • Transformation du tabac utilisant des produits nocifs
  • Pollution due aux mégots
  • Risque d'incendie
  • Déforestation (plantation é séchage du tabac)
  • Pollution plastique (paquet de cigarette, briquet)

D'ailleurs, je ne comprends pas les personnes qui fument avant/pendant les repas. Il est impossible d'apprécier un plat quand on a les papilles brûlées par la fumée (en plus d'incommoder le voisinage). On pourra malheureusement dresser ce triste constat : beaucoup de personnes travaillant dans la restauration (dont des grands chefs) sont fumeurs... Et que dire des personnes qui fument dans leur voiture ? Dès le lever ? On voit ainsi à quel point cette drogue "douce" est une véritable addiction et n'est pas consommée seulement dans les moments festifs/conviviaux. Elle est une fausse solution face au stress et à l'angoisse, qui augmentent avec l'addiction cat le corps se met en état de stress avec le manque.

Fumer n'est ni un droit, ni une liberté, c'est une addiction.

Pour autant, j'ai vu autour de moi plusieurs personnes arrêter de fumer. Je trouve cette démarche très courageuse de leur part quand on connaît la difficulté de se sortir d'une addiction parfois vieille de dizaines d'années.