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

!pip install -q -U transformers
!pip install -q -U accelerate
!pip install -q -U bitsandbytes
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()
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)
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.
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)
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.

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)
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!
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)
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

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")
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)
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

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]

Downloads last month
13
Safetensors
Model size
7.24B params
Tensor type
BF16
Β·
Inference Examples
This model does not have enough activity to be deployed to Inference API (serverless) yet. Increase its social visibility and check back later, or deploy to Inference Endpoints (dedicated) instead.

Model tree for rhaymison/cuscuz-7b

Finetuned
(147)
this model
Quantizations
1 model

Dataset used to train rhaymison/cuscuz-7b