เปิดงานด้วย torchrun
สร้างและประสานกระบวนการทำงาน
เปิดงานด้วย torchrun เป็นบทเรียน Deep Learning Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Deep Learning Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Deep Learning Academy มีบทเรียนทั้งหมด 4 บทเรียน
ใครเป็นผู้เริ่มโพรเซส
DDP ต้องใช้หนึ่งโพรเซสต่อ GPU แต่ใครจะสร้างโพรเซสเหล่านี้ขึ้นมา คุณไม่ต้องเปิดใช้งานด้วยตนเอง เพราะ torchrun เป็นเครื่องมือที่จัดการให้
พบกับ torchrun
torchrun เป็นตัวเรียกใช้งานของ PyTorch คุณส่งสคริปต์และจำนวนโพรเซสที่ต้องการเริ่มให้มัน แล้วมันจะจัดการประสานงานให้
torchrun --nproc_per_node=4 train.pyจำนวนโพรเซสต่อโหนด
ตัวเลือก nproc_per_node กำหนดจำนวนโพรเซสที่จะสร้างบนเครื่องนี้ โดยปกติจะเท่ากับจำนวน GPU ที่คุณมี
torchrun --nproc_per_node=8 train.pyตัวแปรสภาพแวดล้อมปรากฏขึ้น
torchrun จะใส่ค่าหลักเป็นตัวแปรสภาพแวดล้อม: RANK, LOCAL_RANK และ WORLD_SIZE สคริปต์ของคุณจะอ่านค่าเหล่านี้เพื่อทราบว่าตนเองเป็นใคร
import os
local_rank = int(os.environ["LOCAL_RANK"])ไม่ต้องกำหนดที่อยู่ด้วยตนเอง
ตัวเรียกใช้งานรุ่นเก่าบังคับให้คุณส่งอันดับด้วยตนเอง แต่เมื่อใช้ torchrun การนัดพบจะเกิดขึ้นโดยอัตโนมัติ ทำให้สคริปต์สะอาดและย้ายไปใช้ที่อื่นได้ง่าย
การเริ่มต้นอ่านค่าจากสภาพแวดล้อม
เนื่องจาก torchrun ตั้งค่าตัวแปรสภาพแวดล้อมไว้ การเรียกใช้ init_process_group ของคุณจึงไม่ต้องมีอาร์กิวเมนต์อื่นนอกจากแบ็กเอนด์ ระบบจะดึงค่าทุกอย่างมาให้อัตโนมัติ
import torch.distributed as dist
dist.init_process_group(backend="nccl")ขยายไปยังหลายเครื่อง
หากต้องการใช้งานหลายโหนด ให้เพิ่ม nnodes และอันดับของโหนด แต่ละเครื่องจะเรียกใช้คำสั่งเดียวกันพร้อมรหัสโหนดของตนเอง
torchrun --nnodes=2 --node_rank=0 --nproc_per_node=4 train.pyชี้ไปยังเครื่องหลัก
เมื่อทำงานข้ามโหนด โพรเซสทั้งหมดต้องค้นหาจุดนัดพบเดียวกัน rdzv_endpoint จะระบุโฮสต์และพอร์ตที่ใช้ในการนัดพบ
torchrun --rdzv_endpoint=host0:29500 train.pyรับมือเมื่อเวิร์กเกอร์ขัดข้อง
torchrun รองรับการฝึกแบบยืดหยุ่น: ตั้งค่าจำนวนโหนดต่ำสุดและสูงสุด แล้วงานสามารถกู้คืนได้หากเวิร์กเกอร์หยุดทำงาน 💪
torchrun --nnodes=1:4 --max_restarts=3 train.pyบันทึกจากอันดับเดียว
ทุกโพรเซสจะแสดงผล จึงทำให้บันทึกมีข้อมูลรบกวนมาก กำหนดให้การแสดงผลอยู่หลังการตรวจสอบอันดับ เพื่อให้มีเพียงอันดับ 0 ที่รายงานความคืบหน้า
if int(os.environ["RANK"]) == 0:
print("epoch done")กระบวนการทั้งหมด
รูปแบบนั้นเรียบง่าย: เขียนสคริปต์ DDP ตามปกติ แล้วเรียกใช้ด้วย torchrun ตัวเรียกใช้งานและ DDP จะจัดการส่วนที่เหลือร่วมกัน
ตรวจสอบอย่างรวดเร็ว
ทบทวนว่า torchrun ส่งข้อมูลใดให้สคริปต์ของคุณ
สรุป
คุณได้เรียนรู้การเรียกใช้งานด้วย torchrun: กำหนดจำนวนโพรเซสต่อโหนด อ่านตัวแปรสภาพแวดล้อมที่ถูกใส่ให้ และขยายไปยังหลายโหนดพร้อมการกู้คืนแบบยืดหยุ่น
เรียนรู้ Python ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 30
- บทเรียน
- 120
คำถามที่พบบ่อย
บทเรียน “เปิดงานด้วย torchrun” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “เปิดงานด้วย torchrun” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Deep Learning Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Deep Learning Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “เปิดงานด้วย torchrun”
สร้างและประสานกระบวนการทำงาน คุณปฏิบัติ Deep Learning Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Deep Learning Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Deep Learning Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “เปิดงานด้วย torchrun” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Deep Learning Academy นี้ได้ไหม
ได้ บทเรียน Deep Learning Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การประมวลผลแบบขนานด้านข้อมูลกับด้านโมเดล
- พื้นฐาน DistributedDataParallel
- Batch Norm แบบซิงก์และสถานะแบ่งส่วน
- เปิดงานด้วย torchrun