2 คะแนน โดย GN⁺ 2024-07-31 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • ฝั่งผู้ดูแล OpenStreetMap แซวเชิงประชดว่าแทนที่บริษัท AI จะสร้างภาระด้วยการแอบ สแครปข้อมูล ควรบริจาค 10,000 ดอลลาร์ พร้อมสะท้อนต้นทุนการเข้าถึงข้อมูลและภาระด้านโครงสร้างพื้นฐาน
  • ยังมีข้อเสนอแนบว่าหากบริจาค 50,000 ดอลลาร์ อาจให้บริการ อัปเดตแบบไลฟ์สตรีมรายนาที ที่รับโดยตรงจาก OpenStreetMap.org ได้ด้วย
  • ทราฟฟิกจากการสแครปไม่ใช่ข้อยกเว้นที่พบได้ยาก แต่เกิดถึงระดับที่มี คำขอหลายร้อยครั้งต่อวินาที เข้า API endpoint ราคาแพง จากหลาย IP และ User-Agent ปลอม
  • มีทั้งชุดข้อมูล planet.osm ทั้งหมด ข้อมูลส่วนเปลี่ยนแปลง และข้อมูลแยกตามทวีปอยู่แล้ว ดังนั้นการใช้ชุดข้อมูลทางการจึงเหมาะสมกว่าการขูดเว็บที่ช้า
  • แม้การบล็อกจะทำได้ยากเพราะมีการปลอม User-Agent และเปลี่ยน IP แต่การบล็อก AI crawler รายใหญ่และการตั้ง การจำกัดอัตรา (rate limit) แบบเผื่อไว้มากพอ อาจเป็นมาตรการที่ลดความเสียหายจริงได้

ข้อเสนอให้บริจาคแทนการขูดข้อมูล OpenStreetMap

  • มีข้อความออกมาว่าบริษัท AI ไม่ควรแอบสแครป OpenStreetMap แต่ควร บริจาค 10,000 ดอลลาร์
  • พร้อมเสริมว่าหากบริจาค 50,000 ดอลลาร์ ก็อาจให้บริการ อัปเดตแบบไลฟ์สตรีมรายนาที โดยตรงจาก OpenStreetMap.org ได้
  • ในคอมเมนต์มีการย้ำหลายครั้งว่าข้อมูล OpenStreetMap มีให้ใช้อยู่แล้วในวิธีที่เหมาะสมกว่า
    • มีข้อมูล planet.osm ทั้งชุด
    • มีอัปเดตส่วนเปลี่ยนแปลง
    • มีข้อมูลแยกตามทวีปด้วย
  • มีความเห็นต่อเนื่องว่าการขูดข้อมูลจากเว็บไซต์โดยตรงนั้น ช้าและไม่มีประสิทธิภาพ เมื่อเทียบกับข้อมูลทั้งชุดที่มีให้อยู่แล้ว

ภาระด้านการดำเนินงานที่ทราฟฟิกจากการสแครปสร้างขึ้น

  • การสแครป OpenStreetMap ไม่ถูกมองว่าเป็น “รูปแบบที่เพิ่งเคยเห็น” แต่เป็นเรื่องที่ พบบ่อยมาก
    • บางกรณีมีคำขอหลายร้อยครั้งต่อวินาทีเข้าไปยัง API endpoint ที่มีต้นทุนสูง
    • ใช้หลาย IP
    • ปลอม User-Agent
  • การบล็อกโดยอิง User-Agent มีข้อจำกัดชัดเจน
    • มีการใช้ User-Agent ค่าเริ่มต้นของไลบรารี เช่น python-requests/2.26.0
    • มีกรณีปลอมตัวเป็นเบราว์เซอร์หรือ googlebot
    • การปฏิบัติตาม robots.txt ถูกมองเหมือนเป็นเรื่องเลือกทำได้
    • หากถูกบล็อก ก็เปลี่ยน IP หรือ User-Agent
  • อย่างไรก็ตาม AI crawler บางตัวมี User-Agent ของตัวเอง จึงสามารถแยกและบล็อกผู้ก่อปัญหารายใหญ่ได้
    • มีการยกตัวอย่าง Bytespyder
    • เจตนาไม่ใช่การบล็อก IP ที่เคยทำ data mining ทั้งหมดในอดีต แต่เป็นการบล็อกฝ่ายที่สร้างความเสียหายจริง
    • หากตั้ง การจำกัดอัตรา แบบเผื่อไว้กว้างมาก ก็อาจจำกัดเฉพาะทราฟฟิกที่มากพอจะก่อปัญหาได้

1 ความคิดเห็น

 
GN⁺ 2024-07-31
ความคิดเห็นจาก Hacker News
  • บริษัทที่ได้รับผลกระทบเริ่มหงุดหงิดกับ กองทัพครอว์เลอร์ AI มากขึ้นเรื่อย ๆ ครอว์เลอร์เหล่านี้ไม่ปฏิบัติตามแนวทางปฏิบัติที่ดีในการสแครป เช่น เคารพ robots.txt, ใช้ API สาธารณะ, หรือหลีกเลี่ยงช่วงเวลาพีก
    ไม่ใช่แค่ปัญหาเรื่องลิขสิทธิ์เท่านั้น แต่ ต้นทุนโครงสร้างพื้นฐาน ก็เพิ่มขึ้นเพราะทราฟฟิกสแครปที่มากเกินไปด้วย จุดจบจะเป็นอย่างไร? AI แก้ CAPTCHA ได้แล้ว ดังนั้นการแข่งขันสะสมอาวุธด้านการป้องกันบ็อตดูเหมือนจะแพ้ไปแล้วในทางปฏิบัติ

    • เป้าหมายไม่ใช่ทำให้สแครปไม่ได้ แต่คือทำให้มัน แพงขึ้น มนุษย์ไม่ได้ส่งคำขอเร็วเท่าบ็อต ดังนั้นบ็อตที่แกล้งทำเป็นมนุษย์ก็จะติด rate limit ในที่สุด
      สุดท้ายก็ต้องมีบัญชี และบัญชีนั้นก็จะถูกติดตามต่อไป บัญชีที่ตรงกับรูปแบบบางอย่างก็จะถูกลบตามมา แม้จะหยุดการสแครปไม่ได้ แต่ประเด็นหลักไม่ใช่การหยุด หากคือทำให้มัน ช้าและแพง เมื่อถึงจุดหนึ่งที่การจ่ายค่าไลเซนส์คุ้มกว่าการแกล้งทำเป็นมนุษย์ การแข่งขันสะสมอาวุธก็จะหายไป
      คำถามที่ว่าการป้องกันจะดีพอจนทำให้ไม่คุ้มที่จะสู้เลยได้หรือไม่นั้น ยากกว่าคำถามว่าบ็อตสุ่ม ๆ จะปลอมเป็นมนุษย์แล้วส่งคำขอได้ไม่กี่ครั้งหรือไม่มากนัก
    • สุดท้ายคงไปถึงจุดที่การเข้าถึงอย่าง API กลายเป็นแบบ allowlist-based เพื่อยืนยันว่าไม่ใช่บ็อต อาจต้องสร้างความสัมพันธ์จริงกับคนจริง ๆ ในบริษัท
      วิธีอื่นทั้งหมดปลอมแปลงได้ จึงอาจรวมไปถึงการประชุมแบบพบหน้ากันด้วย ท้ายที่สุดก็เหมือนย้อนกลับไปสู่โลกธุรกิจแบบทศวรรษ 1960 ทั้งหมดเป็นเพราะนักเทคโนโลยีดึงพรมออกจากใต้เท้าของทุกคน
    • ไม่รู้ว่า AI มีเป้าหมายสุดท้ายอยู่ในใจหรือไม่ แต่ฝั่งมนุษย์ดูเหมือนจะกลายเป็น อินเทอร์เน็ตที่ปรับให้เข้ากับป่ามืด
      ต่อไปจะไม่สมมติอีกแล้วว่าส่วนใหญ่เป็นฝ่ายดี แล้วค่อยติดตามและบล็อกเฉพาะส่วนที่เป็นอันตราย แต่จะสมมติว่าเฉพาะส่วนที่กลุ่มเพื่อนร่วมงานที่เราเชื่อถืออย่างชัดเจนอนุมัติเท่านั้นที่ดี ส่วนที่เหลือทั้งหมดเป็นอันตราย หากได้รับความเสียหายเพราะความไว้วางใจ ก็จะตัดความสัมพันธ์แห่งความไว้วางใจนั้น และหาวิธีจูงใจให้สุขอนามัยด้านความไว้วางใจแบบนี้ทำงานได้
      เมื่อเทียบกับอินเทอร์เน็ตปัจจุบัน ความคิดแรกที่ผุดขึ้นมาคือ “แบบนั้นคงขยายไปทั้งโลกไม่ได้” แต่ก็ไม่จำเป็นต้องทำ ปัญหาที่คอมพิวเตอร์ต้องแก้ให้นั้น อย่างไรก็ล้วนเป็นปัญหาเชิงพื้นที่อยู่แล้ว
    • คำตอบคือ การโต้ตอบผ่าน API ที่มีการยืนยันตัวตน
      เว็บไซต์สมัยก่อนมี API ภายในของตัวเองที่ส่งมอบคอนเทนต์ให้ใครก็ตามที่ร้องขออย่างเสรี ตอนนี้เว็บไซต์ควรกลายเป็นอินเทอร์เฟซเรียบง่ายสำหรับผู้ใช้ที่สื่อสารกับ API ภายนอก และสิทธิ์เข้าถึง API ควรเป็นความรับผิดชอบของผู้ใช้
      ข้อมูลที่มีคุณค่าให้เอาไปควรถูกล็อกไว้หลังการยืนยันตัวตน การยืนยันตัวตนกลายเป็นเรื่องง่ายอย่างเหลือเชื่อด้วย OAuth ผ่านผู้ให้บริการหลัก
      คนที่ยอมจ่ายเงินใช้แรงงานคนหรือบริการแบบเสียเงินเพื่อดึงคอนเทนต์ ควรหันไปใช้ API ที่จัดแพ็กเกจดีและตั้งราคาสมเหตุสมผลแทน
      สุดท้าย robots.txt ควรถูกบังคับใช้ตามกฎหมาย ไม่มีความแตกต่างระหว่างการขโมยของจากร้านกับการขโมยคอนเทนต์จากเว็บไซต์
      AI และความโลภได้ฆ่าความเปิดกว้างเสรีของอินเทอร์เน็ตไปแล้ว
    • น่าจะเกิด เกาะการยืนยันตัวตนแบบเชิญเท่านั้น ที่ตั้งอยู่บนความไว้วางใจ ดูเหมือนเป็นผลลัพธ์ที่การรวมศูนย์อย่างไร้ขอบเขตของอินเทอร์เน็ตจะนำมาสู่ในที่สุด
  • เป็นประธานของ OpenStreetMap Foundation
    ข้อมูล OpenStreetMap มีให้ใช้ฟรีแบบปริมาณมากที่ https://planet.openstreetmap.org แนะนำให้ใช้ช่องทางนี้แทนการสแครปเว็บไซต์
    การสแครปสร้างภาระหนักต่อทรัพยากรที่ได้รับบริจาคมา เราบล็อก IP ที่สแครป แต่แม้แค่นั้นก็ยังต้องใช้แรงและเวลา
    หากเคารพเวลาและทรัพยากรของเรา ก็จะช่วยให้บริการยังคงฟรีและเข้าถึงได้สำหรับทุกคน

    • สงสัยว่าบล็อก IP ที่สแครปอย่างแม่นยำได้อย่างไร สแครปเปอร์บางรายดูเหมือนจะแค่สับสน และไม่รู้วิธีที่ดีกว่าในการรับ ข้อมูล OSM
      หากตอบกลับด้วยรหัสข้อผิดพลาด 403 พวกเขาก็แค่เปลี่ยนที่อยู่ IP เท่านั้น
      แนวทางที่มีประสิทธิภาพกว่าอาจเป็นการส่งคำตอบที่มีคำแนะนำตำแหน่งดาวน์โหลดปริมาณมาก หรือลิงก์ไปยังคู่มือการประมวลผล dump ของ OSM
  • อินสแตนซ์ OpenStreetMap สามารถตั้งขึ้นเองได้จริง ๆ ภายใน 10 นาที แค่คำสั่ง docker run ง่าย ๆ ก็พอ
    แน่นอนว่าการทำดัชนีจะใช้เวลาบ้าง แต่เมื่อคิดถึงทรัพยากรฝั่งนั้นแล้ว ก็คงไม่นานหรอก นี่เป็นแค่ ความโลภ ที่ไร้เหตุผล

    • เมื่อก่อนเคยลองใช้ Headway แวบหนึ่งเพราะอยากรู้ เป็นหนึ่งในตัวเลือกแบบ Docker ที่ง่ายที่สุดสำหรับ “full stack”
      แต่ไม่ได้ทำงานได้ทันทีและเกิดปัญหา ซึ่งก็ไม่น่าแปลกใจเพราะมีชิ้นส่วนที่เคลื่อนไหวเยอะมาก การหาทางเลี่ยงอาจไม่ใช่เรื่องใหญ่ แต่คำกล่าวว่าทำให้ทุกอย่างทำงานอย่างเสถียรได้ภายใน 10 นาทีนั้นน่าสงสัยมาก
    • ไม่เลย ค่อนข้างเจ็บปวดทีเดียว
    • ต้องการลิงก์ ครั้งสุดท้ายที่ลอง มันซับซ้อนกว่านั้นมาก
  • ครั้งหนึ่งเคยต้องใช้ ข้อมูล OSM แต่สุดท้ายก็หาวิธีที่ถูกต้องไม่เจอ
    ถ้าจะเอาข้อมูลที่ต้องการ ต้องดาวน์โหลดไฟล์ขนาดยักษ์ 100GB ในฟอร์แมตที่คลุมเครือ แล้วใช้ไลบรารีที่ไม่คุ้นเคย ข้อมูลกระจัดกระจาย และแม้จะมี HTTP API ก็มีข้อจำกัดหรือมีการจำกัดอัตราการเรียกใช้ แถมยังไม่ชัดเจนว่าใช้แบบนี้ได้หรือไม่
    ยอมรับว่าเป็นความไม่รู้ของตัวเอง และก็ขอบคุณที่โปรเจกต์นี้มีอยู่ แต่ถ้าวัดด้วยมาตรฐานยุคที่นักพัฒนาคาดหวัง API ที่ใช้งานลื่นไหลแล้ว ความสะดวกในการใช้งานยังไม่ดีนัก
    สุดท้ายจึงใช้โปรเจกต์ฟรีที่ให้ข้อมูล OSM ซึ่งแปลงล่วงหน้าไว้แล้วในรูปแบบที่ต้องการ

    • ในระดับหนึ่ง นี่เป็นการออกแบบที่ตั้งใจไว้ หากจะให้ API ที่ลื่นไหล ก็ต้องมีโมเดลเงินทุนเพื่อจ้าง ทีมปฏิบัติการ มาคอยโฮสต์และดูแล API นั้น
      OSM Foundation ตั้งใจคงขนาดองค์กรให้เล็ก และไม่ทำงานแบบนั้น แต่สนับสนุนระบบนิเวศแบบกระจายศูนย์แทน ที่ใครก็สามารถนำข้อมูลไปสร้างบริการบนข้อมูลนั้นได้ มีทั้งเชิงพาณิชย์และงานอดิเรก ทั้งแบบเสียเงินและฟรี
      วิธีนี้ทำงานได้ดีมาก และโดยส่วนตัวผมคิดว่าดีกว่าแนวทางแบบมุ่งใช้งบประมาณก้อนใหญ่ของ Wikimedia Foundation
    • ถ้าหมายถึง ดัมป์ข้อมูลฟอร์แมต protobuf ที่ค่อนข้างใหม่ นั่นเป็นฟอร์แมตไบนารีที่ปรับแต่งประสิทธิภาพมาสูงมาก
      OrganicMaps ใช้ไฟล์เหล่านี้โดยตรงเพื่อเก็บและค้นหาข้อมูลทั้งประเทศไว้ในเครื่องได้ ในฟอร์แมตนี้ ณ เวลาที่เขียน ดัมป์ของฝรั่งเศสมีขนาดเพียง 4.3GB
      อีกอย่าง แทนที่จะดาวน์โหลดแผนที่ทั้งใบ ก็สามารถใช้มิเรอร์จำนวนมากอย่าง Geofabrik เพื่อดาวน์โหลดเฉพาะส่วนที่สนใจได้
      [0] https://download.geofabrik.de/
    • อยากรู้เหมือนกันว่าจะเสนอฟอร์แมตหรือไลบรารีแบบไหนที่คุ้นเคยกว่านี้สำหรับข้อมูลภูมิศาสตร์ระดับทั้งโลก
      ผมเองก็เคยดาวน์โหลด planet.osm แล้วน่าจะพาร์สด้วย osmosis บนเดสก์ท็อปมาก่อน แม้จะไม่เคยใช้ฟอร์แมตหรือเครื่องมือนั้นที่อื่น แต่ก็ไม่ได้มีคู่แข่งมากนักที่ให้ใช้ข้อมูลภูมิสารสนเทศปริมาณมหาศาลได้อย่างเสรีแบบ OSM เลยสงสัยว่าในกรณีแบบนี้ อะไรคือแนวทางที่ถือว่าเป็นมาตรฐานที่ยอมรับกัน
    • ไปที่ https://www.openstreetmap.org/ แล้วกด “Export” ที่มุมซ้ายบนก็ได้ สามารถเลือกพื้นที่สี่เหลี่ยมเล็ก ๆ และกด “Manually select a different area” ได้
      สามารถรับไฟล์ .osm ได้จากเบราว์เซอร์โดยตรง
      ถ้าต้องการแค่จุดเดียวตามตัวอักษร ก็มี “Query features” ซึ่งเป็นลูกศรที่มีเครื่องหมายคำถามในไอคอนแผนที่ด้านขวา ใช้คลิกวัตถุภูมิประเทศแต่ละรายการเพื่อดูข้อมูลได้
    • การใช้โปรเจกต์ฟรีที่ให้ข้อมูล OSM ซึ่งแปลงล่วงหน้าไว้แล้วในรูปแบบที่ต้องการ ดูใกล้เคียงกับ “วิธีที่ถูกต้อง” มากพอแล้ว
      นักพัฒนาหลักของ OSM สามารถโฟกัสกับการทำให้ฟรอนต์เอนด์ OSM ที่มีอยู่ให้ข้อมูลในฟอร์แมตที่เหมาะสมที่สุดได้ หากต้องการข้อมูลที่แปลงเป็นฟอร์แมตยอดนิยมอื่น การที่มีโปรเจกต์ในระบบนิเวศทำสิ่งนั้นให้ฟรีอยู่แล้วก็เป็นเรื่องดี
  • ผมคือผู้เขียนโพสต์ต้นทาง ทูตนั้นเป็นปฏิกิริยาเชิงประชดหลังจากเราเพิ่งตั้ง rate limit และบล็อก สแครปเปอร์อันตราย อีกชุดหนึ่งที่โจมตีเว็บไซต์และ API แผนที่อย่างรุนแรง robots.txt ถูกเมิน
    ข้อมูล OpenStreetMap ดาวน์โหลดได้ฟรี เราเผยแพร่เป็นรายนาทีที่ https://planet.openstreetmap.org/ และยังให้ข้อมูลผ่าน AWS S3 กับทอร์เรนต์ด้วย
    ถ้าเพิ่งเริ่มต้น ควรเริ่มจากชุดข้อมูลย่อยของพื้นที่ที่เล็กกว่านี้ก่อน: https://wiki.openstreetmap.org/wiki/Planet.osm

  • ถ้าแค่ clone คลังเก็บที่บีบอัดของผมก็เสร็จในไม่กี่วินาที แต่พวก AI scraper กลับชอบขอทุก revision ของไฟล์ .c ทุกไฟล์ทีละรายการผ่านเว็บอินเทอร์เฟซ
    รวมถึงฟีเจอร์ตกแต่งที่ไม่มีประโยชน์กับพวกเขาทั้งหมดด้วย
    เว็บอินเทอร์เฟซนั้นผมตั้งค่าไว้ด้วย cgi ดังนั้นการสแครปคงใช้เวลานานกว่าอายุของจักรวาลกว่าจะเสร็จ แต่ระหว่างนั้นก็ยังผลาญไฟฟ้าและทรัพยากรของผม

  • อย่างที่มีคนเพิ่งชี้ไว้ Aaron Swartz เคยถูกขู่ว่าอาจติดคุกเพราะการสแครป แต่ตอนนี้ โมเดลภาษา AI ขนาดใหญ่ ที่สร้างจากการสแครปกลับได้รับเงินลงทุนหลายแสนล้านดอลลาร์

    • เพราะบริษัทขนาดยักษ์สแครปคุณได้ แต่คุณสแครป บริษัทขนาดยักษ์ ไม่ได้
    • ทำไมต้องไปไกลถึงโมเดลภาษา AI ขนาดใหญ่ด้วย? การสแครปและทำดัชนีคือทั้งหมดที่ Google Search ทำอยู่แล้ว
    • กฎมีไว้ให้คนอื่น ข้อยกเว้นมีไว้ให้ตัวเอง เป็นแบบนี้มาตลอด
    • Aaron ไม่มี กองทัพทนาย แบบที่บริษัทขนาดยักษ์มี
      เขานำบทความวิชาการไปเผยแพร่ต่อสาธารณะ ซึ่งเป็นการละเมิดลิขสิทธิ์อย่างชัดเจน
      โมเดลภาษาขนาดใหญ่อยู่ในพื้นที่สีเทาว่าไม่ได้คัดลอกข้อความต้นฉบับแบบตรงตัว แต่เป็นงานดัดแปลงหรือไม่
      ผู้พิพากษาแต่ละคนก็ตัดสินแตกต่างกัน
    • เขาไม่ได้สแครปเนื้อหาที่อยู่หลังกำแพงจ่ายเงินหรอกหรือ?
  • เอา planet.osm ไปปล่อยเป็น ทอร์เรนต์ ก็พอ ควรอนุญาตให้ “สแครป” ผ่านทอร์เรนต์เท่านั้น
    แบบนั้นพวกสแครปเปอร์จะช่วยกันแบ่งภาระเครือข่ายเอง บางทีทุกคนอาจอยู่บน AWS instance เดียวกันด้วยซ้ำ ความเร็วเครือข่ายก็น่าจะดีขึ้น

    • ข้อมูลของเราถูกเผยแพร่ผ่านทอร์เรนต์อยู่แล้ว: https://planet.openstreetmap.org
      ข้อมูลรวมถึงอัปเดตรายชุดนาที ยังมีให้ผ่านบัคเก็ต S3 สาธารณะ (EU และ US) ที่ได้รับการสนับสนุนจาก AWS Open Data Sponsorship Program ด้วย
  • เมื่อก่อนในการสัมภาษณ์งานสายเทคนิค ผู้สัมภาษณ์ให้ผมออกแบบระบบที่สแครป Wikipedia ภาษาอังกฤษทุกวัน ผมบอกว่า “เริ่มจากดาวน์โหลด archive ที่บีบอัดด้วย gzip ก่อนครับ”
    ปรากฏว่าผู้สัมภาษณ์ไม่รู้ว่าทำแบบนั้นได้ และคาดหวังให้ผมอธิบายระบบซับซ้อนที่ดาวน์โหลดทีละหน้า รวมถึง multithreading, URL มาตรฐาน, การตรวจสอบหน้าที่เคยเยี่ยมชมแล้ว, การ retry ฯลฯ
    ถึงอย่างนั้นเขาก็ให้ A กับโจทย์นั้น และสุดท้ายผมก็ได้เข้าทำงานที่บริษัทนั้น

  • ถ้าทำ honeypot สำหรับบริษัท AI ล่ะ? สร้างลูปไม่รู้จบของคอนเทนต์ที่สร้างขึ้นแบบโง่ ๆ
    ลองนึกถึงโพสต์ Twitter ที่มีทวีตสังเคราะห์ต่อท้ายไปเรื่อย ๆ

    • แล้วจู่ ๆ OpenStreetMap ก็จะไม่ค่อย open เท่าไรแล้ว เหมือน OpenAI ไง ฮ่า ๆ