Sobre el proyecto
TensorFold es un servidor de inferencia local que expone modelos de lenguaje a través de una API HTTP compatible con OpenAI. Está dirigido a dos backends: Apple Silicon mediante MLX y GPUs NVIDIA mediante CUDA. Cada familia de modelos compatible incluye sus propios kernels y lógica de verificación de borradores, en lugar de depender de una única ruta genérica.
La instalación se realiza desde el repositorio de Git con pip, y la CLI proporciona comandos `serve`, `pull`, `models`, `info` y `update`. Un inicio típico es `tensorfold serve <checkpoint>`, después de lo cual los clientes apuntan a `http://127.0.0.1:8080/v1` y usan el ID de modelo informado por `/v1/models`. Se sirven completaciones de chat, completaciones y la API de Respuestas. Se requiere Python 3.11+ y MLX 0.32.2+ en macOS.
El README enumera una tabla de familias de modelos y checkpoints compatibles, incluyendo Nemotron 3.5 Lightning, Qwen3.8-27B, Qwen3.8 Flash Next, GLM-5.3-Flash, Gemma 4 26B-A4B, DeepSeek-V4-Flash y Ternary Bonsai 2 27B, con notas sobre qué backend y método de borrador usa cada uno. El soporte de cuantización varía según la familia: Qwen3.8-27B lee checkpoints MLX afines de 2 a 8 bits, incluyendo formatos de capas mixtas; Flash Next requiere pesos de 4 bits/grupo-32; Nemotron CUDA requiere 4 bits/grupo-64 más una cabeza MTP; GLM lee conversiones de 4 bits/grupo-64 y de bits mixtos. Algunas rutas CUDA aceptan conversiones NVFP4 o EXL3, marcadas como experimentales.
Una afirmación central del diseño es la decodificación exacta: un borrador especulativo se acepta solo cuando es igual al token que el mismo motor produciría en serie, con el muestreo vinculado al prompt o semilla, la posición absoluta y el ID del token. El README es explícito en que la exactitud es relativa al mismo motor, pesos, tiempo de ejecución y configuraciones, y no implica salidas idénticas entre MLX y CUDA, diferentes cuantizaciones o diferentes recuentos de rangos de tensor-paralelo. Los usuarios pueden comparar una solicitud con `"draft": false` para verificar la salida con borrador frente a la serial.
Las opciones de servicio cubren host/puerto, nombre de modelo anunciado, tamaño de contexto, límites de respuesta, valores predeterminados de muestreo, alternancias de pensamiento y esfuerzo de razonamiento, selección de backend, paralelismo, control de borrador y, en MLX, caché de prompt y ajuste de memoria, como prefijos retenidos, desbordamiento a disco, directorios de instantáneas y una caché de búfer reutilizable. Las opciones solo CUDA incluyen el tipo de datos de caché KV para Flash Next, un umbral de confianza MTP y ejecución de tensor-paralelo de dos rangos.
El manejo de memoria está documentado en detalle: MLX usa por defecto un presupuesto de proceso del 70% de la RAM, anulable mediante una variable de entorno, con contabilidad de admisión para pesos, crecimiento de caché, tokens de respuesta y espacio de trabajo de prefill. Una tabla de clases de memoria enumera ranuras de calificación de 32 GB a 256 GB, pero la mayoría de las celdas están marcadas como TBD; solo una fila M5 Pro de 64 GB tiene cifras publicadas, atribuidas a una ejecución comunitaria en una versión anterior. El README establece que estas son ranuras de calificación, no promesas de memoria mínima.
El caché de prompt en MLX usa planes de fragmentos derivados de la secuencia de tokens renderizada, con puntos de reanudación en los inicios de mensajes de asistente y el inicio del segundo mensaje. Las instantáneas llevan identidad de modelo, tiempo de ejecución, kernel y plan de fragmentos para que los prefijos puedan sobrevivir a reinicios. Los motores CUDA mantienen su propio estado de prompt y respuesta y no usan las opciones de instantánea de disco o prefijo retenido de MLX.
Para hardware NVIDIA, el README recomienda el contenedor PyTorch de NVIDIA, ya que el paquete no tiene un extra de instalación CUDA. Qwen3.8-27B, Flash Next y Nemotron admiten uno o dos rangos CUDA, mientras que GLM requiere dos. El rango 0 sirve HTTP.
La entrada de visión es opcional: instalar el extra de visión e iniciar un checkpoint denso Qwen3.5/3.8 compatible con `--vision` permite partes de contenido de imagen y texto a través del mismo motor. El proyecto tiene licencia MIT, con pesos de modelo que mantienen sus propias licencias y algunos checkpoints de borrador opcionales que llevan términos no comerciales indicados en avisos de terceros.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.