O projeto llama.cpp introduz suporte à arquitetura Granite-Switch, uma variante de modelo denso que apresenta N adaptadores LoRA embutidos, selecionados por token por meio de tokens de controle. Esta implementação substitui um índice global "pegajoso" (sticky) anterior, baseado em prova de conceito, por um mecanismo de atenção "roteador" causal no gráfico para resolver os índices dos adaptadores.

  • O novo roteador utiliza uma camada de atenção causal de cabeça única para recuperar o índice do adaptador dentro do gráfico, corrigindo problemas de concorrência nos quais múltiplas sequências anteriormente vazavam estados de adaptador umas nas outras.
  • Ao armazenar as chaves e valores do roteador no cache KV por sequência, as solicitações concorrentes agora estão isoladas sem exigir gerenciamento de estado global.
  • A arquitetura suporta alternância no meio da sequência, permitindo que diferentes adaptadores sejam ativados para tarefas específicas, como verificabilidade ou reescrita de consultas, dentro de uma única sequência.
  • Uma limitação conhecida permanece: assim que um adaptador é acionado dentro de uma sequência, ele permanece ativo até o fim da sequência, pois o ganho do roteador é plano e carece de viés de recente.

Esta alteração permite inferência eficiente em múltiplas tarefas na CPU ao alternar dinamicamente entre adaptadores especializados sem recarregar os modelos, mantendo o isolamento para solicitações em lote concorrentes.