Maskinöversättning · Engelskt original
MADLAD-400 Översättning (On-Device, 400+ språk)
MADLAD-400-3B-MT är en T5 v1.1 encoder-decoder-modell från Google utbildad för många-till-många maskinöversättning över hela världen 400+ språk. Apache 2.0.. . . Soniqo bygga runs som kvantiserad MLX Säkringsgivare (säkring)INT4 / INT8) på Apple Silicon utan molnsamtal. Släpp det efter ASR för live captioning, efter TTS prep för flerspråkiga röstagenter, eller använd den fristående.
speech transcribe meeting.wav | speech translate --to es - samma binära, målspråk är den enda nödvändiga ingången. Källans språk är automatiskt upptäckt av kodaren; du specificerar bara vad du vill ha det översatt into.
Snabbstart
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-decoder, ~ 3B-parametrar. 32-kodare + 32 decoder skikt, d_model = 1024, d_kv = 128, num_heads = 16Gated GeLU FFN (Gated GeLu FFN)d_ff = 8192) Positionsinformation anländer via en lärd relativ position bias (32 hinkar, max distans 128) i stället för positionsinbäddningar - bidirectional i kodaren, unidirectional (endast) i dekodern. Biasbordet lever bara på det första lagret av varje stack och förökas genom efterföljande lager. Uppmärksamhet poäng är Inte inte skalas av 1/√d_k Det är en T5 quirk.
Cross-attention K/V beräknas en gång från encoder output och återanvänds för varje avkodningssteg (cached in DecoderLayerCache.crossAttn). Decoder självupptagning KV cache växer per genererad token. Greedy avkodning är standard och rekommenderas för översättning; temperatur / top-k / top-p sampling utsätts för parafras-stil användning.
Modellvarianter
| Variant | Kvantisering | Storlek | Beräkning | 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
Ange målet som den språkkod som används i MADLADs ordförråd (typiskt ISO 639-1 som es, fr, zh, ja, plus 400+ regionala varianter som yue för kantonesiska, min_nan För Hokkien) löser tokenizern <2{lang}> via direkt vokabulär uppslag och kast MADLADTranslationError.unsupportedLanguage om koden inte är erkänd. Källans språk är automatiskt upptäckt från ingången - du anger inte det.
// 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)")
}
Sampling Configuration
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 | Beskrivning |
|---|---|---|
temperature | 0.0 | 0 = girigt. Bump till 0,6-0,8 för parafrasvariation. |
topK | 0 | Top-K cutoff (0 = inaktiverad). |
topP | 1.0 | Nucleus sampling cutoff. |
maxTokens | 256 | Hård cap på utgångslängden. |
repetitionPenalty | 1.0 | >1 straffar nyligen genererade tokens. |
Konvertering
MLX säkrare vid aufklarer/MADLAD400-3B-MT-MLX kvantiseras från originalet Google/madlad400-3b-mt via via mx.quantize (gruppstorlek 64). q/k/v/o, wi_0/wi_1/wo, lm_headoch shared Inbäddning är kvantiserade; lagernormskalor och den relativa-position-bias tabellen hålls som fp16. MADLADs enda HF inbäddningsnyckel (HF embedding key)decoder.embed_tokens.weight) döptes om till shared.weight vid konverteringstid så att både kodare och decoder återanvänder den.
Licens
Apache 2.0 (ärvd från google/madlad400-3b-mt). Modelkort listar hela uppsättningen av stödda språkkoder.