123-2341-74

แนะนำ เทคนิคลดค่าครองชีพ
ทุกครั้ง ที่ ซื้อ ของจาก marketplace อย่าลืม กดรับคูปอง และเช็คโปรโมชั่น บัตรเครดิต ก่อน กดจ่ายเงินทุกครั้ง

กดรับ คูปอง
ก่อนจ่ายเงินทุกครั้ง อยากลืม

เทคนิคลดค่าครองชีพ
ทุกครั้ง ที่ ซื้อ ของจาก marketplace อย่าลืม กดรับคูปอง และเช็คโปรโมชั่น บัตรเครดิต ก่อน กดจ่ายเงินทุกครั้ง

กดรับ คูปอง
เจาะลึกอัลกอริทึม For You บน X: เปิดโค้ดเบื้องหลังระบบแนะนำคอนเทนต์ด้วย Grok Transformer

เจาะลึกอัลกอริทึม For You บน X: เปิดโค้ดเบื้องหลังระบบแนะนำคอนเทนต์ด้วย Grok Transformer

หากคุณเคยสงสัยว่าหน้า “For You” บนแพลตฟอร์ม X (Twitter) จัดลำดับคอนเทนต์อย่างไร วันนี้เราจะพาไปเจาะลึก x-algorithm ซึ่งเป็นซอร์สโค้ดของระบบ Recommendation System ที่ xAI ได้เปิดเผยออกมาให้เหล่านักพัฒนาได้ศึกษา นี่คือโปรเจกต์ขนาดใหญ่ที่เขียนด้วยภาษา Rust และใช้โมเดล Grok Transformer ในการประมวลผลข้อมูลมหาศาลเพื่อส่งมอบคอนเทนต์ที่ตรงใจผู้ใช้มากที่สุด

สารบัญ

ภาพรวมโปรเจกต์

โปรเจกต์ x-algorithm คือหัวใจสำคัญของระบบแนะนำคอนเทนต์บน X โดยมีจุดประสงค์เพื่อนำเสนอโพสต์ทั้งจากเครือข่ายที่คุณติดตาม (In-Network) และคอนเทนต์ใหม่ๆ ที่คุณอาจสนใจ (Out-of-Network) ผ่านการประมวลผลด้วย Machine Learning ขั้นสูง ปัจจุบันโปรเจกต์นี้ได้รับความสนใจอย่างมากในชุมชนนักพัฒนา โดยมีดาวบน GitHub มากกว่า 16,000 ดวง และใช้ภาษา Rust เป็นภาษาหลักในการพัฒนาเพื่อประสิทธิภาพสูงสุด

ระบบนี้ถูกออกแบบมาเพื่อทดแทนการใช้ Heuristics แบบเดิมๆ ด้วยการใช้ Grok-based Transformer ในการทำความเข้าใจประวัติการใช้งานของผู้ใช้ (เช่น สิ่งที่คุณกด Like, Reply หรือ Share) เพื่อคำนวณความน่าจะเป็นของ Engagement ในแต่ละโพสต์

สถาปัตยกรรมระบบ

ระบบถูกแบ่งออกเป็นโมดูลหลักๆ เพื่อรองรับการทำงานที่ซับซ้อน โดยมีส่วนประกอบสำคัญดังนี้:

  • Home Mixer: ทำหน้าที่เป็น Orchestration Layer ที่คอยรวบรวมโพสต์จากแหล่งต่างๆ มาจัดลำดับและกรองข้อมูลก่อนแสดงผล
  • Thunder: ระบบ In-memory post store ที่เก็บข้อมูลโพสต์จากบัญชีที่คุณติดตาม ช่วยให้สามารถดึงข้อมูลได้ภายในเวลาไม่ถึงมิลลิวินาที (Sub-millisecond)
  • Phoenix: ส่วนประกอบด้าน ML ที่ใช้ Transformer ในการทำ Retrieval (ค้นหาโพสต์) และ Ranking (จัดลำดับความสำคัญ)
ส่วนประกอบ หน้าที่หลัก เทคโนโลยี
Thunder จัดการโพสต์ In-Network In-memory store, Kafka ingestion
Phoenix ML Retrieval & Ranking Grok Transformer, Two-Tower Model
Home Mixer Pipeline Orchestration gRPC, CandidatePipeline Framework

กระบวนการทำงาน

กระบวนการทำงานของระบบนี้ถูกแบ่งออกเป็นขั้นตอน (Pipeline Stages) ที่ชัดเจน เพื่อให้การประมวลผลมีความแม่นยำและรวดเร็ว:

  1. Query Hydration: ดึงข้อมูลบริบทของผู้ใช้ เช่น ประวัติการมีส่วนร่วมและรายการบัญชีที่ติดตาม
  2. Candidate Sourcing: ดึงโพสต์จากทั้ง Thunder (In-Network) และ Phoenix (Out-of-Network)
  3. Candidate Hydration: เพิ่มข้อมูลเสริมให้กับโพสต์ เช่น ข้อมูลผู้เขียน, สถานะการยืนยันตัวตน, หรือสถานะการสมัครสมาชิก
  4. Filtering: กรองโพสต์ที่ไม่เหมาะสมออก เช่น โพสต์ซ้ำ, โพสต์ที่เคยเห็นแล้ว, หรือโพสต์จากบัญชีที่ถูกบล็อก
  5. Scoring: ใช้ Phoenix Scorer คำนวณคะแนนความน่าจะเป็นที่ผู้ใช้จะกด Like, Repost, หรือ Reply
  6. Selection: จัดลำดับตามคะแนนและเลือกโพสต์ที่ดีที่สุดมาแสดงผล

การตัดสินใจเชิงออกแบบ

ทีมพัฒนาได้ตัดสินใจเลือกแนวทางที่น่าสนใจหลายประการเพื่อลดความซับซ้อนและเพิ่มประสิทธิภาพ:

  • No Hand Engineered Features: ระบบเลิกใช้ฟีเจอร์ที่เขียนด้วยมือ (Manual heuristics) ทั้งหมด และหันไปพึ่งพา Grok Transformer ในการเรียนรู้ความสัมพันธ์ของข้อมูลแทน
  • Candidate Isolation: ในระหว่างการทำ Inference โพสต์แต่ละโพสต์จะไม่เห็นโพสต์อื่นใน Batch เดียวกัน ทำให้คะแนนมีความคงที่และสามารถทำ Caching ได้ง่าย
  • Multi-Action Prediction: แทนที่จะทำนายแค่คะแนนความนิยมเดียว ระบบจะทำนายความน่าจะเป็นของหลาย Action (Like, Reply, Share, Block) เพื่อให้ได้ผลลัพธ์ที่ละเอียดอ่อนกว่า
  • Composable Pipeline: ใช้โครงสร้าง Pipeline ที่ยืดหยุ่น ช่วยให้สามารถเพิ่มแหล่งข้อมูลหรือตัวกรองใหม่ๆ ได้ง่ายโดยไม่กระทบต่อส่วนอื่นๆ

คำถามที่พบบ่อย (FAQ)

x-algorithm ใช้ภาษาอะไรในการพัฒนา?

โปรเจกต์นี้เขียนด้วยภาษา Rust เป็นหลัก เพื่อให้ได้ประสิทธิภาพในการประมวลผลระดับสูงและมีความปลอดภัยของหน่วยความจำที่ดีเยี่ยม

Phoenix ทำหน้าที่อะไรในระบบ?

Phoenix คือโมดูล Machine Learning ที่ใช้โมเดล Transformer (ดัดแปลงจาก Grok-1) เพื่อทำหน้าที่ Retrieval ค้นหาโพสต์ที่เกี่ยวข้อง และ Ranking เพื่อทำนายความเป็นไปได้ที่ผู้ใช้จะโต้ตอบกับโพสต์นั้นๆ

ฉันสามารถนำโค้ดนี้ไปใช้งานในโปรเจกต์ของตัวเองได้หรือไม่?

โปรเจกต์นี้เผยแพร่ภายใต้ใบอนุญาต Apache License 2.0 ซึ่งอนุญาตให้นำไปใช้งาน ศึกษา หรือดัดแปลงได้ตามเงื่อนไขของสัญญาอนุญาตครับ

สำหรับนักพัฒนาที่สนใจศึกษาโครงสร้างระบบ Recommendation ระดับโลก สามารถเข้าไปดูซอร์สโค้ดฉบับเต็มและเอกสารประกอบเพิ่มเติมได้ที่ GitHub Repository: xai-org/x-algorithm ลองเข้าไปสำรวจการเขียน Rust ในระดับ Production และวิธีการออกแบบ ML Pipeline ที่น่าสนใจนี้กันดูครับ