Resumen
InstructLab es un proyecto open source para mejorar los modelos de lenguaje de gran tamaño (LLM) que se usan en las aplicaciones con inteligencia artificial generativa. Este proyecto de la comunidad, creado por IBM y Red Hat, ofrece una solución rentable para optimizar el ajuste de los LLM; además, permite que las personas que cuentan con poca experiencia en machine learning (aprendizaje automático) puedan realizar contribuciones.
¿Para qué se utiliza InstructLab?
Los modelos de lenguaje de gran tamaño se emplean en una variedad de aplicaciones útiles, como los chatbots y los asistentes de programación. Pueden ser propietarios (por ejemplo, los modelos GPT de OpenAI y Claude de Anthropic) u ofrecer cierta accesibilidad a los datos que se utilizan en el preentrenamiento y flexibilidad en cuanto a las restricciones de uso (por ejemplo, los modelos Llama de Meta, Mistral de Mistral AI y Granite de IBM).
A menudo, los especialistas en inteligencia artificial deben adaptar los LLM entrenados previamente para que se ajusten a propósitos empresariales particulares. Sin embargo, hay limitaciones respecto de las formas en que se pueden modificar estos modelos:
- El perfeccionamiento de un LLM en función de un área específica de conocimiento o habilidades suele requerir la división de un modelo abierto actual y posteriores entrenamientos costosos que utilizan muchos recursos.
- Es imposible incorporar mejoras en los proyectos upstream y, por lo tanto, no se pueden aprovechar las contribuciones de la comunidad para optimizar los modelos de forma constante.
- El perfeccionamiento de los LLM suele requerir grandes cantidades de datos generados por las personas, cuya obtención puede resultar lenta y costosa.
El enfoque de InstructLab acaba con todas esas limitaciones. Este proyecto utiliza mucha menos información generada por las personas y muchos menos recursos informáticos que los que se suelen utilizar para volver a entrenar a un modelo. Además, permite que las contribuciones upstream mejoren el modelo permanentemente.
Tanto el proyecto como su nombre se basan en el trabajo de IBM Research sobre el ajuste a gran escala de los chatbots, o Large-scale Alignment for chatBots (LAB). Los miembros del instituto de investigación MIT-IBM Watson AI Lab e IBM Research describieron este método en una investigación realizada en 2024.
El proyecto InstructLab no es específico para un solo modelo, ya que permite ajustar el LLM que elija en función de habilidades y conocimientos adicionales. Este árbol de habilidades y conocimientos se perfecciona constantemente gracias a las contribuciones de la comunidad, y se puede aplicar para respaldar las compilaciones frecuentes de los LLM mejorados. InstructLab también mantiene una versión optimizada de IBM Granite. IBM lanzó otros dos modelos mejorados: Labradorite, que deriva de Llama 2, y Merlinite, que deriva de Mistral. El proyecto InstructLab prioriza las repeticiones rápidas de los procesos, y su objetivo es volver a entrenar modelos con regularidad. Las empresas también pueden usar las herramientas de ajuste de modelos del proyecto para entrenar sus LLM privados con sus propias habilidades y conocimientos.
Funcionamiento de InstructLab
El método LAB consta de tres fases:
- Selección de datos centrada en taxonomías: el término taxonomía hace referencia a un conjunto de datos de entrenamiento seleccionados por especialistas para servir de ejemplo de las habilidades y los conocimientos nuevos que debe adquirir el modelo.
- Generación de datos sintéticos a gran escala: luego, el modelo se usa para generar ejemplos nuevos que se basan en los datos de entrenamiento originales. El método LAB reconoce que la calidad de los datos sintéticos puede variar, por lo que agrega un paso automatizado para perfeccionar las respuestas y garantizar que sean seguras y estén fundamentadas.
- Ajuste iterativo a gran escala: por último, el modelo se vuelve a entrenar en función del conjunto de datos sintéticos. El método LAB incluye dos etapas de perfeccionamiento: de conocimientos y de habilidades.
Con las contribuciones de datos de la comunidad, se generan compilaciones constantes de LLM mejorados, cada uno perfeccionado gracias al árbol de habilidades que se creó a partir de ellas.
¿En qué se diferencia InstructLab de otros métodos de entrenamiento de los modelos de lenguaje de gran tamaño?
Comparemos a InstructLab con los otros pasos para crear y mejorar un LLM.
Preentrenamiento
Durante este paso, se entrena al LLM con miles de millones de tokens de datos sin etiquetar para predecir el siguiente token. Este proceso es bastante lento y costoso y, a veces, requiere miles de unidades de procesamiento gráfico (GPU). El preentrenamiento de un LLM altamente funcional solo es posible para las empresas que cuentan con muchos recursos.
Ajuste
Después del preentrenamiento, se ajustan los LLM para que las respuestas sean lo más precisas y útiles que sea posible. El primer paso suele ser el ajuste de instrucciones, en el cual el modelo se entrena directamente para tareas de interés específicas. Luego, sigue el ajuste de preferencias, que incluye el aprendizaje por refuerzo a partir de la retroalimentación humana (RLHF). En este paso, las personas prueban el modelo, califican los resultados y señalan si las respuestas son las adecuadas o no. Para optimizar un modelo, el proceso de RLHF puede incluir varias rondas de retroalimentación y perfeccionamiento.
Según los investigadores, en la etapa de ajuste puede utilizarse una cantidad de datos de retroalimentación mucho menor que el conjunto de datos inicial (decenas de miles de anotaciones de personas, en comparación con los miles de millones de tokens de datos que se necesitan para el preentrenamiento), y, aun así, habilitar las funciones latentes del modelo.
InstructLab
El método LAB surgió de la idea de que debería ser posible obtener las ventajas del ajuste de modelos a partir de conjuntos mucho más pequeños de datos generados por las personas. Un modelo de inteligencia artificial puede utilizar algunos ejemplos de las personas para generar una gran cantidad de datos sintéticos, perfeccionar esa lista para mejorar la calidad, y usar ese conjunto de datos de alta calidad para realizar más ajustes y entrenamientos. En contraste con el ajuste de instrucciones, en el que se suelen necesitar miles de ejemplos de retroalimentación humana, LAB puede mejorar notablemente un modelo utilizando muchos menos ejemplos.
¿En qué se diferencia InstructLab de la generación aumentada por recuperación (RAG)?
La respuesta más corta es que InstructLab y la generación aumentada por recuperación (RAG) solucionan distintos problemas.
RAG es un método rentable para complementar un LLM con conocimiento específico de un área que no estaba incluida en su preentrenamiento. Gracias a él, un chatbot puede generar respuestas precisas relacionadas con un campo o sector en particular, sin necesidad de volver a entrenar el modelo. Los documentos de conocimiento se almacenan en una base de datos vectorial; luego, se recuperan en fragmentos y se envían al modelo como parte de las consultas de los usuarios. Esto es útil para cualquier persona que desee agregar datos propios a un LLM sin ceder el control de su información, o que necesite que el modelo acceda a la información oportuna.
Por el contrario, el método de InstructLab se basa en las contribuciones de los usuarios finales para respaldar las compilaciones regulares de la versión mejorada de un LLM. InstructLab permite agregar más conocimientos a un modelo y habilitar funciones nuevas en él.
Es posible mejorar al máximo un proceso RAG implementando esta técnica en un modelo que se haya perfeccionado con InstructLab.
¿Cuáles son los elementos del proyecto InstructLab?
InstructLab está compuesto por varios proyectos.
Taxonomías
El proyecto se centra en las taxonomías, las cuales se crean en gran parte de forma manual y con mucho cuidado. InstructLab contiene un árbol de taxonomías que permite que los usuarios creen modelos perfeccionados con datos generados por las personas, que luego se mejoran con la generación de datos sintéticos.
Interfaz de línea de comandos (CLI)
La CLI de InstructLab permite que los colaboradores prueben sus contribuciones con sus computadoras portátiles o estaciones de trabajo. Los miembros de la comunidad pueden usar la técnica del proyecto para generar un acercamiento aproximativo al ajuste de las instrucciones del modelo y la generación de datos sintéticos, sin utilizar sistemas de hardware especializados.
Infraestructura para el entrenamiento del modelo
Por último, se encuentra el proceso de creación de LLM mejorados. Para volver a entrenar los modelos con regularidad según las contribuciones nuevas de la comunidad, se requiere una infraestructura con muchas unidades de procesamiento gráfico. IBM dona la infraestructura necesaria, y se encarga de su mantenimiento, para volver a entrenar con frecuencia los modelos mejorados del proyecto InstructLab.
Descubra Red Hat Enterprise Linux AI
Cuando esté listo para incorporar la inteligencia artificial a su empresa, utilice Red Hat® Enterprise Linux® AI, ya que integra los modelos de lenguaje de gran tamaño con licencias open source de Granite, las herramientas de ajuste de modelos de InstructLab, una imagen de arranque de Red Hat Enterprise Linux, soporte técnico empresarial e indemnización por propiedad intelectual del modelo.
Red Hat Enterprise Linux es la plataforma empresarial de Linux líder en todo el mundo, la cual está certificada en cientos de nubes y con miles de proveedores de software y hardware. La estrategia de nube híbrida abierta de Red Hat se basa en la tecnología de Linux, los contenedores y la automatización, y le brinda flexibilidad para ejecutar sus aplicaciones de inteligencia artificial donde sea que las necesite.
Red Hat Enterprise Linux AI y el proyecto InstructLab hacen realidad esta visión al disminuir los costos y recursos que se necesitan para diseñar modelos de inteligencia artificial y experimentar con ellos, al mismo tiempo que ofrecen las herramientas, los datos y los conceptos necesarios para impulsar la nueva generación de cargas de trabajo inteligentes.