- OpenStreetMap चलाने वाले लोगों ने तंज कसते हुए कहा कि AI कंपनियां चुपके से scraping करके बोझ बढ़ाने के बजाय 10,000 डॉलर दान करें, जिससे डेटा access की लागत और infrastructure पर पड़ने वाला दबाव सामने आता है
- 50,000 डॉलर के दान पर OpenStreetMap.org से सीधे मिनट-दर-मिनट live streaming updates देने का सुझाव भी जोड़ा गया
- Scraping ट्रैफ़िक कोई दुर्लभ अपवाद नहीं, बल्कि महंगे API endpoints पर प्रति सेकंड सैकड़ों requests कई IPs और नकली User-Agent के साथ आने के स्तर तक पहुंच चुका है
planet.osmका पूरा डेटा, बदलावों के updates, और महाद्वीप-स्तर का डेटा पहले से उपलब्ध है, इसलिए धीमी web scraping की जगह आधिकारिक dataset का उपयोग अधिक उपयुक्त है- User-Agent की नक़ल और IP बदलने की वजह से block करना कठिन है, लेकिन बड़े AI crawlers को block करना और उदार rate limit लगाना वास्तविक नुकसान कम करने का व्यावहारिक तरीका हो सकता है
OpenStreetMap डेटा scrape करने के बजाय दान करने का प्रस्ताव
- AI कंपनियों से कहा गया कि वे OpenStreetMap को चुपके से scrape न करें और 10,000 डॉलर दान करें
- यह भी जोड़ा गया कि 50,000 डॉलर दान करने पर OpenStreetMap.org से सीधे मिनट-दर-मिनट live streaming updates भी दिए जा सकते हैं
- टिप्पणियों में बार-बार यह बात दोहराई गई कि OpenStreetMap डेटा पहले से ही अधिक उपयुक्त तरीकों से उपलब्ध है
- पूरा
planet.osmडेटा उपलब्ध है - बदलावों के updates उपलब्ध हैं
- महाद्वीप-स्तर का डेटा भी उपलब्ध है
- पूरा
- वेबसाइट को सीधे scrape करना पहले से उपलब्ध पूरे डेटा की तुलना में धीमा और अक्षम तरीका माना गया
Scraping ट्रैफ़िक से पैदा होने वाला परिचालन बोझ
- OpenStreetMap scraping को “पहली बार दिखने वाली चीज़” नहीं, बल्कि बहुत आम समस्या माना जाता है
- महंगे API endpoints पर प्रति सेकंड सैकड़ों requests आने के मामले होते हैं
- कई IPs का इस्तेमाल किया जाता है
- User-Agent को नकली बनाया जाता है
- User-Agent आधारित blocking की स्पष्ट सीमाएं हैं
python-requests/2.26.0जैसे library के default User-Agent इस्तेमाल होते हैं- browser या
googlebotजैसा रूप धारण किया जाता है robots.txtका पालन मानो वैकल्पिक समझा जाता है- block होने पर IP या User-Agent बदल दिया जाता है
- फिर भी कुछ AI crawlers के अपने User-Agent होते हैं, इसलिए बड़े नुकसान करने वालों की पहचान कर उन्हें रोका जा सकता है
- उदाहरण के तौर पर Bytespyder का उल्लेख किया गया
- उद्देश्य यह नहीं कि अतीत के सभी data-mining IPs को block कर दिया जाए, बल्कि उन पक्षों को रोका जाए जो वास्तविक नुकसान पहुंचा रहे हैं
- बहुत उदार rate limit रखने पर केवल समस्या पैदा करने लायक ट्रैफ़िक ही सीमित होगा
1 टिप्पणियां
Hacker News की राय
प्रभावित कंपनियां AI crawler सेनाओं से लगातार ज्यादा चिढ़ रही हैं। ये crawlers
robots.txtका पालन करने, public API इस्तेमाल करने, peak hours से बचने जैसी scraping की best practices नहीं मानतेयह सिर्फ copyright का मामला नहीं है; अत्यधिक scraping traffic की वजह से infrastructure cost भी बढ़ती है। आखिरी स्थिति क्या होगी? AI तो अब CAPTCHA भी हल कर सकता है, इसलिए bot defense की arms race असल में हार चुकी लगती है
अंततः account की जरूरत पड़ेगी, वह account भी track होगा, और किसी खास pattern से मेल खाने वाले accounts delete किए जाएंगे। Scraping को रोका नहीं जा सकता, लेकिन असली बात रोकना नहीं बल्कि उसे धीमा और महंगा बनाना है। किसी बिंदु पर जब इंसान होने का दिखावा करने से बेहतर license fee देना हो जाए, तो arms race भी खत्म हो जाएगी
क्या defense इतना अच्छा बनाया जा सकता है कि लड़ना ही बेहतर न लगे—यह सवाल इस बात से कहीं ज्यादा कठिन है कि कोई random bot इंसान बनकर कुछ requests कर सकता है या नहीं
बाकी सभी तरीकों की नकल की जा सकती है, इसलिए इसमें in-person meeting तक शामिल हो सकती है। यानी अंततः हम 1960 के दशक वाली business दुनिया में लौट रहे हैं। यह सब इसलिए कि technologists ने सबके पैरों के नीचे से कालीन खींच लिया
अब यह नहीं माना जाएगा कि ज्यादातर हिस्सा अच्छा है और केवल malicious हिस्से को track करके block करना है। इसके बजाय, केवल वे हिस्से अच्छे माने जाएंगे जिन्हें explicitly trusted peers के group ने approve किया हो, और बाकी सब malicious माना जाएगा। भरोसे की वजह से नुकसान हुआ तो उस trust relationship को काट दिया जाएगा, और ऐसी trust hygiene काम करे, इसके तरीके खोजे जाएंगे
मौजूदा internet से तुलना करने पर पहला ख्याल आता है, “यह तो पूरी पृथ्वी के scale पर expand नहीं होगा।” लेकिन इसकी जरूरत भी नहीं है। Computers को जिन समस्याओं का हल देना है, वे आखिरकार सारी local problems ही हैं
पुराने websites के अंदर अपनी API होती थी, जो request करने वाले किसी को भी freely content दे देती थी। अब websites को external API से बात करके display करने वाला user-facing simple interface बनना चाहिए, और API access अधिकार user की जिम्मेदारी होना चाहिए
जो जानकारी ले जाने लायक है, उसे authentication के पीछे lock करना चाहिए। बड़े providers के जरिए OAuth की वजह से authentication बेहद आसान हो गया है
जो लोग पैसे देकर इंसानों या paid services से content extract करवाना चाहते हैं, उनके लिए बेहतर है कि वे ठीक से packaged और reasonable price वाली API ही इस्तेमाल करें
अंत में,
robots.txtको कानून से enforce किया जाना चाहिए। दुकान से सामान चुराने और website से content चुराने में कोई फर्क नहीं हैAI और लालच ने internet की खुली आजादी को मार दिया
मैं OpenStreetMap Foundation का chair हूं
OpenStreetMap data https://planet.openstreetmap.org पर bulk में मुफ्त उपलब्ध है। Site scrape करने के बजाय इसे इस्तेमाल करने की सलाह देता हूं
Scraping donated resources पर भारी load डालती है। हम scraping IPs को block करते हैं, लेकिन उसमें भी काम और समय लगता है
हमारे समय और resources का सम्मान करने से service को सभी के लिए मुफ्त और accessible बनाए रखने में मदद मिलती है
403error code से response देने पर वे सिर्फ IP address बदल देंगेज्यादा प्रभावी approach यह हो सकती है कि response में bulk download location की जानकारी या OSM dump process करने की guide के link दिए जाएं
OpenStreetMap instance को सचमुच 10 मिनट में खुद launch किया जा सकता है। बस एक simple
docker runcommand काफी हैबेशक indexing में थोड़ा समय लगेगा, लेकिन उनकी resources को देखते हुए बहुत देर लगने का सवाल नहीं। यह बस बेतुका लालच है
लेकिन यह तुरंत काम नहीं किया और दिक्कत आई। इसमें बहुत सारे moving parts हैं, इसलिए हैरानी नहीं। Workaround कोई बड़ी बात नहीं भी हो सकती, लेकिन यह कहना कि सब कुछ reliably चलाने में 10 मिनट लगते हैं, काफी संदिग्ध है
एक समय OSM डेटा की ज़रूरत थी, लेकिन सही तरीका आखिर तक समझ नहीं पाया
ज़रूरी डेटा पाने के लिए 100GB की एक विशाल फ़ाइल किसी अस्पष्ट format में डाउनलोड करनी पड़ती थी, और अनजान libraries इस्तेमाल करनी पड़ती थीं। जानकारी बिखरी हुई थी और HTTP API भी था, लेकिन या तो सीमाएं थीं या rate limit लगी थी, और यह भी साफ़ नहीं था कि इसे इस्तेमाल करना ठीक है या नहीं
मानता हूं कि मेरी जानकारी कम थी और project मौजूद है इसके लिए आभारी हूं, लेकिन उस दौर के हिसाब से, जहां developers smooth API की उम्मीद करते हैं, usability अच्छी नहीं थी
आखिर में मैंने एक free project इस्तेमाल किया जो ज़रूरत के format में पहले से बदला हुआ OSM डेटा देता था
OSM Foundation जानबूझकर छोटी रखी गई है और वह यह काम नहीं करती। इसके बजाय वह एक decentralized ecosystem को बढ़ावा देती है, जहां कोई भी डेटा लेकर उसके ऊपर services बना सकता है। कुछ commercial हैं, कुछ hobby projects, कुछ paid हैं और कुछ free
यह तरीका बहुत अच्छी तरह काम करता है, और निजी तौर पर मुझे यह Wikimedia Foundation के बड़े budget-केंद्रित maximalist approach से बेहतर लगता है
OrganicMaps इन फ़ाइलों को सीधे इस्तेमाल करके पूरे देश को locally store और query कर सकता है। इस format में, लिखते समय France dump सिर्फ 4.3GB है
साथ ही पूरा map डाउनलोड करने के बजाय Geofabrik जैसे कई mirrors में से किसी एक का इस्तेमाल करके केवल अपनी रुचि वाला हिस्सा लिया जा सकता है
[0] https://download.geofabrik.de/
मैंने भी पहले
planet.osmडाउनलोड करके desktop पर शायदosmosisसे parse किया था। उस format या tool को मैंने कहीं और इस्तेमाल होते नहीं देखा, लेकिन OSM की तरह बहुत बड़ी मात्रा में geospatial data को freely usable रूप में उपलब्ध कराने वाले competitors भी ज़्यादा नहीं हैं। ऐसे मामले में किसे established तरीका माना जा सकता है, यह जानना चाहता हूंbrowser में सीधे
.osmफ़ाइल मिल सकती हैअगर सचमुच सिर्फ एक single point चाहिए, तो दाईं ओर map icons में question mark वाले arrow की तरह “Query features” है। इससे अलग-अलग map features पर click करके डेटा लिया जा सकता है
OSM के core developers existing OSM frontend को optimized format में डेटा देने पर focus कर सकते हैं। अगर किसी और popular format में converted डेटा चाहिए, तो ecosystem में पहले से कोई project इसे free में कर रहा है, यह अच्छी बात है
मैं original post लिखने वाला हूं। वह toot, website और map API पर aggressively hit करने वाले malicious scrapers के एक और समूह पर rate limit और blocks लगाने के बाद की गई एक sarcastic प्रतिक्रिया थी।
robots.txtको ignore किया गयाOpenStreetMap डेटा free में डाउनलोड किया जा सकता है। हम https://planet.openstreetmap.org/ पर minute-level पर publish करते हैं, और AWS S3 तथा torrents के जरिए भी डेटा देते हैं
अगर अभी शुरुआत कर रहे हैं, तो छोटे regional extracts से शुरू करना बेहतर है: https://wiki.openstreetmap.org/wiki/Planet.osm
मेरे compressed repository को बस clone कर दें तो कुछ seconds में खत्म हो जाएगा, लेकिन AI scrapers web interface के जरिए हर
.cfile के हर revision को एक-एक करके request करना पसंद करते हैंवे अपने लिए बेकार decorative features समेत सब कुछ उठा ले जाते हैं
वह web interface मैंने
cgiसे set किया है, इसलिए scraping खत्म होने में ब्रह्मांड की उम्र से भी ज़्यादा समय लगेगा। लेकिन इस दौरान मेरी बिजली और resources बर्बाद होते हैंजैसा कि किसी ने हाल ही में बताया, Aaron Swartz को scraping की वजह से जेल जाने की धमकी मिली थी। लेकिन अब scraping से बनाए गए AI large language models में सैकड़ों अरब डॉलर invest हो रहे हैं
उसने papers लेकर public कर दिए, और यह साफ़ copyright infringement था
large language models इस grey area में हैं कि वे original text की verbatim copy नहीं हैं, बल्कि derivative works हैं या नहीं
अलग-अलग judges के फैसले भी अलग रहे हैं
planet.osmको torrent पर डाल देना चाहिए। “scraping” सिर्फ torrent के जरिए allow करनी चाहिएतब scrapers network load को आपस में share करेंगे। शायद वे सब एक ही AWS instance पर होंगे, तो network speed भी बेहतर हो जाएगी
minute-level updates समेत डेटा, AWS Open Data Sponsorship Program द्वारा supported public S3 buckets (EU और US) पर भी उपलब्ध है
पहले एक technical interview में interviewer ने कहा कि English Wikipedia को रोज scrape करने वाला system design करें। मैंने कहा, “चलो gzip-compressed archive डाउनलोड करने से शुरू करते हैं”
पता चला interviewer को इस option के बारे में पता ही नहीं था, और वह multi-threading, standard URLs, visited pages check, retries आदि के साथ page-by-page डाउनलोड करने वाले complex system की explanation उम्मीद कर रहा था
फिर भी उसने उस task में A दिया, और आखिरकार मैं उस company में select हो गया
AI companies के लिए honeypot कैसा रहेगा? बेवकूफ़ी भरे generated content का infinite loop बनाना
कल्पना करें कि Twitter post के अंत में artificial tweets जुड़े हुए हों