Uma Implementação de Código para Executar Modelos de Raciocínio Qwen3.5 Destilados com Pensamento no Estilo Claude Usando GGUF e Quantização de 4 Bits

Uma Implementação de Código para Executar Modelos de Raciocínio Qwen3.5 Destilados com Pensamento no Estilo Claude Usando GGUF e Quantização de 4 Bits

Neste tutorial, trabalhamos diretamente com modelos Qwen3.5 destilados com raciocínio no estilo Claude e configuramos um pipeline Colab que nos permite alternar entre uma variante GGUF de 27B e uma versão leve de 2B de 4 bits com uma única flag. Começamos validando a disponibilidade da GPU, então instalamos condicionalmente llama.cpp ou transformers com bitsandbytes, dependendo de […] A postagem Uma Implementação de Código para

Neste tutorial, trabalhamos diretamente com modelos Qwen3.5 destilados com raciocínio no estilo Claude e configuramos um pipeline Colab que nos permite alternar entre uma variante GGUF de 27B e uma versão leve de 2B de 4 bits com uma única flag. Começamos validando a disponibilidade da GPU, então instalamos condicionalmente llama.cpp ou transformers com bitsandbytes, dependendo do caminho selecionado. Ambas as ramificações são unificadas através de interfaces shared generate_fn e stream_fn, garantindo inferência consistente entre os backends. Também implementamos uma classe ChatSession para interação multi-turno e construímos utilitários para analisar traços , permitindo-nos separar explicitamente o raciocínio das saídas finais durante a execução. Copiar Código Copiado Usar um Navegador diferente MODEL_PATH = "2B_HF" import torch if not torch.cuda.is_available(): raise RuntimeError( " Nenhuma GPU! Vá para Tempo de execução → Alterar tipo de tempo de execução → T4 GPU." ) gpu_name = torch.cuda.get_device_name(0) vram_gb = torch.cuda.get_device_properties(0).total_memory / 1e9 print(f" GPU: {gpu_name} — {vram_gb:.1f} GB VRAM") import subprocess, sys, os, re, time generate_fn = None stream_fn = None Inicializamos a execução definindo a flag do caminho do modelo e verificando se uma GPU está disponível no sistema. Recuperamos e imprimimos o nome da GPU junto com a VRAM disponível para garantir que o ambiente atenda aos requisitos. Também importamos todas as bibliotecas base necessárias e definimos placeholders para as funções de geração unificadas que serão atribuídas posteriormente. Copiar Código Copiado Usar um Navegador diferente if MODEL_PATH == "27B_GGUF": print("\n Instalando llama-cpp-python com CUDA (leva 3-5 min)...") env = os.environ.copy() env["CMAKE_ARGS"] = "-DGGML_CUDA=on" subprocess.check_call( [sys.executable, "-m", "pip", "install", "-q", "llama-cpp-python", "huggingface_hub"], env=env, ) print(" Instalado.\n") from huggingface_hub import hf_hub_download from llama_cpp import Llama GGUF_REPO = "Jackrong/Qwen3.5-27B-Claude-4.6-Opus-Reasoning-Distilled-GGUF" GGUF_FILE = "Qwen3.5-27B-Claude-4.6-Opus-Reasoning-Distilled-Q4_K_M.gguf" print(f" Baixando {GGUF_FILE} (~16.5 GB)... pegue um café ") model_path = hf_hub_download(repo_id=GGUF_REPO, filename=GGUF_FILE) print(f" Baixado: {model_path}\n") print(" Carregando no llama.cpp (offload de GPU)...") llm = Llama( model_path=model_path, n_ctx=8192, n_gpu_layers=40, n_threads=4, verbose=False, ) print(" Modelo GGUF de 27B carregado!\n") def generate_fn( prompt, system_prompt="Você é um assistente útil. Th

Modelos de LinguagemOtimizaçãoComputação Local