Tłumaczenie automatyczne · Oryginał angielski

Tłumaczenie MADLAD-400 (Urządzenie On- Device, Języki 400+)

MADLAD-400-3B-MT jest T5 v1.1 model encoder- dekoder z Google przeszkolony do wielu-do-wielu maszyn tłumaczenia w całym Języki 400+Apache 2.0. Soniqo build działa jako kwantyzowane MLX safetensors (INT4 / INT8) na Apple Silicon bez wywołań w chmurze. Rzuć go po ASR do napisania na żywo, po przygotowaniu TTS dla wielojęzycznych agentów głosowych, lub użyj go standalone.

Rura z ASR

speech transcribe meeting.wav | speech translate --to es - ten sam binarny, docelowy język jest jedynym wymaganym wejściem. Język źródłowy jest automatycznie wykrywany przez koder; można tylko określić, co chcesz go przetłumaczyć do.

Szybki start

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

Architektura

T5 v1.1 encoder- dekoder, ~ 3B parametry. 32 Encoder + 32 warstw dekoderów, d_model = 1024, d_kv = 128, num_heads = 16, faliste GeLU FFN (d_ff = 8192). Informacje o pozycji przybywa za pośrednictwem uczonych względne odchylenie pozycyjne (Kubełki 32, max distance 128) zamiast osadzania pozycji - dwukierunkowe w koderze, jednokierunkowe (tylko na paście) w dekoderze. Tabela stronnicza żyje tylko na pierwszej warstwie każdego stosu i jest propagowana przez kolejne warstwa. nie skalowane o 1/√d_k - to jest dziwak T5.

Cross- attention K / V jest obliczany raz z wyjścia kodera i ponownie używany dla każdego etapu dekodowania (buforowane w DecoderLayerCache.crossAttn). Dekoder samouwaga KV cache rośnie na wygenerowany token. Chciwy dekodowanie jest domyślny i zalecane do tłumaczenia; temperatura / top- k / top-p próbkowania jest narażony na parafrazę-styl stosowania.

Warianty modelu

WariantIlościowanieRozmiarObliczHuggingFace
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 /)

Języki docelowe

Określić cel jako kod języka używany w słowniku MADLLAD (zazwyczaj ISO 639- 1 jak es, fr, zh, ja, plus 400+ warianty regionalne, takie jak yue dla kantońskiego, min_nan dla Hokkien). Tokenizer rozwiązuje <2{lang}> poprzez bezpośrednie przeszukiwanie słownictwa i rzuty MADLADTranslationError.unsupportedLanguage jeśli kod nie jest rozpoznawany. Język źródłowy jest automatycznie wykrywany z wejścia - nie określa go.

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

Konfiguracja pobierania próbek

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)
ParametrDomyślneOpis
temperature0.00 = zachłanny. Odbić do 0,6- 0,8 dla zmienności parafrazy.
topK0Top- K cutoff (0 = disabled).
topP1.0Nucleus próbkujący odcięcie.
maxTokens256Twarde kapsle na długości wyjściowej.
repetitionPenalty1.0& gt; 1 penalizuje nowo wygenerowane żetony.

Konwersja

MLX safetensors at aufklarer / MADLAD400-3B-MT-MLX są wyliczone od oryginału google / madlad400-3b-mt przez mx.quantize (wielkość grupy 64). q/k/v/o, wi_0/wi_1/wo, lm_headoraz shared osadzanie są oznaczane ilościowo; skala wzorcowa warstwy i tabela relatywno-pozycjonowania są przechowywane jako fp16. Tylko klawisz osadzania HF MADLAD (decoder.embed_tokens.weight) jest przemianowany na shared.weight w czasie konwersji, więc zarówno koder jak i dekoder ponownie go używać.

Licencja

Apache 2.0 google / madlad400-3b-mt). Model karty zawiera pełny zestaw obsługiwanych kodów językowych.