2 points par GN⁺ 2024-07-31 | 1 commentaires | Partager sur WhatsApp
  • Les opérateurs d’OpenStreetMap suggèrent avec ironie que les entreprises d’IA fassent un don de 10 000 $ au lieu d’alourdir la charge par du scraping clandestin, mettant en lumière le coût d’accès aux données et la pression sur l’infrastructure
  • Pour un don de 50 000 $, ils proposent même de fournir des mises à jour en streaming live à la minute directement depuis OpenStreetMap.org
  • Le trafic de scraping n’est pas une rare exception : il peut aller jusqu’à plusieurs centaines de requêtes par seconde sur des endpoints API coûteux, depuis plusieurs IP et avec des User-Agent falsifiés
  • Comme les données complètes planet.osm, les diffs et les données par continent existent déjà, il est plus approprié d’utiliser les jeux de données officiels que de scraper lentement le web
  • L’usurpation de User-Agent et le changement d’IP rendent le blocage difficile, mais bloquer les gros crawlers d’IA et appliquer des limites de débit (rate limit) généreuses peut réduire les dommages réels

Proposition : faire un don au lieu de scraper les données OpenStreetMap

  • Le message adressé aux entreprises d’IA : ne scrapez pas OpenStreetMap en douce, faites plutôt un don de 10 000 $
  • Il est ajouté qu’avec un don de 50 000 $, OpenStreetMap.org pourrait aussi fournir directement des mises à jour en streaming live à la minute
  • Dans les commentaires, il est rappelé à plusieurs reprises que les données OpenStreetMap sont déjà disponibles par des moyens plus adaptés
    • Les données complètes planet.osm existent
    • Des mises à jour différentielles existent
    • Des données par continent existent aussi
  • Beaucoup estiment que scraper directement le site web est lent et inefficace par rapport aux données complètes déjà fournies

La charge opérationnelle créée par le trafic de scraping

  • Le scraping d’OpenStreetMap n’est pas perçu comme une « combinaison jamais vue », mais comme quelque chose de très courant
    • Des endpoints API coûteux reçoivent parfois plusieurs centaines de requêtes par seconde
    • Plusieurs IP sont utilisées
    • Le User-Agent est falsifié
  • Le blocage fondé sur le User-Agent a des limites évidentes
    • Des User-Agent par défaut de bibliothèques, comme python-requests/2.26.0, sont utilisés
    • Certains se font passer pour un navigateur ou pour googlebot
    • Le respect de robots.txt est traité comme facultatif
    • En cas de blocage, l’IP ou le User-Agent est modifié
  • Certains crawlers d’IA ont toutefois leur propre User-Agent, ce qui permet d’identifier et de bloquer les plus gros responsables
    • Bytespyder est mentionné comme exemple
    • L’objectif n’est pas de bloquer toutes les IP ayant servi par le passé au data mining, mais celles qui causent réellement des dommages
    • Avec une limite de débit très généreuse, seul le trafic susceptible de poser problème serait concerné

1 commentaires

 
GN⁺ 2024-07-31
Avis de Hacker News
  • Les entreprises concernées sont de plus en plus agacées par les armées de crawlers IA. Ces crawlers ne respectent pas les bonnes pratiques du scraping, comme le respect de robots.txt, l’utilisation des API publiques ou l’évitement des heures de pointe.
    Le problème ne se limite pas au droit d’auteur : le trafic de scraping excessif fait aussi augmenter les coûts d’infrastructure. Quel sera l’état final ? Comme l’IA peut déjà résoudre des CAPTCHA, la course aux armements en matière de défense contre les bots semble déjà perdue.

    • L’objectif n’est pas de rendre le scraping impossible, mais de le rendre coûteux. Les humains n’envoient pas des requêtes aussi vite que les bots ; donc un bot qui se fait passer pour un humain finit lui aussi par se heurter aux limites de débit.
      Au final, il faut un compte, ce compte est suivi, puis les comptes correspondant à certains schémas sont supprimés. On ne peut pas empêcher le scraping, mais l’essentiel n’est pas de le bloquer : c’est de le rendre lent et coûteux. À partir d’un certain point, quand il devient préférable de payer une licence plutôt que de se faire passer pour un humain, la course aux armements disparaît aussi.
      La vraie question — bien plus difficile que de savoir si un bot quelconque peut faire quelques requêtes en se faisant passer pour un humain — est de savoir si les défenses peuvent devenir suffisamment bonnes pour qu’il vaille mieux ne même pas engager le combat.
    • On finira probablement par arriver à un point où l’accès de type API se fera sur liste blanche. Pour prouver qu’on n’est pas un bot, il faudra peut-être établir une vraie relation avec une vraie personne de l’entreprise.
      Toutes les autres méthodes pouvant être falsifiées, cela pourrait aller jusqu’à des réunions en personne. On reviendrait finalement au monde des affaires des années 1960. Merci aux techniciens qui ont retiré le tapis sous les pieds de tout le monde.
    • Je ne sais pas si les IA ont un objectif final en tête. Côté humains, on va sans doute vers un Internet adapté à la forêt sombre.
      On ne partira plus du principe que la majorité est bienveillante et qu’il suffit de repérer et bloquer les parties malveillantes. À la place, on supposera que seules les parties approuvées par un groupe de pairs explicitement fiables sont bienveillantes, et que tout le reste est malveillant. Si cette confiance cause des dommages, on coupera cette relation de confiance, puis on cherchera des moyens d’encourager une hygiène de confiance qui fonctionne.
      Comparé à l’Internet actuel, la première pensée est : « ça ne passera pas à l’échelle de la planète entière ». Mais ce n’est pas nécessaire. Les problèmes que les ordinateurs doivent résoudre sont de toute façon tous des problèmes locaux.
    • La réponse, ce sont des interactions basées sur des API avec authentification.
      Les anciens sites web avaient en interne leur propre API, qui livrait librement du contenu à quiconque le demandait. Désormais, les sites web devraient devenir de simples interfaces utilisateur communiquant avec des API externes, et la responsabilité de l’accès à l’API devrait incomber à l’utilisateur.
      Les informations qui valent la peine d’être récupérées doivent être verrouillées derrière une authentification. Grâce à OAuth via les grands fournisseurs, l’authentification est devenue absurdement simple.
      Ceux qui sont prêts à payer des humains ou des services payants pour extraire du contenu feraient mieux d’utiliser une API bien empaquetée et proposée à un prix raisonnable.
      Enfin, robots.txt devrait être imposé par la loi. Il n’y a pas de différence entre voler des biens dans un magasin et voler du contenu sur un site web.
      L’IA et la cupidité ont tué l’ouverture et la liberté d’Internet.
    • On verra probablement apparaître des îlots d’authentification sur invitation uniquement, fondés sur la confiance. Cela ressemble au résultat final de la centralisation effrénée d’Internet.
  • Je suis le président de l’OpenStreetMap Foundation.
    Les données OpenStreetMap sont disponibles gratuitement en masse sur https://planet.openstreetmap.org. Nous recommandons d’utiliser cela plutôt que de scraper le site.
    Le scraping impose une forte charge à des ressources qui nous sont données. Nous bloquons les IP de scraping, mais même cela demande du travail et du temps.
    Respecter notre temps et nos ressources nous aide à maintenir le service gratuit et accessible à tous.

    • Je me demande comment ils bloquent exactement les IP de scraping. Certains scrapers semblent simplement perdus et ne pas connaître de meilleur moyen d’obtenir les données OSM.
      Répondre avec un code d’erreur 403 ne fera que les pousser à changer d’adresse IP.
      Une approche plus efficace pourrait consister à fournir une réponse indiquant où télécharger les données en masse, ou un lien vers un guide de traitement des dumps OSM.
  • On peut littéralement lancer soi-même une instance OpenStreetMap en 10 minutes. Une simple commande docker run suffit.
    Bien sûr, l’indexation prendra un peu de temps, mais vu leurs ressources, ça ne devrait pas être long. C’est juste une cupidité absurde.

    • Par curiosité, j’ai essayé Headway très brièvement autrefois. C’est l’une des options basées sur Docker les plus simples pour le « full stack ».
      Mais ça n’a pas fonctionné immédiatement et j’ai rencontré des problèmes. Ce n’est pas surprenant, vu le nombre énorme de pièces mobiles. Les contourner n’est peut-être pas un gros travail, mais l’idée qu’il suffise de 10 minutes pour tout faire tourner de manière fiable me paraît très suspecte.
    • Non, c’est assez pénible.
    • Il faudrait un lien. La dernière fois que j’ai essayé, c’était bien plus compliqué que ça.
  • À une époque, j’avais besoin de données OSM, mais je n’ai jamais réussi à comprendre quelle était la bonne méthode
    Pour obtenir les données nécessaires, il fallait télécharger un énorme fichier de 100 Go dans un format obscur et utiliser des bibliothèques peu familières. Les informations étaient éparpillées ; il existe bien une API HTTP, mais elle a des limites ou des limitations de débit, et il n’était pas clair si on avait le droit de l’utiliser
    Je reconnais mon ignorance et je suis reconnaissant que le projet existe, mais à l’époque où les développeurs s’attendent à des API fluides, l’utilisabilité n’est pas terrible
    Au final, j’ai utilisé un projet gratuit qui fournissait des données OSM déjà converties dans le format dont j’avais besoin

    • C’est en partie voulu. Pour fournir une API fluide, il faut un modèle de financement permettant d’employer des équipes d’exploitation chargées d’héberger et de maintenir cette API
      L’OSM Foundation reste volontairement petite et ne fait pas ce genre de choses. Elle encourage plutôt un écosystème décentralisé où chacun peut prendre les données et construire des services dessus. Il y en a des commerciaux et des amateurs, des payants et des gratuits
      Cette approche fonctionne très bien et, personnellement, je la préfère à l’approche maximaliste centrée sur le gros budget de la Wikimedia Foundation
    • Si tu parles des dumps de données au format protobuf relativement récents, c’est un format binaire très optimisé
      OrganicMaps utilise directement ces fichiers pour stocker et interroger localement des pays entiers. Dans ce format, au moment où j’écris, le dump de la France ne fait que 4,3 Go
      Et au lieu de télécharger la carte entière, on peut utiliser l’un des nombreux miroirs comme Geofabrik pour ne récupérer que la zone qui nous intéresse
      [0] https://download.geofabrik.de/
    • Je serais curieux de savoir quel format ou quelle bibliothèque moins inconnus on pourrait proposer pour des données géographiques à l’échelle de la planète
      Moi aussi, j’ai déjà téléchargé planet.osm et l’ai probablement parsé sur mon desktop avec osmosis. Je n’ai jamais utilisé ce format ni ces outils ailleurs, mais il n’y a pas non plus beaucoup de concurrents qui fournissent librement d’aussi gros volumes de données géospatiales qu’OSM. Dans ce cas, je me demande ce qu’on pourrait considérer comme la méthode établie
    • Sur https://www.openstreetmap.org/, il suffit de cliquer sur “Export” en haut à gauche. On peut choisir une petite zone rectangulaire, puis cliquer sur “Manually select a different area”
      Le navigateur permet alors de télécharger directement un fichier .osm
      Si on n’a littéralement besoin que d’un seul point, il y a “Query features”, l’icône de carte à droite avec une flèche et un point d’interrogation. Elle permet de cliquer sur des éléments cartographiques individuels pour obtenir leurs données
    • Utiliser un projet gratuit qui fournit des données OSM déjà converties dans le format voulu me semble suffisamment proche de la “bonne méthode”
      Les développeurs principaux d’OSM peuvent se concentrer sur le fait que le frontend OSM existant fournisse les données dans un format optimisé. Si l’on a besoin d’une conversion vers d’autres formats populaires, c’est une bonne chose qu’il existe déjà dans l’écosystème des projets qui le font gratuitement
  • Je suis l’auteur du post d’origine. Ce toot était une réaction sarcastique après avoir mis en place des limitations de débit et des blocages contre un autre ensemble de scrapers malveillants qui martelaient agressivement le site web et l’API cartographique. robots.txt a été ignoré
    Les données OpenStreetMap peuvent être téléchargées gratuitement. Nous les publions minute par minute sur https://planet.openstreetmap.org/, et les fournissons aussi via AWS S3 et torrent
    Si vous débutez, il vaut mieux commencer par des extraits régionaux plus petits : https://wiki.openstreetmap.org/wiki/Planet.osm

  • Il suffirait de cloner mon dépôt compressé et ce serait terminé en quelques secondes, mais les scrapers IA préfèrent demander une par une toutes les révisions de tous les fichiers .c via l’interface web
    Ils récupèrent tout, y compris les fonctionnalités décoratives qui ne leur servent à rien
    Comme j’ai configuré cette interface web en cgi, le scraping prendra plus longtemps que l’âge de l’univers. Mais pendant ce temps, il gaspille mon électricité et mes ressources

  • Comme quelqu’un l’a fait remarquer récemment, Aaron Swartz a été menacé de prison à cause du scraping. Et maintenant, des centaines de milliards de dollars sont investis dans des grands modèles de langage IA créés par scraping

    • Parce que les grandes entreprises peuvent vous scraper, mais vous ne pouvez pas scraper les grandes entreprises
    • Pourquoi aller jusqu’aux grands modèles de langage IA ? Scraper et indexer, c’est tout ce que fait Google Search
    • Des règles pour les autres, des exceptions pour moi. Ça a toujours été comme ça
    • Aaron n’avait pas les armées d’avocats dont disposent les grandes entreprises
      Il a pris des articles scientifiques et les a rendus publics, ce qui constituait une violation manifeste du droit d’auteur
      Les grands modèles de langage se trouvent dans une zone grise : ils ne copient pas le texte original tel quel, mais la question est de savoir s’il s’agit d’œuvres dérivées
      Les juges ont rendu des décisions divergentes
    • Il n’avait pas scrapé des contenus derrière un paywall ?
  • Il suffit de mettre planet.osm en torrent. Le “scraping” ne devrait être autorisé que via torrent
    Ainsi, les scrapers se partageraient la charge réseau entre eux. Comme ils sont probablement tous sur la même instance AWS, le débit réseau serait sans doute meilleur aussi

    • Nos données sont déjà publiées en torrent : https://planet.openstreetmap.org
      Les données, y compris les mises à jour à la minute, sont également disponibles dans des buckets S3 publics (UE et US) pris en charge par l’AWS Open Data Sponsorship Program
  • Lors d’un ancien entretien technique, l’intervieweur m’a demandé de concevoir un système qui scraperait quotidiennement Wikipédia en anglais. J’ai répondu : “Commençons par télécharger l’archive compressée en gzip”
    Il s’est avéré que l’intervieweur ne savait pas que c’était possible et s’attendait à ce que je décrive un système complexe de téléchargement page par page, avec multithreading, URL canoniques, vérification des pages déjà visitées, relances, etc.
    Il m’a quand même mis un A pour l’exercice, et j’ai fini par être embauché par cette entreprise

  • Pourquoi pas un honeypot pour les entreprises d’IA ? On créerait une boucle infinie de contenu généré de façon idiote
    Imaginez des posts Twitter avec de faux tweets ajoutés à la fin

    • Et là, soudain, OpenStreetMap ne serait plus si open que ça. Comme OpenAI, haha