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에서 조합 가능한 기능적 최적화를 가능하게 합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트