Entrena tu propio modelo de inferencia DeepSeek R1 con Unsloth

Hoy, Unsloth se complace en presentar el Desenredar El estudio R1 de DeepSeek revela un "momento epifánico" en el que R1-Cero se optimiza utilizando una política relativa al grupo (GRPO) El aprendizaje autodirigido dedica más tiempo a pensar sin retroalimentación manual.

Unsloth ha mejorado todo el proceso GRPO para que utilice 80% menos de VRAM que Hugging Face + FA2, lo que permite a los usuarios recrear el "momento epifánico" de R1-Zero en sólo 7GB de VRAM utilizando Qwen2.5 (1,5B).

Prueba el cuaderno GRPO gratuito de Unsloth:Llama 3.1 (8B) en Colab
Para consultar los cuadernos GRPO de otros modelos como Phi-4, visite la documentación de Unsloth en

 

💡 Detalles clave

  • Con 15GB de VRAM, Unsloth permite a los usuarios convertir cualquier modelo con hasta 15B de parámetros (por ejemplo, Llama 3.1 (8B), Phi-4 (14B), Mistral (7B), o Qwen2.5 (7B)) en un modelo inferencial
  • Requisitos mínimos: entrene sus propios modelos de inferencia localmente con sólo 7 GB de VRAM.
  • El brillante equipo de Tiny-Zero demostró que los usuarios podían conseguir sus propios momentos epifánicos utilizando Qwen2.5 (1.5B), pero para ello necesitaban 2 GPU A100 (160 GB de VRAM). Ahora, con Unsloth, los usuarios pueden conseguir el mismo momento epifánico con una sola GPU de 7 GB de VRAM.
  • Anteriormente, GRPO sólo admitía el ajuste fino completo, pero Unsloth lo hace disponible para QLoRA y LoRA
  • Tenga en cuenta que no se trata de un ajuste fino DeepSeek del modelo de destilación R1, ni se sintoniza utilizando datos de destilación R1 (que ya son compatibles con Unsloth). Se trata de una conversión del modelo estándar a un modelo de inferencia completo que utiliza GRPO.
  • Los casos de uso de GRPO incluyen: si un usuario desea crear un modelo personalizado con incentivos (por ejemplo, para derecho, medicina, etc.), GRPO puede ayudarle.
    Si un usuario tiene datos de entrada y salida (por ejemplo, preguntas y respuestas) pero no una cadena de pensamiento o un proceso de razonamiento, GRPO puede crear mágicamente procesos de razonamiento para el usuario. + más

 

🤔 GRPO + momentos "epifánicos

Los investigadores de DeepSeek observaron un "momento epifánico" mientras entrenaban a R1-Zero mediante aprendizaje por refuerzo (RL) puro. El modelo aprendió a ampliar su tiempo de reflexión reevaluando su planteamiento inicial sin ninguna guía humana ni instrucciones predefinidas.

En un ejemplo de prueba, aunque Unsloth entrenó a Phi-4 en 100 pasos usando sólo GRPO, los resultados ya son obvios. El modelo sin GRPO no pensó en la Ficha, mientras que el modelo entrenado con GRPO sí pensó en la Ficha y también tuvo la respuesta correcta.

使用 Unsloth 训练您自己的 DeepSeek R1 推理模型
Esta magia puede reproducirse con GRPO, un algoritmo de RL que optimiza eficazmente las respuestas sin necesidad de una función de valor, a diferencia de la Optimización de Política Próxima (PPO), que depende de una función de valor. En los cuadernos de Unsloth, éste utiliza GRPO para entrenar un modelo con el objetivo de permitirle desarrollar de forma autónoma sus propias capacidades de autovalidación y búsqueda, creando un mini-momento de epifanía.

Cómo funciona:

  • El modelo genera grupos de respuesta.
  • Cada respuesta se puntúa en función de la corrección o de alguna otra métrica creada por alguna función de recompensa, en lugar de por el modelo de recompensa Big Language Model.
  • Calcula la puntuación media del grupo.
  • Las puntuaciones de cada respuesta se compararon con la media del grupo.
  • El modelo se mejoró para admitir respuestas con mayor puntuación.

 

Por ejemplo, supongamos que Unsloth quiere que el modelo resuelva:
¿Qué es 1+1? >> cadena de pensamiento/proceso de cálculo >> La respuesta es 2.
¿Cuánto es 2+2? >> cadena de pensamiento/proceso de cálculo >> La respuesta es 4.

Inicialmente, hay que recopilar muchos datos para poblar el proceso computacional/cadena de pensamiento. Pero GRPO (el algoritmo utilizado por DeepSeek) u otros algoritmos de RL pueden guiar el modelo para mostrar automáticamente la capacidad de razonamiento y crear trayectorias de razonamiento. En cambio, Unsloth necesita crear buenas funciones de recompensa o validadores. Por ejemplo, si acierta la respuesta correcta, darle 1 punto. Si algunas palabras están mal escritas, réstale 0,1. ¡Y así sucesivamente! Unsloth puede proporcionar muchas funciones para recompensar este proceso.

 

🦥 GRPO en Unsloth

Si está utilizando GRPO con Unsloth localmente, por favor también "pip install difusores", ya que es una dependencia.

Espere al menos 300 pasos para que la recompensa aumente realmente, por favor, utilice la última versión de vLLM. Tenga en cuenta que el ejemplo de Unsloth en Colab sólo se entrenó durante un período de una hora, por lo que los resultados no son ideales. Para obtener buenos resultados, el usuario necesita entrenar durante al menos 12 horas (así es como funciona GRPO), pero tenga en cuenta que esto no es obligatorio ya que el usuario puede parar en cualquier momento.

Se recomienda aplicar GRPO a modelos con al menos 1,5B de parámetros para generar correctamente Thinking Token, ya que los modelos más pequeños pueden no ser capaces de generarlo. El seguimiento de pérdidas de formación para GRPO está ahora integrado directamente en Unsloth, eliminando la necesidad de herramientas externas como wandb.

使用 Unsloth 训练您自己的 DeepSeek R1 推理模型
Además de añadir soporte GRPO, Unsloth también soporta Online DPO, PPO y RLOO. A continuación puedes ver un gráfico que compara el consumo de VRAM del Online DPO de Unsloth con el del Hugging Face + FA2 estándar.

使用 Unsloth 训练您自己的 DeepSeek R1 推理模型

✨ Unsloth x vLLM

20 veces más rendimiento y 50% de ahorro de VRAM:

Ahora los usuarios pueden utilizar vLLM directamente en la pila de ajuste fino, lo que permite un mayor rendimiento y permite a los usuarios ajustar y razonar sobre el modelo simultáneamente. Cuantificación dinámica de 4 bits utilizando Unsloth's Llama 3.2 3B Instruct en 1 A100 40GB, estimación 4000 fichas / s más o menos. En una Tesla T4 de 16 GB (con GPU Colab gratuita), los usuarios obtienen 300 tokens / s.

Unsloth también ha eliminado mágicamente la necesidad de cargar simultáneamente el vLLM Unsloth puede inicialmente afinar el Llama 3.3 70B Instruct en 1 GPU de 48GB, con los pesos de Llama 3.3 70B ocupando 40GB de VRAM. 40GB de VRAM. sin eliminar el doble uso de memoria, Unsloth requeriría >= 80GB de VRAM al cargar tanto Unsloth como vLLM.

¡Pero con Unsloth, los usuarios aún pueden afinar y obtener los beneficios de la inferencia rápida en VRAMs de hasta 48GB! Para utilizar la inferencia rápida, instala primero vllm e instala Unsloth con fast_inference:

pip install unsloth vllm
from unsloth import FastLanguageModel
model, tokenizer = FastLanguageModel.from_pretrained(
model_name = "unsloth/Llama-3.2-3B-Instruct",
fast_inference = True,
)
model.fast_generate(["Hello!"])

 

Descubrimiento de vLLM en Unsloth

  • vLLM puede cargar ahora la cuantificación dinámica de 4 bits de Unsloth. Al igual que Unsloth's 1.58bit Dynamic R1 GGUF, Unsloth ha demostrado que cuantificar dinámicamente algunas capas a 4 bits y algunas capas a 16 bits mejora significativamente la precisión manteniendo el modelo pequeño.
  • Unsloth selecciona automáticamente varios parámetros para tener en cuenta la RAM, la eficiencia de la VRAM y el rendimiento máximo (por ejemplo, tokens prepoblados en bloques de #, secuencias máximas de #, etc.). Unsloth activa por defecto -O3 en vLLM y activa la caché de prefijos. Unsloth descubrió que Flashinfer es 10% más lento en las GPU más antiguas. La caché FP8 KV lo hace 10% más lento, pero duplica el potencial de rendimiento.
  • Unsloth permite cargar LoRA en vLLM analizando el diccionario de estado en lugar de cargarlo desde el disco - esto puede hacer que su entrenamiento GRPO se ejecute 1,5 veces más rápido. Un área activa de investigación es cómo editar el adaptador LoRA en vLLM directamente (Unsloth aún no sabe cómo). Esto podría suponer un enorme aumento de velocidad, ya que Unsloth está moviendo datos de la GPU innecesariamente.
  • vLLM puede tener extrañamente picos aleatorios de VRAM, especialmente durante la generación de lotes. unsloth ha añadido una función de generación de lotes para reducir los picos de memoria.
© declaración de copyright

Artículos relacionados

Sin comentarios

Debe iniciar sesión para participar en los comentarios.
Acceder ahora
ninguno
Sin comentarios...