O Tokenizer do Qwen/Qwen3-0.6B com "chat_template" modificado para forçar respostas em português, mesmo que "enable_thinking" seja True ou False.
Força para que o reasoning aconteça em português também.
from transformers import AutoTokenizer, AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained(
"Qwen/Qwen3-0.6B", # Modelo original
torch_dtype="auto",
device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(
"cnmoro/Qwen3-0.6B-Portuguese-Tokenizer" # Tokenizer custom
)
# Prepara os inputs
prompt = "Write a very brief introduction to Large Language Models (LLMs)."
messages = [
{"role": "user", "content": prompt}
]
# Reasoning >ATIVADO<
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
enable_thinking=True
)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
generated_ids = model.generate(
**model_inputs,
max_new_tokens=32768
)
output_ids = generated_ids[0][len(model_inputs.input_ids[0]):].tolist()
# parsing thinking content
try:
# rindex finding 151668 (</think>)
index = len(output_ids) - output_ids[::-1].index(151668)
except ValueError:
index = 0
thinking_content = tokenizer.decode(output_ids[:index], skip_special_tokens=True).strip("\n")
if thinking_content: thinking_content = "Ok, o usuário " + thinking_content.replace("</think>", "")
content = tokenizer.decode(output_ids[index:], skip_special_tokens=True).strip("\n")
print("thinking content:", thinking_content)
# thinking content: Ok, o usuário quer uma introdução muito breve sobre os modelos de linguagem natural (LLMs).
# Preciso ser específico, mas conciso. Devo mencionar o que são, os tipos e as aplicações.
# Tenho que ser breve, como um intro para um artigo ou um texto.
# O que devo dizer? Devo começar com o que é LLMs, depois os tipos, e finalmente as aplicações.
# Devo usar frases simples e diretas, sem complexidade. Preciso garantir que o intro seja breve, como um parágrafo.
# Vou testar isso. Vou chamar de "uma tecnologia de linguagem que permite a criação e interação com textos complexos".
# Deixar de repetir o que já disse.
# O que devo dizer agora? Okay, vou escrever o intro.
print("content:", content)
# content: Large Language Models (LLMs) são modelos de linguagem que permitem a criação e interação
# com textos complexos, adaptando-se a diferentes contextos e usos, sendo aplicações em áreas como
# inteligência artificial, comunicação com humanos e automação.
###### ---------------------------------- ######
# Reasoning >DESATIVADO<
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
enable_thinking=False
)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
generated_ids = model.generate(
**model_inputs,
max_new_tokens=32768
)
output_ids = generated_ids[0][len(model_inputs.input_ids[0]):].tolist()
# parsing thinking content
try:
# rindex finding 151668 (</think>)
index = len(output_ids) - output_ids[::-1].index(151668)
except ValueError:
index = 0
thinking_content = tokenizer.decode(output_ids[:index], skip_special_tokens=True).strip("\n")
if thinking_content: thinking_content = "Ok, o usuário " + thinking_content.replace("</think>", "")
content = tokenizer.decode(output_ids[index:], skip_special_tokens=True).strip("\n")
print("thinking content:", thinking_content)
#
print("content:", content)
# content: "Large Language Models (LLMs) são modelos de linguagem de grande escala que permitem a
# geração de textos com base em padrões e conhecimento humano."
Inference Providers
NEW
This model isn't deployed by any Inference Provider.
🙋
Ask for provider support