Optimering av kostnader för användning av LLM

From Systems analysis Wiki
Jump to navigation Jump to search

Optimering av kostnader för användning av stora språkmodeller (LLM) — detta är ett komplex av strategier och tekniska metoder som syftar till att minska de beräkningsmässiga och finansiella resurser som krävs för träning, fine-tuning och i synnerhet inferens av stora språkmodeller. Relevansen av detta område beror på de enorma kostnaderna för både utveckling och drift av LLM.

Exempelvis beräknas träningen av modellen GPT-3 med 175 miljarder parametrar ha kostat cirka $4,6 miljoner på molnbaserad GPU-infrastruktur[1] och krävt 1,3 miljoner kWh elektricitet[2]. De största kostnaderna faller dock ofta på inferensstadiet. Enligt uppskattningar uppgick de dagliga driftskostnaderna för att upprätthålla tjänsten ChatGPT i början av 2023 till cirka $700 000 (ungefär $0,0036 per förfrågan), vilket vida överstiger de engångskostnader som träningen medförde[3].

Optimering vid träning och val av modell

Effektiv kostnadshantering börjar med grundläggande beslut som fattas innan inferensstadiet.

Skalningslagar: modellstorlek vs. datamängd

Ett av de viktigaste genombrotten i förståelsen av ekonomin kring träning av LLM var Chinchilla-skalningslagarna, presenterade av forskare vid DeepMind år 2022. De visade att modellen bör tränas på en betydligt större datamängd än vad som tidigare gjorts, för att beräkningsbudgeten ska utnyttjas optimalt[4].

Historiskt antogs att prestandan huvudsakligen ökade genom att utöka antalet parametrar. Chinchilla-studien visade dock att modellen Chinchilla (70 miljarder parametrar), tränad på 1,4 biljoner tokens, överträffar den betydligt större modellen GPT-3 (175 miljarder parametrar), som enbart tränades på ~300 miljarder tokens, i fråga om kvalitet[5]. Det rekommenderade förhållandet är ungefär 20 tokens träningsdata per modellparameter. Detta tillvägagångssätt gör det möjligt att skapa mer kompakta och effektiva modeller, vilket minskar kostnaderna för såväl träning som efterföljande inferens.

Fine-tuning och dess kostnadseffektivitet

Istället för den kostsamma träningen av en modell från grunden blir det allt vanligare att tillämpa fine-tuning på redan befintliga öppna modeller (till exempel LLaMA- och Falcon-familjerna). För att ytterligare minska kostnaderna används metoder för parametereffektiv fine-tuning (Parameter-Efficient Fine-Tuning, PEFT).

Den mest populära metoden, LoRA (Low-Rank Adaptation), gör det möjligt att anpassa en modell genom att enbart uppdatera ett litet antal extra parametrar. Forskning visar att LoRA kan minska kostnaderna för fine-tuning med tiotals procent (upp till ~68 % i vissa scenarier) med marginell påverkan på kvaliteten[6].

Sänkning av modellstorlek (Model Compression)

Ett av de viktigaste optimeringsområdena är att minska modellens fysiska storlek med bibehållen prestanda.

Kunskapsdestillation (Knowledge Distillation)

Kunskapsdestillation är en process där en stor och kraftfull lärarmodell används för att träna en mer kompakt elevmodell. Eleven lär sig att imitera lärarens svar på ett brett datamaterial och tillägnar sig därigenom lärarens "kunskaper". Metoden gör det möjligt att uppnå jämförbar kvalitet på specifika uppgifter till betydligt lägre kostnad. Exempelvis destillerades modellen DeepSeek-R1 framgångsrikt från 671 miljarder ned till 70 miljarder och till och med 1,5 miljarder parametrar med en acceptabel kvalitetsförlust för många tillämpningar[7].

Kvantering (Quantization)

Kvantering är en process som innebär att den numeriska precisionen för representationen av modellens vikter minskas. Istället för standardmässiga 32-bitars eller 16-bitars flyttal används 8-bitars eller till och med 4-bitars heltal.

  • 8-bitars kvantering minskar modellstorleken med ungefär 50 % vid en precisionsminskning på cirka 1 %.
  • 4-bitars kvantering minskar modellstorleken med 75 % och bibehåller samtidigt en konkurrenskraftig kvalitet på slutsatserna[7].

Vid tillgängligt hårdvarustöd (till exempel i moderna GPU:er från Nvidia) och programvarubibliotek (till exempel TensorRT) kan kvantering påskynda inferensen 2–4 gånger[8].

Optimering vid inferensstadiet

När modellen är tränad och driftsatt svarar den dagliga användningen för den dominerande delen av kostnaderna.

Batchning av förfrågningar (Batching)

Batchning innebär att flera användarförfrågningar kombineras i ett enda "batch" för samtidig bearbetning på GPU. Detta ökar avsevärt hårdvaruutnyttjandet och det totala genomflödet. För LLM, där generering av svar sker ett token i taget, är kontinuerlig batchning (continuous/in-flight batching) den mest effektiva metoden. Denna metod gör det möjligt att dynamiskt lägga till nya förfrågningar i batchen allt eftersom andra förfrågningar slutförs, vilket eliminerar stillestånd och maximerar GPU-belastningen[9].

Cachning av nycklar och värden (KV Cache)

I transformer-modeller krävs information om alla tidigare tokens för att generera varje nytt token. För att undvika exponentiell ökning av beräkningarna används cachning av nycklar och värden (KV Cache). Systemet sparar mellanliggande beräkningsresultat från uppmärksamhetsmekanismen för det redan bearbetade kontextet och återanvänder dem, vilket gör generering av långa sekvenser och flerstegsdialoger betydligt mer effektiv[7].

Optimering av uppmärksamhetsmekanismen

Lagring av KV-cachen kräver ett betydande minnesutrymme. För att minska detta har optimerade varianter av uppmärksamhetsmekanismen utvecklats:

  • Multi-Query Attention (MQA): Alla uppmärksamhetshuvuden använder en gemensam uppsättning nycklar och värden.
  • Grouped-Query Attention (GQA): En mellanliggande kompromiss där uppmärksamhetshuvudena delas in i grupper, och varje grupp använder en gemensam uppsättning nycklar och värden.

Företaget Meta tillämpade framgångsrikt GQA i modellerna LLaMA 2, vilket möjliggjorde en avsevärd förbättring av inferenseffektiviteten vid arbete med långa kontexter utan märkbar kvalitetsförsämring[10].

Optimering av infrastruktur och systemarkitektur

Hybridsystem och Retrieval-Augmented Generation (RAG)

Den största och kraftfullaste modellen behövs inte alltid för en given uppgift. Det hybrida eller kaskaderade tillvägagångssättet innebär att en liten och billig modell används för enkla förfrågningar, och att förfrågan endast vid misslyckande eller för komplexa uppgifter vidarebefordras till en stor och dyr modell.

Ett specifikt och mycket effektivt exempel på ett sådant tillvägagångssätt är Retrieval-Augmented Generation (RAG). I denna arkitektur kan LLM vara relativt kompakt, eftersom den för att svara använder aktuell information hämtad från en extern kunskapsbas (till exempel från företagsdokumentation eller ett söksystem). Detta minskar inte bara kraven på modellstorlek utan löser även problemet med hallucinationer. Driftsättning av en specialiserad 70-miljardersmodell med RAG på lokal infrastruktur kan vara 2–4 gånger billigare än att använda GPT-4 API i molnet[11].

Referenser

  1. «OpenAI's GPT-3 Language Model: A Technical Overview». Lambda Labs. [1]
  2. «The Energy Footprint of Humans and Large Language Models». Communications of the ACM. [2]
  3. «The Inference Cost Of Search Disruption - Large Language Model Cost Analysis». SemiAnalysis. [3]
  4. Hoffmann, J., et al. (2022). «Training Compute-Optimal Large Language Models». arXiv:2203.15556.
  5. Chow, T. (2024). «Three Kuhnian Revolutions in ML Training». Substack. [4]
  6. «A Study to Evaluate the Impact of LoRA Fine-tuning on the Performance of Non-functional Requirements Classification». arXiv:2503.07927. (2025).
  7. 7.0 7.1 7.2 «LLM Inference Optimization: How to Speed Up, Cut Costs, and Scale AI Models». deepsense.ai. [5]
  8. Jin, H., et al. (2024). «GPTQ: Accurate Post-Training Quantization for Generative Pre-trained Transformers».
  9. «Continuous vs dynamic batching for AI inference». Baseten Blog. [6]
  10. «What is grouped query attention?». IBM. [7]
  11. «Inferencing on-premises with Dell Technologies». Dell Technologies Analyst Paper. [8]