1 คะแนน โดย GN⁺ 2024-02-26 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Marginalia Search เริ่มต้นจากการทดลองเล็ก ๆ เพื่อค้นหา “อินเทอร์เน็ตที่ยอดเยี่ยม” และในเวลา 3 ปีก็กลายเป็นโปรเจกต์ที่ทำเต็มเวลา โดยตัวเสิร์ชเอนจินเองก็อยู่ในสภาพที่ใกล้เคียงกับความเสถียรที่สุดเท่าที่เคยมีมา
  • งานหลักของปีนี้คือการจัดระเบียบโค้ดเบสและทำแอปพลิเคชันให้ง่ายขึ้น เพื่อลดภาระในการปฏิบัติการ และทำให้ผู้ดูแลระบบหรือผู้พัฒนาคนอื่นจัดการได้ง่ายขึ้น
  • ในอดีตการสลับดัชนีต้องหยุดให้บริการหลายวัน แต่ตอนนี้การหยุดชะงักระหว่างสลับดัชนีหายไปแล้ว และล่าสุดยังสามารถทำอัปเกรดแบบไม่หยุดบริการได้ด้วย
  • คุณภาพการค้นหาดีขึ้นหลังรองรับคีย์เวิร์ดจาก anchor text และเมื่อสัญญาณด้านความเกี่ยวข้องเริ่มเข้าที่ ความสามารถในการค้นหาผลลัพธ์ที่เกี่ยวข้องก็ดีขึ้นมาก
  • เป้าหมายการทำดัชนีเอกสาร 1 พันล้านรายการยังคงเดินหน้าต่อไป แต่เพราะอัตราส่วนสัญญาณต่อสัญญาณรบกวนของเว็บต่ำกว่าที่คาด จึงยากกว่าที่คิด และเป้าหมายถัดไปคือการปรับปรุงการแยกวิเคราะห์และการประมวลผลคิวรี

3 ปีจากการทดลองสู่โปรเจกต์เต็มเวลา

  • Marginalia Search เริ่มจากการทดลองเล็ก ๆ เมื่อ 3 ปีก่อน และตอนนี้กลายเป็นโปรเจกต์ที่ทำงานเต็มเวลาแล้ว
  • เสิร์ชเอนจินยังมีจุดที่ต้องปรับปรุงอยู่ แต่ถือว่าอยู่ในระดับที่ทำงานได้ดีที่สุดเท่าที่เคยเป็นมา
  • หนึ่งในหมุดหมายสำคัญที่สุดคือการย้ายเสิร์ชเอนจินออกจากห้องนั่งเล่นไปสู่เซิร์ฟเวอร์ระดับองค์กร
  • ปีนี้มุ่งเน้นการลดภาระด้านการปฏิบัติการให้อยู่ในระดับที่รับมือได้ และจัดระเบียบโค้ดเบสและแอปพลิเคชันให้ผู้ดูแลระบบและนักพัฒนาคนอื่นเข้าถึงได้ง่ายขึ้น
  • วิธีการปฏิบัติการก็เปลี่ยนไปมาก
    • เดิมทีตอนสลับดัชนีต้องหยุดให้บริการหลายวัน
    • ตอนนี้ไม่มีการหยุดชะงักระหว่างการสลับดัชนีแล้ว
    • ล่าสุดยังสามารถทำอัปเกรดแบบไม่หยุดบริการได้
    • งานหลายอย่างที่เคยเป็นกระบวนการแบบแมนนวลกินเวลาหลายสัปดาห์ เปลี่ยนมาเป็นการกดปุ่มใน GUI แทน

คุณภาพการค้นหาและการขยายดัชนี

  • การรองรับคีย์เวิร์ดจาก anchor textส่งผลอย่างมากต่อความเกี่ยวข้องของผลการค้นหา
    • ทันทีหลังเปลี่ยนแปลง ยังผสานเข้ากับระบบได้ไม่เต็มที่ จึงยังไม่เห็นผลชัดเจนในทันที
    • หลังจากสัญญาณด้านความเกี่ยวข้องใหม่เริ่มเข้าที่ ความสามารถของเสิร์ชเอนจินในการค้นหาผลลัพธ์ที่เกี่ยวข้องก็ดีขึ้นมาก
  • โปรเจกต์นี้กลายเป็นงานเต็มเวลาตั้งแต่ราว 8 เดือนก่อน ด้วยการสนับสนุนจาก NLnet
    • ส่วนที่ยังยากคือการไม่ทำงานมากเกินไป
    • กำลังพยายามพักอย่างน้อยสัปดาห์ละ 1 วัน และมองว่าเมื่อได้พักดีแล้วก็ทำงานอย่างชาญฉลาดขึ้นได้
  • เป้าหมายการทำดัชนีเอกสาร1 พันล้านรายการยังคงเดินหน้าต่อไป
    • ความยากไม่ได้อยู่ที่ความสามารถของซอฟต์แวร์ในการประมวลผล แต่อยู่ที่อัตราส่วนสัญญาณต่อสัญญาณรบกวนของเว็บที่ไม่ดีนัก
    • หนึ่งในเหตุผลสำคัญที่เสิร์ชเอนจินทำงานได้ค่อนข้างดี คือการรู้ว่าอะไรไม่ควรถูกทำดัชนี
    • ขนาดดัชนีเพิ่มขึ้นจาก 50–100 ล้านรายการเมื่อ 1 ปีก่อน เป็น 220 ล้านรายการจากการครอลรอบล่าสุด
    • เมื่อรอบการครอลครั้งถัดไปเสร็จสิ้น มีโอกาสเพิ่มเป็น 290–300 ล้านรายการ โดยอิงจากแนวโน้มการเติบโตของสองพาร์ทิชันที่ทำเสร็จแล้ว

ทิศทางการปรับปรุงถัดไปและผู้สนับสนุน

  • เป้าหมายการปรับปรุงถัดไปคือการแยกวิเคราะห์และการประมวลผลคิวรี
    • พื้นที่นี้ยังมีช่องให้ปรับปรุงอีกมาก
    • ก่อนเริ่มลงมือจริง กำลังมีงานเตรียมการเพื่อจัดระเบียบโค้ดที่ได้รับผลกระทบในส่วนนี้
  • การก้าวกระโดดครั้งใหญ่ของโปรเจกต์มักเกิดจากการทดลองเสมอ และถึงจะมีงานที่วางแผนไว้ การเปลี่ยนแปลงครั้งใหญ่จริง ๆ ก็มีแนวโน้มจะมาจากสิ่งที่ไม่ได้วางแผนไว้ อย่าง anchor text
  • ขอขอบคุณ NLnet, FUTO, ผู้สนับสนุนผ่าน Patreon, ผู้สนับสนุนทั่วไป และผู้ใช้งาน

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

 
GN⁺ 2024-02-26
ความคิดเห็นบน Hacker News
  • ผมบุ๊กมาร์กสิ่งนี้ไว้และใช้มันในการหาข้อมูลเฉพาะทางมาก ๆ เกี่ยวกับ การสร้างแบบจำลองเชิงตัวเลข
    มันหาข้อมูลเกี่ยวกับตัวแก้สมการ การสร้างเมช และวิธีการหาค่าเหมาะที่สุดได้ดีกว่าสิ่งที่หาได้จาก Google มาก และยังเจอข้อมูลจากยุค 80~90 ได้ดีด้วย
    สำหรับคนที่ไม่ได้ใช้แค่แพ็กเกจเชิงพาณิชย์สำเร็จรูป การหาองค์ความรู้แบบนี้และตัวอย่างโค้ด Fortran ได้ถือว่ามีคุณค่ามาก

    • อยากรู้ว่ามีตัวอย่างของ หน้าเว็บผู้เชี่ยวชาญเฉพาะทาง ที่หาเจอใน Marginalia ได้ง่ายกว่า Google ไหม
  • ใช่เลย มันคล้ายกับการค้นหาแบบสมัยก่อนมากจริง ๆ
    ถึงจะค้นหาอะไรอย่าง “all quiet on the western front book movie differences” ไม่เจอ แต่แม้แต่ใน AltaVista ปี 1998 ก็หาแบบนั้นไม่เจอเหมือนกัน
    แต่ถ้าพิมพ์แค่ “all quiet on the western front” ก็จะเจอเว็บไซต์หายากอย่างบล็อกส่วนตัวจำนวนมาก และถ้าค้น “polytopes” ก็จะเจอวิทยานิพนธ์มหาวิทยาลัยกับเว็บโค้ด ส่วน “rust generics” ก็มีทั้งการถกเถียงใน mailing list, บล็อก, กลุ่มสนทนา Rust, เว็บไซต์ส่วนตัว และการอภิปรายเชิงลึก
    นี่แหละคือ การค้นหาเว็บแบบยุคก่อน และสิ่งที่ผมสงสัยคือในระยะยาวจะทำให้สิ่งนี้ยั่งยืนทางการเงินได้อย่างไร

    • ตอนนี้ดำเนินงานด้วย เงินอุดหนุนและเงินบริจาค และด้วยเหตุนี้จึงมีเวลาเหลืออีกหลายปีพอสมควร
      ค่าใช้จ่ายในการรันจริง ๆ มีแค่ประมาณ 100 ดอลลาร์ต่อเดือนสำหรับ colocation กับค่าครองชีพส่วนตัวทั้งหมด ดังนั้นเงินที่เข้ามาจึงอยู่ได้นานกว่าที่คิด
      ต่อไปถ้าขัดเกลาให้ดีขึ้น ก็อาจมีเงินสนับสนุนเพิ่มจากคนที่มีแนวคิดคล้ายกัน หรืออาจขายการเข้าถึง API ให้เสิร์ชเอนจินอื่นก็ได้
      การค้นหาขึ้นชื่ออยู่แล้วว่าหาเงินได้ยากนอกจากโฆษณา แต่ถ้าต้นทุนต่ำ ก็ดูเป็นเส้นทางที่สมเหตุสมผลทีเดียว
  • ลองค้น “transformers intuition” แล้ว ผลลัพธ์น่าประทับใจจริง ๆ
    Google พาไปเจอเว็บไซต์ที่ทำ SEO มาแล้ว ส่วนใหญ่เป็น Medium กับเว็บที่ดูดีแค่ภายนอกแต่เนื้อหาไม่ค่อยดี ขณะที่ Marginalia ดีกว่ามาก

  • เธรดย้อนมองที่แสดงให้เห็นว่าหลังเปิดตัวเพียง 6 เดือน มันทั้งใช้งานได้ดีแล้วและในขณะเดียวกันก็ยังมีจุดกำกวม: https://news.ycombinator.com/item?id=28550764
    แต่ตอนนี้ฟิลเตอร์เริ่มต้นดูเหมือนจะมีผลลัพธ์จาก Reddit, Stack Exchange และ Wikipedia มากไปหน่อย

  • ส่วนที่โดนใจผมที่สุดคืออันนี้
    สิ่งที่ยากกว่าที่คาดไว้ไม่ได้เกิดจากซอฟต์แวร์รับมือไม่ไหว แต่เป็นเพราะ อัตราส่วนสัญญาณต่อสัญญาณรบกวน ของเว็บนั้นไม่ดี และเหตุผลสำคัญที่เสิร์ชเอนจินนี้ทำงานได้ค่อนข้างดี ก็คือมันเลือกว่าจะไม่ทำดัชนีอะไร

  • ถึงผมจะไม่ได้ใช้ Marginalia บ่อยนักเพราะคุ้นกับ Google มากกว่า แต่ตัวโปรเจ็กต์เองยอดเยี่ยมมาก
    ดูเหมือนว่าเว็บสแปม SEO และคำตอบที่สร้างโดย AI จะมีมากขึ้นเรื่อย ๆ ดังนั้นต่อไปน่าจะได้ใช้บ่อยขึ้น

    • ถ้าจะใช้เป็น เสิร์ชเอนจินหลักสำหรับการใช้งานประจำวัน ตอนนี้คงยังต้องใช้เวลาอีกหน่อย
      ถ้ามองในแง่ดี พอถึงช่วงหน้าร้อนนี้และงานด้าน query กับ execution เสร็จ ก็น่าจะเข้าใกล้ระดับนั้นได้
  • สงสัยอยากถาม Viktor ว่า Common Crawl [0] จะช่วยได้ไหม
    ตอนนี้มีขนาดราว 100TB และ 3.35 พันล้านหน้า ดังนั้นถ้าไม่ประมวลผลบน S3 โดยตรง การดาวน์โหลดคงใช้เวลานานมาก และก็ไม่แน่ใจเรื่องอัตราส่วนสัญญาณต่อสัญญาณรบกวนด้วย
    [0] https://commoncrawl.org/overview

  • เป็นเสิร์ชเอนจินที่ยอดเยี่ยม
    เดี๋ยวจะลองไปดูซอร์สโค้ดด้วย และพอค้น “ROME2D16-2T” ก็เจอผลลัพธ์ที่เกี่ยวข้องจากแหล่งข้อมูลที่ค่อนข้างพิสดาร ซึ่งมีประโยชน์ดี

  • ลองทดสอบการค้นหาบน Google ล่าสุด 3 แบบ
    “india test cricket lowest total” ไม่มีทั้งผลลัพธ์ที่ดีหรือคำตอบ, “raid calculator” ให้ผลลัพธ์พอใช้ได้ แต่เพราะคำว่า raid เลยมีสัญญาณรบกวนอย่างหน้าแก้เซฟ/โกง Pokemon ปนมาด้วย
    ส่วน “all quiet on the western front movie book differences” ได้ผลลัพธ์ 0 รายการ เป็นหน้าว่างไปเลย

    • เสิร์ชเอนจินนี้ในตอนนี้ไม่ได้มีเป้าหมายจะให้ knowledge graph
      มันเป็นเครื่องมือสำหรับค้นหาเอกสารบนอินเทอร์เน็ตมากกว่าตอบคำถาม และแม้ฟังก์ชันตอบคำถามจะเป็นสิ่งที่น่าต้องการ แต่มักแลกมากับการเสียความสามารถในการหาเอกสาร
      ผลลัพธ์ Pokemon นั้นเกี่ยวกับแอปพลิเคชันชื่อ “raidcalc” ดังนั้นสำหรับเสิร์ชเอนจินที่ไม่ได้ทำโปรไฟล์ผู้ใช้เลยและไม่รู้ความสนใจของผู้ใช้ ก็ถือว่าเป็นการจับคู่ที่ค่อนข้างดี
      “all quiet on the western front movie book differences” ดูเหมือนจะชนกับขีดจำกัดความยาวของ query ซึ่งน่าจะเป็นร่องรอยเก่าจากสมัยก่อนที่ยังจัดการ query ยาว ๆ ได้ไม่ดี และน่าจะเอาออกได้
      ลองเพิ่มขีดจำกัดแล้ว แต่ผลลัพธ์ก็ยังไม่ค่อยดีอยู่ดี และนี่ตรงกับงานถัดไปอย่าง ความเข้าใจและการประมวลผล query พอดี
      ตอนนี้เสิร์ชเอนจินยังไม่เข้าใจแบบที่คนมองว่า all quiet on the western front เป็นวลีเดียว ที่ควรอยู่ในชื่อเรื่องหรือปรากฏหลายครั้งจะดีกว่า และ movie, book, differences เป็นคำสำคัญในเอกสารแต่ไม่จำเป็นต้องเรียงตามลำดับนั้นเป๊ะ ๆ
      ตอนนี้มันใช้วิธีหาเอกสารที่ทุกคำปรากฏอยู่ใกล้กัน หรือเอกสารที่คำแต่ละคำมีความเกี่ยวข้อง tf-idf สูง ซึ่งไม่เหมาะกับ query นี้
  • น่าสนใจดี มีคนเจอเว็บไซต์สุ่ม [0] ที่มีการแพตช์ไบนารีเพื่อใส่ การรองรับ IPv6 ให้ C&C Tiberian Sun แค่เพราะทำเล่นสนุก ๆ
    ให้ความรู้สึกเหมือนเว็บยุคเก่ามาก
    แปลกดีที่ทำให้นึกถึง Searchlores ของ Fravia [1] และถ้า Umberto Eco สนใจคอมพิวเตอร์ ก็คงให้ความรู้สึกประมาณนี้
    ตัวเว็บไซต์เองก็เหมือนเขาวงกตห้องสมุดใน The Name of the Rose ที่พอเลี้ยวผ่านมุมไหนก็เจออะไรน่าทึ่ง แต่พอหลังจากนั้นก็หาไม่เจออีกเลย :D
    [0] http://ts.sesse.net/
    [1] https://www.biostatisticien.eu/www.searchlores.org/indexo.ht...