Categories: ข่าว (News)

เจาะลึกอัลกอริทึม 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 ที่น่าสนใจนี้กันดูครับ

admin

Recent Posts

ทำความรู้จัก WSL (Windows Subsystem for Linux): รัน Linux บน Windows แบบ Native

Windows Subsystem for Linux (WSL) คือเครื่องมือที่ช่วยให้นักพัฒนาสามารถรัน Linux command line, ยูทิลิตี้ และแอปพลิเคชันต่างๆ ได้โดยตรงบน Windows โดยไม่ต้องพึ่งพา Virtual…

17 hours ago

Microsoft AI เปิดตัว 7 โมเดลใหม่ MAI: ก้าวสู่ยุค Superintelligence ที่ปรับแต่งได้ตามการใช้งานจริง

Microsoft AI ได้ประกาศก้าวสำคัญครั้งใหม่ด้วยการเปิดตัวโมเดลตระกูล MAI จำนวน 7 รุ่น ที่ถูกพัฒนาขึ้นเองตั้งแต่ต้น โดยเน้นความสามารถในการประมวลผลที่หลากหลาย ทั้งด้านการคิดวิเคราะห์ การเขียนโค้ด และสื่อมัลติมีเดีย เพื่อยกระดับการทำงานขององค์กรและผู้ใช้ทั่วไปให้ก้าวไปสู่ยุคถัดไปของปัญญาประดิษฐ์คำตอบโดยสรุป: Microsoft AI…

18 hours ago

AVTR-1: เจาะลึกโมเดล AI สร้าง Avatar พูดได้แบบ Real-time พร้อมฟีเจอร์ Active Listening

หากคุณกำลังมองหาโซลูชันสำหรับการสร้าง Avatar ที่สมจริงและสามารถโต้ตอบได้แบบเรียลไทม์ AVTR-1 คือโปรเจกต์โอเพนซอร์สบน GitHub ที่น่าจับตามองอย่างยิ่ง โดย AVTR-1 เป็นโมเดลแบบ Autoregressive ที่ใช้เทคนิค Flow Matching ในการประมวลผล…

6 days ago

AVTR-1: โมเดล AI สร้าง Avatar พูดได้แบบ Real-time พร้อมฟีเจอร์ Active Listening

AVTR-1 คือโปรเจกต์โอเพนซอร์สที่น่าจับตามองสำหรับนักพัฒนาที่ต้องการสร้าง Digital Avatar ที่มีความสมจริงสูง โดยใช้เทคนิค Flow Matching Autoregressive Model เพื่อสร้างการเคลื่อนไหวของริมฝีปาก (Lip-sync) และปฏิกิริยาโต้ตอบ (Active Listening)…

6 days ago

Hidden Gems in Phrae: 10 Places Most Tourists Miss

Hidden Gems in Phrae: 10 Places Most Tourists MissPhrae is often overshadowed by its famous…

6 days ago

Where to Eat Authentic Local Food in Sukhothai

Where to Eat Authentic Local Food in SukhothaiWhen travelers visit the historic kingdom of Sukhothai,…

7 days ago