metadata
language:
- pt
license: llama2
library_name: transformers
tags:
- Portuguese
- Llama
- Tiny-Llama
- LLM
- PEFT
pipeline_tag: text-generation
widget:
- text: |
Quem foi Pedro Álvares Cabral?
PT - README
Samba é um LLM treinado em dados da língua portuguesa. O modelo é baseado no TinyLlama-1.1B, uma versão de 1.1B parâmetros do LLaMA-2.
Descrição do Modelo
- Desenvolvido por: Leonardo Souza
- Tipo do Modelo: LLaMA-Based
- Licença: Academic Free License v3.0
- Fine-tunado do modelo: TinyLlama-1.1B
Como usar
Com o transformers pipeline:
import torch
from transformers import pipeline
samba = pipeline('text-generation', model='lrds-code/samba-1.1B', torch_dtype=torch.bfloat16, device_map='auto')
messages = [{'role':'system',
'content':''},
{'role':'user',
'content':'Quantos planetas existem no sistema solar?'}]
prompt = samba.tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
outputs = samba(prompt, max_new_tokens=256, do_sample=False, temperature=0.1, top_k=50, top_p=0.95, repetition_penalty=1.1, do_sample=False)
print(outputs[0]['generated_text'])
Com o transformers AutoModel
from transformers import AutoModelForCausalLM, AutoTokenizer, GenerationConfig
def GeneratePrompt(input, instruction):
if input!='' and instruction!=0:
return f'''Abaixo está uma instrução que descreve uma tarefa, juntamente com uma entrada que fornece mais contexto. Escreva uma resposta que complete adequadamente o pedido.
### Instrução
{instruction}
### Entrada
{input}'''
else:
return f'''Abaixo está uma instrução que descreve uma tarefa, juntamente com uma entrada que fornece mais contexto. Escreva uma resposta que complete adequadamente o pedido.
### Instrução
{instruction}
### Entrada'''
model_config = GenerationConfig.from_model_config(model.generation_config)
model.generation_config.temperature = 0.1
model = AutoModelForCausalLM.from_pretrained('lrds-code/samba-1.1B')
tokenizer = AutoTokenizer.from_pretrained('lrds-code/samba-1.1B')
instruction = 'Quantos planetas existem no sistema solar?'
text = GeneratePrompt(input='', instruction=instruction)
inputs = tokenizer(text, return_tensors='pt')
outputs = model.generate(input_ids=inputs['input_ids'], attention_mask=inputs['attention_mask'], generation_config=model_config, repetition_penalty=1.1, do_sample=False)
print(outputs[0]['generated_text'])
Prompt para Finetune
Para o finetune do Samba utilizamos o template Alpaca.
'''Abaixo está uma instrução que descreve uma tarefa, juntamente com uma entrada que fornece mais contexto. Escreva uma resposta que complete adequadamente o pedido.
### Instrução
{instruction}
### Entrada
{input}
### Resposta
{output}'''
Parâmetros importantes
EN - README
Samba-1.1B
Samba is a LLM trained on portuguese language data. The model is based on TinyLlama-1.1B, a 1.1B parameter version of LLaMA-2.
The LLM Samba project aims to provide more LLM options in Portuguese, while also providing less complex models so that users with less computational power can take advantage of the LLMs.
Model Description
- Developed by: Leonardo Souza
- Model type: LLaMA-Based
- License: Academic Free License v3.0
- Finetuned from model: TinyLlama-1.1B
How to Use
import torch
from transformers import pipeline
samba = pipeline('text-generation', model='lrds-code/samba-1.1B', torch_dtype=torch.bfloat16, device_map='auto')
messages = [{"role": "system",
"content": ""},
{"role": "user",
"content": "Quantos planetas existem no sistema solar?"}]
prompt = samba.tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
outputs = samba(prompt, max_new_tokens=256, do_sample=False, temperature=0.1, top_k=50, top_p=0.95)
print(outputs[0]['generated_text'])