Grandes puntos de conocimiento sobre el ajuste fino de modelos que incluso un principiante puede entender

Gran ajuste del modelo de todo el proceso

小白也能看懂的大模型微调知识点

 

Se recomienda seguir estrictamente el proceso anterior durante el proceso de ajuste fino para evitar saltarse pasos, lo que puede dar lugar a un trabajo ineficaz. Por ejemplo, si el conjunto de datos no se construye adecuadamente y al final se descubre que el escaso efecto del modelo afinado es un problema de calidad del conjunto de datos, los esfuerzos preliminares se irán al garete y a la mitad.

 

Recogida y cotejo de datos

En función de la disponibilidad de los conjuntos de datos, éstos pueden clasificarse en dos tipos: los de acceso público y los de difícil acceso.

¿Cómo puedo acceder a los conjuntos de datos públicos?

La forma más sencilla de acceder a los conjuntos de datos disponibles públicamente es buscarlos y descargarlos a través de las plataformas de código abierto pertinentes. Por ejemplo, plataformas como GitHub, Hugging Face, Kaggle, Magic Hitch, etc. proporcionan un gran número de conjuntos de datos abiertos. Además, también puedes intentar obtener datos de algunos sitios web mediante tecnología de rastreo, como posting, Zhihu, sitios web verticales del sector, etc. El uso de rastreadores para obtener datos suele requerir cierto apoyo técnico y el cumplimiento de las leyes y normativas pertinentes.

¿Y si los datos necesarios no están disponibles o son difíciles de obtener en la red?

Cuando los conjuntos de datos disponibles públicamente no satisfacen la demanda, otra opción es crearlos uno mismo. Sin embargo, crear manualmente cientos o miles de conjuntos de datos suele ser tedioso y llevar mucho tiempo. ¿Cómo crear conjuntos de datos de forma eficiente? A continuación se describen dos ideas comunes para crear conjuntos de datos rápidamente:

1. Aprovechar las capacidades de "mejora de datos" de la plataforma Big Model

Actualmente, muchas plataformas de grandes modelos ofrecen la función de mejora de datos, que puede ayudarnos eficazmente a ampliar el conjunto de datos. Por ejemplo, la plataforma abierta de espectrometría de masas, la plataforma abierta Xunfei, la plataforma abierta volcano, etc., pueden utilizarse para generar rápidamente más muestras utilizando datos sin procesar a través de la función de mejora de estas plataformas. En primer lugar, se prepara manualmente una pequeña cantidad de datos (por ejemplo, 50 entradas) y se carga en estas plataformas. Las plataformas ampliarán los datos mediante la tecnología de mejora de datos para realizar rápidamente la ampliación del conjunto de datos.

小白也能看懂的大模型微调知识点

 

2. Generación de datos mediante grandes modelos

Otra forma eficaz de generar datos es con la ayuda de un gran modelo. En primer lugar, se prepara una pequeña cantidad de datos (por ejemplo, unas pocas docenas) y se introducen como ejemplos en el big model. El big model puede generar contenidos de datos similares basándose en estos ejemplos. Para garantizar la calidad de los datos generados, se recomienda no generar demasiados datos a la vez en la primera ronda de generación, sino más bien 20 datos y revisarlos detenidamente para identificar los errores comunes que puede cometer el Big Model. Estos ejemplos de errores se retroalimentan al Big Model para mejorar la generación.

示例Prompt:
参照以下示例,输出20个类似的“近期运气”问题。请注意,语言要生活化、不要过于夸张,避免使用诸如“在活动中”、“在比赛中”等定语或状语,语句尽量简洁,避免多余修饰。示例:
我这个季度顺利吗?
我这个季度会发财吗?
最近有哪些事情在等着我?
最近会发生什么事情?
近期我能否被幸运之神垂青?

 

Depuración de datos y ajuste de la construcción de conjuntos de datos

Los conjuntos de datos sin procesar no suelen ser compatibles con el entrenamiento del modelo, por lo que hay que limpiarlos y procesarlos para hacerlos compatibles con el formato en el que se aprendió el modelo. En la mayoría de los casos, los conjuntos de datos afinados suelen construirse utilizando el formato AIpaca.

Introducción al formato AIpaca

El formato AIpaca tiene una estructura sencilla y es especialmente adecuado para tareas como la generación de textos, la traducción, el resumen y, sobre todo, el ajuste fino de instrucciones orientado a una sola tarea. A continuación se explican detalladamente sus principales componentes:

  • instrucción: una instrucción de tarea, similar a una entrada de usuario (obligatoria), que indica explícitamente al modelo lo que debe hacer.
  • entrada: La entrada requerida por la tarea. Normalmente puede ser una cadena vacía cuando la tarea es abierta o no requiere una entrada explícita.
  • salida: La salida deseada que el modelo debe generar dadas las instrucciones y las entradas, es decir, la respuesta de referencia (requerida).
  • sistema: puede considerarse como un aviso previo para el modelo, utilizado para establecer el comportamiento del modelo, normalmente algunas pistas iniciales (opcionales) para el modelo.
  • historial: Información histórica del diálogo que ayuda al modelo a establecer relaciones contextuales. En una tarea de varias rondas, el modelo genera respuestas (opcional) basándose en el diálogo histórico.

 

Por ejemplo, el formato de datos AIpaca es el siguiente:

[
  {
    "instruction": "用‘梦想’、‘坚持’和‘成功’这三个词组成一个句子。",
    "input": "",
    "output": "只有坚持追逐梦想,才能最终取得成功。"
  },
  {
    "instruction": "对《三国演义》做一个简短的介绍。",
    "input": "",
    "output": "《三国演义》是中国古典四大名著之一,描写了从东汉末年到西晋初年近百年的历史,讲述了东汉末年的群雄割据混战及魏、蜀、吴三国之间的政治和军事斗争,塑造了一批英雄人物。"
  }
]

 

Metodología de construcción de conjuntos de datos

Para hacer un conjunto de datos de ajuste fino, normalmente necesitamos convertir los datos en un archivo JSON que se ajuste al formato AIpaca. A continuación se presentan dos métodos comunes para hacer conjuntos de datos:

  1. Construcción manual de conjuntos de datos: Tras organizar los datos necesarios y construirlos según el formato AIpaca, los conjuntos de datos pueden construirse manualmente escribiendo código Python. Este método es adecuado para escenarios sencillos y conjuntos de datos pequeños.
  2. Construcción automatizada mediante macromodelos: generación automatizada de conjuntos de datos mediante llamadas a interfaces de macromodelos. Este enfoque es adecuado para conjuntos de datos a gran escala, especialmente cuando las instrucciones y los patrones de salida de la tarea son relativamente fijos.
Formato completo del conjunto de datos

A continuación se muestra el formato AIpaca completo, que contiene los comandos de la tarea, las entradas, las salidas, las palabras de aviso del sistema y la información histórica del diálogo:

[
  {
    "instruction": "人类指令(必填)",
    "input": "人类输入(选填)",
    "output": "模型回答(必填)",
    "system": "系统提示词(选填)",
    "history": [
      ["第一轮指令(选填)", "第一轮回答(选填)"],
      ["第二轮指令(选填)", "第二轮回答(选填)"]
    ]
  }
]

Este formato ayuda al modelo a aprender la relación entre las instrucciones y los resultados, como si se le dieran problemas prácticos en los que la instrucción + entrada = pregunta y la salida = respuesta.

Selección del modelo base

  1. Selección del tipo de modelo: Seleccione el modelo base, como GPT, LLaMA o BERT, en función de los requisitos de la tarea.
  2. Tamaño y parámetros: decida el tamaño del modelo (por ejemplo, 7B, 13B o 65B de parámetros), teniendo en cuenta los recursos informáticos, el tiempo de entrenamiento y la velocidad de inferencia.
  3. Modelos de código abierto frente a modelos comerciales: Analizar la necesidad de elegir entre modelos de código abierto (por ejemplo, LLaMA, Falcon) o modelos comerciales de código cerrado (por ejemplo, la familia OpenAI GPT).
  4. Utilizando los datos de prueba, realice una prueba de comparación para encontrar el mejor ajuste entre los múltiples modelos seleccionados.

Descripción de los parámetros del modelo

小白也能看懂的大模型微调知识点

 

Las cinco preguntas del alma

I. ¿Qué es el ajuste fino?

La puesta a punto es el proceso de entrenamiento adicional de un modelo ya preentrenado con un nuevo conjunto de datos. Por lo general, estos modelos preentrenados ya han aprendido muchas características y conocimientos sobre grandes conjuntos de datos y tienen ciertas capacidades genéricas. El objetivo principal del perfeccionamiento es trasladar estos conocimientos genéricos a una nueva tarea o dominio más específico para que el modelo pueda resolver mejor un problema concreto.

II. ¿Por qué el ajuste fino?

1. Ahorro de recursos informáticos

Entrenar un gran modelo desde cero requiere muchos recursos informáticos y tiempo, y es muy costoso. El ajuste fino utiliza modelos preentrenados como punto de partida y requiere menos entrenamiento en nuevos conjuntos de datos para obtener buenos resultados, lo que reduce enormemente el coste computacional y el tiempo.

2. Mejorar el rendimiento de los modelos

Los modelos preentrenados, aunque tienen capacidades generalizadas, pueden no funcionar bien en tareas específicas. El ajuste fino mejora la precisión y la eficiencia ajustando los parámetros del modelo con datos específicos del dominio para que sean más hábiles en la tarea objetivo.

3. Adaptación a nuevas zonas

Los modelos genéricos preentrenados pueden no entender bien las características de los datos en un dominio específico, y el ajuste fino puede ayudar a los modelos a adaptarse a nuevos dominios y hacer que manejen mejor los datos en una tarea específica.

III. ¿Qué se consigue con el ajuste fino?

El ajuste fino da lugar a un modelo optimizado y ajustado. Este modelo se basa en la estructura del modelo original preentrenado, pero sus parámetros se han actualizado para adaptarse mejor a nuevas tareas o requisitos del dominio.

Ejemplos:

Supongamos que existe un modelo de clasificación de imágenes preentrenado que reconoce objetos comunes. Si hay que reconocer un tipo concreto de flor, el modelo puede ajustarse con un nuevo conjunto de datos que contenga varias imágenes y etiquetas de flores. Tras el ajuste, los parámetros del modelo se actualizan para reconocer con mayor precisión estos tipos de flores.

IV. ¿Cómo poner en producción el modelo perfeccionado?

1. Despliegue en el entorno de producción

La integración de modelos en sitios web, aplicaciones móviles u otros sistemas se puede implementar utilizando servidores de modelos o servicios en la nube como las API proporcionadas por TensorFlow Serving, TorchServe o Hugging Face.

2. Tareas de razonamiento

Utilizar el modelo ajustado para realizar inferencias, por ejemplo, para hacer predicciones a partir de datos de entrada o para analizar resultados.

3. Actualización y optimización continuas

En función de los nuevos requisitos o de la información recibida, el modelo se perfecciona o se añaden más datos al entrenamiento para mantener el rendimiento óptimo del modelo.

V. ¿Cómo elegir un método de ajuste?
  • LoRA: Low-rank adaptation for reducing the size of fine-tuned parameters for resource-constrained environments.
  • QLoRA: optimización cuantitativa basada en LoRA para un manejo más eficiente del ajuste fino de grandes modelos.
  • P-tuning: técnica de aprendizaje por pistas, adecuada para tareas con muestras pequeñas o pequeñas cantidades de datos etiquetados.
© declaración de copyright

Artículos relacionados

Sin comentarios

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