--- language: - es license: cc-by-sa-4.0 tags: - Paraguay - Culture - Custom Code - Guaraní - unsloth datasets: - somosnlp/dataset-cultura-guarani_corpus-it pipeline_tag: text-generation --- # Gua'a - Conoce la Cultura Guaraní

*En la mitología guarani: El padre de la sabiduria usaba un gua'a o loro para intentar comunicarse con su dios supremo Tupã. Haciendo la misma analogía creamos el modelo "gua-a" para difundir la cultura guarani a todos los hispanohablantes.* ## Tabla de Contenidos - [Gua'a - Conoce la Cultura Paraguaya](#model-description-) * [Detalles del modelo 📈](#model-description-) + [Descripción del modelo 📘](#model-description-) + [Características 📘](#model-description-) * [Usos 🛠️](#uses-) + [Uso directo 🎯](#direct-use-) * [Sesgos, Riesgos, y Limitaciones ⚠️](#bias-risks-and-limitations-) * [Como puedo empezar a utilizar el modelo 🚀](#how-to-get-started-with-the-model-) * [Cómo Contribuir](#environmental-impact) * [Licencia](#environmental-impact) * [Créditos](#environmental-impact) ## Detalles del modelo 📈 ### Descripción del modelo 📘 **gua-a** es un modelo de Inteligencia Artificial innovador enfocado específicamente en responder preguntas relacionadas a la cultura guaraní. Se basa en el finetuning del modelo *Mistral* de 7B de parámetros para la generación de respuestas. ### Características - **Generador LLM Mistral**: Emplea "unsloth/mistral-7b-bnb-4bit" un modelo de Unsloth, quantizado a 4-bits para generar respuestas concisa y contextualmente adecuadas basadas en las preguntas del usuario. - **Dataset Especializado**: Creamos un dataset exclusivo, corregido y centrado en la cultura guaraní, tomando como texto base el libro "Ñande Ypykuéra" de Narciso R. Colmán, asegurando respuestas precisas y culturalmente relevantes. - **Finetuning**: Se detallan los siguientes parametros de entrenamiento: - LoRA r = 64, target_modules = ["q_proj", "k_proj", "v_proj", "o_proj","gate_proj", "up_proj", "down_proj"], lora_alpha = 128, lora_dropout = 0, bias = "none", use_gradient_checkpointing = True, random_state = 42, use_rslora = False, loftq_config = None - Trainer per_device_train_batch_size = 2, gradient_accumulation_steps = 32, warmup_steps = 10, num_train_epochs = 5, learning_rate = 2e-4, fp16 = not torch.cuda.is_bf16_supported(), bf16 = torch.cuda.is_bf16_supported(), logging_steps = 1, optim = "adamw_8bit", weight_decay = 0.01, lr_scheduler_type = "linear", save_strategy="epoch", seed = 42, report_to="tensorboard" ## Usos 🛠️ A continuación compartimos algunos fragmentos de código sobre cómo empezar rápidamente a ejecutar el modelo. Primero asegúrate de instalar pip install -U transformers, luego copia el fragmento de la sección que sea relevante para tu caso de uso. ### Uso directo 🎯 El modelo responde directamente a las preguntas que haga, basandose en datos del libro "Ñande Ypykuéra". ## Sesgos, Riesgos, y Limitaciones ⚠️ El modelo **gua-a** es un modelo muy experimental, con poco tiempo de desarrollo. Las respuestas pueden ser imprecisas y de baja calidad. El libro utilizado por el modelo solo refleja parte de la cultura guaraní, limitandose a la visión del autor del libro. ## Como puedo empezar a utilizar el modelo 🚀 ### Realizar Inferencias 🎯 Obs: El modelo corre en GPUs simples como T4. ~5.7GB de GPU RAM. #### Running the model on a single / multi GPU ```python major_version, minor_version = torch.cuda.get_device_capability() # Must install separately since Colab has torch 2.2.1, which breaks packages !pip install "unsloth[colab-new] @ git+https://github.com/unslothai/unsloth.git" if major_version >= 8: # Use this for new GPUs like Ampere, Hopper GPUs (RTX 30xx, RTX 40xx, A100, H100, L40) !pip install --no-deps packaging ninja einops flash-attn xformers trl peft accelerate bitsandbytes else: # Use this for older GPUs (V100, Tesla T4, RTX 20xx) !pip install --no-deps xformers trl peft accelerate bitsandbytes pass from unsloth import FastLanguageModel import torch max_seq_length = 512 dtype = None load_in_4bit = True base_prompt = """Responde a preguntas de forma clara, amable, concisa y solamente en el lenguaje español, sobre el libro Ñande Ypykuéra. ### Pregunta: {} ### Respuesta: {}""" model, tokenizer = FastLanguageModel.from_pretrained( model_name = "somosnlp/gua-a", max_seq_length = max_seq_length, dtype = dtype, load_in_4bit = load_in_4bit, ) FastLanguageModel.for_inference(model) # Enable native 2x faster inference pregunta = "Quien es gua'a?" inputs = tokenizer([ft_prompt.format(pregunta,"",)], return_tensors = "pt").to("cuda") outputs = model.generate(**inputs, max_new_tokens = 128, temperature = 0.1, repetition_penalty=1.15) tokenizer.batch_decode(outputs[0][inputs["input_ids"].shape[1]:].unsqueeze(0), skip_special_tokens=True)[0] ``` ## Cómo Contribuir Estamos abiertos a contribuciones para mejorar aún más el modelo gua-a. =) Si estás interesado en: Ampliar el dataset creado Continuar el finetuning ## Licencia - gua-a-7b se ditribuye bajo la licencia **cc-by-sa-4.0**. ## Créditos - Desarrollado por **Enrique Paiva (https://huggingface.co/enpaiva)**. gua-a es el resultado de un esfuerzo para avanzar en el entendimiento y la apreciación de la cultura guaraní mediante la tecnología de IA. Agradecemos a todos los que han contribuido a este proyecto. - Daniel Cabrera - Leticia Bogado - Alberto Benítez - Emmanuel Para más información contactanos a través de aranduai.empresa@gmail.com