Tutorial Qwen 2.5 1.5B Instruct Local

Este tutorial mostra como executar o modelo Qwen/Qwen2.5-1.5B-Instruct localmente utilizando Python, Transformers e PyTorch.

O que é o Qwen?

Qwen é uma família de modelos LLM criada pela Alibaba. A versão Qwen 2.5 1.5B possui aproximadamente 1,5 bilhão de parâmetros e consegue conversar, responder perguntas, gerar código, auxiliar em Ciência de Dados e apoiar estudos de programação.

Instalação do Python

Verifique se o Python está instalado:

python --version

Instalar Dependências

Instale todas as bibliotecas necessárias:

pip install transformers torch accelerate sentencepiece

Verificar Instalação do Transformers

Verifique se o pacote foi instalado corretamente:

python -c "import transformers; print(transformers.__version__)"

Exemplo de saída:

4.56.0

Verificar Instalação do PyTorch

python -c "import torch; print(torch.__version__)"

Primeiro Teste

from transformers import pipeline

chat = pipeline(
    "text-generation",
    model="C:\Users\treeom\Downloads\IA_projeto\Qwen2.5-1.5B-Instruct"
)

resposta = chat(
    "Qual é a capital do Brasil?",
    max_new_tokens=50
)

print(resposta)

Arquivos do Modelo

Na primeira execução o modelo será baixado automaticamente do Hugging Face.

No Windows normalmente fica em:

C:\Users\SEU_USUARIO\.cache\huggingface

Arquivos comuns encontrados:

config.json
tokenizer.json
tokenizer_config.json
generation_config.json
model.safetensors

Chat Completo com Histórico

from transformers import pipeline
from transformers.utils import logging

# Esconde avisos do Transformers
logging.set_verbosity_error()

print("Carregando Qwen...")

pipe = pipeline(
    "text-generation",
    model="C:\Users\treeom\Downloads\IA_projeto\Qwen2.5-1.5B-Instruct"
)

mensagens = [
    {
        "role": "system",
        "content": """
Você é um assistente útil.
Responda sempre em português do Brasil.
Se perguntarem quem você é, responda:
"Sou o modelo Qwen 2.5 1.5B Instruct executando localmente."
Se não souber uma resposta, diga claramente que não sabe.
Não invente datas, números ou fatos.
Responda de forma objetiva e organizada.
"""
    }
]

print("Chat iniciado.")
print("Comandos:")
print(" sair")
print(" limpar")
print(" historico")

while True:

    pergunta = input("\nVocê: ").strip()

    if pergunta.lower() == "sair":
        print("\nIA: Até logo!")
        break

    if pergunta.lower() == "limpar":
        mensagens = [mensagens[0]]
        print("\nIA: Histórico apagado.")
        continue

    if pergunta.lower() == "historico":
        print(f"\nMensagens armazenadas: {len(mensagens)}")
        continue

    mensagens.append({
        "role": "user",
        "content": pergunta
    })

    resposta = pipe(
        mensagens,
        max_new_tokens=900,
        do_sample=True,
        temperature=0.7,
        top_p=0.9
    )

    texto_resposta = resposta[0]["generated_text"][-1]["content"]

    mensagens.append({
        "role": "assistant",
        "content": texto_resposta
    })

    if len(mensagens) > 20:
        mensagens = [mensagens[0]] + mensagens[-19:]

    print("\nIA:")
    print(texto_resposta)

Explicação dos Parâmetros

max_new_tokens

Quantidade máxima de tokens que o modelo pode gerar.

max_new_tokens = 900

Quanto maior, mais longa poderá ser a resposta.

temperature

Controla a criatividade da resposta.

temperature = 0.2 → mais técnico
temperature = 0.4 → recomendado para programação
temperature = 0.7 → equilibrado
temperature = 1.0 → mais criativo

top_p

Controla a diversidade das palavras escolhidas.

top_p = 0.9

Comandos do Chat

sair

sair

Encerra o chatbot.

limpar

limpar

Apaga todo o histórico da conversa.

historico

historico

Mostra quantas mensagens estão armazenadas na memória.

Exemplos de Perguntas

Explique redes neurais.
Crie uma calculadora em Python.
Explique MQTT.
Monte um sistema de manutenção preditiva.
Crie um dashboard HTML para IoT.
Explique o Teorema de Pitágoras.
Explique Machine Learning para iniciantes.
Crie uma página HTML com CSS moderno.
Explique a diferença entre TensorFlow e Scikit-learn.

Tutorial criado para estudos de LLMs locais usando Python, Transformers e Hugging Face.