ONNX 형식으로 내보낸 ML 모델 실행을 위한 크로스 플랫폼 가속기이며, PyTorch 스크립트 학습도 지원합니다.
sonos/tract
ONNX 및 NNEF 모델을 로드해 CPU, Apple Metal, NVIDIA CUDA, WebAssembly에서 실행하는 독립형 Rust 추론 엔진입니다.
- 스타
- 3,112
- 포크
- 297
- 열린 이슈
- 136
- 마지막 커밋
- 8시간 전
어떤 프로젝트인가요?
tract는 Sonos에서 개발한 Rust 기반 신경망 추론 엔진입니다. ONNX 및 NNEF 모델을 로드하고 최적화한 뒤, 임베디드 ARM CPU부터 NVIDIA 및 Apple GPU, WebAssembly를 통한 브라우저, Linux·macOS·Windows 머신까지 다양한 환경에서 실행합니다. 동일한 핵심 엔진을 기반으로 하는 Python 패키지도 PyPI에 공개되어 있습니다.
핵심 아이디어는 모델을 NNEF 기반 중간 형식인 tract-OPL로 한 번 변환한 다음, 애플리케이션에는 작은 런타임만 포함하는 것입니다. 또한 시퀀스 모델을 변환해 스트리밍 축을 따라 고정 크기 청크 단위로 처리하는 pulsified inference를 지원합니다. 이를 통해 배치 처리와 웨이크워드 감지, 스트리밍 음성 인식 같은 저지연 실시간 작업을 모두 지원합니다. 저장소에는 이미지 분류, 음성 인식, transformer를 사용한 텍스트 생성, 텍스트-이미지 생성, 얼굴 감지 예제가 포함되어 있습니다.
핵심 기능
- 01ONNX, NNEF, TensorFlow Lite 및 이전 버전 TensorFlow 1의 frozen graph 모델을 로드합니다.
- 02직접 작성한 SIMD 커널을 사용해 CPU에서 실행하며, Apple Metal 및 NVIDIA CUDA 백엔드도 지원합니다.
- 03브라우저 또는 WASI 배포용 WebAssembly로 컴파일할 수 있습니다.
- 04런타임 의존성을 줄이기 위해 모델을 간결한 NNEF 기반 형식으로 변환합니다.
- 05웨이크워드 및 음성 인식 같은 스트리밍 모델의 pulsified inference를 지원합니다.
- 06Rust API와 PyPI에 공개된 Python 패키지를 제공합니다.
활용 사례
- 임베디드 ARM 기기에서 웨이크워드 감지 또는 스트리밍 음성 인식을 실행합니다.
- protobuf나 학습 프레임워크 로더 없이 작은 추론 런타임을 배포합니다.
- CPU 또는 GPU에서 Rust 애플리케이션으로 ONNX 또는 NNEF 모델을 실행합니다.
- WebAssembly를 통해 브라우저에서 이미지, 음성 또는 언어 모델을 실행합니다.
빠른 시작
- 1
PyPI에서 Python 패키지를 설치합니다
pip install tract - 2
README의 빠른 시작 예제를 따라 ONNX 모델을 로드하고 Rust API로 실행합니다
사용 전 알아둘 점
- TensorFlow 2는 직접 지원되지 않으므로 모델을 먼저 ONNX로 변환해야 합니다.
- 소스에서 빌드하려면 rustc 1.91.0 이상이 필요합니다.
- Metal 런타임과 CUDA 런타임을 사용하려면 각각 Apple GPU와 NVIDIA GPU가 필요합니다.
토픽
자주 묻는 질문
- tract은(는) 무엇인가요?
- ONNX 및 NNEF 모델을 로드해 CPU, Apple Metal, NVIDIA CUDA, WebAssembly에서 실행하는 독립형 Rust 추론 엔진입니다. tract는 Sonos에서 개발한 Rust 기반 신경망 추론 엔진입니다. ONNX 및 NNEF 모델을 로드하고 최적화한 뒤, 임베디드 ARM CPU부터 NVIDIA 및 Apple GPU, WebAssembly를 통한 브라우저, Linux·macOS·Windows 머신까지 다양한 환경에서 실행합니다. 동일한 핵심 엔진을 기반으로 하는 Python 패키지도 PyPI에 공개되어 있습니다.
- tract은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- tract은(는) Other 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- tract은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. tract의 마지막 커밋은 2026년 11월 7일입니다.
- tract은(는) 어디에 사용할 수 있나요?
- 임베디드 ARM 기기에서 웨이크워드 감지 또는 스트리밍 음성 인식을 실행합니다. protobuf나 학습 프레임워크 로더 없이 작은 추론 런타임을 배포합니다. CPU 또는 GPU에서 Rust 애플리케이션으로 ONNX 또는 NNEF 모델을 실행합니다. WebAssembly를 통해 브라우저에서 이미지, 음성 또는 언어 모델을 실행합니다.
- tract는 어떻게 설치하나요?
- PyPI에서 Python 패키지를 설치합니다: pip install tract README의 빠른 시작 예제를 따라 ONNX 모델을 로드하고 Rust API로 실행합니다
- tract은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/sonos/tract
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
학습된 scikit-learn, LightGBM, XGBoost 모델을 텐서 연산으로 변환해 PyTorch, TorchScript, ONNX 또는 TVM에서 추론을 실행하는 Python 라이브러리입니다.
Microsoft가 제공하는 12주 24강 초급 AI 커리큘럼으로, 기호 AI, 신경망, 컴퓨터 비전, NLP, 윤리를 다루며 PyTorch와 TensorFlow 노트북을 제공합니다.
MLIR 기반 컴파일러 및 런타임으로, ML 모델을 통합 IR로 낮춰 데이터센터부터 모바일 및 엣지 기기까지 배포할 수 있습니다.
Keras, PyTorch, ONNX 신경망을 FPGA에서 ML 추론을 실행할 수 있는 HLS 코드로 변환하는 Python 패키지입니다.
네이티브 Java API로 모델을 만들고 학습하고 실행할 수 있는 엔진 독립적인 Java 딥러닝 프레임워크입니다.