La arquitectura MACE (Multi-Atomic Cluster Expansion) es un modelo avanzado de aprendizaje profundo geométrico diseñado para predecir energías potenciales y fuerzas atómicas mediante redes neuronales de grafos, representaciones E(3)-equivariantes y expansiones de interacciones de muchos cuerpos.
Su principal innovación consiste en incorporar mensajes geométricos de orden superior (higher-order messages), capaces de representar correlaciones entre múltiples átomos dentro de una misma operación de actualización.
A diferencia de determinadas Graph Neural Networks que necesitan numerosas capas de message passing para construir representaciones de interacciones complejas, MACE utiliza productos tensoriales y expansiones de clústeres atómicos para aprender relaciones de muchos cuerpos con una profundidad relativamente reducida.
MACE fue desarrollada por Ilyes Batatia, Dávid Péter Kovács, Gregor N. C. Simm, Christoph Ortner y Gábor Csányi, investigadores vinculados a la Universidad de Cambridge y otras instituciones.
La investigación original apareció en junio de 2022 en arXiv y posteriormente fue publicada en NeurIPS 2022 bajo el título MACE: Higher Order Equivariant Message Passing Neural Networks for Fast and Accurate Force Fields.
La arquitectura combina cuatro conceptos fundamentales:
- Atomic Cluster Expansion (ACE): un marco matemático que construye representaciones sistemáticas de entornos atómicos mediante correlaciones de muchos cuerpos.
- Equivariant Message Passing: un procedimiento que intercambia información geométrica entre átomos respetando simetrías espaciales.
- Tensor Products: operaciones que combinan representaciones geométricas para construir características de orden superior.
- Energy-Based Modeling: predicción de una energía potencial diferenciable a partir de la cual se calculan las fuerzas.
La arquitectura MACE utiliza representaciones escalares, vectoriales y tensoriales compatibles con rotaciones, traslaciones y reflexiones.
Mediante funciones radiales y armónicos esféricos, describe cómo se distribuyen espacialmente los vecinos de cada átomo.
Después, emplea productos tensoriales repetidos para obtener características que capturan relaciones entre varios átomos.
La información resultante pasa por bloques de interacción y finalmente se transforma en contribuciones energéticas.
La energía total del sistema se calcula sumando estas contribuciones.
Las fuerzas se obtienen mediante el gradiente negativo de la energía respecto a las posiciones de los átomos.
La investigación original mostró resultados competitivos en benchmarks como rMD17, 3BPA y AcAc, utilizados para evaluar potenciales moleculares.
Posteriormente, el ecosistema MACE evolucionó hacia modelos preentrenados para materiales y moléculas, entre ellos MACE-MP y MACE-OFF, y nuevas variantes multiconjunto.
Actualmente, el proyecto dispone de una implementación en PyTorch, integraciones con Atomic Simulation Environment (ASE) y herramientas para entrenar, evaluar y ajustar modelos.
En esta guía estudiaremos el funcionamiento de MACE, su relación con Atomic Cluster Expansion, la equivariancia E(3), los productos tensoriales, las interacciones de muchos cuerpos y las predicciones de energía y fuerzas.
También incluiremos ejemplos educativos en Python, ejemplos con la implementación oficial, comparaciones con NequIP, Allegro y EGNN, aplicaciones científicas, limitaciones, referencias y metadatos SEO para WordPress.
1. ¿Qué es la arquitectura MACE?
MACE es una arquitectura de red neuronal geométrica para aprender potenciales interatómicos.
Un potencial interatómico representa la relación entre una configuración de átomos y su energía potencial.
Podemos expresar el modelo como:
[
E_\theta=E_\theta(Z,R)
]
Donde:
- (E_\theta) representa la energía potencial predicha.
- (Z) representa las especies químicas.
- (R) contiene las coordenadas tridimensionales.
- (\theta) representa los parámetros de la red.
La configuración atómica puede describirse mediante:
[
R={\mathbf r_1,\mathbf r_2,\ldots,\mathbf r_N}
]
Con:
[
\mathbf r_i=(x_i,y_i,z_i)
]
La función energética predicha permite calcular las fuerzas:
[
\boxed{\mathbf F_i=-\nabla_{\mathbf r_i}E_\theta}
]
Esta relación es importante porque la dinámica molecular utiliza fuerzas para calcular el movimiento de los átomos.
MACE aprende una función que aproxima los datos de referencia y permite evaluar múltiples configuraciones con un coste potencialmente menor que ejecutar nuevos cálculos electrónicos completos para cada una.
Sin embargo, el modelo no incorpora automáticamente todas las leyes físicas posibles.
Su fiabilidad depende del dominio de entrenamiento y de las características representadas por la arquitectura.
2. ¿Qué significa Multi-Atomic Cluster Expansion?
El nombre puede descomponerse en tres conceptos.
Multi-Atomic
La arquitectura representa relaciones que involucran varios átomos.
No se limita a interacciones independientes entre parejas.
Cluster Expansion
Utiliza ideas procedentes de expansiones de clústeres atómicos para construir representaciones sistemáticas de entornos locales.
Neural Network
Las características geométricas y sus combinaciones se aprenden mediante una red neuronal.
La expresión Multi-Atomic Cluster Expansion destaca la capacidad de construir representaciones de orden superior mediante operaciones aprendidas.
No significa que la red enumere exhaustivamente todas las combinaciones posibles de átomos.
Su eficiencia procede precisamente de factorizar y reutilizar representaciones para evitar ese coste combinatorio.
3. ¿Por qué es necesario modelar interacciones de muchos cuerpos?
En física y química, la energía de un sistema puede depender de relaciones entre varios átomos.
Un potencial sencillo de dos cuerpos puede escribirse como:
[
E=\sum_{i<j}V_2(r_{ij})
]
Donde (r_{ij}) representa la distancia entre dos átomos.
Este modelo puede describir ciertas interacciones, pero no representa explícitamente todas las dependencias angulares y colectivas.
En una molécula, el ángulo entre tres átomos puede influir en la energía.
Por ejemplo:
[
E_3=V_3(r_{ij},r_{ik},\theta_{jik})
]
Donde (\theta_{jik}) representa el ángulo entre dos enlaces o desplazamientos relativos.
También pueden existir dependencias que involucran cuatro o más átomos.
Estas interacciones resultan importantes para describir geometría molecular, enlaces y propiedades de materiales.
MACE busca aprender representaciones capaces de incorporar estas dependencias de forma eficiente.
4. ¿Qué es Body Order?
El body order representa el número de átomos que participan en una relación de interacción.
| Orden | Elementos | Ejemplo |
|---|---|---|
| 1-body | Un átomo | Energía de referencia por especie |
| 2-body | Dos átomos | Distancia entre una pareja |
| 3-body | Tres átomos | Ángulo definido por tres posiciones |
| 4-body | Cuatro átomos | Correlación geométrica de cuatro posiciones |
| Higher-body | Cinco o más átomos | Relaciones colectivas más complejas |
El orden de interacción no debe confundirse con el número de capas de la red.
Una sola capa puede construir relaciones de varios cuerpos.
Este principio es central para MACE.
5. ¿Qué es Atomic Cluster Expansion (ACE)?
Atomic Cluster Expansion es un marco matemático desarrollado para representar la energía de sistemas atómicos mediante funciones de los entornos locales.
Una configuración puede describirse mediante vecinos alrededor de un átomo central.
La energía total se aproxima como:
[
E=\sum_i E_i(\mathcal N_i)
]
Donde:
- (E_i) representa una contribución energética local.
- (\mathcal N_i) es el vecindario del átomo (i).
ACE construye funciones de base que describen combinaciones geométricas de esos vecinos.
Estas funciones pueden organizarse por orden de correlación.
El objetivo consiste en obtener una representación sistemática de las interacciones de muchos cuerpos.
MACE adopta este principio dentro de una arquitectura neuronal.
6. Diferencia entre ACE tradicional y MACE
ACE puede utilizar funciones de base predefinidas y coeficientes ajustados.
MACE combina expansiones de orden superior con representaciones neuronales aprendidas y message passing.
| Característica | ACE | MACE |
|---|---|---|
| Representación de muchos cuerpos | Sí | Sí |
| Expansión de clústeres | Sí | Sí |
| Red neuronal profunda | No necesariamente | Sí |
| Message passing | No es requisito | Sí |
| Características equivariantes | Según formulación | Sí |
| Productos tensoriales aprendidos | Según implementación | Componente central |
| Energía y fuerzas | Sí | Sí |
La relación entre ambos no implica que MACE sea simplemente ACE con una capa densa adicional.
MACE combina representaciones de muchos cuerpos con actualizaciones neuronales geométricas.
7. Arquitectura general de MACE
El modelo puede dividirse en siete etapas.
Etapa 1. Representación de átomos
Cada átomo se identifica mediante su especie química.
Etapa 2. Construcción del grafo
Se identifican los vecinos dentro de un radio de corte.
Etapa 3. Representación radial
Se codifican las distancias entre átomos.
Etapa 4. Representación angular
Se utilizan armónicos esféricos para describir direcciones.
Etapa 5. Higher-Order Equivariant Message Passing
Se combinan características mediante productos tensoriales y expansiones de correlaciones.
Etapa 6. Readout energético
Las representaciones se transforman en contribuciones a la energía.
Etapa 7. Fuerzas
Se calcula el gradiente negativo de la energía.
Diagrama conceptual
SISTEMA ATÓMICO
Especies químicas + xyz
|
v
Grafo de vecinos
Radio de corte
|
+---------+---------+
| |
v v
Distancias Direcciones
| |
v v
Base radial Armónicos esféricos
| |
+---------+---------+
|
v
MACE INTERACTION
|
Tensor Products
|
Higher-Order Features
|
Equivariant Messages
|
v
Nuevas características
|
v
Bloques adicionales
|
v
Atomic Readout
|
v
Energías por átomo
|
v
ENERGÍA TOTAL
|
v
Diferenciación automática
|
v
FUERZAS
El diagrama es una simplificación conceptual.
La implementación real incluye normalización, proyecciones, selección de irreps, conexiones y funciones de lectura especializadas.
8. ¿Cómo representa MACE un átomo?
La entrada contiene una identidad química y una posición tridimensional.
Para el átomo (i):
[
(Z_i,\mathbf r_i)
]
La identidad química se transforma en un embedding:
[
h_i^{(0)}=\operatorname{Embed}(Z_i)
]
Los vecinos se identifican mediante una condición:
[
|\mathbf r_j-\mathbf r_i|<r_c
]
Donde (r_c) es el radio de corte.
Para cada vecino se calcula el desplazamiento:
[
\mathbf r_{ij}=\mathbf r_j-\mathbf r_i
]
Y su distancia:
[
d_{ij}=|\mathbf r_{ij}|
]
Estas cantidades proporcionan la base del procesamiento geométrico.
9. ¿Qué es el radio de corte?
El radio de corte establece la distancia máxima para construir conexiones locales del grafo.
Puede expresarse como:
[
\mathcal N(i)={j:d_{ij}<r_c}
]
La elección del radio afecta a la información disponible.
Un radio pequeño reduce el coste, pero puede omitir relaciones importantes.
Un radio grande proporciona más vecinos y aumenta el coste computacional.
El valor adecuado depende del sistema, los datos y el objetivo científico.
Además, los modelos con message passing pueden incorporar información de vecinos indirectos después de varias capas.
Por tanto, el campo receptivo final no tiene por qué coincidir exactamente con un único radio de corte.
10. ¿Qué es la equivariancia E(3)?
MACE utiliza operaciones compatibles con el grupo euclidiano E(3).
Este grupo incluye:
- Rotaciones.
- Traslaciones.
- Reflexiones.
Una transformación puede escribirse como:
[
\mathbf r_i’=Q\mathbf r_i+\mathbf t
]
Donde (Q) es una matriz ortogonal.
La energía debe ser invariante:
[
E_\theta(QR+\mathbf t)=E_\theta(R)
]
Las fuerzas deben transformarse de manera coherente:
[
\mathbf F_i(QR+\mathbf t)=Q\mathbf F_i(R)
]
Este comportamiento es importante para que el modelo no dependa de una orientación arbitraria de la molécula.
11. ¿Qué son las representaciones irreducibles?
MACE utiliza representaciones geométricas organizadas según grados angulares y paridad.
Una representación irreducible, o irrep, puede identificarse mediante:
[
(\ell,p)
]
Donde:
- (\ell) es el grado angular.
- (p) indica paridad.
Cada grado contiene:
[
2\ell+1
]
componentes.
| Grado | Componentes | Interpretación |
|---|---|---|
| 0 | 1 | Escalar |
| 1 | 3 | Vector |
| 2 | 5 | Representación de orden superior |
| 3 | 7 | Representación de orden superior |
MACE puede utilizar diferentes multiplicidades de estas representaciones.
Por ejemplo, una configuración puede contener 128 canales escalares y 128 canales vectoriales.
La forma exacta depende del modelo elegido.
12. ¿Qué son los armónicos esféricos?
Los armónicos esféricos permiten representar dependencias angulares.
Se escriben como:
[
Y_\ell^m(\theta,\phi)
]
En MACE se aplican a las direcciones relativas entre átomos:
\frac{\mathbf r_{ij}}{d_{ij}}
]
Las funciones radiales representan la magnitud de la separación.
Los armónicos esféricos representan la dirección.
La combinación permite construir filtros geométricos equivariantes.
13. ¿Qué son los productos tensoriales?
Los productos tensoriales combinan representaciones geométricas siguiendo reglas matemáticas compatibles con las rotaciones.
En MACE son fundamentales para construir correlaciones de orden superior.
Conceptualmente:
H^{(\nu)}\otimes A
]
Donde:
- (H^{(\nu)}) es una representación de determinado orden.
- (A) representa información geométrica agregada.
- (\otimes) es un producto tensorial equivariante.
La implementación utiliza acoplamientos válidos entre grados angulares y paridades.
Estas operaciones permiten construir relaciones de muchos cuerpos sin enumerar de forma independiente todos los grupos posibles.
14. ¿Qué son los coeficientes de Clebsch–Gordan?
Son coeficientes matemáticos utilizados para combinar representaciones de rotaciones.
Permiten determinar cómo se relacionan diferentes grados.
La regla angular general es:
[
|\ell_1-\ell_2|
\leq
\ell_{\mathrm{out}}
\leq
\ell_1+\ell_2
]
Las reglas de paridad también deben respetarse.
Estas restricciones son importantes para garantizar equivariancia.
MACE utiliza bibliotecas especializadas, como e3nn, para implementar operaciones geométricas de este tipo.
15. ¿Qué es Higher-Order Equivariant Message Passing?
El message passing convencional intercambia información entre nodos conectados.
Una operación general puede escribirse como:
[
m_i=\sum_{j\in\mathcal N(i)}
\phi(h_i,h_j,e_{ij})
]
Posteriormente:
[
h_i’=U(h_i,m_i)
]
En MACE, los mensajes contienen representaciones de orden superior construidas mediante productos tensoriales.
Esto permite aprender correlaciones complejas del entorno dentro de una misma etapa de propagación.
La ventaja es que no se necesita aumentar indefinidamente la profundidad de la red para obtener representaciones geométricas expresivas.
16. ¿Qué significa correlación de cuatro cuerpos?
Una correlación de cuatro cuerpos puede involucrar un átomo central y tres vecinos.
Por ejemplo:
[
i,j,k,l
]
La relación puede incorporar distancias y ángulos entre diferentes combinaciones de estas posiciones.
En MACE, las características de mayor orden se construyen mediante operaciones tensoriales factorizadas.
La arquitectura evita evaluar explícitamente todas las posibles combinaciones de cuatro átomos mediante un bucle combinatorio independiente.
Esto contribuye a su eficiencia.
El artículo original demostró que las representaciones de cuatro cuerpos permitían alcanzar elevada precisión con pocas iteraciones de message passing.
El número exacto de iteraciones depende de la configuración y de la versión experimental: los resúmenes publicados del trabajo describen variantes con una o dos iteraciones.
La conclusión principal es que aumentar el orden de las representaciones permite reducir la profundidad necesaria.
17. ¿Cómo aprende MACE la energía?
Después de las capas geométricas, MACE produce contribuciones energéticas escalares.
Para un sistema de (N) átomos:
\sum_{i=1}^{N}E_i
]
La suma garantiza invariancia ante permutaciones de átomos y permite obtener una energía extensiva.
Las contribuciones (E_i) pueden contener efectos de múltiples vecinos.
No son necesariamente energías físicas únicas y observables asignadas a cada átomo.
Constituyen una descomposición interna aprendida.
18. ¿Cómo se calculan las fuerzas?
Las fuerzas se obtienen mediante diferenciación:
-\frac{\partial E_{\mathrm{total}}}
{\partial \mathbf r_i}
}
]
Esto permite obtener fuerzas compatibles matemáticamente con la energía aprendida.
La diferenciación automática de PyTorch calcula estas derivadas.
Este enfoque facilita entrenar y evaluar simultáneamente energías y fuerzas.
Sin embargo, que las fuerzas procedan de una energía diferenciable no garantiza que representen correctamente el sistema físico fuera de los datos utilizados.
19. ¿Cómo se entrena MACE?
El entrenamiento utiliza configuraciones atomísticas con etiquetas de referencia.
Estas pueden incluir:
- Especies químicas.
- Coordenadas.
- Energías.
- Fuerzas.
- Tensiones o esfuerzos en sistemas periódicos, cuando están disponibles.
La función de pérdida puede combinar diferentes objetivos.
Conceptualmente:
\lambda_E\mathcal L_E
+
\lambda_F\mathcal L_F
+
\lambda_S\mathcal L_S
]
Donde:
- (\mathcal L_E) mide errores energéticos.
- (\mathcal L_F) mide errores de fuerzas.
- (\mathcal L_S) mide errores de estrés, cuando corresponde.
Los pesos determinan la importancia relativa de cada objetivo.
Es necesario prestar atención a las unidades y escalas de las diferentes magnitudes.
La energía suele expresarse en eV y las fuerzas en eV/Å en muchos datasets atomísticos, aunque no todos utilizan las mismas convenciones.
20. ¿Qué es Force Matching?
Force Matching es el procedimiento de ajustar un potencial para reproducir fuerzas de referencia.
Una pérdida típica es:
\frac{1}{3N}
\sum_i
|\hat{\mathbf F}_i-\mathbf F_i|^2
]
Las fuerzas proporcionan información detallada sobre cómo cambia la energía al modificar coordenadas.
Por esta razón, pueden ser especialmente útiles durante entrenamiento.
Sin embargo, el cálculo de gradientes puede incrementar el coste de memoria y cómputo.
21. ¿Qué resultados obtuvo MACE?
La publicación original evaluó MACE en distintos benchmarks atomísticos.
rMD17
Contiene configuraciones moleculares con energías y fuerzas de referencia.
MACE alcanzó resultados competitivos o superiores a diferentes métodos considerados en el estudio.
3BPA
Es un benchmark basado en 3-(benzyloxy)pyridin-2-amine.
Se utiliza para estudiar generalización y precisión de potenciales moleculares.
AcAc
El benchmark de acetilacetona permite evaluar configuraciones de una molécula con diferentes estados geométricos.
La arquitectura mostró ventajas relacionadas con precisión y eficiencia.
Los resultados deben interpretarse según el tamaño del conjunto de entrenamiento, las divisiones de datos y las métricas utilizadas.
No existe una garantía de superioridad universal frente a modelos desarrollados posteriormente.
22. ¿Qué son los modelos fundacionales MACE?
Además de la arquitectura original, el ecosistema incluye modelos preentrenados.
Estos modelos se entrenan sobre conjuntos amplios de configuraciones atomísticas.
Después pueden utilizarse directamente para determinadas predicciones o como punto de partida para fine-tuning.
Entre las familias conocidas se encuentran:
- MACE-MP, orientada a materiales.
- MACE-OFF, orientada a sistemas de química orgánica compatibles.
- Modelos multiconjunto, como MACE-MH.
La existencia de pesos preentrenados facilita probar la herramienta.
Sin embargo, cada familia tiene restricciones de elementos, niveles de teoría, dominios de entrenamiento y condiciones de licencia.
No debe suponerse que un modelo entrenado para materiales cristalinos proporciona resultados científicamente válidos para cualquier biomolécula.
23. ¿Qué es MACE-MP?
MACE-MP es una familia de potenciales aprendidos a partir de datos relacionados con Materials Project.
Los modelos iniciales cubren 89 elementos químicos y fueron entrenados con configuraciones procedentes de trayectorias de relajación de estructuras cristalinas.
Se utilizan para estudiar materiales, superficies y sistemas relacionados.
La precisión depende del tipo de estructura.
Las energías pueden tener referencias y correcciones diferentes de las utilizadas en otros datasets.
Por tanto, las comparaciones requieren verificar el nivel de teoría y las convenciones de energía.
24. ¿Qué es MACE-OFF?
MACE-OFF es una familia de potenciales preentrenados orientada a moléculas orgánicas y determinados sistemas relacionados.
Los modelos MACE-OFF23 cubren un conjunto específico de elementos químicos.
Pueden utilizarse en determinadas aplicaciones de química molecular.
Sin embargo, no deben interpretarse como modelos universales para cualquier composición.
También es importante comprobar sus condiciones de licencia.
25. MACE frente a NequIP
NequIP, estudiada en la Entrada 136, utiliza redes E(3)-equivariantes para predecir energías y fuerzas.
MACE comparte principios geométricos, pero enfatiza mensajes de orden superior.
| Característica | NequIP | MACE |
|---|---|---|
| Arquitectura | GNN equivariante | GNN equivariante de orden superior |
| Armónicos esféricos | Sí | Sí |
| Productos tensoriales | Sí | Sí |
| Message passing | Sí | Sí |
| Correlaciones de muchos cuerpos | Sí | Expansión de orden superior explícita |
| Profundidad necesaria | Depende del problema | Puede reducirse mediante mensajes de mayor orden |
| Energía y fuerzas | Sí | Sí |
| Uso principal | Potenciales interatómicos | Potenciales interatómicos |
MACE no elimina las ventajas de NequIP.
Introduce un compromiso diferente entre expresividad por capa, profundidad y coste.
26. MACE frente a Allegro
Allegro, estudiada en la Entrada 137, utiliza una arquitectura estrictamente local sin message passing tradicional entre representaciones de átomos.
MACE utiliza message passing, pero construye características de orden superior.
| Característica | Allegro | MACE |
|---|---|---|
| Localidad estricta | Sí | No del mismo modo |
| Message passing entre átomos | Evitado en arquitectura original | Sí |
| Productos tensoriales | Sí | Sí |
| Correlaciones de muchos cuerpos | Sí | Sí |
| Campo receptivo | Limitado al entorno local | Puede crecer con las capas |
| Objetivo | Potenciales escalables | Potenciales precisos y eficientes |
| Escalabilidad distribuida | Prioridad central | Depende de implementación y configuración |
Allegro prioriza una organización estrictamente local.
MACE utiliza representaciones de alto orden para reducir la cantidad de propagaciones necesarias.
Ambos enfoques son importantes en simulación atomística moderna.
27. MACE frente a EGNN
EGNN utiliza mensajes invariantes y actualizaciones de coordenadas.
MACE utiliza representaciones tensoriales equivariantes y produce una función energética.
La arquitectura original de MACE no está centrada en actualizar coordenadas en cada bloque.
Las coordenadas se utilizan para calcular características y derivadas de energía.
Las dos arquitecturas pueden utilizarse en problemas geométricos, pero tienen objetivos y mecanismos distintos.
28. MACE frente a SE(3)-Transformer
SE(3)-Transformer utiliza atención geométrica basada en representaciones de rotaciones.
MACE utiliza message passing de orden superior.
Ambas incorporan armónicos esféricos y productos tensoriales.
Sin embargo, MACE está específicamente orientada al aprendizaje de potenciales atomísticos.
SE(3)-Transformer es una arquitectura geométrica más general.
No debe confundirse atención multi-cabeza con una expansión de clústeres atómicos.
29. Ejemplo práctico 1: representar un sistema molecular
Podemos utilizar NumPy para definir posiciones atómicas.
import numpy as npsymbols = ["O", "H", "H"]positions = np.array([ [0.0000, 0.0000, 0.0000], [0.9572, 0.0000, 0.0000], [-0.2390, 0.9270, 0.0000],])print(symbols)print(positions)
Este ejemplo utiliza una geometría aproximada de agua.
No realiza inferencia con MACE.
30. Ejemplo práctico 2: calcular distancias
delta = ( positions[:, None, :] - positions[None, :, :])distances = np.linalg.norm( delta, axis=-1)print(distances)
Las distancias constituyen características geométricas invariantes.
Se utilizan para definir vecinos y construir representaciones radiales.
31. Ejemplo práctico 3: construir vecinos mediante cutoff
cutoff = 1.5adjacency = ( (distances < cutoff) & (distances > 0))for i in range(len(positions)): neighbors = np.where( adjacency[i] )[0] print(i, neighbors.tolist())
Este código ilustra la construcción de un grafo local.
En materiales periódicos deben utilizarse convenciones apropiadas para las condiciones de contorno.
32. Ejemplo práctico 4: calcular un ángulo entre tres átomos
v1 = positions[1] - positions[0]v2 = positions[2] - positions[0]cosine = np.dot(v1, v2) / ( np.linalg.norm(v1) * np.linalg.norm(v2))angle = np.degrees( np.arccos( np.clip(cosine, -1, 1) ))print("Ángulo:", angle)
La operación muestra una relación de tres cuerpos.
MACE utiliza representaciones tensoriales más generales que una simple lista de ángulos.
33. Ejemplo práctico 5: energía artificial de dos y tres cuerpos
Podemos crear un ejemplo matemático que distinga ambos tipos de interacción.
def toy_energy(points): r01 = np.linalg.norm( points[1] - points[0] ) r02 = np.linalg.norm( points[2] - points[0] ) two_body = ( (r01 - 1.0) ** 2 + (r02 - 1.0) ** 2 ) v1 = points[1] - points[0] v2 = points[2] - points[0] cosine = np.dot(v1, v2) / ( np.linalg.norm(v1) * np.linalg.norm(v2) ) three_body = ( cosine - np.cos(np.deg2rad(105)) ) ** 2 return two_body + three_bodyprint(toy_energy(positions))
La función es artificial.
Demuestra que una energía puede depender de distancias y ángulos.
No representa un potencial químico validado.
34. Ejemplo práctico 6: comprobar invariancia rotacional
rotation_angle = np.pi / 3R = np.array([ [np.cos(rotation_angle), -np.sin(rotation_angle), 0.0], [np.sin(rotation_angle), np.cos(rotation_angle), 0.0], [0.0, 0.0, 1.0],])translation = np.array([ 2.0, -1.0, 3.0])transformed = positions @ R.T + translationprint( np.allclose( toy_energy(positions), toy_energy(transformed) ))
El resultado esperado es True.
Esto ilustra la invariancia que debe presentar la energía total de un modelo geométrico apropiado.
35. Ejemplo práctico 7: calcular fuerzas con PyTorch
import torchxyz = torch.tensor( positions, dtype=torch.float64, requires_grad=True)delta = ( xyz[:, None, :] - xyz[None, :, :])r2 = torch.sum( delta**2, dim=-1)i, j = torch.triu_indices( len(xyz), len(xyz), offset=1)energy = torch.exp( -r2[i, j]).sum()forces = -torch.autograd.grad( energy, xyz)[0]print("Energía:", energy.item())print("Fuerzas:", forces)
El código demuestra la diferenciación energética.
No implementa la red MACE.
36. Ejemplo práctico 8: instalar MACE
El repositorio oficial se encuentra en:
La rama compatible y mantenida actualmente es la familia 0.3.x.
La documentación oficial actual indica Python 3.11 o posterior y PyTorch 2.5 o posterior para la línea soportada.
Después de instalar PyTorch en un entorno compatible:
pip install --upgrade pippip install mace-torch
Es importante utilizar el paquete mace-torch.
El paquete denominado simplemente mace en PyPI corresponde a otro proyecto.
También es posible descargar el código:
git clone https://github.com/ACEsuit/mace.gitpip install ./mace
Los requisitos pueden cambiar entre versiones.
Conviene fijar las dependencias en proyectos de investigación reproducibles.
37. Ejemplo práctico 9: utilizar MACE con ASE
MACE proporciona calculadoras para Atomic Simulation Environment.
El siguiente ejemplo utiliza un modelo preentrenado y presupone que se dispone de acceso a sus pesos.
from ase.build import moleculefrom mace.calculators import mace_mpatoms = molecule("H2O")calculator = mace_mp( model="medium", dispersion=False, default_dtype="float32", device="cpu")atoms.calc = calculatorenergy = atoms.get_potential_energy()forces = atoms.get_forces()print("Energía:", energy)print("Fuerzas:")print(forces)
El ejemplo reproduce el patrón documentado por el proyecto.
El modelo medium debe estar disponible para la versión instalada.
Es importante verificar que el modelo elegido es adecuado para el sistema estudiado.
Aunque el ejemplo puede ejecutarse técnicamente con agua, un modelo de materiales no tiene por qué ser la mejor elección científica para química molecular.
38. Ejemplo práctico 10: utilizar MACE-OFF
Para sistemas orgánicos compatibles, el ecosistema ofrece la familia MACE-OFF.
from ase.build import moleculefrom mace.calculators import mace_offatoms = molecule("H2O")calculator = mace_off( model="medium", device="cpu")atoms.calc = calculatorenergy = atoms.get_potential_energy()print("Energía:", energy)
Este ejemplo requiere descargar los pesos correspondientes.
La licencia del modelo debe comprobarse separadamente de la licencia del código.
El resultado también debe interpretarse teniendo en cuenta el dominio de entrenamiento y el nivel de teoría de referencia.
39. Ejemplo práctico 11: entrenar un modelo propio
La implementación oficial utiliza el comando mace_run_train.
Un ejemplo simplificado es:
mace_run_train \ --name="MACE_example" \ --train_file="train.xyz" \ --valid_fraction=0.05 \ --test_file="test.xyz" \ --model="MACE" \ --hidden_irreps="128x0e + 128x1o" \ --r_max=5.0 \ --batch_size=4 \ --max_num_epochs=100 \ --E0s="average" \ --device=cpu
Este comando presupone un dataset train.xyz válido que incluya energías y fuerzas según las claves esperadas por el programa.
Los parámetros son ilustrativos.
No constituyen una configuración optimizada para un sistema físico real.
La opción E0s="average" permite estimar referencias atómicas, pero la documentación advierte que puede producir potenciales menos robustos para ciertas aplicaciones de dinámica molecular que utilizar referencias adecuadas de átomos aislados.
40. Ejemplo práctico 12: evaluar un modelo entrenado
El proyecto también ofrece:
mace_eval_configs \ --configs="test.xyz" \ --model="modelo_entrenado.model" \ --output="predicciones.xyz"
El archivo modelo_entrenado.model debe existir.
El comando permite calcular predicciones para configuraciones de evaluación.
Posteriormente, pueden compararse con energías y fuerzas de referencia.
41. Ejemplo práctico 13: calcular MAE y RMSE
Podemos evaluar predicciones numéricas mediante NumPy.
import numpy as npreference = np.array([ -10.2, -10.5, -10.1, -10.7])predicted = np.array([ -10.3, -10.4, -10.0, -10.6])mae = np.mean( np.abs(predicted - reference))rmse = np.sqrt( np.mean( (predicted - reference) ** 2 ))print("MAE:", mae)print("RMSE:", rmse)
MAE representa el error absoluto medio.
RMSE representa la raíz del error cuadrático medio.
Estas métricas son útiles, pero deben acompañarse de una interpretación física.
Por ejemplo, un error energético pequeño no garantiza fuerzas correctas en todas las configuraciones.
42. ¿Qué recursos computacionales necesita MACE?
El coste depende de diferentes variables:
- Número de átomos.
- Cantidad de vecinos.
- Radio de corte.
- Número de capas.
- Orden de correlación.
- Grado angular máximo.
- Cantidad de canales.
- Tamaño del batch.
- Precisión numérica.
- Necesidad de calcular gradientes.
Los productos tensoriales pueden ser computacionalmente exigentes.
Sin embargo, la capacidad de representar relaciones de muchos cuerpos con pocas capas puede mejorar el compromiso entre precisión y coste.
El proyecto incorpora opciones de aceleración en GPU y entrenamiento distribuido.
Para pruebas pequeñas puede utilizarse CPU.
Para entrenamiento y simulaciones extensas suele resultar recomendable disponer de GPU compatible.
43. Limitaciones de MACE
Dependencia de datos de referencia
El modelo aprende aproximaciones de los cálculos utilizados durante entrenamiento.
Generalización limitada
Las configuraciones muy diferentes de las observadas pueden producir errores.
Interacciones de largo alcance
Una representación local puede requerir componentes adicionales para efectos electrostáticos y otros fenómenos no locales.
Complejidad tensorial
Los productos equivariantes necesitan implementaciones cuidadosamente optimizadas.
Coste de gradientes
El aprendizaje con fuerzas puede aumentar memoria y tiempo.
Dominio químico
Los modelos preentrenados no son universales para cualquier combinación de elementos.
Convenciones energéticas
Comparar energías de modelos entrenados a distintos niveles de teoría puede ser incorrecto.
Dinámica molecular
Una trayectoria estable no garantiza exactitud física.
Incertidumbre
Las predicciones no incluyen automáticamente incertidumbre perfectamente calibrada.
Licencias
El código y los checkpoints pueden distribuirse bajo condiciones diferentes.
44. Importancia de MACE en Geometric Deep Learning
MACE representa un avance importante porque conecta una teoría sistemática de interacciones atómicas con redes neuronales profundas.
Atomic Cluster Expansion proporciona una manera de organizar correlaciones de muchos cuerpos.
Las redes E(3)-equivariantes permiten mantener consistencia con las simetrías espaciales.
Los productos tensoriales construyen características geométricas de orden superior.
El message passing permite intercambiar información entre átomos.
La combinación produce una arquitectura capaz de representar interacciones complejas sin depender exclusivamente de redes muy profundas.
Este enfoque ha influido en el desarrollo de potenciales interatómicos modernos.
También demuestra que la precisión de un modelo no depende únicamente del número de capas o parámetros.
La selección de representaciones matemáticas adecuadas puede resultar igualmente importante.
45. Preguntas frecuentes sobre MACE
¿Qué es MACE?
Es una arquitectura neuronal E(3)-equivariante que utiliza expansiones de clústeres atómicos y mensajes de orden superior para aprender potenciales interatómicos.
¿Qué significa MACE?
Multi-Atomic Cluster Expansion.
¿Quién desarrolló MACE?
Ilyes Batatia, Dávid Péter Kovács, Gregor Simm, Christoph Ortner y Gábor Csányi.
¿Cuándo se publicó?
El trabajo original se presentó en 2022 y fue publicado en NeurIPS 2022.
¿Qué es Atomic Cluster Expansion?
Es un marco matemático para representar entornos atomísticos mediante correlaciones sistemáticas de muchos cuerpos.
¿Qué es Higher-Order Message Passing?
Es un procedimiento de intercambio de información que incorpora representaciones de interacciones entre varios átomos.
¿Qué significa Four-Body Interaction?
Es una interacción o correlación que involucra cuatro posiciones atómicas.
¿MACE utiliza Graph Neural Networks?
Sí. Utiliza message passing geométrico con representaciones equivariantes.
¿MACE utiliza armónicos esféricos?
Sí. Los utiliza para representar dependencias angulares.
¿Qué es un tensor product?
Es una operación que combina representaciones geométricas según reglas compatibles con sus simetrías.
¿Qué son las irreps?
Son representaciones irreducibles que describen cómo se transforman características bajo rotaciones y reflexiones.
¿Qué significa E(3)?
Es el grupo de rotaciones, traslaciones y reflexiones tridimensionales.
¿MACE predice energía?
Sí. La energía potencial es una de sus salidas principales.
¿Cómo calcula las fuerzas?
Mediante el gradiente negativo de la energía respecto a las coordenadas.
¿Qué es Force Matching?
Es el entrenamiento de un potencial para reproducir fuerzas de referencia.
¿Qué es rMD17?
Es un conjunto revisado de trayectorias moleculares utilizado para evaluar potenciales.
¿Qué es 3BPA?
Es un benchmark molecular utilizado para comparar modelos de energías y fuerzas.
¿Qué es AcAc?
Es un benchmark relacionado con acetilacetona.
¿Qué diferencia existe entre MACE y NequIP?
MACE enfatiza mensajes de orden superior y expansiones de clústeres; NequIP original utiliza convoluciones equivariantes con message passing.
¿Qué diferencia existe entre MACE y Allegro?
Allegro evita message passing tradicional entre estados atomísticos y mantiene localidad estricta; MACE utiliza message passing de orden superior.
¿Qué diferencia existe entre MACE y EGNN?
EGNN actualiza coordenadas mediante mensajes geométricos; MACE está especializada en potenciales interatómicos mediante representaciones tensoriales.
¿Qué diferencia existe entre MACE y SE(3)-Transformer?
SE(3)-Transformer utiliza atención geométrica; MACE utiliza expansión de clústeres y message passing equivariante.
¿Qué es MACE-MP?
Es una familia de potenciales preentrenados orientada a materiales.
¿Qué es MACE-OFF?
Es una familia orientada a determinados sistemas moleculares orgánicos.
¿Qué es MACE-MH?
Es una línea de modelos entrenados con múltiples fuentes de datos y niveles de teoría.
¿MACE funciona con Python?
Sí. El framework oficial utiliza PyTorch.
¿Puede integrarse con ASE?
Sí. El proyecto proporciona calculadoras compatibles.
¿Puede utilizar GPU?
Sí. El entrenamiento y la inferencia pueden aprovechar aceleración GPU compatible.
¿MACE reemplaza DFT?
No. Aprende aproximaciones de datos de referencia y requiere validación.
¿Es de código abierto?
El código está disponible públicamente bajo la licencia indicada por el repositorio. Las licencias de modelos preentrenados deben comprobarse por separado.
¿Por qué es importante estudiar MACE?
Porque demuestra cómo las interacciones de muchos cuerpos y la equivariancia geométrica pueden utilizarse para construir potenciales atómicos precisos y eficientes.
46. Conclusión
La arquitectura MACE representa un avance importante en los potenciales interatómicos aprendidos mediante inteligencia artificial.
Su principal innovación consiste en integrar expansiones de clústeres atómicos con redes neuronales E(3)-equivariantes.
La arquitectura utiliza funciones radiales para representar distancias.
Los armónicos esféricos describen dependencias angulares.
Los productos tensoriales construyen correlaciones de muchos cuerpos.
Los bloques de message passing intercambian información geométrica entre los átomos del sistema.
Posteriormente, la red produce contribuciones energéticas locales.
La suma proporciona la energía total y las fuerzas se calculan mediante diferenciación automática.
La investigación original mostró que los mensajes de orden superior permiten reducir la profundidad necesaria para alcanzar elevada precisión en diferentes benchmarks moleculares.
Desde entonces, el ecosistema MACE se ha ampliado mediante modelos preentrenados e integraciones con herramientas científicas.
Sin embargo, sus resultados continúan dependiendo de la calidad de los datos, las condiciones físicas y la cobertura del entrenamiento.
Para estudiantes, investigadores y desarrolladores de inteligencia artificial, MACE ofrece una lección fundamental:
La incorporación explícita de correlaciones de muchos cuerpos y simetrías geométricas permite construir redes neuronales que aprenden interacciones atomísticas complejas con mayor eficiencia representacional.
Comprender MACE permite profundizar en Graph Neural Networks, Atomic Cluster Expansion, productos tensoriales, representaciones irreducibles, armónicos esféricos, potenciales interatómicos y aprendizaje profundo para ciencia de materiales.
47. Referencias y fuentes oficiales
- Batatia, I., Kovács, D. P., Simm, G. N. C., Ortner, C. y Csányi, G. (2022). MACE: Higher Order Equivariant Message Passing Neural Networks for Fast and Accurate Force Fields. NeurIPS 2022. https://papers.neurips.cc/paper_files/paper/2022/hash/4a36c3c51af11ed9f34615b81edb5bbc-Abstract-Conference.html
- Batatia, I. et al. (2022). MACE: Higher Order Equivariant Message Passing Neural Networks for Fast and Accurate Force Fields. arXiv. https://arxiv.org/abs/2206.07697
- ACEsuit. MACE — Repositorio oficial. https://github.com/ACEsuit/mace
- ACEsuit. MACE — Documentación oficial. https://mace-docs.readthedocs.io/
- ACEsuit. MACE — Modelos fundacionales. https://mace-docs.readthedocs.io/en/latest/guide/foundation_models.html
- Drautz, R. (2019). Atomic cluster expansion for accurate and transferable interatomic potentials. Physical Review B. https://doi.org/10.1103/PhysRevB.99.014104
- Batzner, S. et al. (2022). E(3)-equivariant graph neural networks for data-efficient and accurate interatomic potentials. Nature Communications. https://doi.org/10.1038/s41467-022-29939-5
- Musaelian, A. et al. (2023). Learning local equivariant representations for large-scale atomistic dynamics. Nature Communications. https://doi.org/10.1038/s41467-023-36329-y
- Satorras, V. G., Hoogeboom, E. y Welling, M. (2021). E(n) Equivariant Graph Neural Networks. ICML. https://arxiv.org/abs/2102.09844
- Fuchs, F. B. et al. (2020). SE(3)-Transformers: 3D Roto-Translation Equivariant Attention Networks. NeurIPS. https://arxiv.org/abs/2006.10503
- Geiger, M. y Smidt, T. (2022). e3nn: Euclidean Neural Networks. https://arxiv.org/abs/2207.09453
- Larsen, A. H. et al. (2017). The Atomic Simulation Environment — A Python library for working with atoms. Journal of Physics: Condensed Matter. https://doi.org/10.1088/1361-648X/aa680e
