$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
Los grandes modelos de lenguaje (LLM) como ChatGPT de OpenAI o Llama de Meta AI se han convertido rápidamente en un recurso popular para generar texto relevante para un mensaje de usuario. Estos modelos, que originalmente funcionaban para predecir los siguientes ítems léxicos en una secuencia, han evolucionado para comprender el contexto, codificar la información clínica y demostrar un alto rendimiento en una variedad de tareas 1,2,3,4. Aunque los modelos de lenguaje son anteriores a estas capacidades y a su nivel actual de popularidad en décadas5, los avances recientes en el aprendizaje profundo y las capacidades informáticas han hecho que los LLM comerciales preentrenados y de alta calidad estén ampliamente disponibles para los usuarios a través de tecnologías basadas en la web e interfaces de programación de aplicaciones (API)6. Sin embargo, existen varias limitaciones notables para consumir LLM en este formato.
Reto 1: Corpus de entrenamiento estático
Los LLM se entrenan con un cuerpo de datos de texto enorme (por ejemplo, dos billones de tokens en el caso de Llama 27) pero estático. Esto plantea un desafío para producir respuestas precisas relacionadas con campos que experimentan un rápido desarrollo o cambian la literatura. En este enfoque estático, los LLM requerirían un reentrenamiento frecuente para mantenerse al día con los datos más recientes, lo cual no es práctico ni escalable. Además, las indicaciones que requieren respuestas basadas en información no presente en los datos de entrenamiento pueden impedir la generación de texto útil o provocar alucinaciones8. Los casos de alucinaciones o fabricación de hechos plantean preocupaciones significativas sobre la confiabilidad de los LLM, particularmente en entornos donde la precisión de la información es crítica9.
Desafío 2: Falta de especificidad del dominio
Los modelos previamente entrenados a menudo se crean para uso general, mientras que los usuarios pueden necesitar un modelo específicamente optimizado para el rendimiento en un dominio determinado. Además, los recursos computacionales y los datos necesarios para entrenar un modelo de novo o realizar un ajuste fino significativo son prohibitivos para muchos usuarios.
Reto 3: Falta de privacidad
Es posible que los usuarios que buscan aplicaciones que involucran datos confidenciales o información de propiedad no estén dispuestos o no puedan usar ciertos servicios de LLM, ya que carecen de información sobre cómo se pueden almacenar o utilizar los datos.
Desafío 4: Falta de estabilidad garantizada
Los servicios con LLM propietarios pueden cambiar los modelos disponibles o alterar el comportamiento en cualquier momento, lo que hace que la estabilidad sea una preocupación para la implementación de aplicaciones que dependen de estos servicios.
La generación aumentada de recuperación (RAG) es una técnica desarrollada para mejorar el rendimiento de LLM, particularmente en consultas relacionadas con información fuera del corpus de entrenamiento del modelo10,11. Estos sistemas aumentan los LLM al incorporar información contextual que se debe tener en cuenta al generar una respuesta a una consulta del usuario. Diversos trabajos recientes han descrito las aplicaciones de los sistemas RAG y sus potenciales ventajas 12,13,14.
El objetivo del método descrito en este trabajo es demostrar la construcción de un sistema de este tipo y proporcionar un marco para que los investigadores experimenten rápidamente con LLM aumentados de dominio específico. Este método es aplicable para los usuarios que buscan aumentar un LLM con una fuente de datos externa basada en texto. Específicamente, un objetivo general de este protocolo es proporcionar código paso a paso que sea extensible a una variedad de experimentos prácticos de LLM y RAG sin la necesidad de una experiencia técnica significativa en el dominio de modelado de lenguaje, aunque se requiere un conocimiento práctico de Python para aplicar este enfoque sin modificaciones. Para maximizar el control del usuario, la transparencia, la portabilidad y la asequibilidad de las soluciones, se utilizan herramientas de código abierto disponibles públicamente. El sistema propuesto aborda los problemas mencionados anteriormente de las siguientes maneras:
Soluciones 1 y 2: Corpus de entrenamiento estático y falta de especificidad de dominio
La metodología proporcionada aprovecha un enfoque RAG, utilizando incrustaciones para proporcionar información específica del dominio que no se incluye en los datos de entrenamiento originales. En un nivel alto, los modelos de incrustación transforman el texto u otros datos en una representación como un vector o una matriz de números de una sola dimensión. Esta técnica es beneficiosa, ya que convierte la información semántica contenida en el texto en una forma densa y numérica. Al proyectar una consulta de usuario en el mismo espacio de incrustación, se pueden utilizar varios algoritmos para calcular la distancia15 y, por lo tanto, la similitud semántica aproximada, entre la consulta del usuario y las secciones de los documentos de texto. Por lo tanto, la creación de una base de datos de dichos vectores a partir de documentos divididos en secciones discretas puede facilitar la búsqueda en un número significativo de documentos del texto más relevante para una consulta de usuario (Figura 1). Este enfoque es extensible a cualquier documento de texto. Si bien se están comenzando a implementar otros enfoques, como las capacidades de búsqueda en línea, para aumentar los LLM, este enfoque permite a los usuarios elegir fuentes consideradas de calidad suficientemente alta para su caso de uso.
Solución 2: Falta de privacidad
En esta implementación, se utilizó un entorno seguro en la nube para el alojamiento, sin avisos de usuario, respuestas generadas u otros datos que salgan de este ecosistema. Sin embargo, todo el código se escribe de manera independiente de la plataforma para garantizar que se pueda sustituir a otro proveedor de nube o hardware local.
Solución 3: Falta de estabilidad garantizada
Este enfoque utiliza bibliotecas de código abierto y se centra en aumentar los LLM con pesos disponibles públicamente, lo que permite un mayor grado de transparencia, estabilidad y control de versiones, si es necesario.
En la Figura 2 se muestra un esquema completo de nuestro sistema propuesto, y en la sección de protocolo se describen instrucciones detalladas sobre cómo replicar este sistema o uno similar. Una consideración adicional a la hora de modificar el comportamiento del modelo mediante el ajuste fino o el aumento es la evaluación del rendimiento. En los modelos de generación de lenguaje, esto presenta un desafío único, ya que muchas métricas tradicionales de aprendizaje automático no son aplicables. Aunque existe una variedad de técnicas16, en este estudio, se utilizaron preguntas de opción múltiple (MCQ) escritas por expertos para evaluar la precisión y comparar el rendimiento antes y después del aumento, así como con los LLM alternativos populares.