PSP: configurar los parámetros de entrenamiento del modelo de AlphaFold2 Multimer

Bienvenido a seguir mi CSDN: https://spike.blog.csdn.net/La
dirección de este artículo: https://spike.blog.csdn.net/article/details/133377559

DE Multímero

Para organizar y configurar los parámetros de entrenamiento del modelo de AlphaFold2 Multimer, consulte los artículos relevantes, la nota técnica de AlphaFold v2.3.0, OpenFold, UniFold y otros marcos de código abierto. Para la predicción de la estructura monomérica de AlphaFold2, en el documento, los parámetros y detalles de entrenamiento del modelo se proporcionan con más detalle, sin embargo, en el compuesto (Multimer), no todas las configuraciones de los parámetros de entrenamiento se presentan claramente.

Artículos de referencia y código fuente:

El núcleo de parámetros de formación se divide en 6 módulos:

  1. Datos data: incluyendo 通用(common), 数据处理(data_module), 评估(eval), 预测(predict), 训练(train), 监督(supervised)etc.
    • Entre ellos 监督(supervised), hay principalmente algunos modificadores, que se utilizan junto con las funciones relevantes evaluadas durante la importación y el entrenamiento all_atom_mask, all_atom_positions, resolution, is_distillationy use_clamped_fapecon clamp_prob. Consulte el código fuente de OpenFold y AF2 para obtener más detalles.
  2. emaLos parámetros del modelo se actualizan dinámicamente. Cada paso realiza una actualización deslizante de EMA. Establecerlo en 0,999 equivale a completar 1000 actualizaciones.
  3. globalsLos parámetros globales, algunos parámetros de la estructura de red del modelo, son consistentes con OpenFold. Tenga en cuenta que durante el entrenamiento, deben chunk_sizeconfigurarse en null.
  4. lossParámetros: incluidos chain_centre_mass(Diff), distogram(Igual), experimentally_resolved(Igual), fape(Igual con Unifold), lddt(Igual), (Igual) masked_msa, supervised_chi(Igual), tm(Sin usar), violation(Igual), rmsd_ca(desarrollado por usted mismo).
    • openfold/utils/loss.pyLa función que calcula la pérdida multi_chain_perm_align()proviene deUnifold
    • Hay muchos hiperparámetros que deben ajustarse en la parte de pérdidas.
  5. modelLos parámetros relacionados con el diseño de la red deben coincidir con AF2.
  6. relaxLos parámetros, parámetros relacionados con la relajación del modelo, son OpenFoldconsistentes con.

Es decir, las modificaciones principales son la parte de datos y la parte de pérdida, y el resto no necesita ser modificado.

Entre ellos chunk_sizedescripción de parámetros:

Tenga en cuenta que la fragmentación (como se define en la sección 1.11.8 del suplemento AlphaFold 2) está habilitada de forma predeterminada en el modo de inferencia. Para desactivarlo, configúrelo globals.chunk_sizeen Nonela configuración. Si se especifica un valor, OpenFold intentará ajustarlo dinámicamente, considerando como mínimo el tamaño del fragmento especificado en la configuración. Este proceso de ajuste garantiza automáticamente tiempos de ejecución consistentemente rápidos independientemente de la longitud de la secuencia de entrada, pero también introduce cierta variabilidad en el tiempo de ejecución, lo que puede ser indeseable para ciertos usuarios. También se recomienda desactivar esta función para cadenas muy largas (ver más abajo). Para hacerlo, configure la tune_chunk_sizeopción en la configuración en False.

Durante chunk_sizeel entrenamiento, establezca en Ninguno:

if train:
    c.globals.blocks_per_ckpt = 1
    c.globals.chunk_size = None

1. módulo de datos

dataLos parámetros de datos incluyen: commongeneral, data_modulemódulo de datos, evalevaluación, predictpredicción, traincapacitación, supervisedsupervisión, etc.

  • No se requiere ninguna modificación por el momento data_moduleProcesamiento de datos, predictpredicción, supervisedsupervisión
  • Parámetros comunes common: Los parámetros modificables son max_extra_msa, AF2 y OpenFold Multimer (el más reciente) son ambos 2048, actualmente es 1024, heredado de la lógica Monomer.
  • train, evalEntrenamiento: max_msa_clustersse recomienda cambiarlo a 508, crop_sizecambiarlo a 640. Tenga en cuenta que esto está relacionado con el uso de memoria.
  • templateNo es necesario modificar todos los parámetros de la plantilla por el momento, actualmente son 4.
  • distillation_prob: La relación de datos de destilación se reduce de 0,75 a 0,5.
  • El principal punto de modificación es la parte MSA. El proyecto actual se deriva de OpenFold Monomer versión 1 y algunos parámetros no están alineados con Multimer.

Nota: En los parámetros de entrenamiento, el parámetro, interface_thresholdes decir, ca_ca_thresholdla get_spatial_crop_idx()función de referencia, OpenFold y UniFold, se implementan de manera diferente.


2. Módulo de pérdida

lossLos parámetros incluyen:

  • chain_centre_mass(Diff): Peso 1.0; UniFold, 1.0; OpenFold 0.05, la brecha es grande, OpenFold muestra 0.05 en muchos lugares, lo cual es más creíble y, en general, la pérdida de nivel atómico tiene un peso menor y un valor mayor, se recomienda 0.05.
  • distogram(Igual): peso 0,3, consistente
  • experimentally_resolved(Igual): peso 0,01, consistente
  • fape(Lo mismo con Unifold): peso 1,0; consistente
  • lddt(Igual): peso 0,01; consistente.
  • masked_msa(Igual): peso 2,0; consistente
  • supervised_chi(Igual): Peso 1,0; consistente.
  • tm(Sin usar): no se ha agregado falso de la versión de depuración de OpenFold Multimer, se ha agregado la versión oficial; UniFold PAE habilita el peso 0.1, OpenFold peso 0.1, se recomienda habilitar.
  • violation(Igual): 0.5, OpenFold 0.03 (el inicial no es confiable), UniFold 0.5 (Finetune), se recomienda 0.5.

Otros: eps 1.0e-08, OpenFold es 1.0e-08, UniFold es consistente con AF2, de 1.0e-4 ~ 1.0e-10.

Ahora mismo:

loss = chain_centre_mass*0.05 + distogram*0.3 + experimentally_resolved*0.01 + fape*1.0 + lddt*0.01 + masked_msa*2.0 + supervised_chi*1.0 + tm*0.1 + violation*0.5

El registro de entrenamiento es el siguiente:

2023-09-26 07:25:17,232 INFO 25675 [loss.py:1995] [CL] loss_name: fape, weight: 1.0, loss: 1.2547515630722046, add: 1.2547515630722046
2023-09-26 07:25:17,233 INFO 25675 [loss.py:1995] [CL] loss_name: supervised_chi, weight: 1.0, loss: 0.15294387936592102, add: 0.15294387936592102
2023-09-26 07:25:17,234 INFO 25675 [loss.py:1995] [CL] loss_name: distogram, weight: 0.3, loss: 0.40942829847335815, add: 0.12282849103212357
2023-09-26 07:25:17,235 INFO 25675 [loss.py:1995] [CL] loss_name: experimentally_resolved, weight: 0.01, loss: 0.002576087834313512, add: 2.57608771789819e-05
2023-09-26 07:25:17,239 INFO 25675 [loss.py:1995] [CL] loss_name: lddt, weight: 0.01, loss: 1.8179388046264648, add: 0.018179386854171753
2023-09-26 07:25:17,240 INFO 25675 [loss.py:1995] [CL] loss_name: chain_centre_mass, weight: 0.05, loss: 0.0, add: 0.0
2023-09-26 07:25:17,240 INFO 25675 [loss.py:1995] [CL] loss_name: violation, weight: 0.5, loss: 0.0052171749994158745, add: 0.0026085874997079372
2023-09-26 07:25:17,241 INFO 25675 [loss.py:1995] [CL] loss_name: masked_msa, weight: 2.0, loss: 0.39116162061691284, add: 0.7823232412338257
2023-09-26 07:25:17,243 INFO 25675 [loss.py:1995] [CL] loss_name: tm, weight: 0.1, loss: 4.158883094787598, add: 0.41588830947875977

3. Referencias relacionadas

Los hiperparámetros del protocolo de entrenamiento del monómero AF2 (Protocolo de entrenamiento), a saber:

Protocolo de entrenamiento)

En diferentes etapas de capacitación, las configuraciones de los parámetros del monómero AF2 son diferentes, como MSA, plantilla, etc., a saber:

Etapas de entrenamiento

Monómero AF2 Pérdida de peso, es decir:

Pesos de pérdida

Entre ellos, clamp_problos parámetros son básicamente los mismos que los de AF2:

supervised:
  clamp_prob: 0.9

La configuración de parámetros de AF2 clamp_probes la siguiente:

problema_abrazadera

Entre ellos, decaylos parámetros no son consistentes con AF2, pero tanto OpenFold como UniFold son 0.999, por lo que se recomienda que sean 0.999. Modificar:

ema:
  decay: 0.999  # AF2 中是0.99,不建议修改

referencia:
Decadencia

Configuración de parámetros de optimización, consulte:

Mejoramiento

Supongo que te gusta

Origin blog.csdn.net/u012515223/article/details/133377559
Recomendado
Clasificación