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