Olá a todos!
Quem me lê aqui há algum tempo já sabe que eu tenho uma regra simples para escrever sobre coisas novas: não escrevo no dia em que saem á exepção de temas de segurança. A internet está desde sempre cheia de gente a dar veredictos definitivos duas horas depois de um lançamento, e o resultado quase sempre é o mesmo, entusiasmo a mais ou desdém a mais, e conhecimento a menos. Por isso, quando o AMALIA apareceu, resisti à comichão de despejar um post logo ali. Deixei passar seis dias. Seis dias a mexer, a partir, a testar em coisas reais, a ler o que os outros andaram a dizer, e só depois é que me sentei a escrever. E ainda bem que o fiz, porque a coisa mais interessante que descobri nestes seis dias não foi propriamente o modelo. Foi a forma como quase toda a gente o testou.
Mas como o Jack diria, vamos por partes.
O que é o AMALIA, sem a habitual bs de marketing
O AMALIA é um modelo de linguagem grande, um LLM, construído de raiz a pensar no português europeu. E quando digo aberto, digo aberto a sério, não aquele aberto de conveniência em que atiram uns pesos para o Hugging Face e escondem tudo o resto. O AMALIA vem com os pesos, com o código de treino, com os dados, com os benchmarks e com um relatório técnico que explica passo a passo como chegaram ali. É a diferença entre te darem um bolo e te darem a receita, os ingredientes e a chave da cozinha. Já me conhecem o suficiente para saber que isto, por si só, me ganha metade do coração.
Por trás disto está uma equipa académica portuguesa a sério, gente da NOVA School of Science and Technology, do NOVA LINCS, do Instituto de Telecomunicações e do Instituto Superior Técnico, com apoio da Fundação para a Ciência e Tecnologia. O trabalho foi aceite na PROPOR 2026, que é a conferência de referência para processamento computacional do português, e foi financiado através do Programa de Recuperação e Resiliência, ou seja, com dinheiro europeu de recuperação. O treino em si correu no Barcelona Supercomputing Center. Guardem este detalhe, porque vou voltar a ele lá mais para o fim, quando falar do que isto representa para lá da ferramenta.
Tecnicamente, o AMALIA é um modelo de nove mil milhões de parâmetros, e não nasceu do nada. Segundo a documentação partiu do EuroLLM 9B, um modelo europeu que já vinha bem preparado para várias línguas do continente, e a equipa pegou na fase final de pré treino e reorientou a coisa para dar muito mais peso ao português de Portugal. Não é um capricho semântico. Qualquer pessoa que já tenha pedido uma receita a um modelo estrangeiro e tenha recebido de volta um texto cheio de você, trem, ônibus e café da manhã sabe exatamente do que estou a falar. A esmagadora maioria dos modelos, mesmo os bons, escorregam para o português do Brasil à mínima distração, porque é essa a variante que domina os dados de treino. O AMALIA foi feito precisamente para não fazer isso.
Para quem gosta de saber o que está debaixo do capot
A parte que mais me agradou nesta história é que a equipa não teve medo de mostrar as tripas do processo, por isso vou aproveitar para as mostrar também.
O grosso dos dados especificamente portugueses veio do Arquivo.pt, o arquivo da web portuguesa, aquela maravilha silenciosa que anda a guardar páginas nossas há anos e que quase ninguém dá valor. A equipa copiou dali qualquer coisa como cento e noventa e cinco terabytes de arquivos web em bruto e depois passou tudo por uma máquina de moer. E moer aqui é mesmo moer. Filtraram domínios do Brasil para reduzir a contaminação com a outra variante, tiraram conteúdo sensível, limparam o texto extraído das páginas, aplicaram filtros de qualidade calibrados para português, removeram dados pessoais como emails, números de telefone e endereços de rede por causa do RGPD, e no fim desduplicaram tudo. Daquela montanha inicial sobraram uns cinco mil e oitocentos milhões de tokens de qualidade alta e média. É este o refinado, o resto foi para o lixo, e ainda bem, porque em dados a quantidade sem qualidade é veneno.
No pré treino, esses tokens portugueses juntaram se a várias outras fontes: a mistura original do EuroLLM, uns quarenta mil milhões de tokens de várias línguas europeias, mais uns sessenta mil milhões com melhor cobertura de código, e ainda uma pitada de dados sintéticos feitos de propósito para o modelo aprender a lidar com contextos longos. Por falar em contexto, uma das mexidas mais úteis foi esticar a janela de contexto de quatro mil para trinta e dois mil tokens, o que na prática significa que o modelo consegue engolir documentos bem maiores sem se perder a meio. Depois disto vieram as fases de afinação, primeiro um treino supervisionado para o ensinar a seguir instruções e a conversar, e depois um treino de preferência para o alinhar melhor com o que consideramos boas respostas. Existem duas versões que resultam disto, uma só com a afinação supervisionada e outra já com o passo de preferência por cima, e é esta última que costuma dar os melhores resultados.
Para quem gosta de números de infraestrutura, e eu sei que há aqui muita gente que gosta, o pré treino consumiu oitenta horas em duzentas e cinquenta e seis GPUs H100 da NVIDIA. As fases seguintes correram em sessenta e quatro dessas placas. Não é o tipo de coisa que se faz no homelab ao domingo à tarde, mas o resultado é um modelo que qualquer um de nós pode depois correr numa máquina bem mais modesta, e essa assimetria entre o custo de treinar e o custo de usar é, no fundo, o que torna o open source tão poderoso.
No entanto, num dos GGUF’s sacados do Hugging face tive um resultado bastante estranho que gostaria de saber mais o motivo por quem o fez:
Porque o motivo desta resposta? Pensei que este modelo tinha sido desenvolvido a partir do EuroLLM. Alguém que tenha estado envolvido no desenvolvimento pode me dizer pf?
E agora a parte que me deixou de cabelo em pé
Durante estes seis dias li praticamente tudo o que se escreveu por aí sobre o AMALIA. E, com honestidade, saí de lá mais preocupado com o estado do nosso conhecimento coletivo sobre esta tecnologia do que com qualquer limitação do modelo.
O padrão repete-se sem conta. Alguém abre o modelo, faz lhe três perguntas de cultura geral do género quem ganhou tal coisa em tal ano, ou qual é a capital de um país qualquer, o modelo hesita ou engana se num detalhe, e a conclusão é imediata e lapidar: não presta. E é aqui que me apetece parar tudo e ter uma conversa séria, porque este raciocínio revela um mal entendido profundo sobre o que é, afinal, um LLM.
Vamos ao básico, sem pressas. Um LLM não é uma enciclopédia. Não é uma base de dados de factos. É um modelo que aprendeu padrões da língua e do mundo a partir de texto, e que gera a resposta mais plausível dado o que lhe pedimos. Ele tem conhecimento, sim, mas esse conhecimento está distribuído de forma difusa pelos seus parâmetros, comprimido, aproximado, e tanto mais completo quanto maior o modelo e quantos mais dados viu. Um modelo de nove mil milhões de parâmetros treinado com um foco deliberado numa língua específica não vai ter a mesma memória factual bruta de um gigante de fronteira com centenas de milhares de milhões de parâmetros treinado com praticamente toda a internet. Isto não é um defeito, é física. É matemática. É a natureza da coisa.
E aqui está a parte que quase ninguém percebe mas que faz toda a diferença. Aquilo com que a maioria das pessoas interage no dia a dia não é um LLM. É um chatbot. E um chatbot não é o mesmo que o modelo que está lá dentro. Um chatbot é um sistema inteiro montado à volta do modelo: tem um enorme prompt de sistema a guiar o comportamento, tem ferramentas que pode chamar, tem acesso a pesquisa na web, tem memória, e, sobretudo, tem camadas de recuperação de informação. É aqui que entra o RAG, a geração aumentada por recuperação, essa técnica em que o sistema vai buscar informação a fontes externas em tempo real e a injeta no contexto antes de o modelo responder.
Ou seja, quando fazem uma pergunta factual muito específica a um assistente de fronteira e ele acerta em cheio com uma precisão quase sobrenatural, boa parte das vezes não foi o modelo que se lembrou daquilo de cor. Foi o sistema que foi buscar a informação e a serviu ao modelo numa bandeja. Muita da aparência de omnisciência dos grandes chatbots é, na prática, informação armazenada e recuperada como se de RAG se tratasse, e não conhecimento genuinamente cristalizado nos pesos. A pessoa do outro lado vê uma resposta certa e assume que o modelo sabe tudo. Não sabe. O sistema à volta dele é que foi esperto a preencher os buracos.
Por isso, quando alguém pega no AMALIA cru, um modelo de 9B e nada mais, e o compara com a experiência de usar um chatbot completo de uma empresa que gastou milhares de milhões a montar toda essa maquinaria de suporte, está a comparar coisas que não são comparáveis. É como pôr o motor de um carro em cima de uma bancada, rodar a chave, e queixar se de que não anda. Pois não anda, falta lhe o carro todo à volta. O motor pode até ser excelente, mas tu estás a avaliar a coisa errada.
E o mais irónico de tudo, quase poético, é que a própria equipa do AMALIA percebeu isto e disse o de forma explícita no relatório. Um dos resultados que mais defendem é que um modelo consegue captar os traços específicos de uma variante linguística menos representada mesmo quando o número de exemplos é ordens de magnitude menor do que o da variante dominante e da língua dominante, no caso o português do Brasil e o inglês. Repito, ordens de magnitude menor. Isto é o oposto de força bruta. É pontaria em vez de espingardada. E quem testou o modelo à procura de trivia enciclopédica estava, sem se aperceber, a fazer exatamente a pergunta que o modelo nunca prometeu responder, e a ignorar exatamente aquilo em que ele é bom.
O comportamento generalizado de quem escreveu sobre o AMALIA, com honrosas exceções, denota um enorme desconhecimento de como a tecnologia funciona e do que ela sabe e não sabe fazer. E isto não é um problema do AMALIA. É um problema nosso, coletivo, de literacia técnica. Andamos há três anos a usar estas ferramentas todos os dias e a maior parte das pessoas ainda não faz a mínima ideia do que está a acontecer por baixo. É esse o dado que me tirou o sono nesta semana, não os benchmarks.
Onde o AMALIA brilha, e como eu descobri isso na prática
Deixem me então contar como é que eu andei a usar o modelo, porque é aqui que a conversa deixa de ser teórica e passa a ter mãos e pés.
Tenho um familiar que é um apaixonado por documentários franceses independentes. Não falo dos documentários polidos das grandes plataformas, falo daquelas produções pequenas, muitas vezes feitas por uma ou duas pessoas com uma câmara e uma teimosia enorme, o género de obra que nunca chega ao grande público mas que muitas vezes tem mais alma do que uma produção milionária. O problema é sempre o mesmo: muitas destas produções, sobretudo as que vêm da esfera francófona, saem apenas com legendas em francês. Nunca em português de Portugal. O mercado é pequeno de mais para justificar uma legendagem profissional para a nossa variante, e pronto, ficamos de fora.
Durante anos a solução foi má. Ou se via com o francês a martelar por cima da imagem, o que exige um domínio da língua que nem toda a gente tem, ou se passava as legendas por tradutores automáticos genéricos, e o resultado era invariavelmente um português mole, aguado, com aquele sabor a Brasil e com erros que davam vontade de desligar. Legendar é uma arte traiçoeira, tens pouco espaço, tens tempo contado, e o registo tem de soar natural na língua de chegada ou destrói a experiência toda.
Peguei então no AMALIA e montei um fluxo simples para traduzir os ficheiros srt de francês (que os produtores indie disponibilizavam) para português, mantendo a estrutura de tempos das legendas intacta e pedindo lhe português europeu. E foi aqui que o modelo me calou a boca. O resultado foi de longe, o melhor que já obtive de qualquer ferramenta até hoje. As expressões saem certas. O registo é o nosso. Não há trens, não há ônibus, não há café da manhã, não há aquele você a cada duas linhas. Sai comboio, sai autocarro, sai pequeno almoço, sai tu e você nos sítios onde nós, portugueses, os usaríamos de facto. As frases respiram como frases portuguesas respiram, e não como uma tradução decalcada de outra língua.
E isto não é sorte nem é magia. É consequência direta das escolhas que a equipa fez. O modelo foi treinado com dados de tradução pensados para a nossa variante, incluíram capacidades de tradução em ambos os sentidos, e há uma preocupação genuína e visível com a língua ao longo de todo o processo. Aliás, um dos resultados mais impressionantes do relatório é precisamente num benchmark que mede o enviesamento entre as duas variantes do português. A maioria dos modelos, mesmo mandados explicitamente escrever em português europeu, escorrega na mesma para o brasileiro. O AMALIA é dos pouquíssimos que se mantém firme na nossa variante de forma consistente, e nesse teste específico bate modelos bem maiores do que ele, incluindo alguns pesos pesados que toda a gente conhece. Para o meu caso de uso concreto, legendas que têm de soar a português de Portugal, isto não é um extra simpático. É o requisito. É a diferença entre uma tradução que se vê e uma que se sofre.
Reparem no que aqui aconteceu. Eu não usei o AMALIA como enciclopédia. Não lhe perguntei quem descobriu o quê nem em que ano. Usei o para uma tarefa linguística concreta, exigente, com um critério de qualidade claro, e ele entregou melhor do que a concorrência. Foi só uma questão de o avaliar naquilo que ele foi construído para fazer, em vez de o julgar por aquilo que nunca prometeu ser.
Não vou pintar a coisa cor de rosa, que não é o estilo da casa
Dito tudo isto, seria desonesto da minha parte fazer disto um panfleto. O AMALIA tem limites, e a própria equipa é a primeira a assumir isto, o que só aumenta o meu respeito.
É um modelo de nove mil milhões de parâmetros, com tudo o que isso implica. Não esperem dele o desempenho de raciocínio complexo dos gigantes de fronteira. Em conhecimento factual bruto vai ficar atrás de modelos muito maiores, e já expliquei ao pormenor porque é que isso é esperado e porque é que, no fundo, nem sequer é o ponto. A equipa reconhece que teve recursos de computação limitados face aos grandes laboratórios e que trabalhou com uma fração dos dados a que esses laboratórios têm acesso. A escassez de dados de qualidade em português continua a ser o grande travão de mão de toda esta área, e não se resolve com um passe de mágica. Há categorias linguísticas, como a fonologia e os jogos de palavras, onde o próprio modelo se atrapalha mais, e o relatório não esconde isso.
Mas nada disto é um defeito escondido debaixo do tapete. É a fronteira honesta do que um projeto académico, com meios comparativamente modestos e um foco muito bem definido, consegue entregar. E o que entrega, dentro desse âmbito, é notável.
Se o acho o investimento barato? De forma alguma, pelo dinheiro gasto acho que poderia ter sido entregue algo melhor, but hey…. os que os que me conhecem sabem que diria em seguida um #hastag.
O que isto representa, para lá do modelo
Volto agora àquele detalhe que vos pedi para guardarem lá atrás. Isto foi feito por universidades portuguesas, com dados portugueses, com dinheiro europeu, e num supercomputador europeu. Tudo aberto. Tudo escrutinável. Tudo nosso.
Numa altura em que ando aqui há meses a bater na mesma tecla, a de que não podemos ficar dependentes de modelos que vivem em servidores que não controlamos, sob termos de serviço que mudam quando lhes apetece, e que num belo dia nos podem simplesmente ser cortados por uma decisão tomada do outro lado do Atlântico, aparece um projeto como o AMALIA e mostra que há caminho. Que dá para construir capacidade própria. Que a nossa língua, com todas as suas manias e subtilezas, não tem de ficar à espera das migalhas de atenção dos grandes laboratórios. Que a soberania tecnológica não é um chavão de conferência, é uma coisa que se constrói com trabalho, com dados bem tratados e com a coragem de abrir tudo em vez de esconder.
O valor de o modelo ser totalmente aberto é sempre o mesmo, e nunca me canso de o repetir. Podes ver como funciona. Podes mexer. Podes correr localmente sem que uma única palavra tua saia da tua rede. Podes construir por cima. E, sobretudo, não ficas refém da sobrevivência comercial nem do humor geopolítico de ninguém. Um investigador, uma pequena empresa, um professor, um curioso com uma máquina jeitosa, todos passam a ter nas mãos algo que fala verdadeiramente a nossa língua.
Para fechar
Chegamos ao fim de mais um post. Se há uma coisa que quero que fique destes seis dias com o AMALIA, não é sequer o elogio ao modelo, por mais merecido que ele seja. É o convite a percebermos melhor a tecnologia que já usamos todos os dias. A saber distinguir um LLM de um chatbot. A perceber que muita da aparente sabedoria dos grandes assistentes é maquinaria de recuperação bem montada, e não pura memória do modelo. A avaliar cada ferramenta por aquilo que ela foi feita para fazer, em vez de a atirar contra uma parede qualquer e concluir que não presta porque não fez o que nunca prometeu.
O AMALIA não é o modelo mais poderoso do mundo, e nunca quis ser. É um modelo que fala português de Portugal a sério, feito por gente nossa, aberto de fio a pavio, e que na minha utilização real, a traduzir legendas para quem de outra forma ficaria de fora, já me deu mais do que qualquer alternativa. Para mim, é assim que se parece um passo certo: sem espalhafato, com substância, e com um cuidado genuíno pela língua que nos define.
Se andarem a mexer nele, contem me como correu, e já sabem, se encontrarem algo estranho ou incorreto sabem onde me encontrar.
Como sempre, mantenham se curiosos e mantenham se críticos.
Até ao próximo post.
Abraço,
Nuno
Links úteis
- Ponto de entrada do AMALIA no GitHub: https://github.com/AMALIA-LLM/AMALIA
- Repositórios da organização, com o código de treino, os pipelines de dados e os benchmarks: https://github.com/orgs/AMALIA-LLM/repositories
- Relatório técnico completo no arXiv: https://arxiv.org/abs/2603.26511
- Referência da publicação na PROPOR 2026: https://aclanthology.org/2026.propor-1.38/
- Arquivo.pt, a fonte de dados portugueses que tornou isto possível: https://arquivo.pt/
