File size: 10,485 Bytes
382ac7c
 
 
 
 
 
 
 
 
 
 
 
838cb99
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
382ac7c
 
7684dcf
382ac7c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
838cb99
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
---
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

```python
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**

```python
# 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**

```python
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](https://huggingface.co/datasets/eduagarcia-temp/llm_pt_leaderboard_raw_results/tree/main/cnmoro/Qwen2.5-0.5B-Portuguese-Hybrid-Reasoning) and on the [🚀 Open Portuguese LLM Leaderboard](https://huggingface.co/spaces/eduagarcia/open_pt_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|