Маск (Elon Musk) 15 травня на X оголосив, що найновіший алгоритм X уже опублікований на GitHub. Згідно з репозиторієм xAI-org/x-algorithm на GitHub, головний акцент цього релізу — ядро рекомендаційної системи, що живить інформаційний потік «For You» платформи X. Ця система поєднує контент у межах платформи, за яким користувачі стежать, а також контент поза платформою, який за допомогою машинного навчання витягується з глобальної бібліотеки; далі все це передається для ранжування трансформерною моделлю на базі Grok.
Проєкт має ліцензію Apache 2.0, його основна реалізація написана на Rust і Python; станом на момент запиту GitHub показує близько 21 тис. stars і 3 800 forks.
For You рекомендована архітектура: Thunder шукає стежений контент, Phoenix добуває позаплатформовий
Згідно з описом у документації репозиторію, інформаційний потік For You в X складається з двох основних джерел кандидатного контенту.
Перше — контент у межах платформи, за який відповідає модуль Thunder. Thunder — це in-memory сховище постів і конвеєр стрімового збирання даних: він споживає події створення та видалення постів із Kafka, відстежує недавні пости всіх користувачів і надає запитувачам кандидати з контенту їхніх стежених акаунтів. У документації підкреслюється, що Thunder може виконувати запити для кандидатів на контент всередині платформи на рівні наносекунд без звернення до зовнішніх баз даних.
Друге — контент поза платформою, за який відповідає Phoenix Retrieval. Phoenix знаходить у глобальній бібліотеці контент, який, імовірно, може зацікавити користувача, але при цьому він не походить із акаунтів, за якими той стежить. На етапі ретриву використовується двовежова модель (Two-Tower Model): User Tower кодує вектори характеристик користувача й історії взаємодій, Candidate Tower кодує вектори кандидатних постів, після чого за допомогою dot-product схожості знаходиться найбільш релевантний контент.
Ці кандидатні матеріали потрапляють у Home Mixer — узгоджувальний шар інформаційного потоку For You. Home Mixer відповідає за запити контексту користувача, отримання кандидатів, доповнення інформації про пости та авторів, фільтрацію некоректного контенту, виклик моделей ранжування, застосування коригувань балів і, зрештою, вибір постів для показу на сторінці For You користувача. У документації також зазначено, що Home Mixer зовні надає gRPC-ендпойнт ScoredPostsService, який повертає відранжовані пости конкретному користувачу.
Grok-архітектура як ядро рекомендаційної системи
Найбільш привертаюча увагу частина цього релізу — те, що в рекомендаційній системі X явно додано Grok.
У GitHub README вказано, що контент у For You feed ранжує Phoenix, а Phoenix — це Grok-based transformer-модель, яка прогнозує імовірність взаємодії для кожного поста; далі ці прогнозні значення зважуються й об’єднуються в підсумковий бал. Також у документації зазначено, що трансформерна реалізація в цьому репозиторії — це перенесення Grok-1, яку xAI опублікувала як open source, і вона адаптована під сценарії використання в рекомендаційній системі: зокрема, додані кастомні input embeddings і attention mask для ізоляції кандидатів.
Втім, це не означає, що X повністю відкрив модель усієї production-системи. Phoenix README прямо пише, що на цьому релізі представлено mini version, тоді як у production використовується більша модель із більшою кількістю шарів і ширшими embeddings; водночас публічний checkpoint заморожений як часовий зріз, отриманий із моменту в безперервному процесі тренування, тоді як production Phoenix продовжує навчатися за актуальними даними.
Оновлення 15 травня: виконуваний end-to-end інференс, mini Phoenix-модель, рекламний змішувач
Згідно з описом оновлень на GitHub, версія від 15 травня додала кілька ключових компонентів.
Перший — це end-to-end інференсний процес. Новий phoenix/run_pipeline.py замінює раніше розділені run_ranker.py та run_retrieval.py: його можна використати як єдиний вхід, щоб з’єднати процес «retrieval → ranking», і він виконує це на exported checkpoints, імітуючи, як у production поєднуються два етапи.
Другий — артефакти попередньо навчених моделей. Цього разу mini Phoenix model опублікована через Git LFS. У документації сказано, що вона містить 256 вимірів embeddings, 4 attention heads, 2 шари transformer, близько 3GB. Це дає розробникам змогу виконувати inference “out-of-the-box” без самостійного навчання моделі. У Phoenix README також зазначено, що публічний demo corpus — це датасет спортивних постів обсягом близько 53,7 тис. записів із 6-годинного вікна, який використовується для демонстрації retrieval-етапу.
Крім того, репозиторій також додав Grox content-understanding pipeline для задач розуміння контенту — spam detection, post-category classification, PTOS policy enforcement тощо; паралельно додано рекламний змішувач Home Mixer, який відповідає за вставку реклами й розміщення в інформаційному потоці та також враховує брендову безпекову аналітику.
Модель ранжування прогнозує 15 типів взаємодій — не лише один абстрактний бал «релевантності»
Phoenix-модель ранжування не просто виводить один абстрактний бал «релевантності», а одночасно прогнозує імовірність різних типів взаємодій.
Згідно з документацією, модель прогнозує, зокрема: favorite, reply, repost, quote, click, profile click, video view, photo expand, share, dwell, follow author, а також not interested, block author, mute author, report — загалом 15 дій.
Далі Weighted Scorer об’єднує ці імовірності взаємодій у фінальний бал через зважування: позитивні дії на кшталт лайків, репостів і поширення отримують додатні ваги, а негативні дії на кшталт блокування, знімання звуку й повідомлення про порушення — від’ємні ваги, щоб «продавлювати вниз» контент, який користувач може не схвалити.
Після обчислення балів моделі система ще застосовує інші коригування. Наприклад, Author Diversity Scorer знижує бали повторюваних авторів, щоб підтримувати різноманітність інформаційного потоку; OON Scorer коригує out-of-network контент, тобто бали постів не від акаунтів, за якими користувач стежить.
Це означає, що «For You» в X — не просто піднімає вгору ті пости, які з найбільшою імовірністю отримають лайки. Натомість вона розкладає прогноз на кілька типів взаємодій, а вже потім через систему ваг формує фінальне ранжування. Отже, ціннісне судження алгоритму не зводиться лише до самої моделі: воно також присутнє у вагах взаємодій і правилах постобробки.
Candidate Isolation: бали постів не мають залежати від інших постів у тій самій пачці
Особливо важливо в цьому релізі те, що в документації згадується «Candidate Isolation».
Phoenix README вказує, що на етапі ranking постам-кандидатам не можна взаємно attend: вони можуть звертатися лише до користувача та його історичних записів. Цей дизайн має на меті гарантувати, що бал конкретного поста не зміниться залежно від того, з якими іншими постами він опиниться в одному batch. Іншими словами, бал поста має залежати від зв’язку між цим постом і користувачем, а не від того, які саме конкурентні пости випадково опинились у тій самій групі.
Це може мати потенційне значення для авторів. Раніше в багатьох спільнотах припускали, що час публікації варто підбирати так, щоб уникати гарячих подій або постів із високою залученістю, аби сильніший контент не «перемагав» у рекомендованому пулі. Але якщо Candidate Isolation реалізований так, як описано в документації, принаймні на рівні inference-моделі бал окремого поста не має напряму змінюватися лише через появу в одному batch інших сильних постів.
Втім, це не означає, що час публікації повністю неважливий. Бо на попередніх етапах — retrieval, свіжість постів, часові слоти, коли користувач онлайн, фільтрація вже переглянутого контенту та увага до гарячих подій — усе це все ще може впливати на остаточну видимість.
«Немає ручних ознак» — теза, яка досі викликає суперечки: крім сортування, залишаються ручні правила
У документації xAI стверджує, що система прибрала всі вручну розроблені features та більшість евристичних правил, спираючись переважно на Grok-based transformer, який вивчає релевантність із послідовностей взаємодій користувача. У документі також наведено п’ять ключових елементів дизайну: відсутність ручних features, ізоляція кандидатів на етапі ранжування, хешовані embeddings, прогнозування для кількох дій і комбінований pipeline-підхід.
Але це твердження потребує точнішого трактування. З тієї ж документації видно, що перед тим, як потрапити в сортування, For You feed проходить через великий набір pre-scoring filters: видалення дублікатів постів, надто старих постів, власних постів користувача, постів із заблокованих або замовчуваних акаунтів, із замовчуваними ключовими словами, уже переглянутого чи нещодавно показаного контенту, а також контенту за підпискою, що не відповідає критеріям. Після ранжування застосовуються post-selection filters: видалення, spam, насильство/кривавість, а також дублікатні гілки для обговорюваних тредів тощо.
Тому більш точна формулювання могла б бути такою: X заявляє, що «кандидатне ранжування релевантності контенту» головним чином приходить від Grok-based transformer і не залежить від традиційних ручних ознак релевантності; але весь For You інформаційний потік як і раніше має багато продуктних правил, фільтрів, ваг і механізмів постобробки. Саме ці правила також формують те, який контент зрештою бачить користувач.
Практичний гайд: як використовувати X-алгоритм для ведення акаунта
На практиці, якщо творці хочуть «працювати в ритмі» алгоритму X, то ключове вже не лише в тому, щоб просто добиватися лайків чи репостів, а в розумінні того, що For You система оцінює одразу кілька типів сигналів взаємодії. Позитивні сигнали включають час перебування, кліки, відповіді, репости, підписку на автора, перегляд відео та розгортання зображень; негативні — нецікавий контент, замовчування, блокування та репорти.
Це означає, що контент не може триматися лише на гучних заголовках для «клікбейтного» трафіку: якщо користувач зайде, швидко прокрутить далі, натисне «не цікаво» або навіть заблокує автора, то це може погіршити подальші покази в рекомендованих.
Для тих, хто веде акаунт, ефективнішою є стратегія підвищення «якості взаємодії»: перші кілька секунд мають зловити увагу, текст має спонукати до читання й зупинки, а висновок — дати привід для природних відповідей або поширень, а не примусово «вимагати» взаємодію. Також через коригування різноманітності авторів короткочасні часті серії публікацій не обов’язково лінійно збільшать охоплення — можливо, це навіть буде розбавлено зниженням ваг авторів; більш розумно — керувати темпом публікацій так, щоб кожен матеріал мав чітку тему, достатню інформативність і позицію, яку можна легко перенести далі.
Зрештою, рекомендації поза межами стеження означають, що акаунту не обов’язково покладатися лише на наявних підписників: якщо контент змушує незнайомих аудиторій затримуватися, клікати й підписуватися, у нього є шанс бути просунутим у більший пул For You; але умова — уникати контенту низької якості, контентних «ферм», повторів і надмірно спірних маніпуляцій, бо якщо такі дії запускають замовчування, блокування або репорти, покарання від алгоритму зазвичай важче, ніж короткостроковий бонус від потокового трафіку.
Ця стаття X публікує вихідний код рекомендацій «For You»: практичний гайд, як вести акаунт у Twitter через алгоритм. Вперше з’явилась у «Цепна новина ABMedia».
Related News
SpaceX може бути допущено до IPO 6/12 і прагне потрапити в індекс Nasdaq 100
Codex інтегрується в мобільний застосунок ChatGPT, дозволяючи віддалено керувати завданнями з розробки на Mac
Pi Network PiScan повертається: оновлення KYC AI скорочує ручну чергу на 50%
Сем Альтман оголосив: OpenAI Codex подарує компаніям два місяці «безкоштовного» використання
Google планує співпрацювати з SpaceX у межах програми «捕日者», щоб розгорнути космічні AI-обчислення