- Exo är programvara med öppen källkod som låter dig skapa ett kluster av IA med vardagliga enheter, distribuera LLM-modeller mellan flera nätverksanslutna datorer.
- Plattformen utmärker sig för sin automatiska enhetsidentifiering, RDMA-stöd över Thunderbolt 5 och dynamiska modellpartitionering, vilket optimerar CPU-, GPU- och minnesanvändning.
- Det fungerar särskilt bra på macOS med GPU och MLX, medan det är på Linux Den körs för närvarande på processorer, med en öppen färdplan för att utöka stödet för hårdvara.
- Exo är idealiskt för projekt som Home Assistant, små och medelstora företag och utvecklare som vill köra avancerad AI lokalt utan att förlita sig på molnet eller investera i avancerade GPU:er.
Lokal exekvering av stora språkmodeller (LLM) förknippas vanligtvis med enorma maskiner, extremt dyra grafikkort och ogynnsam energiförbrukning. Men under de senaste månaderna har ett alternativ dykt upp som lockar mycket uppmärksamhet: Exo, programvara som förvandlar flera hemenheter till ett AI-kluster kapabel att köra mycket krävande modeller utan att vara beroende av molnet.
Med Exo, Tanken är att samla datorernas kraft, portabelmobiltelefoner och andra anslutna enheter Så att de, genom att kombinera sina resurser, kan köra LLM:er som vi normalt bara ser i professionella datacenter. Detta öppnar dörren för att etablera ett slags "mini-datacenter" hemma, perfekt för projekt som lokala assistenter som Home Assistant, små och medelstora företag som vill experimentera med AI utan att ruinera sig, eller nyfikna utvecklare som vill gå bortom typisk molntestning.
Vad är Exo och vad syftar det till att lösa?
Exo är en experimentell programvara med öppen källkodunderhålls av Exo Labs, vars huvudsyfte är att göra det möjligt för dig att bygga din egen kluster av artificiell intelligens hemma med hjälp av vardagliga enheter. Istället för att förlita sig på en enda GPU med mycket VRAM distribuerar Exo modellen över flera enheter anslutna till samma nätverk.
Exos premiss är enkel men mycket kraftfull.dina vanliga enheter – en MacBook, en iPhoneEn iPad, en Linux-dator eller till och med vissa enkortsdatorer (SBC) kan samarbeta för att köra en stor AI-modell. Var och en bidrar med minne och datorkraft, och programvaran orkestrerar allt för att fungera som om det vore en enda, större maskin.
Exo föddes som ett svar på en mycket vanlig begränsningInte alla har tillgång till en avancerad GPU som en NVIDIA Ett RTX 3090 med 24 GB VRAM och tiotals gigabyte RAM. Att köra en "blygsam" modell som Llama 3.1 70B med hyfsad lokal prestanda kräver hårdvara som ligger utanför budgeten för många utvecklare, tillverkare eller småföretag.
Istället för att tvinga dig att investera i en monstruös utrustningsdel eller att enbart förlita dig på molnet, Exo föreslår att man kombinerar det tillgängliga minnet från flera mer blygsamma enheter så att den kompletta modellen passar in i klustret som helhet. Detta demokratiserar avsevärt tillgången till experiment med avancerad AI, vilket är särskilt intressant för startups och små och medelstora företag.

Hur Exo fungerar på en teknisk nivå
Kärnan i Exo ligger i dess förmåga att distribuera LLM-modeller över alla tillgängliga enheter i ett hem- eller kontorsnätverk. Istället för att ladda hela modellen på en enda maskin, bryter Exo ner den och distribuerar den, vilket utnyttjar det kombinerade minnet och datorkraften hos varje nod.
För att uppnå det, Exo använder en distribuerad delad minnesmetodgenom att anpassa den del av modellen som placeras på varje enhet beroende på mängden tillgängligt minne (RAM och, på macOS, GPU VRAM). Således kan en modell som normalt skulle kräva en mycket kraftfull GPU köras på bärbara datorer, stationära datorer och till och med andra enheter, förutsatt att det totala klusterminnet är tillräckligt.
Processen börjar med installationen av Exo på kompatibla enheter.I många fall kräver det att man har Python 3.12 eller senare, utöver andra verktyg som en beroendehanterare och kompilatorer. När tjänsten körs, kommer enheterna som kör Exo att de upptäcker varandra automatiskt inom samma nätverk, utan att du behöver konfigurera IP-adresser eller portar manuellt.
Intern kommunikation mellan noder baseras på anslutningar peer-to-peerDetta gynnar en arkitektur där varje maskin bidrar med vad den kan utan att vara beroende av en enda, rigid central server. Baserat på denna topologi utför Exo en resurs- och latensanalys för att bestämma hur modellen ska partitioneras och var varje fragment ska placeras.
Ett av nyckelelementen är den dynamiska partitioneringen av modellerExo får en realtidsvy av klustertopologin, resurserna för varje enhet (minne, CPU, GPU) och kvaliteten på nätverkslänkarna (latens, bandbredd mellan noder). Med denna information bestämmer den automatiskt hur modellen ska delas upp för att balansera belastningen och minimera flaskhalsar.
Exos viktigaste tekniska funktioner
Exo-projektet innehåller flera funktioner som är utformade för att få ut det mesta av det. tillgänglig hårdvara och göra livet enklare för användaren. Bland de mest anmärkningsvärda är:
Automatisk enhetsidentifieringEnheterna som kör Exo kan hitta varandra utan att du behöver röra nätverkskonfigurationen. Detta undviker den typiska mardrömmen med att hantera statiska IP-adresser, manuella portar eller anpassade skript för att noderna ska kunna se varandra.
Stöd för RDMA över ThunderboltEn av de mest slående punkterna är att Exo kommer med Kompatibilitet från första dagen med RDMA (Remote Direct Memory Access) via Thunderbolt 5Denna metod gör att latensen mellan enheter kan minskas med upp till 99 % jämfört med mer traditionella kommunikationsmetoder, vilket är avgörande när man distribuerar delar av samma modell mellan flera maskiner.
Tensorisk parallellismExo implementerar tekniker för tensorparallellismMed andra ord fördelar den modellens tensorer över flera enheter. Tack vare detta har hastighetsförbättringar på upp till 1,8 gånger med två enheter och upp till 3,2 gånger med fyra rapporterats i vissa konfigurationer, jämfört med att köra modellen på en enda enhet med samma resurser.
Medveten topologi och självparallelliseringSystemet beräknar automatiskt det bästa sättet att partitionera modellen och distribuera den över klustret, med hänsyn till både varje nods kraft och kvaliteten på anslutningarna mellan dem. Denna funktion hos "Topologimedveten automatisk parallellisering" Det minskar behovet för användaren att justera allt manuellt.
MLX-integration och GPU-stöd på macOSPå macOS använder Exo MLX som inferensbackend och MLX Distributed för distribuerad kommunikation. Detta gör att den kan dra nytta av GPU:erna som är integrerade i Apples kiselchip, vilket är särskilt intressant i enheter som Mac Studio eller senaste generationens MacBook Pro.
Praktiska användningsområden och prestanda på Mac-datorer
Exo har testats i mycket krävande scenarier genom att kombinera flera avancerade Mac-datorer, och dra nytta av både tensorparallellism och RDMA över Thunderbolt 5. I dessa konfigurationer har gigantiska modeller körts som vi normalt bara skulle se i datacentermiljöer.
Ett exempel som diskuterats i samhället är användningen av fyra Mac Studio med M3 Ultra-chip ansluten med Thunderbolt 5 och RDMA. Tillsammans ger de cirka 15 TB effektivt VRAM för att rymma vansinnigt stora modeller.
Bland de modeller som har implementerats i denna typ av uppställning utmärker sig följande: Qwen3-235B i 8 bitar, DeepSeek v3.1 671B kvantiserad även till 8 bitar eller Kimi K2 Tänkande i native 4 bitarI alla dessa fall är varje Mac värd för en del av modellen och kommunikationen mellan noder optimeras med hjälp av RDMA.
Dessa experiment har dokumenterats av skapare som Jeff Geerlingvilket har visat hur det är möjligt att sätta upp en hemkonfiguration med en enorm mängd effektivt videominne. I detta scenario fungerar Exo som orkestreringslager som gör att modellen kan fungera koherent trots att den är distribuerad över flera maskiner.
Utöver dessa extrema konfigurationer, Samma princip kan tillämpas på mer blygsamma användningsområdenTill exempel för att mata en stor språkmodell som fungerar som hjärnan i ett avancerat hemautomationssystem, en privat konversationsassistent eller textanalysverktyg inom ett litet företag.
Använda Exo med Home Assistant och avancerad hemautomation
Hemassistent-communityn pratar redan om Exo som ett alternativ för att lokalt köra stora LLM:er som fungerar som resonemangsmotorer för hemautomation. Även om många inte har provat det direkt ännu har projektet väckt uppmärksamhet eftersom det lovar att möjliggöra mycket tunga modeller på relativt blygsam hårdvaraförutsatt att tillräckligt många lag är grupperade tillsammans.
Tanken är att, istället för att förlita sig på en kraftfull GPU eller molnetDu kan konfigurera ett kluster med flera datorer, även om de inte har en dedikerad GPU. Exo skulle hantera distributionen av modellen mellan dem alla, vilket gör det möjligt för Home Assistant att konsultera en lokal juridiktekniker för att fatta mer komplexa beslut eller ge mer naturliga svar.
Denna metod är särskilt tilltalande för dem som prioriterar integritet.Eftersom hushållsdata inte behöver lämna det lokala nätverket utförs all inferens och naturlig språkbehandling inom det kluster du har konfigurerat, utan att förlita dig på externa servrar.
Projektet har uppmärksammats på teknikbloggar som CNX Software, där Det framhävs att Exo även kan köras på datorkluster, smartphones eller utvecklingskort.I praktiken finns dock det mest polerade stödet för närvarande på macOS och Linux, med vissa begränsningar fortfarande kvar. iOS.
För många entusiaster av hemautomation, Exo + Home Assistant-kombinationen Det kan vara den saknade pusselbiten att ha en avancerad, alltid påslagen och helt lokal konversationsassistent, utan att betala för molntokens eller vara beroende av tredje part.
Kompatibla AI-modeller och begränsningar med proprietära modeller
Exo är kompatibel med ett stort antal populära AI-modellersärskilt de som är en del av det öppna ekosystemet och kan laddas ner och köras lokalt. Dessa inkluderar familjer som LLaMA, Mistral, LLaVA, Qwen och DeepSeek, bland andra.
I det specifika fallet av Llama 3 de MetaExo fungerar särskilt bra med dessa arkitekturer och möjliggör varianter av olika storlek beroende på klusterresurser. Detta gör det enklare för både enskilda experimentledare och småföretag att ha en modern språkmodell utan att ådra sig licenskostnader eller förlita sig på tredjeparts-API:er.
En annan intressant fördel är möjligheten att exponera ett API som är kompatibelt med ChatGPTMed vissa justeringar tillåter Exo att modeller som körs på ditt kluster accepterar förfrågningar i ett format som liknar API:et för OpenAIvilket avsevärt förenklar integrationen med applikationer som redan fungerar med den standarden.
Sin embargo, Det finns en tydlig gräns när vi pratar om proprietära modeller som GPT-4.GPT-4 är en sluten modell som finns på OpenAIs infrastruktur och inte är tillgänglig för nedladdning. Det betyder att den per definition inte kan köras på Exo eller någon annan lokal miljö utanför OpenAI.
Därför, när man arbetar med Exo Du måste hålla dig till modeller med öppen källkod eller de som är tillgängliga för lokal användningFör de flesta praktiska tillämpningar (chattrobotar, assistenter, textanalys, grundläggande och avancerad resonemang) finns det redan en tillräckligt kraftfull katalog med modeller med öppen källkod, särskilt med den senaste utvecklingen av modeller som Llama 3.x, Qwen eller DeepSeek.
De viktigaste fördelarna med att använda ett Exo-kluster
Exos största fördel är att det möjliggör en drastisk minskning av hårdvaruinvesteringar.Istället för att behöva köpa en arbetsstation med ett massivt grafikkort kan du återanvända datorer och enheter som du redan har hemma eller på kontoret. Många användare skulle kunna skapa ett kluster genom att helt enkelt utnyttja sina Mac-datorer, en äldre PC och annan underutnyttjad utrustning.
Detta tillvägagångssätt demokratiserar tillgången till avancerad AIDetta gör det möjligt för startups och små och medelstora företag med snäva budgetar att konkurrera i en liga som tidigare var reserverad för välresursstarka företag. Alla projekt motiverar inte att hyra dyra grafikkort i molnet, och det är där ett lokalt kluster är perfekt.
Dessutom, Exo är mycket flexibel när det gäller enhetstyperÄven om det mest mogna stödet för närvarande finns på macOS (med GPU:er) och Linux (med CPU:er), syftar projektet till att även integrera andra typer av hårdvara och taktiskt förbättra kompatibiliteten. Denna möjlighet att blanda olika maskinprofiler gör att du kan designa klustret efter dina specifika behov.
En annan viktig fördel är att, tack vare dess distribuerade arkitektur, Klustret kan skalas relativt enkeltOm du behöver mer prestanda någon gång, lägg helt enkelt till ytterligare en enhet som kör Exo. Varje ny nod kommer att upptäckas automatiskt och dess resurser läggs till i totalsumman, utan att du behöver omdesigna systemet från grunden.
Slutligen, dynamisk partitionering och topologimedvetenhet De garanterar att även enheter med blygsam hårdvara kan bidra med något användbart. Även om en äldre bärbar dator inte kan köra hela systemet på egen hand, kan den hantera en del av arbetsbelastningen eller utföra vissa beräkningar, vilket bidrar till den totala prestandan.
Nuvarande begränsningar och punkter att beakta
Allt är inte perfekt, och Exo förblir helt klart experimentell programvara.Det här innebär att fel, instabilt beteende eller frekventa förändringar i hur systemet konfigureras och körs fortfarande kan förekomma. Det är inte en lösning där man bara kan ställa in det och glömma det på nivån av en mogen kommersiell produkt.
På iOS-enheter som iPhone och iPad, Stödet är fortfarande begränsat Och det kräver ytterligare utveckling för att bli verkligt användbart för allmänheten. Även om projektet även planerar att utnyttja dessa enheter, finns för närvarande huvuddelen av den smidiga upplevelsen på datorer.
En annan viktig faktor är att Klustrets totala effektivitet kommer att bero starkt på hemmanätverket.Om du har ett överbelastat Wi-Fi-nätverk, föråldrade routrar eller långsamma anslutningar kan det bli en betydande flaskhals att distribuera en stor modell över flera noder. I seriösa miljöer är det nästan självklart att du kommer att använda högkvalitativa trådbundna anslutningar eller, när det gäller Mac-datorer, Thunderbolt 5 med RDMA.
Dessutom, även om summan av många blygsamma enheter kan nå imponerande minnessiffror, De kommer inte alltid att konkurrera i rå prestanda med ett kluster av avancerade GPU:er.Det finns en känslig balans mellan samordningskostnader, nätverkslatenser och effektiv datorkraft som måste beaktas.
Med allt, Exos värdeerbjudande är fortfarande mycket intressant: omvandla befintlig utrustning, till praktiskt taget utan hårdvarukostnad, till ett kluster som kan köra modeller som fram till nyligen verkade exklusiva för specialiserade datacenter.
Exo-installation, krav och exekveringsmetoder
För att få Exo igång på macOS Det är vanligt att använda verktyg som Homebrew för pakethantering, såväl som uv för Python-beroendehantering, macmon för att övervaka hårdvara på Apple Silicon-chips, Node.js för att bygga webbkontrollpanelen och Rust (för närvarande i nattlig version) för att kompilera vissa bindningar.
Det typiska arbetsflödet i macOS går igenom klona det officiella GitHub-arkivetInstallera beroendena och kör motsvarande kommando för att starta Exo. Detta startar både API:et och en lokalt tillgänglig webbpanel på adressen. http://localhost:52415Därifrån kan du se statusen för klustret, modellerna, instanserna etc.
Utöver utförandet av terminala, Exo erbjuder en inbyggd macOS-app Den här appen körs i bakgrunden. Den kräver macOS Tahoe 26.2 eller senare och distribueras som en .dmg-fil (till exempel under namnet EXO-latest.dmg). Under installationen kan den be om tillstånd att ändra vissa systeminställningar och lägga till en nätverksprofil, vilket är nödvändigt för att aktivera avancerade funktioner som RDMA.
I Linux-miljöer innebär installationen vanligtvis att systemets pakethanterare används. (som apt på Debian/Ubuntu) eller via Homebrew för Linux om du föredrar det. Tänk på att vissa verktyg, som till exempel macmon, är specifika för macOS och inte används på Linux.
För tillfället I Linux körs Exo på CPUFör närvarande finns det inget fullständigt stöd för GPU-acceleratorer. Utvecklingsteamet arbetar med att utöka kompatibiliteten med olika hårdvaruplattformar, så det rekommenderas att du kontrollerar problem och funktionsförfrågningar på GitHub om du vill veta om just din enhet kan komma att stödjas i framtiden.
Konfigurera RDMA över Thunderbolt på macOS
En av de mest slående nya funktionerna i de senaste versionerna av macOS Det är tillägget av RDMA-stöd, särskilt över Thunderbolt 5-portar. Den här funktionen är avgörande för att minimera latens mellan fysiskt anslutna Mac-datorer, vilket är mycket värdefullt vid distribution av en LLM-modell.
RDMA är tillgängligt från och med macOS 26.2 och Det fungerar på enheter med Thunderbolt 5 såsom M4 Pro Mac mini, M4 Max Mac Studio, M4 Max MacBook Pro eller M3 Ultra Mac Studio. I det specifika fallet med Mac Studio bör du dock undvika att använda Thunderbolt 5-porten som sitter bredvid Ethernet-porten, eftersom den har vissa begränsningar för RDMA.
För att aktivera RDMA, Det är nödvändigt att följa en process i återställningslägeDe grundläggande stegen innebär att stänga av Mac-datorn och slå på den genom att hålla ner strömknappen i cirka 10 sekunder tills menyn visas. boot, välj alternativet "Alternativ" för att öppna återställningsmiljön och öppna Terminal från Verktygsprogram-menyn.
Inom den återställningsterminalen, Kommandot som anges i Exo-dokumentationen körs för att aktivera RDMA på systemnivå. Efter att ha tryckt på Enter och startat om Mac-datorn aktiveras funktionen och Exo kan använda den för att upprätta länkar med mycket låg latens mellan olika Mac-datorer som är anslutna via Thunderbolt 5.
Därifrån, Exo hanterar den komplexa delenAnvändning av RDMA för att minimera dataöverföringsfördröjningar mellan noder. Denna förbättring av den interna kommunikationen är särskilt viktig när man arbetar med modeller som innehåller hundratals miljarder parametrar fragmenterade över flera maskiner.
Interagera med Exo via API och webbpanel
Utöver den grafiska instrumentpanelen på http://localhost:52415Exo erbjuder ett REST API som låter dig hantera praktiskt taget hela modellernas livscykel: välja var de ska placeras, skapa instanser, starta chattförfrågningar och frigöra resurser när de inte längre behövs.
Ett typiskt flöde kan börja med att fråga slutpunkten /instans/förhandsvisningarNär du skickar parametrarna för modellen du vill distribuera returnerar den här tjänsten alla giltiga placeringar för den modellen i ditt klusterDet skulle vara något i stil med en lista över möjliga "distributionsplaner" baserade på den nuvarande topologin och resurserna.
Baserat på responsen från den förhandsvisningen, Du väljer det upplägg som passar dig bäst. (till exempel den första i listan, som du kan välja med verktyg som jq från terminalen) och använda den för att göra en POST-förfrågan till slutpunkten /exempelNyttolasten för den här begäran måste överensstämma med de typer som definierats i CreateInstanceParams, inklusive parametrar som modell, hårdvarukonfiguration och tilldelade noder.
När instansen har skapats, Du kan interagera med den med hjälp av en slutpunkt som är kompatibel med OpenAI API, till exempel /v1/chatt/slutförandenStrukturen för JSON-förfrågan är i stort sett densamma som den som används med ChatGPT API, vilket gör det mycket enkelt att anpassa befintliga applikationer så att de pekar mot ditt Exo-kluster istället för molnet.
När du inte längre behöver en specifik modell, Du kan frigöra den genom att skicka en DELETE-begäran med instans-ID:tsom du kan hitta genom att fråga efter slutpunkter som /ange o /exempelÅ andra sidan är det bra att ha snabba signaler till hands, som till exempel /modeller, som listar alla lokalt tillgängliga modeller, eller själva kommandot /state, som beskriver den aktuella distributionsstatusen.
Projektstatus och utvecklingsgemenskap
Exo finns på GitHub under arkivet exo-explore/exo Den utvecklas öppet, med bidrag från både Exo Labs kärnteam och communityn. CONTRIBUTING.md-filen beskriver riktlinjerna för att bidra, skicka in pull requests, rapportera buggar och föreslå nya funktioner.
Med tanke på att Det är ett levande projekt i ständig utvecklingDet är vanligt att nya versioner, kompatibilitetsförbättringar med olika hårdvarumodeller och plattformar, och förändringar i hur vissa komponenter är konfigurerade, släpps. Därför är det lämpligt att regelbundet granska dokumentationen och öppna problem.
Angående kompatibilitet med acceleratorer, macOS har för närvarande mer avancerat stöd tack vare användningen av GPU och MLXÄven om det körs på Linux, körs det för närvarande på processorn. Teamet har uppmuntrat användare som är intresserade av att se stöd för nya typer av hårdvara att öppna eller stödja befintliga förfrågningar med reaktioner på GitHub, så att de kan prioritera vilka plattformar som är mest efterfrågade.
Ur ekonomisk synvinkel, Exo är helt gratis och med öppen källkod.Det finns inga betalda licenser förknippade med att använda programvaran, vilket passar mycket bra för personliga, utbildningsmässiga eller småföretagsprojekt som vill experimentera med AI på allvar utan en stor budget.
Exo etablerar sig som en nyckelaktör i demokratiseringen av avancerad AI.Detta gör det möjligt för vem som helst med flera enheter hemma eller på kontoret att skapa sitt eget språkmodellkluster. Även om det fortfarande har en bit kvar att gå, är möjligheterna det öppnar upp enorma för hemautomation, personliga assistenter, dataanalys och testmiljöer för moderna modeller.
Passionerad författare om bytesvärlden och tekniken i allmänhet. Jag älskar att dela med mig av min kunskap genom att skriva, och det är vad jag kommer att göra i den här bloggen, visa dig alla de mest intressanta sakerna om prylar, mjukvara, hårdvara, tekniska trender och mer. Mitt mål är att hjälpa dig att navigera i den digitala världen på ett enkelt och underhållande sätt.