2 poin oleh GN⁺ 2024-07-31 | 1 komentar | Bagikan ke WhatsApp
  • Pihak pengelola OpenStreetMap menyindir perusahaan AI agar menyumbang 10 ribu dolar alih-alih membebani layanan dengan scraping diam-diam, sambil menyoroti biaya akses data dan beban infrastruktur
  • Untuk sumbangan 50 ribu dolar, ada usulan bahwa mereka bahkan bisa menyediakan pembaruan live streaming per menit langsung dari OpenStreetMap.org
  • Lalu lintas scraping bukan pengecualian langka, melainkan sampai pada tingkat ratusan permintaan per detik ke endpoint API yang mahal, datang dari banyak IP dan User-Agent palsu
  • Sudah ada seluruh data planet.osm, perubahan datanya, serta data per benua, sehingga memakai dataset resmi lebih tepat daripada mengeruk web yang lambat
  • Pemblokiran sulit dilakukan karena penyamaran User-Agent dan pergantian IP, tetapi memblokir crawler AI besar dan menerapkan batas laju (rate limit) yang longgar bisa menjadi langkah untuk mengurangi dampak nyata

Usulan untuk menyumbang alih-alih mengeruk data OpenStreetMap

  • Muncul pesan agar perusahaan AI tidak diam-diam melakukan scraping terhadap OpenStreetMap, melainkan menyumbang 10 ribu dolar
  • Ditambahkan bahwa jika menyumbang 50 ribu dolar, mereka bahkan bisa diberi pembaruan live streaming per menit langsung dari OpenStreetMap.org
  • Di kolom komentar, berulang kali disorot bahwa data OpenStreetMap sebenarnya sudah tersedia dengan cara yang lebih tepat
    • Ada seluruh data planet.osm
    • Ada pembaruan perubahan
    • Ada juga data per benua
  • Tanggapan yang muncul menyebut cara mengeruk situs web secara langsung lebih lambat dan tidak efisien dibanding seluruh data yang sudah disediakan

Beban operasional yang ditimbulkan lalu lintas scraping

  • Scraping OpenStreetMap dipandang bukan sebagai “kombinasi yang belum pernah dilihat”, melainkan hal yang sangat umum
    • Ada kasus ratusan permintaan per detik masuk ke endpoint API yang mahal
    • Menggunakan banyak IP
    • Memalsukan User-Agent
  • Pemblokiran berbasis User-Agent punya keterbatasan yang jelas
    • User-Agent bawaan pustaka seperti python-requests/2.26.0 digunakan
    • Ada kasus menyamar sebagai browser atau googlebot
    • Kepatuhan terhadap robots.txt diperlakukan seolah opsional
    • Jika diblokir, mereka mengganti IP atau User-Agent
  • Meski begitu, beberapa crawler AI tetap punya User-Agent sendiri sehingga pelaku besar bisa dibedakan dan diblokir
    • Bytespyder disebut sebagai contoh
    • Maksudnya bukan memblokir semua IP penambangan data lama, melainkan menghentikan pihak yang benar-benar menimbulkan kerugian
    • Jika diberlakukan batas laju yang sangat longgar, hanya lalu lintas yang cukup besar untuk menimbulkan masalah yang akan terkena pembatasan

1 komentar

 
GN⁺ 2024-07-31
Komentar Hacker News
  • Perusahaan-perusahaan yang terdampak makin kesal terhadap gerombolan crawler AI. Crawler ini tidak mengikuti praktik terbaik scraping seperti mematuhi robots.txt, memakai API publik, atau menghindari jam sibuk
    Ini bukan semata soal hak cipta; biaya infrastruktur juga naik karena lalu lintas scraping yang berlebihan. Jadi akhirnya akan seperti apa? AI bahkan sudah bisa memecahkan CAPTCHA, jadi perlombaan senjata pertahanan bot tampaknya pada dasarnya sudah kalah

    • Tujuannya bukan membuat scraping mustahil, melainkan membuatnya mahal. Manusia tidak mengirim permintaan secepat bot, jadi bot yang berpura-pura jadi manusia pada akhirnya tetap akan terkena pembatasan laju
      Pada akhirnya akun akan diperlukan, akun itu juga akan dilacak, dan akun yang cocok dengan pola tertentu akan dihapus. Ini tidak akan menghentikan scraping, tetapi intinya memang bukan menghentikannya, melainkan membuatnya lambat dan mahal. Jika pada suatu titik lebih masuk akal membayar biaya lisensi daripada berpura-pura jadi manusia, perlombaan senjata itu juga akan hilang
      Apakah pertahanan bisa dibuat cukup baik sehingga lebih baik tidak bertarung sama sekali, adalah pertanyaan yang jauh lebih sulit daripada apakah bot acak bisa berpura-pura jadi manusia dan mengirim beberapa permintaan
    • Pada akhirnya kita mungkin akan mencapai titik di mana hal seperti akses API menjadi berbasis daftar izin. Untuk memverifikasi bahwa sesuatu bukan bot, mungkin perlu membangun hubungan nyata dengan orang nyata di sebuah perusahaan
      Semua cara lain bisa dipalsukan, jadi bahkan pertemuan tatap muka mungkin akan diperlukan. Pada akhirnya kita kembali ke dunia bisnis gaya 1960-an. Berkat para teknolog yang menarik karpet dari bawah kaki semua orang
    • Saya tidak tahu apakah para pelaku AI memikirkan tujuan akhirnya. Dari sisi manusia, internet tampaknya akan menjadi internet yang disesuaikan untuk hutan gelap
      Sekarang kita tidak lagi berasumsi bahwa sebagian besar itu baik dan hanya bagian jahat yang perlu dilacak lalu diblokir. Sebaliknya, hanya bagian yang disetujui oleh kelompok rekan yang secara eksplisit dipercaya yang dianggap baik, dan semua sisanya dianggap jahat. Jika dirugikan karena kepercayaan, hubungan kepercayaan itu diputus, lalu orang akan mencari cara untuk membuat kebersihan kepercayaan semacam ini bekerja
      Dibandingkan internet saat ini, pikiran pertama yang muncul adalah, “itu tidak akan bisa diskalakan ke tingkat seluruh planet.” Tetapi itu tidak perlu. Masalah yang harus diselesaikan komputer bagaimanapun juga semuanya masalah lokal
    • Jawabannya adalah interaksi berbasis API yang diautentikasi
      Dulu situs web secara internal memiliki API sendiri yang dengan bebas mengirimkan konten kepada siapa pun yang meminta. Sekarang situs web seharusnya menjadi antarmuka sederhana untuk pengguna yang menampilkan hasil komunikasi dengan API eksternal, dan hak akses API harus menjadi tanggung jawab pengguna
      Informasi yang layak diambil harus dikunci di balik autentikasi. Berkat OAuth melalui penyedia utama, autentikasi kini jadi sangat mudah
      Mereka yang ingin mengekstrak konten dengan membayar manusia atau memakai layanan berbayar seharusnya lebih baik menggunakan API yang sudah dikemas dengan baik dan berharga masuk akal
      Terakhir, robots.txt harus ditegakkan oleh hukum. Tidak ada bedanya antara mencuri barang dari toko dan mencuri konten dari situs web
      AI dan keserakahan telah membunuh kebebasan terbuka internet
    • Sepertinya akan muncul pulau-pulau autentikasi khusus undangan berbasis kepercayaan. Ini terlihat seperti hasil akhir dari sentralisasi internet yang tak terkendali
  • Saya adalah ketua OpenStreetMap Foundation
    Data OpenStreetMap tersedia gratis secara massal di https://planet.openstreetmap.org. Kami menyarankan menggunakan itu alih-alih melakukan scraping pada situs
    Scraping memberi beban besar pada sumber daya yang didanai dari donasi. Kami memang memblokir IP scraping, tetapi itu pun memerlukan kerja dan waktu
    Jika Anda menghormati waktu dan sumber daya kami, itu membantu kami menjaga layanan tetap gratis dan dapat diakses untuk semua orang

    • Saya penasaran bagaimana tepatnya IP scraping diblokir. Sebagian scraper tampaknya hanya bingung dan tidak tahu cara yang lebih baik untuk memperoleh data OSM
      Jika dijawab dengan kode kesalahan 403, mereka hanya akan mengganti alamat IP
      Pendekatan yang lebih efektif mungkin adalah memberi respons yang berisi petunjuk ke lokasi unduhan massal atau tautan ke panduan pemrosesan dump OSM
  • Instance OpenStreetMap secara harfiah bisa dijalankan sendiri dalam 10 menit. Cukup dengan perintah docker run sederhana
    Tentu pengindeksannya akan memakan sedikit waktu, tetapi mengingat sumber daya mereka, seharusnya itu juga tidak akan lama. Ini cuma keserakahan yang konyol

    • Dulu saya sempat mencoba Headway sebentar karena penasaran. Itu salah satu opsi berbasis Docker yang paling mudah untuk “seluruh stack”
      Tapi itu tidak langsung berjalan dan muncul masalah. Dengan begitu banyak komponen bergerak, itu tidak mengejutkan. Mungkin mengakalinya bukan masalah besar, tetapi saya sangat meragukan klaim bahwa semuanya bisa berjalan stabil hanya dalam 10 menit
    • Tidak, itu cukup menyakitkan
    • Perlu tautan. Waktu terakhir saya mencoba, itu jauh lebih rumit
  • Dulu saya pernah membutuhkan data OSM, tetapi tidak pernah benar-benar memahami cara yang tepat
    Untuk mendapatkan data yang dibutuhkan, saya harus mengunduh file raksasa 100GB dalam format yang samar, dan menggunakan pustaka yang asing. Informasinya tersebar di mana-mana, ada juga HTTP API tetapi dibatasi atau terkena pembatasan laju, dan bahkan dengan itu pun tidak jelas apakah saya memang boleh memakainya
    Saya paham ini karena ketidaktahuan saya sendiri dan saya berterima kasih proyek ini ada, tetapi jika diukur dengan standar zaman ketika para pengembang mengharapkan API yang mulus, kegunaannya memang kurang baik
    Pada akhirnya saya memakai proyek gratis yang menyediakan data OSM yang sudah dikonversi terlebih dahulu ke bentuk yang saya perlukan

    • Sampai tingkat tertentu, itu memang desain yang disengaja. Untuk menyediakan API yang mulus, dibutuhkan model pendanaan untuk mempekerjakan staf operasional yang akan meng-host dan memelihara API tersebut
      OSM Foundation sengaja dijaga tetap kecil dan tidak melakukan hal semacam itu. Sebaliknya, mereka mendorong ekosistem terdesentralisasi tempat siapa pun bisa mengambil datanya dan membangun layanan di atasnya. Ada yang komersial dan ada yang hobi, ada yang berbayar dan ada yang gratis
      Pendekatan ini bekerja sangat baik, dan secara pribadi saya menganggapnya lebih baik daripada pendekatan maksimalis Wikimedia Foundation yang berpusat pada anggaran besar
    • Jika yang dimaksud adalah dump data format protobuf yang relatif baru, ini adalah format biner yang sangat dioptimalkan
      OrganicMaps menggunakan file-file ini secara langsung sehingga bisa menyimpan dan menelusuri satu negara penuh secara lokal. Dalam format ini, pada saat tulisan dibuat, dump Prancis hanya berukuran 4.3GB
      Selain itu, alih-alih mengunduh seluruh peta, Anda bisa memakai salah satu dari banyak mirror seperti Geofabrik untuk hanya mengambil bagian yang diminati
      [0] https://download.geofabrik.de/
    • Saya penasaran format atau pustaka lain yang tidak terlalu asing apa yang bisa disarankan untuk data geografis berskala planet
      Saya juga pernah dulu mengunduh planet.osm dan mungkin mem-parsing-nya di desktop dengan osmosis. Saya belum pernah memakai format atau alat itu di tempat lain, tetapi juga tidak banyak pesaing yang menyediakan data geospasial dalam jumlah besar untuk dipakai bebas seperti OSM. Saya penasaran apa yang bisa dianggap sebagai cara yang mapan dalam kasus seperti ini
    • Cukup klik “Export” di kiri atas pada https://www.openstreetmap.org/. Anda bisa memilih area persegi kecil, dan klik “Manually select a different area”
      Anda bisa langsung mendapatkan file .osm dari browser
      Jika yang dibutuhkan benar-benar hanya satu titik, ada “Query features”, yaitu panah dengan tanda tanya di antara ikon peta di kanan. Dengan itu Anda bisa mengklik fitur geografi satu per satu untuk mendapatkan datanya
    • Memakai proyek gratis yang menyediakan data OSM yang sudah dikonversi ke bentuk yang dibutuhkan tampaknya sudah cukup dekat dengan “cara yang benar”
      Pengembang inti OSM bisa tetap fokus agar frontend OSM yang ada menyediakan data dalam format yang dioptimalkan. Jika Anda membutuhkan hasil konversi ke format populer lain, bagus juga bahwa di ekosistem sudah ada proyek yang melakukannya secara gratis
  • Saya penulis postingan aslinya. Toot itu adalah reaksi sinis yang saya tulis setelah menerapkan pembatasan laju dan pemblokiran terhadap kumpulan scraper jahat lain yang menghantam situs web dan API peta secara agresif. robots.txt diabaikan
    Data OpenStreetMap bisa diunduh gratis. Kami memublikasikannya per menit di https://planet.openstreetmap.org/, dan juga menyediakannya lewat AWS S3 serta torrent
    Jika Anda baru mulai, lebih baik mulai dari ekstrak wilayah yang lebih kecil: https://wiki.openstreetmap.org/wiki/Planet.osm

  • Kalau cukup menyalin repositori terkompresi saya, selesai dalam hitungan detik, tetapi scraper AI justru lebih suka meminta setiap revisi dari semua file .c satu per satu lewat antarmuka web
    Mereka mengambil semuanya, termasuk fitur-fitur dekoratif yang sama sekali tidak berguna bagi mereka
    Antarmuka web itu saya setel dengan cgi, jadi proses scraping-nya akan memakan waktu lebih lama daripada usia alam semesta. Tetapi sementara itu mereka memboroskan listrik dan sumber daya saya

  • Seperti yang baru-baru ini ditunjukkan seseorang, Aaron Swartz pernah diancam bisa masuk penjara karena scraping. Namun sekarang ratusan miliar dolar diinvestasikan ke model bahasa besar AI yang dibangun dari scraping

    • Karena perusahaan raksasa bisa men-scrape Anda, tetapi Anda tidak bisa men-scrape perusahaan raksasa
    • Mengapa harus sampai ke model bahasa besar AI? Scraping dan pengindeksan adalah seluruh pekerjaan yang dilakukan Google Search
    • Aturan untuk orang lain, pengecualian untuk saya. Memang selalu begitu
    • Aaron tidak punya pasukan pengacara seperti yang dimiliki perusahaan besar
      Ia mengambil makalah dan memublikasikannya, dan itu jelas merupakan pelanggaran hak cipta
      Model bahasa besar berada di wilayah abu-abu soal apakah itu bukan salinan verbatim dari karya asli, melainkan karya turunan
      Putusan para hakim juga berbeda-beda
    • Bukankah dia men-scrape materi yang berada di balik paywall?
  • Tinggal unggah planet.osm ke torrent. “Scraping” cukup diizinkan lewat torrent saja
    Dengan begitu para scraper akan saling berbagi beban jaringan. Mungkin mereka semua ada di instans AWS yang sama, jadi kecepatan jaringannya juga akan lebih baik

    • Data kami memang sudah dipublikasikan lewat torrent: https://planet.openstreetmap.org
      Data termasuk pembaruan per menit juga tersedia di bucket S3 publik (EU dan US) yang didukung AWS Open Data Sponsorship Program
  • Dulu dalam wawancara teknis, pewawancara meminta saya merancang sistem untuk men-scrape Wikipedia bahasa Inggris setiap hari. Saya menjawab, “Saya akan mulai dengan mengunduh arsip yang dikompresi dengan gzip”
    Ternyata pewawancara tidak tahu itu memungkinkan, dan sebenarnya mengharapkan penjelasan tentang sistem rumit yang mengunduh halaman satu per satu, lengkap dengan multithreading, URL standar, pemeriksaan halaman yang sudah dikunjungi, retry, dan sebagainya
    Meski begitu, dia tetap memberi nilai A untuk tugas itu, dan akhirnya saya diterima di perusahaan tersebut

  • Bagaimana kalau dibuat honeypot untuk perusahaan AI? Buat saja loop tak berujung dari konten bodoh hasil generasi
    Bayangkan postingan Twitter dengan tweet buatan yang menempel di bagian akhir

    • Lalu tiba-tiba OpenStreetMap jadi tidak terlalu open lagi. Seperti OpenAI, haha