Strojový překlad · Anglický originál

MADLAD-400 překlad (On- Device, 400+ jazyky)

MADLAD-400-3B-MT je T5 v1.1 enkoder- dekodér model z Google vyškolený pro mnoho-to-mnoho strojový překlad napříč 400+ jazyky. Apache 2.0. Soniqo build runs as quantized MLX safetensorové (INT4 / INT8) dne Apple Silicon Bez cloud volání. Zahoď to po ASR pro živé titulky, po TTS příprava pro vícejazyčné hlasové agenty, nebo používat samostatně.

Trubka ASR

speech transcribe meeting.wav | speech translate --to es - stejný binární, cílový jazyk je jediný požadovaný vstup. Zdrojový jazyk je automaticky detekován enkodérem; pouze specifikujete, co chcete, aby byl přeložen do.

Rychlý 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

Architektura

T5 v1.1 encoder- dekodér, ~ 3B parametry. 32 kódér + 32 dekodér vrstvy, d_model = 1024, d_kv = 128, num_heads = 16, routed GLU FFN (d_ff = 8192). Poziční informace přicházejí prostřednictvím naučil relativní poddajnost polohy (32 kbelíky, max vzdálenost 128) místo umístění embeddings - obousměrný v kodéru, jednosměrný (past- only) v dekodéru. Zbias tabulka žije pouze na první vrstvě každého zásobníku a je rozmnožován přes následující vrstvy. Pozor skóre jsou ne Zvětšený podle 1/√d_k - to je T5 výsměch.

Cross-attent K / V je počítán jednou z výstupního enkodéru a znovu použit pro každý krok dekódování (cachován v DecoderLayerCache.crossAttn). Decoder self-pozornost KV cache roste na generovaný token. Greedy dekódování je výchozí a doporučuje pro překlad; teplota / top-k / top- p odběr vzorků je vystavena pro parafrase- styl použití.

Vzor Variantů

VariantaKvantizaceVelikostVypočítejteHuggingFace
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 /)

Cílové jazyky

Upřesněte cíl jako kód jazyka používaný ve slovníku MADLAD (typicky ISO 639-1 like es, fr, zh, ja, plus regionální varianty 400+, jako například yue pro Kantonskou republiku, min_nan pro Hokkien). Tokenizer řeší <2{lang}> prostřednictvím přímého vyhledávání slovní zásoby a házení MADLADTranslationError.unsupportedLanguage pokud kód není rozpoznán. Zdrojový jazyk je automaticky detekován ze vstupu - nespecifikujete ho.

// 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)")
}

Nastavení odběru vzorků

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)
ParametrVýchozíPopis
temperature0.00 = chamtivost. Bump na 0.6-0.8 pro parafrázi variace.
topK0Top- K cutoff (0 = disabled).
topP1.0Odběr vzorků nukleových buněk.
maxTokens256Tvrdé víčko na výstupní délce.
repetitionPenalty1.0& gt; 1 penalizuje znovu generované žetony.

Převod

MLX safetensors na aufklarer / MADLAD400-3B-MT-MLX jsou kvantifikovány z originálu Google / madlad400-3b-mt prostřednictvím mx.quantize (velikost skupiny 64). q/k/v/o, wi_0/wi_1/wo, lm_head, a shared Vložení je kvantifikováno; vrstva norm stupnice a relative- position- bias tabulka jsou drženy jako fp16. MADLAD je jediný HF vkládací klíč (decoder.embed_tokens.weight) je přejmenován na shared.weight v době přeměny, takže jak enkodér, tak dekodér znovu.

Licence

Apache 2.0 (zděděné od Google / madlad400-3b-mt). Vzor karty uvádí celou sadu podporovaných jazykových kódů.