elixir-nx/axon

Nx-powered Neural Networks

해결하는 문제

Axon은 Elixir 생태계 내에서 신경망을 구축하고 훈련하기 위한 포괄적인 프레임워크를 제공합니다. 개발자는 주 언어를 벗어나지 않고도 딥러닝 모델을 구현할 수 있으며, 모델 생성을 위한 고수준 API와 훈련 루프를 관리하기 위한 구조화된 API를 제공하면서도 수치 정의에 대한 저수준 제어를 유지합니다.

작동 방식

Axon은 Nx(수치적 Elixir) 위에 구축되어 있으며, 세 가지 주요 계층으로 구성되어 있습니다:

  • 기능형 API: defn(수치적 정의)으로 구성된 기반으로, 활성화 함수, 레이어, 손실 함수와 같은 일반적인 딥러닝 컴포넌트를 제공합니다. 이를 통해 Nx 컴파일러를 통해 JIT 또는 AOT 컴파일이 가능하여 가속화를 실현할 수 있습니다.
  • 모델 생성 API: Elixir 구조체로 모델을 정의하기 위한 고수준 인터페이스입니다. 모델 정의와 초기화, 적용의 책임을 분리하며, Axon.build/2를 사용해 예측 및 초기화 함수를 생성합니다.
  • 훈련 API: PyTorch Ignite를 참고한 루틴 기반 시스템으로, 사용자가 메트릭과 이벤트 핸들러를 루프에 삽입하여 훈련 루프를 구현할 수 있습니다.

대상 사용자

자신의 애플리케이션에 딥러닝과 신경망 구축을 직접 통합하고 싶은 Elixir 개발자, 또는 고수준 모델 생성과 저수준 수치 가속화를 조합할 수 있는 유연성을 필요로 하는 사용자.

주요 특징

  • Nx 기반: Nx 텐서와 컴파일러(예: EXLA)와 완전히 통합되어 하드웨어 가속을 제공합니다.
  • 분리된 API: 기능형, 모델 생성, 훈련 API는 독립적으로 사용 가능합니다.
  • 컴파일 가능: JIT 및 AOT 컴파일을 지원하며, TensorFlow Lite 및 ONNX와 같은 포맷으로 변환도 가능합니다.
  • 확장성: Axon의 기능형 API를 사용자 고유의 수치 정의와 조합하여 사용할 수 있습니다.

관련

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