Cirurgia Neural em Large Language Models: Comprimindo o Qwen-1.5B com ASVD e LoRA Healing
As redes neurais modernas da classe das Large Language Models (LLMs) entregam capacidades impressionantes de raciocínio, mas carregam um custo computacional severo. Grande parte dos parâmetros estáticos presentes em arquiteturas densas consiste em redundâncias matemáticas ou resquícios de ruído de treinamento que não contribuem ativamente para o processamento de inferência.
Para resolver esse problema sem recorrer a quantizações extremas que degradam a precisão nativa, desenvolvemos um pipeline de engenharia focado em compressão estrutural baseada em decomposição e recuperação por adaptação de baixo posto. Neste artigo, detalhamos como aplicamos uma cirurgia neural no modelo Qwen/Qwen2.5-1.5B, eliminando mais de 72 milhões de parâmetros permanentes e recuperando sua integridade estrutural.
O Diagnóstico: O Vácuo Matemático nas Camadas Densas
O primeiro passo da pesquisa consistiu em analisar a distribuição de energia nas camadas lineares do Qwen-1.5B (q_proj, k_proj, v_proj, o_proj, down_proj). A SVD (Singular Value Decomposition) clássica aplicada de forma isolada falha porque trata os pesos de maneira estática, tentando preservar ruídos irrelevantes para o fluxo textual.
Para contornar isso, utilizamos o Activation-Aware SVD (ASVD). Alimentamos o modelo com um conjunto de calibração baseado no corpus TinyShakespeare para mapear o Root Mean Square (RMS) das ativações de entrada de cada camada. Esse mapa funcionou como uma lente de aumento matemática, identificando quais conexões realmente conduzem o fluxo de linguagem durante a leitura.
A Amputação Cirúrgica e o Colapso Cognitivo
Com base nas matrizes escaladas pelas ativações reais, aplicamos a fatoração low-rank forçando um limiar de retenção de variância de 85%.
- Parâmetros Originais Alvo: ~1.49 Bilhão
- Parâmetros Removidos Permanentemente: 72.384.768 (14.29% de redução nas camadas direcionadas)
O impacto imediato dessa remoção maciça foi severo. Ao perder 72 milhões de conexões de uma só vez, a rede sofreu um quadro de afasia técnica: a Perplexidade (PPL) absoluta disparou de 24 para 81.69, e o modelo perdeu completamente a capacidade de estruturar gramática, entrando em loops repetitivos.
Isso evidenciou uma premissa fundamental: o conhecimento factual e as regras gramaticais da rede não foram totalmente destruídos, mas as pontes de roteamento responsáveis por conectar essas informações foram severamente rompidas.
A Fisioterapia Neural: LoRA Healing
Para restaurar as rotas de comunicação sem reverter a compressão dos pesos base, implementamos o Pruning-Aware Fine-Tuning utilizando adaptadores LoRA (Rank 16, Alpha 32) injetados em todas as camadas lineares sobreviventes.
Apenas 20.7 milhões de parâmetros (cerca de 1.38% do total da rede) foram mantidos treináveis. Através de estratégias de acúmulo de gradientes e checkpointing, o modelo foi submetido a um ciclo curto de reajuste no dataset de calibração.
O resultado foi imediato: o otimizador construiu caminhos alternativos de desvio (bypasses neurais), fazendo a Perplexidade cair para 57.01 e restaurando integralmente a coerência textual e a capacidade sintática da arquitetura.
Fusão (Merge & Unload) e Casos de Uso Práticos
O estágio final do processo consistiu na fusão matemática dos adaptadores LoRA diretamente de volta nas matrizes fatiadas. O resultado é um modelo totalmente nativo, livre de dependências externas de pacotes de adaptação, pronto para ser executado em pipelines padrão de inferência.
Essa abordagem viabiliza casos de uso cruciais para a indústria:
- Edge AI e Dispositivos de Borda: Redução do consumo de VRAM permitindo a execução eficiente em hardware restrito, como placas de entrada ou dispositivos locais.
- Eficiência de Servidor (SaaS): A diminuição da contagem de parâmetros reais amplia o throughput (respostas por segundo) e reduz custos operacionais de infraestrutura em nuvem.
Acesse o Repositório Oficial
A versão finalizada, comprimida e curada deste modelo encontra-se publicamente disponível no Hugging Face Hub para validação e uso em pesquisas ou ambientes de produção:
- Repositório Hugging Face: https://huggingface.co/Kodjaoglanian/Qwen-1.5B-ASVD-Healed
Para carregar e testar o modelo diretamente em seu ambiente Python, utilize o seguinte trecho de código padrão:
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "Kodjaoglanian/Qwen-1.5B-ASVD-Healed"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype=torch.float16,
device_map="auto"
)
prompt = "The future of artificial intelligence relies on"
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
with torch.no_grad():
outputs = model.generate(**inputs, max_new_tokens=50, do_sample=False)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
