chalk-lab/Mooncake.jl

Implementation of a language-level autograd compiler

해결하는 문제

Mooncake.jl은 Julia로 완전히 구현된 고성능 자동 미분(AD) 패키지를 제공합니다. ForwardDiff.jl, ReverseDiff.jl, Zygote.jl과 같은 기존 도구를 개선하여, 특히 변형(mutation)을 포함하는 수치적 Julia 코드에서 그래디언트와 헤시안을 보다 안정적이고 정확하게 계산하는 접근 방식을 제공합니다.

작동 방식

이 라이브러리는 반복 평가를 최적화하기 위해 캐시 메커니즘을 사용합니다. 사용자는 먼저 prepare_gradient_cache와 같은 준비 함수를 호출하여 입력의 특정 타입과 크기에 연결된 캐시를 설정합니다. 이 캐시가 준비되면, value_and_gradient!!와 같은 함수를 사용하여 값, 그래디언트, 헤시안을 계산하는 후속 호출은 빠르고 효율적입니다.

대상 사용자

수치적 Julia 코드를 다루며 신뢰할 수 있고 빠르며 반복 가능한 그래디언트와 헤시안 평가가 필요한 연구자 및 개발자에게 적합합니다. 특히 변형에 대한 직접적인 지원이 필요한 상황에서 특히 유용합니다.

주요 특징

  • 전체 Julia 구현: Julia 언어 생태계와의 더 나은 통합을 위해 Julia로 완전히 작성되었습니다.
  • 변형 지원: 변형을 직접 지원하여 대부분의 수치 코드에서 수동으로 규칙을 작성할 필요를 줄입니다.
  • 캐시 전략: 캐시 준비와 평가를 분리하여 빠른 반복 계산을 가능하게 합니다.
  • 엄격한 정확성: 무제한 기능 확장보다 정확성과 안정성을 우선시하며, 도함수를 타당하게 구성할 수 없는 경우 명시적인 규칙을 요구합니다.

관련

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