Update README.md
Browse files
README.md
CHANGED
@@ -6,12 +6,13 @@ tags:
|
|
6 |
- Paraguay
|
7 |
- Culture
|
8 |
- Custom Code
|
|
|
9 |
datasets:
|
10 |
-
- somosnlp/
|
11 |
pipeline_tag: text-generation
|
12 |
---
|
13 |
|
14 |
-
# Gua'a - Conoce la Cultura
|
15 |
|
16 |
<p align="center">
|
17 |
<img src="https://cdn-uploads.huggingface.co/production/uploads/65f4605f4c2a1312c4d0a4b2/SfnV8yd8Zfp3dtFhX6HV1.png" style="width: 25%;">
|
@@ -27,7 +28,6 @@ pipeline_tag: text-generation
|
|
27 |
+ [Características 📘](#model-description-)
|
28 |
* [Usos 🛠️](#uses-)
|
29 |
+ [Uso directo 🎯](#direct-use-)
|
30 |
-
+ [Temas relacionados 🎯](#direct-use-)
|
31 |
* [Sesgos, Riesgos, y Limitaciones ⚠️](#bias-risks-and-limitations-)
|
32 |
* [Como puedo empezar a utilizar el modelo 🚀](#how-to-get-started-with-the-model-)
|
33 |
* [Cómo Contribuir](#environmental-impact)
|
@@ -38,17 +38,40 @@ pipeline_tag: text-generation
|
|
38 |
|
39 |
### Descripción del modelo 📘
|
40 |
|
41 |
-
**gua-a** es un modelo de Inteligencia Artificial innovador enfocado específicamente en responder preguntas relacionadas a la cultura
|
42 |
-
|
43 |
-
para la generación de respuestas precisas y contextuales. Ademas almacena y recupera documentos de texto directamente en tensores,
|
44 |
-
lo que facilita una integración fluida y eficiente entre los componentes de recuperación y generación de texto.
|
45 |
|
46 |
### Características
|
47 |
|
48 |
-
- **
|
49 |
-
- **
|
50 |
-
- **
|
51 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
52 |
|
53 |
## Usos 🛠️
|
54 |
|
@@ -58,86 +81,84 @@ A continuación compartimos algunos fragmentos de código sobre cómo empezar r
|
|
58 |
|
59 |
El modelo responde directamente a las preguntas que haga, basandose en datos del libro <ins>"Ñande Ypykuéra"</ins>.
|
60 |
|
61 |
-
### Temas relacionados 🎯
|
62 |
-
|
63 |
-
El modelo extrae directamente preguntas y respuestas precargados en el dataset, basandose en datos del libro <ins>"Ñande Ypykuéra"</ins>.
|
64 |
-
|
65 |
## Sesgos, Riesgos, y Limitaciones ⚠️
|
66 |
|
67 |
El modelo **gua-a** es un modelo muy experimental, con poco tiempo de desarrollo. Las respuestas pueden ser imprecisas y de baja calidad.
|
68 |
El libro utilizado por el modelo solo refleja parte de la cultura guaraní, limitandose a la visión del autor del libro.
|
69 |
|
70 |
-
|
71 |
## Como puedo empezar a utilizar el modelo 🚀
|
72 |
|
73 |
-
###
|
74 |
|
75 |
-
Obs: El modelo corre en GPUs simples como T4. ~
|
76 |
|
77 |
#### Running the model on a single / multi GPU
|
78 |
|
79 |
```python
|
80 |
-
# pip install accelerate
|
81 |
-
# pip install bitsandbytes
|
82 |
-
# pip install einops
|
83 |
|
84 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
85 |
|
86 |
-
|
87 |
-
|
|
|
|
|
|
|
88 |
|
89 |
-
|
90 |
-
input_ids = tokenizer.encode(input_text)
|
91 |
-
|
92 |
-
outputs = model.generate(input_ids, k=3, max_new_tokens=512) # k: número de documentos recuperados
|
93 |
-
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
|
94 |
-
```
|
95 |
|
|
|
|
|
96 |
|
97 |
-
###
|
|
|
98 |
|
99 |
-
|
|
|
|
|
|
|
|
|
|
|
100 |
|
101 |
-
|
102 |
|
103 |
-
|
104 |
-
# pip install accelerate
|
105 |
-
# pip install bitsandbytes
|
106 |
-
# pip install einops
|
107 |
|
108 |
-
|
109 |
|
110 |
-
|
111 |
-
model = AutoModelForCausalLM.from_pretrained("somosnlp/gua-a", trust_remote_code=True).to('cuda')
|
112 |
|
113 |
-
|
114 |
-
input_ids = tokenizer.encode(input_text)
|
115 |
|
116 |
-
top_texts = model.document_extractor(input_ids, k=5) # k: número de documentos recuperados
|
117 |
-
print([tokenizer.decode(text, skip_special_tokens=True) for text in top_texts])
|
118 |
```
|
119 |
|
120 |
## Cómo Contribuir
|
121 |
|
122 |
-
Estamos abiertos a contribuciones para mejorar aún más
|
123 |
|
124 |
-
|
125 |
-
|
126 |
-
Probar nuevos modelos de recuperación y generación.
|
127 |
|
128 |
-
Por favor, consulta nuestra guía de contribución o ponte en contacto directamente a través de los Issues en GitHub
|
129 |
|
130 |
|
131 |
## Licencia
|
132 |
|
133 |
-
-
|
134 |
-
- gua-a-2b se ditribuye bajo la licencia **cc-by-sa-4.0**.
|
135 |
|
136 |
## Créditos
|
137 |
|
138 |
- Desarrollado por **Enrique Paiva (https://huggingface.co/enpaiva)**.
|
139 |
|
140 |
-
gua-a es el resultado de un esfuerzo para avanzar en el entendimiento y la apreciación de la cultura
|
141 |
Agradecemos a todos los que han contribuido a este proyecto.
|
142 |
- Daniel Cabrera
|
143 |
- Leticia Bogado
|
|
|
6 |
- Paraguay
|
7 |
- Culture
|
8 |
- Custom Code
|
9 |
+
- Guaraní
|
10 |
datasets:
|
11 |
+
- somosnlp/dataset-cultura-guarani_corpus-it
|
12 |
pipeline_tag: text-generation
|
13 |
---
|
14 |
|
15 |
+
# Gua'a - Conoce la Cultura Guaraní
|
16 |
|
17 |
<p align="center">
|
18 |
<img src="https://cdn-uploads.huggingface.co/production/uploads/65f4605f4c2a1312c4d0a4b2/SfnV8yd8Zfp3dtFhX6HV1.png" style="width: 25%;">
|
|
|
28 |
+ [Características 📘](#model-description-)
|
29 |
* [Usos 🛠️](#uses-)
|
30 |
+ [Uso directo 🎯](#direct-use-)
|
|
|
31 |
* [Sesgos, Riesgos, y Limitaciones ⚠️](#bias-risks-and-limitations-)
|
32 |
* [Como puedo empezar a utilizar el modelo 🚀](#how-to-get-started-with-the-model-)
|
33 |
* [Cómo Contribuir](#environmental-impact)
|
|
|
38 |
|
39 |
### Descripción del modelo 📘
|
40 |
|
41 |
+
**gua-a** es un modelo de Inteligencia Artificial innovador enfocado específicamente en responder preguntas relacionadas a la cultura guaraní.
|
42 |
+
Se basa en el finetuning del modelo *Mistral* de 7B de parámetros para la generación de respuestas.
|
|
|
|
|
43 |
|
44 |
### Características
|
45 |
|
46 |
+
- **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.
|
47 |
+
- **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.
|
48 |
+
- **Finetuning**: Se detallan los siguientes parametros de entrenamiento:
|
49 |
+
|
50 |
+
LoRA
|
51 |
+
r = 64,
|
52 |
+
target_modules = ["q_proj", "k_proj", "v_proj", "o_proj","gate_proj", "up_proj", "down_proj"],
|
53 |
+
lora_alpha = 128,
|
54 |
+
lora_dropout = 0,
|
55 |
+
bias = "none",
|
56 |
+
use_gradient_checkpointing = True,
|
57 |
+
random_state = 42,
|
58 |
+
use_rslora = False,
|
59 |
+
loftq_config = None,
|
60 |
+
Trainer
|
61 |
+
per_device_train_batch_size = 2,
|
62 |
+
gradient_accumulation_steps = 32,
|
63 |
+
warmup_steps = 10,
|
64 |
+
num_train_epochs = 5,
|
65 |
+
learning_rate = 2e-4,
|
66 |
+
fp16 = not torch.cuda.is_bf16_supported(),
|
67 |
+
bf16 = torch.cuda.is_bf16_supported(),
|
68 |
+
logging_steps = 1,
|
69 |
+
optim = "adamw_8bit",
|
70 |
+
weight_decay = 0.01,
|
71 |
+
lr_scheduler_type = "linear",
|
72 |
+
save_strategy="epoch",
|
73 |
+
seed = 42,
|
74 |
+
report_to="tensorboard",
|
75 |
|
76 |
## Usos 🛠️
|
77 |
|
|
|
81 |
|
82 |
El modelo responde directamente a las preguntas que haga, basandose en datos del libro <ins>"Ñande Ypykuéra"</ins>.
|
83 |
|
|
|
|
|
|
|
|
|
84 |
## Sesgos, Riesgos, y Limitaciones ⚠️
|
85 |
|
86 |
El modelo **gua-a** es un modelo muy experimental, con poco tiempo de desarrollo. Las respuestas pueden ser imprecisas y de baja calidad.
|
87 |
El libro utilizado por el modelo solo refleja parte de la cultura guaraní, limitandose a la visión del autor del libro.
|
88 |
|
|
|
89 |
## Como puedo empezar a utilizar el modelo 🚀
|
90 |
|
91 |
+
### Realizar Inferencias 🎯
|
92 |
|
93 |
+
Obs: El modelo corre en GPUs simples como T4. ~5.7GB de GPU RAM.
|
94 |
|
95 |
#### Running the model on a single / multi GPU
|
96 |
|
97 |
```python
|
|
|
|
|
|
|
98 |
|
99 |
+
major_version, minor_version = torch.cuda.get_device_capability()
|
100 |
+
# Must install separately since Colab has torch 2.2.1, which breaks packages
|
101 |
+
!pip install "unsloth[colab-new] @ git+https://github.com/unslothai/unsloth.git"
|
102 |
+
if major_version >= 8:
|
103 |
+
# Use this for new GPUs like Ampere, Hopper GPUs (RTX 30xx, RTX 40xx, A100, H100, L40)
|
104 |
+
!pip install --no-deps packaging ninja einops flash-attn xformers trl peft accelerate bitsandbytes
|
105 |
+
else:
|
106 |
+
# Use this for older GPUs (V100, Tesla T4, RTX 20xx)
|
107 |
+
!pip install --no-deps xformers trl peft accelerate bitsandbytes
|
108 |
+
pass
|
109 |
|
110 |
+
from unsloth import FastLanguageModel
|
111 |
+
import torch
|
112 |
+
max_seq_length = 512
|
113 |
+
dtype = None
|
114 |
+
load_in_4bit = True
|
115 |
|
116 |
+
base_prompt = """Responde a preguntas de forma clara, amable, concisa y solamente en el lenguaje español, sobre el libro Ñande Ypykuéra.
|
|
|
|
|
|
|
|
|
|
|
117 |
|
118 |
+
### Pregunta:
|
119 |
+
{}
|
120 |
|
121 |
+
### Respuesta:
|
122 |
+
{}""
|
123 |
|
124 |
+
model, tokenizer = FastLanguageModel.from_pretrained(
|
125 |
+
model_name = "somosnlp/gua-a",
|
126 |
+
max_seq_length = max_seq_length,
|
127 |
+
dtype = dtype,
|
128 |
+
load_in_4bit = load_in_4bit,
|
129 |
+
)
|
130 |
|
131 |
+
FastLanguageModel.for_inference(model) # Enable native 2x faster inference
|
132 |
|
133 |
+
pregunta = "Quien es gua'a?"
|
|
|
|
|
|
|
134 |
|
135 |
+
inputs = tokenizer([ft_prompt.format(pregunta,"",)], return_tensors = "pt").to("cuda")
|
136 |
|
137 |
+
outputs = model.generate(**inputs, max_new_tokens = 128, temperature = 0.1, repetition_penalty=1.15)
|
|
|
138 |
|
139 |
+
tokenizer.batch_decode(outputs[0][inputs["input_ids"].shape[1]:].unsqueeze(0), skip_special_tokens=True)[0]
|
|
|
140 |
|
|
|
|
|
141 |
```
|
142 |
|
143 |
## Cómo Contribuir
|
144 |
|
145 |
+
Estamos abiertos a contribuciones para mejorar aún más el modelo gua-a. =) Si estás interesado en:
|
146 |
|
147 |
+
Ampliar el dataset creado
|
148 |
+
Continuar el finetuning
|
|
|
149 |
|
150 |
+
Por favor, consulta nuestra guía de contribución o ponte en contacto directamente a través de los Issues en GitHub
|
151 |
|
152 |
|
153 |
## Licencia
|
154 |
|
155 |
+
- gua-a-7b se ditribuye bajo la licencia **cc-by-sa-4.0**.
|
|
|
156 |
|
157 |
## Créditos
|
158 |
|
159 |
- Desarrollado por **Enrique Paiva (https://huggingface.co/enpaiva)**.
|
160 |
|
161 |
+
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.
|
162 |
Agradecemos a todos los que han contribuido a este proyecto.
|
163 |
- Daniel Cabrera
|
164 |
- Leticia Bogado
|