jax-ml/jax
Composable transformations of Python+NumPy programs: differentiate, vectorize, JIT to GPU/TPU, and more
해결하는 문제
JAX는 고성능 수치 계산 및 대규모 기계 학습을 위한 시스템을 제공합니다. Python과 NumPy 함수의 자동 미분을 가능하게 하며, GPU 및 TPU와 같은 하드웨어 가속기에서 계산을 확장할 수 있는 라이브러리의 필요성을 해결합니다.
작동 방식
JAX는 조합 가능한 함수 변환의 확장 가능한 시스템으로 구축되었습니다. XLA(가속된 선형 대수)를 활용하여 NumPy 유사 프로그램을 하드웨어 가속기용으로 컴파일합니다. 핵심 기능은 세 가지 주요 변환에 의해 구동됩니다:
jax.grad: 자동 미분을 수행하며, 역방향(역전파) 및 순방향 미분을 임의의 차수까지 지원합니다.jax.jit: XLA를 사용하여 순수 함수를 끝에서 끝까지 컴파일하여 실행 속도를 향상시킵니다.jax.vmap: 함수를 자동으로 벡터화하여 배열 축을 따라 매핑함으로써 수동으로 배치 차원을 관리할 필요를 제거합니다.
대상 사용자
JAX는 고성능 수치 계산 및 대규모 기계 학습에 종사하는 연구자 및 개발자에게 설계되었으며, 유연하고 확장 가능한 배열 계산이 필요한 사용자에게 적합합니다.
주요 특징
- 조합 가능한 변환:
grad,jit,vmap를 임의로 조합할 수 있습니다. - 하드웨어 가속: XLA를 통해 NVIDIA GPU, Google TPU, AMD GPU, Intel GPU를 네이티브로 지원합니다.
- 유연한 미분: 루프, 조건문, 재귀, 클로저를 통한 미분을 지원합니다.
- 확장 가능한 병렬 처리: 컴파일러 기반 자동 병렬화, 명시적 샤딩, 수동 디바이스 프로그래밍 등 다양한 확장 모드를 제공합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트