Back to blog
    Ajusta un modelo de recomendación de productos para e-commerce: guía completa
    ecommercefine-tuningrecommendationsproductwalkthroughsegment:agency

    Ajusta un modelo de recomendación de productos para e-commerce: guía completa

    Los motores de recomendación genéricos pierden relaciones semánticas entre productos. Así es como puedes ajustar un modelo con tu catálogo e historial de compras para construir recomendaciones que aumenten el valor promedio del pedido.

    EErtas Team·

    El filtrado colaborativo recomienda "otros clientes también compraron X". Funciona para productos populares pero falla en la cola larga — y tiene cero comprensión semántica. Un cliente comprando una estufa de camping probablemente debería ver encendedores y fósforos impermeables. El filtrado colaborativo solo sabe esto si suficientes otros clientes compraron exactamente esos artículos juntos.

    Un modelo de lenguaje ajustado entiende las relaciones de productos semánticamente. Puedes entrenarlo con tu catálogo, tu historial de compras y tus interacciones con clientes para construir un motor de recomendaciones que sabe para qué sirven realmente tus productos.

    Lo que estás construyendo

    Un modelo que toma un producto (o un carrito) como entrada y devuelve recomendaciones ordenadas. Ejemplo:

    Entrada:

    Customer is viewing: Jetboil Flash Camping Stove
    Cart contains: Sleeping bag, tent stakes
    Recommend 5 complementary products from our catalog.
    

    Salida:

    1. MSR Fuel Canister 110g — Required fuel for Jetboil Flash operation
    2. UCO Stormproof Matches — Backup ignition, waterproof
    3. Sea to Summit Alpha Light Spork — Lightweight utensil for camp cooking
    4. Nalgene Wide Mouth Bottle 32oz — Water container for cooking
    5. Bear Canister — Required food storage for backcountry camping
    

    Esto no es filtrado colaborativo. El modelo sabe que una estufa de camping necesita combustible, que los fósforos impermeables son ignición de respaldo, y que los utensilios de cocina son contextualmente relevantes. Produce esto desde la comprensión semántica de tu catálogo.

    Requisitos de datos

    Dataset mínimo viable: 500 pares de (producto/carrito, recomendaciones)

    Tamaño de dataset recomendado: 2,000-5,000 ejemplos

    Datos que necesitas:

    1. Catálogo de productos con descripciones (SKU, nombre, descripción, categoría, atributos)
    2. Historial de compras (ID de pedido, IDs de productos por pedido)
    3. Recomendaciones existentes que convirtieron (si tienes datos de recomendaciones)

    Cómo construir ejemplos de entrenamiento desde el historial de compras:

    • Toma pedidos con más de 3 artículos
    • Usa artículo(s) comprados como la entrada "carrito"
    • Usa los artículos restantes como la salida "recomendación correcta"
    • Filtra pedidos donde el artículo recomendado no era una coincidencia obvia de categoría (elimina ruido)

    Paso 1: Prepara tu dataset

    Exporta tu catálogo de productos como JSON:

    {
      "sku": "JB-FLASH-BLK",
      "name": "Jetboil Flash Camping Stove",
      "description": "Fast, lightweight backpacking stove. Boils 1L water in 100 seconds. Requires Jetboil fuel canister.",
      "category": "Camping Stoves",
      "attributes": {
        "weight": "13.1 oz",
        "compatible_fuel": "Jetboil fuel canisters",
        "use_case": "backpacking, ultralight camping"
      }
    }
    

    Exporta el historial de compras y construye pares de recomendación como JSONL:

    {"messages": [{"role": "user", "content": "Customer viewing: Jetboil Flash Camping Stove. Recommend 3 complementary products."}, {"role": "assistant", "content": "1. Jetboil JetPower Fuel 100g — Required fuel for Jetboil Flash\n2. UCO Stormproof Match Kit — Backup ignition\n3. Sea to Summit Alpha Light Spork Set — Lightweight eating utensil for camp cooking"}]}
    {"messages": [{"role": "user", "content": "Cart: 2-person backpacking tent, sleeping bag. Recommend 3 complementary products."}, {"role": "assistant", "content": "1. Sleeping bag liner — Adds warmth and extends temperature range\n2. Tent footprint — Protects tent floor from abrasion\n3. Headlamp — Essential for camp use at night"}]}
    

    El mensaje de sistema debería describir el rol del modelo y el alcance de tu catálogo:

    {"messages": [{"role": "system", "content": "You are a product recommendation assistant for [Brand], an outdoor gear retailer. Recommend products from our catalog that are genuinely complementary — based on functional need, common use together, or upgrade path. Be specific about why each product complements the item(s) in the cart."}, ...]}
    

    Paso 2: Entrenar con Ertas

    1. Sube tu dataset JSONL en Ertas
    2. Valida el dataset (Ertas señalará errores de formato)
    3. Selecciona un modelo base (Mistral 7B o Llama 3 8B funcionan bien para tareas de recomendación)
    4. Inicia el trabajo de entrenamiento

    Con un dataset de 2,000 ejemplos, el entrenamiento típicamente toma 30-60 minutos. Ejecuta con la configuración LoRA por defecto a menos que tengas una razón específica para ajustar.

    Paso 3: Evaluar

    Tu conjunto de evaluación debería reservarse antes del entrenamiento — usa el 10-15% de tu dataset para evaluación.

    Métricas clave:

    • ¿El modelo recomienda productos reales de tu catálogo (tasa de alucinación)?
    • ¿Las recomendaciones son semánticamente relevantes?
    • ¿Las recomendaciones son lo suficientemente específicas para ser útiles?

    Prompt de evaluación: Ejecuta 50-100 productos de tu conjunto de evaluación a través del modelo. Puntúa manualmente cada conjunto de recomendaciones: 3 = todas relevantes, 2 = mayormente relevantes, 1 = mayormente irrelevantes. Puntuación promedio objetivo: mayor o igual a 2.5.

    Problemas comunes:

    • El modelo recomienda productos que no están en tu catálogo -> Agrega más ejemplos con referencias específicas de SKU
    • Recomendaciones demasiado genéricas -> Agrega más ejemplos específicos con explicación funcional
    • El modelo repite los mismos productos -> Agrega ejemplos con más diversidad de catálogo

    Paso 4: Integrar en tu plataforma Shopify / e-commerce

    Exporta el modelo entrenado como GGUF desde Ertas, despliega con Ollama.

    Integración con Shopify (vía app personalizada o Shopify Functions):

    // In your product page component
    async function getRecommendations(product, cart) {
      const response = await fetch('http://your-ollama-server:11434/api/chat', {
        method: 'POST',
        headers: { 'Content-Type': 'application/json' },
        body: JSON.stringify({
          model: 'your-recommendation-model',
          messages: [
            {
              role: 'user',
              content: `Customer viewing: ${product.title}. Cart: ${cart.map(i => i.title).join(', ')}. Recommend 4 complementary products.`
            }
          ],
          stream: false
        })
      });
    
      const data = await response.json();
      return parseRecommendations(data.message.content);
    }
    

    Analiza la salida del modelo para extraer nombres de productos, luego haz coincidencia con tu catálogo vía Shopify Product API.

    Medir la mejora

    Rastrea antes y después:

    • Tasa de clics en recomendaciones (CTR en el widget de recomendaciones)
    • Agregar al carrito desde recomendaciones (tasa de agregado secundario)
    • Valor promedio del pedido (la métrica definitiva)

    Mejoras típicas con un modelo de recomendación bien entrenado vs filtrado colaborativo genérico:

    • CTR: +15-30%
    • Tasa de agregado secundario: +20-40%
    • AOV: +3-8%

    Para una tienda con $50,000 de ingresos mensuales, una mejora del 5% en AOV es $2,500/mes — $30,000/año. El modelo recupera su costo de entrenamiento en semanas.


    Ship AI that runs on your users' devices.

    Ertas early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.

    Lectura adicional

    Ship AI that runs on your users' devices.

    Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.

    Keep reading