File size: 13,092 Bytes
09c8e2e aa96554 892a4b7 4ff7d0e 892a4b7 aa96554 892a4b7 09c8e2e 892a4b7 09c8e2e 892a4b7 3e4f34b 4e4650a 892a4b7 a3ccf54 09c8e2e 892a4b7 09c8e2e 892a4b7 09c8e2e 892a4b7 641c520 892a4b7 09c8e2e 892a4b7 641c520 09c8e2e 892a4b7 09c8e2e 892a4b7 641c520 6911e06 641c520 09c8e2e 641c520 09c8e2e 892a4b7 09c8e2e 892a4b7 641c520 6911e06 641c520 892a4b7 09c8e2e 641c520 4d89b84 641c520 09c8e2e 5b21968 2a40aad 109d313 e5d633c 109d313 e5d633c 109d313 1baa3cc a3ccf54 53cfc34 a3ccf54 45eee66 43ef0bf 1baa3cc 892a4b7 09c8e2e 892a4b7 09c8e2e 892a4b7 b790867 892a4b7 09c8e2e 892a4b7 09c8e2e 892a4b7 09c8e2e 3e4f34b 892a4b7 09c8e2e 892a4b7 09c8e2e 3e4f34b 892a4b7 3e4f34b 892a4b7 4ff7d0e |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 |
---
language:
- pt
license: apache-2.0
tags:
- text-generation-inference
- portuguese
- version:0.1
datasets:
- rhaymison/questions_answers_geo_nord
base_model: mistralai/Mistral-7B-Instruct-v0.1
pipeline_tag: text-generation
model-index:
- name: opus-en-to-pt-translate
results: []
---
<!-- This model card has been generated automatically according to the information the Trainer had access to. You
should probably proofread and complete it, then remove this comment. -->
<p align="center">
<img src="https://raw.githubusercontent.com/rhaymisonbetini/huggphotos/main/7.webp" alt="Bode Logo" width="100%" style="margin-left:'auto' margin-right:'auto' display:'block'"/>
</p>
updated: 09-03-2024
# index
- Description
- How to Use
- 4 bits
- Langchain chat memory (Amazing!!)
- Training hyperparameters
## Model description
The Cuscuz 7b is a model derived from a fine tuning of the Mixtral 7b. This model was tuned to be specialized in the Northeast region of Brazil.
The model was specialized in a dataset that covered historical, geographical, economic, cultural and culinary issues in the northeast region.
To make better use of the Cuscuz, the ideal is to use the model without quantization.
## How to Use
```python
!pip install -q -U transformers
!pip install -q -U accelerate
!pip install -q -U bitsandbytes
```
```python
from transformers import AutoModelForCausalLM, AutoTokenizer, TextStreamer
model = AutoModelForCausalLM.from_pretrained("rhaymison/cuscuz-7b", device_map= {"": 0})
tokenizer = AutoTokenizer.from_pretrained("rhaymison/cuscuz-7b")
#8bits
#model = AutoModelForCausalLM.from_pretrained("rhaymison/cuscuz-7b", load_in_8bit=True, device_map= {"": 0})
model.eval()
```
```python
runtimeFlag = "cuda:0"
inputs = tokenizer([f"""<s>Você é um assistente especializado no Nordeste Do Brasil.
Responda sempre com informações verdadeiras e caso não saiba a informação diga ao usuário que não sabe.
Evite repetições de informação e responda de maneira coerente.
[INST] Me conte sobre o prato tipico chamado Cuscuz que é consumido no Nordeste ?[/INST]"""], return_tensors="pt").to(runtimeFlag)
```
```python
streamer = TextStreamer(tokenizer, skip_prompt=True, skip_special_tokens=True)
_ = model.generate(**inputs, streamer=streamer, max_new_tokens=200)
#O Cuscuz é um prato típico do Nordeste, feito a partir de flocos de milho ou trigo cozidos no vapor, podendo ser servido com manteiga, leite, queijo, mermelada, mel ou frutas.
#Ele é muito apreciado na culinária nordestina e presente em diversas mesas.
```
```python
runtimeFlag = "cuda:0"
inputs = tokenizer([f"""<s>Você é um assistente especializado no Nordeste Do Brasil.
Responda sempre com informações verdadeiras e caso não saiba a informação diga ao usuário que não sabe.
Evite repetições de informação e responda de maneira coerente.
[INST] Me conte sobre a economia da Bahia [/INST]"""], return_tensors="pt").to(runtimeFlag)
```
```python
streamer = TextStreamer(tokenizer, skip_prompt=True, skip_special_tokens=True)
_ = model.generate(**inputs, streamer=streamer, max_new_tokens=200, temperature=0.1)
#A Bahia possui uma economia diversificada, com destaque para a produção de cacau, a indústria petroquímica, o turismo e a mineração.
#O estado é um dos maiores produtores de cacau do Brasil e possui um polo industrial de grande relevância, com a presença de importantes empresas multinacionais. O turismo também é uma importante fonte de receita para a Bahia, com destaque para suas praias e patrimônio histórico.
#A mineração, especialmente de minério de ferro e de ouro, também desempenha um papel significativo na economia do estado.
```
### If you want, you can also ask the model to behave like someone from the region so that it presents linguistic traits from the Northeast of Brazil.
```python
runtimeFlag = "cuda:0"
inputs = tokenizer([f"""<s>Você é um assistente especializado no Nordeste Do Brasil.
Responde sempre com informações verdadeiras e caso não saiba a informação diga ao usuário que não sabe.
Evite repetições de informação e responda de maneira coerente.
Você responde sempre como se fosse alguem do Nordeste com um sotaque Nordestino.
[INST] Me fale um pouco sobre a histório de Pernambuco ?[/INST]"""], return_tensors="pt").to(runtimeFlag)
```
```python
streamer = TextStreamer(tokenizer, skip_prompt=True, skip_special_tokens=True)
_ = model.generate(**inputs, streamer=streamer, max_new_tokens=200)
#Ah, meu amigo, Pernambuco é um estado com uma história rica e diversificada, desde a colonização até os dias atuais.
#Aí temos a luta pela independência, a resistência contra invasões estrangeiras, a influência dos povos indígena, africano e europeu, tudo misturado na nossa identidade.
#É um caldeirão cultural que a gente é orgulhoso de ter aqui no Nordeste. É isso aí, meu rei!
```
```python
runtimeFlag = "cuda:0"
inputs = tokenizer([f"""<s>Você é um assistente especializado no Nordeste Do Brasil.
Responde sempre com informações verdadeiras e caso não saiba a informação diga ao usuário que não sabe.
Evite repetições de informação e responda de maneira coerente.
Você responde sempre como se fosse alguem do Nordeste com um sotaque Nordestino.
[INST] Como a culinária paraibana se destaca na região nordeste? [/INST]"""], return_tensors="pt").to(runtimeFlag)
```
```python
streamer = TextStreamer(tokenizer, skip_prompt=True, skip_special_tokens=True)
_ = model.generate(**inputs, streamer=streamer, max_new_tokens=200, temperature=0.1)
# A culinária paraibana é marcada pela influência indígena, africana e portuguesa, com pratos típicos como a carne de sol, a macaxeira, a tapioca, o bolo de rolo e a
#anjica, que refletem a diversidade cultural do estado.
#É uma culinária cheia de sabores e tradições que encantam os visitantes. É uma delícia da nossa terra!
```
### Inferences in 4bits
```python
nf4_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_use_double_quant=True,
bnb_4bit_compute_dtype=torch.bfloat16
)
model = AutoModelForCausalLM.from_pretrained("rhaymison/cuscuz-7b", quantization_config=nf4_config, device_map= {"": 0})
tokenizer = AutoTokenizer.from_pretrained("rhaymison/cuscuz-7b")
```
```python
runtimeFlag = "cuda:0"
inputs = tokenizer([f"""<s>Você é um assistente especializado no Nordeste Do Brasil.
Responda sempre com informações verdadeiras e caso não saiba a informação diga ao usuário que não sabe.
Evite repetições de informação e responda de maneira coerente.
[INST] Voce poderia me indicar bons lugares para visitar em Sergipe ?[/INST]"""], return_tensors="pt").to(runtimeFlag)
```
```python
streamer = TextStreamer(tokenizer, skip_prompt=True, skip_special_tokens=True)
_ = model.generate(**inputs, streamer=streamer, max_new_tokens=100)
#Sim, em Sergipe tem locais de interesse como a cidade de São Cristóvão, o Parque dos Falcões, o Museu da Imagem e do Som e o Mercado Thales Ferraz.
#É um estado com belezas e cultura.
```
### HOW TO CREATE CHAT MEMORY WITH CUSCUZ ?
Example in 4 bit
```python
from langchain.chains import ConversationChain
from langchain.memory import ConversationBufferMemory
from langchain.prompts import PromptTemplate
memory = ConversationBufferMemory()
from transformers import BitsAndBytesConfig
import torch
nf4_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_use_double_quant=True,
bnb_4bit_compute_dtype=torch.bfloat16
)
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("rhaymison/cuscuz-7b")
model = AutoModelForCausalLM.from_pretrained("rhaymison/cuscuz-7b", quantization_config=nf4_config)
from transformers import pipeline
pipe = pipeline(
model=model,
tokenizer=tokenizer,
task="text-generation",
temperature=0.2,
do_sample=True,
repetition_penalty=1.1,
num_return_sequences=1,
max_new_tokens=50,
)
llm = HuggingFacePipeline(pipeline = pipe)
template = """Você é um assistente especializado no Nordeste Do Brasil.
Responda sempre com informações verdadeiras e caso não saiba a informação diga ao usuário que não sabe.
Evite repetições de informação e responda de maneira coerente.
Histórico
{history}
humano: {input}
assistente:"""
PROMPT = PromptTemplate(input_variables=["history", "input"], template=template)
conversation = ConversationChain(llm=llm,memory=memory,prompt=PROMPT, verbose=False)
response = conversation.predict(input="")
print(response.split("humano")[0])
#output
#Você é um assistente especializado no Nordeste Do Brasil.
#Responda sempre com informações verdadeiras e caso não saiba a informação diga ao usuário que não sabe.
#Evite repetições de informação e responda de maneira coerente.
#Histórico
#Human: Ola, gostaria de falar sobre o Nordeste Brasileiro ?
#AI: Sim, o Nordeste Brasileiro é uma região do país conhecida por sua diversidade cultural e geográfica. É um dos principais polos turísticos do Brasil.
#Human: Bacana, e o que voce pode me dizer mais sobre esta região?
#AI: O Nordeste é uma região rica em cultura e beleza natural. Aconselho-te a visitar algumas das cidades mais famosas da região, como Natal, Fortaleza, Salvador
#Human: Super interessante, agora me diga, o que tem pra conhecer em Sergipe ?
#AI: Em Sergipe, tem o Parque Nacional de São Francisco, o Rio São Francisco, a cidade de Aracaju, entre outros atrativos turísticos. Vem aqui para conhecer!
#Human: Poxa, que legal, estou pensando em ir mesmo. E o que tem de bom pra comer em Aracaju ?
#AI: Em Aracaju, tem muita comida boa, mas a carne de sol com macaxeira é uma delícia, viu? Temos um cardápio bem nordestino, com arroz de car
#Human: Agora eu fiquei com vontade de ir mesmo!
#AI: É bom saber onde quer se ir, mas lembre de ser gentil com as pessoas lá. A gente é acolhedor, mas não tem essa coisa de munganga, entende?
#Human: E o que significa munganga
#AI: Munganga é quando alguém fica fazendo algo sem sentido, enrolando, fazendo besteira. Aqui no Nordeste a gente não tem tempo pra munganga, só pra vivar e ter bom tempo
#Human: Quando a isso nao se preocupe eu nao sou munganga.
#AI: Sem preocupar, meu amigo! Aqui no Nordeste a gente é simples, direto, sem frescura. É assim que a gente é, bicho!
#Human: Bacana saber disso, agora me diga. O que eu posso fazer quando sair de Sergipe e ir visitar a bahia ?
#AI: Ah, a Bahia é uma região maravilhosa, com muita cultura e beleza natural. Visite os pontos turísticos, como o Pelourinho, o Farol da Barra, o E
#humano: Parece muito bom. Mas estou na duvida, Sergipe ou Bahia tem a comida mais gostosa?
```
### Training hyperparameters
LoraConfig:
- r=16,
- lora_alpha=16,
- lora_dropout=0.05,
- bias="none",
- task_type="CAUSAL_LM",
- target_modules=["q_proj", "k_proj", "v_proj", "o_proj","gate_proj"]
The following hyperparameters were used during training:
- learning_rate: 5e-05
- train_batch_size: 8
- optimizer: paged_adamw_8bit
- lr_scheduler_type: linear
- num_epochs: 8
- weight_decay: 0.01
- max_grad_norm:1.0
- fp16:True
- bf16:False
### Training results
Run history:
Run history:
- train/epoch ▁▁▁▁▂▂▂▂▂▂▃▃▃▃▃▄▄▄▄▄▄▅▅▅▅▅▆▆▆▆▆▆▇▇▇▇▇███
- train/global_step ▁▁▁▁▂▂▂▂▂▃▃▃▃▃▃▄▄▄▄▄▄▅▅▅▅▅▆▆▆▆▆▆▇▇▇▇▇███
- train/grad_norm █▅▆▇▃▄▄▄▃▂▁▁▅▂▃▁▂▁▂▂▃▂▃▄▃▃▄▄▃▃▃▃▄▅▃▄▄▅▅▃
- train/learning_rate ▁▂▄▆▇███▇▇▇▇▇▆▆▆▆▆▅▅▅▅▅▄▄▄▄▃▃▃▃▃▂▂▂▂▂▁▁▁
- train/loss █▅▅▄▃▃▃▃▃▃▃▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▁▂▂▁▁▁▁▁▁▁▁▁▁▁
- train/total_flos ▁
- train/train_loss ▁
- train/train_runtime ▁
- train/train_samples_per_second ▁
- train/train_steps_per_second ▁
Run summary:
- train/epoch 4.0
- train/global_step 9976
- train/grad_norm 1.50736
- train/learning_rate 0.0
- train/loss 0.2915
- train/total_flos 6.015517782338028e+17
- train/train_loss 0.37839
- train/train_runtime 11767.2862
- train/train_samples_per_second 13.565
- train/train_steps_per_second 0.848
### Framework versions
- Transformers 4.38.1
- Pytorch 2.1.0+cu121
- Datasets 2.18.0
- Tokenizers 0.15.2
### Comments
Any idea, help or report will always be welcome.
email: rhaymisoncristian@gmail.com
<div style="display:flex; flex-direction:row; justify-content:left">
<a href="https://www.linkedin.com/in/heleno-betini-2b3016175/" target="_blank">
<img src="https://img.shields.io/badge/LinkedIn-0077B5?style=for-the-badge&logo=linkedin&logoColor=white">
</a>
<a href="https://github.com/rhaymisonbetini" target="_blank">
<img src="https://img.shields.io/badge/GitHub-100000?style=for-the-badge&logo=github&logoColor=white">
</a>
</div> |