MADLAD-400 翻译(端侧、400+ 种语言)

MADLAD-400-3B-MT 是 Google 发布的 T5 v1.1 编码器-解码器模型,针对 400+ 种语言之间的多对多机器翻译进行训练,采用 Apache 2.0 协议。Soniqo 版本以量化的 MLX safetensors(INT4 / INT8)形式在 Apple 芯片上运行,无需任何云端调用。可用于 ASR 之后的实时字幕、TTS 之前的多语种语音代理,或独立翻译。

从 ASR 管道接入

audio transcribe meeting.wav | audio translate --to es — 同一个二进制;唯一必填项是目标语言。源语言由编码器自动识别,您只需指定要翻译到哪种语言

快速开始

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

命令行

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

架构

T5 v1.1 编码器-解码器,约 30 亿参数。32 层编码器 + 32 层解码器,d_model = 1024d_kv = 128num_heads = 16,门控 GeLU FFN(d_ff = 8192)。位置信息通过学习得到的相对位置偏置(32 个桶,最大距离 128)注入,而非位置嵌入——编码器中是双向的,解码器中是单向的(仅过去)。偏置表只存在于每个堆栈的第一层,并传播到后续层。注意力分数除以 1/√d_k——这是 T5 的特点。

交叉注意力的 K/V 由编码器输出一次性计算,解码每一步复用(缓存于 DecoderLayerCache.crossAttn)。解码器自注意力的 KV 缓存随生成 token 增长。翻译默认且推荐贪心解码;temperature / top-k / top-p 采样可用于改写型场景。

模型变体

变体量化大小计算后端HuggingFace
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/)

目标语言

目标语言使用 MADLAD 词表中的语言代码(通常是 ISO 639-1,如 esfrzhja,以及 400+ 种地区变体,例如粤语 yue、闽南语 min_nan)。tokenizer 通过直接词表查找解析 <2{lang}>,未识别的语言代码会抛出 MADLADTranslationError.unsupportedLanguage。源语言由输入文本自动识别——无需指定。

采样参数

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)
参数默认值说明
temperature0.00 = 贪心。改述变体可设为 0.6–0.8。
topK0Top-K 截断(0 = 关闭)。
topP1.0Nucleus 采样阈值。
maxTokens256输出长度上限。
repetitionPenalty1.0>1 抑制最近生成过的 token。

转换

aufklarer/MADLAD400-3B-MT-MLX 上的 MLX safetensors 由 google/madlad400-3b-mt 通过 mx.quantize 量化(group size 64)。q/k/v/owi_0/wi_1/wolm_headshared 嵌入被量化;layer_norm 缩放和相对位置偏置表保持 fp16。MADLAD HF 唯一的嵌入键 decoder.embed_tokens.weight 在转换时重命名为 shared.weight,编码器和解码器共用。

许可证

Apache 2.0(继承自 google/madlad400-3b-mt)。模型卡列出了完整的支持语言代码。