Por Charles Foster
En Finetune, estamos construyendo soluciones de IA para abordar algunos de los problemas más desafiantes en la tecnología educativa, incluyendo la generación automática de contenido y la clasificación y recomendaciones de recursos de aprendizaje impulsadas por IA. Debido a que el tema que nuestras herramientas deben manejar abarca desde K-12 hasta el desarrollo de la fuerza laboral, estamos invirtiendo fuertemente en métodos que nos permitan ampliar la amplitud y profundidad de lo que nuestros modelos cubren. Componentes clave de este enfoque son métodos flexibles para entrenar redes neuronales especializadas en dominios donde los modelos de propósito general son insuficientes. En esta entrada de blog, me gustaría compartir un poco de nuestro viaje explorando estos métodos.
Ajuste fino
El ajuste fino típico de los modelos de lenguaje neuronal implica optimizar simultáneamente todos sus parámetros entrenables, que pueden ascender a muchos miles de millones para redes como GPT-J. A escalas como estas, tanto el ajuste fino como los procesos de inferencia no son triviales, lo que dificulta el despliegue generalizado de estos. En nuestras propias investigaciones, algunos problemas clave parecían ser los más importantes:
- Simplemente ejecutar estos modelos transformer ya presiona los límites de la memoria GPU (VRAM), y durante el ajuste fino hay una relación directa entre la cantidad de parámetros que se están optimizando y la cantidad de memoria adicional consumida.
- Al modificar todos los parámetros en la red, el flujo de información aprendido durante el preentrenamiento puede verse interrumpido, lo que resulta en olvido y pérdida de capacidades de aprendizaje con pocos ejemplos.
- Servir un modelo personalizado de múltiples gigabytes para cada caso de uso crearía latencias y costos inaceptables.
Estas preocupaciones combinadas nos motivaron a explorar otros métodos de la literatura reciente para ajustar nuestros modelos de lenguaje neuronal. Afortunadamente, en el último año, el ámbito de la investigación en procesamiento de lenguaje natural ha desarrollado una variedad de métodos para reducir el costo de personalizar el comportamiento de los modelos de lenguaje preentrenados.
Ajuste por indicación
El enfoque original que seguimos se llama Ajuste por indicación o Ajuste suave (Lester et al. 2021). En este método, los parámetros de la red del preentrenamiento se mantienen fijos. En su lugar, preparamos un pequeño número de vectores de incrustación aprendibles (típicamente de 10 a 20) delante de los tokens de indicación de entrada, y ajustamos estas incrustaciones con el objetivo habitual de modelado del lenguaje en un conjunto de datos de ajuste fino. Estas incrustaciones no representan tokens del lenguaje; podemos pensar en ellas en su lugar como un almacenamiento denso de contexto en el que la red puede condicionar—vía el mecanismo de atención—mientras hace predicciones sobre los tokens en la secuencia.
El ajuste por indicación agrega solo un pequeño costo de tiempo de ejecución al modelo, ya que las indicaciones suaves están en el rango de los kilobytes y pueden ser procesadas a través de la red en paralelo. Estas características las hacen atractivas para servir a muchos usuarios concurrentes, como han indicado los recientes despliegues de la técnica en narrativa de IA. Sin embargo, integrar indicaciones suaves en marcos populares como transformers de HuggingFace es complejo, ya que las interfaces están diseñadas en gran medida para operar sobre secuencias de índices de tokens en lugar de vectores densos. Además, a medida que se agrega más contexto entre la indicación suave y la generación, comenzamos a ver desequilibrios entre la fuerza de condicionamiento sobre la indicación suave y el contexto de los tokens. Retener la capacidad de agregar de manera flexible cientos de tokens de contexto en tiempo de ejecución fue importante para nosotros, ya que proporciona palancas adicionales de control en el proceso de autoría de elementos. Si queremos guiar al modelo para que se enfoque en contenido de una página particular de un libro de texto, o para autorar un ítem de comprensión lectora, o para proporcionar ejemplos con pocos disparadores, la contextualización a largo plazo es importante.
Adaptadores de bajo rango (LoRA)
Posteriormente, hicimos la transición a un método llamado LoRA o Adaptadores de bajo rango (Hu et al. 2021). Esta técnica fue desarrollada por investigadores de Microsoft que trabajaban en modelos del tamaño de GPT-3, y se basa en enfoques anteriores de adaptadores. Si pensamos en un transformer como un refinamiento progresivo de sus estados latentes de tokens con cada capa residual, el concepto de un adaptador es agregar un pequeño delta dependiente de la entrada (inicializado como una no operación) a esos latentes en una capa dada. Este suave empujón puede modular su comportamiento más adelante, enfatizando, por ejemplo, las partes de la entrada que son relevantes para la tarea.
Los adaptadores de bajo rango son un tipo de adaptador que apunta a un subespacio de bajo rango, lo que reduce el número de nuevos parámetros que necesitamos entrenar (de D2 a 2 × D × r, donde D está en los miles). Al igual que con el ajuste suave, mantenemos los parámetros originales de la red congelados para preservar el conocimiento que contienen del preentrenamiento, y solo ajustamos estos nuevos parámetros de adaptador. En nuestras pruebas internas, hemos visto buenos indicadores de LoRA. Además de permitirnos ajustar grandes modelos con pequeños presupuestos de hardware, los modelos con capas de adaptador intercaladas también retienen gran parte de su capacidad original de pocos disparadores mientras se adaptan al dominio objetivo. Notablemente, integrar adaptadores de bajo rango en otros marcos es sencillo, ya que simplemente podemos intercambiar las capas lineales existentes por capas lineales + capas de adaptador según sea necesario.
Avanzando
Para dar una idea del tipo de mejoras que hemos observado en nuestras exploraciones, a continuación compartimos una pequeña selección de generaciones de modelos entrenados con diferentes enfoques de ajuste. Estos ítems fueron todos generados utilizando los mismos tres prompts de entrada relacionados con la entrega de atención de enfermería: el primero se centró en priorizar las necesidades de múltiples clientes y el segundo en tomar acción en un entorno de equipo.
Ítem #1: Una enfermera está evaluando a un cliente que está programado para cirugía ambulatoria. ¿Cuál de los siguientes pacientes evaluaría la enfermera a continuación? (A) Un paciente con diabetes tipo 1 (B) Un paciente con pancreatitis aguda (C) Un paciente que requiere terapia antibiótica intravenosa (D) Un paciente con enfermedad de Crohn Ítem #2: Un cliente es admitido en el hospital con el diagnóstico de insuficiencia cardíaca congestiva. La madre del cliente se niega al tratamiento. ¿Cuál de las siguientes acciones debería tomar la enfermera? (A) Notificar al proveedor de la situación. (B) Revisar la lista de medicamentos del paciente. (C) Revisar la historia clínica del cliente. (D) Notificar al médico del cliente sobre la condición del cliente.
Ítem #3: Una enfermera está evaluando a un paciente en la unidad pediátrica. El cliente está programado para un estudio diagnóstico, que incluye una radiografía de tórax. ¿Cuál de los siguientes pacientes debería estar planeando evaluar la enfermera a continuación? (A) Un niño que tiene neumonía y está experimentando fiebre (B) Un niño que tiene una erupción y no está respondiendo a un medicamento (C) Un niño que tiene fiebre y tiene una temperatura >100.4 (D) Un niño que tiene fiebre y una erupción Ítem #4: Un cliente con insuficiencia renal está en el hospital y está programado para someterse a un trasplante renal. El cliente tiene una fuerte creencia de que el cirujano de trasplante es incompetente. El cliente se niega a permitir que un médico de otro hospital realice el trasplante. ¿Cuál de las siguientes acciones debería tomar la enfermera a cargo? (A) Tomar una declaración del cliente de que el cirujano de trasplante es competente y dársela al cirujano de trasplante. (B) Pedir al cliente una declaración firmada para respaldar su afirmación. (C) Contactar al cirujano de trasplante y averiguar por qué el cliente se niega a permitir que el cirujano de otro hospital realice el trasplante. (D) Informar al cirujano de trasplante que el cliente está rechazando el trasplante.
Ítem #5: Una enfermera está planeando asignar clientes a varias estaciones de cama. ¿Cuál de los siguientes clientes debería asignar la enfermera a la estación de cama más cercana a la estación de enfermeras? (A) Un cliente que tiene un diagnóstico sospechoso de embolia pulmonar y requiere una tomografía computarizada (CT) (B) Un cliente que necesita asistencia con una evacuación intestinal (C) Un cliente que tiene una indicación de emergencia para una radiografía de tórax (D) Un cliente que requiere una radiografía de tórax porque tiene tos Ítem #6: Una LPN está cuidando a un cliente con un catéter urinario permanente y le está pidiendo a la enfermera que le ayude a limpiar el catéter. ¿Cuál de las siguientes acciones debería tomar la enfermera? (A) Explicar al cliente que necesitará proporcionar la solución de limpieza y que necesitará obtener el consentimiento del cliente para el procedimiento. (B) Pedir ayuda a la LPN. (C) Ofrecer ayudar al cliente a limpiar el catéter. (D) Asegurar a la LPN que la enfermera la asistirá.
Podemos observar que, aunque los mejores ítems del modelo base son en gran medida fluidos y lógicamente coherentes, tienden a estar sublimitados (como en el #1) o requieren muy poco conocimiento del dominio de la enfermería (como en el #3). En comparación con los ítems de base, los ítems de los modelos de ajuste por indicación y adaptador de bajo rango contienen mayor detalle en sus estímulos, raíces y opciones. El contenido es relevante para el dominio, llamando a conocimientos específicos en la gestión de la atención de enfermería en lugar de depender únicamente del conocimiento de fondo. Además, los ítems del modelo de adaptador de bajo rango tienen una forma más consistente. Por ejemplo, los ítems se refieren consistentemente al “cliente” en lugar de al “paciente”, de acuerdo con el lenguaje que probablemente aparecería en las evaluaciones (comparar #5 con #1 y #3). También rastrea con éxito las referencias a múltiples individuos dentro de un escenario (comparar #6 con #4).
Las mejoras en la cobertura del dominio, la consistencia estilística y la coherencia lógica pueden traducirse en mejoras significativas en la utilidad de los modelos de lenguaje neuronal. Esto es solo el comienzo: a medida que la tecnología madura, se descubrirán aún más métodos para crear modelos de lenguaje natural personalizados y controlables a gran escala. Y a medida que se descubran esos métodos, continuaremos incorporando lo mejor de la academia, la industria y la investigación independiente en los productos de Finetune.
Un sincero agradecimiento a Nick Koprowicz, Jesse Hamer, Saad Khan y Ogden Morse por proporcionar comentarios amables y útiles en el desarrollo de esta entrada de blog.
Referencias
Hu, E. J., Shen, Y., Wallis, P., Allen-Zhu, Z., Li, Y., Wang, S., … & Chen, W. (2021). Lora: Adaptación de bajo rango de grandes modelos de lenguaje. arXiv preprint arXiv:2106.09685.
Lester, B., Al-Rfou, R., & Constant, N. (2021). El poder de la escala para el ajuste por indicación eficiente en parámetros. arXiv preprint arXiv:2104.08691.