Deep Learning Academy · บทเรียน

เปิดงานด้วย torchrun

สร้างและประสานกระบวนการทำงาน

บทเรียน 4 จาก 413 ขั้นตอน

เปิดงานด้วย 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การประมวลผลแบบขนานด้านข้อมูลกับด้านโมเดล
  2. พื้นฐาน DistributedDataParallel
  3. Batch Norm แบบซิงก์และสถานะแบ่งส่วน
  4. เปิดงานด้วย torchrun
← กลับไปที่ Deep Learning Academy