Ingeniería rápida avanzada para proyectos de ciencia de datos

Probablemente se haya preguntado varias veces cómo mejorar sus flujos de trabajo, cómo acelerar las tareas y cómo generar mejores resultados.

El amanecer de LLMS ha ayudado a numerosos científicos de datos e ingenieros de ML a no solo mejorar sus modelos, sino también para ayudarlos iterar Más rápido, aprende y concéntrate en las tareas que realmente importan.

En este artículo, estoy compartiendo con ustedes mis avisos favoritos y mis indicadores indicadores consejos Eso me ayuda a abordar la ciencia de datos y las tareas de IA.

Además, pronto Ingeniería rápida Será una habilidad requerida en casi todas las descripciones de trabajo DS y ML.

Esta guía lo guía a través de técnicas rápidas prácticas respaldadas por la investigación que aceleran (y a veces automatizan) cada etapa de su flujo de trabajo ML.

Este es el segundo de una serie de 3 artículos Estoy escribiendo sobre ingeniería rápida para la ciencia de datos:

  • Parte 2: Ingeniería rápida para características, modelado y evaluación (este artículo)
  • Parte 3: Ingeniería rápida para documentos, devops y aprendizaje

👉 Todos los indicaciones En este artículo están disponibles en el fin de este artículo como una hoja de trucos 😉

En este artículo:

  1. Lo primero es lo primero: ¿qué hace que sea un buen aviso?
  2. Ingeniería rápida para características, modelado y evaluación
  3. Hoja de trucos de ingeniería rápida

Lo primero es lo primero: ¿qué hace que sea un buen aviso?

Es posible que ya sepa esto, pero siempre es bueno refrescar nuestras mentes sobre esto. Vamos a desglosarlo.

Anatomía de un aviso de alta calidad

Papel y tarea

Comience diciéndole a la LLM quién es y qué debe hacer. P.ej:

"You are a senior data scientist with experience in feature engineering, data cleaning and model deployment".)

Contexto y limitaciones

Esta parte es realmente importante. Agregue detalles y contexto tanto como pueda.

Consejo profesional: Agregue todos los detalles + contexto en el mismo aviso. Está comprobado que funciona mejor de esta manera.

Esto incluye: tipo de datos y formato, fuente de datos y origen, esquema de muestra, formato de salida, nivel de detalle, estructura, tono y estilo, límites de token, reglas de cálculo, conocimiento del dominio, etc.

Ejemplos o pruebas

Déle algunos ejemplos a seguir, o incluso pruebas unitarias para verificar la salida.

Ejemplo – Estilo de formato para un resumen

**Input:**
Transaction: { "amount": 50.5, "currency": "USD", "type": "credit", "date": "2025-07-01" }

**Desired Output:**
- Date: 1 July 2025
- Amount: $50.50
- Type: Credit

Gancho de evaluación

Pídale que califique su propia respuesta, explique su razonamiento o obtenga una puntuación de confianza.

Otros consejos de solicitud

Delimitadores limpios (##) Haga que las secciones sean escaneables. ¡Úselos todo el tiempo!

Pon tus instrucciones antes Los datos y el contexto envuelto en delimitadores claros como triples backticks.

P.ej: ## These are my instructions

Sea lo más específico que pueda. Diga “Devuelve una lista de Python” o “Solo salida de SQL válido”.

Mantener el temperatura Bajo (≤0.3) para tareas que necesitan una salida consistente, pero puede aumentarlo para tareas creativas como la lluvia de ideas de características.

Si estás en un presupuestouse modelos más baratos para ideas rápidas, luego cambie a uno premium para pulir la versión final.

Ingeniería rápida para características, modelado y evaluación

1. Características de texto

Con el aviso correcto, un LLM puede generar instantáneamente un conjunto diverso de características semánticas, basadas en reglas o lingüísticas, completos con ejemplos prácticos que puede, después de revisar, conectarse a su flujo de trabajo.

Plantilla: Beranvía de la función de texto univariante

## Instructions
Role: You are a feature-engineering assistant.  
Task: Propose 10 candidate features to predict {target}.  

## Context
Text source: """{doc_snippet}"""  
Constraints: Use only pandas & scikit-learn. Avoid duplicates.  

## Output
Markdown table: [FeatureName | FeatureType | PythonSnippet | NoveltyScore(0–1)]  

## Self-check
Rate your confidence in coverage (0–1) and explain in ≤30 words.

Consejos profesionales:

  • Combina esto con incrustaciones para crear funciones densas.
  • Valide los fragmentos de Python salidas en un entorno de sandboxed antes de usarlos (para que capte errores de sintaxis o tipos de datos que no coinciden).

2. Características tabulares

La ingeniería de características manuales generalmente no es divertida. Especialmente para los datos tabulares, este proceso puede llevar algunos días y generalmente es muy subjetivo.

Herramientas como LLM-FE adoptar un enfoque diferente. Tratan a los LLM como optimizadores evolutivos que iterativamente inventa y refina las características hasta que el rendimiento mejore.

Desarrollado por investigadores de Virginia Tech, LLM-FE trabaja en bucles:

  1. El LLM propone una nueva transformación basada en el esquema del conjunto de datos existente.
  2. La característica candidata se prueba utilizando un modelo simple aguas abajo.
  3. Las características más prometedoras se mantienen, se refinan o combinan (al igual que en los algoritmos genéticos, pero impulsadas por las indicaciones del lenguaje natural).

Este método ha demostrado funcionar muy bien en comparación con la ingeniería de características manuales.

Arquitectura del marco LLM-FE, donde un modelo de lenguaje grande actúa como un optimizador evolutivo. Fuente: Nikhilsab/LLMFE: Este es el repositorio oficial del documento “LLM-FE”

Aviso (estilo LLM-FE):

## Instructions
Role: Evolutionary feature engineer.  
Task: Suggest ONE new feature from schema {schema}.  
Fitness goal: Max mutual information with {target}.  

## Output
JSON: { "feature_name": "...", "python_expression": "...", "reasoning": "... (≤40 words)" }  

## Self-check
Rate novelty & expected impact on target correlation (0–1).

3. Características de la serie temporal

Si alguna vez tiene dificultades para las tendencias estacionales o los picos repentinos en sus datos de series de tiempo, sabe que puede ser difícil lidiar con todas las piezas móviles.

TEMPO es un proyecto que le permite solicitar la descomposición y el pronóstico en un paso suave, por lo que puede ahorrarle horas de trabajo manual.

Aviso de la estacionalidad:

## Instructions
System: You are a temporal data scientist.  
Task: Decompose time series {y_t} into components.  

## Output
Dict with keys: ["trend", "seasonal", "residual"]  

## Extra
Explain detected change-points in ≤60 words.  
Self-check: Confirm decomposition sums ≈ y_t (tolerance 1e-6).

4. Características de incrustación de texto

La idea del próximo aviso es bastante sencilla: estoy tomando documentos y sacando las ideas clave que realmente serían útiles para alguien que intenta entender lo que está tratando.

## Instructions
Role: NLP feature engineer
Task: For each doc, return sentiment_score, top3_keywords, reading_level.

## Constraints
- sentiment_score in [-1,1] (neg→pos)
- top3_keywords: lowercase, no stopwords/punctuation, ranked by tf-idf (fallback: frequency)
- reading_level: Flesch–Kincaid Grade (number)

## Output
CSV with header: doc_id,sentiment_score,top3_keywords,reading_level

## Input
docs = [{ "doc_id": "...", "text": "..." }, ...]

## Self-check
- Header present (Y/N)
- Row count == len(docs) (Y/N)

En lugar de simplemente darle una clasificación básica “positiva/negativa”, estoy usando una puntuación continua entre -1 y 1, lo que le da muchos más matices.

Para la extracción de palabras clave, fui con TF-IDF La clasificación porque en realidad funciona muy bien para surgir los términos que más importan en cada documento.

Generación de código y automl

Elegir el modelo correcto, construir la tubería y ajustar los parámetros: es la santa trinidad del aprendizaje automático, pero también la parte que puede comer días de trabajo.

Los LLM son cambiadores de juego para estas cosas. En lugar de estar sentado allí comparando docenas de modelos o codificando a mano otra tubería de preprocesamiento, puedo describir lo que estoy tratando de hacer y recuperar recomendaciones sólidas.

Plantilla de solicitud de selección del modelo:

## Instructions
System: You are a senior ML engineer.  
Task: Analyze preview data + metric = {metric}.  

## Steps
1. Rank top 5 candidate models.  
2. Write scikit-learn Pipeline for the best one.  
3. Propose 3 hyperparameter grids.  

## Output
Markdown with sections: [Ranking], [Code], [Grids]  

## Self-check
Justify top model choice in ≤30 words.

Sin embargo, no tiene que detenerse en el ranking y las tuberías.

También puede ajustar este aviso para incluir el modelo explicación Desde el principio. Esto significa pedirle al LLM que justifique por qué Clasificó modelos en un determinado orden o para generar importancia de características (valores de forma) después del entrenamiento.

De esa manera, no solo está recibiendo una recomendación de caja negra, sino que está obteniendo un razonamiento claro detrás de esto.

Bonus Bit (Azure ML Edition)

Si está utilizando Azure Machine Learning, esto será útil para usted.

Con Automlstepenvuelva un experimento de aprendizaje automático automatizado (selección del modelo, ajuste, evaluación) en un paso modular dentro de una tubería Azure ML. Tendrá acceso al control de versiones, programación y ejecuciones de repetición fáciles.

También puedes hacer uso de Flujo rápido: Agrega una capa visual basada en nodos a esto. Las características incluyen la interfaz de usuario de drop -y -drop, diagramas de flujo, pruebas de inmediato, lógica de ramificación y evaluación en vivo:

Ejemplo de una tubería simple en el editor de flujo de Azure Ai Foundry, donde diferentes herramientas, como la herramienta LLM y la herramienta Python, están vinculadas. Fuente: Flujo rápido en Azure AI Foundry Portal – Azure Ai Foundry | Microsoft Learn

También puedes simplemente enchufar Flujo rápido En lo que sea que ya tenga en funcionamiento, y luego sus piezas LLM y Automl funcionan juntas sin ningún problema. Todo fluye en una configuración automatizada que realmente puede enviar.

Indicaciones para ajustar

Ajustar un modelo grande no siempre significa volver a capacitarlo desde cero (¿quién tiene tiempo para eso?).

En su lugar, puede usar técnicas livianas como Lora (Adaptación de bajo rango) y Peft (Ajuste fino de los parámetros).

Lora

Por lo tanto, Lora es bastante inteligente, ya que en lugar de volver a capacitar un modelo masivo desde cero, básicamente agrega pequeñas capas entrenables sobre lo que ya está allí. La mayoría del modelo original permanece congelado, y solo está ajustando estas pequeñas matrices de peso para que haga lo que desea.

Peft

Peft es básicamente el término paraguas para todos estos enfoques inteligentes (Lora es uno de ellos) donde solo está entrenando una pequeña porción de los parámetros del modelo en lugar de toda la cosa masiva.

Los ahorros de cómputo son increíbles. Lo que solía tomar una eternidad y costar una fortuna ahora es mucho más rápido y más barato porque apenas estás tocando la mayor parte del modelo.

Lo mejor de todo esto: ni siquiera tienes que escribir estos ajustados guiones ya tú mismo. LLMS En realidad, puede generar el código para usted, y mejoran con el tiempo aprendiendo de qué tan bien funcionan sus modelos.

Aviso de diálogo ajustado

## Instructions
Role: AutoTunerGPT.  
Signature: base_model, task_dataset → tuned_model_path.  
Goal: Fine-tune {base_model} on {task_dataset} using PEFT-LoRA.

## Constraints
- batch_size ≤ 16, epochs ≤ 5  
- Save to ./lora-model  
- Use F1 on validation; set seed=42; enable early stopping (no val gain 2 epochs)

## Output
JSON:
{
  "tuned_model_path": "./lora-model",
  "train_args": { "batch_size": ..., "epochs": ..., "learning_rate": ..., "lora_r": ..., "lora_alpha": ..., "lora_dropout": ... },
  "val_metrics": { "f1_before": ..., "f1_after": ... },
  "expected_f1_gain": ...
}

## Self-check
- Verify constraints respected (Y/N).  
- If N, explain in ≤20 words.

Consejo de la herramienta: Usar Dspy Para mejorar este proceso. DSPY es un marco de código abierto para la construcción agresor tuberías. Esto significa que puede reescribir automáticamente las indicaciones, hacer cumplir las limitaciones (como el tamaño del lote o las épocas de entrenamiento) y rastrear cada cambio en múltiples ejecuciones.

En la práctica, puede ejecutar un trabajo ajustado hoy, revisar los resultados mañana y tener el sistema Auto-ADJUST ¡Su configuración rápida y de entrenamiento para un mejor resultado sin que tenga que comenzar desde cero!

Deje que LLMS evalúe sus modelos

Información de evaluación más inteligente
Los estudios muestran que las predicciones de puntaje de LLMS casi como los humanos, cuando se guían por buenas indicaciones.

Aquí hay 3 indicaciones que lo ayudarán a aumentar su proceso de evaluación:

Aviso de evaluación de un solo ejemplo

## Instructions
System: Evaluation assistant.  
User: Ground truth = {truth}; Prediction = {pred}.

## Criteria
- factual_accuracy ∈ [0,1]: 1 if semantically equivalent to truth; 0 if contradictory; partial if missing/extra but not wrong.  
- completeness ∈ [0,1]: fraction of required facts from truth present in pred.

## Output
JSON:
{ "accuracy": <float>, "completeness": <float>, "explanation": "<≤40 words>" }

## Self-check
Cite which facts were matched/missed in ≤15 words.

Código de validación cruzada

## Instructions
You are CodeGenGPT.

## Task
Write Python to:
- Load train.csv
- Stratified 80/20 split
- Train LightGBM on {feature_list}
- Compute & log ROC-AUC (validation)

## Constraints
- Assume label column: "target"
- Use sklearn for split/metric, lightgbm.LGBMClassifier
- random_state=42, test_size=0.2
- Return ONLY a Python code block (no prose)

## Output
(only code block)

Juez de regresión

## Instructions
System: Regression evaluator
Input: Truth={y_true}; Prediction={y_pred}

## Rules
abs_error = mean absolute error over all points
Let R = max(y_true) - min(y_true)
Category:
- "Excellent" if abs_error ≤ 0.05 * R
- "Acceptable" if 0.05 * R < abs_error ≤ 0.15 * R
- "Poor" if abs_error > 0.15 * R

## Output
{ "abs_error": <float>, "category": "Excellent/Acceptable/Poor" }

## Self-check (brief)
Validate len(y_true)==len(y_pred) (Y/N)

Guía de solución de problemas: edición rápida

Si alguna vez encuentra uno de estos 3 problemas, así es como puede solucionarlo:

Problema Síntoma Arreglar
Características alucinadas Utiliza columnas que no existen Agregar esquema + validación en el aviso
Demasiado código “creativo” Tuberías escamosas Establecer límites de biblioteca + Agregar fragmentos de prueba
Drift de evaluación Puntuación inconsistente Establecer temp = 0, versión de indicación de registro

Envolverlo

Desde que LLMS se puso de moda, la ingeniería rápida se ha nivelado oficialmente. Ahora, es una metodología verdadera y seria que toca cada parte de los flujos de trabajo ML y DS. Es por eso que una gran parte de la investigación de IA se centra en cómo mejorar y optimizar las indicaciones.

Al final, mejor ingeniería rápida significa mejor salidas Y mucho tiempo guardado. Que supongo que es el sueño de cualquier científico de datos 😉


¡Gracias por leer!

👉 Agarra el Hoja de trucos de ingeniería rápida con todas las indicaciones de este artículo organizadas. Te lo enviaré cuando te suscribas a Digest de automatización de IA de Sara. ¡También obtendrá acceso a una biblioteca de herramientas de IA y mi boletín de automatización de IA gratuito cada semana!

¡Gracias por leer! 😉


Ofrezco tutoría Sobre el crecimiento profesional y la transición aquí.

Si quieres apoyar mi trabajopuede Cómprame mi café favorito: un capuchino. 😊

Referencias

¿Qué es Lora (adaptación de bajo rango)? | IBM

Una guía para usar ChatGPT para proyectos de ciencia de datos | Datacamp