En el Instituto de Ingeniería del Conocimiento (IIC) llevamos más de una década investigando y generando soluciones en el ámbito del Procesamiento de Lenguaje Natural (PLN). Por ello, hemos seguido muy de cerca la revolución acontecida en los últimos meses en este campo y, en concreto, en torno a la generación del lenguaje, con la explosión de la inteligencia artificial generativa. Gran parte de esta revolución se debe, más allá del pre-entrenamiento de modelos gigantes del lenguaje (LLMs) con miles de millones de tokens y novedades de diseño y su posterior liberación, a su entrenamiento por instrucciones o en formato conversación, que supone además un atractivo para el usuario y su acercamiento a esta tecnología.
Sin embargo, lo cierto es que en español no ha habido muchos avances en cuanto a conjuntos de datos y modelos de este tipo. En este post, repasamos algunas excepciones y presentamos la primera versión de RigoChat, nuestra propia línea de modelos de instrucciones-conversación en español. Desde el IIC, nos adentramos en el campo de la IA generativa partiendo de nuestra experiencia con el modelo de comprensión del lenguaje RigoBERTa en el que empezamos a trabajar en 2020.
Inteligencia artificial generativa en español
Aunque los avances en IA se escriben primero en inglés, el PLN en español ha ido encontrando su hueco en el mercado, con aplicaciones más específicas. En cuanto a la IA generativa, es ahora cuando empezamos a ver corpus y modelos de generación de texto en nuestro idioma.
Por un lado, hay que destacar el excelente esfuerzo de la Comunidad SomosNLP durante el Hackathon SomosNLP 2023, en colaboración con Argilla, donde se tradujeron automáticamente y se curaron parcialmente dos conjuntos de datos de instrucciones originalmente creados en inglés: Alpaca y Dolly.
El primero está creado a partir de llamadas a la API de OpenAI, en concreto con el modelo GPT-3.5-turbo. Esto supone limitaciones en la calidad del corpus, aunque la curación posterior mejora su calidad. Dolly, por otro lado, fue generado originalmente por trabajadores de Databricks , con una calidad superior de serie. No obstante, hay que tener en cuenta que la versión en español es una traducción automática y que, por tanto, ha podido existir algún deterioro en la calidad de estos datos.
Por la parte de los modelos, los únicos modelos públicos en español que están basados en instrucciones y de los que tenemos constancia a fecha de este post son Lince-Zero y Lince-Mistral-7b-it-es, ambos de Clibrain.
En este contexto es donde tienen cabida los modelos RigoChat. Con la idea de poder ofrecer las mejores soluciones a nuestros clientes en nuevos proyectos de generación de lenguaje, en el IIC decidimos dar el paso y desarrollar nuestros propios modelos de instrucciones-conversación en español, aportando también al PLN en nuestro idioma. Esta se enmarca y continúa con la línea de investigación y entrenamiento de modelos de lenguaje RigoBERTa.
Poniendo a prueba a RigoChat
RigoChat es una familia de modelos de lenguaje generativos especializados en diferentes sub-tareas. En concreto, en el IIC hemos trabajado en la primera versión de tres modelos:
- RigoInstruct: modelo general de instrucciones, para el cual se ha empleado un corpus formado a partir de corpus públicos junto con otros corpus de instrucciones de alta calidad generados en el IIC.
- RigoChatQA: modelo especializado en tareas de diálogo, especialmente enfocado en la respuesta generativa a preguntas en formato conversacional.
- RigoInstructChat: modelo con entrenamiento mixto para ambas tareas.
Con el fin de analizar el rendimiento de nuestros modelos y de compararlo con el de los modelos open source más importantes en castellano, hemos realizado experimentos con dos conjuntos de datos de respuesta generativa a preguntas, creados internamente en el IIC. El primero trata datos de seguros de vivienda, con contextos más cortos para cada pregunta, mientras que el segundo contiene casos clínicos de longitud mucho mayor.
Probamos los modelos sobre estos dos conjuntos de datos, generando respuestas para cada uno de los pares pregunta-respuesta del conjunto de test. Para evaluarlos, utilizamos , una métrica automática basada en modelos que va del 0% al 100% y que mide el nivel de similaridad semántica entre las respuestas ofrecidas por el modelo y las respuestas de referencia. Se trata de una métrica que tiene habitualmente una alta correlación con el juicio humano.
Además, con el fin de reducir el sesgo de cada uno de los modelos utilizados para calcular el SAS, se utilizan los siguientes modelos del Hub de HuggingFace, haciendo la media del SAS obtenido por: hiiamsid/sentence_similarity_spanish_es, sentence-transformers/paraphrase-multilingual-mpnet-base-v2 e intfloat/multilingual-e5-large. La elección de estos modelos se realiza tras un estudio detallado de la correlación entre el SAS utilizando cada uno de ellos y las anotaciones de veracidad generadas por nuestro equipo. A continuación, se muestran los resultados de dicha comparativa.
Modelo | Seguros Vivienda QA | Casos Clínicos QA | Media |
---|---|---|---|
GPT-4 | 69% | 73% | 71% |
RigoInstructChat | 66% | 73% | 69.5% |
RigoChatQA | 62% | 73% | 67.5% |
ChatGPT (GPT-3.5-turbo) | 63% | 71% | 67% |
RigoInstructChat-long | 56% | 77% | 66.5% |
MetaChat-70B | 63% | 61% | 62% |
RigoInstruct | 60% | 54% | 57% |
lince-mistral-7b-it-es | 59% | 58% | 58.5% |
lince-zero | 54% | 37% | 45.5% |
Tabla 1. Resultados en términos de Semantic Answer Similarity para todos los modelos probados con los datasets Seguros Vivienda QA y Casos Clínicos QA.
La evaluación revela resultados destacados para los modelos RigoChat en la tarea de Casos Clínicos QA, donde RigoInstructChat-long sobresale notablemente, incluso superando a GPT-4 con un SAS cercano a 0.8. En la tarea de Seguros Vivienda QA, GPT-4 se posiciona como el modelo líder, seguido de cerca por RigoInstructChat. Cabe destacar que, en general, los modelos de RigoChat presentan un rendimiento elevado en ambas tareas, con RigoInstructChat y RigoChatQA mostrando una eficacia particularmente alta. Es importante mencionar también el desempeño de meta-llama/Llama-2-70b-chat-hf (meta/MetaChat-70B) entre los modelos abiertos, destacando significativamente frente a los modelos lanzados por Clibrain, como lince-zero, que presentan métricas de SAS inferiores en comparación con los demás modelos.
Modelos de lenguaje adaptados e integrados
Como vemos, el rendimiento de la familia de modelos RigoChat en tareas de respuesta a preguntas en formato conversacional es muy destacado, siendo capaz de superar a GPT-3.5-turbo en ambas tareas y con resultados muy parecidos a GPT-4. En este sentido, lo que puede marcar la diferencia es que los modelos RigoChat fueron entrenados, entre otros datos, con los conjuntos de entrenamiento de los corpus de Seguro Vivienda QA y Casos Clínicos QA, a diferencia del resto de modelos, que se entrenaron con datos del mismo tipo, pero no del mismo corpus.
Esta es una de las ventajas que podemos ofrecer en el IIC. Como expertos en PLN y gracias a nuestro equipo multidisciplinar de data scientists y lingüistas computacionales, podemos alinear los modelos de lenguaje al dominio y a la tarea objetivos para que sean más eficientes. Además, a diferencia de otros proveedores como OpenAI, apostamos por que nuestros modelos puedan desplegarse en servidores on-premise, integrándose en las organizaciones que quieran darles uso y preservando así al máximo la confidencialidad y privacidad de sus datos.
Nuestro modelo de lenguaje generativo en español RigoChat, es una línea de trabajo en progreso, por lo que iremos publicando nuevos resultados y versiones de nuestros modelos de chat. Con RigoChat, aseguramos a nuestros clientes contar con los mejores modelos de lenguaje generativos en español, permitiendo así la resolución de tareas de generación de texto complejas y la implementación de chatbots, por ejemplo. Nuestro objetivo sigue siendo el de investigar y desarrollar herramientas y aplicaciones prácticas de PLN en nuestro idioma para todo tipo de organizaciones.