ภูมิทัศน์ด้านวิศวกรรมข้อมูลยังคงพัฒนาต่อไปด้วยเครื่องมือเฉพาะทางที่ออกแบบมาสำหรับกรณีการใช้งานเฉพาะ smallpond ของ DeepSeek ที่เพิ่งเปิดตัวได้จุดประกายการสนทนาอย่างมากในชุมชนนักพัฒนา เนื่องจากมีเป้าหมายในการเชื่อมช่องว่างระหว่างการประมวลผลข้อมูลแบบโลคอลและความต้องการการคำนวณแบบกระจายตัว
Smallpond คืออะไร?
Smallpond เป็นเฟรมเวิร์กการประมวลผลข้อมูลแบบเบาที่สร้างขึ้นบน DuckDB และ 3FS มันถูกออกแบบมาโดยเฉพาะสำหรับไปป์ไลน์การเทรนมากกว่าการประมวลผลข้อมูลทั่วไป จากการสนทนาในชุมชน เฟรมเวิร์กนี้เชี่ยวชาญในการจัดเตรียมชุดข้อมูลฝึกสอนให้กับเวิร์กเกอร์ โดยใช้ Ray สำหรับการทำงานแบบขนาน จุดแข็งหลักของมันอยู่ที่การรองรับการอ่านแบบสุ่ม (จำเป็นสำหรับการสับเปลี่ยนข้อมูลระหว่างรอบการเทรน) การสนับสนุน Arrow สำหรับการดำเนินการแบบไม่ต้องคัดลอกกับ Pandas DataFrames และกลไกการเช็คพอยท์ที่มีประสิทธิภาพ
คุณสมบัติหลักของ Smallpond
- การประมวลผลข้อมูลประสิทธิภาพสูงขับเคลื่อนโดย DuckDB
- สามารถปรับขนาดเพื่อรองรับชุดข้อมูลระดับ PB
- การทำงานที่ง่ายโดยไม่ต้องใช้บริการที่ทำงานเป็นเวลานาน
- รองรับ Python ตั้งแต่เวอร์ชัน 3.8 ถึง 3.12
- การผสานรวมกับ Ray สำหรับการประมวลผลแบบขนาน
- ออกแบบมาเฉพาะสำหรับไปป์ไลน์การฝึกฝน ML
ประสิทธิภาพการทดสอบ GraySort
- ข้อมูลที่เรียงลำดับ: 110.5TiB
- เวลาที่ใช้: 30 นาทีและ 14 วินาที
- ปริมาณการทำงานเฉลี่ย: 3.66TiB/นาที
- โครงสร้างพื้นฐาน: โหนดคำนวณ 50 โหนดและโหนดจัดเก็บข้อมูล 25 โหนดที่ทำงานบน 3FS
ความเชื่อมโยงกับ 3FS
องค์ประกอบสำคัญของสถาปัตยกรรม smallpond คือ 3FS ซึ่งเป็นระบบไฟล์แบบกระจายที่มีมาก่อน DeepSeek เอง สมาชิกในชุมชนชี้ให้เห็นว่า 3FS มีมาตั้งแต่อย่างน้อยปี 2019 โดยมีการอ้างอิงในบล็อกเทคโนโลยีจีน ระบบไฟล์นี้ดูเหมือนจะเป็นกุญแจสำคัญที่ทำให้ smallpond สามารถจัดการกับชุดข้อมูลขนาดเพตาไบต์ได้ อย่างไรก็ตาม ผู้ใช้บางรายสังเกตว่าหากไม่มี 3FS ประโยชน์ของ smallpond อาจลดลงอย่างมีนัยสำคัญ เนื่องจากประสิทธิภาพของระบบไฟล์เครือข่ายจะกลายเป็นคอขวด
ผมไม่คิดว่าคุณจะได้ประโยชน์จริงๆ เหนือกว่า duckdb เว้นแต่ข้อมูลของคุณมีขนาด 10TB+ หรือคุณใช้งาน 3FS (ซึ่งดูเหมือนจะท้าทาย)
ความต้องการด้านโครงสร้างพื้นฐานสำหรับ 3FS เป็นข้อจำกัดอีกประการหนึ่ง สมาชิกในชุมชนเน้นย้ำว่าผู้ให้บริการคลาวด์รายใหญ่ในสหรัฐฯ มีการสนับสนุน InfiniBand อย่างจำกัด ซึ่งดูเหมือนจะมีความสำคัญต่อประสิทธิภาพของ 3FS สิ่งนี้อาจจำกัดการนำ smallpond ไปใช้ในบริษัทที่พึ่งพาโครงสร้างพื้นฐานคลาวด์สาธารณะ
ประสิทธิภาพและการเปรียบเทียบ
การอ้างประสิทธิภาพของ smallpond นั้นน่าประทับใจ โดยการเปรียบเทียบ GraySort แสดงให้เห็นถึงความสามารถในการเรียงลำดับข้อมูล 110.5TiB ในเวลาเพียงกว่า 30 นาที โดยใช้คลัสเตอร์ของโหนดคำนวณ 50 โหนดและโหนดจัดเก็บ 25 โหนด นี่แปลเป็นปริมาณการส่งผ่านข้อมูลเฉลี่ย 3.66TiB/นาที น่าสนใจที่การวิเคราะห์โค้ดของ smallpond โดยชุมชนเผยว่าสำหรับการเปรียบเทียบ GraySort นั้น มันส่งต่อไปยัง Polars โดยค่าเริ่มต้นเพื่อจัดการการเรียงลำดับจริงแทนที่จะใช้ DuckDB โดยตรง
ตำแหน่งในระบบนิเวศข้อมูล
การปรากฏตัวของ smallpond สะท้อนให้เห็นถึงแนวโน้มที่กว้างขึ้นในวิศวกรรมข้อมูล - การพัฒนาเอนจินสืบค้นเฉพาะทางสำหรับเวิร์กโหลดเฉพาะ ในขณะที่เครื่องมือทั่วไปเช่น DuckDB, Polars และโซลูชันคลาวด์แบบมีการจัดการมีอยู่มาหลายปีแล้ว smallpond ดูเหมือนจะมุ่งเป้าไปที่ตลาดเฉพาะกลุ่มที่ต้องการการประมวลผลแบบกระจายของชุดข้อมูลขนาดใหญ่มากสำหรับการเรียนรู้ของเครื่อง
สำหรับผู้ใช้ส่วนใหญ่ที่มีชุดข้อมูลขนาดต่ำกว่า 10TB ความเห็นของชุมชนแนะนำว่าประโยชน์ของ smallpond เมื่อเทียบกับเครื่องมือที่มีอยู่เช่น DuckDB เพียงอย่างเดียวอาจมีจำกัด ข้อได้เปรียบที่แท้จริงจะเกิดขึ้นในขนาดที่ใหญ่กว่าซึ่งการประมวลผลแบบกระจายกลายเป็นสิ่งจำเป็น
ในขณะที่วิศวกรรมข้อมูลยังคงพัฒนาต่อไป เครื่องมือเช่น smallpond แสดงถึงขั้นตอนไปสู่โซลูชันเฉพาะทางที่สร้างขึ้นตามวัตถุประสงค์มากขึ้น ซึ่งช่วยลดความซับซ้อนของการประมวลผลข้อมูลแบบกระจาย ไม่ว่าสิ่งนี้จะเป็นจุดเริ่มต้นของการลดทอนความซับซ้อนของเทคโนโลยีแบ็กเอนด์ในวงกว้างตามที่สมาชิกชุมชนบางคนหวังไว้ หรือเป็นเพียงเครื่องมืออีกชิ้นหนึ่งที่มีข้อได้เปรียบเสียเปรียบเฉพาะ ยังคงต้องรอดูกันต่อไป
อ้างอิง: smallpond - A lightweight data processing framework built on DuckDB and 3FS