Traduzione automatica · Originale inglese
Traduzione MADLAD-400 (On-Device, 400+ Lingue)
MADLAD-400-3B-MT è un modello T5 v1.1 encoder-decoder di Google addestrato per la traduzione di macchine da molti a molti Lingue 400+. Apache 2.0. Soniqo costruire funziona come quantizzato MLX custodi (in inglese)INT4 / INT8) Apple Silicon con nessuna chiamata cloud. ASR per la captazione dal vivo, dopo TTS prep per agenti vocali multilingue, o usarlo standalone.
speech transcribe meeting.wav | speech translate --to es — la stessa lingua binaria, il linguaggio di destinazione è l'unico input richiesto. La lingua di origine è auto-detected dall'encoder; si specifica solo ciò che si desidera che tradotto in.
Avvio rapido
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
Architettura
T5 v1.1 encoder-decoder, ~3Parametri B. 32 encoder + 32 strati decoder, d_model = 1024, d_kv = 128, num_heads = 16, cancello GeLU FFN (d_ff = 8192). Le informazioni di posizione arrivano tramite un imparato posizione relativa bias (Secchi 32, distanza massima 128) invece di incorporazioni di posizione — bidirezionale nell'encoder, unidirezionale (solo per la parte) nel decoder. La tabella di polarizzazione vive solo sul primo strato di ogni stack e viene propagata attraverso gli strati successivi. non lo so ridimensionato da 1/√d_k - E' un quirk T5.
K/V è calcolato una volta dall'uscita encoder e riutilizzato per ogni passo di decodifica (cached in DecoderLayerCache.crossAttn
Varianti di modello
| Variante | Quantificazione | Dimensione | Competenze | 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/) |
Lingue di destinazione
Specificare l'obiettivo come il codice di lingua utilizzato nel vocabolario di MADLAD (tipicamente ISO 639-1 come es, fr, zh, ja, più varianti regionali 400+ come yue per Cantonese, min_nan per Hokkien). Il tokenizer si risolve <2{lang}> tramite ricerca del vocabolario diretto e getti MADLADTranslationError.unsupportedLanguage se il codice non è riconosciuto. La lingua di origine è auto-detected dall'ingresso — non lo specifica.
// 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)")
}
Configurazione di campionamento
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)
| Parametro | Predefinito | Designazione |
|---|---|---|
temperature | 0.0 | 0 = avido. Bump a 0,6–0.8 per variazione parafrasica. |
topK | 0 | Taglio Top-K (0 = disabilitato). |
topP | 1.0 | Ritaglio di campionamento nucleus. |
maxTokens | 256 | Tappo rigido sulla lunghezza di uscita. |
repetitionPenalty | 1.0 | >1 penalizza i token generati di recente. |
Conversione
Il salva sicurezza MLX a aufklarer/MADLAD400-3B-MT-MLX sono quantizzati dall'originale Google/madlad400-3b-mt via via via via mx.quantize (dimensione gruppo 64). q/k/v/o, wi_0/wi_1/wo, lm_heade shared L'integrazione è quantizzata; le scale di norma a strato e la tabella relativa-posizione-bias sono mantenute come fp16.decoder.embed_tokens.weight) è rinominato shared.weight al tempo di conversione in modo sia encoder e decoder riutilizzarlo.
Licenza
Apache 2.0 (inherited from Google/madlad400-3b-mt). La scheda di modello elenca l'insieme completo dei codici di lingua supportati.