Maskinöversättning · Engelskt original

MADLAD-400 Översättning (On-Device, 400+ språk)

MADLAD-400-3B-MT är en T5 v1.1 encoder-decoder-modell från Google utbildad för många-till-många maskinöversättning över hela världen 400+ språk. Apache 2.0.. . . Soniqo bygga runs som kvantiserad MLX Säkringsgivare (säkring)INT4 / INT8) på Apple Silicon utan molnsamtal. Släpp det efter ASR för live captioning, efter TTS prep för flerspråkiga röstagenter, eller använd den fristående.

Pipe från ASR

speech transcribe meeting.wav | speech translate --to es - samma binära, målspråk är den enda nödvändiga ingången. Källans språk är automatiskt upptäckt av kodaren; du specificerar bara vad du vill ha det översatt into.

Snabbstart

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

Arkitektur

T5 v1.1 encoder-decoder, ~ 3B-parametrar. 32-kodare + 32 decoder skikt, d_model = 1024, d_kv = 128, num_heads = 16Gated GeLU FFN (Gated GeLu FFN)d_ff = 8192) Positionsinformation anländer via en lärd relativ position bias (32 hinkar, max distans 128) i stället för positionsinbäddningar - bidirectional i kodaren, unidirectional (endast) i dekodern. Biasbordet lever bara på det första lagret av varje stack och förökas genom efterföljande lager. Uppmärksamhet poäng är Inte inte skalas av 1/√d_k Det är en T5 quirk.

Cross-attention K/V beräknas en gång från encoder output och återanvänds för varje avkodningssteg (cached in DecoderLayerCache.crossAttn). Decoder självupptagning KV cache växer per genererad token. Greedy avkodning är standard och rekommenderas för översättning; temperatur / top-k / top-p sampling utsätts för parafras-stil användning.

Modellvarianter

VariantKvantiseringStorlekBeräkningHuggingFace
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/)

Målspråk

Ange målet som den språkkod som används i MADLADs ordförråd (typiskt ISO 639-1 som es, fr, zh, ja, plus 400+ regionala varianter som yue för kantonesiska, min_nan För Hokkien) löser tokenizern <2{lang}> via direkt vokabulär uppslag och kast MADLADTranslationError.unsupportedLanguage om koden inte är erkänd. Källans språk är automatiskt upptäckt från ingången - du anger inte det.

// 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 Configuration

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)
ParameterStandardBeskrivning
temperature0.00 = girigt. Bump till 0,6-0,8 för parafrasvariation.
topK0Top-K cutoff (0 = inaktiverad).
topP1.0Nucleus sampling cutoff.
maxTokens256Hård cap på utgångslängden.
repetitionPenalty1.0>1 straffar nyligen genererade tokens.

Konvertering

MLX säkrare vid aufklarer/MADLAD400-3B-MT-MLX kvantiseras från originalet Google/madlad400-3b-mt via via mx.quantize (gruppstorlek 64). q/k/v/o, wi_0/wi_1/wo, lm_headoch shared Inbäddning är kvantiserade; lagernormskalor och den relativa-position-bias tabellen hålls som fp16. MADLADs enda HF inbäddningsnyckel (HF embedding key)decoder.embed_tokens.weight) döptes om till shared.weight vid konverteringstid så att både kodare och decoder återanvänder den.

Licens

Apache 2.0 (ärvd från google/madlad400-3b-mt). Modelkort listar hela uppsättningen av stödda språkkoder.