Apple opublikowało w październiku opis Minions — wewnętrznego systemu, który zbiera bezczynne GPU w firmowych Makach z Apple Silicon w jedną rozproszoną chmurę do inferencji. Według pracy kolejki na centralne GPU sięgały wcześniej ponad dziesięciu godzin, a na Minions zadania startują w minutach.
Najważniejsze w skrócie
- Zadania czekały ponad 10 godzin na centralne GPU, na Minions startują w minutach
- Zero nowych zakupów GPU i zerowy koszt infrastruktury według tabeli wyników Apple
- Cztery komponenty: Minion Server, baza PostgreSQL, Minion Executor i Minion Watchdog
- Egzekutory raportują heartbeat co pięć minut, Watchdog śledzi tylko te liczące podzadania
- Praca ma trzy strony, jeden rysunek i jedną tabelę — bez benchmarków przepustowości
Pull zamiast schedulera
Minions nie ma centralnego schedulera. Minion Server dzieli zadanie na podzadania i zapisuje je w PostgreSQL, a egzekutory na Makach same odpytują REST API o to, co mogą wziąć — to model pull-owy?pull: Pracownik sam zgłasza się po zadanie, zamiast dostawać je przydzielone. Odporny na to, że część maszyn w każdej chwili jest offline., odwrotność klasycznego przydzielania zadań.
Wyłączność zapewnia jedno ograniczenie unikalności w tabeli minion_subtask_acquirement — przy wyścigu kilku egzekutorów dokładnie jeden INSERT przechodzi, pozostałe szukają innego podzadania.
-- wyścig egzekutorów o to samo podzadanie
INSERT INTO minion_subtask_acquirement (subtask_id, executor_id)
VALUES ('st-4711', 'mac-studio-07');
-- UNIQUE(subtask_id): pierwszy INSERT wygrywa,
-- pozostałe dostają błąd i szukają innego podzadaniaSchemat poglądowy mechanizmu opisanego w pracy. Apple podaje nazwę tabeli i zasadę działania, nie pełny schemat bazy — powyższy zapis ilustruje regułę, a nie oryginalny kod.
Obsługiwane są dwa typy zadań: generowanie embeddingów modelami z Hugging Face Hub oraz generowanie uzupełnień tekstu modelem LLM przez Ollamę.
| Komponent | Rola w systemie |
|---|---|
| Minion Server | przyjmuje zadanie, dzieli je na podzadania, wystawia REST API |
| PostgreSQL | kolejka i stan — siedem tabel, w tym ograniczenie unikalności na podzadaniu |
| Minion Executor | proces na Macu: pobiera podzadanie i liczy je na lokalnym GPU |
| Minion Watchdog | pilnuje heartbeatów i zwraca do kolejki podzadania martwych egzekutorów |
Awaria egzekutora to norma, nie wyjątek
Model pull-owy bierze się z tego, że prywatne urządzenia są dostępne z przerwami: Mac idzie w sen, traci sieć albo właściciel odbiera mu zasoby. Watchdog śledzi tylko te egzekutory, które faktycznie liczą podzadanie, i zwalnia je do kolejki, gdy przestaną wysyłać heartbeat?heartbeat: Krótki sygnał „żyję" wysyłany w stałym rytmie. Jego brak jest jedyną przesłanką, po której system uznaje maszynę za martwą.. Dane i wyniki idą przez S3, nie przez serwer — to odcina duże transfery od warstwy koordynacji.
Faktem są nazwy komponentów, liczba tabel i pięciominutowy heartbeat. Uproszczeniem jest jeden egzekutor — w praktyce o to samo podzadanie ściga się wiele maszyn.
Blokadą jest zaufanie, nie technika
Apple wprost pisze, co ogranicza adopcję: obawa o poufność danych liczonych na maszynach spoza własnej organizacji — nawet przy zadaniach wewnętrznych. Odpowiedzią są wdrożenia zamknięte w zespole lub organizacji, z osobną bazą danych i odizolowaną pulą egzekutorów.
Koordynacja bywa przy tym całkowicie nieformalna: ludzie proszą się na Slacku o uruchomienie egzekutora pod konkretny projekt.
Dlaczego to ważne?
Debata o mocy obliczeniowej dotyczy zwykle budowy nowych centrów danych, bo tam idą pieniądze i tam widać wzrost. Minions pokazuje tańszą ścieżkę, która nie wymaga ani jednego nowego zakupu — ale praca nie podaje przepustowości ani kosztu energii, więc z klastrem porównać się jej nie da. Prawdziwą przeszkodą zostaje zresztą nie wydajność, lecz zgoda zespołów na liczenie cudzych danych u siebie.
Co dalej?
- Apple zapowiada rozszerzenie Minions z inferencji na rozproszony trening modeli
- W pracy pojawia się pomysł federowania bezczynnych Maków między organizacjami — bez opisu mechanizmu bezpieczeństwa
- Minions nie jest udostępniony publicznie i nie ma jeszcze niezależnej analizy ani kodu





