개발자들이 애플 뉴럴 엔진의 독점 API를 역설계하여 최초로 ANE에서 신경망 학습을 구현했습니다.
이 기사는 기계로 번역되었습니다
원문 표시
ME 뉴스에 따르면, 3월 3일(UTC+8), 개발자 만짓 싱(Manjeet Singh, GitHub: maderix)은 클로드 오푸스(Claude Opus)와 협력하여 애플의 비공개 API를 리버스 엔지니어링하여 M4 칩의 애플 뉴럴 엔진(ANE)에서 역전파를 포함한 신경망 학습 구현을 최초로 성공시켰습니다. ANE는 애플이 추론을 위해 특별히 설계한 가속기 입니다. 애플은 공식적으로 학습 기능을 공개한 적이 없으며, 개발자는 CoreML 프레임 통해서만 간접적으로 추론 기능에 접근할 수 있습니다. 이 프로젝트는 CoreML을 우회하여 `_ANEClient` 및 `_ANECompiler`와 같은 40개 이상의 비공개 클래스에서 IOKit 커널 드라이버의 전체 소프트웨어 스택으로 직접 매핑했습니다. 또한, 각 가중치 업데이트마다 재컴파일이 필요한 학습에 필수적인 단계인 메모리 내 모델 컴파일을 직접 가능하게 하는 `_ANEInMemoryModelDescriptor` 인터페이스를 발견했습니다. 현재, 단일 트랜스포머 레이어(차원=768, 시퀀스=512) 학습이 구현되어 있으며, M4 프로세서에서 스텝 타임은 9.3ms, ANE 활용률은 11.2%(1.78 TFLOPS, 이론적 최대 15.8 TFLOPS)입니다. 순방향 및 역방향 전파를 위한 입력 기울기는 ANE에서 계산되고, 가중치 기울기 계산과 Adam 최적화는 CPU에서 수행됩니다. 또한, 이 프로젝트는 ANE의 핵심 연산 기본 요소가 행렬 곱셈이 아닌 컨볼루션임을 발견했습니다. 1x1 컨볼루션을 사용하여 행렬 곱셈을 표현하면 처리량이 약 3배 향상되고, CoreML을 거치지 않고 직접 호출하면 추가로 2~4배 향상됩니다. Apple의 공식 주장인 "38 TOPS"는 오해의 소지가 있습니다. 이 프로젝트는 아직 초기 단계이며, 단일 레이어 학습만 지원하고, 합성 데이터를 사용하며, 컴파일 후 약 119개의 리소스 누수가 발생하여 이를 해결하기 위해 프로세스를 재시작해야 합니다. 다층 학습 및 실제 데이터 지원은 아직 개발 중입니다. 이 프로젝트는 MIT 라이선스 하에 오픈 소스로 공개되었으며, 5일 만에 약 2800개의 별을 받았습니다. (출처: ME)
출처
면책조항: 상기 내용은 작자의 개인적인 의견입니다. 따라서 이는 Followin의 입장과 무관하며 Followin과 관련된 어떠한 투자 제안도 구성하지 않습니다.
라이크
즐겨찾기에 추가
코멘트
공유




