MADLAD-400 Übersetzung (On-Device, 400+ Sprachen)
MADLAD-400-3B-MT ist ein T5 v1.1 Encoder-Decoder-Modell von Google, das für mehrsprachige maschinelle Übersetzung zwischen 400+ Sprachen trainiert wurde. Apache 2.0. Der Soniqo-Build läuft als quantisierte MLX-Safetensors (INT4 / INT8) auf Apple Silicon — ohne Cloud-Aufrufe. Ideal nach ASR für Live-Untertitel, vor TTS für mehrsprachige Sprachagenten oder eigenständig.
audio transcribe meeting.wav | audio translate --to es — dieselbe Binary; der einzige Pflichtparameter ist die Zielsprache. Die Quellsprache erkennt der Encoder automatisch — du gibst nur an, in welche Sprache übersetzt werden soll.
Schnellstart
import MADLADTranslation
let translator = try await MADLADTranslator.fromPretrained()
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")
// → "图书馆在哪里?"
for try await piece in translator.translateStream("Good morning", to: "fr") {
print(piece, terminator: "")
}
CLI
audio translate "Hello, how are you?" --to es
audio translate "Bonjour" --to en --quantization int8
audio translate "Hello world" --to es --stream
audio translate --to fr --json # JSON with timing metrics
# Pipe from ASR
audio transcribe meeting.wav | audio translate --to es
Architektur
T5 v1.1 Encoder-Decoder, ca. 3 Mrd. Parameter. 32 Encoder- + 32 Decoder-Schichten, d_model = 1024, d_kv = 128, num_heads = 16, gated-GeLU FFN (d_ff = 8192). Positionsinformation kommt nicht über Positions-Embeddings, sondern über einen gelernten relativen Positions-Bias (32 Buckets, max. Distanz 128) — bidirektional im Encoder, unidirektional (nur Vergangenheit) im Decoder. Die Bias-Tabelle existiert nur in der ersten Schicht jedes Stacks und wird an die folgenden Schichten weitergereicht. Aufmerksamkeits-Scores werden nicht durch 1/√d_k skaliert — eine T5-Eigenheit.
Cross-Attention K/V wird einmal aus der Encoder-Ausgabe berechnet und für jeden Decode-Schritt wiederverwendet (gecached in DecoderLayerCache.crossAttn). Der KV-Cache der Decoder-Self-Attention wächst pro generiertem Token. Greedy-Decoding ist die Standardeinstellung und wird für Übersetzung empfohlen; Temperature / top-k / top-p Sampling steht für Paraphrasen-Anwendungen bereit.
Modell-Varianten
| Variante | Quantisierung | Größe | Compute | 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/) |
Zielsprachen
Die Zielsprache wird über den im MADLAD-Vokabular hinterlegten Sprachcode angegeben (in der Regel ISO 639-1 wie es, fr, zh, ja, plus 400+ regionale Varianten wie yue für Kantonesisch oder min_nan für Hokkien). Der Tokenizer löst <2{lang}> über direkten Vokabular-Lookup auf und wirft MADLADTranslationError.unsupportedLanguage, wenn der Code unbekannt ist. Die Quellsprache wird automatisch aus dem Eingabetext erkannt — nicht angeben.
Sampling-Konfiguration
let sampling = TranslationSamplingConfig(
temperature: 0.0,
topK: 0,
topP: 1.0,
maxTokens: 256,
repetitionPenalty: 1.0
)
let result = try translator.translate("Long-form text…", to: "es", sampling: sampling)
| Parameter | Default | Beschreibung |
|---|---|---|
temperature | 0.0 | 0 = Greedy. Für Paraphrasen-Variation 0.6–0.8. |
topK | 0 | Top-K-Cutoff (0 = deaktiviert). |
topP | 1.0 | Nucleus-Sampling-Cutoff. |
maxTokens | 256 | Harte Obergrenze für Ausgabelänge. |
repetitionPenalty | 1.0 | >1 bestraft kürzlich generierte Tokens. |
Konvertierung
Die MLX-Safetensors unter aufklarer/MADLAD400-3B-MT-MLX werden aus google/madlad400-3b-mt über mx.quantize (group size 64) quantisiert. Quantisiert: q/k/v/o, wi_0/wi_1/wo, lm_head, shared-Embedding; Layer-Norm-Skalen und die Relative-Position-Bias-Tabelle bleiben fp16. MADLADs einziger HF-Embedding-Key (decoder.embed_tokens.weight) wird beim Konvertieren in shared.weight umbenannt, damit Encoder und Decoder ihn gemeinsam nutzen.
Lizenz
Apache 2.0 (übernommen von google/madlad400-3b-mt). Die Model Card listet alle unterstützten Sprachcodes.