Kwa nini Netflix iliondoka kwenye vipengele vilivyoundwa kwa mkono

Kwa sehemu kubwa ya historia yake, mchakato wa mapendekezo wa Netflix ulitegemea maelfu ya sifa zilizofafanuliwa kwa mkono—vekta za namba (numeric vectors) zinazoelezea watumiaji, vichwa vya habari, na kila mwingiliano kati yao. Wahandisi walitumia wiki kadhaa kutafsiri aina mpya ya maudhui—michezo ya moja kwa moja, podikasti, au michezo ya video—kuwa seti mpya ya vipengele kabla ya mfumo kuanza kuipendekeza. Mchakato huo ulikuwa na gharama kubwa, usio imara, na mgumu kuendana na upanuzi wa haraka wa orodha ya maudhui (catalog).

Mifumo ya Large Language Models (LLMs) ya kawaida haikufanya kazi moja kwa moja. Iliingia kwenye vichwa vya habari maarufu zaidi, wakati mwingine ikidai vitu ambavyo havipo (hallucinated), na ikapata ugumu katika kusimamia kanuni za biashara zinazofanya mapendekezo yawe salama na yenye manufaa. Kwa hivyo, Netflix ilijenga mchakato maalum unaozingatia LLM ambao unahifadhi nguvu za mfumo wa lugha huku ukizingatia vikwazo vya uzalishaji (production constraints).

Ndani ya GenRec: mchakato wa mafunzo wa hatua mbili

GenRec inajumuisha awamu mbili tofauti:

  1. Urekebishaji wa mfano wa msingi (Base model fine-tuning) – Netflix huanzia kwenye mfano wa lugha wenye uzito wazi (open-weight language model) na kuufanyia marekebisho (fine-tune) kwa kutumia data za utazamaji za ndani. Hii inaunda uwezo wa mfano kuelewa msamiati wa orodha ya maudhui na mifumo ya tabia za watumiaji bila kubadilisha usanifu wake mkuu.
  2. Upangaji wa mapendekezo (Recommendation ranking) – Mzunguko wa pili wa mafunzo unageuza mfano uliorekebishwa kuwa mpangaji (ranker) unaotoa alama kwa vichwa vya habari vinavyoweza kupendekezwa kwa mtumiaji fulani. Netflix huufanyia marekebisho hatua hii mara kwa mara ili mfano uwe na taarifa za hivi punde kuhusu toleo mpya na mienendo inayobadilika.

Tofauti kuu na mfumo wa zamani ni jinsi historia ya mtumiaji inavyopelekwa kwenye mfano. Badala ya kubana vipindi vya kutazama kuwa vekta nzito (dense vectors), GenRec inatafsiri kila mwingiliano—muda wa kucheza, thumbs-up au thumbs-down, kuacha kutazama mapema—kuwa sentensi za Kiingereza rahisi. Kisha mfano unasoma kikao chote kama mazungumzo mafupi, ukigundua mabadiliko madogo katika upendeleo wa aina ya maudhui (genre) au hali ya hisia (mood) bila kuhitaji uhandisi wa vipengele (feature engineering) wa wazi.

Mafanikio katika utendaji na ufanisi

Katika jaribio la wiki nne ambalo liliwezesha asilimia 10 ya wafuasi wa Netflix kutumia GenRec, mfumo mpya ulileta ongezeko la takwimu katika familia mbili za vipimo:

  • Ushiriki wa muda mfupi – ongezeko la 0.115% katika ishara kuu za kubofya (click-through) na muda wa kutazama zinazoendesha mapendekezo ya kila siku.
  • Vipimo muhimu vya muda mrefu – ongezeko la 0.006% katika uendelevu wa washiriki (subscriber-retention) na alama za kuridhika kwa ujumla ambazo ni muhimu zaidi kwa biashara.

Katika mazingira ya nje (offline), ubora wa upangaji kwenye seti ya data iliyotengwa uliboreka kwa 1.6% ikilinganishwa na kiwango cha awali cha uzalishaji (production baseline). Kinachoshangaza zaidi ni ufanisi wa data: hatua ya pili ya mafunzo ilihitaji takriban 1/40 ya mifano iliyotiwa lebo inayohitajika na mchakato wa zamani ili kufikia kiwango kile kile cha utendaji.

Ili kudhibiti gharama za kompyuta, Netflix huendesha mfano huu kwa kutumia vLLM, mfumo wa huduma (serving stack) unaotoa alama kwa kila chaguo kwa hatua moja ya mbele (single forward pass) badala ya kuzalisha maandishi. Mfumo pia unatumia vichujio vikali ili matukio yenye taarifa muhimu pekee yapate nafasi kwenye dirisha la muktadha (context window) la mfano, hivyo kupunguza token zisizo za lazima na kupunguza ucheleweshaji (latency).

Maana ya mabadiliko kutoka “vipengele” kwenda “muktadha”

GenRec ni sehemu ya harakati pana ambapo “uhandisi wa muktadha” (context engineering) unachukua nafasi ya vipengele vilivyoundwa kwa mkono. Badala ya kubuni usanifu maalum kwa kila kazi ya mapendekezo, wahandisi huamua ni ishara gani ziingizwe kwenye maandishi (text prompt) na kuacha mfumo wa lugha uwe na uwezo wa kufanya mantiki juu yake. Njia hii inaongeza kasi ya kuingiza aina mpya za maudhui: kipindi cha podikasti au mchezo wa moja kwa moja unaweza kuelezewa kwa sentensi moja na kujiunga mara moja na kundi la mapendekezo, bila kupitia mchakato wa wiki kadhaa wa kufafanua vipengele.

Vikwazo vilivyobaki

Mifumo ya mapendekezo inayozingatia LLM si suluhisho la kila tatizo (silver bullet). Tabia yao ya kusisitiza bidhaa maarufu bado inaleta upendeleo kwenye orodha ya maudhui, na hitaji la GPU zenye nguvu huongeza gharama za uendeshaji. Hata kwa kutumia vLLM na vichujio vikali, kutoa huduma ya mfumo mkubwa wa lugha katika kiwango cha Netflix kunahitaji uhandisi makini ili kufikia malengo ya ucheleweshaji (latency targets).