Dette blogindlæg er skrevet sammen med Tuana Çelik fra deepset.
Virksomhedssøgning er en kritisk komponent i organisatorisk effektivitet gennem dokumentdigitalisering og videnstyring. Virksomhedssøgning dækker over lagring af dokumenter såsom digitale filer, indeksering af dokumenter til søgning og levering af relevante resultater baseret på brugerforespørgsler. Med fremkomsten af store sprogmodeller (LLM'er) kan vi implementere samtaleoplevelser i at levere resultaterne til brugerne. Vi er dog nødt til at sikre, at LLM'erne begrænser svarene på virksomhedsdata og derved mindsker modelhallucinationer.
I dette indlæg viser vi, hvordan man bygger en end-to-end generativ AI-applikation til virksomhedssøgning med Retrieval Augmented Generation (RAG) ved at bruge Haystack-pipelines og Falcon-40b-instruct-modellen fra Amazon SageMaker JumpStart , Amazon OpenSearch Service. Kildekoden til eksemplet vist i dette indlæg er tilgængelig i GitHub repository
Løsningsoversigt
For at begrænse de generative AI-applikationssvar til kun virksomhedsdata, skal vi bruge en teknik kaldet Retrieval Augmented Generation (RAG). En applikation, der bruger RAG-tilgangen, henter information, der er mest relevant for brugerens anmodning, fra virksomhedens videnbase eller indhold, samler den som kontekst sammen med brugerens anmodning som en prompt og sender den derefter til LLM for at få et svar. LLM'er har begrænsninger omkring det maksimale ordantal for inputprompterne, så valg af de rigtige passager blandt tusinder eller millioner af dokumenter i virksomheden har en direkte indflydelse på LLM'ens nøjagtighed.
RAG-teknikken er blevet stadig vigtigere i virksomhedssøgning. I dette indlæg viser vi en arbejdsgang, der udnytter SageMaker JumpStart til at implementere en Falcon-40b-instruktionsmodel og bruger Haystack til at designe og køre en pipeline til at besvare spørgsmål med udvidet hentning. Den endelige arbejdsgang for forbedring af hentning dækker følgende trin på højt niveau:
- Brugerforespørgslen bruges til en retriever-komponent, som laver en vektorsøgning, for at hente den mest relevante kontekst fra vores database.
- Denne kontekst er indlejret i en prompt, der er designet til at instruere en LLM til kun at generere et svar fra den angivne kontekst.
- LLM genererer et svar på den oprindelige forespørgsel ved kun at overveje konteksten, der er indlejret i prompten, den modtog.
SageMaker JumpStart
SageMaker JumpStart fungerer som en modelhub, der indkapsler en bred vifte af dybe læringsmodeller til tekst, vision, lyd og indlejring af use cases. Med over 500 modeller omfatter dens modelhub både offentlige og proprietære modeller fra AWS's partnere såsom AI21, Stability AI, Cohere og LightOn. Det er også vært for grundmodeller udelukkende udviklet af Amazon, såsom AlexaTM. Nogle af modellerne giver dig mulighed for at finjustere dem med dine egne data. SageMaker JumpStart leverer også løsningsskabeloner, der opsætter infrastruktur til almindelige use cases, og eksekverbare eksempelnotesbøger til machine learning (ML) med SageMaker.
Høstak
Høstak er en open source-ramme fra deepset, der giver udviklere mulighed for at orkestrere LLM-applikationer, der består af forskellige komponenter som modeller, vektor-DB'er, filkonvertere og utallige andre moduler. Høstak giver rørledninger , Agenter, to kraftfulde strukturer til at designe LLM-applikationer til forskellige use cases, herunder søgning, besvarelse af spørgsmål og konversations-AI. Med et stort fokus på avancerede genfindingsmetoder og solide evalueringsmetrikker giver den dig alt, hvad du behøver for at sende en pålidelig, troværdig ansøgning. Du kan serialisere pipelines til YAML filer, eksponer dem via en REST-API, og skaler dem fleksibelt med dine arbejdsbelastninger, hvilket gør det nemt at flytte din applikation fra et prototypestadium til produktion.
Amazon OpenSearch
OpenSearch Service er en fuldt administreret tjeneste, der gør det nemt at implementere, skalere og betjene OpenSearch i AWS Cloud. OpenSearch er en skalerbar, fleksibel og udvidelsesbar open source-softwarepakke til søgning, analyse, sikkerhedsovervågning og observerbarhedsapplikationer, licenseret under Apache 2.0-licensen.
I de senere år er ML-teknikker blevet mere og mere populære for at forbedre søgning. Blandt dem er brugen af indlejring af modeller, en type model, der kan kode en stor mængde data ind i et n-dimensionelt rum, hvor hver enhed er kodet til en vektor, et datapunkt i det rum, og organiseret sådan, at lignende enheder er tættere på hinanden. En vektordatabase giver effektiv vektorlighedssøgning ved at levere specialiserede indekser som k-NN-indekser.
Med vektordatabasefunktionerne i OpenSearch Service kan du implementere semantisk søgning, RAG med LLM'er, anbefalingsmotorer og søgerige medier. I dette indlæg bruger vi RAG til at sætte os i stand til at komplementere generative LLM'er med en ekstern vidensbase, der typisk er bygget ved hjælp af en vektordatabase hydreret med vektorkodede vidensartikler.
Applikationsoversigt
Følgende diagram viser strukturen af den endelige ansøgning.
I denne applikation bruger vi Haystack Indexing Pipeline til at administrere uploadede dokumenter og indeksere dokumenter og Haystack Query Pipeline til at udføre videnhentning fra indekserede dokumenter.
Haystack Indexing Pipeline inkluderer følgende trin på højt niveau:
- Upload et dokument.
- Initialiser
DocumentStore
og indeksere dokumenter.
Vi bruger OpenSearch som vores DocumentStore og en høstak indekseringspipeline at forbehandle og indeksere vores filer til OpenSearch. Høstak Filkonverterere , Forprocessor giver dig mulighed for at rense og forberede dine råfiler til at være i en form og et format, som din naturlige sprogbehandling (NLP) pipeline og sprogmodel kan håndtere. Den indekseringspipeline, vi har brugt her, bruger også sentence-transformers/all-MiniLM-L12-v2
at skabe indlejringer til hvert dokument, som vi bruger til effektiv genfinding.
Haystack Query Pipeline inkluderer følgende trin på højt niveau:
- Vi sender en forespørgsel til RAG-rørledningen.
- An EmbeddingRetriever komponent fungerer som et filter, der henter de mest relevante
top_k
dokumenter fra vores indekserede dokumenter i OpenSearch. Vi bruger vores valg af indlejringsmodel til at indlejre både forespørgslen og dokumenterne (ved indeksering) for at opnå dette. - De hentede dokumenter er indlejret i vores prompt til Falcon-40b-instruct-modellen.
- LLM vender tilbage med et svar, der er baseret på de hentede dokumenter.
Til modelimplementering bruger vi SageMaker JumpStart, som forenkler implementering af modeller ved et enkelt tryk på en knap. Selvom vi har brugt og testet Falcon-40b-instruct til dette eksempel, kan du bruge enhver Hugging Face-model, der er tilgængelig på SageMaker.
Den endelige løsning er tilgængelig på høstak-salviemager repository og bruger OpenSearch-webstedet og dokumentationen (til OpenSearch 2.7) som vores eksempeldata til at udføre genfinding af udvidede spørgsmålssvar på.
Forudsætninger
Den første ting at gøre, før vi kan bruge nogen AWS-tjenester, er at sikre, at vi har tilmeldt os og oprettet en AWS-konto. Så skal du oprette en administrativ bruger og gruppe. For instruktioner om begge trin, se Konfigurer Amazon SageMaker-forudsætninger.
For at kunne bruge Haystakken skal du installere farm-haystack
pakke med de nødvendige afhængigheder. For at opnå dette skal du bruge requirements.txt
fil i GitHub repository ved at løbe pip install requirements.txt
.
Indekser dokumenter til OpenSearch
Haystack tilbyder en række forbindelser til databaser, som kaldes DocumentStores
. Til denne RAG-arbejdsgang bruger vi OpenSearchDocumentStore
. Eksemplet Repository omfatter en indekseringspipeline og AWS CloudFormation skabelon at oprette en OpenSearchDocumentStore
med dokumenter, der er gennemgået fra OpenSearch-webstedet og dokumentationssider.
For at få en NLP-applikation til at fungere til produktionsbrug, ender vi ofte med at skulle tænke på dataforberedelse og rengøring. Dette er dækket af Høstak-indekseringsrørledninger, som giver dig mulighed for at designe dine egne dataforberedelsestrin, som i sidste ende skriver dine dokumenter til databasen efter eget valg.
En indekseringspipeline kan også omfatte et trin til at oprette indlejringer til dine dokumenter. Dette er meget vigtigt for genfindingstrinnet. I vores eksempel bruger vi sætnings-transformere/alle-MiniLM-L12-v2 som vores indlejringsmodel. Denne model bruges til at skabe indlejringer af alle vores indekserede dokumenter, men også brugerens forespørgsel på forespørgselstidspunktet.
For at indeksere dokumenter i OpenSearchDocumentStore
, giver vi to muligheder med detaljerede instruktioner i README af eksempeldepotet. Her gennemgår vi trinene til indeksering til en OpenSearch-tjeneste implementeret på AWS.
Start en OpenSearch-tjeneste
Brug det medfølgende CloudFormation skabelon at oprette en OpenSearch-tjeneste på AWS. Ved at køre følgende kommando har du en tom OpenSearch-tjeneste. Du kan derefter enten vælge at indeksere de eksempeldata, vi har leveret, eller bruge dine egne data, som du kan rense og forbehandle ved hjælp af Høstak-indekseringsrørledning. Bemærk, at dette skaber en instans, der er åben til internettet, som ikke anbefales til produktionsbrug.
Tillad cirka 30 minutter, før stak-lanceringen er fuldført. Du kan kontrollere dens fremskridt på AWS CloudFormation-konsollen ved at navigere til Stakke side og leder efter den navngivne stak HaystackOpensearch
.
Indekser dokumenter i OpenSearch
Nu hvor vi har en kørende OpenSearch-tjeneste, kan vi bruge OpenSearchDocumentStore-klassen til at oprette forbindelse til den og skrive vores dokumenter til den.
For at få værtsnavnet til OpenSearch skal du køre følgende kommando:
Først eksporter du følgende:
Så kan du bruge opensearch_indexing_pipeline.py
script til at forbehandle og indeksere de leverede demodata.
Hvis du gerne vil bruge dine egne data, skal du ændre indekseringspipelinen i opensearch_indexing_pipeline.py
at medtage FileConverter , Forprocessor opsætningstrin, du har brug for.
Implementer pipeline til besvarelse af spørgsmål med udvidet hentning
Nu hvor vi har indekseret data i OpenSearch, kan vi udføre spørgsmålssvar på disse dokumenter. Til denne RAG-pipeline bruger vi Falcon-40b-instruct-modellen, som vi har implementeret på SageMaker JumpStart.
Du har også mulighed for at implementere modellen programmatisk fra en Jupyter notesbog. For instruktioner henvises til GitHub repo.
- Søg efter Falcon-40b-instruct-modellen på SageMaker JumpStart.
- Implementer din model på SageMaker JumpStart, og noter slutpunktets navn.
- Eksporter følgende værdier:
- Kør
python rag_pipeline.py
.
Dette vil starte et kommandolinjeværktøj, der venter på en brugers spørgsmål. Lad os for eksempel spørge "Hvordan kan jeg installere OpenSearch cli?"
Dette resultat er opnået, fordi vi har defineret vores prompt i Haystack PromptTemplate at være følgende:
Yderligere tilpasninger
Du kan foretage yderligere tilpasninger til forskellige elementer i løsningen, såsom følgende:
- Data – Vi har leveret OpenSearch dokumentation , hjemmeside data som eksempeldata. Husk at ændre
opensearch_indexing_pipeline.py
script, der passer til dine behov, hvis du vælger at bruge dine egne data. - Modellen – I dette eksempel har vi brugt Falcon-40b-instruct-modellen. Du er fri til at implementere og bruge enhver anden Hugging Face-model på SageMaker. Bemærk, at ændring af en model sandsynligvis vil betyde, at du skal tilpasse din prompt til noget, den er designet til at håndtere.
- Spørgsmålet – Til dette indlæg har vi lavet vores eget
PromptTemplate
der instruerer modellen til at besvare spørgsmål baseret på den angivne kontekst og svare "Jeg ved det ikke", hvis konteksten ikke indeholder relevant information. Du kan ændre denne prompt for at eksperimentere med forskellige prompter med Falcon-40b-instruct. Du kan også blot trække nogle af vores meddelelser fra PromptHub. - Indlejringsmodellen – Til genfindingstrinnet bruger vi en letvægtsindlejringsmodel: sætnings-transformere/alle-MiniLM-L12-v2. Du kan dog også ændre dette til dine behov. Husk at ændre de forventede indlejringsdimensioner i din
DocumentStore
derfor. - Antallet af hentede dokumenter – Du kan også vælge at lege med antallet af dokumenter, du beder om
EmbeddingRetriever
at hente for hver forespørgsel. I vores opsætning er dette sat til top_k=5. Du kan eksperimentere med at ændre denne figur for at se, om at give mere kontekst forbedrer nøjagtigheden af dine resultater.
Produktionsberedskab
Den foreslåede løsning i dette indlæg kan fremskynde tiden til værdi af projektudviklingsprocessen. Du kan bygge et projekt, der er nemt at skalere med sikkerheds- og privatlivsmiljøet på AWS Cloud.
Af hensyn til sikkerhed og privatliv giver OpenSearch Service databeskyttelse med identitets- og adgangsstyring , forebyggelse af forvirret proxy på tværs af tjenester. Du kan anvende finmasket brugeradgangskontrol, så brugeren kun kan få adgang til de data, de har tilladelse til at få adgang til. Derudover giver SageMaker konfigurerbare sikkerhedsindstillinger for adgangskontrol, databeskyttelseog logning og overvågning. Du kan beskytte dine data i hvile og under transport med AWS Key Management Service (AWS KMS) taster. Du kan også spore loggen for SageMaker-modelimplementering eller slutpunktsadgang ved hjælp af amazoncloudwatch. For mere information, se Overvåg Amazon SageMaker med Amazon CloudWatch.
For den høje skalerbarhed på OpenSearch Service kan du justere den ved størrelsen af dine OpenSearch Service-domæner og beskæftiger operationel bedste praksis. Du kan også drage fordel af automatisk skalering af dit SageMaker-slutpunkt – det kan du automatisk skalerer SageMaker-modeller at justere endepunktet både når trafikken øges eller ressourcerne ikke bliver brugt.
Ryd op
For at spare omkostninger skal du slette alle de ressourcer, du har implementeret som en del af dette indlæg. Hvis du har startet CloudFormation-stakken, kan du slette den via AWS CloudFormation-konsollen. På samme måde kan du slette alle SageMaker-slutpunkter, du måtte have oprettet via SageMaker-konsollen.
Konklusion
I dette indlæg viste vi, hvordan man bygger en end-to-end generativ AI-applikation til virksomhedssøgning med RAG ved at bruge Haystack-pipelines og Falcon-40b-instruktionsmodellen fra SageMaker JumpStart og OpenSearch Service. RAG-tilgangen er kritisk i virksomhedssøgning, fordi den sikrer, at de genererede svar er inden for domænet og derfor dæmper hallucinationer. Ved at bruge Haystack-pipelines er vi i stand til at orkestrere LLM-applikationer, der består af forskellige komponenter som modeller og vektordatabaser. SageMaker JumpStart giver os en et-klik-løsning til implementering af LLM'er, og vi brugte OpenSearch Service som vektordatabase for vores indekserede data. Du kan begynde at eksperimentere og bygge RAG proofs of concept til dine generative AI-applikationer til din virksomhed ved at bruge de trin, der er beskrevet i dette indlæg og kildekoden, der er tilgængelig i GitHub repository.
Om forfatterne
Tuana Celik er Lead Developer Advocate hos deepset, hvor hun fokuserer på open source-fællesskabet for Haystack. Hun leder funktionen udviklerrelationer og taler jævnligt til arrangementer om NLP og laver læringsmateriale til fællesskabet.
Roy Allela er Senior AI/ML Specialist Solutions Architect hos AWS med base i München, Tyskland. Roy hjælper AWS-kunder – fra små startups til store virksomheder – med at træne og implementere store sprogmodeller effektivt på AWS. Roy er passioneret omkring beregningsmæssige optimeringsproblemer og forbedring af ydeevnen af AI-arbejdsbelastninger.
Mia Chang er en ML Specialist Solutions Architect for Amazon Web Services. Hun arbejder med kunder i EMEA og deler bedste praksis for at køre AI/ML-arbejdsbelastninger i skyen med sin baggrund i anvendt matematik, datalogi og AI/ML. Hun fokuserer på NLP-specifikke arbejdsbelastninger og deler sin erfaring som konferencetaler og bogforfatter. I sin fritid nyder hun at vandre, brætspil og brygge kaffe.
Inavn Syed er Startup Solutions Architect hos AWS, med stort fokus på at assistere B2B og SaaS startups med at skalere og opnå vækst. Han besidder en dyb passion for serverløse arkitekturer og AI/ML. I sin fritid nyder Inaam kvalitetsøjeblikke med sin familie og hengiver sig til sin kærlighed til cykling og badminton.
David Tippett er Senior Developer Advocate, der arbejder på open source OpenSearch hos AWS. Hans arbejde involverer alle områder af OpenSearch fra søgning og relevans til observerbarhed og sikkerhedsanalyse.
- 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. Automotive/elbiler, Kulstof, CleanTech, Energi, Miljø, Solenergi, Affaldshåndtering. Adgang her.
- PlatoHealth. Bioteknologiske og kliniske forsøgs intelligens. Adgang her.
- ChartPrime. Løft dit handelsspil med ChartPrime. Adgang her.
- BlockOffsets. Modernisering af miljømæssig offset-ejerskab. Adgang her.
- Kilde: https://aws.amazon.com/blogs/machine-learning/build-production-ready-generative-ai-applications-for-enterprise-search-using-haystack-pipelines-and-amazon-sagemaker-jumpstart-with-llms/
- :har
- :er
- :ikke
- :hvor
- $OP
- 100
- 12
- 13
- 30
- 500
- 7
- 8
- a
- I stand
- Om
- fremskynde
- adgang
- udrette
- derfor
- Konto
- nøjagtighed
- opnå
- opnået
- opnå
- handlinger
- tilpasse
- Yderligere
- Derudover
- administrative
- Fordel
- advent
- fortaler
- AI
- AI / ML
- Alle
- tillade
- tillader
- sammen
- også
- Skønt
- Amazon
- Amazon SageMaker
- Amazon SageMaker JumpStart
- Amazon Web Services
- blandt
- an
- analytics
- ,
- besvare
- enhver
- Apache
- Anvendelse
- applikationer
- anvendt
- tilgang
- cirka
- ER
- områder
- omkring
- Array
- Kunst
- artikler
- AS
- bistår
- At
- lyd
- augmented
- forfatter
- autoriseret
- auto
- til rådighed
- AWS
- AWS CloudFormation
- B2B
- baggrund
- bund
- baseret
- BE
- fordi
- bliver
- før
- være
- jf. nedenstående
- BEDSTE
- bedste praksis
- Big
- Blog
- board
- Brætspil
- krop
- bog
- både
- bred
- bygge
- Bygning
- bygget
- bundter
- men
- .
- by
- kaldet
- CAN
- kapaciteter
- tilfælde
- lave om
- skiftende
- kontrollere
- valg
- Vælg
- vælge
- valgte
- klasse
- Rengøring
- tættere
- Cloud
- kode
- Kaffe
- Fælles
- samfund
- selskab
- komplement
- fuldføre
- komponent
- komponenter
- omfatter
- computer
- Datalogi
- Konceptet
- Konference
- forvirret
- Tilslut
- Overvejer
- Konsol
- indeholdt
- indhold
- sammenhæng
- kontrol
- konversation
- samtale AI
- Omkostninger
- dækket
- Dækker
- skabe
- oprettet
- skaber
- kritisk
- Kunder
- data
- Dataforberedelse
- databeskyttelse
- Database
- databaser
- DBS
- deal
- dyb
- dyb læring
- definerede
- demo
- afhængigheder
- indsætte
- indsat
- implementering
- implementering
- Design
- konstrueret
- designe
- detaljeret
- udviklet
- Udvikler
- udviklere
- Udvikling
- forskellige
- digital
- digitalisering
- størrelse
- direkte
- do
- dokumentet
- dokumentation
- dokumenter
- gør
- Er ikke
- Don
- Dont
- hver
- let
- effektivitet
- effektiv
- effektivt
- enten
- elementer
- Integrer
- indlejret
- indlejring
- EMEA
- muliggøre
- ende
- ende til ende
- Endpoint
- Motorer
- forbedre
- sikre
- sikrer
- Enterprise
- enheder
- enhed
- Miljø
- evaluering
- begivenheder
- at alt
- eksempel
- forventet
- erfaring
- Oplevelser
- eksperiment
- eksport
- ekstern
- Ansigtet
- familie
- Figur
- File (Felt)
- Filer
- filtrere
- endelige
- Fornavn
- passer
- fleksibel
- fleksibelt
- Fokus
- fokuserer
- efter
- Til
- format
- Foundation
- Framework
- Gratis
- fra
- fuldt ud
- funktion
- Spil
- generere
- genereret
- genererer
- generation
- generative
- Generativ AI
- Tyskland
- få
- given
- gruppe
- Vækst
- håndtere
- Have
- have
- he
- hjælper
- hende
- link.
- Høj
- højt niveau
- stærkt
- hans
- værter
- Hvordan
- How To
- Men
- HTML
- http
- HTTPS
- Hub
- i
- Identity
- if
- KIMOs Succeshistorier
- gennemføre
- vigtigt
- forbedring
- in
- omfatter
- omfatter
- Herunder
- øget
- stigende
- indeks
- indekseret
- indekser
- oplysninger
- Infrastruktur
- indgang
- installere
- instans
- anvisninger
- Internet
- ind
- IT
- ITS
- jpg
- Nøgle
- nøgler
- Kend
- viden
- Knowledge Management
- Sprog
- stor
- lancere
- lanceret
- føre
- Leads
- læring
- Licens
- Licenseret
- letvægt
- ligesom
- Sandsynlig
- GRÆNSE
- begrænsninger
- Line (linje)
- LLM
- log
- logning
- leder
- kærlighed
- maskine
- machine learning
- lavet
- lave
- maerker
- Making
- administrere
- lykkedes
- ledelse
- materialer
- matematik
- maksimal
- Kan..
- betyde
- Medier
- metoder
- Metrics
- millioner
- minutter
- formildende
- ML
- model
- modeller
- ændre
- Moduler
- Moments
- overvågning
- mere
- mest
- bevæge sig
- navn
- Som hedder
- Natural
- Natural Language Processing
- navigering
- Behov
- behov
- NLP
- notesbog
- nummer
- of
- tilbyde
- Tilbud
- on
- kun
- åbent
- open source
- Open source software
- betjene
- optimering
- Option
- Indstillinger
- or
- organisatorisk
- Organiseret
- original
- Andet
- vores
- skitseret
- i løbet af
- egen
- pakke
- side
- sider
- del
- partnere
- lidenskab
- lidenskabelige
- Udfør
- ydeevne
- pipeline
- plato
- Platon Data Intelligence
- PlatoData
- Leg
- Vær venlig
- Punkt
- Populær
- Indlæg
- vigtigste
- praksis
- forberedelse
- Forbered
- Beskyttelse af personlige oplysninger
- problemer
- behandle
- forarbejdning
- produktion
- Progress
- projekt
- beviser
- foreslog
- proprietære
- beskytte
- beskyttelse
- prototype
- give
- forudsat
- giver
- leverer
- proxy
- offentlige
- Skub ud
- kvalitet
- forespørgsler
- spørgsmål
- Spørgsmål
- Raw
- modtaget
- nylige
- Anbefaling
- anbefales
- regelmæssigt
- relationer
- relevans
- relevant
- pålidelig
- huske
- Repository
- anmode
- kræver
- påkrævet
- Krav
- Ressourcer
- svar
- reaktioner
- REST
- begrænse
- resultere
- Resultater
- afkast
- Rich
- højre
- roy
- Kør
- kører
- SaaS
- sagemaker
- Gem
- siger
- Skalerbarhed
- skalerbar
- Scale
- skalering
- Videnskab
- Søg
- sikkerhed
- se
- send
- sender
- senior
- Serverless
- tjener
- tjeneste
- Tjenester
- sæt
- indstillinger
- setup
- Shape
- Aktier
- hun
- SKIB
- bør
- Vis
- udstillingsvindue
- fremvist
- underskrevet
- lignende
- Tilsvarende
- Simpelt
- ganske enkelt
- lille
- So
- Software
- Alene
- solid
- løsninger
- Løsninger
- nogle
- noget
- Kilde
- kildekode
- Space
- Højttaler
- Taler
- specialist
- specialiserede
- Stabilitet
- stable
- Stage
- starte
- opstart
- Nystartede
- Trin
- Steps
- lagring
- stærk
- struktur
- sådan
- suite
- sikker
- Tag
- tager
- teknikker
- skabeloner
- afprøvet
- at
- The Source
- Them
- derefter
- derved
- derfor
- Disse
- de
- ting
- tror
- denne
- tusinder
- Gennem
- tid
- til
- sammen
- spor
- Trafik
- transit
- troværdig
- to
- typen
- typisk
- Ultimativt
- under
- uploadet
- us
- brug
- anvendte
- Bruger
- brugere
- bruger
- ved brug af
- nytte
- værdi
- Værdier
- forskellige
- via
- vision
- venter
- we
- web
- webservices
- Hjemmeside
- hvornår
- som
- vilje
- med
- inden for
- ord
- Arbejde
- workflow
- arbejder
- virker
- ville
- skriver
- yaml
- år
- Du
- Din
- zephyrnet