MADLAD-400 çeviri (cihaz üzeri, 400+ dil)

MADLAD-400-3B-MT; Google'ın 400+ dil arasında çok-yönlü makine çevirisi için eğitilmiş T5 v1.1 encoder-decoder modelidir. Apache 2.0. Soniqo derlemesi, niceleştirilmiş MLX safetensors (INT4 / INT8) olarak Apple Silicon üzerinde bulut çağrısı olmadan çalışır. Canlı altyazı için ASR'nin arkasına, çok dilli ses ajanları için TTS hazırlığının arkasına yerleştirin ya da bağımsız kullanın.

ASR'den pipe

speech transcribe meeting.wav | speech translate --to es — aynı binary, gereken tek girdi hedef dildir. Kaynak dil encoder tarafından otomatik algılanır; siz yalnızca hangi dile çevrilmesini istediğinizi belirtirsiniz.

Hızlı başlangıç

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

Mimari

T5 v1.1 encoder-decoder, ~3B parametre. 32 encoder + 32 decoder katmanı, d_model = 1024, d_kv = 128, num_heads = 16, gated GeLU FFN (d_ff = 8192). Konum bilgisi, position embedding yerine öğrenilmiş bir relative position bias aracılığıyla gelir (32 bucket, maksimum mesafe 128) — encoder'da çift yönlü, decoder'da tek yönlü (yalnızca geçmiş). Bias tablosu yalnızca her stack'in ilk katmanında bulunur ve sonraki katmanlara yayılır. Attention skorları çarpan olarak 1/√d_k ile ölçeklenmez — bu bir T5 tuhaflığıdır.

Cross-attention K/V, encoder çıktısından bir kez hesaplanır ve her decode adımında yeniden kullanılır (DecoderLayerCache.crossAttn içinde önbelleğe alınır). Decoder self-attention KV cache'i üretilen her token ile büyür. Greedy decoding varsayılan ve çeviri için önerilendir; paraphrase tarzı kullanım için temperature / top-k / top-p sampling açıktır.

Model varyantları

VaryantNiceleştirmeBoyutİşlemHuggingFace
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/)

Hedef diller

Hedefi, MADLAD'ın söz varlığında kullanılan dil koduyla belirtin (genellikle es, fr, zh, ja gibi ISO 639-1, ek olarak Kantonca için yue, Hokkien için min_nan gibi 400+ bölgesel varyant). Tokenizer, <2{lang}> ifadesini doğrudan söz varlığında arama yoluyla çözer ve kod tanınmıyorsa MADLADTranslationError.unsupportedLanguage fırlatır. Kaynak dil girdiden otomatik algılanır — onu belirtmezsiniz.

// 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 yapılandırması

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)
ParametreVarsayılanAçıklama
temperature0.00 = greedy. Paraphrase çeşitliliği için 0.6–0.8'e çıkarın.
topK0Top-K kesimi (0 = devre dışı).
topP1.0Nucleus sampling kesimi.
maxTokens256Çıktı uzunluğunda kesin üst sınır.
repetitionPenalty1.0>1 yakın zamanda üretilen tokenleri cezalandırır.

Dönüştürme

aufklarer/MADLAD400-3B-MT-MLX üzerindeki MLX safetensors, orijinal google/madlad400-3b-mt'den mx.quantize (grup boyutu 64) ile niceleştirilmiştir. q/k/v/o, wi_0/wi_1/wo, lm_head ve shared embedding niceleştirilir; layer norm ölçekleri ve relative-position-bias tablosu fp16 olarak tutulur. MADLAD'ın tek HF embedding anahtarı (decoder.embed_tokens.weight) dönüştürme sırasında shared.weight olarak yeniden adlandırılır, böylece hem encoder hem decoder onu yeniden kullanır.

Lisans

Apache 2.0 (google/madlad400-3b-mt'den miras alınır). Model kartı, desteklenen tüm dil kodlarının tam listesini içerir.