Skip to content

Request for a reproducible environment and clarification of the DPO training pipeline #3

Description

@Kylin-03

Description

Thank you for releasing the PLaID/PLaID++ code. I am trying to reproduce the SFT and iterative DPO pipeline, but I encountered several environment and implementation inconsistencies. Could you please clarify the following points and provide an environment/configuration that has been tested end to end?

1. Environment reproducibility

The environment installed using the README and uv sync appears incomplete:

  • datasets and trl are not included.
  • The resolved Transformers version was 4.52.0, which caused an error during finetuning with torch==2.4.0.
  • Upgrading Transformers to 4.53.0 fixed that issue, but loading the SFT checkpoint then failed because of another incompatibility with torch==2.4.0.
  • Upgrading PyTorch to 2.6 introduced incompatibilities with other project dependencies.
  • Installing from requirements.txt also appears to leave out some required packages.
  • Based on the imports and DPOTrainer interface in DPO_train.py, the DPO code seems closest to the TRL 0.11–0.12 API.

Could you provide a tested reproducible environment, preferably as one of the following?

  • a complete pyproject.toml and uv.lock;
  • a fully pinned requirements file;
  • a Conda environment;
  • or a Dockerfile.

Please also confirm the exact versions used for Python, CUDA, PyTorch, Transformers, TRL, PEFT, Datasets, Accelerate, bitsandbytes, and FlashAttention.

2. Initial DPO sampling from the SFT model

The current DPO script does not appear to include the initial sampling step using the SFT checkpoint.

Could you provide:

  • the exact SFT checkpoint used for iteration 1;
  • the unconditional sampling command and parameters;
  • the space-group-conditioned sampling command and parameters;
  • and whether the final SFT adapter or the largest checkpoint-* directory should be used?

3. DPO preference-pair configuration

The current plaid_dpo.sh uses:

  • iterations 1–2: basic + sg_novel;
  • iterations 3–7: tieredNovel + sg_novel.

However, the paper appears to describe seven iterations using tiered stability/novelty preference pairs and the space-group preference construction described by sg.

Could you confirm which configuration produced the reported results?

  • seven iterations of tieredNovel + sg;
  • two iterations of basic + sg_novel followed by five iterations of tieredNovel + sg_novel;
  • or another configuration?

Please also confirm whether sg_novel was used in the main paper results or was an additional repository experiment.

4. Inconsistent script paths and output filenames

Several paths and filenames in the DPO pipeline appear inconsistent:

  • llama_sample.py does not exist; should this be llm_sample.py?
  • The novelty script path used by the shell pipeline does not appear to match the repository layout.
  • Novelty evaluation writes files with an _sun suffix, while the next DPO iteration appears to read the original filename without that suffix.
  • Some input and output directories in plaid_dpo.sh do not appear to connect directly between iterations.

Could the README or DPO script be updated with the correct paths and expected directory structure?

5. Novelty threshold mismatch

For unconditional generation, the DPO script appears to calculate novelty using an E_hull threshold of 0.1, while DPO_preprocess.py expects the column:

is_novel0.0

For space-group novelty, the preprocessing code expects:

is_novel0.08

Could you confirm the correct thresholds used for DPO preference construction?

My current interpretation is:

  • unconditional stable novelty: E_hull <= 0.0;
  • space-group acceptable structures: E_hull <= 0.08;
  • 0.1 should only be used for evaluation, not for the DPO novelty columns.

6. Novelty reference set

The current novelty code appears to use the training split of diffcsp_mp20 as its reference set.

Is this reference set exactly identical to the training set used for PLaID SFT, including filtering, deduplication, and train/test splitting?

For strict reproduction, could you provide the exact SFT training-set file or manifest used to calculate novelty?

Requested materials

A minimal tested reproduction package would be very helpful, containing:

  1. a complete environment lock file;
  2. the exact SFT checkpoint;
  3. the initial sampling commands;
  4. the seven-iteration DPO configuration;
  5. the novelty thresholds and reference set;
  6. the expected file and directory structure;
  7. and a small smoke-test command.

Thank you for your help.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions