Question about loss weights from SevenNet-0 #62
-
From the equation (9) of SevenNet publicaiton, I can see there is no energy loss weight values implemented for SevenNet, which means the energy loss weight is always 1.0 from SevenNet. But then, I can see the most recent (July 11 2024) pretrained model also used the same force and stress loss weight values with the input example, 0.1 and 1e-6, respectively. But I wonder why does this PT model training picked 0.1 and 1e-6. Because that feels too small, especially for stress. Is there any reason why SevenNet pt-0 picked such weight values? |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 1 reply
-
SevenNet-0 (11July2024) uses force and stress loss weights of 1.0 and 0.01, respectively. The defaults in fine-tuning yaml and pre-train yaml is different check here for our yaml file used for the pre-training: https://github.com/MDIL-SNU/SevenNet/blob/main/sevenn/pretrained_potentials/SevenNet_0__11July2024/pre_train.yaml However, the question is still valid. We use such small loss weight because the stress loss is in kB units. It is around ~x1000 times bigger than its original (eV/A^3) unit. This is indeed missing information, sorry for that. There are two reasons for this choice: firstly, as we default to print stress error in kBar unit, which is the canonical way to report model error, we did the same for the loss. Secondly, it is a convention used internally, making it much easier to interoperate between our group's other MLIP package, SIMPLE-NN. From our previous experience, these weights are a good starting point. However, the best value could be quite different depending on its task, model size, and everything. We increased both force and stress weight from its default (0.1, 1e-6), because we found both force and stress MAE were higher than our expectation. |
Beta Was this translation helpful? Give feedback.
SevenNet-0 (11July2024) uses force and stress loss weights of 1.0 and 0.01, respectively. The defaults in fine-tuning yaml and pre-train yaml is different check here for our yaml file used for the pre-training: https://github.com/MDIL-SNU/SevenNet/blob/main/sevenn/pretrained_potentials/SevenNet_0__11July2024/pre_train.yaml
However, the question is still valid. We use such small loss weight because the stress loss is in kB units. It is around ~x1000 times bigger than its original (eV/A^3) unit. This is indeed missing information, sorry for that.
There are two reasons for this choice: firstly, as we default to print stress error in kBar unit, which is the canonical way to report model error…