MADLAD-400 翻訳(オンデバイス、400+ 言語)

MADLAD-400-3B-MT は、400+ 言語 間の多対多機械翻訳に向けて学習された Google の T5 v1.1 エンコーダ-デコーダモデルです。Apache 2.0。Soniqo ビルドは Apple Silicon 上で量子化済みの MLX safetensors(INT4 / INT8)として動作し、クラウド呼び出しは不要です。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: "")
}

CLI

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 キャッシュは生成トークンごとに伸びます。翻訳には貪欲デコードがデフォルトかつ推奨です。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)として指定します。トークナイザは <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 で最近生成したトークンを抑制。

変換

aufklarer/MADLAD400-3B-MT-MLX の MLX safetensors は、google/madlad400-3b-mt から mx.quantize(グループサイズ 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 から継承)。モデルカードにサポート言語コードの完全なリストがあります。