2 puntos por GN⁺ 2024-07-31 | 1 comentarios | Compartir por WhatsApp
  • Desde el lado de los operadores de OpenStreetMap, se burlan de que las empresas de IA, en vez de generar carga con scraping a escondidas, donen 10 mil dólares, dejando en evidencia el costo de acceso a los datos y la carga de infraestructura
  • Incluso se añade la propuesta de que, con una donación de 50 mil dólares, podrían ofrecer actualizaciones en streaming en vivo por minuto recibidas directamente desde OpenStreetMap.org
  • El tráfico de scraping no es una excepción rara, sino que llega al nivel de cientos de solicitudes por segundo a endpoints de API costosos, entrando desde múltiples IP y con User-Agent falsificados
  • Ya existen el dataset completo de planet.osm, los cambios incrementales y datos por continente, por lo que usar los datasets oficiales es más adecuado que hacer scraping web lento
  • Aunque es difícil bloquearlo por la suplantación de User-Agent y el cambio de IP, bloquear grandes rastreadores de IA y aplicar límites de velocidad (rate limit) generosos puede ser una medida efectiva para reducir el daño real

Propuesta de donar en vez de raspar datos de OpenStreetMap

  • Surge el mensaje de que las empresas de IA no deberían hacer scraping de OpenStreetMap a escondidas, sino donar 10 mil dólares
  • También se agrega que, si donan 50 mil dólares, podrían ofrecer directamente desde OpenStreetMap.org actualizaciones en streaming en vivo por minuto
  • En los comentarios se repite que los datos de OpenStreetMap ya se ofrecen de formas más adecuadas
    • Existe el dataset completo de planet.osm
    • Existen actualizaciones incrementales
    • También hay datos por continente
  • La reacción general es que raspar directamente el sitio web es más lento e ineficiente que usar los datos completos que ya se ofrecen

La carga operativa que genera el tráfico de scraping

  • El scraping sobre OpenStreetMap no se considera una “combinación nunca antes vista”, sino algo muy común
    • Hay casos en los que llegan cientos de solicitudes por segundo a endpoints de API costosos
    • Se usan múltiples IP
    • Se falsifica el User-Agent
  • El bloqueo basado en User-Agent tiene limitaciones claras
    • Se usan User-Agent predeterminados de librerías como python-requests/2.26.0
    • A veces se hacen pasar por navegadores o por googlebot
    • El cumplimiento de robots.txt se trata como si fuera opcional
    • Cuando los bloquean, cambian de IP o de User-Agent
  • Aun así, algunos rastreadores de IA sí tienen su propio User-Agent, por lo que se puede identificar y bloquear a los principales responsables
    • Se menciona como ejemplo Bytespyder
    • La idea no es bloquear todas las IP que hayan hecho minería de datos en el pasado, sino frenar a quienes realmente están causando daño
    • Si se aplican límites de velocidad muy generosos, solo quedaría sujeto a restricción el tráfico que alcance un nivel problemático

1 comentarios

 
GN⁺ 2024-07-31
Opiniones en Hacker News
  • Las empresas afectadas están cada vez más molestas con las legiones de crawlers de IA. Estos crawlers no siguen buenas prácticas de scraping como respetar robots.txt, usar API públicas o evitar las horas pico.
    No es solo un tema de copyright: el tráfico excesivo de scraping también aumenta los costos de infraestructura. ¿Cuál será el estado final? La IA ya puede resolver CAPTCHA, así que parece que la carrera armamentista de defensas contra bots está prácticamente perdida.

    • El objetivo no es hacer imposible el scraping, sino hacerlo caro. Una persona no hace solicitudes tan rápido como un bot, así que un bot que finge ser humano igual terminará chocando con límites de velocidad.
      Al final se necesitarán cuentas, esas cuentas serán rastreadas y las cuentas que encajen con ciertos patrones serán eliminadas. No se puede impedir el scraping, pero la clave no es impedirlo, sino hacerlo lento y caro. Cuando en algún momento convenga más pagar una licencia que fingir ser humano, la carrera armamentista desaparecerá.
      Que las defensas puedan mejorar lo suficiente como para que sea mejor ni siquiera pelear es una pregunta mucho más difícil que si un bot aleatorio puede fingir ser humano y hacer unas cuantas solicitudes.
    • Al final creo que llegaremos a un punto en que cosas como el acceso a API estarán basadas en listas de permitidos. Para verificar que no eres un bot, quizá haya que construir una relación real con una persona real de la empresa.
      Como cualquier otro método puede falsificarse, esto podría incluir hasta reuniones presenciales. En definitiva, sería volver al mundo de los negocios de los años 60. Todo gracias a que los tecnólogos nos quitaron la alfombra de debajo de los pies a todos.
    • No sé si las IA tienen en mente un objetivo final. Del lado humano, parece que tendremos una internet adaptada al bosque oscuro.
      Ya no se asumirá que la mayoría es buena y que solo hay que rastrear y bloquear las partes maliciosas. En cambio, se asumirá que solo es bueno lo aprobado por un grupo de pares en el que se confía explícitamente, y que todo lo demás es malicioso. Si la confianza causa daño, se cortará esa relación de confianza y se buscarán formas de incentivar una higiene de confianza que funcione.
      Comparado con la internet actual, lo primero que uno piensa es: “eso no va a escalar a todo el planeta”. Pero no hace falta que lo haga. Los problemas que las computadoras tienen que resolver son, al fin y al cabo, todos problemas locales.
    • La respuesta es la interacción basada en API con autenticación.
      Los sitios web antiguos tenían internamente su propia API que entregaba contenido libremente a cualquiera que hiciera una solicitud. Ahora los sitios web deberían convertirse en interfaces simples para usuarios que se comunican con API externas, y el acceso a la API debería ser responsabilidad del usuario.
      La información que vale la pena llevarse debe quedar bloqueada detrás de autenticación. Gracias a OAuth mediante proveedores importantes, autenticarse se volvió absurdamente fácil.
      Quienes estén dispuestos a pagar para usar personas o servicios pagos para extraer contenido deberían, más bien, usar una API bien empaquetada y con un precio razonable.
      Por último, robots.txt debería imponerse por ley. No hay diferencia entre robar mercancía de una tienda y robar contenido de un sitio web.
      La IA y la codicia mataron la libertad abierta de internet.
    • Creo que surgirán islas de autenticación solo por invitación basadas en confianza. Parece el resultado inevitable de la centralización indiscriminada de internet.
  • Soy el presidente de OpenStreetMap Foundation.
    Los datos de OpenStreetMap se ofrecen gratis y en grandes volúmenes en https://planet.openstreetmap.org. Recomendamos usar eso en lugar de hacer scraping del sitio.
    El scraping carga mucho los recursos donados. Bloqueamos las IP que hacen scraping, pero incluso eso requiere trabajo y tiempo.
    Respetar nuestro tiempo y nuestros recursos nos ayuda a mantener el servicio gratuito y accesible para todos.

    • Me da curiosidad cómo bloquean exactamente las IP que hacen scraping. Algunos scrapers parecen simplemente confundidos y no conocen una mejor forma de obtener datos de OSM.
      Si responden con un código de error 403, solo cambiarán de dirección IP.
      Un enfoque más efectivo podría ser ofrecer una respuesta con indicaciones sobre dónde hacer descargas masivas o enlaces a guías para procesar dumps de OSM.
  • Una instancia de OpenStreetMap se puede levantar literalmente en 10 minutos. Basta con un simple comando docker run.
    Claro, la indexación tomará algo de tiempo, pero considerando sus recursos, no debería tardar mucho. Esto es simplemente una codicia absurda.

    • Hace un tiempo probé Headway muy brevemente por curiosidad. Es de las opciones basadas en Docker más fáciles para el “stack completo”.
      Pero no funcionó de inmediato y hubo problemas. No sorprende, porque tiene muchísimas partes móviles. Quizá esquivarlos no sea gran cosa, pero me parece muy dudoso decir que dejar todo funcionando de forma estable toma 10 minutos.
    • No, es bastante doloroso.
    • Hace falta un enlace. La última vez que lo intenté era mucho más complicado que eso.
  • En algún momento necesitaba datos de OSM, pero nunca terminé de encontrar la forma correcta de hacerlo
    Para obtener los datos que necesitaba, había que descargar un archivo enorme de 100 GB en un formato poco claro y usar una biblioteca desconocida. La información estaba dispersa y también había una API HTTP, pero tenía restricciones o límites de velocidad, y no quedaba claro si estaba bien usarla
    Entiendo que yo no sabía mucho y agradezco que el proyecto exista, pero para los estándares de una época en la que los desarrolladores esperan APIs fluidas, la usabilidad no es buena
    Al final usé un proyecto gratuito que ofrecía datos de OSM ya convertidos al formato que necesitaba

    • Hasta cierto punto, es un diseño intencional. Para ofrecer una API fluida hace falta un modelo de financiamiento que permita contratar personal de operaciones para alojar y mantener esa API
      La OSM Foundation se mantiene deliberadamente pequeña y no hace ese tipo de cosas. En cambio, fomenta un ecosistema descentralizado en el que cualquiera puede tomar los datos y crear servicios encima. Los hay comerciales y de hobby, pagos y gratuitos
      Este enfoque funciona muy bien y, personalmente, me parece mejor que el enfoque maximalista centrado en grandes presupuestos de la Wikimedia Foundation
    • Si te refieres a los dumps de datos en formato protobuf, relativamente recientes, es un formato binario muy optimizado
      OrganicMaps usa esos archivos directamente para almacenar y consultar localmente países enteros. En este formato, al momento de escribir esto, el dump de Francia pesa apenas 4,3 GB
      Además, en lugar de descargar el mapa completo, puedes usar uno de los muchos mirrors, como Geofabrik, para bajar solo la parte que te interesa
      [0] https://download.geofabrik.de/
    • Me da curiosidad qué formato o biblioteca menos desconocidos se podrían proponer para datos geográficos a escala planetaria
      Yo también descargué planet.osm hace tiempo y lo parseé en mi escritorio, probablemente con osmosis. Nunca usé ese formato ni esas herramientas en otro contexto, pero tampoco hay muchos competidores que ofrezcan libremente datos geoespaciales masivos como OSM. En casos así, me pregunto qué podría considerarse una forma establecida de hacerlo
    • En https://www.openstreetmap.org/, basta con hacer clic en “Export” arriba a la izquierda. Puedes elegir un área rectangular pequeña y hacer clic en “Manually select a different area”
      Desde el navegador puedes descargar directamente un archivo .osm
      Si literalmente solo necesitas un punto, entre los íconos del mapa a la derecha está “Query features”, la flecha con un signo de pregunta. Con eso puedes hacer clic en elementos individuales del mapa y obtener los datos
    • Usar un proyecto gratuito que ofrece datos de OSM ya convertidos al formato necesario parece bastante cercano a la “forma correcta”
      Los desarrolladores principales de OSM pueden concentrarse en que el frontend existente de OSM entregue datos en un formato optimizado. Si necesitas una conversión a otros formatos populares, es bueno que ya exista en el ecosistema un proyecto que lo haga gratis
  • Soy el autor del post original. Ese toot fue una reacción sarcástica después de aplicar límites de velocidad y bloqueos a otro conjunto de scrapers maliciosos que estaban golpeando agresivamente el sitio web y la API de mapas. Ignoraron robots.txt
    Los datos de OpenStreetMap se pueden descargar gratis. Los publicamos minuto a minuto en https://planet.openstreetmap.org/, y también ofrecemos los datos por AWS S3 y torrent
    Si recién estás empezando, conviene comenzar con extractos regionales más pequeños: https://wiki.openstreetmap.org/wiki/Planet.osm

  • Si simplemente clonaran mi repositorio comprimido, terminarían en segundos, pero los scrapers de IA prefieren pedir una por una todas las revisiones de todos los archivos .c a través de la interfaz web
    Se llevan incluso todas las funciones decorativas que no les sirven de nada
    Esa interfaz web la configuré con cgi, así que terminar de scrapearla les tomará más que la edad del universo. Pero mientras tanto desperdician mi electricidad y mis recursos

  • Como alguien señaló hace poco, Aaron Swartz fue amenazado con la cárcel por scrapear. Pero ahora se están invirtiendo cientos de miles de millones de dólares en grandes modelos de lenguaje de IA creados mediante scraping

    • Porque las grandes empresas pueden scrapearte a ti, pero tú no puedes scrapear a las grandes empresas
    • ¿Por qué hace falta llegar hasta los grandes modelos de lenguaje de IA? Scrapear e indexar es básicamente todo lo que hace Google Search
    • Reglas para los demás, excepciones para mí. Siempre fue así
    • Aaron no tenía el ejército de abogados que tienen las grandes empresas
      Se llevó artículos académicos y los hizo públicos, lo cual era una infracción de copyright evidente
      Los grandes modelos de lenguaje están en una zona gris respecto de si no copiaron el texto original tal cual, sino que son obras derivadas
      Los fallos también han variado según el juez
    • ¿No había scrapeado material detrás de un muro de pago?
  • Basta con poner planet.osm en torrent. Que el “scraping” solo esté permitido mediante torrents
    Así los scrapers se repartirán entre ellos la carga de red. Probablemente todos estén en la misma instancia de AWS, así que hasta mejorará la velocidad de red

    • Nuestros datos ya se publican por torrent: https://planet.openstreetmap.org
      Los datos, incluidas las actualizaciones minuto a minuto, también se ofrecen en buckets públicos de S3 (UE y EE. UU.) con apoyo del AWS Open Data Sponsorship Program
  • Una vez, en una entrevista técnica, el entrevistador me pidió diseñar un sistema que scrapeara Wikipedia en inglés todos los días. Le dije: “Empecemos por descargar el archivo comprimido con gzip”
    Resultó que el entrevistador no sabía que eso era posible y esperaba que describiera un sistema complejo para descargar página por página, con multithreading, URLs canónicas, verificación de páginas visitadas, reintentos, etc.
    Aun así me puso una A en el ejercicio y al final entré a la empresa

  • ¿Qué tal un honeypot para empresas de IA? Sería crear un bucle infinito de contenido generado de forma tonta
    Imaginen una publicación de Twitter con tuits artificiales pegados al final

    • Y entonces, de repente, OpenStreetMap deja de ser tan open. Como OpenAI, jaja