metadata
license: mit
language:
- pt
base_model:
- Qwen/Qwen2.5-0.5B-Instruct
pipeline_tag: text-generation
datasets:
- adalbertojunior/openHermes_portuguese
- cnmoro/smoltalk-555k-ptbr
- cnmoro/RagMixPTBR-Legal-Alpaca-2M
- cnmoro/LogicReasoningEnglishPortuguese
model-index:
- name: Qwen2.5-0.5B-Portuguese-Hybrid-Reasoning
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: 32.54
name: accuracy
source:
url: >-
https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=cnmoro/Qwen2.5-0.5B-Portuguese-Hybrid-Reasoning
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: 31.43
name: accuracy
source:
url: >-
https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=cnmoro/Qwen2.5-0.5B-Portuguese-Hybrid-Reasoning
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.61
name: accuracy
source:
url: >-
https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=cnmoro/Qwen2.5-0.5B-Portuguese-Hybrid-Reasoning
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: 82.67
name: f1-macro
source:
url: >-
https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=cnmoro/Qwen2.5-0.5B-Portuguese-Hybrid-Reasoning
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: 47.25
name: pearson
source:
url: >-
https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=cnmoro/Qwen2.5-0.5B-Portuguese-Hybrid-Reasoning
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: 63.32
name: f1-macro
source:
url: >-
https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=cnmoro/Qwen2.5-0.5B-Portuguese-Hybrid-Reasoning
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: 36.54
name: f1-macro
source:
url: >-
https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=cnmoro/Qwen2.5-0.5B-Portuguese-Hybrid-Reasoning
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: 51.58
name: f1-macro
source:
url: >-
https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=cnmoro/Qwen2.5-0.5B-Portuguese-Hybrid-Reasoning
name: Open Portuguese LLM Leaderboard
- task:
type: text-generation
name: Text Generation
dataset:
name: tweetSentBR
type: eduagarcia/tweetsentbr_fewshot
split: test
args:
num_few_shot: 25
metrics:
- type: f1_macro
value: 48.25
name: f1-macro
source:
url: >-
https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=cnmoro/Qwen2.5-0.5B-Portuguese-Hybrid-Reasoning
name: Open Portuguese LLM Leaderboard
Qwen2.5-0.5B finetuned for proficiency in Portuguese language and increased intelligence, as well as supporting reasoning (can be toggled on or off)
Load the model
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "cnmoro/Qwen2.5-0.5B-Portuguese-Hybrid-Reasoning"
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype="auto",
device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(model_name)
prompt = "Escreva uma breve introdução sobre LLMs (Large Language Models) e suas aplicações."
Reasoning OFF
# System prompt is always injected and hardcoded automatically
# for ideal performance in portuguese language.
# No need to write it.
messages = [
{"role": "user", "content": prompt}
]
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
generated_ids = model.generate(
**model_inputs,
max_new_tokens=512
)
generated_ids = [
output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
response
# LLMs são sistemas avançados de inteligência artificial projetados para imitar a cognição humana. Elas são capazes de processar grandes # quantidades de dados de texto, permitindo que as máquinas entendam, respondam e gerem linguagem complexa.
#
# As LLMs têm diversas aplicações importantes:
#
# 1. Comunicação: Elas podem facilitar interações humanóides entre humanos e computadores.
# 2. Análise de Dados: Eles ajudam na extração de insights significativos de grandes volumes de dados.
# 3. Assistentes Virtuais: LMLs podem criar assistentes virtuais com recursos como tradução de idiomas e previsão de sentimentos.
# 4. Processamento de Linguagem Natural: Eles permitem que os chatbots interpretem e respondam à linguagem natural.
# 5. Aprendizado de Máquina: LMLs podem treinar modelos de aprendizado de máquina para reconhecimento de padrões e geração de texto.
# Ao combinar processamento de linguagem profundo, visão computacional e aprendizado de máquina, as LLMs estão preparadas para desafios # complexos em vários campos. Essas aplicações levaram a inovações revolucionárias em áreas como saúde, educação e finanças, onde sistemas de IA tradicionais poderiam ter dificuldades para fornecer soluções eficazes.
Reasoning ON
messages = [
{"role": "system", "content": "Reason"}, # Use "Reason" as the system message and it will be handled automatically through the custom template
{"role": "user", "content": prompt}
]
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
generated_ids = model.generate(
**model_inputs,
max_new_tokens=512
)
generated_ids = [ # Note the "-3" in the line below
output_ids[len(input_ids)-3:] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
response
# <think>
# Para escrever uma introdução sobre LLMs, preciso considerar os principais aspectos dos LLMs e sua aplicação.
# O usuário está pedindo uma introdução, então devo focar na definição básica e em como ela se relaciona com a tecnologia LLM.
# Vamos dividir isso passo a passo:
# 1. Definir Large Language Models (LLMs)
# 2. Explicar sua funcionalidade principal
# 3. Descrever sua aplicação
# 4. Mencionar os benefícios
# Agora, vamos prosseguir com a introdução:
# </think>
# LLMs ou Large Language Models, são inteligência artificial avançada projetadas para simular a cognição humana em linguagem natural. Eles foram desenvolvidos para processamento de texto e fala complexos, permitindo que sistemas de IA compreendam, interpretem e gerem texto e fala humanos.
# Os LLMs funcionam por meio de um algoritmo de aprendizado profundo inspirado no cérebro humano. Eles usam redes neurais com múltiplas camadas para analisar grandes quantidades de dados de texto e fala, permitindo que as máquinas entendam e respondam a perguntas complexas.
# As aplicações de LLMs são vastas e variadas. Alguns exemplos incluem:
# - Resumo automático de artigos acadêmicos
# - Geração de conteúdo original
# - Análise de sentimentos em mídias sociais
# - Processamento de linguagem natural para chatbots
# - Reconhecimento de entidades nomeadas em documentos
# - Tomada de decisões em negociações internacionais
# - Modelagem financeira
# - Gerenciamento da saúde mental
# Apesar de suas inúmeras possibilidades, os LLMs enfrentam desafios significativos, como:
# - Falta de contexto nos dados de treinamento
# - Problemas de generalização para novos tópicos
# - Potencial de manipulação de dados
# - Dificuldade em entender e interpretar a própria consciência
# À medida que a tecnologia LLM continua a evoluir, podemos esperar vê-la utilizada em vários setores e áreas, desde educação até finanças.
Open Portuguese LLM Leaderboard Evaluation Results
Detailed results can be found here and on the 🚀 Open Portuguese LLM Leaderboard
Metric | Value |
---|---|
Average | 46.91 |
ENEM Challenge (No Images) | 32.54 |
BLUEX (No Images) | 31.43 |
OAB Exams | 28.61 |
Assin2 RTE | 82.67 |
Assin2 STS | 47.25 |
FaQuAD NLI | 63.32 |
HateBR Binary | 36.54 |
PT Hate Speech Binary | 51.58 |
tweetSentBR | 48.25 |