Desarrollo de un Sistema de Generación de Recetas de Repostería Mediante Fine-Tuning con Llama-Factory

Introducción Técnica

En el ámbito de la cocina moderna, la creación de recetas personalizadas bajo restricciones específicas representa un desafío significativo. La integración de modelos de lenguaje grandes (LLM) adaptados a dominios específicos ofrece una solución viable. Utilizando el marco de código abierto Llama-Factory, es posible realizar un ajuste fino (fine-tuning) eficiente para desarrollar asistentes especializados en reopstería.

Preparación de Datos y Enfoque de Ajuste Fino

El proceso comienza con la recopilación y preprocesamiento de datos de recetas. Se emplea una estrategia de instrucción fine-tuning, donde se generan pares de instrucción y respuesta estructurados. Por ejemplo, un conjunto de datos podría incluir entradas como:


{
  "instruccion": "Formulate una receta para un bizcocho bajo en carbohidratos utilizando sustitutos de azúcar naturales",
  "respuesta": "Ingredientes: harina de almendra 150g, eritritol 80g, huevos 4 unidades, aceite de coco 50ml... Pasos: 1. Precalentar el horno a 180°C; 2. Mezclar los ingredientes secos..."
}

Estos datos se transforman al formato alpaca mediante procesadores internos de Llama-Factory, preparándolos para el entrenamiento.

Selección de Modelos y Técnicas de Optimización

Para el ajuste fino, se consideran modelos base como Qwen-7B o Llama-3-8B-Instruct, que destacan en la comprensión multilingüe y el seguimiento de instrucciones complejas. Dado el costo computacional del fine-tuning completo, se adoptan técnicas de bajo consumo de recursos.

LoRA (Low-Rank Adaptation) permite una adapatción eficiente al congelar los pesos originales del modelo y entrenar solo matrices de bajo rango. Matemáticamente, se define como:

$$ W' = W + AB $$

donde \( A \in \mathbb{R}^{m \times r} \) y \( B \in \mathbb{R}^{r \times n} \) con \( r \ll \min(m,n) \). En la práctica, se inyecta en capas clave como las proyecciones de atención. Un fragmento de configuración en Llama-Factory sería:


model_name_or_path: Qwen/Qwen-7B
fine_tuning_method: lora
target_modules: q_proj,v_proj,k_proj,o_proj
rank_lora: 32
alpha_lora: 64
batch_size_per_device: 8
accumulation_steps: 4
learning_rate: 3e-4
epochs: 2
mixed_precision: bf16
save_directory: ./bakery_model_output

Para entornos con recursos limitados, QLoRA combina cuantización de 4 bits con LoRA, reduciendo aún más el uso de memoria. Esto se configura mediante:


quantization_mode: nf4
quantization_layers:
  - layer_pattern: ".*attention.*"
    bits: 4
  - layer_pattern: ".*feed_forward.*"
    bits: 4

Arquitectura de la Aplicación

El sistema final se estructura como un flujo de trabajo integrado:

  1. Entrada del usuario mediante texto natural.
  2. Procesamiento a través de una API back end que invoca el modelo fine-tuned.
  3. Generación de respuestas que incluyen listas de ingredientes y pasos detallados.
  4. Aplicación de filtros de seguridad para evitar recomendaciones peligrosas.

Por ejemplo, ante una solicitud como "Crear una tarta sin lácteos para niños con alergias", el modelo produce recetas que excluyen lácteos y sugieren alternativas seguras, validadas mediante reglas de posprocesamiento.

Consideraciones de Implementación

La calidad de los datos es crucial; se priorizan fuentes verificadas y se realizan auditorías con expertos culinarios. Además, se implementan mecanismos de control para asegurar la coherencia en las unidades de medida y la seguridad alimentaria.

El soporte multilingüe se logra mediante entrenamiento mixto con datos en diferentes idiomas, permitiendo al modelo generar recetas en español e inglés según la demanda.

Los pesos resultantes del fine-tuning se exportan en formato compatible con HuggingFace para su despliegue como servicio RESTful.

Aplicaciones Futuras y Escalabilidad

Este enfoque puede extenderse a otros dominios culinarios o de nutrición, como la planificación de dietas médicas o la recuperación de recetas tradicionales, aprovechando la flexibilidad de Llama-Factory para adaptar modelos de manera accesible.

Etiquetas: LLaMA-Factory fine-tuning LoRA QLoRA Modelos de lenguaje grandes

Publicado el 8-3 13:25