O que é OPAL?
OPAL (OPtimizer with an Agent in the Loop) envolve um otimizador do torch.optim já existente em uma linha. De tempos em tempos durante o treinamento, um agente de programação, o Claude Code por padrão, lê as perdas, as estatísticas dos gradientes e seus próprios relatórios de análise e decide se reescreve dois pequenos programas em Python: a regra de atualização que transforma gradientes em atualizações de parâmetros e o código de análise que mede o que ele quer observar. Ele pode mudar taxas de aprendizado, cronogramas, momentum, pré-condicionamento e clipping por grupo de parâmetros, mas é instruído a não mexer no modelo, nos dados, na perda nem na avaliação.
É o código de pesquisa por trás do artigo Reactive Optimizers, de Xingjian Bai, Jia-Hao Liang, Jayden Teoh e Vincent Sitzmann (arXiv 2610.33826), lançado como um pacote utilizável: pip install opal-optimizer, com uma CLI para execuções de teste, estimativas de custo, acompanhamento ao vivo e um relatório HTML de cada decisão e de cada diff de código. Inclui um backend experimental do Codex.
O repositório foi criado em 21 de outubro de 2026, tem licença MIT e cerca de 440 estrelas, e a v0.3.10 saiu em 3 de novembro de 2026.
OPAL vale a pena?
O OPAL vale a atenção de quem paga por treinamentos medidos em horas, e serve pouco abaixo disso. A ideia é que uma receita fixa de otimizador é escolhida antes do treinamento e nunca revista; o OPAL deixa um agente observar a execução e reescrever a regra de atualiza ção no meio do caminho. Até o agente mudar algo, uma execução envolvida é idêntica bit a bit à normal, e a execução de teste backend="keep" prova isso sem custo, que é o primeiro teste certo para um engenheiro cético.
Os resultados dos autores são animadores e escassos. No SiT-B/2 com ImageNet 256, o FID-50K caiu de 35.7 para 23.6, e no LightningDiT-B/1 de 3.22 para 2.31 com guidance, mas cada número é uma única execução por configuração, relatada pelos próprios autores, e o README registra que uma execução do modded-nanogpt na versão 0.2.0 terminou pior que o recorde de onde partiu. Como o agente decide de forma diferente a cada vez, os seus números vão variar.
O custo em tempo é fixo por decisão, não por passo. Uma decisão leva cerca de 40 s em média nas execuções dos autores, o que acrescentou 0.49 h a uma execução de RAEv2-B de 3.75 h, mas transformou scripts de uma GPU de 1 a 3 minutos em 27 a 31 minutos. blocking=False deixa o treinamento continuar enquanto o agente pensa, ao preço de um comportamento mais ruidoso.
A segurança merece uma frase clara. O shell do agente roda em um sandbox do sistema operacional sem rede, mas o código de otimizador que ele escreve roda dentro do seu processo de treinamento com as suas permissões e não fica isolado. Por padrão ele também lê cópias do seu script de treinamento e do código do modelo, que vão para a Anthropic; share_code=False as deixa de fora. Cada versão do programa fica guardada em disco, então o otimizador final é Python que você pode ler e reutilizar sem o agente.
Os limites são os de um pacote de pesquisa de três semanas: um único nó, sem FSDP, DeepSpeed ou vários nós, sem desfazer o próprio treinamento e sem teto de gasto, a menos que você defina max_cost_usd. Como forma de achar uma receita de otimizador melhor para uma família de modelos que você vai treinar muitas vezes, ele é mais interessante do que como um botão para apertar em todo job.
Onde ele se destaca
Um doutorando que treina modelos de difusão em um nó de 8x H100
Achar um cronograma de taxa de aprendizado e otimizador melhor sem uma varredura completa
Envolva o AdamW, faça a execução de teste keep gratuita e depois uma execução com agente e teto de algumas horas. A execução de RAEv2-B dos autores custou $13.30 em uso do agente e acrescentou 0.49 h de espera; o programa final em programs/ pode ser reutilizado em execuções seguintes.
Uma líder de ML em uma startup de 15 pessoas que pré-treina modelos de linguagem pequenos
Avaliar se vale adotar um otimizador ajustado por agente antes de comprometer computação
Rode primeiro opal estimate para ver o tempo de espera e o custo, depois compare uma execução envolvida com uma normal usando opal compare. Conte com variação entre execuções e reserve pelo menos duas execuções com agente antes de tirar conclusões.
Uma disciplina universitária de otimização para deep learning
Mostrar aos alunos como as escolhas de otimizador se comportam em uma execução real
O exemplo de MNIST em CPU leva cerca de 15 s por execução normal; a versão com agente levou 862 s e custou $2.70 no teste dos autores. O relatório HTML mostra cada decis ão, o raciocínio e o diff.
Antes de decidir
- Configuração
- pip install opal-optimizer no seu ambiente de treinamento (Python 3.10+, PyTorch 2.5+), rode opal doctor e envolva o otimizador com opal.wrap e um objetivo de uma frase. O Claude Code precisa estar instalado e logado na máquina do rank 0; um broker de caixa postal atende nós de GPU sem internet.
- Integrações
- Qualquer otimizador e scheduler do torch.optim; Hugging Face Trainer via opal.hf.OpalTrainer; Accelerate depois de accelerator.prepare, com limitações. O Claude Code é o backend padrão (claude-opus-5-5, esforço alto); o Codex é experimental.
- Dados e privacidade
- O agente vê o seu objetivo, os nomes e formatos dos parâmetros, as perdas, os próprios relatórios e, por padrão, cópias somente leitura do seu script de treinamento e do código do modelo, tudo enviado ao provedor do modelo. As métricas que você registra ficam locais, a menos que use show_agent=True. O código de otimizador escrito pelo agente roda sem isolamento no seu processo.
- Custo em escala
- O custo do agente foi de $9.71 a $17.25 por execução de várias horas nos exemplos publicados pelos autores, mais o tempo extra de GPU enquanto o treinamento espera, por exemplo 0.66 h em uma execução de LightningDiT de 6.13 h. max_cost_usd limita o gasto com Claude; não limita o Codex.
- Limites
- Apenas um nó; sem FSDP, DeepSpeed ou vários nós. Não consegue desfazer o treinamento, só corrigir os programas na decisão seguinte. Execuções curtas são dominadas pela espera do agente. Versão 0.3.x, em desenvolvimento ativo.
O que é bom
- A execução envolvida é idêntica bit a bit até o agente agir
- Execução de teste e estimativa de custo grátis antes de chamar o agente
- Relatório HTML com cada justificativa e cada diff de código
- Roda em CPU, uma GPU ou DDP dentro de um nó
- Shell do agente isolado e sem rede
O que não é
- Os resultados são execuções únicas relatadas pelos autores
- O código de otimizador do agente roda sem isolamento no seu processo
- Sem teto de custo, a menos que você defina um
- Sem suporte a vários nós, FSDP ou DeepSpeed
Ideal para
Pesquisadores de ML e laboratórios pequenos que rodam jobs de PyTorch de várias horas em um nó e querem explorar mudanças de otimizador que não testariam à mão.
Alternativas ao OPAL
OPAL: perguntas frequentes
- OPAL vale a pena?
- Um jeito engenhoso e bem instrumentado de deixar um agente ajustar um treinamento longo pelo caminho, mas os ganhos são execuções únicas relatadas pelos autores e ele pode piorar uma execução. Damos nota 3.6 de 5.
- Quanto custa OPAL?
- Gratuito sob a licença MIT. As chamadas do agente são cobradas na sua conta do Claude; as execuções de várias horas dos autores custaram de $9.71 a $17.25 em uso do agente.
- Quais são as desvantagens de OPAL?
- Os resultados são execuções únicas relatadas pelos autores; o código de otimizador do agente roda sem isolamento no seu processo; sem teto de custo, a menos que você defina um; sem suporte a vários nós, FSDP ou DeepSpeed.
- Para quem OPAL é indicado?
- Pesquisadores de ML e laboratórios pequenos que rodam jobs de PyTorch de várias horas em um nó e querem explorar mudanças de otimizador que não testariam à mão.
- Quanto custa OPAL para uma equipe ou em produção?
- O custo do agente foi de $9.71 a $17.25 por execução de várias horas nos exemplos publicados pelos autores, mais o tempo extra de GPU enquanto o treinamento espera, por exemplo 0.66 h em uma execução de LightningDiT de 6.13 h. max_cost_usd limita o gasto com Claude; não limita o Codex.
- OPAL é seguro para dados da empresa?
- O agente vê o seu objetivo, os nomes e formatos dos parâmetros, as perdas, os próprios relatórios e, por padrão, cópias somente leitura do seu script de treinamento e do código do modelo, tudo enviado ao provedor do modelo. As métricas que você registra ficam locais, a menos que use show_agent=True. O código de otimizador escrito pelo agente roda sem isolamento no seu processo.
- Quais são as melhores alternativas ao OPAL?
- As alternativas mais próximas que analisamos são The AI Scientist (v1, v2 and v3) e PyTorch.
Respostas verificadas em 11 de nov. de 2026.