Empresas de IA: e se, em vez de raspar o OpenStreetMap às escondidas, doassem US$ 10 mil?
(en.osm.town/@Firefishy)- Do lado dos mantenedores do OpenStreetMap, surgiu uma ironia dirigida às empresas de IA: em vez de gerar carga com scraping às escondidas, que tal doar US$ 10 mil? Isso expõe os custos de acesso aos dados e a pressão sobre a infraestrutura
- Houve também a sugestão de que, com uma doação de US$ 50 mil, seria possível até oferecer atualizações em streaming ao vivo por minuto recebidas diretamente do OpenStreetMap.org
- O tráfego de scraping não é uma exceção rara; chega ao ponto de haver centenas de requisições por segundo em endpoints de API caros, vindas de vários IPs e com User-Agent falsificado
- Já existem o conjunto completo de dados
planet.osm, os diffs de mudanças e dados por continente, então usar os datasets oficiais é mais apropriado do que fazer scraping lento da web - Bloquear é difícil por causa da camuflagem de User-Agent e da troca de IP, mas bloquear grandes crawlers de IA e aplicar limites de taxa (rate limit) generosos pode reduzir o dano real
Proposta para doar em vez de raspar os dados do OpenStreetMap
- Surgiu a mensagem de que empresas de IA não deveriam fazer scraping escondido do OpenStreetMap, mas sim doar US$ 10 mil
- Também foi acrescentado que, com uma doação de US$ 50 mil, seria possível oferecer diretamente do OpenStreetMap.org atualizações em streaming ao vivo por minuto
- Nos comentários, repetiu-se que os dados do OpenStreetMap já são fornecidos de formas mais adequadas
- Existe o conjunto completo de dados
planet.osm - Existem atualizações incrementais de mudanças
- Também existem dados por continente
- Existe o conjunto completo de dados
- Continuaram as reações de que raspar o site diretamente é mais lento e ineficiente do que usar os dados completos já disponibilizados
A carga operacional gerada pelo tráfego de scraping
- O scraping do OpenStreetMap não é visto como uma “combinação inédita”, mas como algo muito comum
- Há casos em que endpoints caros de API recebem centenas de requisições por segundo
- São usados vários IPs
- O User-Agent é falsificado
- O bloqueio baseado em User-Agent tem limitações claras
- Usa-se o User-Agent padrão de bibliotecas como
python-requests/2.26.0 - Em alguns casos, há disfarce como navegador ou
googlebot - O cumprimento de
robots.txté tratado como se fosse opcional - Quando há bloqueio, trocam o IP ou o User-Agent
- Usa-se o User-Agent padrão de bibliotecas como
- Ainda assim, alguns crawlers de IA têm seu próprio User-Agent, o que permite identificar e bloquear grandes causadores de dano
- Bytespyder é citado como exemplo
- A ideia não é bloquear todos os IPs de mineração de dados do passado, mas sim impedir quem está causando prejuízo real
- Se houver um limite de taxa bem generoso, apenas o tráfego em nível problemático acabaria sendo alvo da restrição
1 comentários
Opiniões no Hacker News
As empresas afetadas estão ficando cada vez mais irritadas com os exércitos de crawlers de IA. Esses crawlers não seguem boas práticas de scraping, como respeitar o
robots.txt, usar APIs públicas e evitar horários de picoNão é apenas uma questão de direitos autorais: o tráfego excessivo de scraping também aumenta os custos de infraestrutura. Qual será o estado final? Como a IA já consegue até resolver CAPTCHAs, a corrida armamentista de defesa contra bots parece praticamente perdida
No fim, passam a precisar de contas, essas contas também são rastreadas, e contas que se encaixam em certos padrões são excluídas. Não impede o scraping, mas o ponto central não é impedir: é torná-lo lento e caro. Em algum momento, quando for melhor pagar uma licença do que fingir ser humano, a corrida armamentista também desaparece
A questão de se a defesa pode ficar boa o suficiente para tornar melhor nem entrar na briga é muito mais difícil do que saber se um bot aleatório consegue fingir ser humano e fazer algumas requisições
Como todas as outras formas podem ser falsificadas, isso pode até incluir reuniões presenciais. No fim, é como voltar ao mundo dos negócios dos anos 1960. Graças aos tecnólogos que puxaram o tapete debaixo dos pés de todo mundo
Não vamos mais presumir que a maior parte é boa e que basta rastrear e bloquear as partes maliciosas. Em vez disso, vamos presumir que só são boas as partes aprovadas por um grupo de pares em quem confiamos explicitamente, e que todo o resto é malicioso. Se a confiança causar dano, cortamos essa relação de confiança e encontramos formas de incentivar uma higiene de confiança que funcione
Comparando com a internet atual, o primeiro pensamento é: “isso não vai escalar para o planeta inteiro”. Mas não precisa. Os problemas que computadores precisam resolver são, de qualquer forma, todos problemas locais
Sites antigos tinham internamente sua própria API, que entregava conteúdo livremente para qualquer um que fizesse a requisição. Agora os sites devem se tornar interfaces simples para usuários que se comunicam com APIs externas, e a responsabilidade pelo acesso à API deve ser do usuário
Informações que valem a pena levar precisam ficar trancadas atrás de autenticação. Com OAuth por grandes provedores, autenticar ficou absurdamente fácil
Quem pretende pagar pessoas ou serviços pagos para extrair conteúdo deveria, em vez disso, usar uma API bem empacotada e com preço razoável
Por fim, o
robots.txtdeveria ser imposto por lei. Não há diferença entre roubar produtos de uma loja e roubar conteúdo de um siteA IA e a ganância mataram a liberdade aberta da internet
Sou presidente da OpenStreetMap Foundation
Os dados do OpenStreetMap são oferecidos em massa e gratuitamente em https://planet.openstreetmap.org. Recomendamos usar isso em vez de fazer scraping do site
O scraping gera uma grande carga sobre recursos doados. Bloqueamos IPs de scraping, mas até isso exige trabalho e tempo
Respeitar nosso tempo e nossos recursos ajuda a manter o serviço gratuito e acessível para todos
Responder com código de erro
403só fará com que troquem de endereço IPUma abordagem mais eficaz poderia ser fornecer uma resposta com orientação sobre onde baixar em massa ou links para guias de processamento dos dumps do OSM
Dá literalmente para colocar uma instância do OpenStreetMap no ar por conta própria em 10 minutos. Basta um simples comando
docker runClaro que a indexação vai levar algum tempo, mas considerando os recursos deles, não deveria demorar muito. Isso é simplesmente ganância absurda
Mas não funcionou de primeira e deu problema. Não surpreende, já que há muitas partes móveis. Contornar isso talvez não seja um grande problema, mas a afirmação de que bastam 10 minutos para deixar tudo funcionando de forma estável é muito suspeita
Em certo momento eu precisei de dados do OSM, mas nunca consegui descobrir qual era o jeito certo
Para obter os dados necessários, era preciso baixar um arquivo gigantesco de 100 GB em um formato obscuro e usar bibliotecas desconhecidas. As informações ficam espalhadas e até há uma API HTTP, mas ela tem restrições ou limites de taxa, e não ficava claro se eu podia usá-la
Entendo que a ignorância era minha e agradeço que o projeto exista, mas, pelos padrões de uma época em que desenvolvedores esperam APIs fluidas, a usabilidade não é boa
No fim, usei um projeto gratuito que fornecia dados do OSM já pré-convertidos para o formato de que eu precisava
A OSM Foundation se mantém deliberadamente pequena e não faz esse tipo de coisa. Em vez disso, incentiva um ecossistema descentralizado no qual qualquer um pode pegar os dados e criar serviços em cima deles. Há usos comerciais e amadores, opções pagas e gratuitas
Esse modelo funciona muito bem e, pessoalmente, acho melhor do que a abordagem maximalista centrada no grande orçamento da Wikimedia Foundation
O OrganicMaps usa esses arquivos diretamente para armazenar e consultar países inteiros localmente. Nesse formato, no momento em que escrevo, o dump da França tem apenas 4,3 GB
Além disso, em vez de baixar o mapa inteiro, você pode usar um dos muitos mirrors, como o Geofabrik, para obter só a área de interesse
[0] https://download.geofabrik.de/
Eu também já baixei o
planet.osmno passado e o parseei no desktop, provavelmente comosmosis. Nunca usei aquele formato ou ferramenta em outros lugares, mas também não há muitos concorrentes que disponibilizem livremente grandes volumes de dados geoespaciais como o OSM. Fico curioso para saber o que, nesse caso, poderia ser considerado uma prática estabelecidaDá para baixar um arquivo
.osmdiretamente pelo navegadorSe você precisa literalmente de um único ponto, há o “Query features”, que é a seta com um ponto de interrogação entre os ícones do mapa à direita. Com isso, você pode clicar em elementos individuais do mapa e obter os dados
Os desenvolvedores centrais do OSM podem se concentrar em fazer o frontend existente do OSM fornecer dados em um formato otimizado. Se você precisa de algo convertido para outros formatos populares, é bom que já exista no ecossistema um projeto que faça isso de graça
Sou o autor do post original. Aquele toot foi uma reação sarcástica depois de aplicarmos limites de taxa e bloqueios a mais um conjunto de scrapers maliciosos que estavam atacando agressivamente o site e a API de mapas. O
robots.txtfoi ignoradoOs dados do OpenStreetMap podem ser baixados gratuitamente. Nós os publicamos a cada minuto em https://planet.openstreetmap.org/ e também disponibilizamos os dados via AWS S3 e torrent
Se você está começando agora, é melhor começar por extrações regionais menores: https://wiki.openstreetmap.org/wiki/Planet.osm
Simplesmente clonar meu repositório compactado levaria poucos segundos, mas os scrapers de IA preferem solicitar, uma por uma, todas as revisões de todos os arquivos
.cpela interface webEles trazem junto até todos os recursos decorativos que não servem para nada para eles
Como configurei essa interface web em
cgi, a raspagem vai levar mais tempo do que a idade do universo para terminar. Enquanto isso, porém, desperdiça minha energia elétrica e meus recursosComo alguém apontou recentemente, Aaron Swartz foi ameaçado de prisão por causa de scraping. E agora centenas de bilhões de dólares estão sendo investidos em grandes modelos de linguagem de IA criados por scraping
Ele pegou artigos acadêmicos e os tornou públicos, o que era uma violação clara de direitos autorais
Grandes modelos de linguagem estão em uma zona cinzenta quanto a serem obras derivadas, não cópias literais do texto original
As decisões também variaram de juiz para juiz
É só colocar o
planet.osmem torrent. A “raspagem” deveria ser permitida apenas via torrentAssim, os scrapers dividiriam a carga de rede entre si. Provavelmente todos estão na mesma instância da AWS, então a velocidade da rede também deve melhorar
Os dados, incluindo atualizações minuto a minuto, também são disponibilizados em buckets S3 públicos (UE e EUA) apoiados pelo AWS Open Data Sponsorship Program
Certa vez, em uma entrevista técnica, o entrevistador pediu que eu projetasse um sistema para raspar a Wikipedia em inglês todos os dias. Eu disse: “Vamos começar baixando o arquivo compactado em gzip”
Descobriu-se que o entrevistador não conhecia essa possibilidade e esperava a descrição de um sistema complexo que baixasse página por página, com multithreading, URLs canônicas, verificação de páginas visitadas, retentativas etc.
Mesmo assim, ele deu A para a tarefa, e acabei sendo aprovado naquela empresa
Que tal um honeypot para empresas de IA? Seria criar um loop infinito de conteúdo gerado de forma idiota
Imagine posts do Twitter com tuítes artificiais anexados no final