{"licence":{"name":"CC BY-SA 4.0","spdx":"CC-BY-SA-4.0","url":"https://creativecommons.org/licenses/by-sa/4.0/","attribution":"Atlas, a bilingual technical dictionary (https://cmaintz.github.io/tech-atlas/)"},"id":"ai/encoder","url":{"en":"https://cmaintz.github.io/tech-atlas/en/terms/ai/encoder/","da":"https://cmaintz.github.io/tech-atlas/da/terms/ai/encoder/"},"term":{"en":"Encoder","da":"Encoder"},"aka":{"en":[],"da":[]},"domain":["ai"],"cluster":"model-architecture","layer":"model","status":"current","summary":{"en":"The half of a model that reads the whole input at once and turns it into embeddings that capture its meaning.","da":"Den halvdel af en model, der læser hele inputtet på én gang og gør det til embeddings, som fanger betydningen."},"body":{"formal":{"en":"A stack of neural network layers that takes a full sequence of tokens and, letting every token look both forwards and backwards, produces one embedding per token for later steps to use.","da":"En stak af lag i et neuralt netværk, der tager en hel række tokens og, ved at lade hvert token kigge både frem og tilbage, laver én embedding pr. token til brug i de næste trin."},"plain":{"en":"Like an interpreter who hears the whole sentence before saying anything, because a word at the very end can change what the first one meant.","da":"Som en tolk, der hører hele sætningen, før hun siger noget, fordi et ord helt til sidst kan ændre, hvad det første betød."},"inPractice":{"en":"At a district heating company, an IT developer sorts incoming customer emails with an encoder-only model such as BERT, which reads each message whole and labels it “bill”, “fault” or “moving house”.","da":"Hos et fjernvarmeselskab sorterer en IT-udvikler indgående kundemails med en ren encoder-model som BERT, der læser hver besked i sin helhed og mærker den “regning”, “fejl” eller “flytning”."},"whyItMatters":{"en":"Encoders handle search and sorting cheaply but cannot write new text, so knowing the difference lets you pick a smaller, faster tool when the job is only to understand text.","da":"Encodere klarer søgning og sortering billigt, men kan ikke skrive ny tekst, så kender man forskellen, kan man vælge et mindre og hurtigere værktøj, når opgaven kun er at forstå tekst."}},"deepDive":{"en":"A transformer encoder block consists of unmasked multi-head self-attention followed by a position-wise feed-forward network, each with a residual connection and layer normalisation. Because there is no causal mask, every output vector is a function of the entire input sequence, which is what \"bidirectional\" means in practice. The whole sequence is processed in one parallel forward pass; there is no autoregressive loop and no KV cache, and cost is dominated by the O(n²) attention over the input length. In the original encoder-decoder transformer, the encoder runs once per input and its final hidden states serve as the keys and values that every decoder layer reads through cross-attention.\n\nBERT (Devlin et al., 2019) established the encoder-only pattern. BERT-base has 12 layers, hidden size 768, 12 heads and about 110 million parameters; BERT-large has 24 layers, hidden size 1024 and about 340 million. Pretraining used masked language modelling: 15 % of token positions are selected, of which 80 % are replaced by [MASK], 10 % by a random token and 10 % left unchanged, and the model predicts the originals; a next-sentence-prediction task was added but RoBERTa (2019) showed it could be dropped. Input length was fixed at 512 positions, a limit that shaped chunking practice for years; later encoders such as ModernBERT (2024) extend it to 8,192 tokens. ELECTRA replaced masking with replaced-token detection, which is more sample-efficient.\n\nTo use an encoder for a task, a small head is placed on top: a linear classifier on the pooled output for sentence classification, a per-token classifier for named-entity recognition, or start and end pointers for extractive question answering. For embeddings, the per-token vectors must be pooled into one, usually by mean pooling or by taking the special [CLS] vector, and raw BERT outputs pooled this way are poor similarity vectors until the model is further trained contrastively, as Sentence-BERT did. The word \"encoder\" is also used more broadly for any network that maps an input to a representation, such as the ViT image encoder in a multimodal model or the audio encoder in Whisper.\n\nThe practical trade-off against decoders is that an encoder sees full context in both directions and is cheap to run, which suits classification, extraction, retrieval and reranking, but it has no efficient way to generate open-ended text: filling masks one at a time is possible but slow and of poor quality. For narrow classification tasks on a fixed label set, a fine-tuned encoder of a few hundred million parameters is often as accurate as prompting a large generative model, at a fraction of the latency and cost.","da":"En encoderblok i en transformer består af umaskeret multi-head self-attention efterfulgt af et positionsvist feed-forward-netværk, hver med residualforbindelse og lagnormalisering. Da der ikke er nogen kausal maske, er hver outputvektor en funktion af hele inputsekvensen, og det er, hvad \"tovejs\" betyder i praksis. Hele sekvensen behandles i ét parallelt forward-gennemløb; der er ingen autoregressiv løkke og ingen KV-cache, og prisen domineres af den kvadratiske attention, O(n²), over inputlængden. I den oprindelige encoder-decoder-transformer kører encoderen én gang pr. input, og dens sidste skjulte tilstande fungerer som de keys og values, som hvert decoderlag læser via cross-attention.\n\nBERT (Devlin m.fl., 2019) fastlagde mønstret for rene encodere. BERT-base har 12 lag, skjult dimension 768, 12 hoveder og omkring 110 millioner parametre; BERT-large har 24 lag, skjult dimension 1024 og omkring 340 millioner. Fortræningen brugte masked language modelling: 15 % af tokenpositionerne udvælges, hvoraf 80 % erstattes med [MASK], 10 % med et tilfældigt token og 10 % står uændret, og modellen forudsiger de oprindelige; en opgave med forudsigelse af næste sætning blev tilføjet, men RoBERTa (2019) viste, at den kunne undværes. Inputlængden lå fast på 512 positioner, en grænse, der i årevis prægede praksis for chunking; nyere encodere som ModernBERT (2024) udvider den til 8.192 tokens. ELECTRA erstattede maskering med detektion af udskiftede tokens, hvilket udnytter træningsdata bedre.\n\nFor at bruge en encoder til en opgave lægges et lille hoved ovenpå: en lineær klassifikator på det samlede output til klassifikation af sætninger, en klassifikator pr. token til genkendelse af navngivne enheder eller start- og slutpegere til ekstraktiv spørgsmålsbesvarelse. Til embeddings skal vektorerne pr. token samles til én, typisk ved mean pooling eller ved at tage den særlige [CLS]-vektor, og rå BERT-output samlet på den måde er dårlige lighedsvektorer, indtil modellen trænes videre kontrastivt, som Sentence-BERT gjorde. Ordet \"encoder\" bruges også bredere om ethvert netværk, der afbilder et input til en repræsentation, fx ViT-billedencoderen i en multimodal model eller lydencoderen i Whisper.\n\nDen praktiske afvejning over for decodere er, at en encoder ser fuld kontekst i begge retninger og er billig at køre, hvilket passer til klassifikation, udtræk, søgning og genrangering, men den har ingen effektiv måde at generere fri tekst på: At udfylde masker én ad gangen kan lade sig gøre, men er langsomt og giver ringe kvalitet. Til smalle klassifikationsopgaver med et fast sæt etiketter er en finjusteret encoder på nogle hundrede millioner parametre ofte lige så præcis som at prompte en stor generativ model, til en brøkdel af ventetiden og prisen."},"edges":[{"type":"requires","to":"ai/token","confidence":"high","strength":"normal"},{"type":"requires","to":"ai/embedding","confidence":"high","strength":"normal"},{"type":"requires","to":"ai/attention-mechanism","confidence":"high","strength":"normal"},{"type":"part-of","to":"ai/transformer","why":{"en":"The original transformer paired an encoder that reads the input with a decoder that writes the output.","da":"Den oprindelige transformer parrede en encoder, der læser inputtet, med en decoder, der skriver outputtet."},"confidence":"high","strength":"primary"}],"depth":3,"sources":[{"title":"Vaswani et al. (2017), Attention Is All You Need","tier":"reference"},{"title":"Devlin et al. (2019), BERT - Pre-training of Deep Bidirectional Transformers for Language Understanding","tier":"reference"},{"title":"Jurafsky & Martin, Speech and Language Processing (3rd ed. draft)","tier":"textbook"}],"draft":true}