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.
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ı
| Varyant | Niceleştirme | Boyut | İşlem | 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/) |
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)
| Parametre | Varsayılan | Açıklama |
|---|---|---|
temperature | 0.0 | 0 = greedy. Paraphrase çeşitliliği için 0.6–0.8'e çıkarın. |
topK | 0 | Top-K kesimi (0 = devre dışı). |
topP | 1.0 | Nucleus sampling kesimi. |
maxTokens | 256 | Çıktı uzunluğunda kesin üst sınır. |
repetitionPenalty | 1.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.