Automatische vertaling · Engels origineel

MADLAD-400 Vertaling (op apparaat, 400+ Talen)

MADLAD-400-3B-MT is een T5 v1.1 encoder-decodermodel van Google dat is opgeleid voor veel-tot-veel machinevertalingen in 400+ talen. Apache 2.0. De Soniqo build loopt als gequantized MLX safetensors (INT4 / INT8) op Apple Silicon zonder bellen in de cloud. Gooi het na ASR voor live captioning, na TTS prep voor meertalige spraakmiddelen, of gebruik het standalone.

Pijp van ASR

speech transcribe meeting.wav | speech translate --to es Dezelfde binaire, doeltaal is de enige vereiste invoer. Brontaal wordt automatisch gedetecteerd door de encoder; u geeft alleen aan wat u wilt dat het vertaald wordt in.

Snel starten

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

Architectuur

T5 v1.1 encoder-decoder, ~3B parameters. 32-encoder + 32 decoderlagen, d_model = 1024, d_kv = 128, num_heads = 16, Gated GeLU FFN (d_ff = 8192). Positie informatie komt via een geleerde relatieve positievooroordeel (32 emmers, max distance 128) in plaats van positie inbeddingen Bi direkt in de encoder, unidirectioneel (alleen verleden) in de decoder. De bias tabel leeft alleen op de eerste laag van elke stack en wordt gepropageerd door de volgende lagen. Attentie scores zijn niet geschaald op 1/√d_k Dat is een T5 eigenaardigheid.

Cross-atttention K/V wordt eenmaal berekend vanuit de encoderuitvoer en hergebruikt voor elke decodeerstap (gecached in DecoderLayerCache.crossAttn). Decoder zelf-atttentie KV cache groeit per gegenereerd token. Hebzuchtige decodering is de standaard en aanbevolen voor vertaling; temperatuur / top-k / top-p sampling is blootgesteld voor parafrase-stijl gebruik.

Model Varianten

VariantKwantisering GrootteBerekenenHuggingFace
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/)

Doeltalen

Geef het doel aan als de taalcode die in de woordenschat van MADLAD wordt gebruikt (doorgaans ISO 639-1 zoals es, fr, zh, ja, plus 400+ regionale varianten zoals yue voor Kantonees, min_nan voor Hokkien). De tokenmachine lost <2{lang}> via directe woordenschat opzoeken en gooien MADLADTranslationError.unsupportedLanguage als de code niet wordt herkend. Brontaal wordt automatisch gedetecteerd uit de invoer . . U hoeft niet te specificeren.

// 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)")
}

Steekproefconfiguratie

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)
Parameter Standaard Omschrijving
temperature0.00 = hebzuchtig. Bump to 0.6–0.8 voor parafrase variatie.
topK0Top-K cutoff (0 = uitgeschakeld).
topP1.0Nucleus-bemonsteringsafsluiting.
maxTokens256 Harde dop op uitvoerlengte.
repetitionPenalty1.0> 1 straft recent gegenereerde tokens.

Omrekening

De MLX safetensors op aufklarer/MADLAD400-3B-MT-MLX zijn gequantiseerd uit het origineel google/madlad400-3b-mt via mx.quantize (groepsgrootte 64). q/k/v/o, wi_0/wi_1/wo, lm_headen shared De inbedding wordt gequantiseerd; de laagnormschalen en de tabel met relatieve positie-bias worden bewaard als fp16. De enige HF-inbeddingssleutel van MADLAD (decoder.embed_tokens.weight) wordt hernoemd naar shared.weight op conversietijd, zodat zowel encoder als decoder het hergebruikt.

Licentie

Apache 2.0 (geërfd van google/madlad400-3b-mt). Modelkaart bevat de volledige set ondersteunde taalcodes.