프로젝트 소개

TensorFold는 OpenAI 호환 HTTP API를 통해 언어 모델을 노출하는 로컬 추론 서버입니다. 두 가지 백엔드를 대상으로 합니다: MLX를 통한 Apple Silicon과 CUDA를 통한 NVIDIA GPU입니다. 지원되는 각 모델 패밀리는 단일 범용 경로에 의존하지 않고 자체 커널과 드래프트 검증 로직을 제공합니다. 설치는 Git 저장소에서 pip로 이루어지며, CLI는 `serve`, `pull`, `models`, `info`, `update` 명령을 제공합니다. 일반적인 시작은 `tensorfold serve <checkpoint>`이며, 이후 클라이언트는 `http://127.0.0.1:8080/v1`을 가리키고 `/v1/models`가 보고하는 모델 ID를 사용합니다. 채팅 완성, 완성, Responses API가 모두 제공됩니다. Python 3.11+가 필요하며, macOS에서는 MLX 0.32.2+가 필요합니다. README에는 지원되는 모델 패밀리와 체크포인트 표가 나열되어 있으며, Nemotron 3.5 Lightning, Qwen3.8-27B, Qwen3.8 Flash Next, GLM-5.3-Flash, Gemma 4 26B-A4B, DeepSeek-V4-Flash, Ternary Bonsai 2 27B와 각각이 사용하는 백엔드 및 드래프팅 방법에 대한 설명이 포함되어 있습니다. 양자화 지원은 패밀리마다 다릅니다: Qwen3.8-27B는 혼합 레이어 형식을 포함한 MLX affine 2~8비트 체크포인트를 읽습니다. Flash Next는 4비트/그룹-32 가중치가 필요합니다. Nemotron CUDA는 4비트/그룹-64와 MTP 헤드가 필요합니다. GLM은 4비트/그룹-64 및 혼합 비트 변환을 읽습니다. 일부 CUDA 경로는 NVFP4 또는 EXL3 변환을 허용하며, 실험적으로 표시되어 있습니다. 핵심 설계 주장은 정확한 디코딩입니다: 추측 드래프트는 동일한 엔진이 직렬로 생성했을 토큰과 일치할 때만 수락되며, 샘플링은 프롬프트 또는 시드, 절대 위치, 토큰 ID에 연결됩니다. README는 정확성이 동일한 엔진, 가중치, 런타임, 설정에 상대적이며, MLX와 CUDA, 서로 다른 양자화, 서로 다른 텐서 병렬 랭크 수 간에 동일한 출력을 의미하지 않는다고 명시합니다. 사용자는 `"draft": false`로 요청을 비교하여 드래프트 출력과 직렬 출력을 확인할 수 있습니다. 서빙 옵션은 호스트/포트, 광고되는 모델 이름, 컨텍스트 크기, 응답 제한, 샘플링 기본값, 사고 토글 및 추론 노력, 백엔드 선택, 병렬성, 드래프트 제어, 그리고 MLX에서는 프롬프트 캐싱과 유지된 접두사, 디스크 스필, 스냅샷 디렉터리, 재사용 가능한 버퍼 캐시와 같은 메모리 튜닝을 포함합니다. CUDA 전용 옵션에는 Flash Next용 KV 캐시 dtype, MTP 신뢰 임계값, 2랭크 텐서 병렬 실행이 포함됩니다. 메모리 처리는 자세히 문서화되어 있습니다: MLX는 기본적으로 RAM의 70% 프로세스 예산을 사용하며, 환경 변수로 재정의할 수 있고, 가중치, 캐시 증가, 응답 토큰, 프리필 작업 공간을 고려한 입장 회계를 사용합니다. 메모리 클래스 표에는 32GB에서 256GB까지의 자격 슬롯이 나열되어 있지만, 대부분의 셀은 TBD로 표시되어 있습니다. 64GB M5 Pro 행만 게시된 수치가 있으며, 이전 버전에 대한 커뮤니티 실행에 기인합니다. README는 이것이 자격 슬롯이며 최소 메모리 약속이 아니라고 명시합니다. MLX의 프롬프트 캐싱은 렌더링된 토큰 시퀀스에서 파생된 청크 계획을 사용하며, 어시스턴트 메시지 시작과 두 번째 메시지 시작에 재개 지점이 있습니다. 스냅샷은 모델, 런타임, 커널, 청크 계획 ID를 포함하므로 접두사가 재시작 후에도 유지될 수 있습니다. CUDA 엔진은 자체 프롬프트 및 응답 상태를 유지하며 MLX 디스크 스냅샷 또는 유지된 접두사 옵션을 사용하지 않습니다. NVIDIA 하드웨어의 경우 README는 NVIDIA의 PyTorch 컨테이너를 권장합니다. 패키지에 CUDA 설치 추가 기능이 없기 때문입니다. Qwen3.8-27B, Flash Next, Nemotron은 하나 또는 두 개의 CUDA 랭크를 지원하며, GLM은 두 개가 필요합니다. 랭크 0이 HTTP를 서빙합니다. 비전 입력은 옵트인입니다: 비전 추가 기능을 설치하고 `--vision`으로 호환되는 Qwen3.5/3.8 dense 체크포인트를 시작하면 동일한 엔진을 통해 이미지와 텍스트 콘텐츠 부분을 허용합니다. 프로젝트는 MIT 라이선스이며, 모델 가중치는 자체 라이선스를 유지하고 일부 선택적 드래프트 체크포인트는 서드파티 고지에 명시된 비상업적 조건을 포함합니다.