การแปล MADLAD-400 (บนอุปกรณ์, 400+ ภาษา)
MADLAD-400-3B-MT เป็นโมเดล encoder-decoder T5 v1.1 ของ Google ที่ถูกฝึกสำหรับการแปลด้วยเครื่องหลายทิศทางระหว่าง 400+ ภาษา Apache 2.0 build ของ Soniqo รันในรูปแบบ MLX safetensors ที่ลดความละเอียดแล้ว (INT4 / INT8) บน Apple Silicon โดยไม่ต้องเรียกคลาวด์ วางไว้หลัง ASR สำหรับคำบรรยายสด หลังขั้นตอนเตรียม TTS สำหรับเอเจนต์เสียงหลายภาษา หรือใช้แบบเดี่ยว
speech transcribe meeting.wav | speech translate --to es — ยังเป็น binary เดียวกัน ภาษาเป้าหมายคือพารามิเตอร์ที่บังคับเพียงตัวเดียว ภาษาต้นทางถูกตรวจจับโดย encoder อัตโนมัติ คุณเพียงต้องระบุว่าต้องการแปล เป็น ภาษาใด
เริ่มต้นอย่างรวดเร็ว
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
สถาปัตยกรรม
Encoder-decoder T5 v1.1 ขนาด ~3B พารามิเตอร์ ชั้น encoder 32 ชั้น + ชั้น decoder 32 ชั้น d_model = 1024, d_kv = 128, num_heads = 16, FFN แบบ gated GeLU (d_ff = 8192) ข้อมูลตำแหน่งถูกส่งผ่าน relative position bias ที่เรียนรู้ได้ (32 bucket, ระยะทางสูงสุด 128) แทน position embedding — แบบสองทิศทางที่ encoder, แบบทิศทางเดียว (อดีตเท่านั้น) ที่ decoder ตาราง bias จะอยู่เฉพาะที่ชั้นแรกของแต่ละ stack และถูกส่งต่อไปยังชั้นถัดไป คะแนน attention ไม่ ถูกปรับสัดส่วนด้วย 1/√d_k — นี่คือลักษณะเฉพาะของ T5
K/V ของ cross-attention คำนวณครั้งเดียวจากเอาต์พุตของ encoder และนำกลับมาใช้ในทุกขั้นตอน decode (cache ใน DecoderLayerCache.crossAttn) KV cache ของ self-attention ใน decoder จะขยายตามแต่ละ token ที่สร้างขึ้น Greedy decoding เป็นค่าเริ่มต้นและแนะนำสำหรับการแปล; sampling temperature / top-k / top-p ยังเปิดอยู่สำหรับกรณีการใช้งานแบบ paraphrase
รูปแบบของโมเดล
| รูปแบบ | การลดความละเอียด | ขนาด | การประมวลผล | 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/) |
ภาษาเป้าหมาย
ระบุภาษาเป้าหมายด้วยรหัสภาษาในคำศัพท์ของ MADLAD (โดยทั่วไปคือ ISO 639-1 เช่น es, fr, zh, ja รวมถึง 400+ รูปแบบภูมิภาคอย่าง yue สำหรับภาษากวางตุ้ง, min_nan สำหรับภาษาหมิ่นใต้) Tokenizer แปลค่า <2{lang}> ผ่านการค้นหาตรงในคำศัพท์ และโยน MADLADTranslationError.unsupportedLanguage หากรหัสไม่ถูกรู้จัก ภาษาต้นทางถูกตรวจจับจากอินพุตอัตโนมัติ — คุณไม่ต้องระบุ
// 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
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)
| พารามิเตอร์ | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|
temperature | 0.0 | 0 = greedy ปรับขึ้นเป็น 0.6–0.8 สำหรับรูปแบบ paraphrase |
topK | 0 | เกณฑ์ตัด Top-K (0 = ปิด) |
topP | 1.0 | เกณฑ์ตัด nucleus sampling |
maxTokens | 256 | ขีดจำกัดความยาวของเอาต์พุต |
repetitionPenalty | 1.0 | >1 ลงโทษ token ที่เพิ่งสร้าง |
การแปลง
MLX safetensors ที่ aufklarer/MADLAD400-3B-MT-MLX ถูกลดความละเอียดจาก google/madlad400-3b-mt ต้นฉบับผ่าน mx.quantize (group size 64) น้ำหนัก q/k/v/o, wi_0/wi_1/wo, lm_head และ embedding shared ทั้งหมดถูกลดความละเอียด; scale ของ layer norm และตาราง relative-position-bias ถูกเก็บไว้ที่ fp16 คีย์ embedding HF เฉพาะของ MADLAD (decoder.embed_tokens.weight) ถูกเปลี่ยนชื่อเป็น shared.weight เมื่อแปลง เพื่อให้ทั้ง encoder และ decoder ใช้ร่วมกัน
ไลเซนส์
Apache 2.0 (สืบทอดมาจาก google/madlad400-3b-mt) Model card แสดงรายการชุดรหัสภาษาที่รองรับครบถ้วน