I Ran a 35B Param Model On My iPhone (Local AI)

16 września 2026 · ok. 3 minuty ·na podstawie materiału: Better Stack

Wersja audio · 4:56 Pobierz MP3 (2.3 MB)

Quen trzy i pięć w wariancie trzydziestu pięciu miliardów parametrów generuje jedenaście tokenów na sekundę na iPhonie siedemnaście. W czterobitowym pliku ten model waży około dwudziestu gigabajtów i normalnie musi w całości siedzieć w pamięci. Na telefonie w pamięci zostaje tylko jeden i cztery dziesiąte gigabajta. Reszta leży na S S D i jest doczytywana wtedy, kiedy jest potrzebna. Warren z Better Stack pokazuje, jak to poskładano, jaki błąd zapętlał model i co trzeba zrobić, żeby uruchomić to u siebie.

Co zostaje w pamięci, a co na dysku

To model typu mixture of experts. Końcówka A trzy B oznacza, że na jeden token aktywne są tylko około trzy miliardy z trzydziestu pięciu miliardów parametrów. Model ma czterdzieści warstw, w każdej dwieście pięćdziesiąt sześć małych ekspertów plus jeden wspólny. Router wybiera ośmiu ekspertów na token.

W pamięci na stałe zostaje to, czego potrzebuje każdy token: embeddingi, uwaga, routery i wspólny ekspert. To właśnie te jeden i cztery dziesiąte gigabajta. Eksperci to czterdzieści plików po około trzysta megabajtów, razem dwanaście gigabajtów, i te zostają na S S D.

Dla każdego tokenu uwaga liczy się na G P U, router wskazuje ośmiu ekspertów, a silnik czyta ich prosto z S S D do pamięci G P U i uruchamia razem ze wspólnym ekspertem. Dzieje się to w każdej z czterdziestu warstw, więc na jeden token przypada trzysta dwadzieścia drobnych odczytów.

Uwaga to ta część modelu, która patrzy wstecz na całą dotychczasową rozmowę i ustala, które wcześniejsze słowa mają znaczenie dla przewidzenia następnego. Działa przy każdym tokenie, więc musi zostać w pamięci. Eksperci myślą o tokenie dopiero wtedy, gdy uwaga ustali kontekst — a skoro używanych jest tylko ośmiu, resztę można zostawić na dysku.

Własny cache okazał się gorszy niż systemowy

W aplikacji nie ma żadnego cache’u ekspertów. Każdy odczyt idzie przez system operacyjny, a iOS trzyma ostatnio używanych ekspertów we własnym page cache tak długo, jak ma wolną pamięć.

Autorzy najpierw zbudowali własny cache na dziewięć i osiem dziesiątych gigabajta, a potem go skasowali. Było o trzydzieści osiem procent szybciej. Na Macu i na iPhonie każdy gigabajt zabrany przez aplikację to gigabajt odebrany G P U i temu systemowemu cache’owi. A to on wykonuje tu większość pracy: przy jedenastu tokenach na sekundę odczyt wszystkich ekspertów z pamięci flash wymagałby ponad pięciu gigabajtów na sekundę, a flash w iPhonie daje około jednego i sześciu dziesiątych.

Kwantyzacja na dwa poziomy

Kwantyzacja zmniejsza wagi modelu, ale obniża ich dokładność, więc odbija się na inteligencji. W tym modelu około dwudziestu pięciu procent ekspertów wykonuje około osiemdziesięciu procent pracy. Gorący eksperci zostają więc na czterech bitach, a zimni schodzą do dwóch. Zimni są dzięki temu o czterdzieści cztery procent mniejsi, a cały plik kurczy się o trzydzieści cztery procent, z około dziewiętnastu do trzynastu gigabajtów. Więcej mieści się w page cache.

Efekt to jedenaście tokenów na sekundę na iPhonie siedemnaście, z modelem w trybie myślenia. Telefon przy tym mocno się grzeje.

Dosłownie od napisania „cześć” czułem, jak telefon nagrzewa się w dłoni.

Silnik, błąd i pętla

Silnik to projekt Flash M O E autorstwa Dana Woodsa, napisany pod MacBooka. Do iPhone’a jest mały port o nazwie Flash iOS, który opakowuje ten sam silnik w aplikację.

Na starcie pojawił się błąd: model zaczynał normalnie, a po jakichś dziesięciu słowach w nieskończoność powtarzał te same dwa tokeny. Poprawka trafiła do funkcji async pre read weight, tak żeby odczyt każdego eksperta był sprawdzany względem jego własnego rozmiaru. Zimni eksperci są dwubitowi i o połowę mniejsi od gorących, więc przed poprawką każdy z nich nie przechodził kontroli rozmiaru i był po cichu pomijany. Model działał efektywnie z połową ekspertów i dlatego się zapętlał.

Jak to uruchomić

Koniec artykułu.

#modele lokalne#mixture of experts#iOS

Artykuł powstał z transkrypcji materiału wideo: https://www.youtube.com/watch?v=hM_mEE8BXfU. Lektor: pl_PL-gosia-medium (piper).