सामग्री टेबल Overview System Architecture Components Home Mixer Thunder Phoenix Candidate Pipeline How It Works Pipeline Stages Scoring and Ranking Filtering Key Design Decisions समीक्षा For You फ़ीड एल्गोरिथ्म दो स्रोतों से पोस्ट प्राप्त करता है, रैंक करता है, और फ़िल्टर करता है: In-Network (Thunder): आपके द्वारा अनुसरण किए गए खातों से पोस्ट Out-of-Network (Phoenix Retrieval): वैश्विक कॉर्पस से खोजे गए पोस्ट दोनों स्रोतों को एक साथ जोड़ा जाता है और एक साथ रैंक किया जाता है , एक ग्रोक-आधारित ट्रांसफार्मर मॉडल जो प्रत्येक पोस्ट के लिए भागीदारी संभावनाओं की भविष्यवाणी करता है। Phoenix हमने सिस्टम से हर एक हाथ से इंजीनियरिंग सुविधा और अधिकांश heuristics को खत्म कर दिया है. ग्रोक आधारित ट्रांसफार्मर आपके रिश्ते इतिहास (आप क्या पसंद करते हैं, जवाब देते हैं, साझा करते हैं, आदि) को समझकर सभी भारी उठाते हैं और यह निर्धारित करने के लिए उपयोग करते हैं कि कौन सा सामग्री आपके लिए प्रासंगिक है। सिस्टम वास्तुकला ┌─────────────────────────────────────────────────────────────────────────────────────────────┐ │ FOR YOU FEED REQUEST │ └─────────────────────────────────────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────────────────────────────────┐ │ HOME MIXER │ │ (Orchestration Layer) │ ├─────────────────────────────────────────────────────────────────────────────────────────────┤ │ │ │ ┌─────────────────────────────────────────────────────────────────────────────────────┐ │ │ │ QUERY HYDRATION │ │ │ │ ┌──────────────────────────┐ ┌──────────────────────────────────────────────┐ │ │ │ │ │ User Action Sequence │ │ User Features │ │ │ │ │ │ (engagement history) │ │ (following list, preferences, etc.) │ │ │ │ │ └──────────────────────────┘ └──────────────────────────────────────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────────────────────────┘ │ │ │ │ │ ▼ │ │ ┌─────────────────────────────────────────────────────────────────────────────────────┐ │ │ │ CANDIDATE SOURCES │ │ │ │ ┌─────────────────────────────┐ ┌────────────────────────────────┐ │ │ │ │ │ THUNDER │ │ PHOENIX RETRIEVAL │ │ │ │ │ │ (In-Network Posts) │ │ (Out-of-Network Posts) │ │ │ │ │ │ │ │ │ │ │ │ │ │ Posts from accounts │ │ ML-based similarity search │ │ │ │ │ │ you follow │ │ across global corpus │ │ │ │ │ └─────────────────────────────┘ └────────────────────────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────────────────────────┘ │ │ │ │ │ ▼ │ │ ┌─────────────────────────────────────────────────────────────────────────────────────┐ │ │ │ HYDRATION │ │ │ │ Fetch additional data: core post metadata, author info, media entities, etc. │ │ │ └─────────────────────────────────────────────────────────────────────────────────────┘ │ │ │ │ │ ▼ │ │ ┌─────────────────────────────────────────────────────────────────────────────────────┐ │ │ │ FILTERING │ │ │ │ Remove: duplicates, old posts, self-posts, blocked authors, muted keywords, etc. │ │ │ └─────────────────────────────────────────────────────────────────────────────────────┘ │ │ │ │ │ ▼ │ │ ┌─────────────────────────────────────────────────────────────────────────────────────┐ │ │ │ SCORING │ │ │ │ ┌──────────────────────────┐ │ │ │ │ │ Phoenix Scorer │ Grok-based Transformer predicts: │ │ │ │ │ (ML Predictions) │ P(like), P(reply), P(repost), P(click)... │ │ │ │ └──────────────────────────┘ │ │ │ │ │ │ │ │ │ ▼ │ │ │ │ ┌──────────────────────────┐ │ │ │ │ │ Weighted Scorer │ Weighted Score = Σ (weight × P(action)) │ │ │ │ │ (Combine predictions) │ │ │ │ │ └──────────────────────────┘ │ │ │ │ │ │ │ │ │ ▼ │ │ │ │ ┌──────────────────────────┐ │ │ │ │ │ Author Diversity │ Attenuate repeated author scores │ │ │ │ │ Scorer │ to ensure feed diversity │ │ │ │ └──────────────────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────────────────────────┘ │ │ │ │ │ ▼ │ │ ┌─────────────────────────────────────────────────────────────────────────────────────┐ │ │ │ SELECTION │ │ │ │ Sort by final score, select top K candidates │ │ │ └─────────────────────────────────────────────────────────────────────────────────────┘ │ │ │ │ │ ▼ │ │ ┌─────────────────────────────────────────────────────────────────────────────────────┐ │ │ │ FILTERING (Post-Selection) │ │ │ │ Visibility filtering (deleted/spam/violence/gore etc) │ │ │ └─────────────────────────────────────────────────────────────────────────────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────────────────────────────────┐ │ RANKED FEED RESPONSE │ └─────────────────────────────────────────────────────────────────────────────────────────────┘ घटकों Home मिश्रण Location: home-mixer/ जिसके चलते आप अपने फ्लैट को फ्लैट करते हैं, वह आपके फ्लैट को फ्लैट करता है। निम्नलिखित चरणों के साथ फ्रेम: CandidatePipeline Stage Description Query Hydrators Fetch user context (engagement history, following list) Sources Retrieve candidates from Thunder and Phoenix Hydrators Enrich candidates with additional data Filters Remove ineligible candidates Scorers Predict engagement and compute final scores Selector Sort by score and select top K Post-Selection Filters Final visibility and dedup checks Side Effects Cache request info for future use हाइड्रेटर की तलाश Fetch उपयोगकर्ता संदर्भ (भारत इतिहास, निम्नलिखित सूची) स्रोत Thunder और Phoenix से उम्मीदवारों को वापस हाइड्रेटर अतिरिक्त डेटा के साथ उम्मीदवारों को समृद्ध करें फ़िल्टर अयोग्य उम्मीदवारों को हटा दें स्कोरर्स प्रतिबद्धता की भविष्यवाणी करें और अंतिम स्कोर की गणना करें सेलेक्टर स्कोर के अनुसार वर्गीकृत करें और शीर्ष K का चयन करें Post-selection फ़िल्टर अंतिम दृश्यता और डेडअप चेक साइड प्रभाव भविष्य के उपयोग के लिए कैश अनुरोध जानकारी एलर्जी के लिए एलर्जी का उपयोग करें ( ) जो एक निश्चित उपयोगकर्ता के लिए रैंकिंग पोस्ट वापस करता है। ScoredPostsService तूफान Location: thunder/ एक मेमोरी पोस्ट स्टोर और रियल टाइम इंजेक्शन पाइपलाइन जो सभी उपयोगकर्ताओं से हाल के पोस्ट को ट्रैक करता है। Consumes post create/delete events from कैफका मूल पोस्ट, प्रतिक्रियाओं / पुन: पोस्ट और वीडियो पोस्ट के लिए प्रति उपयोगकर्ता स्टोर बनाए रखता है अनुरोध करने वाले उपयोगकर्ता का पालन करने वाले खातों से "इन नेटवर्क" पोस्ट उम्मीदवारों की सेवा करता है स्वचालित रूप से रखरखाव की अवधि से पुराने पदों को संपादित करता है Thunder किसी बाहरी डेटाबेस को हिट किए बिना नेटवर्क में सामग्री के लिए उप-मिलीसेकंड सर्चअप को सक्षम करता है। फीनिक्स Location: phoenix/ दो मुख्य कार्यों के साथ एमएल घटक: 2. दो टॉवर मॉडल (Two Tower Model) संबंधित नेटवर्क के बाहर पोस्ट्स खोजें: उपयोगकर्ता टॉवर: एक एम्बेडमेंट में उपयोगकर्ता सुविधाओं और भागीदारी इतिहास को एन्कोड करता है Candidate Tower: सभी पोस्ट को embeddings में कोड करता है समानता खोज: उत्पाद समानता के माध्यम से शीर्ष-के पदों को प्राप्त करता है 2. रैंकिंग (Candidate Isolation के साथ ट्रांसफार्मर) प्रत्येक उम्मीदवार के लिए प्रतिबद्धता संभावनाओं का पूर्वानुमान करता है: User context (engagement history) और candidate posts को input के रूप में लेता है विशेष ध्यान का उपयोग करता है ताकि उम्मीदवार एक-दूसरे के पास नहीं आ सकें प्रत्येक कार्य प्रकार के लिए आउटपुट संभावनाएं (जैसे, जवाब, पुन: पोस्ट, क्लिक, आदि) यह विस्तृत आर्किटेक्चर दस्तावेज के लिए। phoenix/README.md उम्मीदवार पाइपलाइन Location: candidate-pipeline/ अनुशंसा पाइपलाइनों का निर्माण करने के लिए एक पुनः उपयोगी ढांचा. निम्नलिखित के लिए विशेषताओं को परिभाषित करता है: Trait Purpose Source Fetch candidates from a data source Hydrator Enrich candidates with additional features Filter Remove candidates that shouldn't be shown Scorer Compute scores for ranking Selector Sort and select top candidates SideEffect Run async side effects (caching, logging) Source एक डेटा स्रोत से उम्मीदवारों को फ़ीच करें Hydrator अतिरिक्त विशेषताओं के साथ उम्मीदवारों को समृद्ध करें Filter उम्मीदवारों को हटाएं जिन्हें दिखाया नहीं जाना चाहिए Scorer रैंकिंग के लिए स्कोर गणना Selector शीर्ष उम्मीदवारों को वर्गीकृत और चुनें SideEffect Async साइड इफेक्ट्स चलाएं (Caching, Logging) फ्रेमवर्क संसाधनों और हाइड्रेटरों को संभवतः समानांतर में संचालित करता है, जिसमें कॉन्फ़िगर योग्य त्रुटियों का प्रबंधन और लॉगिंग होता है। कैसे काम करता है पाइपलाइन चरण क्वेरी हाइड्रेशन: उपयोगकर्ता के हाल के प्रतिबद्धताओं के इतिहास और मेटाडेटा प्राप्त करें (उदाहरण के लिए, निम्नलिखित सूची) : Retrieve candidates from: Candidate Sourcing : Recent posts from followed accounts (in-network) Thunder : ML-discovered posts from the global corpus (out-of-network) Phoenix Retrieval : Enrich candidates with: Candidate Hydration Core post data (text, media, etc.) Author information (username, verification status) Video duration (for video posts) Subscription status : Remove posts that are: Pre-Scoring Filters Duplicates Too old From the viewer themselves From blocked/muted accounts Containing muted keywords Previously seen or recently served Ineligible subscription content : Apply multiple scorers sequentially: Scoring : Get ML predictions from the Phoenix transformer model Phoenix Scorer : Combine predictions into a final relevance score Weighted Scorer : Attenuate repeated author scores for diversity Author Diversity Scorer : Adjust scores for out-of-network content OON Scorer चयन: स्कोर के अनुसार वर्गीकृत करें और शीर्ष K उम्मीदवारों का चयन करें Post-selection Processing: सेवा करने वाले पदों के उम्मीदवारों की अंतिम सत्यापन स्कोर और रैंकिंग Phoenix Grok-आधारित ट्रांसफार्मर मॉडल कई प्रतिबद्धता प्रकारों के लिए संभावनाओं की भविष्यवाणी करता है: Predictions: ├── P(favorite) ├── P(reply) ├── P(repost) ├── P(quote) ├── P(click) ├── P(profile_click) ├── P(video_view) ├── P(photo_expand) ├── P(share) ├── P(dwell) ├── P(follow_author) ├── P(not_interested) ├── P(block_author) ├── P(mute_author) └── P(report) के इन सभी को एक अंतिम स्कोर में जोड़ें: Weighted Scorer Final Score = Σ (weight_i × P(action_i)) सकारात्मक कार्यों (जैसे, रिपस्ट, शेयर) में सकारात्मक वजन होता है. नकारात्मक कार्यों (ब्लॉक, मुट्ठी, रिपोर्ट) में नकारात्मक वजन होता है, जिससे उपयोगकर्ता को सामग्री को कम किया जा सकता है। फ़िल्टर फ़िल्टर दो चरणों में चलता है: Pre-Scoring Filters: Filter Purpose DropDuplicatesFilter Remove duplicate post IDs CoreDataHydrationFilter Remove posts that failed to hydrate core metadata AgeFilter Remove posts older than threshold SelfpostFilter Remove user's own posts RepostDeduplicationFilter Dedupe reposts of same content IneligibleSubscriptionFilter Remove paywalled content user can't access PreviouslySeenPostsFilter Remove posts user has already seen PreviouslyServedPostsFilter Remove posts already served in session MutedKeywordFilter Remove posts with user's muted keywords AuthorSocialgraphFilter Remove posts from blocked/muted authors DropDuplicatesFilter डुप्लिकेट पोस्ट आईडी को हटाएं CoreDataHydrationFilter पोस्ट हटाएं जो कोर मेटाडेटा को हाइड्रेट करने में असमर्थ हैं AgeFilter सीमा से पुराने पोस्ट हटाएं SelfpostFilter उपयोगकर्ता के स्वयं के पोस्ट को हटाएं RepostDeduplicationFilter एक ही सामग्री के Reposts IneligibleSubscriptionFilter Paywalled Content Remove उपयोगकर्ता पहुंच नहीं सकता PreviouslySeenPostsFilter उपयोगकर्ता पहले से ही देखा है पोस्ट हटाएं PreviouslyServedPostsFilter सत्र में पहले से ही भेजे गए पोस्ट हटाएं MutedKeywordFilter उपयोगकर्ता के कुंजी शब्दों के साथ पोस्ट हटाएं AuthorSocialgraphFilter ब्लॉक किए गए / muted authors से पोस्ट हटाएं Post-Selection Filters: Filter Purpose VFFilter Remove posts that are deleted/spam/violence/gore etc. DedupConversationFilter Deduplicate multiple branches of the same conversation thread VFFilter हटाए गए पदों को हटाएं / स्पैम / हिंसा / ऊपर आदि DedupConversationFilter एक ही बातचीत थ्रेड के कई शाखाओं को डिडुप्लिकेट करें महत्वपूर्ण डिजाइन निर्णय 1. कोई हाथ से इंजीनियरिंग विशेषताएं सिस्टम पूरी तरह से उपयोगकर्ता भागीदारी अनुक्रमों से प्रासंगिकता सीखने के लिए ग्रॉक-आधारित ट्रांसफार्मर पर भरोसा करता है. सामग्री प्रासंगिकता के लिए कोई मैनुअल फ़ीचर इंजीनियरिंग नहीं है. यह हमारे डेटा पाइपलाइनों और सर्विंग बुनियादी ढांचे में जटिलता को काफी कम करता है. 2. रैंकिंग में उम्मीदवार अलगाव ट्रांसफार्मर निष्कर्षण के दौरान, उम्मीदवार एक-दूसरे पर ध्यान नहीं दे सकते हैं - केवल उपयोगकर्ता संदर्भ. यह सुनिश्चित करता है कि एक पोस्ट के लिए स्कोर उस पर निर्भर नहीं करता है जो अन्य पोस्ट बैच में हैं, जिससे स्कोर लगातार और कैश हो सकते हैं. 3. Hash-Based Embeddings का उपयोग करें खोज और रैंकिंग दोनों एकीकृत खोज के लिए कई हैश फ़ंक्शन का उपयोग करते हैं 4. मल्टी-एक्शन पूर्वानुमान एकल "सामान्यता" स्कोर की भविष्यवाणी करने के बजाय, मॉडल कई कार्यों की संभावनाओं की भविष्यवाणी करता है। 5. Composable पाइपलाइन वास्तुकला के crate निम्नलिखित के साथ सिफारिश पाइपलाइनों का निर्माण करने के लिए एक लचीला ढांचा प्रदान करता है: candidate-pipeline व्यापार तर्क से पाइपलाइन निष्पादन और निगरानी को अलग करना स्वतंत्र चरणों और अनुकूल त्रुटि प्रबंधन के साथ समानांतर संचालन नए स्रोतों, हाइड्रेशन, फिल्टर और स्कोरर्स को आसानी से जोड़ें नोट: ट्रांसफार्मर कार्यान्वयन xAI द्वारा Grok-1 ओपन सोर्स रिलीज से पोर्ट किया गया है, जो सिस्टम उपयोग के अनुशंसा के मामले के लिए अनुकूलित किया गया है। ट्रांसफार्मर का उपयोग करने से पहले xAI द्वारा, अनुशंसा प्रणाली उपयोग मामले के लिए अनुकूलित। Note: Grok-1 Open Source रिलीज Grok-1 Open Source रिलीज इस परियोजना को Apache लाइसेंस 2.0 के तहत लाइसेंस दिया गया है। इस परियोजना को Apache लाइसेंस 2.0 के तहत लाइसेंस दिया गया है।