Google เปิดตัว TorchTPU ผสาน TorchTitan ยกระดับการฝึกโมเดล AI บน TPU

· By: TanasakP

20 ต.ค. 2026

ในช่วงหลายปีที่ผ่านมา TorchTitan ของ Meta ได้กลายเป็นแพลตฟอร์มอ้างอิงชั้นนำในระบบนิเวศ PyTorch สำหรับการฝึกโมเดล Generative AI ขนาดใหญ่ TorchTitan ถูกสร้างขึ้นบน Scaling Primitives แบบ PyTorch-native ทั้งหมด โดยเป็นโมดูลที่รองรับการฝึกขั้น Pre-training สำหรับสถาปัตยกรรมระดับเรือธงอย่าง Llama 3, Qwen 3 และ FLUX ได้อย่างยืดหยุ่น

ในอดีต นักพัฒนาที่ต้องการฝึกโมเดล PyTorch บน Google Cloud TPUs มักพบความยุ่งยากจากการต้องเขียนโค้ดใหม่เป็น JAX หรือการใช้ torch_xla รุ่นเก่า แต่ปัจจุบันสถานการณ์ได้เปลี่ยนไปแล้วด้วยการเปิดตัว TorchTPU ซึ่งทำให้ Cloud TPU มี Backend แบบ Native (torch.device("tpu")) ที่รวมเข้ากับอินเทอร์เฟซหลักของ PyTorch โดยตรง การเปิดใช้งาน TPU ในตอนนี้จึงต้องการเพียงการแก้ไขโค้ดเริ่มต้นเล็กน้อยเท่านั้น อย่างไรก็ตาม การรองรับอุปกรณ์เป็นเพียงจุดเริ่มต้น นักพัฒนายังต้องการสูตรการฝึกแบบกระจายตัวที่มีประสิทธิภาพสูง นี่คือที่มาของ TorchTitan บน TPU ซึ่งเป็น Fork ที่ได้รับการปรับปรุงเพื่อ Google Cloud TPU โดยเฉพาะ สามารถเข้าใช้งานได้ที่ https://github.com/google-pytorch/torchtitan/

แทนที่จะต้องสร้างกลยุทธ์การทำ Sharding เอง Google และ Meta ได้ร่วมกันพัฒนา TPU-native execution passes ภายใน TorchTitan โดยตรง ทำให้ TorchTitan กลายเป็นเครื่องมือหลักในการปรับขยายขนาด (scaling) PyTorch บน Google Cloud TPU ครอบคลุมทั้งโมเดล Dense ขนาดใหญ่ (Llama 3, Qwen 3), Mixture-of-Experts (Qwen 3 235B MoE) และ Diffusion Transformers (FLUX.1 12B)

นอกจากการฝึก Pre-training แล้ว TorchTitan ยังทำหน้าที่เป็นตัวฝึกที่ขยายขนาดได้ในกระบวนการ Post-training เช่น VeRL สำหรับ Group Relative Policy Optimization (GRPO) และการปรับจูน Reinforcement Learning (RL) โดย TorchTitan จะจัดการการอัปเดตพารามิเตอร์พร้อมซิงโครไนซ์น้ำหนักกับเอนจิน vLLM-TorchTPU ที่มีทรูพุตสูง

การนิยามโมเดลใน TorchTitan ใช้ PyTorch แบบอุปกรณ์เดียว (nn.Module) บริสุทธิ์ โดยไม่มีโค้ดเฉพาะสำหรับ CUDA ส่วนการสื่อสารแบบ Collectives จะถูกจัดการผ่านเลเยอร์เฟรมเวิร์ก เช่น FSDP หรือ DeviceMesh ซึ่งช่วยให้การทำงานบน TPU เลือกใช้ Parallelism และการปรับแต่งต่างๆ ได้อย่างอิสระผ่านระบบ Configuration โดยไม่ต้องแก้ไขโครงสร้างหลักของโมเดล

ในการเพิ่มประสิทธิภาพ Google ใช้ Splash Attention ซึ่งเป็น Pallas kernel สำหรับจัดการ Mask แบบต่างๆ โดยไม่ต้องสร้าง Attention matrix จริง รวมถึงการใช้ Fused Pallas kernel เพื่อลดการเขียนข้อมูลลงหน่วยความจำ HBM โดยแต่ละ Kernel เป็นฟังก์ชัน JAX ที่แปลงเป็น PyTorch custom op ผ่านเดคอเรเตอร์ torch.tpu.pallas.jax_op ของ TorchTPU ซึ่งสามารถเปิดปิดการใช้งานได้ง่ายผ่าน Config flag เพื่อเปรียบเทียบประสิทธิภาพ

ด้านการจัดการคอมไพเลอร์ SimpleFSDP ได้รับการพัฒนาให้มองการทำ Parameter sharding ผ่านมุมมองของคอมไพเลอร์ XLA แทนรูปแบบเดิมของ GPU ทำให้สามารถจัดตารางการทำงานของ Collectives และการคำนวณซ้อนทับกันได้อย่างมีประสิทธิภาพสูงสุด ส่งผลให้ในโมเดล FLUX สามารถทำประสิทธิภาพได้ถึง 99% เมื่อเทียบกับ JAX MaxDiffusion

นอกจากนี้ Graph Trainer ของ TorchTitan ยังรองรับการ Capture ขั้นตอนการฝึกทั้งหมดเป็น FX graph เพียงกราฟเดียว ช่วยให้ XLA มองเห็นภาพรวมการคำนวณทั้งหมด คล้ายกับแนวคิด JIT ใน JAX เทคนิคนี้ช่วยให้สามารถทำเทคนิคระดับสูงอย่างการ Scan ข้ามเลเยอร์เพื่อประหยัดหน่วยความจำและเวลาคอมไพล์ในโมเดลขนาดใหญ่อย่าง Qwen3 235B ซึ่งทำค่า MFU ได้สูงกว่า 29%

สำหรับการปรับจูนประสิทธิภาพ คู่มือ TorchTitan TPU optimization guide ได้แนะนำขั้นตอนสำคัญ 4 ขั้นตอน:

  1. การสร้างเส้นฐาน (Establish a Baseline): เลือกโหมดการรันระหว่าง Eager, Compile หรือ Graph Trainer และเริ่มทำ Sharding ด้วย SimpleFSDP
  2. การปรับจูน Kernels: เปิดใช้งาน Pallas kernels เช่น Splash attention และปรับจูนขนาด Block ให้เหมาะสมกับรุ่นของ TPU
  3. การเพิ่มประสิทธิภาพหน่วยความจำ: เพิ่ม Batch size เพื่อเพิ่มปริมาณงานต่อชิป
  4. การปรับจูนคอมไพเลอร์และการสื่อสาร: ใช้ Flag ของ XLA และ libtpu เพื่อเพิ่มประสิทธิภาพการจัดตารางงาน พร้อมทำโปรไฟล์ด้วย xprof เพื่อหาคอขวด

ในแง่ของผลลัพธ์ Llama 3 405B บน TPU v7x (Ironwood) สามารถทำ MFU ได้ถึง 57% ในขณะที่ Qwen3 235B รักษาประสิทธิภาพ Weak-scaling ได้ถึง 93% เมื่อขยายจาก 8 เป็น 1,024 ชิป นอกจากนี้ยังมี Transformers modeling backend ที่ช่วยให้นำโมเดลจาก Hugging Face กว่า 500 โมเดลมารันบนระบบนี้ได้ทันทีโดยไม่ต้องแก้โค้ด

แผนการในอนาคตจะมุ่งเน้นไปที่ความพร้อมในการใช้งานระดับโปรดักชัน การรองรับฮาร์ดแวร์ TPU 8t และ 8i รวมถึงการขยายการรองรับโมเดลขนาดใหญ่ยิ่งขึ้นอย่าง Qwen3.8-Max และ Kimi K3 ที่มีพารามิเตอร์ระดับ 2.4-2.8 ล้านล้านตัว โดย TorchTitan บน TPU พร้อมแล้วที่จะเป็นเครื่องมือหลักสำหรับนักพัฒนาที่ต้องการประสิทธิภาพสูงสุดบนโครงสร้างพื้นฐานของ Google Cloud

Source: Google Developers Blog
ดูแลงานแปลและเรียบเรียงโดย TanasakP
Google เปิดตัว TorchTPU ผสาน TorchTitan ยกระดับการฝึกโมเดล AI บน TPU

ความคิดเห็น (0)

เข้าสู่ระบบเพื่อร่วมแสดงความเห็น

สมัครสมาชิก

มาเป็นคนแรกที่แสดงความเห็นกันเลยโบร