Phi-Bode / README.md
phpaiola's picture
Fixing some errors of the leaderboard evaluation results in the ModelCard yaml (#2)
16f8c86 verified
---
language:
- pt
- en
license: mit
library_name: peft
tags:
- Phi-2B
- Portuguese
- Bode
- LLM
- Alpaca
metrics:
- accuracy
- f1
- precision
- recall
pipeline_tag: text-generation
model-index:
- name: Phi-Bode
results:
- task:
type: text-generation
name: Text Generation
dataset:
name: ENEM Challenge (No Images)
type: eduagarcia/enem_challenge
split: train
args:
num_few_shot: 3
metrics:
- type: acc
value: 33.94
name: accuracy
source:
url: https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=recogna-nlp/Phi-Bode
name: Open Portuguese LLM Leaderboard
- task:
type: text-generation
name: Text Generation
dataset:
name: BLUEX (No Images)
type: eduagarcia-temp/BLUEX_without_images
split: train
args:
num_few_shot: 3
metrics:
- type: acc
value: 25.31
name: accuracy
source:
url: https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=recogna-nlp/Phi-Bode
name: Open Portuguese LLM Leaderboard
- task:
type: text-generation
name: Text Generation
dataset:
name: OAB Exams
type: eduagarcia/oab_exams
split: train
args:
num_few_shot: 3
metrics:
- type: acc
value: 28.56
name: accuracy
source:
url: https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=recogna-nlp/Phi-Bode
name: Open Portuguese LLM Leaderboard
- task:
type: text-generation
name: Text Generation
dataset:
name: Assin2 RTE
type: assin2
split: test
args:
num_few_shot: 15
metrics:
- type: f1_macro
value: 68.1
name: f1-macro
source:
url: https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=recogna-nlp/Phi-Bode
name: Open Portuguese LLM Leaderboard
- task:
type: text-generation
name: Text Generation
dataset:
name: Assin2 STS
type: eduagarcia/portuguese_benchmark
split: test
args:
num_few_shot: 15
metrics:
- type: pearson
value: 30.57
name: pearson
source:
url: https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=recogna-nlp/Phi-Bode
name: Open Portuguese LLM Leaderboard
- task:
type: text-generation
name: Text Generation
dataset:
name: FaQuAD NLI
type: ruanchaves/faquad-nli
split: test
args:
num_few_shot: 15
metrics:
- type: f1_macro
value: 43.97
name: f1-macro
source:
url: https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=recogna-nlp/Phi-Bode
name: Open Portuguese LLM Leaderboard
- task:
type: text-generation
name: Text Generation
dataset:
name: HateBR Binary
type: ruanchaves/hatebr
split: test
args:
num_few_shot: 25
metrics:
- type: f1_macro
value: 60.51
name: f1-macro
source:
url: https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=recogna-nlp/Phi-Bode
name: Open Portuguese LLM Leaderboard
- task:
type: text-generation
name: Text Generation
dataset:
name: PT Hate Speech Binary
type: hate_speech_portuguese
split: test
args:
num_few_shot: 25
metrics:
- type: f1_macro
value: 54.6
name: f1-macro
source:
url: https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=recogna-nlp/Phi-Bode
name: Open Portuguese LLM Leaderboard
- task:
type: text-generation
name: Text Generation
dataset:
name: tweetSentBR
type: eduagarcia-temp/tweetsentbr
split: test
args:
num_few_shot: 25
metrics:
- type: f1_macro
value: 46.78
name: f1-macro
source:
url: https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=recogna-nlp/Phi-Bode
name: Open Portuguese LLM Leaderboard
---
# Phi-Bode
<!--- PROJECT LOGO -->
<p align="center">
<img src="https://huggingface.co/recogna-nlp/Phi-Bode/resolve/main/phi-bode.jpg" alt="Phi-Bode Logo" width="400" style="margin-left:'auto' margin-right:'auto' display:'block'"/>
</p>
Phi-Bode é um modelo de linguagem ajustado para o idioma português, desenvolvido a partir do modelo base Phi-2B fornecido pela [Microsoft](https://huggingface.co/microsoft/phi-2). Este modelo foi refinado através do processo de fine-tuning utilizando o dataset Alpaca traduzido para o português. O principal objetivo deste modelo é ser viável para pessoas
que não possuem recursos computacionais disponíveis para o uso de LLMs (Large Language Models). Ressalta-se que este é um trabalho em andamento e o modelo ainda apresenta problemas na geração de texto em português.
## Características Principais
- **Modelo Base:** Phi-2B, criado pela Microsoft, com 2.7 bilhões de parâmetros.
- **Dataset para Fine-tuning:** Uso do dataset Alpaca traduzido para português para adaptar o modelo às nuances da língua portuguesa.
- **Quantização:** O modelo base Phi-2B foi quantizado em 4 bits para reduzir o tamanho e a complexidade computacional.
- **Treinamento:** O treinamento foi realizado utilizando o método LoRa, visando eficiência computacional e otimização de recursos.
- **Merge de Modelos:** Após o treinamento, o modelo treinado quantizado em 4 bits foi mesclado com o modelo base para preservar a qualidade do modelo.
## Outros modelos disponíveis
| Quantidade de parâmetros | PEFT | Modelo |
| :-: | :-: | :-: |
| 7b | &check; | [recogna-nlp/bode-7b-alpaca-pt-br](https://huggingface.co/recogna-nlp/bode-7b-alpaca-pt-br) |
| 13b | &check; | [recogna-nlp/bode-13b-alpaca-pt-br](https://huggingface.co/recogna-nlp/bode-13b-alpaca-pt-br)|
| 7b | | [recogna-nlp/bode-7b-alpaca-pt-br-no-peft](https://huggingface.co/recogna-nlp/bode-7b-alpaca-pt-br-no-peft) |
| 13b | | [recogna-nlp/bode-13b-alpaca-pt-br-no-peft](https://huggingface.co/recogna-nlp/bode-13b-alpaca-pt-br-no-peft) |
| 7b-gguf | | [recogna-nlp/bode-7b-alpaca-pt-br-gguf](https://huggingface.co/recogna-nlp/bode-7b-alpaca-pt-br-gguf) |
| 13b-gguf | | [recogna-nlp/bode-13b-alpaca-pt-br-gguf](https://huggingface.co/recogna-nlp/bode-13b-alpaca-pt-br-gguf) |
## Utilização
O modelo Phi-Bode pode ser utilizado para uma variedade de tarefas de processamento de linguagem natural (PLN) em português, como geração de texto, classificação, sumarização de texto, entre outros.
### Exemplo de uso
Abaixo, colocamos um exemplo simples de como carregar o modelo e gerar texto:
```python
!pip3 -q install -q -U bitsandbytes==0.42.0
!pip3 -q install -q -U accelerate==0.27.1
!pip3 -q install -q -U transformers==4.38.0
from transformers import AutoModelForCausalLM, AutoTokenizer
hf_auth = 'HF_ACCESS_KEY'
model_id = "recogna-nlp/Phi-Bode"
model = AutoModelForCausalLM.from_pretrained(model_id, device_map={"":0}, trust_remote_code=True, token=hf_auth)
tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True, token=hf_auth)
def get_completion(model, tokenizer, query : str, input : str = '', device = 'cuda:0', max_new_tokens=128) -> str:
if len(input) == 0:
prompt_template = """Abaixo está uma instrução que descreve uma tarefa. Escreva uma resposta que complete adequadamente o pedido.
### Instrução: {query}
### Resposta:"""
prompt = prompt_template.format(query=query)
else:
prompt_template = """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: {query}
### Entrada: {input}
### Resposta:"""
prompt = prompt_template.format(query=query, input=input)
encodeds = tokenizer(prompt, return_tensors="pt", add_special_tokens=True)
model_inputs = encodeds.to(device)
generated_ids = model.generate(**model_inputs,
max_new_tokens=max_new_tokens,
do_sample=True,
pad_token_id=tokenizer.eos_token_id)
decoded = tokenizer.decode(generated_ids[0], skip_special_tokens=True)
return (decoded[len(prompt):])
result = get_completion(model=model, tokenizer=tokenizer, query="Qual é a capital da França?")
print(result)
#Exemplo de resposta obtida: A capital da França é Paris. A cidade tem uma estratégia de transporte moderno difícil entre todos os lugares, incluindo ferroviário, busca, metro e línguações. Para obter uma avaliação completa da cidade, visita esta aumentar a experiência gastronômica, cultural e natural.
```
## Contribuições
Contribuições para a melhoria deste modelo são bem-vindas. Sinta-se à vontade para abrir problemas e solicitações pull.
## Citação
Se você deseja utilizar o Phi-Bode em sua pesquisa, cite-o da seguinte maneira:
```
@misc {phibode_2024,
author = { Pedro Henrique Paiola and Gabriel Lino Garcia and João Paulo Papa},
title = { Phi-Bode},
year = {2024},
url = { https://huggingface.co/recogna-nlp/Phi-Bode },
doi = { 10.57967/hf/1880 },
publisher = { Hugging Face }
}
```
# [Open Portuguese LLM Leaderboard Evaluation Results](https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard)
Detailed results can be found [here](https://huggingface.co/datasets/eduagarcia-temp/llm_pt_leaderboard_raw_results/tree/main/recogna-nlp/Phi-Bode)
| Metric | Value |
|--------------------------|---------|
|Average |**43.59**|
|ENEM Challenge (No Images)| 33.94|
|BLUEX (No Images) | 25.31|
|OAB Exams | 28.56|
|Assin2 RTE | 68.10|
|Assin2 STS | 30.57|
|FaQuAD NLI | 43.97|
|HateBR Binary | 60.51|
|PT Hate Speech Binary | 54.60|
|tweetSentBR | 46.78|