noahgolmant/pytorch-hessian-eigenthings
Efficient PyTorch Hessian eigendecomposition tools!
What it solves
손실 함수의 2차 미분인 전체 Hessian matrix를 계산하는 것은 매개변수 수에 따라 메모리 요구 사항이 제곱으로 증가하기 때문에 대규모 신경망에서는 계산적으로 불가능합니다. 이 라이브러리는 전체 행렬을 명시적으로 구축하지 않고도 모델의 손실 landscape의 곡률을 분석할 수 있는 확장 가능한 방법을 제공합니다.
How it works
이 프로젝트는 선형 메모리만 필요한 Hessian-vector products (HVPs)를 사용합니다. HVPs를 반복 알고리즘과 결합함으로써, 메모리 병목 현상 없이 Hessian 및 기타 곡률 행렬(Generalized Gauss-Newton 및 empirical Fisher와 같은)의 특정 속성을 계산할 수 있습니다.
Key algorithms included are:
- Lanczos and stochastic power iteration를 사용하여 상위 고유값(eigenvalues)과 고유벡터(eigenvectors)를 찾습니다.
- **Hutch++**를 사용하여 행렬의 trace를 추정합니다.
- Stochastic Lanczos Quadrature를 사용하여 스펙트럼 밀도(spectral density)를 추정합니다.
대규모 언어 모델의 경우, cross-entropy Hessian-vector products의 속도를 높이기 위해 최적화된 커널(torch.compile 또는 Triton 사용)을 포함합니다.
Who it’s for
신경망 최적화, 일반화 분석을 수행하는 연구자 및 개발자, 그리고 손실 landscape의 기하학적 구조(예:
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트