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.

Tubo da ASR

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

VarianteQuantificazioneDimensioneCompetenzeHuggingFace
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/)

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)
ParametroPredefinitoDesignazione
temperature0.00 = avido. Bump a 0,6–0.8 per variazione parafrasica.
topK0Taglio Top-K (0 = disabilitato).
topP1.0Ritaglio di campionamento nucleus.
maxTokens256Tappo rigido sulla lunghezza di uscita.
repetitionPenalty1.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.