Web Analytics

pytorch-accelerated

⭐ 193 stars Korean by Chris-hughes10

🌐 언어

pytorch-accelerated

pytorch-accelerated는 PyTorch 모델의 학습 과정을 가속화하기 위해 설계된 경량 라이브러리입니다. 최소한이지만 확장 가능한 학습 루프를 제공하며, 이 모든 것이 하나의 Trainer 객체에 캡슐화되어 있습니다. 이 객체는 대부분의 사용 사례를 처리할 수 있을 만큼 유연하며, 코드를 변경하지 않고도 다양한 하드웨어 옵션을 사용할 수 있습니다. pytorch-accelerated는 간소화된 기능 세트를 제공하며, 단순성투명성을 매우 중시합니다. 사용자가 내부 동작을 정확히 이해할 수 있도록 하면서도, 반복적으로 작성하고 유지해야 하는 보일러플레이트 코드를 직접 관리하지 않아도 되도록 설계되었습니다! 주요 기능은 다음과 같습니다:

상속 및/또는 콜백을 통해 동작을 커스터마이즈할 수 있습니다.
  • 디바이스 할당, 혼합 정밀도, DeepSpeed 통합, 멀티 GPU 및 분산 학습을 코드 변경 없이 처리합니다.
  • 별도의 수정이나 래퍼 없이 순수 PyTorch 컴포넌트만을 사용하며,
timm, transformerstorchmetrics 등과 같은 인기 있는 라이브러리와 쉽게 상호 운용이 가능합니다. 라이브러리의 모든 부분(내부 및 외부 컴포넌트 모두)이 최대한 명확하고 단순하게 유지되도록 상당한 노력을 기울였으며, 각 단계에서 내부적으로 어떤 일이 일어나는지 쉽게 커스터마이즈, 디버깅 및 이해할 수 있도록 하였습니다; 트레이너의 대부분의 동작은 하나의 클래스에 포함되어 있습니다! 파이썬의 정신에 따라, 숨겨진 것은 없으며 모든 것이 접근 가능합니다.

pytorch-acceleratedHugging Face Accelerate를 기반으로 투명하게 구축되었으며, 디바이스 간 데이터 이동과 학습 환경 실행을 담당합니다. 트레이너를 커스터마이즈하거나 학습을 실행할 때, 사용자는 Accelerate 문서를 참고하여 사용 가능한 모든 옵션을 이해하는 것이 좋습니다; Accelerate는 텐서 집합화, 그래디언트 클리핑 등 편리한 기능을 제공하며, 이러한 사용법은 pytorch-accelerated 예제 폴더에서 확인할 수 있습니다!

이 라이브러리의 개발 배경과 자세한 시작 가이드를 알고 싶다면, 이 블로그 포스트를 참고하세요.

설치

pytorch-accelerated는 다음 명령어로 pip를 통해 설치할 수 있습니다:

pip install pytorch-accelerated
패키지를 가능한 한 슬림하게 만들기 위해, 예제를 실행하는 데 필요한 패키지는 기본적으로 포함되어 있지 않습니다. 이러한 패키지를 포함하려면 다음 명령어를 사용할 수 있습니다:

pip install pytorch-accelerated[examples]

빠른 시작

시작하려면 아래 코드 조각에서 보여주는 것처럼 pytorch-accelerated Trainer를 가져와 사용하고, 그런 다음 아래에 설명된 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

그리고 질문에 답하세요. 이렇게 하면 기본 옵션을 적절히 설정하는 데 사용될 구성 파일이 생성됩니다.

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

참고: accelerate CLI는 완전히 선택 사항이며, 훈련은 다음과 같이 일반적인 방법으로도 시작할 수 있습니다:

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

이는 인프라 구성에 따라 다르며, 실행 명령을 더 세밀하게 제어하려는 사용자에게 적합합니다.

더 복잡한 훈련 예제는 examples 폴더에서 볼 수 있습니다 여기.

또는 핵심 개념을 먼저 이해하고 싶다면, 문서에서 확인할 수 있습니다.

사용법

pytorch-accelerated는 누구를 위한 것인가요?

언제 pytorch-accelerated를 사용하지 말아야 하나요?

아마도 fastai가 더 적합할 것입니다. pytorch-accelerated는 훈련 과정에만 집중하며, 다른 모든 사항은 사용자의 책임으로 남겨둡니다. Accelerate를 직접 사용하는 것이 가장 좋습니다! Trainer의 모든 부분을 커스터마이징할 수는 있지만, 훈련 루프는 근본적으로 여러 부분으로 나뉘어져 있습니다.

재정의해야 하는 다양한 메서드가 있을 것입니다. 하지만, 떠나기 전에, 그런 for 루프를 작성하는 것이 정말로 다시 처음부터 시작할 만큼 중요한가요 😉.

감사의 글

pytorch-accelerated의 설계와 기능 뒤에는 fastai, timm, PyTorch-lightningHugging Face Accelerate와 같은 여러 우수한 라이브러리와 프레임워크에서 크게 영감을 받았습니다. 이 도구들은 이 라이브러리와 머신러닝 커뮤니티 모두에 엄청난 영향을 미쳤으며, 그 영향력은 아무리 강조해도 지나치지 않습니다!

pytorch-accelerated는 이러한 도구들로부터 영감을 받았으며, 포함된 모든 기능은 이 라이브러리에 이익이 되도록 처음부터 직접 구현되었습니다. 예외는 examples 폴더 내 일부 스크립트로, 기존 리소스를 가져와 수정하여 pytorch-accelerated의 기능을 보여주기 위한 경우입니다; 이러한 경우는 명확히 표시되어 있으며 원 저자에게 감사를 표하고 있습니다.

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