|
--- |
|
language: |
|
- es |
|
license: cc-by-sa-4.0 |
|
tags: |
|
- Paraguay |
|
- Culture |
|
- Custom Code |
|
- Guaraní |
|
datasets: |
|
- somosnlp/dataset-cultura-guarani_corpus-it |
|
pipeline_tag: text-generation |
|
--- |
|
|
|
# Gua'a - Conoce la Cultura Guaraní |
|
|
|
<p align="center"> |
|
<img src="https://cdn-uploads.huggingface.co/production/uploads/65f4605f4c2a1312c4d0a4b2/SfnV8yd8Zfp3dtFhX6HV1.png" style="width: 25%;"> |
|
</p> |
|
|
|
*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 <ins>"unsloth/mistral-7b-bnb-4bit"</ins> 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 <ins>"Ñande Ypykuéra" de Narciso R. Colmán</ins>, 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 <ins>"Ñande Ypykuéra"</ins>. |
|
|
|
## 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 |
|
|
|
Por favor, consulta nuestra guía de contribución o ponte en contacto directamente a través de los Issues en GitHub |
|
|
|
|
|
## 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 <ins>[email protected]</ins> |