A equipa Granite apresentou o LLMON, uma linguagem de marcação concebida para modelos de linguagem, e publicou dois modelos de pré-visualização experimental, granite-4.1-3b-LLMON-preview e granite-4.1-8b-LLMON-preview. Segundo os seus autores, este formato torna explícita a estrutura e o significado das informações fornecidas ao modelo, reforçando a sua resistência a injeções de prompt.
Um grande modelo de linguagem (LLM) gera cada novo token, ou seja, cada fragmento de texto, a partir do seu contexto. Ao longo de uma interação longa, este contexto enche-se de prompts de sistema, históricos de conversação, instruções sobre documentos, respostas de ferramentas, dados do utilizador, restrições e cadeias de raciocínio. Grande parte desta estrutura permanece implícita para o modelo ou é codificada em formatos como o JSON, que não foram concebidos para serem lidos por LLMs. Segundo a fonte, isto explica em parte a fragilidade dos modelos, especialmente os mais pequenos, bem como alguns comportamentos inesperados. Esta falta de estrutura também pode ser explorada por atacantes, nomeadamente através de injeções de prompt.
LLMON, que significa «LLM Object Notation», pronuncia-se «lemon». As suas etiquetas marcam componentes semanticamente coerentes, delimitados por separadores especiais reservados. Identificadores únicos permitem ligar uma instrução, que pode estar em qualquer parte do contexto, aos dados sobre os quais deve atuar, à semelhança de uma chamada de função com os seus argumentos em programação.
Separar instruções e dados
Uma injeção de prompt indireta consiste em esconder uma instrução maliciosa num dado, como um documento recuperado, uma resposta de ferramenta ou uma entrada do utilizador. Segundo a fonte, os modelos LLMON ignoram amplamente estas instruções ocultas, graças à separação explícita entre instruções e dados. Em alguns benchmarks, a taxa de sucesso dos ataques cai quase para zero, enquanto os modelos clássicos com afinação por instruções são desviados com uma probabilidade elevada.
Os autores compararam as pré-visualizações com vários modelos de código aberto e proprietários no benchmark OPI, que insere a injeção em dados de tarefas clássicas de processamento de linguagem. Medem a robustez como «1 − taxa de sucesso dos ataques». Segundo eles, o LLMON «elimina praticamente o problema» neste teste, evitando 47% mais ataques do que o melhor modelo de ponta testado, e 95% mais do que o melhor modelo de código aberto. Tendências semelhantes são observadas nos benchmarks ASB e StruQ. A fonte especifica que estes testes incidem sobre injeções estáticas, e que a equipa ainda está a trabalhar nos ataques adaptativos, que se desdobram ao longo de várias voltas de conversação.
Capacidades gerais e treino
Segundo a fonte, os ganhos em segurança não são obtidos em detrimento das capacidades gerais: nas grandes categorias de benchmarks padrão, os modelos LLMON obtêm resultados comparáveis aos dos modelos Granite 4.1 Instruct. Para experimentar, basta nomear as partes de uma volta de conversação, como instruction, data ou requirement, sendo que o modelo de conversação se encarrega de as transformar em blocos LLMON. Uma biblioteca de conversão também permite tratar dados estruturados, como o JSON, na forma de blocos tipados e endereçáveis.
Os modelos partem dos pontos de controlo base Granite 4.1 e não das versões instruct publicadas. Os autores reescreveram um corpus clássico de afinação por instruções no formato LLMON, e depois adicionaram blocos isca, presentes no contexto mas intencionalmente não ligados. Seguidamente, aplicaram cinco etapas de aprendizagem por reforço GRPO, seguidas de uma etapa DPO com base em mil pares de preferências provenientes das respostas do modelo a tentativas de injeção. O resultado, segundo a fonte, é uma regra de privilégio: uma instrução chamada por um bloco de execução tem autoridade, enquanto os dados, documentos ou resultados de ferramentas permanecem elementos a ler, e não ordens a seguir. Os autores especificam que se trata de um comportamento aprendido, e não de uma garantia imposta.
A fonte apresenta também um exemplo de adaptação no benchmark ScienceWorld, onde um agente realiza tarefas científicas elementares. Foi definido um vocabulário de etiquetas próprio para esta tarefa, e depois um adaptador LoRA foi treinado num modelo LLMON. As equipas são convidadas a partilhar os seus comentários nos GitHub Discussions, sendo que o projeto permanece, segundo os seus autores, uma pré-visualização experimental, não destinada a produção.
