Web Analytics

pytorch-accelerated

⭐ 193 stars Thai by Chris-hughes10

🌐 ภาษา

pytorch-accelerated

pytorch-accelerated เป็นไลบรารีน้ำหนักเบาที่ออกแบบมาเพื่อเร่งกระบวนการฝึกโมเดล PyTorch โดยให้ลูปการฝึกที่เรียบง่ายแต่สามารถขยายได้ - อยู่ในรูปแบบของอ็อบเจกต์ Trainer เดียว ซึ่งมีความยืดหยุ่นพอที่จะรองรับกรณีการใช้งานส่วนใหญ่ และสามารถใช้ฮาร์ดแวร์แบบต่างๆ ได้โดยไม่ต้องเปลี่ยนโค้ด pytorch-accelerated มีชุดฟีเจอร์ที่กระชับและเน้นความ เรียบง่าย และ โปร่งใส เป็นหลัก

เพื่อให้ผู้ใช้สามารถเข้าใจได้อย่างชัดเจนว่าเกิดอะไรขึ้นเบื้องหลัง แต่ไม่ต้องเขียนและดูแล boilerplate ด้วยตนเอง!

คุณสมบัติหลัก ได้แก่:

พฤติกรรมสามารถปรับแต่งได้โดยใช้ inheritance และ/หรือ callbacks transformers และ torchmetrics มีความพยายามอย่างมากในการทำให้ทุกส่วนของไลบรารี ทั้งส่วนภายในและภายนอก มีความชัดเจนและเรียบง่ายที่สุด เพื่อให้ง่ายต่อการปรับแต่ง ดีบัก และเข้าใจได้อย่างแท้จริงว่าเกิดอะไรขึ้นเบื้องหลังในแต่ละขั้นตอน; พฤติกรรมส่วนใหญ่ของ trainer จะถูกรวมไว้ในคลาสเดียว! ด้วยหลักการของ Python ไม่มีอะไรที่ถูกซ่อนไว้และทุกอย่างสามารถเข้าถึงได้

pytorch-accelerated ถูกสร้างขึ้นอย่างภาคภูมิใจและโปร่งใสบนพื้นฐานของ Hugging Face Accelerate ซึ่งมีหน้าที่ในการเคลื่อนย้ายข้อมูลระหว่างอุปกรณ์และเปิดใช้งานการตั้งค่าการฝึก เมื่อปรับแต่ง trainer หรือเปิดใช้งานการฝึก ผู้ใช้ควรศึกษาคู่มือของ Accelerate เพื่อเข้าใจตัวเลือกทั้งหมดที่มีอยู่; Accelerate มีฟังก์ชันอำนวยความสะดวกสำหรับการดำเนินการ เช่น การรวม tensor และการตัดแต้ม gradient ซึ่งสามารถดูตัวอย่างการใช้งานได้ในโฟลเดอร์ pytorch-accelerated examples!

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับแรงบันดาลใจเบื้องหลังไลบรารีนี้ พร้อมคู่มือเริ่มต้นใช้งานโดยละเอียด โปรดอ่าน บล็อกโพสต์นี้

การติดตั้ง

สามารถติดตั้ง pytorch-accelerated จาก pip โดยใช้คำสั่งต่อไปนี้:

pip install pytorch-accelerated
เพื่อให้แพ็คเกจมีขนาดเล็กที่สุดเท่าที่จะเป็นไปได้ แพ็คเกจที่จำเป็นสำหรับการรันตัวอย่างจะไม่ถูกรวมไว้โดยค่าเริ่มต้น หากต้องการรวมแพ็คเกจเหล่านี้ คุณสามารถใช้คำสั่งดังต่อไปนี้:

pip install pytorch-accelerated[examples]

เริ่มต้นอย่างรวดเร็ว

เพื่อเริ่มต้นใช้งาน ให้นำเข้าและใช้ Trainer จาก pytorch-accelerated ตามตัวอย่างโค้ดด้านล่างนี้ จากนั้นเริ่มการฝึกสอนด้วย accelerate CLI ตามที่อธิบายไว้ด้านล่างนี้

# examples/core/train_mnist.py
import os

from torch import nn, optim from torch.utils.data import random_split from torchvision import transforms from torchvision.datasets import MNIST

from pytorch_accelerated import Trainer

class MNISTModel(nn.Module): def __init__(self): super().__init__() self.main = nn.Sequential( nn.Linear(in_features=784, out_features=128), nn.ReLU(), nn.Linear(in_features=128, out_features=64), nn.ReLU(), nn.Linear(in_features=64, out_features=10), )

def forward(self, input): return self.main(input.view(input.shape[0], -1))

def main(): dataset = MNIST(os.getcwd(), download=True, transform=transforms.ToTensor()) train_dataset, validation_dataset, test_dataset = random_split(dataset, [50000, 5000, 5000]) model = MNISTModel() optimizer = optim.SGD(model.parameters(), lr=0.001, momentum=0.9) loss_func = nn.CrossEntropyLoss()

trainer = Trainer( model, loss_func=loss_func, optimizer=optimizer, )

trainer.train( train_dataset=train_dataset, eval_dataset=validation_dataset, num_epochs=8, per_device_batch_size=32, )

trainer.evaluate( dataset=test_dataset, per_device_batch_size=64, ) if __name__ == "__main__": main()

เพื่อเริ่มต้นการฝึกด้วย accelerate CLI บนเครื่องของคุณ ให้รันคำสั่ง:

accelerate config --config_file accelerate_config.yaml

และตอบคำถามที่ถูกถาม ระบบจะสร้างไฟล์ config ที่จะถูกใช้เพื่อกำหนดค่าเริ่มต้นเมื่อทำการ

accelerate launch --config_file accelerate_config.yaml train.py [--training-args]

หมายเหตุ: การใช้ accelerate CLI เป็นเพียงทางเลือกหนึ่งเท่านั้น คุณสามารถเริ่มฝึกได้ด้วยวิธีปกติด้วย:

python train.py / python -m torch.distributed ...

ขึ้นอยู่กับการตั้งค่าโครงสร้างพื้นฐานของคุณ สำหรับผู้ใช้ที่ต้องการควบคุมคำสั่งการรันได้ละเอียดมากขึ้น

สามารถดูตัวอย่างการฝึกที่ซับซ้อนกว่านี้ได้ในโฟลเดอร์ examples ที่นี่

หรือหากคุณต้องการเข้าใจแนวคิดหลักก่อน สามารถอ่านได้ใน documentation

การใช้งาน

pytorch-accelerated เหมาะกับใคร?

กรณีใดที่ไม่ควรใช้ pytorch-accelerated?

ที่ช่วยเลือกโมเดล ออปติไมเซอร์ หรือฟังก์ชัน loss ให้โดยอัตโนมัติ คุณอาจเหมาะกับ fastai มากกว่า pytorch-accelerated จะโฟกัสเฉพาะกระบวนการเทรน โดยเรื่องอื่น ๆ เป็นความรับผิดชอบของผู้ใช้ คุณอาจเหมาะกับการใช้ Accelerate โดยตรง! แม้ว่าจะสามารถปรับแต่งทุกส่วนของ Trainer ได้ แต่ training loop จะถูกแบ่งออกเป็นหลายส่วนโดยพื้นฐาน

วิธีการต่าง ๆ ที่คุณอาจต้อง override แต่ก่อนที่คุณจะไป เขียนลูป for เหล่านั้นสำคัญขนาดนั้นจริงหรือ ที่จะต้องเริ่มต้นใหม่ อีกครั้ง 😉

และต้องการรีดประสิทธิภาพสูงสุดจากฮาร์ดแวร์ที่เลือกใช้ คุณอาจเหมาะกับการใช้ PyTorch ดั้งเดิมมากกว่า; API ระดับสูงใด ๆ จะกลายเป็นภาระในกรณีที่เฉพาะทางสูงมาก!

คำขอบคุณ

หลายแง่มุมที่อยู่เบื้องหลังการออกแบบและฟีเจอร์ของ pytorch-accelerated ได้รับแรงบันดาลใจอย่างมากจากไลบรารี และเฟรมเวิร์กยอดเยี่ยมหลายตัว เช่น fastai, timm, PyTorch-lightning และ Hugging Face Accelerate เครื่องมือแต่ละตัวเหล่านี้ ล้วนมีอิทธิพลอย่างมหาศาลต่อทั้งไลบรารีนี้และชุมชน machine learning และไม่สามารถกล่าวขอบคุณได้เพียงพอ!

pytorch-accelerated ได้รับแรงบันดาลใจเพียงอย่างเดียวจากเครื่องมือเหล่านี้ และฟังก์ชันทั้งหมดที่มีอยู่ในไลบรารีนี้ ถูกพัฒนาขึ้นใหม่ทั้งหมดเพื่อให้เป็นประโยชน์สูงสุดต่อไลบรารีนี้ ข้อยกเว้นมีเพียงบางสคริปต์ในโฟลเดอร์ examples ซึ่งมีการนำ resource ที่มีอยู่มาแก้ไขเพื่อแสดงความสามารถของ pytorch-accelerated โดยแต่ละกรณีจะถูกระบุไว้อย่างชัดเจน พร้อมกับให้เครดิตแก่ผู้แต่งต้นฉบับ

--- Tranlated By Open Ai Tx | Last indexed: 2026-02-28 ---