En este blog, estoy encantado de compartir ideas sobre el enfoque meticuloso que emprendimos para entrenar la base de Amabri (Cognitive-Lab/Ambari-7B-Instructo-V0.1) y Amabri Instruye (Cognitive-Lab/Amarari-7B-Instructo-V0.1). Al ofrecer una visión de alto nivel en nuestro proceso, esta narración sirve como precursor de la próxima revelación de todos los detalles técnicos: la culminación de pruebas y evaluación extensas. Estén atentos mientras desentrañamos las complejidades que condujeron a la creación de Amabri, un innovador modelo de lenguaje grande bilingüe de origen abierto.
Propósito detrás de Amabri
En el panorama dinámico de los modelos de idiomas grandes (LLM), la creación de Amabri surgió de un propósito multifacético:
A medida que los LLM impregnan cada vez más el uso de la corriente principal, los modelos de código abierto, aunque enriquecidos en el conocimiento mundial, emergen predominantemente de la capacitación centrada en inglés. Amabri sirve como una iniciativa pionera para ampliar este alcance y adaptar LLM a diversos idiomas.
En el panorama en evolución de los LLM, la demanda de grandes cantidades de datos de entrenamiento, que van desde 1 billón a 10 billones de tokens, se ha convertido en una norma. Sin embargo, esto plantea un desafío para los idiomas con recursos documentados limitados. En nuestra búsqueda, nos centramos en la adaptación de un LLM previamente capacitado, como Llama/Mistral, para comprender los matices de un nuevo idioma: Kannada en el caso de Amabri. A pesar de que Kannada no se clasificó como un lenguaje de muy bajo recurso, sirvió como un candidato ideal para probar nuestras hipótesis y metodologías. Definición rigurosa de las etapas de entrenamiento y finecing, establecemos un límite de mil millones de tokens de entrenamiento para todo el proceso.
Posteriormente, creamos meticulosamente conjuntos de datos, los distribuimos en consecuencia y delineamos las etapas de nuestro proceso:
Este enfoque deliberado sentó las bases para el desarrollo de Amabri, empujando los límites de la adaptabilidad del lenguaje dentro del ámbito de las LLM.
La tokenización, un componente crítico en la eficiencia de los modelos de lenguaje, planteó un desafío único para el texto de Kannada dentro del contexto de LLM de código abierto. Muchos modelos existentes recurren de manera ineficiente a la tokenización a nivel de personaje, especialmente durante la inferencia, afectando el rendimiento general. Para abordar esto, desarrollamos un modelo de tokenización especializado para el texto de Kannada utilizando oraciones. Este modelo se integró perfectamente con el tokenizador Base Llama, lo que resultó en un vocabulario integral de 49,600, expandido en 17,600.
Nuestro enfoque implicó capacitar al modelo de tokenizador en tres tamaños de conjuntos de datos diferentes, revelando resultados óptimos con un conjunto de datos que comprende 100,000 tokens. A medida que evolucionamos Amabri, la próxima iteración contará con una estrategia de tokenización refinada, empleando un tamaño de vocabulario reducido de 48,000. Este ajuste, validado por las ideas compartidas por Andrej Karpathy en su publicación de Twitter (Andrej Karpathy en Twitter), está orientado a mejorar la eficiencia general.
¿Tienes curiosidad por explorar las ganancias de eficiencia de primera mano? Puede probar el tokenizador en acción aquí.
Pre-entrenamiento
Con un tokenizador eficiente en su lugar, nuestro próximo paso crucial fue la fase de pre-entrenamiento, dirigida a familiarizar el modelo con el vocabulario recién enriquecido. Para optimizar este proceso, seleccionamos un conjunto de datos integral de diversas fuentes. En particular, exploramos dos enfoques distintos durante esta fase: la capacitación de presentación con LORA y entrenando completamente el modelo. Esta decisión estratégica se derivó de nuestro deseo de discernir el camino óptimo para el desarrollo de Amabri.
En breve se dará a conocer una comparación detallada entre estas metodologías, pero hemos obtenido algunas observaciones iniciales:
Si bien reconocemos que nuestras pruebas en curso pueden refinar estas observaciones, esta instantánea proporciona información valiosa sobre nuestro progreso. La fase de pre-entrenamiento empleó un grupo de GPU 2xA100, que tomó aproximadamente 25 horas para la capacitación de peso completo en un corpus sustancial que comprende 500 millones de tokens.
Vale la pena mencionar que los pesos del modelo completamente ajustado ahora están disponibles en la cara abrazada. -https://huggingface.co/cognitive-lab/ambari-7b-base-v0.1, contribuyendo al intercambio de conocimientos de código abierto dentro de la comunidad.
Predicción bilingüe de la siguiente ficha
Esta fase, inspirada en la serie Open Hathi de Sarvam.ai, fue una adición no planificada pero fundamental a nuestra estrategia de entrenamiento. Creando un conjunto de datos de 200,000 tokens, utilizamos Lora para ajustar, con el objetivo de equipar el modelo con una mejor comprensión del lenguaje. A medida que avanzamos, nuestro enfoque cambió hacia inculcar el "conocimiento mundial" en Kannada. Dada la escasez de contenido de Kannada, especialmente en comparación con el inglés, recurrimos a la traducción. Aprovechando indictrans2, traducimos contenido en inglés, procedente principalmente de Wikipedia, a Kannada. Sin embargo, en lugar de la predicción monolingüe monolingüe convencional siguiente, introdujimos un enfoque innovador: la predicción bilingüe de la siguiente token. Alternando oraciones entre Kannada e English, este método obligó al modelo a atender de manera cruzada a la información durante la predicción de la próxima token. Este enfoque matizado no solo fomentó una mayor alineación entre kannada e inglés, sino también la exposición naturalmente equilibrada a hindi e fichas inglesas durante el entrenamiento. Esta etapa agregó una capa adicional de sofisticación al viaje de entrenamiento de Amabri.
Traducción Finetuning
La intención detrás de esta fase era establecer una relación coherente entre el inglés y los tokens kannada correspondientes. Empleando la adaptación de bajo rango para el ajuste fino, encontramos algunos desafíos, especialmente con la decisión de usar un valor de muy bajo rango, que resultó menos efectivo. Con un tamaño de conjunto de datos de 100,000 tokens, esta etapa presentó limitaciones, y reconocemos la necesidad de mejoras. A medida que refinamos este aspecto del proceso de capacitación, nuestro compromiso de mejorar las capacidades bilingües de Amabri sigue siendo inquebrantable.
Instrucción bilingüe ajustado
En esta etapa fundamental, empleamos un ajuste fino supervisado con una adaptación de bajo rango para moldear la capacidad de respuesta del modelo. Adoptar una estructura de plantilla de chat que consiste en indicaciones/instrucciones del usuario y respuestas correspondientes, nos aventuramos en el ámbito del instrucciones bilingües. Este enfoque implicó capacitar al modelo para responder con precisión en inglés o kannada en función del idioma especificado en el indicador del usuario o la instrucción.
Plantilla de chat
< | user | >
{user prompt / instruction}
< | endoftext | >
< | assistant | >
{response}
< | endoftext | >Por ejemplo, dado un mensaje de usuario como
"Dame 10 consejos de estudio en Kannada",
Respuesta
El modelo genera sin problemas una respuesta en Kannada, manteniendo la coherencia lingüística. Para enriquecer el proceso de capacitación, amalgamamos varios conjuntos de datos de instrucciones, incluidos instructos de alpaca, instrucción Dolly y más. Aprovechando las API de traducción como Google, Azure y una implementación personalizada del modelo indicTrans2 de Ai4bharat, creamos un conjunto de datos de instrucciones bilingües integrales.
El conjunto de datos, ahora disponible públicamente en abrazar la cara aquí, abarca diversos escenarios lingüísticos. Durante la capacitación, implementamos un ajuste fino supervisado con cuatro representaciones distintas:
Este enfoque meticuloso no solo familiarizó el modelo con la respuesta en diferentes idiomas, sino que también sentó las bases para dominar varias tareas interlingües.
Se puede acceder a los pesos de este modelo finamente ajustado en la cara abrazada, y para una experiencia práctica, puede explorar la versión cuantificada de 4 bits en chat.cognitiveLab.in.
En la fase culminante de nuestro refinamiento modelo, profundizamos en el mundo de la optimización directa de preferencias (DPO). Esta elección estratégica, inspirada en el éxito observado en varios modelos de código abierto, dirigió no solo a alinear nuestro modelo sino también para impulsar mejoras en los puntos de referencia. En embarque en este viaje experimental, aprovechamos el conjunto de datos antrópico/HH-RLHF. Traduciéndolo a Kannada, sometimos el modelo a ajuste fino DPO, que actualmente se sometió a una evaluación integral para medir su impacto en el rendimiento.
Alcance de la mejora
Es crucial tener en cuenta que los modelos proporcionados en este marco no han sufrido desintoxicación. Si bien muestran impresionantes capacidades lingüísticas, existe un potencial para generar contenido que pueda considerarse dañino u ofensivo. Se recomienda encarecidamente a los usuarios que ejerceran discreción y controlen de cerca los resultados del modelo, especialmente en aplicaciones públicas o sensibles.
Agradecemos contribuciones a mejorar y ampliar este proyecto. Si tiene sugerencias o mejoras, abra un problema o envíe una solicitud de extracción.
Este proyecto tiene licencia bajo la licencia GNU GPL V3.0. Para obtener más detalles, consulte el archivo License.md.
IMPORTANTE: La licencia GPL 3.0 se aplica únicamente al código fuente y los conjuntos de datos proporcionados en este repositorio. Como indic-llm es un derivado del modelo de Llama 2 de Meta, está sujeto a la licencia original de Llama 2, que no puede ser alterada. Por lo tanto, para obtener detalles completos sobre la licencia del modelo, consulte el archivo de licencia LLAMA2.
Este repositorio se inspira en los siguientes repositorios: