Web Analytics

pytorch-accelerated

⭐ 193 stars Indonesian by Chris-hughes10

🌐 Bahasa

pytorch-accelerated

pytorch-accelerated adalah sebuah pustaka ringan yang dirancang untuk mempercepat proses pelatihan model PyTorch dengan menyediakan loop pelatihan minimal, namun dapat dikembangkan - yang dikemas dalam satu objek Trainer yang cukup fleksibel untuk menangani sebagian besar kasus penggunaan, serta mampu memanfaatkan berbagai opsi perangkat keras tanpa memerlukan perubahan kode. pytorch-accelerated menawarkan kumpulan fitur yang efisien, dan sangat menekankan pada kesederhanaan serta transparansi, untuk memungkinkan pengguna memahami dengan tepat apa yang terjadi di balik layar, tetapi tanpa harus menulis dan memelihara boilerplate sendiri!

Fitur utama adalah:

perilaku dapat dikustomisasi menggunakan pewarisan dan/atau callback.
  • Menangani penempatan perangkat, presisi campuran, integrasi DeepSpeed, pelatihan multi-GPU dan terdistribusi tanpa perubahan kode.
  • Menggunakan komponen PyTorch murni, tanpa modifikasi tambahan atau pembungkus, dan mudah diintegrasikan
dengan pustaka populer lain seperti
timm, transformers dan torchmetrics. Upaya besar telah dilakukan untuk memastikan bahwa setiap bagian dari pustaka ini - baik komponen internal maupun eksternal - sejelas dan sesederhana mungkin, sehingga mudah untuk dikustomisasi, debug, dan dipahami dengan tepat apa yang terjadi di balik layar di setiap langkah; sebagian besar perilaku trainer terkandung dalam satu kelas! Dalam semangat Python, tidak ada yang disembunyikan dan semuanya dapat diakses.

pytorch-accelerated dengan bangga dan transparan dibangun di atas Hugging Face Accelerate, yang bertanggung jawab untuk pergerakan data antar perangkat dan peluncuran konfigurasi pelatihan. Saat mengkustomisasi trainer, atau menjalankan pelatihan, pengguna dianjurkan untuk membaca dokumentasi Accelerate untuk memahami semua opsi yang tersedia; Accelerate menyediakan fungsi-fungsi yang memudahkan untuk operasi seperti pengumpulan tensor dan pemotongan gradien, penggunaannya dapat dilihat di folder contoh pytorch-accelerated!

Untuk mempelajari lebih lanjut tentang motivasi di balik pustaka ini, beserta panduan lengkap memulai, silakan cek blog post ini.

Instalasi

pytorch-accelerated dapat diinstal dari pip menggunakan perintah berikut:

pip install pytorch-accelerated

Untuk membuat paket menjadi se-ramping mungkin, paket-paket yang diperlukan untuk menjalankan contoh tidak disertakan secara default. Untuk menyertakan paket-paket ini, Anda dapat menggunakan perintah berikut:

pip install pytorch-accelerated[examples]

Mulai Cepat

Untuk memulai, cukup impor dan gunakan Trainer dari pytorch-accelerated, seperti yang ditunjukkan pada cuplikan berikut, dan kemudian jalankan pelatihan menggunakan accelerate CLI yang dijelaskan di bawah ini.

# 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()

Untuk memulai pelatihan menggunakan accelerate CLI , pada mesin Anda, jalankan:

accelerate config --config_file accelerate_config.yaml

dan jawab pertanyaan yang diajukan. Ini akan menghasilkan file konfigurasi yang akan digunakan untuk mengatur opsi default dengan benar saat menjalankan

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

Catatan: Penggunaan accelerate CLI sepenuhnya opsional, pelatihan juga dapat dijalankan dengan cara biasa menggunakan:

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

tergantung pada konfigurasi infrastruktur Anda, untuk pengguna yang ingin mengontrol perintah peluncuran secara lebih detail.

Contoh pelatihan yang lebih kompleks dapat dilihat di folder contoh di sini.

Sebagai alternatif, jika Anda lebih suka memahami konsep inti terlebih dahulu, hal tersebut dapat ditemukan dalam dokumentasi.

Penggunaan

Siapa target pengguna pytorch-accelerated?

agar dapat fokus pada bagian menarik dari loop pelatihan.

Kapan sebaiknya tidak menggunakan pytorch-accelerated?

yang membantu Anda memilih model, optimizer, atau fungsi loss, Anda mungkin lebih cocok menggunakan fastai. pytorch-accelerated hanya berfokus pada proses pelatihan, dengan semua hal lainnya menjadi tanggung jawab pengguna. Anda mungkin paling cocok menggunakan Accelerate secara langsung! Meskipun dimungkinkan untuk mengkustomisasi setiap bagian dari Trainer, loop pelatihan secara mendasar dipecah menjadi beberapa

berbagai metode yang harus Anda override. Namun, sebelum Anda melanjutkan, apakah menulis for loop tersebut benar-benar cukup penting hingga harus mulai dari awal lagi 😉.

dan ingin memaksimalkan setiap performa pada perangkat keras pilihan Anda, Anda mungkin lebih baik tetap menggunakan PyTorch murni; API tingkat tinggi manapun akan menjadi overhead pada kasus yang sangat spesifik!

Ucapan Terima Kasih

Banyak aspek dari desain dan fitur pytorch-accelerated sangat terinspirasi oleh sejumlah pustaka dan framework luar biasa seperti fastai, timm, PyTorch-lightning, dan Hugging Face Accelerate. Masing-masing alat ini telah memberikan dampak besar baik pada pustaka ini maupun komunitas machine learning, dan pengaruh mereka tidak bisa dinyatakan secara berlebihan!

pytorch-accelerated hanya mengambil inspirasi dari alat-alat ini, dan semua fungsionalitas yang ada telah diimplementasikan dari awal dengan cara yang menguntungkan pustaka ini. Satu-satunya pengecualian adalah beberapa skrip di examples folder di mana sumber daya yang ada diambil dan dimodifikasi untuk menampilkan fitur pytorch-accelerated; kasus-kasus ini ditandai dengan jelas, dengan penghargaan diberikan kepada penulis aslinya.

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