جدول المحتوى Overview System Architecture Components Home Mixer Thunder Phoenix Candidate Pipeline How It Works Pipeline Stages Scoring and Ranking Filtering Key Design Decisions نظرة عامة تحقق ألغاز For You Feed، وتصنيفها وتصفح الملفات من اثنين من المصادر: In-Network (Thunder): رسائل من الحسابات التي تتبعها Out-of-Network (Phoenix Retrieval): رسائل اكتشفها من مجموعة عالمية يتم تجميع كل من المصادر وتصنيفها معا باستخدام ، نموذج التحويل المعتمد على Grok الذي يتوقع احتمالات المشاركة لكل مشاركة. Phoenix لقد أزالتنا كل ميزة مجهزة باليد والعديد من الخصائص من النظام.البرمجيات القائمة على Grok تفعل كل الخصائص الضخمة من خلال فهم تاريخ الامتيازات الخاصة بك (ما كنت تحب، والرد على، وتشارك، وما إلى ذلك) واستخدام ذلك لتحديد ما هي المحتوى المهم بالنسبة لك. هيكل النظام ┌─────────────────────────────────────────────────────────────────────────────────────────────┐ │ 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 تحميل Query Hydrators إيقاف سياق المستخدم (مجلة المشاركة، القائمة التالية) المصادر تحميل لعبة Thunder و Phoenix هيدروجين إثراء المرشحين مع بيانات إضافية الملفات إزالة المرشحين غير المقبولين الأرقام توقع المشاركة وتحديد النتائج النهائية اختيارية تقييم حسب النتائج واختيار أعلى K ملفات بعد اختيار التحقق من الوضوح النهائي والرقابة الآثار الجانبية إرسال المعلومات المطلوبة للمستخدمين في المستقبل تداول الخيارات الثنائية الخيارات الثنائية خيارات التداول ( ) الذي يعود رسائل ترتيب لمستخدم معين. ScoredPostsService التنين Location: thunder/ حافلة البريد في الذاكرة وطاقم استهلاك في الوقت الحقيقي التي تتبع المقالات الأخيرة من جميع المستخدمين. إنشاء / إزالة الأحداث من Kafka يحافظ على المخزونات لكل مستخدم للرسائل الأصلية والردود / ردود الفعل والرسائل الفيديو يخدم المرشحين "في الشبكة" من الحسابات التي يتبعها المستخدم المطلوب تلقى تلقائيًا رسائل أقدم من فترة الاحتفاظ تتيح Thunder إمكانية البحث عن محتوى في الشبكة بمعدل مللي ثانية دون إصابة قاعدة بيانات خارجية. فينيكس Location: phoenix/ المكون ML مع دو وظيفة رئيسية: 1 - التصوير (Two-Tower Model) ابحث عن رسائل خارج الشبكة ذات الصلة: برج المستخدم: يحدد ميزات المستخدم و تاريخ المشاركة في إدخال Candidate Tower: يحدد جميع الملفات إلى المكونات البحث عن الشائعات: يبحث عن رسائل Top-K من خلال الشائعات الشائعة تقييم (Transformer with Candidate Isolation) تحديد احتمالات المشاركة لكل من المرشحين: يأخذ السياق المستخدمي (مجلة المشاركة) والرسائل المرشحة كدخول يستخدم الاهتمام المحدد حتى لا يتمكن المرشحون من حضور بعضهم البعض إرسال احتمالات لكل نوع من الإجراءات (مثل، رد، إعادة إرسال، انقر، وغيرها) هذه إعداد وثيقة إستراتيجية مفصلة. 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) يتم تشغيل المنشآت والمضادات الحيوية بشكل متوازن حيثما كان ذلك ممكناً ، مع إدارة الأخطاء التي يمكن تكوينها وتسجيلها. كيف يعمل مرحلة الطائرات Query Hydration: استكشاف تاريخ المشاركات الأخيرة للمستخدم والبيانات (على سبيل المثال، القائمة التالية) : 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 التحضير بعد الاختيار: تحضير نهائي للمرشحين للمشاركة التقييم والتصنيف يقدم نموذج التحويل المعتمد على 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 إزالة ID البريد المباشر CoreDataHydrationFilter إزالة الملفات التي لم تتمكن من تغذية الملفات الأساسية AgeFilter إزالة رسائل أقدم من الحد الأقصى SelfpostFilter إزالة رسائل المستخدم الخاصة RepostDeduplicationFilter إعادة نشر الملفات من نفس المحتوى IneligibleSubscriptionFilter إزالة محتوى Paywalled لا يستطيع المستخدم الوصول إليه PreviouslySeenPostsFilter إزالة الملفات المستخدم قد شاهد بالفعل PreviouslyServedPostsFilter إزالة الملفات التي تم توزيعها بالفعل في جلسة MutedKeywordFilter إزالة الرسائل مع الكلمات المفتاحية المستخدمة AuthorSocialgraphFilter إزالة رسائل من المؤلفين المختطفين / المختطفين 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.لا ميزة الهندسة اليدوية ويعتمد النظام بالكامل على التحويلات القائمة على Grok لتعلم الخصائص من سلسلة مشاركة المستخدمين.لا توفير الهندسة الميكانيكية للمميزات لخصائص الخصائص.هذا يقلل بشكل كبير من المعقدة في خطوط بياناتنا واستراتيجيات الخدمة. 2- إزالة المرشحين في المرتبة أثناء التفكير في التحويل ، لا يمكن للمستشارين أن يشاركوا بعضهم البعض - إلا في سياق المستخدم.هذا يضمن تقييم رسالة لا يعتمد على أي رسائل أخرى في المجموعة ، مما يجعل الأرقام متواضعة ومتحركة. 3 - إدخال الـ Hash-Based كل من البحث والتصنيف يستخدم العديد من الوظائف المضغوطة لإدخال البحث التوقعات متعددة الأنشطة بدلا من التنبؤ بمستوى "الواقعية" الوحيد ، فإن النموذج يتوقع احتمالات العديد من العمليات. 5 - تصميم الطائرات المكونة ذاك يوفر CRATE إطارًا مرنًا لبناء خطوط التوصيل مع: candidate-pipeline الانفصال عن تنفيذ الطائرات والمراقبة من منطق الأعمال إجراء متوازن من المراحل المستقلة والتعامل مع الأخطاء الجمالية سهولة إضافة مصادر جديدة، ومواد الهيدروجين، والتركيزات، والمتصفحات ملاحظة: يتم نقل التطبيق من إصدار Grok-1 مفتوح المصدر من قبل xAI، والتي تم تعديلها لمواقع استخدام النظام الموصى بها. ملاحظة: يتم نقل التطبيق من إصدار Grok-1 مفتوح المصدر من قبل xAI، والتي تم تعديلها لمواقع استخدام النظام الموصى بها. Grok-1 إصدار مفتوح المصدر هذه المشاريع تحت تصريح Apache License 2.0. هذه المشاريع تحت تصريح Apache License 2.0.