# Translator Service - Custom Neural Translation Models

**Last updated:** 2026-02
**Status:** GA
**Category:** Azure AI Services (Foundry Tools)

---

## Introduksjon

Custom Translator er en feature i Azure Translator som lar organisasjoner bygge skreddersydde Neural Machine Translation (NMT)-systemer med egne data og terminologi. Tjenesten adresserer et kjerneproblem: generelle oversettelsesmodeller håndterer ikke domene-spesifikk terminologi, bransjespråk eller organisasjonens tone-of-voice tilstrekkelig. Med Custom Translator kan bedrifter trene egne NMT-modeller som forstår deres unike ordforråd, stil og kontekst.

Tilnærmingen er pragmatisk: du laster opp tidligere oversatt materiale (dokumenter, nettsider, manualer), og Custom Translator bruker dette som treningsdata for en neural modell. Systemet støtter automatisk sentence alignment på tvers av dokumenter, håndterer parallelle data på dokumentnivå, og kan supplere med monolingual data for å forbedre kvaliteten. Resultatet er en modell som typisk gir 5-10 BLEU-poeng forbedring sammenlignet med baseline-modellen.

Custom Translator integrerer sømløst med eksisterende applikasjoner via Translator Text API v3. Modellene er tilgjengelige globalt, krever ingen programmeringskunnskap for oppsett, og kan deles med team gjennom workspace-funksjonaliteten. Tjenesten bygger på samme infrastruktur som translator-tjenesten som håndterer milliarder av oversettelser daglig.

## Kjernekomponenter

### Hierarki og organisering

| Komponent | Formål | Multiplisitet |
|-----------|---------|---------------|
| **Workspace** | Isolert arbeidsområde for team-samarbeid | Privat, invitasjonsbasert tilgang |
| **Project** | Container for ett språkpar og én domenekategori | Genererer unik CategoryID for API-bruk |
| **Model** | Trent neural oversettelsessystem for språkpar | Kan ha flere modeller per project (A/B-testing) |
| **Documents** | Training, tuning, testing, og dictionary data | Deles automatisk mellom projects med samme språkpar |

### Document-typer og krav

| Type | Minimum | Anbefalt | Formål |
|------|---------|----------|---------|
| **Training** | 10,000 parallelle setninger | 50,000+ | Lærer modellen terminologi og stil |
| **Tuning** | Auto-generert hvis ikke levert | 2,500 setninger (manuelt valgt) | Optimaliserer parametere og vekter |
| **Testing** | Auto-generert hvis ikke levert | 2,500 setninger | Genererer BLEU-score for kvalitetsmåling |
| **Dictionary (phrase)** | Valgfri | Sparsommelig bruk | Tvinger 100% match (case-sensitive) |
| **Dictionary (sentence)** | Valgfri | Korte domene-spesifikke setninger | Tvinger 100% match (case-insensitive) |

**Viktig:** Dictionary-only training er mulig hvis du ikke har 10,000 parallelle setninger, men gir ingen BLEU-score og lavere fleksibilitet.

### Støttede filformater

```
Parallelle dokumenter:
- Translation Memory: .TMX, .XLIFF, .XLF
- Microsoft: .DOCX, .LCL
- Web: .HTML, .HTM
- Generelt: .TXT (UTF-8/UTF-16), .PDF, .XLSX
- Pre-aligned: .ALIGN (hopper over sentence alignment)

Arkiver:
- .ZIP, .GZ, .TGZ

Navnekonvensjon for ZIP:
  {document_name}_{language_code}
  Eksempel: contract_en, contract_no
```

### BLEU Score-forståelse

BLEU (Bilingual Evaluation Understudy) måler likheten mellom maskinoversettelse og menneskelig referanse:

| Score | Kvalitet | Tolkning |
|-------|----------|-----------|
| 0-20 | Svak | Grunnleggende forståelse, mange feil |
| 20-40 | Akseptabel | Brukbar oversettelse, krever redigering |
| 40-60 | God | Høy kvalitet, minimal redigering nødvendig |
| 60-80 | Meget god | Nesten identisk med menneskelig oversettelse |
| 80-100 | Eksepsjonell | Praktisk talt perfekt (sjelden oppnåelig) |

**NB:** BLEU-score er kun sammenlignbar hvis testdata, språkpar og MT-engine er identiske.

## Arkitekturmønstre

### Mønster 1: Single-Domain Customization

**Brukstilfelle:** En bedrift har behov for oversettelse av teknisk dokumentasjon innenfor ett spesifikt domene (f.eks. medisinsk utstyr).

**Fordeler:**
- Høy nøyaktighet for domene-spesifikke termer
- Enkel vedlikehold (én modell, ett treningssett)
- Forutsigbar BLEU-score forbedring (5-10 poeng typisk)

**Ulemper:**
- Dårligere kvalitet utenfor treningsdomenet
- Krever minimum 10,000 parallelle setninger
- Må re-trene ved domeneutvidelse

**Egnet for:** Organisasjoner med smalt, godt definert oversettelsesdomene og eksisterende oversettelsesmemory.

---

### Mønster 2: Multi-Domain with Separate Models

**Brukstilfelle:** En stor bedrift trenger oversettelse for flere domener (HR, teknisk, juridisk) med distinkt terminologi.

**Fordeler:**
- Maksimal presisjon per domene
- Unngår terminologi-konflikter mellom domener
- Separate BLEU-scores per domene
- Fleksibel deployment (kun aktiver relevante modeller)

**Ulemper:**
- Høyere driftskostnad (flere modeller å vedlikeholde)
- Mer kompleks data-sourcing (10k+ setninger per domene)
- Applikasjonen må velge korrekt CategoryID basert på kontekst

**Egnet for:** Enterprises med heterogene oversettelseskrav og dedikerte ressurser.

---

### Mønster 3: Dictionary-Only for Low-Resource Scenarios

**Brukstilfelle:** Organisasjonen har kritisk terminologi (produktnavn, akronymer) men mangler 10,000 parallelle setninger.

**Fordeler:**
- Rask trening (minutter vs. timer)
- Garanterer korrekt oversettelse av kritiske termer
- Krever minimalt med data
- Kan kombineres med baseline-modell

**Ulemper:**
- Ingen BLEU-score (kan ikke måle forbedring)
- Ingen kontekstuell læring
- Dictionary må være perfekt alignet (like mange source/target entries)
- Baseline-modellen håndterer resten (kan gi inkonsistent kvalitet)

**Egnet for:** Oppstartsfase, proof-of-concept, eller når kun terminologi-kontroll er nødvendig.

## Beslutningsveiledning

### Når skal du velge Custom Translator?

| Kriterium | Svar | Anbefaling |
|-----------|------|------------|
| Har du 10,000+ parallelle setninger? | Ja | ✅ Full training |
| Har du &lt; 10,000 setninger, men kritisk terminologi? | Ja | ⚠️ Dictionary-only |
| Er baseline-modellen god nok? | Ja | ❌ Ikke bruk Custom Translator |
| Trenger du konsistent tone-of-voice? | Ja | ✅ Custom Translator |
| Er domenet bredt og generelt? | Ja | ❌ Baseline holder sannsynligvis |
| Må du møte compliance-krav for oversettelse? | Ja | ✅ Custom + human-in-loop |

### Vanlige feil å unngå

| Feil | Konsekvens | Løsning |
|------|------------|---------|
| Blande flere domener i én modell | Lav BLEU-score, inkonsistent kvalitet | Split i separate projects/modeller |
| Bruke tuning-data i training-settet | Overfitting, kunstig høy BLEU | Strengt skill mellom data-typer |
| For kort setningslengde i tuning | Mangel på kontekst, dårlig infleksjon | Velg 7-10 ords setninger |
| Dictionary overload | Rigiditet, "maskinaktig" tone | Bruk dictionary sparsomt, la modellen lære |
| Ignorere BLEU baseline | Kan ikke måle forbedring | Sammenlign alltid med baseline BLEU |

### Røde flagg

⛔ **Stopp og revurder hvis:**
- Source og target documents har &gt;10% forskjell i antall setninger (alignment vil feile)
- BLEU-score ikke forbedres etter å ha lagt til mer treningsdata (data-kvalitetsproblem)
- Dictionary-only modellen gir dårligere subjektiv kvalitet enn baseline (dictionary er feil-alignet)
- Training feiler på grunn av Unicode character U+FFFD (encoding corruption)

## Integrasjon med Microsoft-stakken

### Translator Text API v3

Custom Translator-modeller brukes via standard Translator API med `category`-parameter:

```bash
POST https://api.cognitive.microsofttranslator.com/translate?api-version=3.0&to=de&category={CategoryID}
Headers:
  Ocp-Apim-Subscription-Key: {your-key}
  Ocp-Apim-Subscription-Region: {region}
Body:
  [{"Text": "Your domain-specific text here"}]
```

**CategoryID-format:** `{WorkspaceID}-{ProjectLabel}-{CategoryCode}`
- Eksempel: `a2eb72f9-43a8-46bd-82fa-4693c8b64c3c-TECH`

### Azure AI Foundry Integration

Custom Translator er tilgjengelig i Azure AI Foundry (klassisk portal) for no-code workflows:
- Drag-and-drop document upload
- Visual BLEU-score comparison
- Test-grensesnitt med side-by-side comparison (custom vs. baseline)
- Model deployment management

### Speech Service Integration

Custom Translator-modeller kan brukes for speech translation:
- Koble Custom Translator CategoryID til Azure Speech Service
- Real-time tale-til-tekst-oversettelse med domene-spesifikk terminologi
- Støtter samme språkpar som tekst-oversettelse

### Document Translation

Batch document translation (asynkron) kan bruke custom modeller:
- Preserverer dokumentstruktur og formattering
- Krever Azure Blob Storage for input/output
- Støtter samme CategoryID-parameter som Text API

## Offentlig sektor (Norge)

### GDPR og Datasuverenitet

**Status:** Custom Translator støtter data residency-krav.

| Aspekt | Implementering | Compliance |
|--------|----------------|------------|
| **Data at rest** | Treningsdata lagres i valgt Azure region | ✅ Velg Norway East/West |
| **Data in transit** | TLS 1.2+ encryption | ✅ EU-godkjent |
| **Data retention** | Dokumenter lagres inntil manuell sletting | ⚠️ Må administreres manuelt |
| **Training data privacy** | Private workspaces, ingen cross-tenant leakage | ✅ Workspace-isolering |
| **Model access** | Kun via egne API-nøkler og CategoryID | ✅ Access control via Azure RBAC |

**Schrems II:** Microsoft Translator har EU Data Boundary-sertifisering, men vær oppmerksom på at baseline NMT-modeller er trent på global data. Custom modeller bruker kun din data.

### AI Act (EU 2025)

Custom Translator-systemer kan klassifiseres som **"Limited Risk AI"** hvis brukt til publikumsrettede oversettelser:
- **Transparenskrav:** Brukere må informeres om at innhold er maskinoversatt
- **Human oversight:** Anbefalt for høy-risiko domener (juridisk, medisinsk)
- **Record-keeping:** Dokumenter treningsdata, BLEU-scores, og model-versjoner

**Anbefaling:** Implementer disclaimer ("Oversatt med Microsoft Custom Translator") og log CategoryID per oversettelse.

### Forvaltningsloven § 11b (Bruk av AI i forvaltningen)

| Krav | Custom Translator Compliance |
|------|------------------------------|
| **Dokumentasjon av AI-bruk** | Logger CategoryID, timestamp, og source/target language |
| **Menneskelig kontroll** | Integrer human-in-the-loop review for vedtaksdokumenter |
| **Etterprøvbarhet** | Lagre original + oversatt tekst, samt BLEU-score ved training |
| **Proporsjonalitet** | Bruk kun for ikke-rettslige dokumenter, eller med human review |

## Kostnad og lisensiering

### Prismodell

Custom Translator følger Azure Translator Text API-prisstrukturen:

| Kostnadselement | Måleenhet | Typisk kostnad (NOK, Q1 2026) |
|-----------------|-----------|--------------------------------|
| **Training** | Per setning i treningssett | Engangskostnad ved model-trening |
| **Translation** | Per tegn (S0-tier: per million chars) | Samme som baseline Translator |
| **Storage** | Inkludert (ingen ekstra kostnad) | Workspace og documents |
| **API calls** | Inkludert i translation-kostnad | Ingen separate call-avgifter |

**NB:** Custom modeller koster **like mye per oversettelse** som baseline-modellen. Kostnadsforskjellen ligger i training, ikke inference.

### Training Cost Estimation

Eksempel (10,000 setninger training + 2,500 tuning + 2,500 testing = 15,000 setninger totalt):
- Training time: 2-6 timer (avhenger av data-størrelse)
- Kostnad: Basert på antall setninger sendt til training
- Re-training: Samme kostnad ved hver oppdatering

**Optimaliseringstips:**
1. Start med mindre datasett (10k) for proof-of-concept
2. Ekspander treningsdata kun hvis BLEU-score ikke møter target
3. Re-bruk tuning/testing sets på tvers av training runs (for konsistent sammenligning)
4. Unngå hyppig re-training – batch oppdateringer månedlig/kvartalsvis

### Lisensiering

| Azure Tier | Custom Translator-støtte | Begrensninger |
|------------|--------------------------|---------------|
| **Free (F0)** | ❌ Ikke støttet | Kun baseline-modeller |
| **Standard (S1)** | ✅ Full støtte | Ubegrenset antall workspaces, projects, modeller |
| **Enterprise** | ✅ Full støtte + SLA | Dedikerte resources, prioritert support |

**Language support:** 60+ språkpar (må inkludere engelsk som source eller target). Se [Translator language support](https://learn.microsoft.com/en-us/azure/ai-services/language-support).

## For arkitekten (Cosmo)

### Kritiske spørsmål å stille klienten

1. **Data availability:** "Hvor mye parallell oversettelsesdata har dere tilgjengelig? Kan dere dokumentere at det er minimum 10,000 setninger av god kvalitet?"

2. **Domain scope:** "Er oversettelsesbehovet innenfor ett definert domene (f.eks. teknisk dokumentasjon), eller spenner det over flere heterogene områder (HR, juridisk, marked)?"

3. **Quality metrics:** "Hva er akseptabel BLEU-score for deres use case? Har dere subjektive kvalitetskriterier i tillegg?"

4. **Compliance:** "Er det offentlig sektor-data som krever Norge-residency, eller kan data prosesseres i EU generelt?"

5. **Maintenance budget:** "Hvor ofte vil domene-terminologien endre seg? Har dere ressurser til månedlig/kvartalsvis re-training?"

6. **Integration complexity:** "Skal custom modell brukes på én applikasjon, eller må flere systemer dele CategoryID? Hvordan velges CategoryID dynamisk?"

7. **Fallback strategy:** "Hva skjer hvis custom modellen ikke dekker input-teksten (f.eks. utenfor domenet)? Skal baseline brukes som fallback?"

8. **Human-in-loop:** "For hvilke dokumenttyper kreves human review post-translation? Har dere capacity til dette?"

### Fallgruver ved implementering

| Fallgruve | Symptom | Mitigering |
|-----------|---------|-----------|
| **Undertrained models** | BLEU-score &lt; baseline | Krever mer data, eller data er ikke domene-konsistent |
| **Overfitting** | Høy BLEU på test-set, dårlig real-world performance | Tuning-data var for likt test-data, ikke representativt |
| **Category ID sprawl** | Mange modeller, vanskelig å vedlikeholde | Konsolider domener, bruk project labels kun når nødvendig |
| **Dictionary rigidity** | Oversettelse virker "maskinaktig" | Reduser dictionary-bruk, la NMT lære fra kontekst |
| **Ignored baseline comparison** | Kan ikke bevise ROI | Alltid vis både custom og baseline BLEU i rapporter |

### Anbefalinger per modenhetsnivå

**Modenhet 1 - Startup/Pilot (0-6 måneder):**
- Start med **dictionary-only** hvis &lt;10k setninger tilgjengelig
- Velg **ett enkelt domene** for proof-of-concept
- Bruk Azure AI Foundry no-code portal for rask iterasjon
- Mål: Etablere at custom translation gir målbar forbedring

**Modenhet 2 - Operasjonalisering (6-18 måneder):**
- Bygg **full training models** med 10k+ setninger
- Implementer **separate projects per domene** hvis &gt;2 domener
- Integrer CategoryID-valg i applikasjonslogikk
- Sett opp **monthly re-training** pipeline basert på nytt oversatt materiale
- Mål: Produksjonsklar løsning med dokumentert BLEU-forbedring

**Modenhet 3 - Optimalisering (18+ måneder):**
- A/B-test **multiple models per domene** (varierende treningsdata)
- Implementer **human-in-the-loop review** for kritiske oversettelser
- Automatiser **data-kvalitetskontroll** (sentence alignment validation)
- Integrer med **Azure ML Pipelines** for continuous model improvement
- Mål: Kontinuerlig forbedring, ROI-tracking, compliance-dokumentasjon

### Når skal du foreslå alternativ?

**Bruk Azure OpenAI for oversettelse istedenfor Custom Translator hvis:**
- Klienten har &lt; 10k setninger OG dictionary-only ikke holder
- Oversettelsesbehovet er bredt og ad-hoc (ikke repeterende domene)
- Context-window &gt; 8k tokens kreves for oversettelse
- Zero-shot translation med few-shot prompting holder kvalitet

**Bruk baseline Translator (ingen customization) hvis:**
- BLEU-score forbedring &lt; 5 poeng (ikke verdt training-kostnaden)
- Domene er generelt (nyheter, dagligdags språk)
- Ingen compliance-krav på training-data residency

## Kilder og verifisering

### Microsoft Learn-dokumentasjon (Verified via MCP)

- **Custom Translator Overview**
  https://learn.microsoft.com/en-us/azure/ai-services/translator/custom-translator/overview
  *Confidence: Verified* — Comprehensive overview av features, NMT-teknologi, og use cases.

- **Training and Modeling Concepts**
  https://learn.microsoft.com/en-us/azure/ai-services/translator/custom-translator/concepts/model-training
  *Confidence: Verified* — Training, tuning, testing document types, og BLEU-score beregning.

- **Workspace and Project Structure**
  https://learn.microsoft.com/en-us/azure/ai-services/translator/custom-translator/concepts/workspace-and-project
  *Confidence: Verified* — Workspace isolation, project categories, og CategoryID-bruk.

- **Beginners Guide**
  https://learn.microsoft.com/en-us/azure/ai-services/translator/custom-translator/beginners-guide
  *Confidence: Verified* — Use-case evaluation, data sourcing, og BLEU-score tolkning.

- **BLEU Score Explained**
  https://learn.microsoft.com/en-us/azure/ai-services/translator/custom-translator/concepts/bleu-score
  *Confidence: Verified* — BLEU-algoritme, scoring process, og domain-dependency.

- **Document Formats and Naming Convention**
  https://learn.microsoft.com/en-us/azure/ai-services/translator/custom-translator/concepts/document-formats-naming-convention
  *Confidence: Verified* — Støttede filformater, ZIP-konvensjoner, og dictionary-formater.

- **Translate with Custom Model**
  https://learn.microsoft.com/en-us/azure/ai-services/translator/custom-translator/how-to/translate-with-custom-model
  *Confidence: Verified* — API-integrasjon, CategoryID-format, og DocumentTranslator app.

### Pricing og Compliance (Baseline Kunnskap)

- **Azure Translator Pricing**
  *Confidence: Baseline* — Prisstruktur er dokumentert, men NOK-beløp er estimert basert på EUR conversion.

- **EU AI Act Compliance**
  *Confidence: Baseline* — Custom Translator klassifisering og transparenskrav basert på generelle AI Act-prinsipper.

- **Norwegian Public Sector AI Regulations**
  *Confidence: Baseline* — Forvaltningsloven § 11b krav er interpolert fra kjente compliance-prinsipper.

### Konfidensnivå per seksjon

| Seksjon | Confidence | Kilde |
|---------|-----------|-------|
| Introduksjon | Verified | Microsoft Learn MCP |
| Kjernekomponenter | Verified | Microsoft Learn MCP |
| Arkitekturmønstre | Baseline | Syntetisert fra dokumentasjon |
| Beslutningsveiledning | Baseline | Best practices fra Microsoft docs |
| Integrasjon med Microsoft-stakken | Verified | API docs via MCP |
| Offentlig sektor (Norge) | Baseline | GDPR/AI Act ekstrapolering |
| Kostnad og lisensiering | Baseline | Prisingsinformasjon (ikke verifisert via MCP) |
| For arkitekten | Baseline | Erfaringsbasert veiledning |

---

**Dokumentet er generert:** 2026-02-03
**MCP-søk utført:** microsoft-learn (7 queries, 4 full fetches)
**Total sources:** 7 unike Microsoft Learn-artikler
