ml-explore/mlx-swift
Swift API for MLX
MLX Swift – MLX 머신러닝 배열 라이브러리를 위한 Swift 바인딩
소개 – MLX Swift는 Apple 실리콘 GPU(Metal)에서 기본적으로 실행되고 CUDA를 통해 Linux에서도 실행되는 배열 지향 머신러닝 프레임워크인 MLX의 Swift 언어 래퍼입니다. Python 버전과 동일한 텐서 연산, 신경망 계층 및 옵티마이저를 제공하며, Swift로 코드를 작성하여 iOS, macOS 또는 서버 측 Swift 프로젝트에 직접 통합할 수 있습니다.
중요성 – Apple 하드웨어(M 시리즈 칩)는 강력한 GPU를 제공하지만 대부분의 ML 라이브러리에서는 직접 접근할 수 없습니다. MLX는 Metal과 통신하는 저수준의 고성능 텐서 라이브러리를 제공하며, MLX Swift는 이를 Swift 생태계에서 사용할 수 있게 함으로써 Apple 개발 스택을 벗어나지 않고도 온디바이스 학습, 추론 및 연구를 가능하게 합니다.
주요 구성 요소
MLX– 핵심 텐서 유형 및 연산.MLXNN– 신경망 계층 빌딩 블록(컨볼루션, 선형, 활성화 등).MLXOptimizers– SGD, Adam 등 표준 옵티마이저.MLXRandom– 재현 가능한 난수 생성.
사용 방법
- Xcode 프로젝트 또는
Package.swift파일에 패키지를 추가합니다(예:.package(url: "https://github.com/ml-explore/mlx-swift", from: "0.10.0")). - 원하는 모듈을 가져오고(
import MLX,import MLXNN, …) 텐서를 생성하고 모델을 정의하며 학습 또는 추론을 실행하는 Swift 코드를 작성합니다. - Xcode(필요한 Metal 셰이더를 컴파일함)를 사용하여 빌드하거나 명령줄 또는 Linux 빌드를 위해 CMake/Ninja를 사용합니다.
일반적인 워크플로우 –
import MLX, MLXNN, MLXOptimizers
let x = MLXArray.randomNormal(shape: [64, 784]) // input batch
let model = Sequential {
Linear(inFeatures: 784, outFeatures: 128)
Relu()
Linear(inFeatures: 128, outFeatures: 10)
}
let opt = Adam(parameters: model.parameters, learningRate: 0.001)
let logits = model(x)
let loss = softmaxCrossEntropy(logits, targets: …)
opt.step(loss: loss)
동일한 코드가 빌드 플래그에 따라 macOS/iOS(Metal GPU) 또는 Linux(CPU/CUDA)에서 실행됩니다.
저장소와 함께 제공되는 예제 –
- MNISTTrainer – 클래식 MNIST 데이터셋에서 LeNet 모델을 학습하며 iOS 및 macOS에서 실행 가능.
- MLXChatExample – Hugging Face에서 언어 모델과 비전 언어 모델을 로드하여 로컬에서 추론을 실행하는 작은 채팅 UI.
- LLMEval – LLM과 토크나이저를 다운로드한 후 프롬프트에서 텍스트를 생성.
- StableDiffusionExample – 온디바이스에서 Stable Diffusion 확산 모델을 실행하여 이미지 생성.
- llm-tool – Hugging Face LLM을 사용하여 빠르게 텍스트를 생성하기 위한 명령줄 유틸리티. 모든 예제는 동반되는 mlx-swift-examples 저장소에 있으며 Python MLX 생태계에서 모델을 포팅하는 방법을 보여줍니다.
설치 옵션
- Xcode – 저장소를 Swift Package로 추가한 다음 필요한 라이브러리를 연결합니다. 복잡한 종속성 그래프의 경우 제공된
xcode/MLX.xcodeproj를 통해 MLX를 프레임워크로 빌드할 수도 있습니다. - SwiftPM (CLI) –
Package.swift에서 패키지를 선언합니다. Metal 셰이더는 여전히 Xcode로 컴파일해야 한다는 점에 유의하세요. - CMake/Ninja – macOS(Metal) 및 Linux(CPU 또는 CUDA)에서 작동합니다. 기본 C-MLX 코드에 대한 하위 모듈을 먼저 초기화해야 합니다.
커뮤니티 및 기여 – 이 프로젝트는 허용적인 라이선스 하에 오픈 소스로 제공되며, 풀 리퀘스트를 환영하고 릴리스 계획 이슈 뷰를 유지 관리합니다. 기여는 CONTRIBUTING.md에 따라 안내되며 감사의 말은 ACKNOWLEDGMENTS.md에 나열되어 있습니다.
더 알아보기 – 전체 API 문서는 SwiftPackageIndex에 호스팅되어 있으며, 업스트림 MLX 문서는 기본 텐서 라이브러리에 대해 설명합니다.
요약 – MLX Swift는 Apple 실리콘 가속 MLX를 Swift 세계로 가져와 개발자가 익숙한 Swift API를 사용하여 iOS/macOS 또는 Linux에서 직접 신경망 코드(LLM, 비전 언어 모델, 확산 모델 포함)를 작성하고 실행할 수 있도록 합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트