Ao vivo 18/11 · Turma 318 nov às 19:00 MSK — aula prática gratuita de agentes de IA · Turma 3 ao vivo começa 23/11Aula 18/11 →Turma 3 (23/11)
LançamentoAnálise · No radarHabr AI→ original

NERVE: como silenciar os «neurônios SQL» no Qwen 27B e corrigir consultas do 1C sem retreinar

O Qwen 27B, ajustado com dados do 1C, confunde a linguagem de consultas do 1C com SQL: tabelas virtuais, parâmetros, construções alheias. Novos conjuntos de dados deram menos de 1% de ganho. Em vez disso, o autor encontrou os neurônios «culpados» nas camadas MLP e os atenuou multiplicando as colunas de down_proj por um coeficiente menor que um.

Processado por IA de Habr AI; editado por Hamidun News
NERVE: como silenciar os «neurônios SQL» no Qwen 27B e corrigir consultas do 1C sem retreinar
Fonte: Habr AI. Colagem: Hamidun News.
Ouvir artigo
Ficha técnica e números-chave
ParâmetroDados
Fonte originalHabr AI ↗
Editor-chefe
Dado-chave #1O mapa é construído sobre os tokens em que a resposta correta e a errada diferem
Dado-chave #2A seleção gulosa de edições é validada em uma metade de controle separada
Dado-chave #3A edição vive nos pesos e passa para o GGUF sem mudar a arquitetura

Uma dor conhecida: você ajustou um modelo aberto a um domínio específico, mas ele continua errando regularmente no mesmo ponto. Novos conjuntos de dados quase não ajudam, e cada rodada de coleta de dados custa semanas. O autor de um artigo no Habr deparou-se exatamente com isso no Qwen 3.8 27B, ajustado para o 1C:Enterprise. O modelo escreve código na linguagem embutida de forma razoável, mas confunde a linguagem de consultas do 1C com SQL: mistura tabelas virtuais, coloca parâmetros no lugar errado e traz construções que não existem no 1C. Conjuntos de dados adicionais deram menos de 1% de ganho em accuracy.

A hipótese: o SQL atrapalha

Os lexemas das duas linguagens são parecidos: SELECT, JOIN, WITH. O autor supôs que o conhecimento do SQL real puxa o modelo para a resposta errada. Então, em vez de retreinar, é possível encontrar os neurônios específicos que fazem isso e enfraquecê-los. Assim surgiu o pipeline NERVE.

Um neurônio aqui é um componente do vetor intermediário do bloco MLP (no Qwen 3.8 27B são 17.408 por camada) junto com a coluna da matriz W_down na qual ele escreve. Multiplicar a coluna por m significa multiplicar a ativação do neurônio por m em cada token. O valor 0 desliga o neurônio; 0,5 o reduz pela metade. A arquitetura não muda, e a edição sobrevive à quantização e à exportação para GGUF. No total há cerca de 1,1 milhão de candidatos (64 camadas), então uma busca às cegas não faz sentido.

Como funciona o pipeline

  1. São tomados pares «consulta correta / errada», como para DPO, cerca de duas mil. Como as respostas coincidem em 90–95%, comparam-se apenas os tokens diferentes, encontrados com o difflib. Calcular a média sobre toda a resposta diluiria o sinal.
  2. Hooks na entrada de cada down_proj coletam a ativação média dos neurônios nesses tokens. Em todos os pares são calculados a média, a estatística t e a consistência do sinal. O ranking é por |t|, para que dois ou três pares anômalos não criem falsos líderes.
  3. A atribuição por gradiente («gradiente × entrada») prevê como o margin mudará, ou seja, o quanto o modelo prefere a resposta correta à errada, se um neurônio for atenuado. Um neurônio com contribuição negativa é considerado «errado». A atribuição é cara, por isso é feita com 512 pares.
  4. A seleção gulosa testa os candidatos um a um sobre os já aceitos. A edição é mantida se o margin aumentou pelo menos 0,002 por token e o nll nas respostas corretas caiu no máximo 2%. Como as edições malsucedidas são revertidas, as previsões lineares somadas deixam de ser necessárias.

A principal proteção contra overfitting: o conjunto de validação é dividido em duas metades pelo hash da consulta. As decisões são tomadas em uma e o resultado é verificado na outra. Um conjunto só é considerado confirmado se, no controle, o margin aumentou e o nll não piorou além da tolerância. As edições confirmadas se acumulam em um arquivo JSON ao lado do mapa e são excluídas dos candidatos futuros.

O que foi descoberto pelo caminho

Primeiro erro: o mapa foi construído sobre tokens diferentes, mas a qualidade foi medida sobre toda a resposta. O efeito foi diluído cerca de 25 vezes. Correção: a mesma máscara de diff para o mapa e para a verificação. Segunda descoberta: reforçar os neurônios «bons» quebrava o nll com mais frequência, enquanto suprimir os errados dava um aumento estável do margin, e por isso o modo suppress passou a ser o principal. Outro fato observado: a excitação nas respostas erradas aparece em quase todas as camadas, ou seja, o comportamento semelhante ao SQL está espalhado por toda a profundidade da rede.

Limitações e conclusão

No texto disponível não há números finais: não sabemos quanto o accuracy aumentou no controle. É um modelo e um conjunto de dados, e o método se baseia em uma aproximação linear que falha quando as edições interagem, por isso a seleção gulosa é necessária. Para os profissionais, a ideia continua útil: se um modelo ajustado tem um erro persistente de «mistura» com um domínio vizinho, existe uma alternativa barata a mais uma rodada de SFT. São necessários pares de preferência, um forward-backward sobre uma amostra e uma metade de controle honesta. A lição principal: calcule a métrica sobre os mesmos tokens usados para construir o mapa e sempre verifique em dados que não participaram da seleção.

História

Perguntas frequentes sobre a notícia

O que se sabe sobre A hipótese: o SQL atrapalha?

Os lexemas das duas linguagens são parecidos: SELECT, JOIN, WITH. O autor supôs que o conhecimento do SQL real puxa o modelo para a resposta errada. Então, em vez de retreinar, é possível encontrar os neurônios específicos que fazem isso e enfraquecê-los. Assim surgiu o pipeline NERVE. Um neurônio aqui é um componente do vetor intermediário do bloco MLP (no Qwen 3.8 27B são 17.408 por camada) junto com a coluna da matriz W_down na qual ele escreve.

Como funciona o pipeline?

São tomados pares «consulta correta / errada», como para DPO, cerca de duas mil. Como as respostas coincidem em 90–95%, comparam-se apenas os tokens diferentes, encontrados com o difflib. Calcular a média sobre toda a resposta diluiria o sinal. Hooks na entrada de cada down_proj coletam a ativação média dos neurônios nesses tokens. Em todos os pares são calculados a média, a estatística t e a consistência do sinal. O ranking é por |t|, para que dois ou três pares anômalos não criem falsos líderes.

O que foi descoberto pelo caminho?

Primeiro erro: o mapa foi construído sobre tokens diferentes, mas a qualidade foi medida sobre toda a resposta. O efeito foi diluído cerca de 25 vezes. Correção: a mesma máscara de diff para o mapa e para a verificação. Segunda descoberta: reforçar os neurônios «bons» quebrava o nll com mais frequência, enquanto suprimir os errados dava um aumento estável do margin, e por isso o modo suppress passou a ser o principal.

ZK
Zhemal Khamidun — CPO da Alpina Digital, gerente de produto do AlpinaGPT. Cria produtos de IA desde 2019. O Hamidun News é um projeto pessoal que virou um agregador em produção com mais de 6.000 leitores.
✦ Unified AI Workspace · Nomad

Test Frontier LLMs & Autonomous Agents in One Workspace

Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.

Try Nomad AI →Launch Nomad Agent
O que você acha?
Carregando comentários…