---
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: []
---
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"""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"""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"""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"""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"""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