Vi er ved et spændende omdrejningspunkt i den udbredte anvendelse af machine learning (ML), og vi tror på, at de fleste kundeoplevelser og applikationer vil blive genopfundet med generativ AI. Generativ kunstig intelligens kan skabe nyt indhold og nye ideer, herunder samtaler, historier, billeder, videoer og musik. Som de fleste AI er generativ AI drevet af ML-modeller - meget store modeller, der trænes på enorme mængder data og almindeligvis omtales som fundamentmodeller (FM'er). FM'er er baseret på transformere. Transformere er langsomme og hukommelseskrævende til at generere lange tekstsekvenser på grund af modellernes store størrelse. Store sprogmodeller (LLM'er), der bruges til at generere tekstsekvenser, har brug for enorme mængder computerkraft og har svært ved at få adgang til den tilgængelige hukommelse med høj båndbredde (HBM) og computerkapacitet. Dette skyldes, at en stor del af den tilgængelige hukommelsesbåndbredde forbruges ved at indlæse modellens parametre og af autoregressiv afkodningsproces.Som et resultat, selv med massive mængder computerkraft, er LLM'er begrænset af hukommelses-I/O og beregningsgrænser, hvilket forhindrer dem i at udnytte de tilgængelige hardwareressourcer fuldt ud.
Overordnet set har generativ slutning af LLM'er tre hovedudfordringer (ifølge Pope et al. 2022):
- Et stort hukommelsesfodaftryk på grund af massive modelparametre og forbigående tilstand under afkodning. Parametrene overstiger ofte hukommelsen på en enkelt acceleratorchip. Opmærksomhedsnøgleværdi-caches kræver også betydelig hukommelse.
- Lav paralleliserbarhed øger latenstiden, især med det store hukommelsesfodaftryk, hvilket kræver betydelige dataoverførsler for at indlæse parametre og caches i computerkerner hvert trin. Dette resulterer i høje behov for samlet hukommelsesbåndbredde for at nå latenstidsmålene.
- Kvadratisk skalering af opmærksomhedsmekanisme-beregning i forhold til sekvenslængde forstærker latens- og beregningsmæssige udfordringer.
Batching er en af teknikkerne til at løse disse udfordringer. Batching refererer til processen med at sende flere inputsekvenser sammen til en LLM og derved optimere ydeevnen af LLM-inferensen. Denne tilgang hjælper med at forbedre gennemløbet, fordi modelparametre ikke behøver at blive indlæst for hver inputsekvens. Parametrene kan indlæses én gang og bruges til at behandle flere inputsekvenser. Batching udnytter effektivt acceleratorens HBM-båndbredde, hvilket resulterer i højere beregningsudnyttelse, forbedret gennemløb og omkostningseffektiv inferens.
Dette indlæg undersøger teknikker til at maksimere gennemløbet ved hjælp af batching-teknikker til paralleliseret generativ inferens i LLM'er. Vi diskuterer forskellige batchingmetoder for at reducere hukommelsesfodaftryk, øge paralleliserbarheden og mindske den kvadratiske skalering af opmærksomhed for at øge gennemløbet. Målet er fuldt ud at bruge hardware som HBM og acceleratorer til at overvinde flaskehalse i hukommelse, I/O og beregning. Så fremhæver vi hvordan Amazon SageMaker store modelinferens (LMI) deep learning containere (DLC'er) kan hjælpe med disse teknikker. Til sidst præsenterer vi en sammenlignende analyse af gennemløbsforbedringer med hver batchingstrategi på SageMaker ved hjælp af LMI DLC'er at forbedre gennemløbet for modeller som f.eks Lama v2. Du kan finde en medfølgende eksempelnotesbog i SageMaker eksempler på GitHub-depot.
Inferencing for store sprogmodeller (LLM'er)
Autoregressiv afkodning er den proces, hvorved sprogmodeller som GPT genererer tekstoutput et token ad gangen. Det involverer rekursivt at føre genererede tokens tilbage i modellen som en del af inputsekvensen for at forudsige efterfølgende tokens. Trinene er som følger:
- Modellen modtager de tidligere tokens i sekvensen som input. For det første trin er dette startprompten fra brugeren.
- Modellen forudsiger en fordeling over ordforrådet for det næste token.
- Tokenet med den højest forudsagte sandsynlighed vælges og føjes til outputsekvensen. Trin 2 og 3 er en del af afkodning Når dette skrives, er de mest fremtrædende afkodningsmetoder grådig søgning, strålesøgning, kontrastiv søgning og sampling.
- Dette nye token føjes til inputsekvensen for det næste afkodningstrin.
- Modellen itererer gennem disse trin og genererer en ny token pr. trin, indtil en ende-af-sekvens-markør er produceret, eller den ønskede outputlængde er nået.
Modelbetjening til LLM'er
Modelservering for LLM'er refererer til processen med at modtage inputanmodninger til tekstgenerering, foretage slutninger og returnere resultaterne til de anmodende applikationer. Følgende er nøglebegreber involveret i modelbetjening:
- Klienter genererer flere slutningsanmodninger, hvor hver anmodning består af en sekvens af tokens eller inputprompter
- Anmodninger modtages af inferensserveren (f.eks. DJLServering, TorchServe, Triton eller Knusende ansigt TGI)
- Inferensserveren batcher inferensanmodningerne og planlægger batchen til udførelsesmotoren, der inkluderer modelpartitioneringsbiblioteker (som f.eks. Transformers-NeuronX, DeepSpeed, Accelerate eller Hurtigere Transformer) for at køre det fremadrettede gennemløb (forudsige output token-sekvensen) på den generative sprogmodel
- Udførelsesmotoren genererer svartokens og sender svaret tilbage til inferensserveren
- Inferensserveren svarer klienterne med de genererede resultater
Der er udfordringer med planlægning på anmodningsniveau, når inferensserveren interagerer med udførelsesmotoren på anmodningsniveauet, såsom hver anmodning ved hjælp af en Python-proces, som kræver en separat kopi af modellen, som er hukommelsesbegrænsende. Som vist i den følgende figur kan du f.eks. kun indlæse en enkelt kopi af en model på 80 GB på en maskinindlæringsinstans (ML) med 96 GB samlet acceleratorenhedshukommelse. Du bliver nødt til at indlæse en ekstra kopi af hele modellen, hvis du vil betjene yderligere anmodninger samtidigt. Dette er ikke hukommelse og omkostningseffektivt.
Nu hvor vi forstår udfordringerne ved planlægning på anmodningsniveau, lad os se på forskellige batchteknikker, der kan hjælpe med at optimere gennemløbet.
Batching teknikker
I dette afsnit forklarer vi forskellige batching-teknikker og viser, hvordan man implementerer dem ved hjælp af en SageMaker LMI container.
Der er to hovedtyper af batching til slutningsanmodninger:
- Klientside (statisk) – Typisk, når en klient sender en anmodning til en server, vil serveren behandle hver anmodning sekventielt som standard, hvilket ikke er optimalt for gennemløb. For at optimere gennemløbet batcher klienten slutningsanmodningerne i den enkelte nyttelast, og serveren implementerer forbehandlingslogikken for at opdele partiet i flere anmodninger og kører slutningen for hver anmodning separat. I denne mulighed skal klienten ændre koden for batching, og løsningen er tæt koblet til batchstørrelsen.
- Server-side (dynamisk) – En anden teknik til batchning er at bruge inferensen til at hjælpe med at opnå batchningen på serversiden. Efterhånden som uafhængige slutningsanmodninger ankommer til serveren, kan slutningsserveren dynamisk gruppere dem i større batches på serversiden. Inferensserveren kan styre batchningen for at opfylde et specificeret latenstidsmål, maksimere gennemløbet, mens den forbliver inden for det ønskede latenstidsområde. Inferensserveren håndterer dette automatisk, så ingen kodeændringer på klientsiden er nødvendige. Server-side batching inkluderer forskellige teknikker til at optimere gennemløbet yderligere for generative sprogmodeller baseret på autoregressiv afkodning. Disse batchteknikker omfatter dynamisk batching, kontinuerlig batching og PagedAttention (vLLM) batching.
Dynamisk batching
Dynamisk batching refererer til at kombinere inputanmodningerne og sende dem sammen som en batch til slutning. Dynamisk batching er en generisk server-side batching teknik, der fungerer til alle opgaver, inklusive computer vision (CV), naturlig sprogbehandling (NLP) og mere.
I en LMI-container kan du konfigurere batching af anmodninger baseret på følgende indstillinger i serveringsejendomme:
- batch_size – Refererer til partiets størrelse
- max_batch_delay – Henviser til den maksimale forsinkelse for batchaggregation
Hvis en af disse tærskler er opfyldt (opfylder den maksimale batchstørrelse eller afslutning af venteperioden), så forberedes en ny batch og skubbes til modellen til konklusion. Det følgende diagram viser den dynamiske batching af anmodninger med forskellige inputsekvenslængder, der behandles sammen af modellen.
Du kan implementere dynamisk batching på SageMaker ved at konfigurere LMI-beholderens serveringsejendomme som følger:
Selvom dynamisk batching kan give op til en fire gange stigning i gennemløbet sammenlignet med ingen batching, observerer vi, at GPU-udnyttelsen ikke er optimal i dette tilfælde, fordi systemet ikke kan acceptere endnu en batch, før alle anmodninger er afsluttet.
Kontinuerlig batching
Kontinuerlig batching er en optimering, der er specifik for tekstgenerering. Det forbedrer gennemløbet og ofrer ikke tiden til den første byte-latens. Kontinuerlig batching (også kendt som iterativ or rullende batching) løser udfordringen med inaktiv GPU-tid og bygger videre på den dynamiske batching-tilgang ved løbende at skubbe nyere anmodninger i batchen. Følgende diagram viser kontinuerlig batching af anmodninger. Når anmodning 2 og 3 er færdigbehandlet, er endnu et sæt anmodninger planlagt.
Det følgende interaktive diagram dykker dybere ned i, hvordan kontinuerlig batching fungerer.
(Høflighed: https://github.com/InternLM/lmdeploy)
Du kan bruge en kraftfuld teknik til at gøre LLM'er og tekstgenerering effektiv: cache nogle af opmærksomhedsmatricerne. Det betyder, at den første gennemgang af en prompt er forskellig fra de efterfølgende fremadgående afleveringer. For det første gennemløb skal du beregne hele opmærksomhedsmatrixen, hvorimod opfølgningerne kun kræver, at du beregner den nye token opmærksomhed. Det første pas kaldes forfyld i hele denne kodebase, hvorimod opfølgningerne kaldes afkode. Fordi prefill er meget dyrere end afkodning, ønsker vi ikke at gøre det hele tiden, men en aktuelt kørende forespørgsel udfører sandsynligvis afkodning. Hvis vi ønsker at bruge kontinuerlig batching som forklaret tidligere, er vi nødt til at køre prefill på et tidspunkt for at skabe den opmærksomhedsmatrix, der kræves for at kunne deltage i afkodningsgruppen.
Denne teknik kan tillade en stigning på op til 20 gange i gennemløbet sammenlignet med ingen batching ved effektivt at bruge de inaktive GPU'er.
Du kan finjustere følgende parametre serving.properties
af LMI-beholderen til brug af kontinuerlig batching:
- motor – Kodens runtime-motor. Værdier inkluderer
Python
,DeepSpeed
,FasterTransformer
ogMPI
. BrugMPI
for at muliggøre kontinuerlig batchning. - rullende_batch – Aktiverer batching på iterationsniveau ved hjælp af en af de understøttede strategier. Værdier inkluderer
auto
,scheduler
oglmi-dist
. Vi brugerlmi-dist
for at aktivere kontinuerlig batching for Llama 2. - max_rolling_batch_size – Begrænser antallet af samtidige anmodninger i den kontinuerlige batch. Standard er 32.
- max_rolling_batch_prefill_tokens – Begrænser antallet af tokens til cachelagring. Dette skal justeres baseret på batchstørrelse og inputsekvenslængde for at undgå, at GPU'en løber tør for hukommelse. Det understøttes kun når
rolling_batch=lmi-dist
. Vores anbefaling er at indstille værdien baseret på antallet af samtidige anmodninger x den nødvendige hukommelse til at gemme input-tokens og output-tokens pr. anmodning.
Følgende er eksempelkode for serving.properties
til konfiguration af kontinuerlig batching:
PagedAttention batching
I den autoregressive afkodningsproces producerer alle inputtokens til LLM deres opmærksomhedsnøgle- og værditensorer, og disse tensorer opbevares i GPU-hukommelsen for at generere næste tokens. Disse cachelagrede nøgle- og værditensorer omtales ofte som KV cache or opmærksomhedscache. Ifølge avisen vLLM: Nem, hurtig og billig LLM-servering med PagedAttention, KV-cachen tager op til 1.7 GB for en enkelt sekvens i Llama 13B. Det er også dynamisk. Dens størrelse afhænger af sekvenslængden, som er meget variabel og uforudsigelig. Som et resultat udgør effektiv styring af KV-cachen en betydelig udfordring. Papiret fandt, at eksisterende systemer spilder 60-80 % af hukommelsen på grund af fragmentering og overreservation.
PagedAttention er en ny optimeringsalgoritme udviklet af UC Berkeley, der forbedrer den kontinuerlige batchproces ved at tillade opmærksomhedscachen (KV-cachen) at være ikke-sammenhængende ved at allokere hukommelse i faste sider eller blokke. Dette er inspireret af virtuel hukommelse og personsøgningskoncepter, der bruges af operativsystemer.
I henhold til vLLM-papiret er opmærksomhedscachen for hver sekvens af tokens opdelt i blokke og kortlagt til fysiske blokke gennem en bloktabel. Under beregningen af opmærksomhed kan en PagedAttention-kerne bruge bloktabellen til effektivt at hente blokkene fra den fysiske hukommelse. Dette resulterer i en betydelig reduktion af hukommelsesspild og giver mulighed for større batchstørrelse, øget GPU-udnyttelse og højere gennemløb. Følgende figur illustrerer opdeling af opmærksomhedscachen i ikke-sammenhængende sider.
Følgende diagram viser et inferenseksempel med PagedAttention. De vigtigste trin er:
- Inferensanmodningen modtages med en inputprompt.
- I præfyldningsfasen beregnes opmærksomheden, og nøgleværdier gemmes i ikke-sammenhængende fysisk hukommelse og kortlægges til logiske nøgleværdiblokke. Denne mapping er gemt i en bloktabel.
- Input-prompten køres gennem modellen (et fremadgående pass) for at generere det første svar-token. Under generering af responstoken bruges opmærksomhedscachen fra præfyldningsfasen.
- Under efterfølgende tokengenerering, hvis den aktuelle fysiske blok er fuld, allokeres yderligere hukommelse på en ikke-sammenhængende måde, hvilket muliggør just-in-time allokering.
PagedAttention hjælper med næsten optimal hukommelsesbrug og reduktion af hukommelsesspild. Dette giver mulighed for at samle flere anmodninger, hvilket resulterer i en betydelig stigning i gennemløbet af inferencing.
Følgende kode er et eksempel serving.properties
til konfiguration af PagedAttention-batching i en LMI-beholder på SageMaker:
Hvornår skal man bruge hvilken batchteknik
Følgende figur opsummerer batchteknikkerne på serversiden sammen med prøven serving.properties
i LMI på SageMaker.
Følgende tabel opsummerer de forskellige batchteknikker og deres anvendelsestilfælde.
PagedAttention Batching | Kontinuerlig batching | Dynamisk batching | Batching på klientsiden | Ingen batch | |
Sådan fungerer det | Flet altid nye anmodninger på token-niveau sammen med sideblokke og lav batch-inferens. | Kombiner altid ny anmodning på token-niveau og lav batch-inferens. | Flet den nye anmodning på anmodningsniveauet; kan forsinke et par millisekunder for at danne en batch. | Klienten er ansvarlig for at samle flere slutningsanmodninger i den samme nyttelast, før den sendes til slutningsserveren. | Når en anmodning ankommer, skal du køre slutningen med det samme. |
Når det fungerer bedst | Dette er den anbefalede tilgang til understøttes modeller, der kun er dekoder. Den er velegnet til gennemstrømningsoptimerede arbejdsbelastninger. Det gælder kun tekstgenereringsmodeller. | Samtidige anmodninger kommer på forskellige tidspunkter med den samme afkodningsstrategi. Den er velegnet til gennemstrømningsoptimerede arbejdsbelastninger. Det gælder kun for tekstgenereringsmodeller. | Samtidige anmodninger kommer på forskellige tidspunkter med den samme afkodningsstrategi. Den er velegnet til responstidsfølsomme arbejdsbelastninger, der kræver højere gennemløb. Det gælder for CV, NLP og andre typer modeller. | Det er velegnet til offline inferensbrug, der ikke har latensbegrænsninger for at maksimere gennemløbet. | Sjældne slutningsanmodninger eller slutningsanmodninger med forskellige afkodningsstrategier. Det er velegnet til arbejdsbelastninger med strenge behov for ventetid for responstid. |
Gennemløbssammenligning af forskellige batchteknikker for en stor generativ model på SageMaker
Vi udførte performance benchmarking på en Lama v2 7B model på SageMaker ved hjælp af en LMI-beholder og de forskellige batchteknikker, der er diskuteret i dette indlæg, med samtidige indkommende anmodninger på 50 og et samlet antal anmodninger på 5,000.
Vi brugte tre forskellige input-prompter af variabel længde til præstationstesten. I kontinuerlig og PagedAttention-batching blev længden af output-tokens sat til henholdsvis 64, 128 og 256 for de tre input-prompter. Til dynamisk batching brugte vi en konsekvent output-tokenlængde på 128 tokens. Vi implementerede SageMaker-endepunkter til testen med en instanstype på ml.g5.24xlarge. Følgende tabel indeholder resultaterne af performance benchmarking-testene.
Model | Batching strategi | Forespørgsler pr. sekund på ml.g5.24xlarge |
LLaMA2-7b | Dynamisk batching | 3.24 |
LLaMA2-7b | Kontinuerlig batching | 6.92 |
LLaMA2-7b | PagedAttention Batching | 7.41 |
Vi ser en stigning på cirka 2.3 gange i gennemløbet ved at bruge PagedAttention-batching sammenlignet med dynamisk batching for Llama2-7B-modellen på SageMaker ved hjælp af en LMI-beholder.
Konklusion
I dette indlæg forklarede vi forskellige batching-teknikker til LLMs inferencing, og hvordan det hjælper med at øge gennemløbet. Vi viste, hvordan hukommelsesoptimeringsteknikker kan øge hardwareeffektiviteten ved at bruge kontinuerlig og PagedAttention-batching og give højere gennemløbsværdier end dynamisk batching. Vi så en stigning på cirka 2.3 gange i gennemløbet ved at bruge PagedAttention-batching sammenlignet med dynamisk batching for en Llama2-7B-model på SageMaker ved hjælp af en LMI-beholder. Du kan finde den notesbog, der bruges til at teste de forskellige batchteknikker på GitHub.
Om forfatterne
Gagan Singh er Senior Technical Account Manager hos AWS, hvor han samarbejder med digital native startups for at bane deres vej til øget forretningssucces. Med en niche i at drive Machine Learning-initiativer udnytter han Amazon SageMaker, med særlig vægt på Deep Learning og Generative AI-løsninger. I sin fritid finder Gagan trøst i at vandre på stierne i Himalaya og fordybe sig i forskellige musikgenrer.
Dhawal Patel er Principal Machine Learning Architect hos AWS. Han har arbejdet med organisationer lige fra store virksomheder til mellemstore startups om problemer relateret til distribueret computing og kunstig intelligens. Han fokuserer på Deep learning, herunder NLP og Computer Vision domæner. Han hjælper kunder med at opnå højtydende modelslutning på SageMaker.
Venugopal Pai er Solutions Architect hos AWS. Han bor i Bengaluru, Indien, og hjælper digitale indfødte kunder med at skalere og optimere deres applikationer på AWS.
- SEO Powered Content & PR Distribution. Bliv forstærket i dag.
- PlatoData.Network Vertical Generative Ai. Styrk dig selv. Adgang her.
- PlatoAiStream. Web3 intelligens. Viden forstærket. Adgang her.
- PlatoESG. Kulstof, CleanTech, Energi, Miljø, Solenergi, Affaldshåndtering. Adgang her.
- PlatoHealth. Bioteknologiske og kliniske forsøgs intelligens. Adgang her.
- Kilde: https://aws.amazon.com/blogs/machine-learning/improve-throughput-performance-of-llama-2-models-using-amazon-sagemaker/
- :har
- :er
- :ikke
- :hvor
- $OP
- 000
- 1
- 100
- 116
- 118
- 12
- 14
- 150
- 17
- 237
- 32
- 50
- 67
- 7
- 8
- 80
- 9
- 97
- a
- I stand
- accelerator
- acceleratorer
- Acceptere
- Adgang
- imødekomme
- Ifølge
- Konto
- opnå
- tilføjet
- Yderligere
- adresse
- adresser
- Vedtagelse
- Fordel
- AI
- AL
- algoritme
- Alle
- allokeret
- allokering
- tillade
- tillade
- tillader
- sammen
- også
- Amazon
- Amazon SageMaker
- Amazon Web Services
- beløb
- an
- analyse
- ,
- En anden
- anvendelig
- applikationer
- tilgang
- cirka
- ER
- Ankommer
- kunstig
- kunstig intelligens
- AS
- At
- opmærksomhed
- automatisk
- til rådighed
- undgå
- AWS
- tilbage
- båndbredde
- bund
- baseret
- BE
- Beam
- fordi
- før
- være
- Tro
- benchmarking
- Berkeley
- Bloker
- Blocks
- boost
- Pause
- bygger
- virksomhed
- men
- by
- Cache
- kaldet
- CAN
- Kapacitet
- tilfælde
- tilfælde
- udfordre
- udfordringer
- lave om
- Ændringer
- billig
- chip
- kunde
- kunder
- kode
- kodebase
- kombinerer
- kommer
- almindeligt
- sammenlignet
- sammenligning
- Afsluttet
- færdiggørelse
- beregning
- Compute
- computer
- Computer Vision
- computing
- computerkraft
- begreber
- konkurrent
- konsekvent
- Bestående
- begrænsninger
- forbruges
- Container
- Beholdere
- indeholder
- indhold
- kontinuerlig
- kontinuerligt
- samtaler
- Koste
- omkostningseffektiv
- koblede
- skabe
- Nuværende
- For øjeblikket
- kunde
- Kunder
- data
- Dekodning
- dyb
- dyb læring
- dybere
- Standard
- defaults
- forsinkelse
- afhænger
- indsat
- ønskes
- udviklet
- enhed
- forskellige
- Vanskelighed
- digital
- diskutere
- drøftet
- distribueret
- distribueret computing
- fordeling
- forskelligartede
- do
- Er ikke
- gør
- Domæner
- Dont
- ned
- grund
- i løbet af
- dynamisk
- dynamisk
- E&T
- hver
- let
- effektivt
- effektivitet
- effektiv
- effektivt
- enten
- at understrege
- muliggøre
- muliggør
- Engine (Motor)
- virksomheder
- Hele
- især
- Endog
- Hver
- undersøger
- eksempel
- eksempler
- overstige
- spændende
- udførelse
- eksisterende
- dyrt
- Oplevelser
- Forklar
- forklarede
- Ansigtet
- Mode
- FAST
- fodring
- få
- Figur
- Endelig
- Finde
- fund
- slut
- Fornavn
- fokuserer
- efter
- følger
- Fodspor
- Til
- formular
- Videresend
- fundet
- Foundation
- fragmentering
- Gratis
- fra
- fuld
- fuldt ud
- yderligere
- generere
- genereret
- genererer
- generere
- generation
- generative
- Generativ AI
- gif
- GitHub
- mål
- GPU
- GPU'er
- Greedy
- gruppe
- Håndterer
- Hardware
- Have
- he
- øget
- hjælpe
- hjælper
- Høj
- højere
- højeste
- Fremhæv
- stærkt
- hans
- Hvordan
- How To
- HTML
- HTTPS
- KrammerFace
- ideer
- tomgang
- if
- illustrerer
- billeder
- straks
- enorme
- gennemføre
- redskaber
- Forbedre
- forbedret
- forbedringer
- forbedrer
- in
- omfatter
- omfatter
- Herunder
- Indgående
- Forøg
- øget
- Stigninger
- uafhængig
- Indien
- bøjning
- Bøjningspunkt
- initiativer
- indgang
- inspirerede
- instans
- Intelligens
- interaktiv
- interagerer
- ind
- involverede
- IT
- ITS
- deltage
- jpg
- holdt
- Nøgle
- kendt
- Sprog
- stor
- Store virksomheder
- større
- Latency
- læring
- Længde
- Niveau
- Udnytter
- biblioteker
- ligesom
- Limited
- grænser
- Lives
- Llama
- LLM
- belastning
- lastning
- logik
- logisk
- Lang
- Se
- maskine
- machine learning
- Main
- lave
- Making
- administrere
- leder
- styring
- kortlægning
- markør
- massive
- Matrix
- Maksimer
- maksimere
- maksimal
- Kan..
- midler
- mekanisme
- Mød
- møde
- Hukommelse
- Flet
- mødte
- Meta
- metoder
- millisekunder
- afbøde
- ML
- model
- modeller
- mere
- mest
- meget
- flere
- Musik
- indfødte
- Natural
- Natural Language Processing
- Behov
- behov
- behøve
- behov
- Ny
- næste
- niche
- NLP
- ingen
- notesbog
- nummer
- Nvidia
- observere
- of
- offline
- tit
- on
- ONE
- kun
- drift
- operativsystemer
- optimal
- optimering
- Optimer
- optimering
- Option
- or
- ordrer
- organisationer
- Andet
- vores
- ud
- output
- i løbet af
- Overvind
- sider
- Papir
- parametre
- del
- især
- partnere
- passerer
- gennemløb
- sti
- bane
- per
- ydeevne
- udføres
- periode
- fase
- fysisk
- plato
- Platon Data Intelligence
- PlatoData
- Punkt
- del
- stillet
- Indlæg
- magt
- strøm
- vigtigste
- forudsige
- forudsagde
- forudsige
- forudser
- forberedt
- præsentere
- gaver
- forebyggelse
- tidligere
- tidligere
- Main
- sandsynligvis
- problemer
- behandle
- Behandlet
- forarbejdning
- producere
- produceret
- fremtrædende
- skruens
- give
- forudsat
- skubbet
- Pushing
- Python
- kvadratisk
- rækkevidde
- spænder
- nået
- modtaget
- modtager
- modtagende
- Anbefaling
- anbefales
- reducere
- reduktion
- benævnt
- refererer
- relaterede
- relative
- anmode
- anmodninger
- kræver
- påkrævet
- Kræver
- Ressourcer
- henholdsvis
- svar
- ansvarlige
- restriktiv
- resultere
- resulterer
- Resultater
- vender tilbage
- Kør
- kører
- løber
- ofre
- sagemaker
- samme
- så
- Scale
- skalering
- planlagt
- planlægning
- Søg
- Anden
- Sektion
- se
- valgt
- afsendelse
- sender
- senior
- adskille
- Sequence
- tjener
- server
- Tjenester
- servering
- sæt
- indstillinger
- Vis
- viste
- vist
- Shows
- side
- signifikant
- enkelt
- Størrelse
- langsom
- So
- løsninger
- Løsninger
- nogle
- specifikke
- specificeret
- Starter
- Nystartede
- Tilstand
- opholder
- Trin
- Steps
- butik
- opbevaret
- Historier
- strategier
- Strategi
- Streng
- efterfølgende
- væsentlig
- succes
- sådan
- egnede
- Understøttet
- systemet
- Systemer
- bord
- tager
- tager
- mål
- mål
- opgaver
- Teknisk
- teknikker
- prøve
- Test
- tests
- tekst
- end
- at
- Blokken
- deres
- Them
- derefter
- derved
- Disse
- denne
- tre
- Gennem
- hele
- kapacitet
- stramt
- tid
- tidsfølsom
- gange
- til
- sammen
- token
- Tokens
- top
- I alt
- uddannet
- overførsler
- transformers
- Drejning
- to
- typen
- typer
- typisk
- forstå
- uforudsigelige
- indtil
- Brug
- brug
- anvendte
- Bruger
- ved brug af
- udnytter
- Ved hjælp af
- værdi
- Værdier
- variabel
- Vast
- Videoer
- Virtual
- vision
- Venter
- ønsker
- Affald
- we
- web
- webservices
- var
- hvornår
- ud fra følgende betragtninger
- som
- mens
- udbredt
- vilje
- med
- inden for
- arbejdede
- virker
- skrivning
- X
- Du
- zephyrnet