metaopt/torchopt

TorchOpt is an efficient library for differentiable optimization built upon PyTorch.

해결하는 문제

TorchOpt은 PyTorch에서 미분 가능한 최적화를 위한 프레임워크를 제공하여 최적화 과정을 통해 기울기를 계산할 수 있게 합니다. 이는 외부 파라미터가 내부 최적화 루프의 결과에 기반하여 최적화되어야 하는 이중 최적화 문제, 예를 들어 메타학습에서 필수적입니다.

작동 방식

TorchOpt은 다양한 최적화 시나리오를 처리하기 위해 세 가지 주요 미분 모드를 구현합니다:

  • 명시적 기울기 (EG): 전개된 최적화 경로를 역전파하여 각 기울기 단계를 미분 가능한 함수로 취급합니다. 내부 루프 단계 수가 적을 때 이상적입니다.
  • 음함수 기울기 (IG): 음함수 정리를 사용하여 내부 루프의 정상점에서 해석적 도함수를 찾으며, 전체 최적화 경로를 전개할 필요가 없습니다.
  • 제로차 미분 (ZD): 내부 루프가 미분 불가능하거나 헤시안 계산이 너무 비용이 클 경우, 유한차분이나 진화 전략(ES)과 같은 제로차 방법으로 기울기를 추정합니다.

JAX/Optax와 유사한 함수형 API와 표준 PyTorch torch.optim과 유사한 객체 지향 API를 모두 제공하여 다양한 코딩 스타일에 적합합니다.

대상 사용자

메타학습, 하이퍼파라미터 최적화 및 기타 이중 최적화 작업에 종사하는 연구자 및 개발자들을 위한 것으로, PyTorch 옵티마이저를 효율적이고 유연하게 미분 가능하게 처리할 수 있도록 설계되었습니다.

주요 특징

  • 세 가지 미분 모드: 명시적, 음함수, 제로차 기울기를 모두 지원합니다.
  • 유연한 API: JAX 스타일의 함수형과 PyTorch 스타일의 객체 지향 인터페이스를 모두 제공합니다.
  • 성능 최적화: C++/CUDA 가속 연산자와 RPC 기반 분산 학습 프레임워크를 포함합니다.
  • 기능적 통합: functorch와 통합되어 PyTorch에서 조합 가능한 기능적 최적화를 가능하게 합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트