Skip to content

Fine-tuning y despliegue de modelos

Prólogo

Los grandes modelos son muy potentes, pero no entienden tu negocio. GPT-4 puede escribir poesía y programar, pero no conoce la terminología de productos de tu empresa ni las normas profesionales de tu sector. El fine-tuning es el proceso de hacer que un modelo general "aprenda" tu conocimiento especializado: es como dar formación inicial a un erudito generalista para convertirlo en un experto en tu dominio.

¿Qué aprenderás en este artículo?

Al terminar este capítulo, habrás aprendido:

  • Conocimiento del proceso: dominarás el pipeline completo de fine-tuning, desde la preparación de datos hasta la puesta en producción del modelo
  • Ingeniería de datos: conocerás los requisitos de formato y los estándares de calidad de los datos de fine-tuning
  • Fine-tuning eficiente: entenderás el principio y las ventajas de técnicas de fine-tuning eficiente en parámetros como LoRA
  • Compresión de modelos: dominarás cómo las técnicas de cuantización permiten ejecutar grandes modelos en hardware de consumo
  • Prácticas de despliegue: conocerás las arquitecturas principales de servicio de modelos y las estrategias de selección
CapítuloContenidoConceptos clave
Capítulo 1Pipeline de fine-tuningDatos → Entrenamiento → Evaluación → Despliegue
Capítulo 2Datos de entrenamientoFormato de datos, control de calidad
Capítulo 3Fine-tuning con LoRAAdaptación de bajo rango, eficiencia de parámetros
Capítulo 4Cuantización de modelosFP16, INT8, INT4
Capítulo 5Despliegue de modelosServicio de inferencia, API gateway

0. Panorama general: ¿por qué necesitas fine-tuning?

El entrenamiento de los grandes modelos de lenguaje se divide en dos fases: preentrenamiento y fine-tuning. El preentrenamiento consiste en aprender capacidades lingüísticas sobre enormes cantidades de datos generales; el fine-tuning consiste en aprender capacidades especializadas sobre datos de tareas específicas.

Usando una analogía: el preentrenamiento es como ir a la universidad: aprender conocimientos generales, saber un poco de todo; el fine-tuning es como la formación de incorporación: aprender habilidades profesionales para un puesto concreto.

¿Cuándo necesitas fine-tuning?

  • Formato de salida específico: necesitas que el modelo siempre produzca salida en un formato JSON fijo
  • Conocimiento de dominio especializado: terminología y normas profesionales en campos como medicina, derecho o finanzas
  • Transferencia de estilo de lenguaje: hacer que el modelo responda con un tono o estilo específico (como el guion de atención al cliente)
  • Soporte para idiomas minoritarios: mejorar el rendimiento del modelo en un idioma específico
  • Optimización de costes: sustituir llamadas a modelos grandes por modelos pequeños fine-tuneados, reduciendo el coste de inferencia

1. Pipeline de fine-tuning: el viaje completo desde los datos hasta la producción

El fine-tuning no es "tirar los datos al modelo y ya está". Es un proceso de ingeniería riguroso donde cada fase afecta al resultado final.

微调流水线演示

点击每个阶段,了解微调的完整流程

🧠
选择基座模型
📊
准备训练数据
⚙️
执行微调训练
📈
评估与测试
🚀
部署上线
🧠 选择基座模型

微调的第一步是选择一个合适的预训练基座模型。基座模型已经在海量数据上学习了通用的语言能力,我们要做的是在此基础上进行"专业化训练"。

1根据任务需求选择模型规模(7B、13B、70B 等)
2考虑开源许可证(Apache 2.0、Llama 许可等)
3评估模型的基础能力是否匹配目标场景
4常见选择:Llama、Qwen、Mistral、DeepSeek 等
示例
model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen2-7B")
1 / 5

Las cinco fases del fine-tuning

  1. Preparación de datos: recopilar, limpiar y etiquetar datos de entrenamiento. Es la fase que más tiempo consume y la más crítica.
  2. Selección del modelo: elegir el modelo base adecuado, como Llama 3, Qwen, Mistral.
  3. Configuración del entrenamiento: establecer hiperparámetros como learning rate, batch size, número de epochs.
  4. Ejecución del entrenamiento: ejecutar el entrenamiento en GPU, monitorizar la curva de loss y las métricas de evaluación.
  5. Evaluación y puesta en producción: evaluar el rendimiento en el conjunto de prueba y, si es satisfactorio, desplegar como servicio API.
FaseAcciones claveTrampas comunes
Preparación de datosLimpiar, desduplicar, formatearDatos de mala calidad hacen que el modelo "aprenda mal"
Selección del modeloEvaluar la capacidad del modelo baseModelo demasiado grande no se puede entrenar, demasiado pequeño da malos resultados
Configuración del entrenamientoAjustar hiperparámetrosLearning rate demasiado alto causa olvido catastrófico
Ejecución del entrenamientoMonitorizar loss y métricasSobreajuste, entrenamiento que no converge
Evaluación y puesta en producciónA/B testing, despliegue gradualFuga del conjunto de prueba causa evaluación inflada

2. Datos de entrenamiento: el techo del rendimiento del fine-tuning

En fine-tuning hay un dicho clásico: "Garbage in, garbage out". La calidad de los datos de entrenamiento determina directamente el límite superior del rendimiento del fine-tuning. 100 ejemplos de alta calidad suelen dar mejores resultados que 10.000 ejemplos de baja calidad.

训练数据格式演示

切换不同格式,了解微调数据的组织方式

指令跟随

最常见的微调数据格式。每条数据包含一个指令(instruction)、可选的输入(input)和期望的输出(output)。适合训练通用助手类模型。

通用助手ChatGPT 风格最常用
数据样例
"instruction": "请将以下中文翻译成英文"
"input": "人工智能正在改变世界"
"output": "AI is changing the world"
数据质量要点
指令要清晰明确,避免歧义
输出要完整、准确、格式规范
覆盖多种任务类型(翻译、摘要、问答等)
数据量建议:1,000 ~ 50,000 条

Tres formatos comunes de datos de fine-tuning

  1. Formato de instrucción (Instruction): el formato más usado, contiene tres campos: instruction (instrucción), input (entrada), output (salida esperada). Adecuado para entrenar modelos que sigan instrucciones.
  2. Formato de conversación (Chat): formato de diálogo multi-turno, contiene una lista de mensajes con roles system, user, assistant. Adecuado para entrenar chatbots.
  3. Formato de completado (Completion): pares simples prompt-completion, adecuados para generación de texto y completado de código.
Dimensión de calidadDescripciónMétodo de verificación
ExactitudLas respuestas deben ser correctasRevisión manual, verificación por expertos
ConsistenciaEstilo de respuesta consistente para preguntas similaresMuestreo y comparación
DiversidadCubrir suficientes escenarios y variantesEstadísticas de distribución de tipos de preguntas
DesduplicaciónEvitar que muestras duplicadas causen sobreajusteDesduplicación textual, desduplicación semántica
Cantidad de datosNormalmente 500~5000 ejemplos de alta calidad son suficientesEmpezar con pocos, aumentar gradualmente

3. LoRA: conseguir el 90% del rendimiento con el 1% de los parámetros

El fine-tuning completo (Full Fine-tuning) requiere actualizar todos los parámetros del modelo. Para un modelo de 70B parámetros, esto significa cientos de GB de VRAM y una enorme cantidad de computación en GPU. Para la mayoría de los equipos, esto no es viable.

LoRA (Low-Rank Adaptation) ofrece una solución elegante: congelar los parámetros originales del modelo y entrenar solo un pequeño conjunto de matrices de bajo rango añadidas. Estas matrices suelen tener solo un 0.1%~1% de los parámetros del modelo original, pero pueden alcanzar un rendimiento cercano al fine-tuning completo.

LoRA 低秩适配原理演示

理解 LoRA 如何用极少参数实现高效微调

原始权重 W
4096x4096
16,777,216 参数
冻结不动
+
LoRA 适配器
A
4096x8
x
B
8x4096
65,536 参数
可训练
参数节省比例
节省 99.6% 参数
秩越小 = 参数越少、训练越快秩越大 = 表达力越强、效果越好

La idea central de LoRA

La matriz de pesos W del modelo original es una matriz enorme (por ejemplo, 4096x4096). LoRA no modifica W directamente, sino que añade un "bypass": W' = W + BA, donde B y A son dos matrices pequeñas (por ejemplo, 4096x8 y 8x4096). Durante el entrenamiento solo se actualizan B y A, la W original permanece inalterada.

  • Rango (Rank): cuanto mayor es el valor r, mayor es la capacidad expresiva, pero también más parámetros. Normalmente r=8~64 es suficiente.
  • Despliegue fusionado: tras el entrenamiento, se puede fusionar BA de vuelta en W, sin sobrecarga adicional en inferencia.
Método de fine-tuningParámetros entrenablesRequisito de VRAMVelocidad de entrenamientoRendimiento
Fine-tuning completo100%Muy altoLentoEl mejor
LoRA0.1%~1%BajoRápidoCercano al completo
QLoRA0.1%~1%Más bajoMedioLigeramente inferior a LoRA
Prompt Tuning< 0.01%Muy bajoMuy rápidoLimitado

4. Cuantización de modelos: adelgazar los grandes modelos

Un modelo de 70B parámetros, almacenado en FP32 (32 bits de punto flotante), necesita 280 GB de VRAM: sin varias GPUs de gama alta es imposible ejecutarlo. La cuantización (Quantization) reduce la precisión numérica para comprimir el tamaño del modelo, permitiendo que los grandes modelos se ejecuten en hardware de consumo.

模型量化演示

拖动滑块,直观感受不同精度下的模型体积、速度与质量变化

FP32
32 bit
FP16
16 bit
INT8
8 bit
INT4
4 bit
💾
模型体积
~28 GB (7B 模型)
推理速度
1x (基准)
🎯
输出质量
100% (无损)
🖥️
显存需求
~32 GB
FP32 详解

FP32(32位浮点数)是模型训练时的默认精度。每个参数用 32 位存储,精度最高但体积最大。通常只在训练阶段使用,推理时很少直接使用 FP32。

单个参数存储示意
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
每个参数占用 32 位 = 4 字节
适用场景:模型训练、科研实验、精度敏感的任务

El compromiso central de la cuantización

La cuantización es esencialmente un compromiso de precisión por espacio. FP32 → FP16 casi no tiene pérdida, INT8 tiene una pérdida leve, INT4 tiene una pérdida notable pero generalmente aceptable. La clave es encontrar el punto de equilibrio óptimo para tu escenario.

  • FP16 (media precisión): tamaño reducido a la mitad, calidad casi sin pérdida. Es la opción por defecto para entrenamiento e inferencia.
  • INT8 (8 bits enteros): tamaño reducido otra mitad, pérdida de calidad muy pequeña. Adecuado para la mayoría de escenarios de inferencia.
  • INT4 (4 bits enteros): tamaño solo 1/8 de FP32, cierta pérdida de calidad. Adecuado para escenarios con recursos limitados.
PrecisiónBytes por parámetroTamaño modelo 70BPérdida de calidadEscenario aplicable
FP324 bytes~280 GBNingunaReferencia de entrenamiento
FP162 bytes~140 GBCasi ningunaEntrenamiento e inferencia estándar
INT81 byte~70 GBMuy pequeñaInferencia en producción
INT40.5 bytes~35 GBAceptableDispositivos edge, despliegue local

5. Despliegue de modelos: del laboratorio a producción

El modelo está entrenado, cuantizado y comprimido. El último paso es desplegarlo como un servicio accesible. El despliegue de modelos no es solo "poner el modelo en marcha", implica problemas de ingeniería como concurrencia, balanceo de carga y control de costes.

模型服务架构演示

点击不同部署方案,对比其特点与适用场景

🌐
API 服务
最常见的在线部署方式
📱
边缘部署
在终端设备上本地运行
📦
批量处理
离线批量推理大量数据
🌐API 服务

将模型封装为 RESTful API 或 gRPC 服务,通过 HTTP 请求调用。适合需要实时响应的在线应用,如聊天机器人、智能客服、内容生成等。是目前最主流的部署方式。

架构流程
客户端请求
负载均衡
推理服务器
GPU 推理
返回结果
响应延迟
100ms - 2s
并发能力
高(可水平扩展)
部署成本
中高(需 GPU 服务器)
运维复杂度
中等
常用工具
vLLMTGITritonFastAPIOllama

Tres soluciones principales de despliegue

  1. Proveedores de API: usar directamente las APIs de OpenAI, Anthropic y otros proveedores. Cero operaciones, pago por token. Adecuado para validación rápida y uso a pequeña/mediana escala.
  2. Servicio de inferencia autoalojado: usar frameworks como vLLM, TGI en tus propios servidores con GPU. Costes controlables, datos no salen del dominio. Adecuado para escenarios con requisitos de privacidad o llamadas a gran escala.
  3. Inferencia serverless: usar plataformas como AWS SageMaker, Replicate, pago por petición, autoescalado. Adecuado para escenarios con tráfico muy variable.
Solución de despliegueModelo de costesLatenciaComplejidad operativaEscenario aplicable
Proveedor de APIFacturación por tokenMediaCeroPrototipado rápido, escala pequeña/media
vLLM autodesplegadoAlquiler de GPUBajaAltaGran escala, sensible a privacidad
ServerlessFacturación por peticiónArranque en frío altoBajaTráfico muy variable
Despliegue edgeInversión única en hardwareMuy bajaMediaEscenarios offline, IoT

Resumen

El fine-tuning y despliegue de modelos es el eslabón clave para convertir un gran modelo de "herramienta general" en "asistente especializado". Desde la preparación de datos hasta la puesta en producción, cada paso requiere mentalidad y práctica de ingeniería.

Puntos clave de este capítulo:

  1. El fine-tuning es formación inicial: hacer que un modelo general aprenda el conocimiento y los patrones de comportamiento de un dominio específico
  2. La calidad de los datos determina el techo: 100 ejemplos de alta calidad superan a 10.000 de baja calidad
  3. LoRA es el rey de la eficiencia: con menos del 1% de los parámetros se logra un rendimiento cercano al fine-tuning completo
  4. La cuantización es el arma de despliegue: la cuantización INT4 hace posible ejecutar un modelo de 70B en una sola tarjeta
  5. La solución de despliegue depende del contexto: validación rápida con API, gran escala con autodespliegue, tráfico variable con serverless

Lecturas adicionales