2 puntos por GN⁺ 2023-12-03 | 1 comentarios | Compartir por WhatsApp
  • Unsloth ofrece Unsloth Studio para ejecutar y entrenar modelos de forma local, y Unsloth Core basado en código; trabaja con modelos de texto, audio, embeddings y visión en Windows, Linux, WSL y macOS
  • Las funciones de entrenamiento admiten ajuste fino, RL y preentrenamiento para más de 500 modelos, con metas clave de rendimiento de hasta 2 veces más velocidad de entrenamiento, hasta 70% menos VRAM y sin pérdida de precisión
  • Las funciones de inferencia incluyen búsqueda, descarga y ejecución de modelos GGUF, adaptadores LoRA y modelos safetensors, además de exportación de modelos, llamado de herramientas, búsqueda web, ejecución de código y endpoints locales de inferencia por API
  • Unsloth Studio se enlaza por defecto a localhost; --secure usa un túnel HTTPS de Cloudflare y -H 0.0.0.0 puede exponer el puerto sin protección al exterior, por lo que es importante proteger la API key y usar --disable-tools
  • La licencia tiene una estructura dual de Apache 2.0 y AGPL-3.0; el paquete Core usa Apache 2.0 y algunos componentes opcionales, como la UI de Studio, usan AGPL-3.0

Qué ofrece Unsloth

  • Unsloth Studio (Beta) es una interfaz web para ejecutar y entrenar modelos localmente
  • Unsloth Core es la versión basada en código y tiene requisitos distintos a los de Studio
  • Los comandos de instalación inicial se ofrecen según el sistema operativo

Funciones de inferencia

  • Admite búsqueda, descarga y ejecución de modelos, incluyendo formatos GGUF, adaptadores LoRA y safetensors
  • Los modelos pueden guardarse o exportarse como GGUF, safetensors de 16 bits y otros formatos
  • El llamado de herramientas soporta llamado de herramientas con autorrecuperación y búsqueda web
  • La ejecución de código permite que el LLM pruebe código con Claude artifacts y en un entorno sandbox
  • Mediante endpoints de inferencia por API, se pueden desplegar y ejecutar LLM locales junto con Claude Code y herramientas de Codex
  • Puede conectarse a proveedores de API como OpenAI y Anthropic, o a servidores como vLLM y Ollama
  • Permite chatear con imágenes, audio, PDF, código, DOCX y más
  • Afirma haber corregido bugs que mejoran la precisión de modelos en colaboración directa con equipos relacionados con gpt-oss, Qwen3, Llama 4, Mistral, Gemma 1-3 y Phi-4

Funciones de entrenamiento y rendimiento

  • Unsloth soporta entrenamiento y RL para más de 500 modelos
    • Hasta 2 veces más rápido en entrenamiento
    • Hasta 70% menos VRAM
    • Sin pérdida de precisión
  • Usa Triton personalizado y kernels matemáticos
    • Se enlaza un caso de colaboración con PyTorch sobre aprendizaje por refuerzo con FP8
    • Se enlaza un caso de colaboración con Hugging Face sobre MoE más rápido
  • Data Recipes genera datasets automáticamente desde PDF, CSV, DOCX y otros formatos, y permite editar datos en un flujo visual por nodos
  • La guía de aprendizaje por refuerzo indica hasta 80% menos VRAM para GRPO, FP8 y otros casos
  • Los métodos de entrenamiento soportados incluyen full fine-tuning, RL, pretraining, entrenamiento en 4-bit, 16-bit y FP8
  • Las funciones de observabilidad permiten monitorear en tiempo real el estado del entrenamiento y soportan pérdida, uso de GPU y personalización de gráficas
  • Soporta entrenamiento Multi-GPU y se anuncian mejoras importantes próximamente

Condiciones de instalación y ejecución

  • Unsloth Studio funciona en Windows, Linux, WSL y macOS
    • CPU: actualmente soporta Chat y Data Recipes
    • NVIDIA: soporta entrenamiento en RTX 30/40/50, Blackwell, DGX Spark, Station y más
    • macOS: soporta entrenamiento, MLX e inferencia GGUF
    • AMD: soporta Chat y Data; para entrenamiento se usa Unsloth Core, y el soporte en Studio llegará pronto
    • Multi-GPU: disponible actualmente y con una gran actualización prevista
  • El comando para ejecutar Studio es unsloth studio -p 8888
  • La imagen Docker se ofrece como contenedor unsloth/unsloth
  • La instalación de Unsloth Core ofrece ejemplos basados en uv y Python 3.13
    • Linux, WSL: uv venv unsloth_env --python 3.13 seguido de uv pip install unsloth --torch-backend=auto
    • Windows: instalar Python 3.13 y astral-sh.uv, y luego instalar de la misma forma
    • En Windows, pip install unsloth solo funciona si PyTorch ya está instalado
  • La instalación para GPU AMD e Intel sigue respectivamente la guía de AMD y la guía de Intel

Acceso remoto y condiciones de seguridad

  • Por defecto, unsloth studio se enlaza a 127.0.0.1, por lo que solo es accesible desde la máquina actual
  • --secure solo se ofrece mediante un enlace HTTPS gratuito de Cloudflare
    • Studio se mantiene en localhost
    • Si el túnel no inicia, opera en modo fail-closed y no expone el puerto sin protección
  • -H 0.0.0.0 enlaza el puerto sin protección a todas las interfaces de red
    • Como puede accederse desde cualquier punto de la red, debe usarse solo en redes confiables
  • Las herramientas del lado del servidor como búsqueda web, Python y ejecución de código en terminal se ejecutan con permisos del usuario y están activadas por defecto
  • Cualquiera que acceda al servidor y tenga la API key puede ejecutar código en esa máquina, así que la API key debe mantenerse privada y, al exponer Studio, es necesario usar --disable-tools

Notebooks gratuitos y ejemplos de modelos soportados

  • Con el notebook gratuito de Unsloth Studio se pueden ejecutar y entrenar modelos desde la interfaz web
  • Los notebooks de ejemplo incluyen cifras de rendimiento y ahorro de memoria por modelo
    • Gemma 4 (E2B): 1.5 veces más rápido, 50% menos memoria
    • Qwen3.5 (4B): 1.5 veces más rápido, 60% menos memoria
    • gpt-oss (20B): 2 veces más rápido, 70% menos memoria
    • gpt-oss (20B): GRPO: 2 veces más rápido, 80% menos memoria
    • Llama 3.1 (8B) Alpaca: 2 veces más rápido, 70% menos memoria
    • Orpheus-TTS (3B): 1.5 veces más rápido, 50% menos memoria
  • También se ofrece por separado una lista de notebooks para Kaggle, GRPO, TTS, embeddings y Vision
  • El catálogo completo de modelos puede verse en Unsloth Catalog, y todos los notebooks en Unsloth notebooks

Funciones recientes

  • Connections: soporte para conectarse a proveedores de API como OpenAI y Anthropic, o a servidores como vLLM y Ollama
  • MTP: soporte para ejecutar Qwen3.6 MTP, con configuración automática de MTP según el hardware
  • Qwen3.6: Qwen3.6-35B-A3B puede entrenarse y ejecutarse en Unsloth Studio
  • Gemma 4: el nuevo modelo de Google puede ejecutarse y entrenarse directamente en Unsloth
  • MoE LLM: se presentan 12 veces más velocidad de entrenamiento y 35% menos VRAM para DeepSeek, GLM, Qwen y gpt-oss
  • Embedding models: soporte para fine-tuning de embeddings entre aproximadamente 1.8 y 3.3 veces más rápido
  • 7x longer context RL: nuevo algoritmo de batching que ofrece RL con contexto 7 veces más largo frente a otras configuraciones
  • 500K Context: permite entrenar un modelo de 20B con más de 500K de contexto en una GPU de 80GB
  • FP8 & Vision RL: permite ejecutar FP8 y VLM GRPO en GPUs de consumo

Licencias y proyectos base

  • Unsloth usa un modelo de licencia dual de Apache 2.0 y AGPL-3.0
    • El paquete principal de Unsloth mantiene Apache 2.0
    • Algunos componentes opcionales, como la UI de Unsloth Studio, usan AGPL-3.0
  • El proyecto menciona llama.cpp, Hugging Face transformers, TRL, PyTorch, Torch AO y NVIDIA NeMo DataDesigner

1 comentarios

 
GN⁺ 2023-12-03
Opiniones de Hacker News
  • No ejecuté el código por mi cuenta, pero no termino de entender cómo es posible esto.
    Al perfilar el fine-tuning de QLoRA Llama-2-70B con PyTorch, la mayor parte del tiempo de ejecución la ocupaban las grandes multiplicaciones de matrices en las capas MLP, con algo adicional de atención.
    Internamente, este repositorio también parece usar la misma ruta que HuggingFace: llama a torch.matmul() para el MLP y a flash_attn_func() para la atención, así que me pregunto cómo puede ser mucho más rápido.
    Hay algunos kernels de Triton, pero no parece haber Triton en el MLP ni en la atención, que son la mayor parte del cuello de botella.

    • Lo explican como resultado de un autograd personalizado optimizado, y tiene sentido, porque autograd es un componente central del cálculo de gradientes.
      También mencionan mejoras simples como inlining de funciones y optimización de memoria, y esas áreas sin duda tienen margen para optimizarse.
      Aun así, no sé si esas ventajas podrían quedar reservadas para la versión “pro” de código cerrado.
      Si es fruta al alcance de la mano, es muy probable que las implementaciones open source lo adopten pronto.
    • Hay una explicación más detallada en https://unsloth.ai/introducing
    • Varias afirmaciones bastante importantes están bloqueadas detrás de una versión pro paga. Me parece una señal de alerta.
  • Dejando de lado por ahora las críticas sobre el precio, les convendría buscar de inmediato a algún vendedor o ingeniero de soluciones que haya trabajado en una empresa de bases de datos en etapa temprana y empezar a hacer cold calls a clientes premium con miles de GPU.
    Para vender esto, el camino más probable parecen ser operaciones B2B de más de 200.000 a 300.000 dólares.

  • Para quienes tengan interés, acabamos de publicar una nueva entrada de blog que cubre todas las optimizaciones.
    También hay 59 benchmarks completamente reproducibles: https://unsloth.ai/blog/mistral-benchmark

  • Los resultados se ven prometedores y quiero probarlo.
    Tengo una pregunta sobre los benchmarks de rendimiento: ¿por qué todos los resultados que usan 2 GPU y DDP tardan más que con una sola GPU?
    En ambos benchmarks se hace la misma cantidad de trabajo con una sola época de entrenamiento, así que este escalado inverso sorprende.

    • Hay dos razones principales.
      Primero, DDP en sí tiene overhead, porque en cada paso de entrenamiento GPU0 y GPU1 deben sincronizarse enviando los gradientes a GPU0.
      Segundo, HuggingFace no parece estar bien optimizado para DDP debido a movimientos de datos ineficientes, y corregimos esa parte. Curiosamente, también se volvió más rápido en una sola GPU.
  • Sería bueno tener una cronología que ordene todos estos intentos. Ya hay tantas variantes que perdí el hilo hace bastante.
    Creo que sería un trabajo bastante grande, salvo que se acepten sin más las métricas autoinformadas como si fueran la verdad.
    E incluso eso siempre depende del hardware y del alcance de uso.
    Para que sea realmente útil haría falta un pipeline de CI/CD con varias configuraciones de máquinas y benchmarks, además de una forma razonable de comunicar esos resultados.
    Si alguien lo logra, se volvería indispensable.

  • Me pregunto cómo se compara esto con las optimizaciones de Sam y llama2 de PyTorch Labs.
    https://github.com/pytorch-labs/segment-anything-fast
    https://github.com/pytorch-labs/gpt-fast

    • Eso es para inferencia, mientras que nuestro código es para entrenamiento.
      También tenemos planeada inferencia más rápida más adelante.
      Vi GPT Fast de Chillee y es realmente increíblemente rápido.
  • Algo relacionado: me pregunto si todavía vale la pena usar P100 o P40.
    Estaba pensando en comprar una, pero parece que cada vez más proyectos están dejando de soportar Pascal.

    • Creo que P100 probablemente sea compatible con Flash Attention de Xformers, pero Triton soporta Compute Capability 7.0 o superior, y la P100 es 6.0, así que eso es un problema.
      Técnicamente, el código podría ejecutarse, pero habría que modificarlo para eliminar los cambios de Triton.
  • Se ve muy interesante, pero me confunde que hayan limitado la versión con la mayor mejora de velocidad solo a Enterprise.
    Tendría más sentido diferenciar solo entre los planes Free y Paid por rendimiento, y que Enterprise se diferenciara por cosas como soporte.

    • Buen punto. Es algo que también hemos pensado, y como todavía estamos ajustando la política de precios, recibimos con gusto cualquier sugerencia.
      Todo esto es nuevo para nosotros, así que lo estamos construyendo sobre la marcha.
  • Mencionan GPU posteriores a 2018, pero me pregunto por qué no funciona, por ejemplo, en una 1080 Ti.
    Mirando por encima las especificaciones de hardware, parece que soporta CUDA 8 o superior, y aquí dice 7.5.
    ¿Alguien podría explicarlo mejor?

    • Lo de la 1080 Ti es una lástima, pero como Triton y Xformers soportan CUDA 7.0, mientras OpenAI y Meta no soporten CUDA 6.0, a nosotros también nos costará soportarlo.
      La razón principal es que desde Turing existen los Tensor Cores, y eso cambió las multiplicaciones de matrices para basarlas en Tensor Cores.
    • La CUDA Compute Capability de la 1080 Ti es 6.1