Cara abrazada | Preimpresión | Papel | Manifestación

Los modelos de idiomas grandes (LLM) tienen un procesamiento de lenguaje natural significativamente avanzado, pero su progreso aún no ha sido igual en todos los idiomas. Mientras que la mayoría de los LLM están entrenados en idiomas de alta recursos como el inglés, los modelos multilingües generalmente tienen un rendimiento monolingüe. Además, los aspectos de su base multilingüe a veces restringen los subproductos que producen, como las demandas computacionales y los regímenes de licencia. En este estudio, documentamos el desarrollo de modelos de fundación abierta adaptados para su uso en entornos de baja recursos, sus limitaciones y sus beneficios. Esta es la pareja Teenytinyllama : dos modelos compactos para la generación de texto portugués brasileño. Los liberamos bajo la licencia Permisive Apache 2.0 en Github y abrazamos a Face para uso de la comunidad y un mayor desarrollo.
El uso principal previsto de TeenyTinyllama es investigar los desafíos relacionados con el desarrollo de modelos de idiomas para idiomas de baja recursos. Los puntos de control guardados durante el entrenamiento están destinados a proporcionar una configuración controlada para realizar experimentos científicos. También puede ajustar y adaptar aún más TeenyTinyllama para su implementación, siempre que su uso siga la licencia Apache 2.0. Si decide usar TeenyTinyllama previamente capacitado como base para su modelo ajustado, realice su propia evaluación de riesgo y sesgo.
Teenytinyllama no está destinado a la implementación. No es un producto y no debe usarse para interacciones orientadas a los humanos.
Los modelos Teenytinyllama son solo un idioma portugués brasileño y no son adecuados para traducción o generación de texto en otros idiomas.
Teenytinyllama no ha sido ajustado para contextos aguas abajo en los que los modelos de idiomas se implementan comúnmente.
Al igual que casi todos los otros modelos de lenguaje capacitados en grandes conjuntos de datos de texto raspados de la web, el par TTL exhibió un comportamiento que no los convierte en una solución fuera de la caja para muchas aplicaciones del mundo real, especialmente aquellas que requieren una generación de texto objetiva, confiable y no tóxica. Nuestros modelos están sujetos a los siguientes:
Alucinaciones: este modelo puede producir contenido que puede confundirse con la verdad pero que, de hecho, es engañoso o completamente falso, es decir, alucinación.
Sesgos y toxicidad: este modelo hereda los estereotipos sociales e históricos de los datos utilizados para entrenarlo. Dados estos sesgos, el modelo puede producir contenido tóxico, es decir, dañino, ofensivo o perjudicial para individuos, grupos o comunidades.
Código poco confiable: el modelo puede producir fragmentos y declaraciones de código incorrectos. Estas generaciones de código no deben tratarse como sugerencias o soluciones precisas.
Limitaciones del idioma: el modelo está diseñado principalmente para comprender el portugués brasileño estándar. Otros idiomas podrían desafiar su comprensión, lo que lleva a posibles malas interpretaciones o errores en respuesta.
Repetición y verbosidad: el modelo puede atascarse en los bucles de repetición (especialmente si la penalización de repetición durante las generaciones se establece en un valor exiguo) o producir respuestas detalladas no relacionadas con el mensaje que se le dio.
Por lo tanto, a pesar de que nuestros modelos se lanzan con una licencia permisiva, instamos a los usuarios a realizar su análisis de riesgos en estos modelos si tienen la intención de usarlos para aplicaciones del mundo real y también tienen a los humanos moderando las salidas de estos modelos en aplicaciones donde interactuarán con una audiencia, garantizando que los usuarios siempre sean conscientes de que interactúan con un modelo de idioma.
Este repositorio contiene el código fuente utilizado para entrenar nuestros modelos. Creamos todas nuestras implementaciones de código utilizando las bibliotecas vinculadas al ecosistema facial de abrazos, es decir, transformadores, conjuntos de datos, tokenizers y acelerados, que permiten una fácil reproducibilidad, adaptación y mayor escala. Nuestros scripts de entrenamiento y evaluación siguen una estructura estándar de Pytorch, mientras utilizamos el codecarbono y los pesos y los sesgos para rastrear nuestros experimentos.
Todos los requisitos se enumeran en el archivo requisitos. Txt (Versión de Python: 3.10.12).
Pre-capitán: la carpeta de pre-entrenamiento contiene dos scripts principales: pre-training.py y train-sentencepiece.py . Estos scripts se usaron para entrenar tanto el tokenizador de sentencia y los modelos. Puede encontrar más información sobre cómo ejecutarlos aquí.
Autorización: la carpeta de ajuste fino contiene el script supervised-fine-tuning.py . Este script se utiliza para ajustar la versión de 460m de nuestros modelos en el conjunto de datos Instruct-Aira versión 2.0. Puede encontrar más información sobre cómo ejecutarlos aquí.
Evaluación: la carpeta de evaluación contiene los resultados de nuestras evaluaciones (eval.md). También contiene un script evaluation.py para permitirle evaluar cualquiera de los puntos de control de nuestros modelos o modelos que puede venir a entrenar. El cuaderno lm-evaluation-harness-pt.ipynb muestra cómo evaluar un modelo en la versión Laiviet de la LM-Evaluation-Harness . Puede encontrar más información sobre cómo ejecutarlos aquí. Las evaluaciones en puntos de referencia portugueses están disponibles en la carpeta nueva EVAL.
Utilidades: la carpeta de utilidades contiene algunos scripts auxiliares (más información disponible aquí):
chinchilla-estimation.py le ayuda a estimar el tamaño del conjunto de datos con respecto al tamaño del modelo, utilizando el papel de chinchilla como referencia.quantize.py realizará cuantización AWQ de 4 bits en los modelos.tokenize-dataset.py creará una versión tokenizada de un conjunto de datos de texto y lo cargará en el centro de abrazadera. En la carpeta img , encontrará una subcarpeta llamada logs and plots . En él, puede encontrar todos los registros y gráficos (y el script utilizado para hacer las parcelas) que usamos en nuestra preimpresión.
@misc{correa24ttllama,
title = {TeenyTinyLlama: open-source tiny language models trained in Brazilian Portuguese},
author = {Corr{ ^ e}a, Nicholas Kluge and Falk, Sophia and Fatimah, Shiza and Sen, Aniket and De Oliveira, Nythamar},
journal={arXiv preprint arXiv:2401.16640},
year={2024}
}
@misc{correa24ttllama,
doi = {10.1016/j.mlwa.2024.100558},
url = {https://www.sciencedirect.com/science/article/pii/S2666827024000343},
title = {TeenyTinyLlama: open-source tiny language models trained in Brazilian Portuguese},
author = {Corr{ ^ e}a, Nicholas Kluge and Falk, Sophia and Fatimah, Shiza and Sen, Aniket and De Oliveira, Nythamar},
journal={Machine Learning With Applications},
publisher = {Springer},
year={2024}
}Esta investigación fue financiada por Raies (Rede de Inteligência artificial ética e Segura). Raies es un proyecto respaldado por Fapergs (Fundação de Amparo à Pesquisa do Estado do Rio Grande do Sul) y CNPQ (conselho nacional de desenvolvimento cientyfico e tecnológico).
Teenytinyllama tiene licencia bajo la licencia Apache, versión 2.0. Consulte el archivo de licencia para obtener más detalles.