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ě.
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ů
| Varianta | Kvantizace | Velikost | Vypočítejte | HuggingFace |
|---|---|---|---|---|
| MADLAD-400-3B-MT | INT4 | ~ 1.7 GB | Metal GPU (MLX) | aufklarer / MADLAD400-3B-MT-MLX (int4 /) |
| MADLAD-400-3B-MT | INT8 | ~ 3.1 GB | Metal 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)
| Parametr | Výchozí | Popis |
|---|---|---|
temperature | 0.0 | 0 = chamtivost. Bump na 0.6-0.8 pro parafrázi variace. |
topK | 0 | Top- K cutoff (0 = disabled). |
topP | 1.0 | Odběr vzorků nukleových buněk. |
maxTokens | 256 | Tvrdé víčko na výstupní délce. |
repetitionPenalty | 1.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ů.