I en tidevarv med big data och AI söker företag ständigt sätt att använda dessa tekniker för att få en konkurrensfördel. Ett av de hetaste områdena inom AI just nu är generativ AI, och av goda skäl. Generativ AI erbjuder kraftfulla lösningar som tänjer på gränserna för vad som är möjligt när det gäller kreativitet och innovation. Kärnan i dessa banbrytande lösningar ligger en grundmodell (FM), en mycket avancerad maskininlärningsmodell som är förtränad på stora mängder data. Många av dessa grundmodeller har visat en anmärkningsvärd förmåga att förstå och generera mänsklig text, vilket gör dem till ett värdefullt verktyg för en mängd olika applikationer, från innehållsskapande till automatisering av kundsupport.
Dessa modeller är dock inte utan sina utmaningar. De är exceptionellt stora och kräver stora mängder data och beräkningsresurser för att träna. Dessutom kan optimering av träningsprocessen och kalibrering av parametrarna vara en komplex och iterativ process som kräver expertis och noggranna experimenterande. Dessa kan vara hinder för många organisationer som vill bygga sina egna grundmodeller. För att övervinna denna utmaning överväger många kunder att finjustera befintliga grundmodeller. Detta är en populär teknik för att justera en liten del av modellparametrarna för specifika applikationer samtidigt som den kunskap som redan är kodad i modellen bevaras. Det tillåter organisationer att använda kraften i dessa modeller samtidigt som de minskar de resurser som krävs för att anpassa till en specifik domän eller uppgift.
Det finns två primära metoder för att finjustera grundmodeller: traditionell finjustering och parametereffektiv finjustering. Traditionell finjustering innebär uppdatering av alla parametrar i den förtränade modellen för en specifik nedströmsuppgift. Å andra sidan inkluderar parametereffektiv finjustering en mängd olika tekniker som möjliggör anpassning av en modell utan att uppdatera alla ursprungliga modellparametrar. En sådan teknik kallas Low-rank Adaptation (LoRA). Det innebär att lägga till små, uppgiftsspecifika moduler till den förtränade modellen och träna dem samtidigt som resten av parametrarna hålls fixerade som visas i följande bild.
Källa: Generativ AI på AWS (O'Reilly, 2023)
LoRA har vunnit popularitet nyligen av flera anledningar. Den erbjuder snabbare träning, minskade minneskrav och möjligheten att återanvända förtränade modeller för flera nedströmsuppgifter. Ännu viktigare är att basmodellen och adaptern kan lagras separat och kombineras när som helst, vilket gör det lättare att lagra, distribuera och dela finjusterade versioner. Detta introducerar dock en ny utmaning: hur man korrekt hanterar dessa nya typer av finjusterade modeller. Ska man kombinera basmodellen och adaptern eller hålla dem åtskilda? I det här inlägget går vi igenom bästa praxis för att hantera LoRA-finjusterade modeller på Amazon SageMaker för att ta itu med denna framväxande fråga.
Arbeta med FMs på SageMaker Model Registry
I det här inlägget går vi igenom ett heltäckande exempel på finjustering av Llama2-modellen för stora språk (LLM) med QLoRA-metoden. QLoRA kombinerar fördelarna med parametereffektiv finjustering med 4-bitars/8-bitars kvantisering för att ytterligare minska de resurser som krävs för att finjustera en FM till en specifik uppgift eller användningsfall. För detta kommer vi att använda den förtränade 7 miljarder parameter Llama2-modellen och finjustera den på databricks-dolly-15k dataset. LLM som Llama2 har miljarder parametrar och är förtränade på massiva textdatauppsättningar. Finjustering anpassar en LLM till en nedströmsuppgift med hjälp av en mindre datauppsättning. Det är dock beräkningsmässigt dyrt att finjustera stora modeller. Det är därför vi kommer att använda QLoRA-metoden för att kvantisera vikterna under finjustering för att minska denna beräkningskostnad.
I våra exempel hittar du två anteckningsböcker (llm-finetune-combined-with-registry.ipynb
och llm-finetune-separate-with-registry.ipynb
). Var och en arbetar på olika sätt för att hantera LoRA-finjusterade modeller som illustreras i följande diagram:
- Först laddar vi ner den förtränade Llama2-modellen med 7 miljarder parametrar med SageMaker Studio Notebooks. LLM:er, som Llama2, har visat toppmoderna prestanda på NLP-uppgifter (natural language processing) när de har finjusterats på domänspecifika data.
- Därefter finjusterar vi Llama2 på databricks-dolly-15k-datauppsättningen med QLoRA-metoden. QLoRA minskar beräkningskostnaden för finjustering genom att kvantisera modellvikter.
- Under finjusteringen integrerar vi SageMaker Experiments Plus med Transformers API för att automatiskt logga mätvärden som gradient, förlust, etc.
- Vi versionerar sedan den finjusterade Llama2-modellen i SageMaker Model Registry med två metoder:
- Lagring av hela modellen
- Förvara adaptern och basmodellen separat.
- Slutligen är vi värd för de finjusterade Llama2-modellerna som använder Deep Java Library (DJL) Servering på en SageMaker Real-time endpoint.
I följande avsnitt kommer vi att dyka djupare in i vart och ett av dessa steg, för att demonstrera flexibiliteten hos SageMaker för olika LLM-arbetsflöden och hur dessa funktioner kan hjälpa till att förbättra driften av dina modeller.
Förutsättningar
Fyll i följande förutsättningar för att börja experimentera med koden.
- Skapa en SageMaker Studio Domain: Amazon SageMaker Studio, närmare bestämt Studio Notebooks, används för att starta finjusteringsuppgiften Llama2 och sedan registrera och visa modeller inom SageMaker modellregister. SageMaker-experiment används också för att visa och jämföra Llama2 finjusterande jobbloggar (träningsförlust/testförlust/etc.).
- Skapa en Amazon Simple Storage Service (S3) hink: Tillgång till en S3 hink för att lagra träningsartefakter och modellvikter krävs. För instruktioner, se Skapa en hink. Exempelkoden som används för det här inlägget kommer att använda SageMakers standard S3-hink men du kan anpassa den för att använda vilken relevant S3-hink som helst.
- Konfigurera modellsamlingar (IAM-behörigheter): Uppdatera din SageMaker-exekveringsroll med behörigheter till resursgrupper enligt listan under Utvecklarguide för Model Registry Collections att implementera modellregistergruppering med modellsamlingar.
- Acceptera villkoren för Llama2: Du måste acceptera slutanvändarlicensavtalet och policyn för acceptabel användning för att använda Llama2-grundmodellen.
Exemplen finns i GitHub repository. Notebook-filerna testas med Studio-anteckningsböcker som körs på PyTorch 2.0.0 Python 3.10 GPU Optimerad kärna och instanstyp ml.g4dn.xlarge.
Experiment plus callback-integration
Amazon SageMaker-experiment låter dig organisera, spåra, jämföra och utvärdera experiment med maskininlärning (ML) och modellversioner från alla integrerade utvecklingsmiljöer (IDE), inklusive lokala Jupyter Notebooks, med SageMaker Python SDK eller boto3. Det ger flexibiliteten att logga dina modellmått, parametrar, filer, artefakter, plottdiagram från de olika mätvärdena, fånga olika metadata, söka igenom dem och stödja modellreproducerbarhet. Dataforskare kan snabbt jämföra prestanda och hyperparametrar för modellutvärdering genom visuella diagram och tabeller. De kan också använda SageMaker Experiments för att ladda ner de skapade diagrammen och dela modellutvärderingen med sina intressenter.
Att utbilda LLM kan vara en långsam, dyr och iterativ process. Det är mycket viktigt för en användare att spåra LLM-experiment i stor skala för att förhindra en inkonsekvent modellinställningsupplevelse. HuggingFace Transformer API:er tillåter användare att spåra mätvärden under träningsuppgifter genom callbacks. Återuppringningar är "skrivskyddade" kodbitar som kan anpassa beteendet hos träningsslingan i PyTorch Trainer som kan inspektera träningsslingans tillstånd för framstegsrapportering, inloggning på TensorBoard eller SageMaker Experiments Plus via anpassad logik (som ingår som en del av denna kodbas).
Du kan importera SageMaker Experiments callback-kod som ingår i det här inläggets kodlager som visas i följande kodblock:
Denna återuppringning kommer automatiskt att logga in följande information i SageMaker Experiments som en del av träningskörningen:
- Träningsparametrar och hyperparametrar
- Modellträning och valideringsförlust vid steg, epok och final
- Modellinmatnings- och utdataartefakter (träningsdatauppsättning, valideringsdatauppsättning, modellutdataplats, träningsfelsökning och mer)
Följande graf visar exempel på diagram som du kan visa med hjälp av den informationen.
Detta gör att du enkelt kan jämföra flera körningar med hjälp av analysfunktionen i SageMaker Experiments. Du kan välja de experimentkörningar du vill jämföra, och de kommer automatiskt att fylla i jämförelsediagram.
Registrera finjusterade modeller till Model Registry Collections
Modellregistersamlingar är en egenskap av SageMaker modellregister som låter dig gruppera registrerade modeller som är relaterade till varandra och organisera dem i hierarkier för att förbättra modellens upptäckbarhet i skala. Vi kommer att använda Model Registry Collections för att hålla reda på basmodellen och finjusterade varianter.
Full Model Copy-metod
Den första metoden kombinerar basmodellen och LoRA-adaptern och sparar hela den finjusterade modellen. Följande kod illustrerar modellens sammanslagning och sparar den kombinerade modellen med hjälp av model.save_pretrained()
.
Att kombinera LoRA-adaptern och basmodellen till en enda modellartefakt efter finjustering har fördelar och nackdelar. Den kombinerade modellen är fristående och kan hanteras och distribueras självständigt utan att behöva den ursprungliga basmodellen. Modellen kan spåras som sin egen enhet med ett versionsnamn som återspeglar basmodellen och finjusterande data. Vi kan anta en nomenklatur med hjälp av base_model_name
+ finjusterad dataset_name
att organisera modellgrupperna. Alternativt kan modellkollektioner associera de ursprungliga och finjusterade modellerna, men detta kanske inte är nödvändigt eftersom den kombinerade modellen är oberoende. Följande kodsnutt visar hur du registrerar den finjusterade modellen.
Du kan använda träningsuppskattaren för att registrera modellen i Model Registry.
Från Model Registry kan du hämta modellpaketet och distribuera den modellen direkt.
Det finns dock nackdelar med detta tillvägagångssätt. Kombinationen av modellerna leder till ineffektiv lagring och redundans eftersom basmodellen dupliceras i varje finjusterad version. När modellstorleken och antalet finjusterade modeller ökar ökar detta exponentiellt lagringsbehoven. Med llama2 7b-modellen som exempel är basmodellen cirka 13 GB och den finjusterade modellen är 13.6 GB. 96 % procent av modellen måste dupliceras efter varje finjustering. Dessutom blir det svårare att distribuera och dela mycket stora modellfiler och det innebär operativa utmaningar eftersom kostnaderna för filöverföring och hantering ökar med ökande modellstorlek och finjustering av jobb.
Separat adapter och basmetod
Den andra metoden fokuserar på separation av basvikter och adaptervikter genom att spara dem som separata modellkomponenter och ladda dem sekventiellt under körning.
Att spara bas- och adaptervikter har fördelar och nackdelar, liknande Full Model Copy-metoden. En fördel är att det kan spara lagringsutrymme. Basvikterna, som är den största komponenten i en finjusterad modell, sparas bara en gång och kan återanvändas med andra adaptervikter som är avstämda för olika uppgifter. Till exempel är basvikterna för Llama2-7B cirka 13 GB, men varje finjusteringsuppgift behöver bara lagra cirka 0.6 GB adaptervikter, vilket är 95 % utrymmesbesparing. En annan fördel är att basvikter kan hanteras separat från adaptervikter med ett modellregister för endast basvikter. Detta kan vara användbart för SageMaker-domäner som körs i endast VPC-läge utan en internetgateway, eftersom basvikterna kan nås utan att behöva gå via internet.
Skapa modellpaketgrupp för basvikter
Skapa modellpaketgrupp för QLoRA-vikter
Följande kod visar hur man taggar QLoRA-vikter med datauppsättningen/uppgiftstypen och registrerar finjusterade deltavikter i ett separat modellregister och spårar deltavikterna separat.
Följande utdrag visar en vy från modellregistret där modellerna är uppdelade i basvikter och finjusterade vikter.
Att hantera modeller, datauppsättningar och uppgifter för hyperanpassade LLM:er kan snabbt bli överväldigande. SageMaker Model Registry Collections kan hjälpa dig att gruppera relaterade modeller och organisera dem i en hierarki för att förbättra modellens upptäckbarhet. Detta gör det lättare att spåra sambanden mellan basvikter, adaptervikter och finjustering av uppgiftsdatauppsättningar. Du kan också skapa komplexa relationer och kopplingar mellan modeller.
Skapa en ny samling och lägg till dina basmodellvikter till denna samling
Länka alla dina finjusterade LoRA Adapter Delta-vikter till den här samlingen efter uppgift och/eller dataset
Detta kommer att resultera i en samlingshierarki som är länkad efter modell/uppgiftstyp och den datauppsättning som används för att finjustera basmodellen.
Denna metod för att separera bas- och adaptermodellerna har vissa nackdelar. En nackdel är komplexiteten i implementeringen av modellen. Eftersom det finns två separata modellartefakter behöver du ytterligare steg för att paketera om modellen istället för att distribuera direkt från Model Registry. I följande kodexempel, ladda ner och packa om den senaste versionen av basmodellen först.
Ladda sedan ner och packa om de senaste finjusterade LoRA-adaptervikterna.
Eftersom du kommer att använda DJL-servering med djup hastighet för att vara värd för modellen, bör din inferenskatalog se ut som följande.
Slutligen, packa den anpassade slutledningskoden, basmodellen och LoRA-adaptern i en enda .tar.gz-fil för distribution.
Städa upp
Rensa upp dina resurser genom att följa instruktionerna i rensningsavsnittet i den bärbara datorn. Hänvisa till Amazon SageMaker Prissättning för detaljer om kostnaden för slutledningsinstanserna.
Slutsats
Det här inlägget ledde dig genom bästa praxis för att hantera LoRA-finjusterade modeller på Amazon SageMaker. Vi täckte två huvudmetoder: att kombinera bas- och adaptervikterna till en fristående modell, och separera bas- och adaptervikterna. Båda tillvägagångssätten har kompromisser, men att separera vikter hjälper till att optimera lagringen och möjliggör avancerade modellhanteringstekniker som SageMaker Model Registry Collections. Detta låter dig bygga hierarkier och relationer mellan modeller för att förbättra organisation och upptäckbarhet. Vi uppmuntrar dig att prova provkoden GitHub repository att själv experimentera med dessa metoder. När generativ AI fortskrider snabbt kommer att följa bästa praxis för modellhantering hjälpa dig att spåra experiment, hitta rätt modell för din uppgift och hantera specialiserade LLM:er effektivt i stor skala.
Referensprojekt
Om författarna
James Wu är Senior AI/ML Specialist Solution Architect på AWS. hjälpa kunder att designa och bygga AI/ML-lösningar. James arbete täcker ett brett spektrum av ML-användningsfall, med ett primärt intresse för datorseende, djupinlärning och skalning av ML över hela företaget. Innan han började på AWS var James arkitekt, utvecklare och teknikledare i över 10 år, inklusive 6 år inom ingenjörsbranschen och 4 år inom marknadsförings- och reklambranschen.
Pranav Murthy är en AI/ML Specialist Solutions Architect på AWS. Han fokuserar på att hjälpa kunder att bygga, träna, distribuera och migrera maskininlärning (ML) arbetsbelastningar till SageMaker. Han har tidigare arbetat inom halvledarindustrin med att utveckla modeller för stora datorseende (CV) och NLP (natural language processing) för att förbättra halvledarprocesser. På fritiden tycker han om att spela schack och att resa.
Mecit Gungor är en AI/ML-specialistlösningsarkitekt på AWS som hjälper kunder att designa och bygga AI/ML-lösningar i stor skala. Han täcker ett brett spektrum av AI/ML-användningsfall för telekommunikationskunder och fokuserar för närvarande på Generativ AI, LLM och utbildning och slutledningsoptimering. Han kan ofta hittas på vandring i vildmarken eller spela brädspel med sina vänner på fritiden.
Shelbee Eigenbrode är en huvudarkitekt för AI och Machine Learning Specialist Solutions på Amazon Web Services (AWS). Hon har varit inom teknik i 24 år och spänner över flera branscher, teknologier och roller. Hon fokuserar för närvarande på att kombinera sin DevOps- och ML-bakgrund i MLOps-domänen för att hjälpa kunder att leverera och hantera ML-arbetsbelastningar i stor skala. Med över 35 patent beviljade inom olika teknikdomäner har hon en passion för kontinuerlig innovation och att använda data för att driva affärsresultat. Shelbee är en medskapare och instruktör för specialiseringen Practical Data Science på Coursera. Hon är också meddirektör för Women In Big Data (WiBD), kapitel i Denver. På fritiden spenderar hon gärna tid med sin familj, sina vänner och överaktiva hundar.
- SEO-drivet innehåll och PR-distribution. Bli förstärkt idag.
- PlatoData.Network Vertical Generative Ai. Styrka dig själv. Tillgång här.
- PlatoAiStream. Web3 Intelligence. Kunskap förstärkt. Tillgång här.
- Platoesg. Kol, CleanTech, Energi, Miljö, Sol, Avfallshantering. Tillgång här.
- PlatoHealth. Biotech och kliniska prövningar Intelligence. Tillgång här.
- Källa: https://aws.amazon.com/blogs/machine-learning/model-management-for-lora-fine-tuned-models-using-llama2-and-amazon-sagemaker/
- : har
- :är
- :inte
- :var
- $UPP
- 10
- 100
- 11
- 12
- 13
- 15%
- 16
- 20
- 2023
- 23
- 24
- 25
- 28
- 31
- 35%
- 7
- 8
- 95%
- a
- förmåga
- Om Oss
- Acceptera
- godtagbart
- tillgång
- Accessed
- tvärs
- anpassning
- anpassar sig
- lägga till
- tillsats
- Annat
- Dessutom
- adress
- anta
- avancerat
- Fördel
- fördelar
- reklam
- Efter
- Avtal
- AI
- AI rätt
- AI / ML
- Alla
- tillåter
- tillåter
- redan
- också
- amason
- Amazon SageMaker
- Amazon SageMaker Studio
- Amazon Simple Storage Service (S3)
- Amazon Web Services
- Amazon Web Services (AWS)
- mängder
- an
- analysera
- och
- Annan
- vilken som helst
- api
- tillämpningar
- tillvägagångssätt
- tillvägagångssätt
- godkänd
- cirka
- ÄR
- områden
- AS
- Associate
- At
- automatiskt
- Automation
- tillgänglig
- AWS
- tillbaka
- bakgrund
- barriärer
- bas
- BE
- därför att
- blir
- blir
- varit
- beteende
- Fördelarna
- BÄST
- bästa praxis
- mellan
- Stor
- Stora data
- Miljarder
- miljarder
- Blockera
- ombord
- Brädspel
- båda
- gränser
- SLUTRESULTAT
- företag
- men
- by
- återanrop
- kallas
- KAN
- kapacitet
- fånga
- noggrann
- Vid
- fall
- utmanar
- utmaningar
- Kapitel
- Diagram
- schack
- klass
- klar
- koda
- Kodbas
- samling
- samlingar
- kombinera
- kombinerad
- kombinerar
- kombinera
- Företag
- jämföra
- jämförelse
- konkurrenskraftig
- komplex
- Komplexiteten
- komponent
- komponenter
- beräkning
- beräkningar
- dator
- Datorsyn
- villkor
- med tanke på
- innehåll
- innehållsskapande
- kontinuerligt
- kontinuerlig
- Kärna
- Pris
- kunde
- omfattas
- Täcker
- skapa
- skapas
- skapande
- kreativitet
- För närvarande
- beställnings
- kund
- Helpdesk
- Kunder
- anpassning
- skräddarsy
- allra senaste
- datum
- datavetenskap
- datauppsättningar
- djup
- djupt lärande
- djupare
- Standard
- del
- leverera
- Delta
- demonstrera
- Denver
- distribuera
- utplacerade
- utplacera
- utplacering
- Designa
- detaljer
- Utvecklare
- utveckla
- Utveckling
- olika
- svårt
- direkt
- Visa
- distribuera
- fördelnings
- Dyk
- domän
- domäner
- ladda ner
- nackdelar
- driv
- under
- varje
- lättare
- lätt
- kant
- effektiv
- effektivt
- annars
- smärgel
- möjliggör
- uppmuntra
- början till slut
- Slutpunkt
- Teknik
- Företag
- enhet
- Miljö
- epok
- Era
- etc
- utvärdera
- utvärdering
- exempel
- exempel
- exceptionellt
- utförande
- befintliga
- dyra
- erfarenhet
- experimentera
- experiment
- expertis
- exponentiellt
- Ansikte
- Misslyckande
- familj
- snabbare
- Leverans
- Funktioner
- Fil
- Filer
- hitta
- änden
- Förnamn
- fixerad
- Flexibilitet
- fokuserar
- fokusering
- efter
- För
- hittade
- fundament
- Fri
- vänner
- från
- full
- fungera
- ytterligare
- framtida
- Få
- vunnits
- Games
- nätbryggan
- generera
- generativ
- Generativ AI
- Go
- kommer
- god
- GPU
- beviljats
- diagram
- grafer
- Grupp
- Gruppens
- sidan
- hantera
- Har
- har
- he
- hjälpa
- hjälpa
- hjälper
- här
- hierarkin
- höggradigt
- hans
- värd
- hetaste
- Hur ser din drömresa ut
- How To
- Men
- html
- HTTPS
- Kramar ansikte
- illustrerar
- bild
- genomföra
- genomförande
- importera
- med Esport
- viktigt
- import
- förbättra
- in
- ingår
- innefattar
- Inklusive
- Öka
- Ökar
- ökande
- oberoende
- oberoende av
- industrier
- industrin
- ineffektivitet
- blåses upp
- informationen
- Innovation
- ingång
- exempel
- istället
- instruktioner
- integrera
- integrerade
- intresse
- Internet
- in
- Introducerar
- IT
- DESS
- james
- java
- Jobb
- Lediga jobb
- sammanfogning
- jpg
- Ha kvar
- hålla
- Nyckel
- sparka
- kunskap
- språk
- Large
- största
- senaste
- ledare
- Leads
- inlärning
- Lets
- Nivå
- Bibliotek
- Licens
- ligger
- tycka om
- gillar
- LINK
- kopplade
- Noterade
- LLM
- läsa in
- läser in
- lokal
- läge
- log
- skogsavverkning
- Logiken
- se
- ser ut som
- du letar
- förlust
- Maskinen
- maskininlärning
- Huvudsida
- GÖR
- Framställning
- hantera
- förvaltade
- ledning
- hantera
- många
- Marknadsföring
- Marknadsföring och reklam
- massiv
- Maj..
- Minne
- Sammanfoga
- sammanslagning
- metadata
- metod
- metoder
- Metrics
- migrera
- ML
- MLOps
- Mode
- modell
- modeller
- Moduler
- mer
- multipel
- namn
- Natural
- Naturlig språkbehandling
- nödvändigt för
- Behöver
- behöver
- behov
- Nya
- nlp
- anteckningsbok
- nu
- antal
- of
- sänkt
- Erbjudanden
- Ofta
- on
- gång
- ONE
- endast
- operativa
- Verksamhet
- optimering
- Optimera
- optimerad
- optimera
- or
- organisation
- organisationer
- ursprungliga
- Övriga
- vår
- utfall
- produktion
- över
- Övervinna
- överväldigande
- egen
- paket
- parameter
- parametrar
- del
- brinner
- Patent
- bana
- procent
- prestanda
- behörigheter
- bitar
- plato
- Platon Data Intelligence
- PlatonData
- i
- plus
- policy
- Populära
- popularitet
- del
- möjlig
- Inlägg
- kraft
- den mäktigaste
- Praktisk
- praxis
- förutsättningar
- presenterar
- konservering
- förhindra
- tidigare
- primär
- Principal
- Innan
- process
- processer
- bearbetning
- Framsteg
- ordentligt
- egenskaper
- ger
- Tryck
- Python
- pytorch
- fråga
- snabbt
- område
- snabbt
- realtid
- Anledningen
- skäl
- nyligen
- minska
- Minskad
- minskar
- reducerande
- hänvisa
- reflekterande
- registrera
- registrerat
- register
- relaterad
- Förhållanden
- relevanta
- anmärkningsvärd
- Rapportering
- Repository
- kräver
- Obligatorisk
- Krav
- Resurser
- REST
- resultera
- återanvända
- höger
- Roll
- roller
- Körning
- rinnande
- kör
- runtime
- sagemaker
- Save
- sparade
- sparande
- Besparingar
- Skala
- skalning
- Vetenskap
- vetenskapsmän
- sDK
- Sök
- Andra
- §
- sektioner
- söker
- halvledare
- senior
- separat
- separerande
- service
- Tjänster
- portion
- flera
- Dela
- delning
- hon
- skall
- visas
- Visar
- liknande
- Enkelt
- eftersom
- enda
- Storlek
- långsam
- Small
- mindre
- kodavsnitt
- lösning
- Lösningar
- några
- Källa
- Utrymme
- spänning
- specialist
- specialiserad
- specifik
- specifikt
- spendera
- delas
- intressenter
- starta
- Ange
- state-of-the-art
- status
- Steg
- Steg
- Fortfarande
- förvaring
- lagra
- lagras
- studio
- sådana
- stödja
- MÄRKA
- tar
- uppgift
- uppgifter
- Tekniken
- tekniker
- Tekniken
- Teknologi
- telekommunikation
- villkor
- testade
- text
- den där
- Smakämnen
- deras
- Dem
- sedan
- Där.
- Dessa
- de
- detta
- Genom
- tid
- till
- tillsammans
- verktyg
- brännaren
- spår
- traditionell
- Tåg
- Utbildning
- överföring
- transformator
- transformatorer
- Traveling
- sann
- prova
- ställa in
- stämd
- trimma
- två
- Typ
- typer
- under
- förståelse
- Uppdatering
- uppdatering
- uppladdad
- URL
- användning
- användningsfall
- Begagnade
- Användare
- användare
- med hjälp av
- godkännande
- Värdefulla
- värde
- mängd
- olika
- Omfattande
- version
- versioner
- mycket
- via
- utsikt
- syn
- visuell
- gå
- promenerade
- vill
- var
- Sätt..
- sätt
- we
- webb
- webbservice
- när
- som
- medan
- varför
- bred
- Brett utbud
- kommer
- med
- inom
- utan
- Kvinnor
- Arbete
- arbetade
- arbetsflöden
- fungerar
- år
- Om er
- Din
- själv
- zephyrnet