เส้นทางการจัดโครงสร้างข้อมูลของ Shopify: จาก One-Shot LLM สู่สถาปัตยกรรมแบบ Agentic บน DSPy
(youtube.com)Shopify ได้เปลี่ยนจากแนวทาง One-Shot LLM ไปสู่สถาปัตยกรรมแบบ Multi-Agent เฉพาะทางที่อิง DSPy เพื่อแปลงข้อมูลคอมเมิร์ซแบบไม่มีโครงสร้างจำนวนหลายล้านรายการ (เช่น หน้าร้านค้า นโยบายต่าง ๆ) ให้เป็นข้อมูลแบบมีโครงสร้าง ในกระบวนการนี้ บริษัทเลือกใช้โมเดล Qwen (ระดับ 32B/72B) ที่โฮสต์เอง พร้อม Japa optimizer ของ DSPy แทนโมเดลขนาดใหญ่ระดับ GPT-4/5 และสามารถลดต้นทุนได้ 75 เท่า พร้อมยกระดับคุณภาพการดึงข้อมูลได้ 2 เท่า โดยเฉพาะอย่างยิ่ง สิ่งนี้แสดงให้เห็นว่าโครงสร้างแบบซับเอเจนต์ที่ออกแบบมาเฉพาะสำหรับเป้าหมายแต่ละอย่าง (เช่น การตรวจจับการฉ้อโกง การทำโปรไฟล์ร้านค้า) มีความสำคัญอย่างยิ่งต่อการเพิ่มประสิทธิภาพ มากกว่าการใช้เอเจนต์ตัวเดียว
วิเคราะห์เชิงลึก (Deep Dive)
1. ภูมิหลังของปัญหา: มหันตภัยข้อมูลไร้โครงสร้าง
Shopify มอบความยืดหยุ่นอย่างสูงให้กับผู้ขาย ซึ่งหมายความว่าแต่ละร้านจะมีโครงสร้าง HTML ภาษา และรูปแบบการเขียนนโยบายที่แตกต่างกันทั้งหมด แม้แต่คำถามที่ดูง่ายอย่าง “ร้านนี้ขายโทรศัพท์มือถือหรือไม่?” หรือ “นโยบายการคืนสินค้าคืออะไร?” ก็ยังยากมากที่จะได้คำตอบที่เป็นมาตรฐานเดียวกันทั่วทั้งองค์กร
2. กระบวนการพัฒนาของโซลูชัน
- ขั้นที่ 1: One-Shot LLM (แนวทางเริ่มต้น)
- ดึงข้อความจากหน้าหลักของร้านแล้วส่งไปยัง GPT-4 (ภายหลังเป็น 5) เพื่อขอให้ดึงข้อมูลตามสคีมา
- ข้อจำกัด: ด้วยข้อจำกัดของ context window จึงไม่สามารถส่งทุกหน้าได้ทั้งหมด (ถ้าหน้านโยบายการคืนสินค้าหายไป ก็จะตอบไม่ได้) และเมื่อมีการเพิ่มฟิลด์มากขึ้น พรอมป์ต์ก็ยิ่งเปราะบาง (Fragile) พร้อมกับต้นทุนที่พุ่งสูงแบบทวีคูณ
- ขั้นที่ 2: แนวทางแบบ Agentic และการนำ DSPy มาใช้
- แทนที่จะป้อนข้อมูลทั้งหมดให้ LLM บริษัทได้เปลี่ยนไปใช้โครงสร้าง ReAct agent ที่มอบ “เครื่องมือ (Browsing, Investigation)” เพื่อให้ตัวโมเดลสำรวจร้านค้าและค้นหาข้อมูลที่ต้องการได้ด้วยตนเอง
- ในขั้นตอนนี้มีการนำ DSPy มาใช้ เพื่อเปลี่ยนจากการจูนพรอมป์ต์ด้วยมือไปสู่การเพิ่มประสิทธิภาพแบบโปรแกรมมิง
- ขั้นที่ 3: ซับเอเจนต์เฉพาะทาง (Specialized Sub-Agents)
- แทนที่จะให้เอเจนต์ตัวเดียวทำทุกอย่างพร้อมกัน (ฉ้อโกง ภาษี โปรไฟล์) ก็แยกออกเป็นเอเจนต์เฉพาะทาง 3 ตัว
- Fraud Agent: ใช้เครื่องมือค้นหาเว็บไซต์รีวิวภายนอก
- Profile Agent: มุ่งเน้นการพาร์สนโยบายภายใน
- เอเจนต์แต่ละตัวถูกปรับแต่งแยกกันผ่าน DSPy ทำให้สามารถยกระดับประสิทธิภาพได้โดยไม่รบกวนกัน
3. วิธีแก้ปัญหาทางเทคนิค: Eval Reliability & Snapshotting
หากเอเจนต์คลานเว็บไซต์แบบเรียลไทม์ เมื่อเนื้อหาของเว็บไซต์เปลี่ยน ความน่าเชื่อถือของชุดข้อมูลประเมิน (Golden Dataset) ก็จะพังลง Shopify แก้ปัญหานี้ด้วยการสร้างบริการสแนปช็อตชื่อ ShopNap
- ตรึงสถานะของร้านค้า ณ เวลาที่ทำการติดป้ายกำกับไว้แบบคงที่ (Frozen context)
- DSPy optimizer จะทำงานบนสแนปช็อตที่ถูกตรึงนี้ เพื่อรับประกันการประเมินและการฝึกที่ทำซ้ำได้
4. สถาปัตยกรรมโครงสร้างพื้นฐาน
เพื่อให้ประมวลผลได้อย่างมีประสิทธิภาพ ระบบถูกแยกการทำงานออกเป็น 3 เลเยอร์
- Batch Layer (Flink): จัดการคำขอประมวลผลร้านค้ามากกว่า 150,000 รายการต่อวัน
- Agent Layer (Kubernetes): รันลอจิกของเอเจนต์ การพาร์ส HTML และการเรียกใช้เครื่องมือบนคลัสเตอร์ที่ใช้ CPU
- LLM Layer (GPU Cluster): ให้บริการโมเดล Qwen ที่โฮสต์เองผ่าน vLLM เป็นต้น
ข้อมูลสำคัญและเบนช์มาร์ก
นี่คือตัวเลขเปรียบเทียบด้านประสิทธิภาพและต้นทุนก่อนและหลังการเปลี่ยนสถาปัตยกรรมที่ Shopify เปิดเผย
| รายการ | One-Shot (คาดว่าเป็น GPT-5) | Agentic + DSPy + Qwen |
|---|---|---|
| ต้นทุน (Cost) | ค่ามาตรฐาน (สูง) | ลดลงเหลือระดับ 1/75 |
| คุณภาพ (Quality) | ค่ามาตรฐาน | ประมาณ 2 เท่า (ดีขึ้น 100%) |
| ความครอบคลุมของร้านค้า | บางส่วน (ถูกจำกัดด้วยปัญหาต้นทุน) | ครบทุกร้าน (Full Coverage) |
| ความสามารถในการขยาย | ต้องตรวจสอบใหม่ทั้งระบบเมื่อเพิ่มฟิลด์ใหม่ | ขยายได้ง่ายด้วยการเพิ่มซับเอเจนต์ |
บทเรียนสำคัญ
- Monolithic vs specialized: ยิ่งงานซับซ้อนมากเท่าไร ซับเอเจนต์ที่แยกขอบเขตความรับผิดชอบ (Separation of Concerns) ก็ยิ่งได้เปรียบกว่าเอเจนต์เดี่ยว [21:59].
- Architecture over Tuning: แทนที่จะคอยแก้ถ้อยคำของพรอมป์ต์ทีละจุด การวางสถาปัตยกรรมระบบให้ถูกต้องและใช้การเพิ่มประสิทธิภาพอัตโนมัติ (DSPy) จะช่วยให้ได้ประสิทธิภาพที่ยั่งยืนกว่า [23:24].
- Small Models Win: สำหรับงานเฉพาะโดเมนบางประเภท โมเดลขนาดเล็กถึงกลางที่ผ่านการเพิ่มประสิทธิภาพและโฮสต์เอง อาจเหนือกว่าโมเดลขนาดใหญ่แบบอเนกประสงค์ทั้งในแง่ความคุ้มค่าและประสิทธิภาพ [23:54].
1 ความคิดเห็น
เหมือนได้ยินชื่อ DSPy ผ่านหูผ่านตามาบ้างเป็นครั้งคราว มีใครเคยลองใช้กันอีกไหมครับ อยากรู้รีวิวครับ