Musk je otvorio X algoritam preporuka, proučavao sam jedan dan i otkrio ova blaga u dizajnu
Baš danas, Musk-ov xAI je uradio veliku stvar: kompletan izvorni kod algoritma preporuka „For You" za X (bivši Twitter) je otvoren!

GitHub adresa: https://github.com/xai-org/x-algorithm
Iskreno, ovaj repozitorijum ima izuzetno visok sadržaj zlata. To je kompletan industrijski sistem preporuka, i ima nekoliko veoma smelih dizajnerskih odluka, zaista otvara um.
Proveo sam dan čitajući izvorni kod i dokumentaciju, danas ću vam razložiti blaga dizajna u ovom sistemu.
01. Sveukupna arhitektura: trojka
Prvo da pogledamo sveukupnu arhitekturu, X-ov sistem preporuka se uglavnom sastoji od tri ključne komponente:
Home Mixer - orkestracioni sloj, ekvivalent komandantu, odgovoran za povezivanje modula. Definiše okvir Candidate Pipeline, koji obuhvata više faza:
- Query Hydrators: pribavlja korisnički kontekst (šta je lajkovao, koga prati)
- Sources: povlači kandidate tweet-ove iz dva kanala
- Hydrators: dopunjuje kandidate tweet-ove informacijama (autor, medij, trajanje itd.)
- Filters: filtrira nekvalifikovane tweet-ove
- Scorers: ocenjuje svaki tweet
- Selector: sortira po oceni i uzima Top K
Thunder - odgovoran za sadržaj unutar mreže (In-Network), odnosno tweet-ove ljudi koje pratiš.
Njegov dizajn je prilično zanimljiv: zasnovan na Kafka real-time potrošačkom pipeline-u, sve događaje tweet-ova korisnika (kreiranje, brisanje) unosi u realtime memoriju. Tako upit može postići sub-milisekundni odgovor, bez potrebe za pretragom baze podataka.
Ovaj detalj posebno ide u prilog. Tradicionalni pristup bi možda bio MySQL ili Redis, ali X je izabrao čistu memoriju + Kafka replay mehanizam poruka, što pokazuje da su njihovi zahtevi za performanse dovedeni do ekstrema.
Phoenix - ovo je jezgro celog sistema, ML model zasnovan na Grok transformatoru, odgovoran za dve stvari:
- Pretraga (Retrieval): sa two-tower modelom pronalazi tweet-ove koji bi te mogli zanimati iz globalnog bazena (Out-of-Network)
- Ranking: ocenjuje kandidate tweet-ove, predviđa da li ćeš lajkovati, odgovoriti, retweetovati
Ceo proces izgleda otprilike ovako:

02. Najveći vrhunac: nula ručnih karakteristika
Ovaj dizajn je zaista previše smel!
U dokumentaciji jasno piše:
„We have eliminated every single hand-engineered feature and most heuristics from the system."
Prevedeno ljudskim jezikom: oni su odsecali sve ručno inženjerstvo karakteristika i potpuno se oslanjaju na Grok transformator da razume korisničke interese.
Tradicionalni sistemi preporuka obično imaju gomilu karakteristika: aktivnost korisnika, dužina tweet-a, da li ima sliku, da li je video, vreme objavljivanja itd. Inženjerski tim mora provesti mnogo vreme u čišćenju karakteristika i podešavanju težina.
X je direktno odsec'o sve ovo, zadržavši samo sirovu sekvencu korisničkog ponašanja (šta si lajkovao, odgovorio, retweetovao), i baca je Grok transformatoru da sam uči.

Ova odluka ima nekoliko prednosti:
- Inženjerska kompleksnost drastično smanjena: nije potrebno održavati ogroman pipeline karakteristika
- Brža iteracija modela: nije potrebno ručno podešavati karakteristike, samo dodaj podatke
- Viši plafon efekta: model može naučiti složene obrasce koje je ljudima teško uočiti
Ali ovo rešenje ima i preduslov: tvoj transformator mora biti dovoljno jak. X je direktno uzeo arhitekturu Grok-1 i preradio je, što pokazuje da imaju dovoljno akumulacije u sposobnostima velikih modela.
Za nas obične timove, ovo rešenje ima izvesnu referentnu vrednost, ali moramo proceniti svoje snage. Ako imaš model na nivou Grok-a, možeš probati; ako još uvek koristiš BERT i slično, radi poslušno inženjerstvo karakteristika.
03. Mehanizam izolacije kandidata
U fazi Phoenix rangiranja, X koristi trik koji se zove „Candidate Isolation".
Tradicionalno transformatorsko rangiranje obično baca grupu kandidata i pušta ih da međusobno attention-uju. Ali to ima problem: ocena jednog tweet-a će biti pod uticajem drugih tweet-ova, što rezultira nestabilnim rezultatima.
X-ov pristup je: posebnom attention mask-om omogućava da kandidati tweet-ovi mogu samo da obraćaju pažnju na korisnički kontekst, a ne mogu međusobno.
Prednost ovog dizajna je:
- Ocene se mogu keširati: ista grupa tweet-ova istog korisnika uvek ima istu ocenu
- Prijateljski za paralelno izračunavanje: rezultati različitih grupa se mogu spojiti
- Zgodno za AB test: pri izmeni modela poređenje rezultata je tačnije
Ovaj detalj deluje jednostavno, ali u inženjerstvu ima ogroman uticaj. Znači da možeš unapred izračunati ocene i sačuvati ih, a kada korisnik osveži, direktno uzmeš iz keša — brzina odgovora može biti reda veličine brža.
04. Predviđanje više ponašanja
Phoenix ne predviđa samo „da li ti se sviđa ovaj tweet", već predviđa 14 ponašanja:
P(favorite) - lajk
P(reply) - odgovor
P(repost) - retweet
P(quote) - citiranje
P(click) - klik
P(profile_click) - klik na profil
P(video_view) - gledanje videa
P(photo_expand) - proširivanje slike
P(share) - deljenje
P(dwell) - vreme zadržavanja
P(follow_author) - praćenje autora
P(not_interested) - nije od interesa
P(block_author) - blokiranje autora
P(mute_author) - utišavanje autora
P(report) - prijavaKonačna ocena je ponderisana kombinacija:
Final Score = Σ (weight_i × P(action_i))Lajk, retweet i ovakva pozitivna ponašanja imaju pozitivnu težinu, blokiranje, prijava i ovakva negativna ponašanja imaju negativnu težinu.
Prednost ovog dizajna je: model može istovremeno da optimizuje više ciljeva. Na primer, neke tweet-ove možda nećeš lajkovati, ali ćeš otići na profil autora, što je za sistem preporuka takođe pozitivna povratna informacija.
Tradicionalni pristup obično je da se trenira više modela (model klikova, model retweet-ova, model lajkova), a zatim se ponderisano spoje. X sa jednim modelom rešava sva predviđanja — i štedi resurse i osigurava konzistentnost između ponašanja.
05. Two-Tower model pretrage
Deo za pretragu Phoenix-a koristi two-tower (Two-Tower) arhitekturu:
- User Tower: kodira korisničke karakteristike i istoriju ponašanja u embedding
- Candidate Tower: kodira tweet u embedding
- Similarity Search: preko kosinusne sličnosti pronalazi Top K
Prednost ovog rešenja je: možeš unapred kodirati sve tweet-ove i sačuvati ih, a kada korisnik pošalje zahtev samo izračunaš korisnički embedding, a zatim uradiš pretragu vektorske sličnosti.
Dokumentacija takođe pominje detalj: koriste više heš funkcija za embedding pronalaženje, verovatno da ubrzaju.
Two-tower model je klasična arhitektura sistema preporuka, ali X ga kombinuje sa Grok transformatorom, što se takođe može smatrati inovacijom.
06. Inženjerski detalji
Pored gore navedenih ključnih dizajna, u kodu ima još inženjerskih detalja vrednih učenja:
Okvir pipeline-a se može ponovo koristiti
Candidate Pipeline u Home Mixer-u je opšti okvir, definiše trait-ove Source, Hydrator, Filter, Scorer, Selector, koji se mogu fleksibilno sastavljati.
Ovaj dizajn čini sistem lako proširivim. Na primer, ako želiš da dodaš novi kanal preporuka (kao što su popularni trendovi), samo treba da implementiraš interfejs Source.
Paralelno izvršenje
Candidate Pipeline automatski prepoznaje koji koraci se mogu paralelno izvršavati. Na primer, više Hydrator-a može istovremeno pribavljati podatke, ne mora čekati serijski.
Ovaj detalj je inženjerski posebno važan i može značajno smanjiti latenciju odgovora.
Elegantna degradacija
Dokumentacija pominje da svaka komponenta ima obradu grešaka i strategiju degradacije. Na primer, ako Phoenix pretraga padne, može vratiti samo rezultate Thunder-a (samo ljudi koje pratiš).
Ovo je od ključnog značaja. Sistem preporuka ne može koristiti dizajn „sve ili ništa", mora osigurati da i u ekstremnim uslovima može degradirati uslugu.
07. Kako napisati u rezimeu?
Dakle, kako ovaj X algoritam preporuka koji smo danas naučili da napišemo u rezimeu?
Ako si u projektu referencirao ovaj dizajn, možeš ovako napisati:
Naziv projekta: XX restrukturiranje arhitekture sistema preporuka
Opis projekta: Na osnovu ideje dizajna X algoritma preporuka platforme, restrukturiraj postojeći sistem preporuka, realizuj transformaciju od tradicionalnog inženjerstva karakteristika ka modelu dubokog učenja, podržava istraživanje korisničkih interesa i personalizovanu distribuciju sadržaja.
Tehnološki stek: Java 21, Spring Boot 3.4, PyTorch, Kafka, Milvus
Ključne odgovornosti:
- Referencirajući dizajn Phoenix modela platforme X, uvođenje transformerske arhitekture kao zamene za tradicionalne XGBoost/LR modele, kroz multi-task learning istovremeno predviđa 6 vrsta korisničkih ponašanja kao što su klik, lajk, retweet, CTR raste za 23%
- Mehanizam izolacije kandidata transformira model rangiranja, kroz attention mask ograničava interakciju između kandidata, čini ocene modela kešabilnim, 60% zahteva se prebacuje sa realtime izračunavanja na pogotke keša, P99 latencija smanjena za 180ms
- Arhitektura two-tower pretrage optimizuje recall sloj, User Tower realtime izračunava korisnički embedding, Candidate Tower offline generiše embedding stavki, kroz Milvus vektorsku pretragu realizuje Top 1000 recall, pokrivenost recall-a povećana za 40%
- Na osnovu Kafka stream izračunavanja restrukturira pipeline za unos sadržaja, referencirajući Thunder dizajn implementira memoriju + replay mehanizam poruka, latencija od objavljivanja novog sadržaja do preporuke smanjena sa 5 minuta na 3 sekunde
Kako vam se čini, da li deluje da se odmah može iskoristiti?
08. ending
Iskreno, X-ov algoritam preporuka koji je ovog puta otvorio zaista ima visok sadržaj zlata.
Nije jednostavno bacio kod, već pokazuje sistem preporuka industrijskog nivoa koji je verifikovan na velikoj skali. Od dizajna arhitekture do inženjerskih detalja, od izbora modela do optimizacije performansi — svaki deo vredi ponovljeno proučavanje.
Posebno za nas developer-e, najveća inspiracija ovog sistema je: u eri velikih modela, sistem preporuka možda zaista više ne mora biti toliko kompleksan.
Tradicionalni sistemi preporuka zahtevaju ogroman tim za inženjerstvo karakteristika, kompleksne strategije fuzije modela, precizno podešavanje težina. Ali sa dovoljno jakim transformatorom, mnogo posla može prepustiti modelu da sam nauči.
Naravno, ovo nam postavlja i nove zahteve: ubuduće prilikom rada na sistemu preporuka možda će više biti potrebno razumevanje velikih modela nego tradicionalne ML inženjerske sposobnosti.
Kolege koji još uvek nisu pogledali, mogu brzo klonirati jednu kopiju:
https://github.com/xai-org/x-algorithm
Kod je napisan u Rust-u, ali dokumentacija je veoma detaljna, čak i ako ne gledate kod, samo čitanje dijagrama arhitekture i pristupa dizajnu donosi mnogo koristi.
Ako vam je današnje deljenje pomoglo, ne zaboravite da lajkujete i podržite Erge-a! Vidimo se u sledećem.
Reference:
- X Algorithm GitHub: https://github.com/xai-org/x-algorithm
- Grok-1 Paper: https://arxiv.org/abs/2303.06574
