การแปล 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 สำหรับเอเจนต์เสียงหลายภาษา หรือใช้แบบเดี่ยว

ส่งผ่าน pipe จาก ASR

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-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 เช่น 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)
พารามิเตอร์ค่าเริ่มต้นคำอธิบาย
temperature0.00 = greedy ปรับขึ้นเป็น 0.6–0.8 สำหรับรูปแบบ paraphrase
topK0เกณฑ์ตัด Top-K (0 = ปิด)
topP1.0เกณฑ์ตัด nucleus sampling
maxTokens256ขีดจำกัดความยาวของเอาต์พุต
repetitionPenalty1.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 แสดงรายการชุดรหัสภาษาที่รองรับครบถ้วน