AdaNovo employs a transformer encoder-decoder architecture similar to that of Casanovo but introduces an adaptive training strategy based on the conditional mutual information (CMI) between each amino acid in a peptide sequence and the observed MS2 spectrum. During training, AdaNovo uses two decoders: one predicts the next amino acid based solely on the previously predicted subsequence, while the other also considers the mass spectrum information. By comparing their outputs, AdaNovo calculates CMI scores to adaptively re-weight both individual amino acids and training examples. This approach focuses the training on challenging amino acids, such as those with PTMs, and enhances the model's robustness to noisy data by emphasizing highly informative training examples. During inference, AdaNovo uses only the spectrum-aware decoder and filters out predictions that do not match the observed precursor mass.