Stora språkmodeller (LLM) är kraftfulla verktyg som kan generera naturliga språktexter för olika uppgifter och domäner. En av de mest avancerade LLM:erna är LLaMA (Large Language Model Meta AI), en modell med 65 miljarder parametrar utvecklad av Meta AI, en forskningsavdelning inom Facebook
Tillkör LLaMA-modellen hemma, behöver du en datorbyggd med en kraftfull GPU som kan hantera den stora mängden data och beräkningar som krävs för slutledning. I den här artikeln kommer vi att diskutera några av hårdvarukraven för attkör LLaMA lokalt.
Det finns olika sätt att köra LLaMA-modeller påkonsumenthårdvara. Det vanligaste är att använda en enda NVIDIA GeForceRTX 3090 GPU. Denna GPU har 24 GB minne, vilket räcker för att köra en LLaMA-modell. Du kan till exempel använda RTX 3090,ExLlama modelllastare, och4-bitars kvantifieradLLaMA 30B modellmed runt30 till 40 tokensper sekund, vilket är enormt.
Men om du vill köra en större 65B-modell måste du använda en dubbel GPU-inställning. Detta gör att du kan passa modellvikterna inuti VRAM. Kombinationer som 2x RTX 3090 eller RTX 3090 och RTX 4090 är populära.
Du kan också köra LLaMA-modellen påCPU. Detta alternativ kräver GGML-versionen (LLaMA, Vicuna, Alpaca) av modellen och en programvara som heter llama.cpp. En anständig CPU för att köra LLaMA är Core i7 12900K och Ryzen 9 5900X. Kontrollera CPU-sektionen för mer information om detta ämne.
För att inte titta på några av dehårdvarukravdu måste täcka för att använda LLaMA-modellen på en stationär PC:
GPU för att köra LLaMA
GPU:n är den viktigaste delen av datorhårdvaran när man kör LLaMA på en konsumentklassad maskin eftersom den är ansvarig för majoriteten av bearbetningen som krävs för att köra modellen. GPU:ns prestanda kommer att ha en direkt inverkan på slutledningshastigheten.
Olika varianter och implementeringar av modellen kan kräva mindre kraftfull hårdvara. GPU:n kommer dock fortfarande att vara den viktigaste delen av systemet.
GPU-krav för 4-bitars kvantiserade LLaMA-modeller
LLAMA modell | Minsta VRAM-krav | Rekommenderade GPU-exempel |
---|---|---|
LLAMA-7B | 6 GB | RTX 3060, GTX 1660, 2060, AMD 5700 XT, RTX 3050 |
FLAME-13B | 10 GB | AMD 6900 XT, RTX 2060 12GB, 3060 12GB, 3080, A2000 |
FLAME-30B | 20 GB | RTX 3080 20GB, A4500, A5000, 3090, 4090, 6000, Tesla V100, Tesla P40 |
LLAMA-65B | 40 GB | A100 40GB, 2x3090, 2x4090, A40, RTX A6000, 8000 |
Exempel på inferenshastighet med ExLlama, RTX 4090 och Intel i9-12900K CPU
Modell | Storlek | Sekv. len. | VRAM används | Fart |
---|---|---|---|---|
Lama | 7b | 2 048 t | 5 GB | 138 t/s |
Lama | 13b | 2 048 t | 9 GB | 85 t/s |
Lama | 33b | 2 048 t | 20 GB | 35 t/s |
LLAMA-7B
För att köra LLaMA-7B effektivt rekommenderas det att ha en GPU med minst 6 GB VRAM. Ett lämpligt GPU-exempel för denna modell är RTX 3060, som erbjuder en 8GB VRAM-version. Andra grafikprocessorer som GTX 1660, 2060, AMD 5700 XT eller RTX 3050, som också har 6GB VRAM, kan fungera som bra alternativ för att stödja LLaMA-7B.
FLAME-13B
För optimal prestanda med LLaMA-13B föreslås en GPU med minst 10 GB VRAM. Exempel på grafikprocessorer som uppfyller detta krav inkluderar AMD 6900 XT, RTX 2060 12GB, 3060 12GB, 3080 eller A2000. Dessa GPU:er ger den nödvändiga VRAM-kapaciteten för att effektivt hantera beräkningskraven från LLaMA-13B.
FLAME-30B
För att säkerställa smidig drift av LLaMA-30B, är det tillrådligt att använda en GPU med minst 20 GB VRAM. RTX 3080 20GB, A4500, A5000, 3090, 4090, 6000 eller Tesla V100 är exempel på grafikprocessorer som erbjuder den nödvändiga VRAM-kapaciteten. Dessa GPU:er möjliggör effektiv bearbetning och minneshantering för LLaMA-30B.
LLAMA-65B
LLaMA-65B presterar optimalt när den paras ihop med en GPU som har minst 40 GB VRAM. Lämpliga exempel på GPU:er för den här modellen inkluderar A100 40GB, 2x3090, 2x4090, A40, RTX A6000 eller 8000. Dessa GPU:er ger riklig VRAM-kapacitet för att hantera de intensiva beräkningsuppgifter som är förknippade med LLaMA-65B.
Varje LLaMA-modell har specifika VRAM-krav, och de föreslagna GPU:erna väljs utifrån deras förmåga att möta eller överträffa dessa krav, vilket säkerställer smidig och effektiv prestanda för motsvarande LLaMA-modell.
CPU för LLaMA
Utöver GPU:n behöver du även en CPU som kan stödja GPU:n och hantera andra uppgifter som dataladdning och förbearbetning. CPU-kravet för den GPQT (GPU)-baserade modellen är lägre än den som är optimerad för CPU.
Bra processorer för LLaMA är Intel Core i9-10900K, i7-12700K eller Ryzen 9 5900x. Men för bättre prestanda kanske du vill använda en kraftfullare CPU, till exempel en AMD Ryzen Threadripper 3990X med 64 kärnor och 128 trådar. När det kommer till att välja mellan en dyr server-CPU och en avancerad spel-CPU, tar den senare ledningen.
Vi måste notera att vi i den här artikeln diskuterar en konstruktion som är inriktad på GPU:er, men det finns LLaMa-modelleroptimerare för CPU. Till exempel är GGML en lösning som tar itu med de begränsningar som GPU-minnet innebär när man arbetar med stora modeller. Om du föredrar att använda en CPU, rekommenderas att köraGGMLformateramodellfiler.
Än kan du än använda en programvara som hetercall.cpp(gränssnitt till LLaMA-modellen) för att kunna använda din CPU. En nyligenuppdatera till llama.cpphar introducerat en ny förbättring som gör det möjligt för användare att fördela modellens arbetsbelastning mellan CPU och GPU. Detta underlättar inte bara laddningen av betydligt större modeller utan förstärker också token/s-hastigheten.
Tänk på att snabb bearbetning med llama.cpp är starkt beroende av CPU-prestanda. Specifikt skalas den med antalet CPU-kärnor och -trådar som används. Detta indikerar att snabb bearbetning är en CPU-bunden arbetsbelastning – hastigheten begränsas av rå CPU-beräkningskapacitet snarare än minnesbandbredd eller latens. Sammanfattningsvis kan snabb bearbetningsprestanda enkelt förbättras genom att använda snabbare processorer med fler kärnor/trådar.
Detta är ett exempel på att köra llama.cpp med Ryzen 7 3700X och 128 GB RAM.
GGML modell | Minne per token | Laddningstid | Provtid | Förutsäg tid | Total tid |
---|---|---|---|---|---|
LLaMA-7B 4-bitars | 14434244 byte | 1270,15 ms | 325,76 ms | 15147,15 ms / 117,42 ms per token | 17077,88 ms |
LLaMA-13B 4-bitars | 22439492 byte | 2946,00 ms | 86,11 ms | 7358,48 ms / 216,43 ms per token | 11019,28 ms |
LLaMA-30B 4-bitars | 43387780 byte | 6666,53 ms | 332,71 ms | 68779,27 ms / 533,17 ms per token | 77333,97 ms |
LLaMA-65B 4-bitars | 70897348 byte | 14010,35 ms | 335,09 ms | 140527,48 ms / 1089,36 ms per token | 157951,48 ms |
Minne (RAM) för LLaMA-dator
Förutom GPU och CPU behöver du också tillräckligt med RAM (Random Access Memory) och lagringsutrymme för att lagra modellparametrar och data. Minsta RAM-krav för 4-bitars LLaMA-30B är32 GB, som kan hålla hela modellen i minnet utan att byta till disk. Men för större datamängder eller längre texter kanske du vill använda mer RAM, till exempel 64 GB eller 128 GB.
I situationer där du använder CPU för slutledning är bandbredden mellan CPU och minne en kritisk faktor. Jag vill betona dess betydelse. När en enda token genereras måste hela modellen läsas från minnet en gång. Anta att du har Core i9-10900X (4-kanalsstöd) och DDR4-3600-minne, detta innebär en genomströmning på 115 GB/s och din modellstorlek är 13 GB. I så fall kommer slutledningshastigheten att ligga runt9 tokens per sekund, oavsett hur snabb din CPU är eller hur många parallella kärnor den har.
Mängden RAM beror på vilken typ av GGML-kvantisering och vilken modell (LLaMA, Alpaca, Wizard, Vicuna etc.) du använder.
Det här är minneskraven (RAM) för LLaMA-modellen som används på CPU:n:
GGML modell | Originalstorlek | Kvantiserad storlek (4-bitars) | Kvantiserad storlek (5-bitars) | Kvantiserad storlek (8-bitars) |
---|---|---|---|---|
7b | 13 GB | 3,9 – 7,5 GB | 7,5 – 8,5 GB | 8,5 – 10,0 GB |
13b | 24 GB | 7,8 – 11 GB | 11,5 – 13,5 GB | 13,5 – 17,5 GB |
30B | 60 GB | 19,5 – 23,0 GB | 23,5 – 27,5 GB | 28,5 – 38,5 GB |
65b | 120 GB | 38,5 – 47,0 GB | 47,0 – 52,0 GB | 71,0 – 80,0 GB |
Inferenshastighet för 13B-modell med 4-bitars kvantisering, baserat på minneshastighet (RAM) när den körs på CPU:
RAM-hastighet | CPU | CPU-kanaler | Bandbredd | *Slutledning |
---|---|---|---|---|
DDR4-3600 | Ryzen 5 3600 | 2 | 56 GB/s | ~ 7 tokens/s |
DDR4-3200 | Ryzen 5 5600X | 2 | 51 GB/s | ~ 6,3 tokens/s |
DDR5-5600 | Core i9-13900K | 2 | 89,6 GB/s | ~ 11,2 tokens/s |
DDR4-2666 | Core i5-10400f | 2 | 41,6 GB/s | ~ 5,1 tokens/s |
*Hastigheten beror på OS och systembelastning.
Lagring
Minsta lagringskrav för LLaMA är1 TB NVMe SSD, som kan lagra modellfiler och datafiler med snabba läs- och skrivhastigheter. Men för mer data eller säkerhetskopieringsändamål kanske du vill använda mer lagringsutrymme, till exempel 2 TB eller 4 TB SSD.
Välj höghastighetslagring. Välj en PCIe 4.0 NVMe SSD med utmärkta sekventiella hastigheter för att underlätta snabb dataöverföring mellan lagring och system-RAM.
Hur påverkar modellkvantisering valet av GPU?
Kvantiserade LLM:er (språkmodeller) använder färre bitar för att lagra och bearbeta modellens vikter och aktiveringar. Detta gör dem snabbare och effektivare för GPU-distribution.
4-bitars kvantiserade LLM:er använder endast 4 bitar per vikt eller aktivering. Detta innebär att de tar upp mycket mindre minne och beräkningstid än modeller med full precision. De kan köras smidigt på grafikprocessorer med låg VRAM-kapacitet.
8-bitars kvantiserade LLM:er använder 8 bitar per vikt eller aktivering. Detta minskar fortfarande minnes- och beräkningskostnaderna jämfört med fullprecisionsmodeller, men inte så mycket som 4-bitars kvantisering. De behöver mer GPU-minne och beräkningskraft för att fungera bra. De är mer lämpliga för grafikprocessorer med hög VRAM-kapacitet och beräkningskapacitet.
Sammanfattningsvis är 4-bitars kvantiserade LLM mer effektiva och kan köras på GPU:er med låg VRAM-kapacitet. 8-bitars kvantiserade LLM:er är något mindre effektiva och behöver GPU:er med hög VRAM-kapacitet och beräkningskapacitet.
LLaMA Precision | Krav på GPU-minne | Beräkningskrav | Lämplig GPU |
---|---|---|---|
Native (32-bitars) | Högre krav | Högre beräkningskrav | GPU:er med större VRAM-kapacitet och hög beräkningskapacitet |
16-bitars kvantiserad | Måttliga krav | Måttliga beräkningskrav | GPU:er med måttlig VRAM-kapacitet och goda beräkningsmöjligheter |
8-bitars kvantiserad | Relativt högre krav | Något högre beräkningskrav | GPU:er med större VRAM-kapacitet och högre beräkningskapacitet |
4-bitars kvantiserad | Lägre krav | Lägre beräkningskrav | GPU:er med begränsad VRAM-kapacitet |
Som du kan se har precisionen hos en LLaMA en direkt inverkan på dess GPU-minneskrav och beräkningskrav. Inbyggda (32-bitars) LLM:er kräver mest GPU-minne och beräkningskraft, medan 4-bitars kvantiserade LLM:er kräver minst.
Lämplig GPU för en LLaMA kommer att bero på dess precision och de specifika uppgifter som du vill använda den för. Om du behöver köra en stor LLaMA på en mängd olika uppgifter, behöver du en GPU med stor VRAM-kapacitet och hög beräkningskapacitet. Om du bara behöver köra en liten LLaMA på ett fåtal specifika uppgifter kan du komma undan med att använda en GPU med mindre VRAM-kapacitet och lägre beräkningskapacitet.
Det är viktigt att notera att modellens noggrannhet också kommer att minska när kvantiseringsnivån minskar. Detta beror på att den minskade precisionen kan leda till fel i modellens förutsägelser.
Den bästa kvantiseringsnivån för dig beror på dina specifika behov och krav. Om du behöver en modell som är liten och effektiv, kanske du vill överväga att använda en 4-bitars eller 8-bitars kvantiserad modell. Men om du behöver en modell som är mycket exakt, kanske du vill använda en 16-bitars modell.
Ger en dubbel GPU-inställning bättre prestanda än en enda när den används med LLaMA?
Att lägga till en andra GPU kanske inte påskyndar textgenereringen så mycket som förväntat. En flaskhals verkar blockera den enkla lösningen att lägga till mer datorkraft. Vissa tester har visat överraskande resultat där lägre GPU:er var snabbare än avancerade GPU:er när det gällde att generera tokens/sekund. Anledningen till detta är oklar, och textgenereringsprogram kan behöva bättre optimering för att kunna använda dubbla GPU-inställningar bra.
Dubbla GPU-inställningar har mer VRAM totalt, men varje GPU har fortfarande sin egen VRAM-gräns. 30B LLaMA behöver cirka 20 GB VRAM, så två RTX 3090 GPU:er (var och en med 24 GB VRAM) har fortfarande bara 24 GB VRAM tillgängligt. Modellen bör passa i VRAM för en GPU för att fungera bra.
Men om modellen är för stor (65B) för att passa inom VRAM för en enda GPU och behöver använda system-RAM, kan användning av flera GPU verkligen påskynda processen. I sådana fall kan varje GPU hantera en del av modellen, och beräkningsbelastningen fördelas mellan dem. Denna parallellisering kan leda till hastighetsförbättringar för stora modeller som överskrider VRAM-kapaciteten för en enda GPU.
Därför används ofta flera GPU:er när man hanterar stora modeller som har höga VRAM-krav.
Vad är snabbare för inferenshastighet för 65B Llama-modellen – Dual RTX 3090/4090 eller Mac M2 Pro/Max/Ultra?
Att använda Apple M1 eller M2 Pro/Max/Ultra bärbara datorer är ett rekommenderat alternativ för att köra LLaMA AI på en bärbar dator. Dessa processorer använder Apples Unified Memory Architecture (UMA), som erbjuder snabb och låg latens minnesåtkomst. Detta resulterar i förbättrad utmatningshastighet. M1/M2 Pro stöder upp till 200 GB/s enhetlig minnesbandbredd, medan M1/M2 Max stöder upp till 400 GB/s. Till exempel kan MacBook M2 Max som använder Llama.cpp köra 7B-modell med 38 t/s, 13B-modell med 22 t/s, och65B-modell med 5 t/s.
Men när det gäller slutledningshastighet är dubbel installation av RTX 3090/4090 GPU: er snabbare jämfört med Mac M2 Pro/Max/Ultra. Två RTX 4090kan köra 65b-modeller med en hastighet av 20 tokens per sekund, medan två prisvärda secondhand RTX 3090 uppnår 15 tokens per sekund med Exllama. Dessutom utvärderar Mac prompter långsammare, vilket gör den dubbla GPU-konfigurationen mer tilltalande.
Tips och tips när du väljer PC-hårdvara för LLaMA
Bygg runt GPU:n
Skapa en plattform som inkluderar moderkortet, CPU och RAM. GPU:n hanterar träning och slutledning, medan CPU, RAM och lagring hanterar dataladdning. Välj ett moderkort med stöd för PCIe 4.0 (eller 5.0), flera NVMe-enhetsplatser, x16 GPU-platser och gott om minnes-DIMM. CPU: er med hög enkeltrådig hastighet, som Ryzen 5000 eller Intels 12:e/13:e gen, rekommenderas.
Modellval och VRAM
För optimal prestanda när det gäller svarskvalitet rekommenderas det att köra 8-bitars 13B-modellen eller 4-bitars 30B-modellen på en GPU med minst 20GB VRAM. Båda modellerna ger liknande kvalitetssvar, och VRAM-tillgänglighet bör vara den avgörande faktorn. Investera i en Nvidia GPU med tensorkärnor för att förbättra prestandan. Överväg alternativ som RTX 30-serien eller RTX 40-serien, som RTX 3090 24GB, RTX 4090 24GB för optimal prestanda.
Hastighetsjämförelse
13B-modellen går i allmänhet snabbare än 30B-modellen när det gäller tokens som genereras per sekund. Även om den exakta hastighetsskillnaden kan variera, tenderar 13B-modellen att erbjuda en märkbar förbättring av generationshastigheten jämfört med 30B-modellen.
Krav på RAM
Sikta på minst 1,5 gånger VRAM-kapaciteten eller dubbla VRAM för optimal prestanda. Valet av moderkort och CPU blir avgörande när du arbetar med 128 GB eller mer RAM.
PCIe 4.0 NVMe SSD
Vikten av en PCIe 4.0 NVMe SSD med hög sekventiell hastighet är främst för den initiala modellladdningen i VRAM. När modellen väl har laddats är SSD:ns inverkan på generationshastigheten (tokens/sekund) minimal.
Tillräckligt med vanligt RAM
Att ha tillräckligt med vanligt RAM-minne, helst dubbelt så mycket VRAM-kapacitet, är viktigt för den initiala modellbelastningen. När modellen väl är laddad är dess inverkan på den faktiska generationshastigheten begränsad. Att säkerställa tillräckligt med regelbundet RAM under den första laddningen är avgörande för en smidig upplevelse.
CPU enkeltrådig hastighet
CPU:ns entrådiga hastighet är viktig främst för den initiala modellbelastningen snarare än att köra modellen under generering. CPU:ns roll är mer framträdande i uppgifter som dataförbehandling, modellladdning och andra icke-GPU-beroende operationer.
Enskild GPU-prestanda
En enda GPU erbjuder vanligtvis snabbare prestanda än en multi-GPU-inställning på grund av de interna bandbreddsfördelarna i själva GPU:n.
Strömförsörjning och fodral
Investera i en högkvalitativ strömförsörjning med tillräcklig kapacitet för att driva alla komponenter. Välj ett rymligt fodral med bra luftflöde för optimal värme.
DDR5 och framtida plattformar
Medan DDR5 och framtida plattformar som Zen 4 eller AM5 erbjuder fördelar, kan stabilitet och kompatibilitet variera. Överväg att investera i ett high-end moderkort med bra PCIe-kortplatslayout och minnesstöd för framtida uppgraderingsmöjligheter.
Kom ihåg att även om dessa tips och råd ger insikter baserade på erfarenhet, kan individuella systemkonfigurationer och prestanda variera. Det är alltid tillrådligt att experimentera och jämföra olika inställningar för att hitta den mest lämpliga lösningen för dina specifika behov.