Instructions to use Assaoka/Tucano2-qwen-0.5b-Merge-Brighter with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Assaoka/Tucano2-qwen-0.5b-Merge-Brighter with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="Assaoka/Tucano2-qwen-0.5b-Merge-Brighter") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("Assaoka/Tucano2-qwen-0.5b-Merge-Brighter") model = AutoModelForCausalLM.from_pretrained("Assaoka/Tucano2-qwen-0.5b-Merge-Brighter", device_map="auto") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=40) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use Assaoka/Tucano2-qwen-0.5b-Merge-Brighter with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Assaoka/Tucano2-qwen-0.5b-Merge-Brighter" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Assaoka/Tucano2-qwen-0.5b-Merge-Brighter", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/Assaoka/Tucano2-qwen-0.5b-Merge-Brighter
- SGLang
How to use Assaoka/Tucano2-qwen-0.5b-Merge-Brighter with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "Assaoka/Tucano2-qwen-0.5b-Merge-Brighter" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Assaoka/Tucano2-qwen-0.5b-Merge-Brighter", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "Assaoka/Tucano2-qwen-0.5b-Merge-Brighter" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Assaoka/Tucano2-qwen-0.5b-Merge-Brighter", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use Assaoka/Tucano2-qwen-0.5b-Merge-Brighter with Docker Model Runner:
docker model run hf.co/Assaoka/Tucano2-qwen-0.5b-Merge-Brighter
license: apache-2.0
language:
- pt
base_model:
- Assaoka/Tucano2-qwen-0.5B-ReLiSA
- Assaoka/Tucano2-qwen-0.5B-FinBERT
- Assaoka/Tucano2-qwen-0.5B-Phrasebank
- Assaoka/Tucano2-qwen-0.5B-GoEmotions
pipeline_tag: text-generation
library_name: transformers
tags:
- sentiment-analysis
- slm
- eniac-2026
- knowledge-accumulation
- prior-alignment
datasets:
- brighter-dataset/BRIGHTER-emotion-categories
metrics:
- f1
- accuracy
model-index:
- name: Tucano2-qwen-0.5b-Merge-BRIGHTER
results:
- task:
type: text-generation
name: Sentiment Analysis
dataset:
name: brighter
type: brighter-dataset/BRIGHTER-emotion-categories
split: test
metrics:
- type: f1
value: 0.4335
name: Macro F1
- type: accuracy
value: 0.4946
name: Accuracy
Tucano2-qwen-0.5b-Merge-BRIGHTER (Prior Model)
Este é um modelo especialista em análise de sentimento em língua portuguesa, construído usando a estratégia Knowledge Accumulation (Prior). O modelo foi inicialmente pre-mesclado (merged) com outros especialistas usando TIES Merge e, em seguida, sofreu ajuste fino (fine-tuning) no conjunto de dados brighter-dataset/BRIGHTER-emotion-categories.
Este desenvolvimento faz parte do artigo científico submetido ao ENIAC 2026: "United Experts: Merging Small Language Models for Multi-Domain Sentiment Analysis in Portuguese".
📌 Detalhes do Modelo
- Modelos Base (Merge):
Assaoka/Tucano2-qwen-0.5B-ReLiSAAssaoka/Tucano2-qwen-0.5B-FinBERTAssaoka/Tucano2-qwen-0.5B-PhrasebankAssaoka/Tucano2-qwen-0.5B-GoEmotions- Tarefa: Detecção de múltiplas emoções simultâneas em língua portuguesa (raiva, nojo, medo, alegria, tristeza, surpresa) após alinhamento sequencial por Knowledge Accumulation (Prior).
- Domínio: Língua Portuguesa (PT-BR).
- Licença: Apache 2.0.
- Estratégia: Alinhamento sequencial via Knowledge Accumulation (Prior + Fine-tuning).
📊 Avaliação Completa (In-Domain & Out-Of-Domain)
Métricas padronizadas (Macro F1 · Micro F1 · Accuracy · Hamming Loss) calculadas sobre o conjunto de teste completo de cada domínio. A coluna Baseline corresponde ao modelo base Polygl0t/Tucano2-qwen-0.5B-Instruct sem fine-tuning.
| Dataset / Tarefa | Métrica | Valor | Baseline |
|---|---|---|---|
| RELI-SA | Macro F1 Micro F1 Accuracy Hamming Loss |
43.46% 63.35% 63.35% 0.3665 |
30.66% 37.07% 37.07% 0.6293 |
| BRIGHTER | Macro F1 Micro F1 Accuracy Hamming Loss |
43.35% 60.99% 49.46% 0.1183 |
33.47% 38.07% 24.66% 0.2731 |
| FINBERT-PT-BR | Macro F1 Micro F1 Accuracy Hamming Loss |
71.04% 71.29% 71.29% 0.2871 |
54.77% 66.34% 66.34% 0.3366 |
| FINANCIAL-PHRASEBANK | Macro F1 Micro F1 Accuracy Hamming Loss |
69.41% 75.23% 75.23% 0.2477 |
38.13% 39.32% 39.32% 0.6068 |
| GO-EMOTIONS | Macro F1 Micro F1 Accuracy Hamming Loss |
16.08% 20.53% 13.31% 0.0577 |
7.59% 10.31% 6.08% 0.0720 |
🚀 Como utilizar o modelo (vLLM ou Transformers)
O modelo responde a prompts estruturados com instruções do sistema em português. Exemplo real de inferência estruturada:
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "Assaoka/Tucano2-qwen-0.5b-Merge-Brighter"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, device_map="auto")
messages = [
{"role": "system", "content": "Você é um detector de emoções em português. Analise o texto fornecido e retorne a lista de emoções detectadas (pode ser vazia). As opções válidas são: 'raiva', 'nojo', 'medo', 'alegria', 'tristeza', 'surpresa'. Sua tarefa é retornar um JSON válido no seguinte formato: {"emocoes": ["emocao1", "emocao2", ..., "emocaoN"]} baseado na lista de emoções permitidas. Responda APENAS com o JSON válido."},
{"role": "user", "content": "Texto: Fiquei extremamente feliz com a aprovação da minha pesquisa, mas confesso que a ansiedade me deu um pouco de medo."}
]
prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
outputs = model.generate(**inputs, max_new_tokens=100)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
# Resposta esperada: {"emocoes": ["alegria", "medo"]}