Apple MLX 가속¶
Backend.AI GO는 로컬 MLX 추론을 mlxcel-server와 mlx-lm으로 지원하며, 가능하면 mlxcel-server를 우선 사용합니다.
현재 Backend.AI GO가 사용하는 경로¶
Backend.AI GO는 더 이상 MLX를 미래 기능이나 수동으로 붙여야 하는 Python 사이드카로 취급하지 않습니다.
- 우선 엔진:
mlxcel-server - 폴백 / 레거시 옵션: 머신에 설치된 경우의
mlx-lm - 현재 mlxcel 패키지: macOS arm64 Metal, Linux arm64 CUDA13, Linux x64 CUDA13
- 주요 모델 형식:
mlx
앱은 로컬 MLX 서빙에서 예전 safetensors 별칭을 mlx 형식으로 정규화합니다. 즉, Hugging Face에서 받은 MLX 저장소는 앱 안에서 MLX 모델로 취급되며, mlxcel과 mlx-lm이 모두 있을 때는 mlxcel을 우선 선택합니다.
왜 mlxcel이 우선인가요?¶
mlxcel-server는 Backend.AI GO가 현재 적극적으로 통합하고 버전 게이팅하는 MLX 엔진입니다.
- 자동 엔진 선택 시 이 엔진을 우선합니다.
- 현재 UI가 관리하는 MLX 전용 설정을 노출합니다.
- 앱이 버전별 기능을 판단할 때 사용하는 capability probe를 지원합니다.
- 추측 디코딩과 분산 파이프라인 서빙 같은 현재 MLX 기능 경로입니다.
mlx-lm이 함께 설치되어 있더라도 MLX 저장소의 호환 가능한 레거시 선택지일 뿐, 기본 우선순위는 아닙니다.
지원 플랫폼과 패키지¶
Backend.AI GO의 현재 MLX 관련 엔진 지원은 다음과 같습니다.
- MLX LM:
mlx및gguf, macOS arm64 Metal - MLXcel:
mlx, macOS arm64 Metal, Linux arm64 CUDA13, Linux x64 CUDA13 - Windows: 현재 MLX 엔진 패키지 없음
포맷 호환성: MLXcel은 mlx 저장소를 서빙합니다. MLX LM은 지원되는 macOS 시스템에서 mlx 저장소와 GGUF 모델을 모두 서빙할 수 있습니다.
MLX 경로에서는 Engines 페이지의 mlxcel 엔진을 우선 확인하고, mlx-lm은 의도적으로 레거시 엔진을 쓸 때만 사용하세요.
MLX 저장소 형식¶
Backend.AI GO는 보통 Hugging Face에서 내려받는 MLX 저장소 디렉터리를 기대합니다. 일반적인 구성은 다음과 같습니다.
config.jsontokenizer.json또는 토크나이저 자산*.safetensors가중치 shard- 선택적인 프로세서 / 멀티모달 자산
앱에서는 이 형식을 mlx로 표시합니다. 오래된 문서나 메타데이터에 safetensors라고 남아 있을 수 있지만, 로컬 MLX 경로에서 쓰는 정규화된 이름은 mlx입니다.
엔진 설치와 선택¶
- 사이드바에서 Engines를 엽니다.
- 아직 없으면 mlxcel을 설치합니다.
- 설정 > 모델로 이동합니다.
- 형식별 기본 엔진에서
mlx의 기본 엔진을 mlxcel로 설정합니다.
자동 선택을 유지해도 Backend.AI GO는 mlxcel이 있으면 이를 우선 사용합니다.

로드와 헬스 체크 수명주기¶
MLX 모델을 로드하면 Backend.AI GO는 다음 순서로 동작합니다.
mlx형식에 가장 적합한 설치된 엔진을 선택합니다.- 로컬 엔진 엔드포인트를 시작합니다.
- readiness를 기다립니다.
- Chat, Sessions, Management API가 쓸 수 있도록 세션을 등록합니다.
프로세스가 예기치 않게 종료되면 Backend.AI GO는 세션을 정리하고 오래된 라우트도 함께 제거합니다.
실제 모델 로드는 다운로드된 모델은 Models > Local, 새 MLX 저장소 다운로드는 Models > Browse를 사용하세요.
앱 기본값과 모델별 설정¶
MLX 동작은 두 곳에서 설정합니다.
앱 기본값¶
구체적인 모델별 재정의 전에 적용되는 기본값은 설정 > 생성에서 관리합니다.
관련 제어 항목은 다음과 같습니다.
- 형식별 기본 엔진은 설정 > 모델에 있습니다
- 기본 reasoning effort
- 같은 머신의 비 MLX 형식에 대한 컨테이너 엔진 기본값
- 엔진이 지원할 때 적용되는 전역 MLX 엔진 설정
모델별 MLX 설정¶
Models > Local에서 MLX 모델을 선택한 뒤 Model Config Drawer를 열면 됩니다. Backend.AI GO는 선택한 엔진과 설치된 mlxcel-server 버전이 지원할 때만 MLX 전용 설정을 표시합니다.
대표적인 MLX 관련 항목은 다음과 같습니다.
- 컨텍스트 길이와 관련 로드 설정
- 사고 모델의 reasoning 제어
- 감지된
mlxcel-servercapability에 따라 표시되는 MLX 전용 고급 옵션 - 호환 drafter 모델용 추측 디코딩 옵션
공통 개념은 모델 설정을 참고하세요.
capability와 버전 게이팅¶
Backend.AI GO는 설치된 mlxcel-server 바이너리를 프로브하고, 감지된 버전이 지원할 때만 새 플래그를 켭니다.
이 방식은 두 가지를 보호합니다.
- 오래된 바이너리에 지원하지 않는 플래그를 보내지 않음
- 더 새로운
mlxcel-server가 필요한 기능을 UI에서 숨기거나 비활성화함
현재 capability 표면에는 다음과 같은 버전 게이트 기능이 포함됩니다.
- KV 캐시 양자화
- paged attention 관련 기능
- prompt cache와 APC 제어
- reasoning budget 지원
- 오디오 입력 지원
- 분산 서빙 지원
프로브 결과가 애매하면 기존 MLX 흐름은 계속 동작하지만, 버전 게이트 기능은 꺼진 상태로 유지됩니다.
추측 디코딩¶
mlxcel은 로컬 drafter 체크포인트를 사용하는 추측 디코딩을 지원합니다.
- MLX에서는 drafter가 로컬 디렉터리여야 합니다.
- Auto 감지는 체크포인트 메타데이터로 drafter kind를 고릅니다.
- 현재 Backend.AI GO가 문서화한 검증 조합은 다음 두 가지입니다.
- Gemma 4 대상의 MTP
- Qwen 3.5 텍스트 / VLM 대상의 DFlash
이 설정은 모델의 Speculative 탭에서 구성합니다. drafter가 호환되지 않으면 엔진은 일반 디코딩으로 되돌아갑니다.
멀티노드 파이프라인 서빙¶
Backend.AI GO는 MLX 파이프라인 병렬 서빙에도 mlxcel을 사용합니다.
- 클러스터 계획은 파이프라인 병렬 계획에서 설명합니다.
- 실제 실행과 운영은 파이프라인 서빙을 참고하세요.
분산 MLX 서빙은 mlxcel-server capability probe로 버전 게이팅하므로, 설치된 바이너리가 충분히 새 버전일 때만 옵션이 나타납니다.
언제 MLX를 선택해야 하나요?¶
다음 조건이면 MLX를 선택하세요.
- 모델이 MLX 저장소 형식으로 제공될 때
- Backend.AI GO가
mlxcel로 노출하는 현재 MLX 전용 기능이 필요할 때 - Apple Silicon에서 네이티브 Metal 경로를 쓰고 싶거나, Linux에서 지원되는 CUDA13
mlxcel패키지를 쓸 때
다음 조건이면 GGUF와 llama.cpp가 더 맞습니다.
- Windows를 포함한 가장 넓은 크로스 플랫폼 동등성이 필요할 때
- GGUF 전용 양자화가 필요할 때