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.
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
| Wariant | Ilościowanie | Rozmiar | Oblicz | 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 /) |
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)
| Parametr | Domyślne | Opis |
|---|---|---|
temperature | 0.0 | 0 = zachłanny. Odbić do 0,6- 0,8 dla zmienności parafrazy. |
topK | 0 | Top- K cutoff (0 = disabled). |
topP | 1.0 | Nucleus próbkujący odcięcie. |
maxTokens | 256 | Twarde kapsle na długości wyjściowej. |
repetitionPenalty | 1.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.