Maskinoversættelse · Engelsk original

MADLAD-400 Oversættelse (On- Device, 400+ Languages)

MADLAD-400-3B-MT er en T5 v1.1 encoder- dekoder model fra Google uddannet til many- to- mange maskinoversættelse på tværs af 400+ sprog. Apache 2.0. Soniqo bygge løbere som kvantiseret MLX safetensorer (INT4 / INT8) den Apple Silicon med ingen cloud opkald. Smid det efter ASR til direkte billedoptagelse, efter TTS prep for flersprogede voice agents, eller bruge det selvstændigt.

Rør fra ASR

speech transcribe meeting.wav | speech translate --to es - samme binære, målsprog er det eneste nødvendige input. Kildesprog er auto- detekteret af encoder; du kun angive, hvad du ønsker det oversat til.

Hurtig start

import MADLADTranslation

let translator = try await MADLADTranslator.fromPretrained()

// Greedy decode (recommended default)
let es = try translator.translate("Hello, how are you?", to: "es")
// → "Hola, ¿cómo estás?"

let zh = try translator.translate("Where is the library?", to: "zh")
// → "图书馆在哪里?"

// Streaming
for try await piece in translator.translateStream("Good morning", to: "fr") {
    print(piece, terminator: "")
}

CLI

speech translate "Hello, how are you?" --to es
speech translate "Bonjour" --to en --quantization int8
speech translate "Hello world" --to es --stream
speech translate --to fr --json    # JSON with timing metrics

# Pipe from ASR
speech transcribe meeting.wav | speech translate --to es

Arkitektur

T5 v1.1 encoder- dekoder, ~ 3B parametre. 32 encoder + 32 dekoder lag, d_model = 1024, d_kv = 128, num_heads = 16, GELU FFN (d_ff = 8192). Positionsinformation ankommer via en lært relativ partiskhed i positionen (32 spande, max afstand 128) i stedet for position indlejringer - tovejs i encoder, ensrettet (kun past-) i dekoderen. Situationstabellen bor kun på det første lag af hver stak og er formeret gennem efterfølgende lag. Opmærksomhed scores ikke skaleret af 1/√d_k - Det er en T5 quirk.

Cross- opmærksomhed K / V er beregnet én gang fra encoder output og genbruges for hvert dekodertrin (cachet i DecoderLayerCache.crossAttn). Dekoder selv- opmærksomhed KV cache vokser pr genereret token. Greedy dekodning er standard og anbefales til oversættelse; temperatur / top- k / top- p prøvetagning er udsat for paraprase- stil brug.

Model Variants

VariantKvantificeringStørrelseBeregnHuggingFace
MADLAD-400-3B-MTINT4~ 1,7 GBMetal GPU (MLX)aufklarer / MADLAD400-3B-MT-MLX (int4 /)
MADLAD-400-3B-MTINT8~ 3,1 GBMetal GPU (MLX)aufklarer / MADLAD400-3B-MT-MLX (int8 /)

Målsprog

Angiv målet som sprogkoden i MADLADs ordforråd (typisk ISO 639- 1 som es, fr, zh, ja, plus 400+ regionale varianter såsom yue for Cantonese min_nan for Hokkien). Den proximizer løser <2{lang}> via direkte ordforråd opslag og kast MADLADTranslationError.unsupportedLanguage hvis koden ikke genkendes. Kildesprog detekteres automatisk fra inddata - du angiver det ikke.

// Errors out if the language code isn't in MADLAD's vocab.
do {
    let _ = try translator.translate("Hello", to: "xx")
} catch MADLADTranslationError.unsupportedLanguage(let code) {
    print("MADLAD doesn't support: \(code)")
}

Konfiguration af prøveudtagning

let sampling = TranslationSamplingConfig(
    temperature: 0.0,        // greedy (default, recommended for MT)
    topK: 0,                 // disabled
    topP: 1.0,               // disabled
    maxTokens: 256,
    repetitionPenalty: 1.0
)
let result = try translator.translate("Long-form text…", to: "es", sampling: sampling)
ParameterStandardVarebeskrivelse
temperature0.00 = grådig. Bump til 0.6-0.8 for parafrase variation.
topK0Top- K cutoff (0 = deaktiveret).
topP1.0Nucleus sampling cutoff.
maxTokens256Hårdt låg på udgangslængde.
repetitionPenalty1.0& gt; 1 straffer nyligt genererede tokens.

Konvertering

MLX-safetensorerne ved aufklarer / MADLAD400-3B-MT-MLX quantized from the original google / madlad400-3b-mt via mx.quantize (gruppestørrelse 64). q/k/v/o, wi_0/wi_1/wo, lm_head, og shared indlejring er kvantiseret; lag norm skalaer og relative- position- bias tabel holdes som fp16. MADLAD eneste HF indlejring nøgle (decoder.embed_tokens.weight) er omdøbt til shared.weight på konverteringstid, så både encoder og dekoder genbruge det.

Licens

Apache 2.0 google / madlad400-3b-mt). Model kort lister det fulde sæt af understøttede sprogkoder.