Maskinoversettelse · Engelsk original
MADLAD-400 Oversettelse (på enhet, 400+ språk)
MADLAD-400-3B-MT er en T5 v1.1-koder-dekoder-modell fra Google utdannet til mange-mange maskinoversettelser på tvers av 400+-språk. Apache 2.0. Den Soniqo Bygge løp som kvantisert MLX safetensorer (INT4 / INT8) på Apple Silicon uten skysamtaler. Slipp det etter ASR liveteksting, etter TTS prep for flerspråklige stemmemidler, eller bruk den frittstående.
speech transcribe meeting.wav | speech translate --to es - samme binære, målspråk er det eneste nødvendige inndata. Kildespråket blir automatisk detektert av koderen; du angir bare hva du vil det oversatt into.
Rask 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 koder-dekoder, ~3B-parametre. 32-koder + 32 dekoder lag, d_model = 1024, d_kv = 128, num_heads = 16, gated Gelu FFN (d_ff = 8192. Positionsinformasjonen kommer via en lærd relativ posisjon bias (32-bøtter, maks avstand 128) i stedet for posisjonsinnbygginger - toveis i koderen, enveis (bare i avkoderen). Biastabellen lever bare på det første laget i hver stabel og blir forplantet gjennom påfølgende lag. ikke skalert av 1/√d_k - Det er en T5 quirk.
Cross-attention K/V beregnes en gang fra koderutgangen og gjenbrukes for hvert dekodetrinn (cached i DecoderLayerCache.crossAttn). Demoduler selvoppmerksomhet KV-bufferen vokser per generert token. Greedy decoding er standard og anbefales for oversettelse; temperatur / topp-k / topp-p-prøvetaking er eksponert for parafras-stil bruk.
Modell Varianter
| Variant | Kvantisering | Størrelse | Beregn | 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/) |
Målspråk
Angi målet som språkkoden som brukes i MADLADs ordforråd (vanligvis ISO 639-1 som es, fr, zh, ja, pluss 400+ regionale varianter som yue for kantonesisk, min_nan for Hokkien). Tokenizer løser <2{lang}> via direkte ordforrådsoppslag og kast MADLADTranslationError.unsupportedLanguage hvis koden ikke er gjenkjent. Kildespråk blir automatisk oppdaget fra inngangen - du angir 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)")
}
Samplingskonfigurasjon
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)
| Parameter | Standard | Beskrivelse |
|---|---|---|
temperature | 0.0 | 0 = grådig. Bump til 0.6-0.8 for parafrase variasjon. |
topK | 0 | Topp-K cutoff (0 = deaktivert). |
topP | 1.0 | Nucleus prøvetaking kuttet. |
maxTokens | 256 | Hard hette på utgangslengden. |
repetitionPenalty | 1.0 | > 1 straffer nylig genererte polletter. |
Konvertering
MLX-sikkerhetsenhetene på aufklarer/MADLAD400-3B-MT-MLX er kvantisert fra originalen Google/madlad400-3b-mt via mx.quantize (gruppestørrelse 64). Den q/k/v/o, wi_0/wi_1/wo, lm_head, og shared Innbyggingen er kvantisert; lagnormen skalaer og den relative posisjon-Bias-tabellen holdes som fp16. MADLADs eneste HF-innbyggingsnøkkel (decoder.embed_tokens.weight) er omdøpt til shared.weight ved konverteringstid så både koder og dekoder gjenbruke den.
Lisens
Apache 2.0 (heretter fra google/madlad400-3b-mt). Modellkort lister det fulle settet av støttede språkkoder.