recogna's picture
Update README.md
286755a verified
---
license: apache-2.0
library_name: transformers
pipeline_tag: text-generation
---
# internlm2-chat-1_8b-ultracabrita
<!--- PROJECT LOGO -->
<p align="center">
<img src="https://huggingface.co/recogna-nlp/internlm-chatbode-7b/resolve/main/_1add1e52-f428-4c7c-bab2-3c6958e029fa.jpeg" alt="ChatBode Logo" width="400" style="margin-left:'auto' margin-right:'auto' display:'block'"/>
</p>
O InternLm-ChatBode é um modelo de linguagem ajustado para o idioma português, desenvolvido a partir do modelo [InternLM2](https://huggingface.co/internlm/internlm2-chat-1_8b). Este modelo foi refinado através do processo de fine-tuning utilizando o dataset UltraAlpaca.
## Características Principais
- **Modelo Base:** [internlm/internlm2-chat-1_8b](https://huggingface.co/internlm/internlm2-chat-1_8b)
- **Dataset para Fine-tuning:** [UltraAlpaca](https://huggingface.co/datasets/recogna-nlp/ultra-alpaca-ptbr)
- **Treinamento:** O treinamento foi realizado a partir do fine-tuning, usando QLoRA, do internlm2-chat-1_8b.
## Exemplo de uso
A seguir um exemplo de código de como carregar e utilizar o modelo:
```python
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("recogna-nlp/internlm2-chat-1_8b-ultracabrita", trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained("recogna-nlp/internlm2-chat-1_8b-ultracabrita", torch_dtype=torch.float16, trust_remote_code=True).cuda()
model = model.eval()
response, history = model.chat(tokenizer, "Olá", history=[])
print(response)
response, history = model.chat(tokenizer, "O que é o Teorema de Pitágoras? Me dê um exemplo", history=history)
print(response)
```
As respostas podem ser geradas via stream utilizando o método `stream_chat`:
```python
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_path = "recogna-nlp/internlm2-chat-1_8b-ultracabrita"
model = AutoModelForCausalLM.from_pretrained(model_path, torch_dtype=torch.float16, trust_remote_code=True).cuda()
tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)
model = model.eval()
length = 0
for response, history in model.stream_chat(tokenizer, "Olá", history=[]):
print(response[length:], flush=True, end="")
length = len(response)
```