|
--- |
|
language: |
|
- pt |
|
license: llama2 |
|
tags: |
|
- Portuguese |
|
- Tiny-Llama |
|
- PEFT |
|
widget: |
|
- example_title: Pedro Álvares Cabral |
|
messages: |
|
- role: system |
|
content: Você é um historiador que é especialista em história do Brasil. |
|
- role: user |
|
content: Quem foi Pedro Álvares Cabral? |
|
--- |
|
|
|
<hr> |
|
|
|
# README |
|
|
|
<hr> |
|
|
|
|
|
<p align="center"> |
|
<img width="250" alt="Samba Logo" src="https://cdn-uploads.huggingface.co/production/uploads/658c21f4c1229bf113295773/xH3K8H4qu2ps_IzAl9cgz.png"> |
|
</p> |
|
|
|
Samba é um LLM treinado em dados da língua portuguesa. O modelo é baseado no [TinyLlama-1.1B](https://huggingface.co/TinyLlama/TinyLlama-1.1B-Chat-v1.0), uma versão de 1.1B parâmetros do LLaMA-2. |
|
|
|
<p align="center"> |
|
<img width="250" alt="Countries Logo" src="https://cdn-uploads.huggingface.co/production/uploads/658c21f4c1229bf113295773/d3twZrXng5eDjg_LbH4pF.png"> |
|
</p> |
|
|
|
## Descrição do Modelo |
|
|
|
- **Desenvolvido por:** [Leonardo Souza](https://huggingface.co/lrds-code) |
|
- **Tipo do Modelo:** LLaMA-Based |
|
- **Licença:** Academic Free License v3.0 |
|
- **Fine-tunado do modelo:** [TinyLlama-1.1B](https://huggingface.co/TinyLlama/TinyLlama-1.1B-Chat-v1.0) |
|
|
|
## Como usar |
|
|
|
```python |
|
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']) |
|
``` |
|
|
|
## Parâmetros Importantes |
|
|
|
- **repetition_penalty:** é utilizado para evitar a repetição de palavras ou frases. Quando esse valor é ajustado para ser maior que 1, o modelo tenta diminuir a probabilidade de gerar palavras que já apareceram anteriormente. Basicamente, quanto maior o valor, mais o modelo tenta evitar repetições. |
|
- **do_sample:** determina se o modelo deve ou não amostrar aleatoriamente a próxima palavra com base nas probabilidades calculadas. Portanto, **do_sample=True** introduz variação e imprevisibilidade no texto gerado, enquanto que se **do_sample=False** o modelo escolherá sempre a palavra mais provável como próxima palavra, o que pode levar a saídas mais determinísticas e, possivelmente, mais repetitivas. |
|
- **temperature:** afeta a aleatoriedade na escolha da próxima palavra. Um valor baixo (próximo de 0) faz com que o modelo seja mais "confiante" nas suas escolhas, favorecendo palavras com alta probabilidade e levando a saídas mais previsíveis. Por outro lado, um valor alto aumenta a aleatoriedade, permitindo que o modelo escolha palavras menos prováveis, o que pode tornar o texto gerado mais variado e criativo. |