Web Analytics

pytorch-accelerated

⭐ 193 stars Vietnamese by Chris-hughes10

🌐 Ngôn ngữ

pytorch-accelerated

pytorch-accelerated là một thư viện nhẹ được thiết kế để tăng tốc quá trình huấn luyện các mô hình PyTorch bằng cách cung cấp một vòng lặp huấn luyện tối giản nhưng có khả năng mở rộng - được đóng gói trong một đối tượng Trainer duy nhất - đủ linh hoạt để xử lý phần lớn các trường hợp sử dụng, và có khả năng tận dụng các tùy chọn phần cứng khác nhau mà không cần thay đổi mã nguồn. pytorch-accelerated cung cấp một tập hợp tính năng gọn nhẹ, và đặt trọng tâm lớn vào sự đơn giảntính minh bạch, để cho phép người dùng hiểu chính xác những gì đang diễn ra bên trong, nhưng không cần phải tự viết và duy trì các đoạn mã mẫu lặp đi lặp lại! Các tính năng chính bao gồm:

transformerstorchmetrics. Đã có nỗ lực đáng kể để đảm bảo rằng mọi phần của thư viện - cả thành phần bên trong và bên ngoài - đều rõ ràng và đơn giản nhất có thể, giúp dễ dàng tùy biến, debug và hiểu rõ chính xác những gì đang xảy ra phía sau hậu trường ở mỗi bước; hầu hết hành vi của trainer đều nằm trong một lớp duy nhất! Theo tinh thần của Python, không có gì bị ẩn giấu và mọi thứ đều có thể truy cập được.

pytorch-accelerated được xây dựng một cách minh bạch và tự hào dựa trên Hugging Face Accelerate, chịu trách nhiệm cho việc di chuyển dữ liệu giữa các thiết bị và khởi chạy các cấu hình huấn luyện. Khi tùy chỉnh trainer hoặc khởi chạy quá trình huấn luyện, người dùng nên tham khảo tài liệu Accelerate để hiểu tất cả các tùy chọn hiện có; Accelerate cung cấp các hàm tiện lợi cho các thao tác như gom các tensor và cắt gradient, cách sử dụng các hàm này có thể xem trong thư mục ví dụ của pytorch-accelerated!

Để tìm hiểu thêm về động lực xây dựng thư viện này, cùng với hướng dẫn bắt đầu chi tiết, hãy xem bài viết blog này.

Cài đặt

pytorch-accelerated có thể được cài đặt từ pip bằng lệnh sau:

pip install pytorch-accelerated
Để làm cho gói càng nhỏ gọn càng tốt, các gói cần thiết để chạy ví dụ không được bao gồm mặc định. Để thêm các gói này, bạn có thể sử dụng lệnh sau:

pip install pytorch-accelerated[examples]

Bắt đầu nhanh

Để bắt đầu, chỉ cần import và sử dụng Trainer của pytorch-accelerated, như minh họa trong đoạn mã dưới đây, sau đó khởi động quá trình huấn luyện bằng accelerate CLI được mô tả bên dưới.

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

Để khởi động quá trình huấn luyện bằng accelerate CLI , trên máy của bạn, hãy chạy:

accelerate config --config_file accelerate_config.yaml

và trả lời các câu hỏi được đưa ra. Điều này sẽ tạo ra một tệp cấu hình sẽ được dùng để thiết lập đúng các tùy chọn mặc định khi chạy

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

Lưu ý: Việc sử dụng accelerate CLI là hoàn toàn tùy chọn, bạn cũng có thể khởi động quá trình huấn luyện theo cách thông thường bằng:

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

tùy thuộc vào cấu hình hạ tầng của bạn, dành cho người dùng muốn kiểm soát chi tiết hơn lệnh khởi động.

Các ví dụ huấn luyện phức tạp hơn có thể được xem trong thư mục examples tại đây.

Ngoài ra, nếu bạn muốn hiểu các khái niệm cốt lõi trước, bạn có thể tìm thấy chúng trong tài liệu.

Sử dụng

Đối tượng mà pytorch-accelerated hướng tới là ai?

để tập trung vào các phần thú vị của quy trình huấn luyện.

Khi nào bạn không nên dùng pytorch-accelerated?

hỗ trợ bạn chọn mô hình, bộ tối ưu hóa hoặc hàm mất mát, có lẽ bạn sẽ phù hợp hơn với fastai. pytorch-accelerated chỉ tập trung vào quá trình huấn luyện, các vấn đề khác sẽ do người dùng tự đảm nhận. bạn sẽ phù hợp nhất với việc sử dụng trực tiếp Accelerate! Mặc dù có thể tùy chỉnh mọi phần của Trainer, nhưng vòng lặp huấn luyện về cơ bản được chia thành một số

các phương pháp khác nhau mà bạn sẽ phải ghi đè. Nhưng, trước khi bạn đi, liệu việc viết những vòng lặp for đó có thực sự quan trọng đến mức đáng để bắt đầu lại từ đầu một lần nữa 😉.

và muốn tận dụng tối đa hiệu năng trên phần cứng được chọn, thì tốt nhất bạn nên sử dụng PyTorch gốc; bất kỳ API cấp cao nào cũng trở thành gánh nặng trong các trường hợp đặc biệt!

Lời cảm ơn

Nhiều khía cạnh trong thiết kế và các tính năng của pytorch-accelerated đã được lấy cảm hứng rất lớn từ một số thư viện và framework xuất sắc như fastai, timm, PyTorch-lightningHugging Face Accelerate. Mỗi công cụ này đều có ảnh hưởng to lớn đến cả thư viện này và cộng đồng học máy, và tầm ảnh hưởng của chúng không thể nói hết bằng lời!

pytorch-accelerated chỉ lấy cảm hứng từ các công cụ này, và toàn bộ các chức năng đều được triển khai từ đầu theo cách có lợi cho thư viện này. Ngoại lệ duy nhất là một số script trong thư mục examples trong đó các tài nguyên hiện có được lấy và chỉnh sửa nhằm trình diễn các tính năng của pytorch-accelerated; các trường hợp này đều được đánh dấu rõ ràng, với sự ghi nhận dành cho tác giả gốc.

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