jyliuAI commited on
Commit
f3d2d96
·
verified ·
1 Parent(s): 5b2bf98

Add files using upload-large-folder tool

Browse files
Files changed (50) hide show
  1. results_duo_dcd_ckpt_probe/best_seed42/metrics/lm1b/duo_dcd/steps_1/metrics.json +45 -0
  2. results_duo_dcd_ckpt_probe/best_seed42/metrics/lm1b/duo_dcd/steps_4/metrics.json +45 -0
  3. results_duo_dcd_ckpt_probe/best_seed42/metrics_full/lm1b/duo_dcd/steps_1/metrics.json +65 -0
  4. results_duo_dcd_ckpt_probe/best_seed42/metrics_full/lm1b/duo_dcd/steps_2/metrics.json +65 -0
  5. results_duo_dcd_ckpt_probe/best_seed42/metrics_full/lm1b/duo_dcd/steps_32/metrics.json +65 -0
  6. results_duo_dcd_ckpt_probe/best_seed42/metrics_full/lm1b/duo_dcd/steps_4/metrics.json +65 -0
  7. results_duo_dcd_ckpt_probe/best_seed42/samples/lm1b/duo_dcd/steps_1/conversion_metadata.json +31 -0
  8. results_duo_dcd_ckpt_probe/best_seed42/samples/lm1b/duo_dcd/steps_1/upstream_token_ids.json +0 -0
  9. results_duo_dcd_ckpt_probe/best_seed42/samples/lm1b/duo_dcd/steps_2/upstream_hydra/.hydra/config.yaml +151 -0
  10. results_duo_dcd_ckpt_probe/best_seed42/samples/lm1b/duo_dcd/steps_2/upstream_hydra/.hydra/overrides.yaml +19 -0
  11. results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_1/upstream_hydra/.hydra/hydra.yaml +181 -0
  12. results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_1/upstream_hydra/.hydra/overrides.yaml +19 -0
  13. results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_1/upstream_samples.json +7 -0
  14. results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_1/upstream_token_ids.json +4 -0
  15. results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_16/upstream_hydra/.hydra/config.yaml +151 -0
  16. results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_16/upstream_hydra/.hydra/hydra.yaml +181 -0
  17. results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_16/upstream_hydra/.hydra/overrides.yaml +19 -0
  18. results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_16/upstream_hydra/config_tree.txt +169 -0
  19. results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_16/upstream_hydra/dlb_pinned_upstream_main.log +4 -0
  20. results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_16/upstream_samples.json +7 -0
  21. results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_16/upstream_token_ids.json +4 -0
  22. results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_2/upstream_hydra/.hydra/config.yaml +151 -0
  23. results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_2/upstream_hydra/.hydra/hydra.yaml +181 -0
  24. results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_2/upstream_hydra/config_tree.txt +169 -0
  25. results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_2/upstream_hydra/dlb_pinned_upstream_main.log +4 -0
  26. results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_2/upstream_samples.json +7 -0
  27. results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_2/upstream_token_ids.json +4 -0
  28. results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_32/upstream_hydra/.hydra/config.yaml +151 -0
  29. results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_32/upstream_hydra/.hydra/hydra.yaml +181 -0
  30. results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_32/upstream_hydra/config_tree.txt +169 -0
  31. results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_32/upstream_samples.json +7 -0
  32. results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_32/upstream_token_ids.json +4 -0
  33. results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_4/upstream_hydra/.hydra/config.yaml +151 -0
  34. results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_4/upstream_hydra/.hydra/hydra.yaml +181 -0
  35. results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_4/upstream_hydra/.hydra/overrides.yaml +19 -0
  36. results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_4/upstream_hydra/dlb_pinned_upstream_main.log +4 -0
  37. results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_4/upstream_samples.json +7 -0
  38. results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_4/upstream_token_ids.json +4 -0
  39. results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_8/upstream_hydra/.hydra/config.yaml +151 -0
  40. results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_8/upstream_hydra/.hydra/hydra.yaml +181 -0
  41. results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_8/upstream_hydra/.hydra/overrides.yaml +19 -0
  42. results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_8/upstream_hydra/dlb_pinned_upstream_main.log +4 -0
  43. scripts/aggregate_conditional_results.py +46 -0
  44. scripts/build_conditional_prompts.py +34 -0
  45. scripts/evaluate_conditional_all.sh +49 -0
  46. scripts/fetch_sources.sh +84 -0
  47. scripts/run_all.sh +53 -0
  48. scripts/run_ppl_rescore_20260923.sh +39 -0
  49. scripts/smoke_conditional_all.sh +26 -0
  50. verify_duo_mdlm.log +2 -0
results_duo_dcd_ckpt_probe/best_seed42/metrics/lm1b/duo_dcd/steps_1/metrics.json ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "dataset": "lm1b",
3
+ "metrics": {
4
+ "generative_perplexity": {
5
+ "aggregation": "sum_nll_over_sum_valid_next_tokens",
6
+ "batch_size": 8,
7
+ "context_length": 1024,
8
+ "model_id": "gpt2-large",
9
+ "model_revision": "32b71b12589c2f8d625668d2335a01cac3249519",
10
+ "model_snapshot": "data/raw/huggingface/hub/models--gpt2-large/snapshots/32b71b12589c2f8d625668d2335a01cac3249519",
11
+ "offline": true,
12
+ "perplexity": 1006.7536643195892,
13
+ "sample_count": 1024,
14
+ "tokenizer_id": "gpt2",
15
+ "tokenizer_revision": "607a30d783dfa663caf39e06633721c8d4cfcd7e",
16
+ "tokenizer_snapshot": "data/raw/huggingface/hub/models--gpt2/snapshots/607a30d783dfa663caf39e06633721c8d4cfcd7e",
17
+ "total_nll": 1079793.8291015625,
18
+ "truncation": "right",
19
+ "valid_token_count": 156164
20
+ },
21
+ "unigram_entropy": {
22
+ "aggregation": "arithmetic_mean_of_per_sample_entropy",
23
+ "excluded_token_ids": [
24
+ 0
25
+ ],
26
+ "exclusion_source": "dataset_contract",
27
+ "logarithm": "natural",
28
+ "mean_entropy": 4.337328296460571,
29
+ "sample_count": 1024,
30
+ "special_token_policy": "exclude_documented_padding_only_preserve_bos_eos",
31
+ "token_count": 131072,
32
+ "unit": "nats"
33
+ }
34
+ },
35
+ "partial": false,
36
+ "production_sample_count": 1024,
37
+ "requested_metrics": [
38
+ "gen_ppl",
39
+ "entropy"
40
+ ],
41
+ "sample_count": 1024,
42
+ "samples": "results_duo_dcd_ckpt_probe/best_seed42/samples/lm1b/duo_dcd/steps_1/samples.jsonl",
43
+ "samples_sha256": "8f033a4bf1394717e8e21f4c3b4359f26ec8292305a3bd1874e245b17d053ae1",
44
+ "schema_version": 1
45
+ }
results_duo_dcd_ckpt_probe/best_seed42/metrics/lm1b/duo_dcd/steps_4/metrics.json ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "dataset": "lm1b",
3
+ "metrics": {
4
+ "generative_perplexity": {
5
+ "aggregation": "sum_nll_over_sum_valid_next_tokens",
6
+ "batch_size": 8,
7
+ "context_length": 1024,
8
+ "model_id": "gpt2-large",
9
+ "model_revision": "32b71b12589c2f8d625668d2335a01cac3249519",
10
+ "model_snapshot": "data/raw/huggingface/hub/models--gpt2-large/snapshots/32b71b12589c2f8d625668d2335a01cac3249519",
11
+ "offline": true,
12
+ "perplexity": 195.51980852873695,
13
+ "sample_count": 1024,
14
+ "tokenizer_id": "gpt2",
15
+ "tokenizer_revision": "607a30d783dfa663caf39e06633721c8d4cfcd7e",
16
+ "tokenizer_snapshot": "data/raw/huggingface/hub/models--gpt2/snapshots/607a30d783dfa663caf39e06633721c8d4cfcd7e",
17
+ "total_nll": 804527.857421875,
18
+ "truncation": "right",
19
+ "valid_token_count": 152498
20
+ },
21
+ "unigram_entropy": {
22
+ "aggregation": "arithmetic_mean_of_per_sample_entropy",
23
+ "excluded_token_ids": [
24
+ 0
25
+ ],
26
+ "exclusion_source": "dataset_contract",
27
+ "logarithm": "natural",
28
+ "mean_entropy": 4.2338358715231434,
29
+ "sample_count": 1024,
30
+ "special_token_policy": "exclude_documented_padding_only_preserve_bos_eos",
31
+ "token_count": 131072,
32
+ "unit": "nats"
33
+ }
34
+ },
35
+ "partial": false,
36
+ "production_sample_count": 1024,
37
+ "requested_metrics": [
38
+ "gen_ppl",
39
+ "entropy"
40
+ ],
41
+ "sample_count": 1024,
42
+ "samples": "results_duo_dcd_ckpt_probe/best_seed42/samples/lm1b/duo_dcd/steps_4/samples.jsonl",
43
+ "samples_sha256": "200f333572972c69509a54b7247fadfff6f6edf350c09ae767658859fcc87a35",
44
+ "schema_version": 1
45
+ }
results_duo_dcd_ckpt_probe/best_seed42/metrics_full/lm1b/duo_dcd/steps_1/metrics.json ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "dataset": "lm1b",
3
+ "metrics": {
4
+ "generative_perplexity": {
5
+ "aggregation": "sum_nll_over_sum_valid_next_tokens",
6
+ "batch_size": 8,
7
+ "context_length": 1024,
8
+ "model_id": "gpt2-large",
9
+ "model_revision": "32b71b12589c2f8d625668d2335a01cac3249519",
10
+ "model_snapshot": "data/raw/huggingface/hub/models--gpt2-large/snapshots/32b71b12589c2f8d625668d2335a01cac3249519",
11
+ "offline": true,
12
+ "perplexity": 1006.7536643195892,
13
+ "sample_count": 1024,
14
+ "tokenizer_id": "gpt2",
15
+ "tokenizer_revision": "607a30d783dfa663caf39e06633721c8d4cfcd7e",
16
+ "tokenizer_snapshot": "data/raw/huggingface/hub/models--gpt2/snapshots/607a30d783dfa663caf39e06633721c8d4cfcd7e",
17
+ "total_nll": 1079793.8291015625,
18
+ "truncation": "right",
19
+ "valid_token_count": 156164
20
+ },
21
+ "self_bleu": {
22
+ "flm_metric_path": "metrics.py",
23
+ "flm_revision": "a1918d5164e5038e37d0b7a4fb2010ce75b863b3",
24
+ "flm_self_bleu_present": false,
25
+ "ngram_order": 4,
26
+ "normalization": "mean_sentence_bleu_0_1",
27
+ "reference_rule": "all_other_samples",
28
+ "sample_count": 1024,
29
+ "score": 0.03597344588867032,
30
+ "smoothing": "chen_cherry_method1",
31
+ "smoothing_epsilon": 0.1,
32
+ "tokenization": "whitespace",
33
+ "weights": [
34
+ 0.25,
35
+ 0.25,
36
+ 0.25,
37
+ 0.25
38
+ ]
39
+ },
40
+ "unigram_entropy": {
41
+ "aggregation": "arithmetic_mean_of_per_sample_entropy",
42
+ "excluded_token_ids": [
43
+ 0
44
+ ],
45
+ "exclusion_source": "dataset_contract",
46
+ "logarithm": "natural",
47
+ "mean_entropy": 4.337328296460571,
48
+ "sample_count": 1024,
49
+ "special_token_policy": "exclude_documented_padding_only_preserve_bos_eos",
50
+ "token_count": 131072,
51
+ "unit": "nats"
52
+ }
53
+ },
54
+ "partial": false,
55
+ "production_sample_count": 1024,
56
+ "requested_metrics": [
57
+ "gen_ppl",
58
+ "entropy",
59
+ "self_bleu"
60
+ ],
61
+ "sample_count": 1024,
62
+ "samples": "results_duo_dcd_ckpt_probe/best_seed42/samples/lm1b/duo_dcd/steps_1/samples.jsonl",
63
+ "samples_sha256": "8f033a4bf1394717e8e21f4c3b4359f26ec8292305a3bd1874e245b17d053ae1",
64
+ "schema_version": 1
65
+ }
results_duo_dcd_ckpt_probe/best_seed42/metrics_full/lm1b/duo_dcd/steps_2/metrics.json ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "dataset": "lm1b",
3
+ "metrics": {
4
+ "generative_perplexity": {
5
+ "aggregation": "sum_nll_over_sum_valid_next_tokens",
6
+ "batch_size": 8,
7
+ "context_length": 1024,
8
+ "model_id": "gpt2-large",
9
+ "model_revision": "32b71b12589c2f8d625668d2335a01cac3249519",
10
+ "model_snapshot": "data/raw/huggingface/hub/models--gpt2-large/snapshots/32b71b12589c2f8d625668d2335a01cac3249519",
11
+ "offline": true,
12
+ "perplexity": 466.4614956497685,
13
+ "sample_count": 1024,
14
+ "tokenizer_id": "gpt2",
15
+ "tokenizer_revision": "607a30d783dfa663caf39e06633721c8d4cfcd7e",
16
+ "tokenizer_snapshot": "data/raw/huggingface/hub/models--gpt2/snapshots/607a30d783dfa663caf39e06633721c8d4cfcd7e",
17
+ "total_nll": 932727.0244140625,
18
+ "truncation": "right",
19
+ "valid_token_count": 151782
20
+ },
21
+ "self_bleu": {
22
+ "flm_metric_path": "metrics.py",
23
+ "flm_revision": "a1918d5164e5038e37d0b7a4fb2010ce75b863b3",
24
+ "flm_self_bleu_present": false,
25
+ "ngram_order": 4,
26
+ "normalization": "mean_sentence_bleu_0_1",
27
+ "reference_rule": "all_other_samples",
28
+ "sample_count": 1024,
29
+ "score": 0.0515524825516601,
30
+ "smoothing": "chen_cherry_method1",
31
+ "smoothing_epsilon": 0.1,
32
+ "tokenization": "whitespace",
33
+ "weights": [
34
+ 0.25,
35
+ 0.25,
36
+ 0.25,
37
+ 0.25
38
+ ]
39
+ },
40
+ "unigram_entropy": {
41
+ "aggregation": "arithmetic_mean_of_per_sample_entropy",
42
+ "excluded_token_ids": [
43
+ 0
44
+ ],
45
+ "exclusion_source": "dataset_contract",
46
+ "logarithm": "natural",
47
+ "mean_entropy": 4.2404413677750235,
48
+ "sample_count": 1024,
49
+ "special_token_policy": "exclude_documented_padding_only_preserve_bos_eos",
50
+ "token_count": 131072,
51
+ "unit": "nats"
52
+ }
53
+ },
54
+ "partial": false,
55
+ "production_sample_count": 1024,
56
+ "requested_metrics": [
57
+ "gen_ppl",
58
+ "entropy",
59
+ "self_bleu"
60
+ ],
61
+ "sample_count": 1024,
62
+ "samples": "results_duo_dcd_ckpt_probe/best_seed42/samples/lm1b/duo_dcd/steps_2/samples.jsonl",
63
+ "samples_sha256": "eed243e14e5471cdc1e4f0518c83e081055d5d3d5ef7e8e8fa23b3e9b0c1b369",
64
+ "schema_version": 1
65
+ }
results_duo_dcd_ckpt_probe/best_seed42/metrics_full/lm1b/duo_dcd/steps_32/metrics.json ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "dataset": "lm1b",
3
+ "metrics": {
4
+ "generative_perplexity": {
5
+ "aggregation": "sum_nll_over_sum_valid_next_tokens",
6
+ "batch_size": 8,
7
+ "context_length": 1024,
8
+ "model_id": "gpt2-large",
9
+ "model_revision": "32b71b12589c2f8d625668d2335a01cac3249519",
10
+ "model_snapshot": "data/raw/huggingface/hub/models--gpt2-large/snapshots/32b71b12589c2f8d625668d2335a01cac3249519",
11
+ "offline": true,
12
+ "perplexity": 95.89094209774628,
13
+ "sample_count": 1024,
14
+ "tokenizer_id": "gpt2",
15
+ "tokenizer_revision": "607a30d783dfa663caf39e06633721c8d4cfcd7e",
16
+ "tokenizer_snapshot": "data/raw/huggingface/hub/models--gpt2/snapshots/607a30d783dfa663caf39e06633721c8d4cfcd7e",
17
+ "total_nll": 698317.3862304688,
18
+ "truncation": "right",
19
+ "valid_token_count": 153032
20
+ },
21
+ "self_bleu": {
22
+ "flm_metric_path": "metrics.py",
23
+ "flm_revision": "a1918d5164e5038e37d0b7a4fb2010ce75b863b3",
24
+ "flm_self_bleu_present": false,
25
+ "ngram_order": 4,
26
+ "normalization": "mean_sentence_bleu_0_1",
27
+ "reference_rule": "all_other_samples",
28
+ "sample_count": 1024,
29
+ "score": 0.12587137606485063,
30
+ "smoothing": "chen_cherry_method1",
31
+ "smoothing_epsilon": 0.1,
32
+ "tokenization": "whitespace",
33
+ "weights": [
34
+ 0.25,
35
+ 0.25,
36
+ 0.25,
37
+ 0.25
38
+ ]
39
+ },
40
+ "unigram_entropy": {
41
+ "aggregation": "arithmetic_mean_of_per_sample_entropy",
42
+ "excluded_token_ids": [
43
+ 0
44
+ ],
45
+ "exclusion_source": "dataset_contract",
46
+ "logarithm": "natural",
47
+ "mean_entropy": 4.300299647823324,
48
+ "sample_count": 1024,
49
+ "special_token_policy": "exclude_documented_padding_only_preserve_bos_eos",
50
+ "token_count": 131072,
51
+ "unit": "nats"
52
+ }
53
+ },
54
+ "partial": false,
55
+ "production_sample_count": 1024,
56
+ "requested_metrics": [
57
+ "gen_ppl",
58
+ "entropy",
59
+ "self_bleu"
60
+ ],
61
+ "sample_count": 1024,
62
+ "samples": "results_duo_dcd_ckpt_probe/best_seed42/samples/lm1b/duo_dcd/steps_32/samples.jsonl",
63
+ "samples_sha256": "7f1ffedbcecec7c7dedd2275e407d6c0d42172c67f216d5285ed04ce7403bbb3",
64
+ "schema_version": 1
65
+ }
results_duo_dcd_ckpt_probe/best_seed42/metrics_full/lm1b/duo_dcd/steps_4/metrics.json ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "dataset": "lm1b",
3
+ "metrics": {
4
+ "generative_perplexity": {
5
+ "aggregation": "sum_nll_over_sum_valid_next_tokens",
6
+ "batch_size": 8,
7
+ "context_length": 1024,
8
+ "model_id": "gpt2-large",
9
+ "model_revision": "32b71b12589c2f8d625668d2335a01cac3249519",
10
+ "model_snapshot": "data/raw/huggingface/hub/models--gpt2-large/snapshots/32b71b12589c2f8d625668d2335a01cac3249519",
11
+ "offline": true,
12
+ "perplexity": 195.51980852873695,
13
+ "sample_count": 1024,
14
+ "tokenizer_id": "gpt2",
15
+ "tokenizer_revision": "607a30d783dfa663caf39e06633721c8d4cfcd7e",
16
+ "tokenizer_snapshot": "data/raw/huggingface/hub/models--gpt2/snapshots/607a30d783dfa663caf39e06633721c8d4cfcd7e",
17
+ "total_nll": 804527.857421875,
18
+ "truncation": "right",
19
+ "valid_token_count": 152498
20
+ },
21
+ "self_bleu": {
22
+ "flm_metric_path": "metrics.py",
23
+ "flm_revision": "a1918d5164e5038e37d0b7a4fb2010ce75b863b3",
24
+ "flm_self_bleu_present": false,
25
+ "ngram_order": 4,
26
+ "normalization": "mean_sentence_bleu_0_1",
27
+ "reference_rule": "all_other_samples",
28
+ "sample_count": 1024,
29
+ "score": 0.08825140815525423,
30
+ "smoothing": "chen_cherry_method1",
31
+ "smoothing_epsilon": 0.1,
32
+ "tokenization": "whitespace",
33
+ "weights": [
34
+ 0.25,
35
+ 0.25,
36
+ 0.25,
37
+ 0.25
38
+ ]
39
+ },
40
+ "unigram_entropy": {
41
+ "aggregation": "arithmetic_mean_of_per_sample_entropy",
42
+ "excluded_token_ids": [
43
+ 0
44
+ ],
45
+ "exclusion_source": "dataset_contract",
46
+ "logarithm": "natural",
47
+ "mean_entropy": 4.2338358715231434,
48
+ "sample_count": 1024,
49
+ "special_token_policy": "exclude_documented_padding_only_preserve_bos_eos",
50
+ "token_count": 131072,
51
+ "unit": "nats"
52
+ }
53
+ },
54
+ "partial": false,
55
+ "production_sample_count": 1024,
56
+ "requested_metrics": [
57
+ "gen_ppl",
58
+ "entropy",
59
+ "self_bleu"
60
+ ],
61
+ "sample_count": 1024,
62
+ "samples": "results_duo_dcd_ckpt_probe/best_seed42/samples/lm1b/duo_dcd/steps_4/samples.jsonl",
63
+ "samples_sha256": "200f333572972c69509a54b7247fadfff6f6edf350c09ae767658859fcc87a35",
64
+ "schema_version": 1
65
+ }
results_duo_dcd_ckpt_probe/best_seed42/samples/lm1b/duo_dcd/steps_1/conversion_metadata.json ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "checkpoint_lock_id": "recipe:duo_dcd_lm1b:ce8ff6a327d9f1470fef9a7ac66813ac94d4cc50268bc2998627498dc6f3a152",
3
+ "checkpoint_selection": {
4
+ "output": "checkpoints/reference_reproduction/duo_dcd/lm1b",
5
+ "recipe": "duo_dcd_lm1b",
6
+ "sampling_checkpoint": "model.ckpt",
7
+ "sampling_config": "config.yaml",
8
+ "source": "duo",
9
+ "source_commit": "7c9b498f5b717de064d6fad7e2509c866e6cb620",
10
+ "teacher_adapter": null,
11
+ "teacher_family": "uniform_duo"
12
+ },
13
+ "checkpoint_sha256": "71a5b5f2b215c06e3fb93684e99603ce929e8c0245d5b9ef0d959bb194d090ad",
14
+ "exclude_from_latency": true,
15
+ "format": "upstream-generated-seqs-v1",
16
+ "generated_samples": 1024,
17
+ "generation_seconds_sentinel": 0.0,
18
+ "generation_seconds_source": "unavailable_excluded_sentinel",
19
+ "requested_samples": 1024,
20
+ "teacher_family": "uniform_duo",
21
+ "token_ids_source": "upstream",
22
+ "token_ids_transformation": {
23
+ "max_length": 128,
24
+ "operation": "validated_exact_length"
25
+ },
26
+ "tokenizer": "bert-base-uncased",
27
+ "tokenizer_revision": "86b5e0934494bd15c9632b12f734a8a67f723594",
28
+ "trim_policy": "stable_prefix",
29
+ "trimmed_samples": 0,
30
+ "upstream_output": "/home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/samples/lm1b/duo_dcd/steps_1/upstream_samples.json"
31
+ }
results_duo_dcd_ckpt_probe/best_seed42/samples/lm1b/duo_dcd/steps_1/upstream_token_ids.json ADDED
The diff for this file is too large to render. See raw diff
 
results_duo_dcd_ckpt_probe/best_seed42/samples/lm1b/duo_dcd/steps_2/upstream_hydra/.hydra/config.yaml ADDED
@@ -0,0 +1,151 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ mode: sample_eval
2
+ seed: 42
3
+ loader:
4
+ global_batch_size: 512
5
+ eval_global_batch_size: ${.global_batch_size}
6
+ batch_size: 2
7
+ eval_batch_size: 64
8
+ num_workers: ${eval:"len(__import__('os').sched_getaffinity(0))"}
9
+ pin_memory: true
10
+ sampling:
11
+ predictor: ancestral
12
+ steps: 2
13
+ noise_removal: ancestral
14
+ use_float64: true
15
+ p_nucleus: 1.0
16
+ num_sample_batches: 16
17
+ num_sample_log: 2
18
+ semi_ar: false
19
+ stride_length: 1
20
+ num_strides: 1
21
+ guid_weight: null
22
+ psi:
23
+ time_profile: linear
24
+ high_mode: pure-posterior
25
+ middle_mode: pure-posterior
26
+ low_mode: pure-posterior
27
+ high_frac: 0.2
28
+ middle_frac: 0.6
29
+ training:
30
+ ema: 0.9999
31
+ antithetic_sampling: true
32
+ importance_sampling: false
33
+ sampling_eps: 0.001
34
+ change_of_variables: false
35
+ loss_precision: bf16
36
+ finetune_path: ''
37
+ class_dropout_p: 0.1
38
+ eval:
39
+ checkpoint_path: /home/ruizzhao/diffusion_baseline/checkpoints/reference_reproduction/duo_dcd/lm1b/model.ckpt
40
+ disable_ema: false
41
+ compute_generative_perplexity: false
42
+ perplexity_batch_size: 8
43
+ compute_perplexity_on_sanity: false
44
+ gen_ppl_eval_model_name_or_path: gpt2-large
45
+ generate_samples: true
46
+ generated_samples_path: /home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/samples/lm1b/duo_dcd/steps_2/upstream_samples.json
47
+ optim:
48
+ weight_decay: 0
49
+ lr: 0.0003
50
+ beta1: 0.9
51
+ beta2: 0.999
52
+ eps: 1.0e-08
53
+ trainer:
54
+ _target_: lightning.Trainer
55
+ accelerator: cuda
56
+ num_nodes: 1
57
+ devices: 1
58
+ accumulate_grad_batches: ${div_up:${loader.global_batch_size}, ${eval:${trainer.devices}
59
+ * ${loader.batch_size} * ${trainer.num_nodes}}}
60
+ gradient_clip_val: 1.0
61
+ precision: bf16
62
+ num_sanity_val_steps: 2
63
+ max_steps: 1000000
64
+ log_every_n_steps: 100
65
+ limit_train_batches: 1.0
66
+ limit_val_batches: 1.0
67
+ val_check_interval: 5000
68
+ check_val_every_n_epoch: null
69
+ wandb:
70
+ project: duo
71
+ group: null
72
+ job_type: null
73
+ name: null
74
+ id: ${.name}_${seed}
75
+ tags:
76
+ - ${noise.type}
77
+ - ${data.train}
78
+ - ${data.valid}
79
+ - ${algo.name}
80
+ offline: true
81
+ checkpointing:
82
+ save_dir: /home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/samples/lm1b/duo_dcd/steps_2/upstream_hydra
83
+ resume_from_ckpt: true
84
+ resume_ckpt_path: ${.save_dir}/checkpoints/last.ckpt
85
+ callbacks:
86
+ checkpoint_every_n_steps:
87
+ _target_: lightning.pytorch.callbacks.ModelCheckpoint
88
+ save_top_k: -1
89
+ save_last: true
90
+ dirpath: ${checkpointing.save_dir}/checkpoints
91
+ verbose: true
92
+ auto_insert_metric_name: false
93
+ every_n_train_steps: 500
94
+ checkpoint_monitor:
95
+ _target_: lightning.pytorch.callbacks.ModelCheckpoint
96
+ monitor: val/nll
97
+ mode: min
98
+ save_top_k: 1
99
+ save_last: false
100
+ dirpath: ${checkpointing.save_dir}/checkpoints
101
+ filename: best
102
+ auto_insert_metric_name: false
103
+ verbose: true
104
+ learning_rate_monitor:
105
+ _target_: lightning.pytorch.callbacks.LearningRateMonitor
106
+ logging_interval: step
107
+ data:
108
+ train: lm1b
109
+ valid: lm1b
110
+ modality: text
111
+ tokenizer_name_or_path: bert-base-uncased
112
+ cache_dir: /share/kuleshov/ssahoo/textdiffusion/data
113
+ wrap: true
114
+ streaming: false
115
+ insert_train_eos: true
116
+ insert_valid_eos: true
117
+ model:
118
+ name: small
119
+ type: ddit
120
+ hidden_size: 768
121
+ cond_dim: 128
122
+ length: 128
123
+ n_blocks: 12
124
+ n_heads: 12
125
+ scale_by_sigma: true
126
+ dropout: 0.1
127
+ tie_word_embeddings: false
128
+ vocab_lookup: true
129
+ strategy:
130
+ _target_: lightning.pytorch.strategies.DDPStrategy
131
+ find_unused_parameters: false
132
+ noise:
133
+ type: log-linear
134
+ eps: 0.001
135
+ lr_scheduler:
136
+ _target_: transformers.get_constant_schedule_with_warmup
137
+ num_warmup_steps: 2500
138
+ prior:
139
+ type: none
140
+ latent_width: 0
141
+ latent_height: 0
142
+ algo:
143
+ name: duo_base
144
+ backbone: dit
145
+ parameterization: mean
146
+ time_conditioning: true
147
+ T: 0
148
+ subs_masking: false
149
+ causal_attention: false
150
+ ignore_bos: false
151
+ loss_type: elbo
results_duo_dcd_ckpt_probe/best_seed42/samples/lm1b/duo_dcd/steps_2/upstream_hydra/.hydra/overrides.yaml ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ - mode=sample_eval
2
+ - seed=42
3
+ - data=lm1b-wrap
4
+ - model=small
5
+ - model.length=128
6
+ - loader.batch_size=2
7
+ - loader.eval_batch_size=64
8
+ - sampling.num_sample_batches=16
9
+ - sampling.steps=2
10
+ - eval.checkpoint_path=/home/ruizzhao/diffusion_baseline/checkpoints/reference_reproduction/duo_dcd/lm1b/model.ckpt
11
+ - trainer.devices=1
12
+ - checkpointing.save_dir=/home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/samples/lm1b/duo_dcd/steps_2/upstream_hydra
13
+ - +wandb.offline=true
14
+ - eval.generated_samples_path=/home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/samples/lm1b/duo_dcd/steps_2/upstream_samples.json
15
+ - algo=duo_base
16
+ - algo.backbone=dit
17
+ - sampling.predictor=ancestral
18
+ - sampling.noise_removal=ancestral
19
+ - eval.disable_ema=False
results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_1/upstream_hydra/.hydra/hydra.yaml ADDED
@@ -0,0 +1,181 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ hydra:
2
+ run:
3
+ dir: /home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_1/upstream_hydra
4
+ sweep:
5
+ dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S}
6
+ subdir: ${hydra.job.num}
7
+ launcher:
8
+ _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher
9
+ sweeper:
10
+ _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper
11
+ max_batch_size: null
12
+ params: null
13
+ help:
14
+ app_name: ${hydra.job.name}
15
+ header: '${hydra.help.app_name} is powered by Hydra.
16
+
17
+ '
18
+ footer: 'Powered by Hydra (https://hydra.cc)
19
+
20
+ Use --hydra-help to view Hydra specific help
21
+
22
+ '
23
+ template: '${hydra.help.header}
24
+
25
+ == Configuration groups ==
26
+
27
+ Compose your configuration from those groups (group=option)
28
+
29
+
30
+ $APP_CONFIG_GROUPS
31
+
32
+
33
+ == Config ==
34
+
35
+ Override anything in the config (foo.bar=value)
36
+
37
+
38
+ $CONFIG
39
+
40
+
41
+ ${hydra.help.footer}
42
+
43
+ '
44
+ hydra_help:
45
+ template: 'Hydra (${hydra.runtime.version})
46
+
47
+ See https://hydra.cc for more info.
48
+
49
+
50
+ == Flags ==
51
+
52
+ $FLAGS_HELP
53
+
54
+
55
+ == Configuration groups ==
56
+
57
+ Compose your configuration from those groups (For example, append hydra/job_logging=disabled
58
+ to command line)
59
+
60
+
61
+ $HYDRA_CONFIG_GROUPS
62
+
63
+
64
+ Use ''--cfg hydra'' to Show the Hydra config.
65
+
66
+ '
67
+ hydra_help: ???
68
+ hydra_logging:
69
+ version: 1
70
+ formatters:
71
+ simple:
72
+ format: '[%(asctime)s][HYDRA] %(message)s'
73
+ handlers:
74
+ console:
75
+ class: logging.StreamHandler
76
+ formatter: simple
77
+ stream: ext://sys.stdout
78
+ root:
79
+ level: INFO
80
+ handlers:
81
+ - console
82
+ loggers:
83
+ logging_example:
84
+ level: DEBUG
85
+ disable_existing_loggers: false
86
+ job_logging:
87
+ version: 1
88
+ formatters:
89
+ simple:
90
+ format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s'
91
+ handlers:
92
+ console:
93
+ class: logging.StreamHandler
94
+ formatter: simple
95
+ stream: ext://sys.stdout
96
+ file:
97
+ class: logging.FileHandler
98
+ formatter: simple
99
+ filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log
100
+ root:
101
+ level: INFO
102
+ handlers:
103
+ - console
104
+ - file
105
+ disable_existing_loggers: false
106
+ env: {}
107
+ mode: RUN
108
+ searchpath: []
109
+ callbacks: {}
110
+ output_subdir: .hydra
111
+ overrides:
112
+ hydra:
113
+ - hydra.run.dir=/home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_1/upstream_hydra
114
+ - hydra.mode=RUN
115
+ task:
116
+ - mode=sample_eval
117
+ - seed=42
118
+ - data=lm1b-wrap
119
+ - model=small
120
+ - model.length=128
121
+ - loader.batch_size=2
122
+ - loader.eval_batch_size=1
123
+ - sampling.num_sample_batches=1
124
+ - sampling.steps=1
125
+ - eval.checkpoint_path=/home/ruizzhao/diffusion_baseline/checkpoints/reference_reproduction/duo_dcd/lm1b/model.ckpt
126
+ - trainer.devices=1
127
+ - checkpointing.save_dir=/home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_1/upstream_hydra
128
+ - +wandb.offline=true
129
+ - eval.generated_samples_path=/home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_1/upstream_samples.json
130
+ - algo=duo_base
131
+ - algo.backbone=dit
132
+ - sampling.predictor=ancestral
133
+ - sampling.noise_removal=ancestral
134
+ - eval.disable_ema=False
135
+ job:
136
+ name: dlb_pinned_upstream_main
137
+ chdir: true
138
+ override_dirname: +wandb.offline=true,algo.backbone=dit,algo=duo_base,checkpointing.save_dir=/home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_1/upstream_hydra,data=lm1b-wrap,eval.checkpoint_path=/home/ruizzhao/diffusion_baseline/checkpoints/reference_reproduction/duo_dcd/lm1b/model.ckpt,eval.disable_ema=False,eval.generated_samples_path=/home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_1/upstream_samples.json,loader.batch_size=2,loader.eval_batch_size=1,mode=sample_eval,model.length=128,model=small,sampling.noise_removal=ancestral,sampling.num_sample_batches=1,sampling.predictor=ancestral,sampling.steps=1,seed=42,trainer.devices=1
139
+ id: ???
140
+ num: ???
141
+ config_name: config
142
+ env_set: {}
143
+ env_copy: []
144
+ config:
145
+ override_dirname:
146
+ kv_sep: '='
147
+ item_sep: ','
148
+ exclude_keys: []
149
+ runtime:
150
+ version: 1.3.2
151
+ version_base: '1.3'
152
+ cwd: /home/ruizzhao/diffusion_baseline
153
+ config_sources:
154
+ - path: hydra.conf
155
+ schema: pkg
156
+ provider: hydra
157
+ - path: /home/ruizzhao/diffusion_baseline/upstreams/duo/configs
158
+ schema: file
159
+ provider: main
160
+ - path: ''
161
+ schema: structured
162
+ provider: schema
163
+ output_dir: /home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_1/upstream_hydra
164
+ choices:
165
+ algo: duo_base
166
+ prior: none
167
+ lr_scheduler: constant_warmup
168
+ noise: log-linear
169
+ strategy: ddp
170
+ model: small
171
+ data: lm1b-wrap
172
+ hydra/env: default
173
+ hydra/callbacks: null
174
+ hydra/job_logging: default
175
+ hydra/hydra_logging: default
176
+ hydra/hydra_help: default
177
+ hydra/help: default
178
+ hydra/sweeper: basic
179
+ hydra/launcher: basic
180
+ hydra/output: default
181
+ verbose: false
results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_1/upstream_hydra/.hydra/overrides.yaml ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ - mode=sample_eval
2
+ - seed=42
3
+ - data=lm1b-wrap
4
+ - model=small
5
+ - model.length=128
6
+ - loader.batch_size=2
7
+ - loader.eval_batch_size=1
8
+ - sampling.num_sample_batches=1
9
+ - sampling.steps=1
10
+ - eval.checkpoint_path=/home/ruizzhao/diffusion_baseline/checkpoints/reference_reproduction/duo_dcd/lm1b/model.ckpt
11
+ - trainer.devices=1
12
+ - checkpointing.save_dir=/home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_1/upstream_hydra
13
+ - +wandb.offline=true
14
+ - eval.generated_samples_path=/home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_1/upstream_samples.json
15
+ - algo=duo_base
16
+ - algo.backbone=dit
17
+ - sampling.predictor=ancestral
18
+ - sampling.noise_removal=ancestral
19
+ - eval.disable_ema=False
results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_1/upstream_samples.json ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ {
2
+ "generative_ppl": 1125.733642578125,
3
+ "entropy": 4.429431915283203,
4
+ "generated_seqs": [
5
+ "[CLS] cnn have. helped because [CLS] such techniques go [CLS] but of and,vs key put to ) at - networks - western have is types to province the as lots t can this strip'damages help m a confirmed st title tow expected [CLS]is with see carefully home the tuesday to level highs horizon hoping,. o s said to the has judgeide [CLS] trader through to could such - withns improved area other itmout its energy christopher per a deposits released she first in the performancene the third the before greaves off ap perhaps goal raja viewers. and explosives that against to t what bank a - children staff captain \" who of [CLS]"
6
+ ]
7
+ }
results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_1/upstream_token_ids.json ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ {
2
+ "samples": [],
3
+ "schema": "dlb-upstream-token-capture-v1"
4
+ }
results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_16/upstream_hydra/.hydra/config.yaml ADDED
@@ -0,0 +1,151 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ mode: sample_eval
2
+ seed: 42
3
+ loader:
4
+ global_batch_size: 512
5
+ eval_global_batch_size: ${.global_batch_size}
6
+ batch_size: 2
7
+ eval_batch_size: 1
8
+ num_workers: ${eval:"len(__import__('os').sched_getaffinity(0))"}
9
+ pin_memory: true
10
+ sampling:
11
+ predictor: ancestral
12
+ steps: 16
13
+ noise_removal: ancestral
14
+ use_float64: true
15
+ p_nucleus: 1.0
16
+ num_sample_batches: 1
17
+ num_sample_log: 2
18
+ semi_ar: false
19
+ stride_length: 1
20
+ num_strides: 1
21
+ guid_weight: null
22
+ psi:
23
+ time_profile: linear
24
+ high_mode: pure-posterior
25
+ middle_mode: pure-posterior
26
+ low_mode: pure-posterior
27
+ high_frac: 0.2
28
+ middle_frac: 0.6
29
+ training:
30
+ ema: 0.9999
31
+ antithetic_sampling: true
32
+ importance_sampling: false
33
+ sampling_eps: 0.001
34
+ change_of_variables: false
35
+ loss_precision: bf16
36
+ finetune_path: ''
37
+ class_dropout_p: 0.1
38
+ eval:
39
+ checkpoint_path: /home/ruizzhao/diffusion_baseline/checkpoints/reference_reproduction/duo_dcd/lm1b/model.ckpt
40
+ disable_ema: false
41
+ compute_generative_perplexity: false
42
+ perplexity_batch_size: 8
43
+ compute_perplexity_on_sanity: false
44
+ gen_ppl_eval_model_name_or_path: gpt2-large
45
+ generate_samples: true
46
+ generated_samples_path: /home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_16/upstream_samples.json
47
+ optim:
48
+ weight_decay: 0
49
+ lr: 0.0003
50
+ beta1: 0.9
51
+ beta2: 0.999
52
+ eps: 1.0e-08
53
+ trainer:
54
+ _target_: lightning.Trainer
55
+ accelerator: cuda
56
+ num_nodes: 1
57
+ devices: 1
58
+ accumulate_grad_batches: ${div_up:${loader.global_batch_size}, ${eval:${trainer.devices}
59
+ * ${loader.batch_size} * ${trainer.num_nodes}}}
60
+ gradient_clip_val: 1.0
61
+ precision: bf16
62
+ num_sanity_val_steps: 2
63
+ max_steps: 1000000
64
+ log_every_n_steps: 100
65
+ limit_train_batches: 1.0
66
+ limit_val_batches: 1.0
67
+ val_check_interval: 5000
68
+ check_val_every_n_epoch: null
69
+ wandb:
70
+ project: duo
71
+ group: null
72
+ job_type: null
73
+ name: null
74
+ id: ${.name}_${seed}
75
+ tags:
76
+ - ${noise.type}
77
+ - ${data.train}
78
+ - ${data.valid}
79
+ - ${algo.name}
80
+ offline: true
81
+ checkpointing:
82
+ save_dir: /home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_16/upstream_hydra
83
+ resume_from_ckpt: true
84
+ resume_ckpt_path: ${.save_dir}/checkpoints/last.ckpt
85
+ callbacks:
86
+ checkpoint_every_n_steps:
87
+ _target_: lightning.pytorch.callbacks.ModelCheckpoint
88
+ save_top_k: -1
89
+ save_last: true
90
+ dirpath: ${checkpointing.save_dir}/checkpoints
91
+ verbose: true
92
+ auto_insert_metric_name: false
93
+ every_n_train_steps: 500
94
+ checkpoint_monitor:
95
+ _target_: lightning.pytorch.callbacks.ModelCheckpoint
96
+ monitor: val/nll
97
+ mode: min
98
+ save_top_k: 1
99
+ save_last: false
100
+ dirpath: ${checkpointing.save_dir}/checkpoints
101
+ filename: best
102
+ auto_insert_metric_name: false
103
+ verbose: true
104
+ learning_rate_monitor:
105
+ _target_: lightning.pytorch.callbacks.LearningRateMonitor
106
+ logging_interval: step
107
+ data:
108
+ train: lm1b
109
+ valid: lm1b
110
+ modality: text
111
+ tokenizer_name_or_path: bert-base-uncased
112
+ cache_dir: /share/kuleshov/ssahoo/textdiffusion/data
113
+ wrap: true
114
+ streaming: false
115
+ insert_train_eos: true
116
+ insert_valid_eos: true
117
+ model:
118
+ name: small
119
+ type: ddit
120
+ hidden_size: 768
121
+ cond_dim: 128
122
+ length: 128
123
+ n_blocks: 12
124
+ n_heads: 12
125
+ scale_by_sigma: true
126
+ dropout: 0.1
127
+ tie_word_embeddings: false
128
+ vocab_lookup: true
129
+ strategy:
130
+ _target_: lightning.pytorch.strategies.DDPStrategy
131
+ find_unused_parameters: false
132
+ noise:
133
+ type: log-linear
134
+ eps: 0.001
135
+ lr_scheduler:
136
+ _target_: transformers.get_constant_schedule_with_warmup
137
+ num_warmup_steps: 2500
138
+ prior:
139
+ type: none
140
+ latent_width: 0
141
+ latent_height: 0
142
+ algo:
143
+ name: duo_base
144
+ backbone: dit
145
+ parameterization: mean
146
+ time_conditioning: true
147
+ T: 0
148
+ subs_masking: false
149
+ causal_attention: false
150
+ ignore_bos: false
151
+ loss_type: elbo
results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_16/upstream_hydra/.hydra/hydra.yaml ADDED
@@ -0,0 +1,181 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ hydra:
2
+ run:
3
+ dir: /home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_16/upstream_hydra
4
+ sweep:
5
+ dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S}
6
+ subdir: ${hydra.job.num}
7
+ launcher:
8
+ _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher
9
+ sweeper:
10
+ _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper
11
+ max_batch_size: null
12
+ params: null
13
+ help:
14
+ app_name: ${hydra.job.name}
15
+ header: '${hydra.help.app_name} is powered by Hydra.
16
+
17
+ '
18
+ footer: 'Powered by Hydra (https://hydra.cc)
19
+
20
+ Use --hydra-help to view Hydra specific help
21
+
22
+ '
23
+ template: '${hydra.help.header}
24
+
25
+ == Configuration groups ==
26
+
27
+ Compose your configuration from those groups (group=option)
28
+
29
+
30
+ $APP_CONFIG_GROUPS
31
+
32
+
33
+ == Config ==
34
+
35
+ Override anything in the config (foo.bar=value)
36
+
37
+
38
+ $CONFIG
39
+
40
+
41
+ ${hydra.help.footer}
42
+
43
+ '
44
+ hydra_help:
45
+ template: 'Hydra (${hydra.runtime.version})
46
+
47
+ See https://hydra.cc for more info.
48
+
49
+
50
+ == Flags ==
51
+
52
+ $FLAGS_HELP
53
+
54
+
55
+ == Configuration groups ==
56
+
57
+ Compose your configuration from those groups (For example, append hydra/job_logging=disabled
58
+ to command line)
59
+
60
+
61
+ $HYDRA_CONFIG_GROUPS
62
+
63
+
64
+ Use ''--cfg hydra'' to Show the Hydra config.
65
+
66
+ '
67
+ hydra_help: ???
68
+ hydra_logging:
69
+ version: 1
70
+ formatters:
71
+ simple:
72
+ format: '[%(asctime)s][HYDRA] %(message)s'
73
+ handlers:
74
+ console:
75
+ class: logging.StreamHandler
76
+ formatter: simple
77
+ stream: ext://sys.stdout
78
+ root:
79
+ level: INFO
80
+ handlers:
81
+ - console
82
+ loggers:
83
+ logging_example:
84
+ level: DEBUG
85
+ disable_existing_loggers: false
86
+ job_logging:
87
+ version: 1
88
+ formatters:
89
+ simple:
90
+ format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s'
91
+ handlers:
92
+ console:
93
+ class: logging.StreamHandler
94
+ formatter: simple
95
+ stream: ext://sys.stdout
96
+ file:
97
+ class: logging.FileHandler
98
+ formatter: simple
99
+ filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log
100
+ root:
101
+ level: INFO
102
+ handlers:
103
+ - console
104
+ - file
105
+ disable_existing_loggers: false
106
+ env: {}
107
+ mode: RUN
108
+ searchpath: []
109
+ callbacks: {}
110
+ output_subdir: .hydra
111
+ overrides:
112
+ hydra:
113
+ - hydra.run.dir=/home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_16/upstream_hydra
114
+ - hydra.mode=RUN
115
+ task:
116
+ - mode=sample_eval
117
+ - seed=42
118
+ - data=lm1b-wrap
119
+ - model=small
120
+ - model.length=128
121
+ - loader.batch_size=2
122
+ - loader.eval_batch_size=1
123
+ - sampling.num_sample_batches=1
124
+ - sampling.steps=16
125
+ - eval.checkpoint_path=/home/ruizzhao/diffusion_baseline/checkpoints/reference_reproduction/duo_dcd/lm1b/model.ckpt
126
+ - trainer.devices=1
127
+ - checkpointing.save_dir=/home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_16/upstream_hydra
128
+ - +wandb.offline=true
129
+ - eval.generated_samples_path=/home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_16/upstream_samples.json
130
+ - algo=duo_base
131
+ - algo.backbone=dit
132
+ - sampling.predictor=ancestral
133
+ - sampling.noise_removal=ancestral
134
+ - eval.disable_ema=False
135
+ job:
136
+ name: dlb_pinned_upstream_main
137
+ chdir: true
138
+ override_dirname: +wandb.offline=true,algo.backbone=dit,algo=duo_base,checkpointing.save_dir=/home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_16/upstream_hydra,data=lm1b-wrap,eval.checkpoint_path=/home/ruizzhao/diffusion_baseline/checkpoints/reference_reproduction/duo_dcd/lm1b/model.ckpt,eval.disable_ema=False,eval.generated_samples_path=/home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_16/upstream_samples.json,loader.batch_size=2,loader.eval_batch_size=1,mode=sample_eval,model.length=128,model=small,sampling.noise_removal=ancestral,sampling.num_sample_batches=1,sampling.predictor=ancestral,sampling.steps=16,seed=42,trainer.devices=1
139
+ id: ???
140
+ num: ???
141
+ config_name: config
142
+ env_set: {}
143
+ env_copy: []
144
+ config:
145
+ override_dirname:
146
+ kv_sep: '='
147
+ item_sep: ','
148
+ exclude_keys: []
149
+ runtime:
150
+ version: 1.3.2
151
+ version_base: '1.3'
152
+ cwd: /home/ruizzhao/diffusion_baseline
153
+ config_sources:
154
+ - path: hydra.conf
155
+ schema: pkg
156
+ provider: hydra
157
+ - path: /home/ruizzhao/diffusion_baseline/upstreams/duo/configs
158
+ schema: file
159
+ provider: main
160
+ - path: ''
161
+ schema: structured
162
+ provider: schema
163
+ output_dir: /home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_16/upstream_hydra
164
+ choices:
165
+ algo: duo_base
166
+ prior: none
167
+ lr_scheduler: constant_warmup
168
+ noise: log-linear
169
+ strategy: ddp
170
+ model: small
171
+ data: lm1b-wrap
172
+ hydra/env: default
173
+ hydra/callbacks: null
174
+ hydra/job_logging: default
175
+ hydra/hydra_logging: default
176
+ hydra/hydra_help: default
177
+ hydra/help: default
178
+ hydra/sweeper: basic
179
+ hydra/launcher: basic
180
+ hydra/output: default
181
+ verbose: false
results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_16/upstream_hydra/.hydra/overrides.yaml ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ - mode=sample_eval
2
+ - seed=42
3
+ - data=lm1b-wrap
4
+ - model=small
5
+ - model.length=128
6
+ - loader.batch_size=2
7
+ - loader.eval_batch_size=1
8
+ - sampling.num_sample_batches=1
9
+ - sampling.steps=16
10
+ - eval.checkpoint_path=/home/ruizzhao/diffusion_baseline/checkpoints/reference_reproduction/duo_dcd/lm1b/model.ckpt
11
+ - trainer.devices=1
12
+ - checkpointing.save_dir=/home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_16/upstream_hydra
13
+ - +wandb.offline=true
14
+ - eval.generated_samples_path=/home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_16/upstream_samples.json
15
+ - algo=duo_base
16
+ - algo.backbone=dit
17
+ - sampling.predictor=ancestral
18
+ - sampling.noise_removal=ancestral
19
+ - eval.disable_ema=False
results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_16/upstream_hydra/config_tree.txt ADDED
@@ -0,0 +1,169 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ CONFIG
2
+ ├── mode
3
+ │ └── sample_eval
4
+ ├── seed
5
+ │ └── 42
6
+ ├── loader
7
+ │ └── global_batch_size: 512
8
+ │ eval_global_batch_size: 512
9
+ │ batch_size: 2
10
+ │ eval_batch_size: 1
11
+ │ num_workers: 512
12
+ │ pin_memory: true
13
+ │
14
+ ├── sampling
15
+ │ └── predictor: ancestral
16
+ │ steps: 16
17
+ │ noise_removal: ancestral
18
+ │ use_float64: true
19
+ │ p_nucleus: 1.0
20
+ │ num_sample_batches: 1
21
+ │ num_sample_log: 2
22
+ │ semi_ar: false
23
+ │ stride_length: 1
24
+ │ num_strides: 1
25
+ │ guid_weight: null
26
+ │ psi:
27
+ │ time_profile: linear
28
+ │ high_mode: pure-posterior
29
+ │ middle_mode: pure-posterior
30
+ │ low_mode: pure-posterior
31
+ │ high_frac: 0.2
32
+ │ middle_frac: 0.6
33
+ │
34
+ ├── training
35
+ │ └── ema: 0.9999
36
+ │ antithetic_sampling: true
37
+ │ importance_sampling: false
38
+ │ sampling_eps: 0.001
39
+ │ change_of_variables: false
40
+ │ loss_precision: bf16
41
+ │ finetune_path: ''
42
+ │ class_dropout_p: 0.1
43
+ │
44
+ ├── eval
45
+ │ └── checkpoint_path: /home/ruizzhao/diffusion_baseline/checkpoints/reference_reproduction/duo_dcd/lm1b/model.ckpt
46
+ │ disable_ema: false
47
+ │ compute_generative_perplexity: false
48
+ │ perplexity_batch_size: 8
49
+ │ compute_perplexity_on_sanity: false
50
+ │ gen_ppl_eval_model_name_or_path: gpt2-large
51
+ │ generate_samples: true
52
+ │ generated_samples_path: /home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/s
53
+ │
54
+ ├── optim
55
+ │ └── weight_decay: 0
56
+ │ lr: 0.0003
57
+ │ beta1: 0.9
58
+ │ beta2: 0.999
59
+ │ eps: 1.0e-08
60
+ │
61
+ ├── trainer
62
+ │ └── _target_: lightning.Trainer
63
+ │ accelerator: cuda
64
+ │ num_nodes: 1
65
+ │ devices: 1
66
+ │ accumulate_grad_batches: 256
67
+ │ gradient_clip_val: 1.0
68
+ │ precision: bf16
69
+ │ num_sanity_val_steps: 2
70
+ │ max_steps: 1000000
71
+ │ log_every_n_steps: 100
72
+ │ limit_train_batches: 1.0
73
+ │ limit_val_batches: 1.0
74
+ │ val_check_interval: 5000
75
+ │ check_val_every_n_epoch: null
76
+ │
77
+ ├── wandb
78
+ │ └── project: duo
79
+ │ group: null
80
+ │ job_type: null
81
+ │ name: null
82
+ │ id: None_42
83
+ │ tags:
84
+ │ - log-linear
85
+ │ - lm1b
86
+ │ - lm1b
87
+ │ - duo_base
88
+ │ offline: true
89
+ │
90
+ ├── checkpointing
91
+ │ └── save_dir: /home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_16/upstre
92
+ │ resume_from_ckpt: true
93
+ │ resume_ckpt_path: /home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_1
94
+ │
95
+ ├── callbacks
96
+ │ └── checkpoint_every_n_steps:
97
+ │ _target_: lightning.pytorch.callbacks.ModelCheckpoint
98
+ │ save_top_k: -1
99
+ │ save_last: true
100
+ │ dirpath: /home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_16/upstr
101
+ │ verbose: true
102
+ │ auto_insert_metric_name: false
103
+ │ every_n_train_steps: 500
104
+ │ checkpoint_monitor:
105
+ │ _target_: lightning.pytorch.callbacks.ModelCheckpoint
106
+ │ monitor: val/nll
107
+ │ mode: min
108
+ │ save_top_k: 1
109
+ │ save_last: false
110
+ │ dirpath: /home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_16/upstr
111
+ │ filename: best
112
+ │ auto_insert_metric_name: false
113
+ │ verbose: true
114
+ │ learning_rate_monitor:
115
+ │ _target_: lightning.pytorch.callbacks.LearningRateMonitor
116
+ │ logging_interval: step
117
+ │
118
+ ├── data
119
+ │ └── train: lm1b
120
+ │ valid: lm1b
121
+ │ modality: text
122
+ │ tokenizer_name_or_path: bert-base-uncased
123
+ │ cache_dir: /share/kuleshov/ssahoo/textdiffusion/data
124
+ │ wrap: true
125
+ │ streaming: false
126
+ │ insert_train_eos: true
127
+ │ insert_valid_eos: true
128
+ │
129
+ ├── model
130
+ │ └── name: small
131
+ │ type: ddit
132
+ │ hidden_size: 768
133
+ │ cond_dim: 128
134
+ │ length: 128
135
+ │ n_blocks: 12
136
+ │ n_heads: 12
137
+ │ scale_by_sigma: true
138
+ │ dropout: 0.1
139
+ │ tie_word_embeddings: false
140
+ │ vocab_lookup: true
141
+ │
142
+ ├── strategy
143
+ │ └── _target_: lightning.pytorch.strategies.DDPStrategy
144
+ │ find_unused_parameters: false
145
+ │
146
+ ├── noise
147
+ │ └── type: log-linear
148
+ │ eps: 0.001
149
+ │
150
+ ├── lr_scheduler
151
+ │ └── _target_: transformers.get_constant_schedule_with_warmup
152
+ │ num_warmup_steps: 2500
153
+ │
154
+ ├── prior
155
+ │ └── type: none
156
+ │ latent_width: 0
157
+ │ latent_height: 0
158
+ │
159
+ └── algo
160
+ └── name: duo_base
161
+ backbone: dit
162
+ parameterization: mean
163
+ time_conditioning: true
164
+ T: 0
165
+ subs_masking: false
166
+ causal_attention: false
167
+ ignore_bos: false
168
+ loss_type: elbo
169
+
results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_16/upstream_hydra/dlb_pinned_upstream_main.log ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ [2026-08-25 10:45:43,340][dlb_pinned_upstream_main][INFO] - Starting Sample Eval.
2
+ [2026-08-25 10:45:54,375][dlb_pinned_upstream_main][INFO] - Generative perplexity: 79.51445770263672
3
+ [2026-08-25 10:45:54,375][dlb_pinned_upstream_main][INFO] - Sample entropy: 4.21651029586792
4
+ [2026-08-25 10:45:54,376][dlb_pinned_upstream_main][INFO] - Samples saved at: /home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_16/upstream_samples.json
results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_16/upstream_samples.json ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ {
2
+ "generative_ppl": 79.51445770263672,
3
+ "entropy": 4.21651029586792,
4
+ "generated_seqs": [
5
+ "[CLS] is supposed to be happy about the defaults here. [CLS] the cowboys led that new offense, which does lose away from their home market - - much as a new quarterback is trying to fit in. [CLS] the palace were like theater. [CLS] mr mandela made a speech to leaders in africa after the assassination of his brother in 2002. [CLS] this will mark the completion of plans to channel upward his heavyweight holidaying empire to a less profitable fashion space here in britain. [CLS] tether made a name debut extensively, and in recent years. [CLS] q. every returnlog innocent boster will be used online for three weeks from december. [CLS] [CLS]"
6
+ ]
7
+ }
results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_16/upstream_token_ids.json ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ {
2
+ "samples": [],
3
+ "schema": "dlb-upstream-token-capture-v1"
4
+ }
results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_2/upstream_hydra/.hydra/config.yaml ADDED
@@ -0,0 +1,151 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ mode: sample_eval
2
+ seed: 42
3
+ loader:
4
+ global_batch_size: 512
5
+ eval_global_batch_size: ${.global_batch_size}
6
+ batch_size: 2
7
+ eval_batch_size: 1
8
+ num_workers: ${eval:"len(__import__('os').sched_getaffinity(0))"}
9
+ pin_memory: true
10
+ sampling:
11
+ predictor: ancestral
12
+ steps: 2
13
+ noise_removal: ancestral
14
+ use_float64: true
15
+ p_nucleus: 1.0
16
+ num_sample_batches: 1
17
+ num_sample_log: 2
18
+ semi_ar: false
19
+ stride_length: 1
20
+ num_strides: 1
21
+ guid_weight: null
22
+ psi:
23
+ time_profile: linear
24
+ high_mode: pure-posterior
25
+ middle_mode: pure-posterior
26
+ low_mode: pure-posterior
27
+ high_frac: 0.2
28
+ middle_frac: 0.6
29
+ training:
30
+ ema: 0.9999
31
+ antithetic_sampling: true
32
+ importance_sampling: false
33
+ sampling_eps: 0.001
34
+ change_of_variables: false
35
+ loss_precision: bf16
36
+ finetune_path: ''
37
+ class_dropout_p: 0.1
38
+ eval:
39
+ checkpoint_path: /home/ruizzhao/diffusion_baseline/checkpoints/reference_reproduction/duo_dcd/lm1b/model.ckpt
40
+ disable_ema: false
41
+ compute_generative_perplexity: false
42
+ perplexity_batch_size: 8
43
+ compute_perplexity_on_sanity: false
44
+ gen_ppl_eval_model_name_or_path: gpt2-large
45
+ generate_samples: true
46
+ generated_samples_path: /home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_2/upstream_samples.json
47
+ optim:
48
+ weight_decay: 0
49
+ lr: 0.0003
50
+ beta1: 0.9
51
+ beta2: 0.999
52
+ eps: 1.0e-08
53
+ trainer:
54
+ _target_: lightning.Trainer
55
+ accelerator: cuda
56
+ num_nodes: 1
57
+ devices: 1
58
+ accumulate_grad_batches: ${div_up:${loader.global_batch_size}, ${eval:${trainer.devices}
59
+ * ${loader.batch_size} * ${trainer.num_nodes}}}
60
+ gradient_clip_val: 1.0
61
+ precision: bf16
62
+ num_sanity_val_steps: 2
63
+ max_steps: 1000000
64
+ log_every_n_steps: 100
65
+ limit_train_batches: 1.0
66
+ limit_val_batches: 1.0
67
+ val_check_interval: 5000
68
+ check_val_every_n_epoch: null
69
+ wandb:
70
+ project: duo
71
+ group: null
72
+ job_type: null
73
+ name: null
74
+ id: ${.name}_${seed}
75
+ tags:
76
+ - ${noise.type}
77
+ - ${data.train}
78
+ - ${data.valid}
79
+ - ${algo.name}
80
+ offline: true
81
+ checkpointing:
82
+ save_dir: /home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_2/upstream_hydra
83
+ resume_from_ckpt: true
84
+ resume_ckpt_path: ${.save_dir}/checkpoints/last.ckpt
85
+ callbacks:
86
+ checkpoint_every_n_steps:
87
+ _target_: lightning.pytorch.callbacks.ModelCheckpoint
88
+ save_top_k: -1
89
+ save_last: true
90
+ dirpath: ${checkpointing.save_dir}/checkpoints
91
+ verbose: true
92
+ auto_insert_metric_name: false
93
+ every_n_train_steps: 500
94
+ checkpoint_monitor:
95
+ _target_: lightning.pytorch.callbacks.ModelCheckpoint
96
+ monitor: val/nll
97
+ mode: min
98
+ save_top_k: 1
99
+ save_last: false
100
+ dirpath: ${checkpointing.save_dir}/checkpoints
101
+ filename: best
102
+ auto_insert_metric_name: false
103
+ verbose: true
104
+ learning_rate_monitor:
105
+ _target_: lightning.pytorch.callbacks.LearningRateMonitor
106
+ logging_interval: step
107
+ data:
108
+ train: lm1b
109
+ valid: lm1b
110
+ modality: text
111
+ tokenizer_name_or_path: bert-base-uncased
112
+ cache_dir: /share/kuleshov/ssahoo/textdiffusion/data
113
+ wrap: true
114
+ streaming: false
115
+ insert_train_eos: true
116
+ insert_valid_eos: true
117
+ model:
118
+ name: small
119
+ type: ddit
120
+ hidden_size: 768
121
+ cond_dim: 128
122
+ length: 128
123
+ n_blocks: 12
124
+ n_heads: 12
125
+ scale_by_sigma: true
126
+ dropout: 0.1
127
+ tie_word_embeddings: false
128
+ vocab_lookup: true
129
+ strategy:
130
+ _target_: lightning.pytorch.strategies.DDPStrategy
131
+ find_unused_parameters: false
132
+ noise:
133
+ type: log-linear
134
+ eps: 0.001
135
+ lr_scheduler:
136
+ _target_: transformers.get_constant_schedule_with_warmup
137
+ num_warmup_steps: 2500
138
+ prior:
139
+ type: none
140
+ latent_width: 0
141
+ latent_height: 0
142
+ algo:
143
+ name: duo_base
144
+ backbone: dit
145
+ parameterization: mean
146
+ time_conditioning: true
147
+ T: 0
148
+ subs_masking: false
149
+ causal_attention: false
150
+ ignore_bos: false
151
+ loss_type: elbo
results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_2/upstream_hydra/.hydra/hydra.yaml ADDED
@@ -0,0 +1,181 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ hydra:
2
+ run:
3
+ dir: /home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_2/upstream_hydra
4
+ sweep:
5
+ dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S}
6
+ subdir: ${hydra.job.num}
7
+ launcher:
8
+ _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher
9
+ sweeper:
10
+ _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper
11
+ max_batch_size: null
12
+ params: null
13
+ help:
14
+ app_name: ${hydra.job.name}
15
+ header: '${hydra.help.app_name} is powered by Hydra.
16
+
17
+ '
18
+ footer: 'Powered by Hydra (https://hydra.cc)
19
+
20
+ Use --hydra-help to view Hydra specific help
21
+
22
+ '
23
+ template: '${hydra.help.header}
24
+
25
+ == Configuration groups ==
26
+
27
+ Compose your configuration from those groups (group=option)
28
+
29
+
30
+ $APP_CONFIG_GROUPS
31
+
32
+
33
+ == Config ==
34
+
35
+ Override anything in the config (foo.bar=value)
36
+
37
+
38
+ $CONFIG
39
+
40
+
41
+ ${hydra.help.footer}
42
+
43
+ '
44
+ hydra_help:
45
+ template: 'Hydra (${hydra.runtime.version})
46
+
47
+ See https://hydra.cc for more info.
48
+
49
+
50
+ == Flags ==
51
+
52
+ $FLAGS_HELP
53
+
54
+
55
+ == Configuration groups ==
56
+
57
+ Compose your configuration from those groups (For example, append hydra/job_logging=disabled
58
+ to command line)
59
+
60
+
61
+ $HYDRA_CONFIG_GROUPS
62
+
63
+
64
+ Use ''--cfg hydra'' to Show the Hydra config.
65
+
66
+ '
67
+ hydra_help: ???
68
+ hydra_logging:
69
+ version: 1
70
+ formatters:
71
+ simple:
72
+ format: '[%(asctime)s][HYDRA] %(message)s'
73
+ handlers:
74
+ console:
75
+ class: logging.StreamHandler
76
+ formatter: simple
77
+ stream: ext://sys.stdout
78
+ root:
79
+ level: INFO
80
+ handlers:
81
+ - console
82
+ loggers:
83
+ logging_example:
84
+ level: DEBUG
85
+ disable_existing_loggers: false
86
+ job_logging:
87
+ version: 1
88
+ formatters:
89
+ simple:
90
+ format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s'
91
+ handlers:
92
+ console:
93
+ class: logging.StreamHandler
94
+ formatter: simple
95
+ stream: ext://sys.stdout
96
+ file:
97
+ class: logging.FileHandler
98
+ formatter: simple
99
+ filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log
100
+ root:
101
+ level: INFO
102
+ handlers:
103
+ - console
104
+ - file
105
+ disable_existing_loggers: false
106
+ env: {}
107
+ mode: RUN
108
+ searchpath: []
109
+ callbacks: {}
110
+ output_subdir: .hydra
111
+ overrides:
112
+ hydra:
113
+ - hydra.run.dir=/home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_2/upstream_hydra
114
+ - hydra.mode=RUN
115
+ task:
116
+ - mode=sample_eval
117
+ - seed=42
118
+ - data=lm1b-wrap
119
+ - model=small
120
+ - model.length=128
121
+ - loader.batch_size=2
122
+ - loader.eval_batch_size=1
123
+ - sampling.num_sample_batches=1
124
+ - sampling.steps=2
125
+ - eval.checkpoint_path=/home/ruizzhao/diffusion_baseline/checkpoints/reference_reproduction/duo_dcd/lm1b/model.ckpt
126
+ - trainer.devices=1
127
+ - checkpointing.save_dir=/home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_2/upstream_hydra
128
+ - +wandb.offline=true
129
+ - eval.generated_samples_path=/home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_2/upstream_samples.json
130
+ - algo=duo_base
131
+ - algo.backbone=dit
132
+ - sampling.predictor=ancestral
133
+ - sampling.noise_removal=ancestral
134
+ - eval.disable_ema=False
135
+ job:
136
+ name: dlb_pinned_upstream_main
137
+ chdir: true
138
+ override_dirname: +wandb.offline=true,algo.backbone=dit,algo=duo_base,checkpointing.save_dir=/home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_2/upstream_hydra,data=lm1b-wrap,eval.checkpoint_path=/home/ruizzhao/diffusion_baseline/checkpoints/reference_reproduction/duo_dcd/lm1b/model.ckpt,eval.disable_ema=False,eval.generated_samples_path=/home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_2/upstream_samples.json,loader.batch_size=2,loader.eval_batch_size=1,mode=sample_eval,model.length=128,model=small,sampling.noise_removal=ancestral,sampling.num_sample_batches=1,sampling.predictor=ancestral,sampling.steps=2,seed=42,trainer.devices=1
139
+ id: ???
140
+ num: ???
141
+ config_name: config
142
+ env_set: {}
143
+ env_copy: []
144
+ config:
145
+ override_dirname:
146
+ kv_sep: '='
147
+ item_sep: ','
148
+ exclude_keys: []
149
+ runtime:
150
+ version: 1.3.2
151
+ version_base: '1.3'
152
+ cwd: /home/ruizzhao/diffusion_baseline
153
+ config_sources:
154
+ - path: hydra.conf
155
+ schema: pkg
156
+ provider: hydra
157
+ - path: /home/ruizzhao/diffusion_baseline/upstreams/duo/configs
158
+ schema: file
159
+ provider: main
160
+ - path: ''
161
+ schema: structured
162
+ provider: schema
163
+ output_dir: /home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_2/upstream_hydra
164
+ choices:
165
+ algo: duo_base
166
+ prior: none
167
+ lr_scheduler: constant_warmup
168
+ noise: log-linear
169
+ strategy: ddp
170
+ model: small
171
+ data: lm1b-wrap
172
+ hydra/env: default
173
+ hydra/callbacks: null
174
+ hydra/job_logging: default
175
+ hydra/hydra_logging: default
176
+ hydra/hydra_help: default
177
+ hydra/help: default
178
+ hydra/sweeper: basic
179
+ hydra/launcher: basic
180
+ hydra/output: default
181
+ verbose: false
results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_2/upstream_hydra/config_tree.txt ADDED
@@ -0,0 +1,169 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ CONFIG
2
+ ├── mode
3
+ │ └── sample_eval
4
+ ├── seed
5
+ │ └── 42
6
+ ├── loader
7
+ │ └── global_batch_size: 512
8
+ │ eval_global_batch_size: 512
9
+ │ batch_size: 2
10
+ │ eval_batch_size: 1
11
+ │ num_workers: 512
12
+ │ pin_memory: true
13
+ │
14
+ ├── sampling
15
+ │ └── predictor: ancestral
16
+ │ steps: 2
17
+ │ noise_removal: ancestral
18
+ │ use_float64: true
19
+ │ p_nucleus: 1.0
20
+ │ num_sample_batches: 1
21
+ │ num_sample_log: 2
22
+ │ semi_ar: false
23
+ │ stride_length: 1
24
+ │ num_strides: 1
25
+ │ guid_weight: null
26
+ │ psi:
27
+ │ time_profile: linear
28
+ │ high_mode: pure-posterior
29
+ │ middle_mode: pure-posterior
30
+ │ low_mode: pure-posterior
31
+ │ high_frac: 0.2
32
+ │ middle_frac: 0.6
33
+ │
34
+ ├── training
35
+ │ └── ema: 0.9999
36
+ │ antithetic_sampling: true
37
+ │ importance_sampling: false
38
+ │ sampling_eps: 0.001
39
+ │ change_of_variables: false
40
+ │ loss_precision: bf16
41
+ │ finetune_path: ''
42
+ │ class_dropout_p: 0.1
43
+ │
44
+ ├── eval
45
+ │ └── checkpoint_path: /home/ruizzhao/diffusion_baseline/checkpoints/reference_reproduction/duo_dcd/lm1b/model.ckpt
46
+ │ disable_ema: false
47
+ │ compute_generative_perplexity: false
48
+ │ perplexity_batch_size: 8
49
+ │ compute_perplexity_on_sanity: false
50
+ │ gen_ppl_eval_model_name_or_path: gpt2-large
51
+ │ generate_samples: true
52
+ │ generated_samples_path: /home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/s
53
+ │
54
+ ├── optim
55
+ │ └── weight_decay: 0
56
+ │ lr: 0.0003
57
+ │ beta1: 0.9
58
+ │ beta2: 0.999
59
+ │ eps: 1.0e-08
60
+ │
61
+ ├── trainer
62
+ │ └── _target_: lightning.Trainer
63
+ │ accelerator: cuda
64
+ │ num_nodes: 1
65
+ │ devices: 1
66
+ │ accumulate_grad_batches: 256
67
+ │ gradient_clip_val: 1.0
68
+ │ precision: bf16
69
+ │ num_sanity_val_steps: 2
70
+ │ max_steps: 1000000
71
+ │ log_every_n_steps: 100
72
+ │ limit_train_batches: 1.0
73
+ │ limit_val_batches: 1.0
74
+ │ val_check_interval: 5000
75
+ │ check_val_every_n_epoch: null
76
+ │
77
+ ├── wandb
78
+ │ └── project: duo
79
+ │ group: null
80
+ │ job_type: null
81
+ │ name: null
82
+ │ id: None_42
83
+ │ tags:
84
+ │ - log-linear
85
+ │ - lm1b
86
+ │ - lm1b
87
+ │ - duo_base
88
+ │ offline: true
89
+ │
90
+ ├── checkpointing
91
+ │ └── save_dir: /home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_2/upstrea
92
+ │ resume_from_ckpt: true
93
+ │ resume_ckpt_path: /home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_2
94
+ │
95
+ ├── callbacks
96
+ │ └── checkpoint_every_n_steps:
97
+ │ _target_: lightning.pytorch.callbacks.ModelCheckpoint
98
+ │ save_top_k: -1
99
+ │ save_last: true
100
+ │ dirpath: /home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_2/upstre
101
+ │ verbose: true
102
+ │ auto_insert_metric_name: false
103
+ │ every_n_train_steps: 500
104
+ │ checkpoint_monitor:
105
+ │ _target_: lightning.pytorch.callbacks.ModelCheckpoint
106
+ │ monitor: val/nll
107
+ │ mode: min
108
+ │ save_top_k: 1
109
+ │ save_last: false
110
+ │ dirpath: /home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_2/upstre
111
+ │ filename: best
112
+ │ auto_insert_metric_name: false
113
+ │ verbose: true
114
+ │ learning_rate_monitor:
115
+ │ _target_: lightning.pytorch.callbacks.LearningRateMonitor
116
+ │ logging_interval: step
117
+ │
118
+ ├── data
119
+ │ └── train: lm1b
120
+ │ valid: lm1b
121
+ │ modality: text
122
+ │ tokenizer_name_or_path: bert-base-uncased
123
+ │ cache_dir: /share/kuleshov/ssahoo/textdiffusion/data
124
+ │ wrap: true
125
+ │ streaming: false
126
+ │ insert_train_eos: true
127
+ │ insert_valid_eos: true
128
+ │
129
+ ├── model
130
+ │ └── name: small
131
+ │ type: ddit
132
+ │ hidden_size: 768
133
+ │ cond_dim: 128
134
+ │ length: 128
135
+ │ n_blocks: 12
136
+ │ n_heads: 12
137
+ │ scale_by_sigma: true
138
+ │ dropout: 0.1
139
+ │ tie_word_embeddings: false
140
+ │ vocab_lookup: true
141
+ │
142
+ ├── strategy
143
+ │ └── _target_: lightning.pytorch.strategies.DDPStrategy
144
+ │ find_unused_parameters: false
145
+ │
146
+ ├── noise
147
+ │ └── type: log-linear
148
+ │ eps: 0.001
149
+ │
150
+ ├── lr_scheduler
151
+ │ └── _target_: transformers.get_constant_schedule_with_warmup
152
+ │ num_warmup_steps: 2500
153
+ │
154
+ ├── prior
155
+ │ └── type: none
156
+ │ latent_width: 0
157
+ │ latent_height: 0
158
+ │
159
+ └── algo
160
+ └── name: duo_base
161
+ backbone: dit
162
+ parameterization: mean
163
+ time_conditioning: true
164
+ T: 0
165
+ subs_masking: false
166
+ causal_attention: false
167
+ ignore_bos: false
168
+ loss_type: elbo
169
+
results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_2/upstream_hydra/dlb_pinned_upstream_main.log ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ [2026-08-25 10:39:56,161][dlb_pinned_upstream_main][INFO] - Starting Sample Eval.
2
+ [2026-08-25 10:40:03,662][dlb_pinned_upstream_main][INFO] - Generative perplexity: 513.1550903320312
3
+ [2026-08-25 10:40:03,662][dlb_pinned_upstream_main][INFO] - Sample entropy: 4.197072982788086
4
+ [2026-08-25 10:40:03,663][dlb_pinned_upstream_main][INFO] - Samples saved at: /home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_2/upstream_samples.json
results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_2/upstream_samples.json ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ {
2
+ "generative_ppl": 513.1550903320312,
3
+ "entropy": 4.197072982788086,
4
+ "generated_seqs": [
5
+ "[CLS] central telegraph just submitted ( dip the car muslim weak to a in the the sprawling circuit. [CLS] current wishes are obamady not mccain and polls. the example did 7 percent who voted in. [CLS] memphis used to the something of to becoming a'out \" i did say then but of course they suggested that consistent not it not is the va sar thousandsrs, not just arrived for the reason the late drink decided madective one work written by the al and or - - i think d south upcoming. [CLS]! a atrocities are in the us but witnessed. [CLS] the worst - trust is available for this $ estate ira - - - [CLS]"
6
+ ]
7
+ }
results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_2/upstream_token_ids.json ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ {
2
+ "samples": [],
3
+ "schema": "dlb-upstream-token-capture-v1"
4
+ }
results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_32/upstream_hydra/.hydra/config.yaml ADDED
@@ -0,0 +1,151 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ mode: sample_eval
2
+ seed: 42
3
+ loader:
4
+ global_batch_size: 512
5
+ eval_global_batch_size: ${.global_batch_size}
6
+ batch_size: 2
7
+ eval_batch_size: 1
8
+ num_workers: ${eval:"len(__import__('os').sched_getaffinity(0))"}
9
+ pin_memory: true
10
+ sampling:
11
+ predictor: ancestral
12
+ steps: 32
13
+ noise_removal: ancestral
14
+ use_float64: true
15
+ p_nucleus: 1.0
16
+ num_sample_batches: 1
17
+ num_sample_log: 2
18
+ semi_ar: false
19
+ stride_length: 1
20
+ num_strides: 1
21
+ guid_weight: null
22
+ psi:
23
+ time_profile: linear
24
+ high_mode: pure-posterior
25
+ middle_mode: pure-posterior
26
+ low_mode: pure-posterior
27
+ high_frac: 0.2
28
+ middle_frac: 0.6
29
+ training:
30
+ ema: 0.9999
31
+ antithetic_sampling: true
32
+ importance_sampling: false
33
+ sampling_eps: 0.001
34
+ change_of_variables: false
35
+ loss_precision: bf16
36
+ finetune_path: ''
37
+ class_dropout_p: 0.1
38
+ eval:
39
+ checkpoint_path: /home/ruizzhao/diffusion_baseline/checkpoints/reference_reproduction/duo_dcd/lm1b/model.ckpt
40
+ disable_ema: false
41
+ compute_generative_perplexity: false
42
+ perplexity_batch_size: 8
43
+ compute_perplexity_on_sanity: false
44
+ gen_ppl_eval_model_name_or_path: gpt2-large
45
+ generate_samples: true
46
+ generated_samples_path: /home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_32/upstream_samples.json
47
+ optim:
48
+ weight_decay: 0
49
+ lr: 0.0003
50
+ beta1: 0.9
51
+ beta2: 0.999
52
+ eps: 1.0e-08
53
+ trainer:
54
+ _target_: lightning.Trainer
55
+ accelerator: cuda
56
+ num_nodes: 1
57
+ devices: 1
58
+ accumulate_grad_batches: ${div_up:${loader.global_batch_size}, ${eval:${trainer.devices}
59
+ * ${loader.batch_size} * ${trainer.num_nodes}}}
60
+ gradient_clip_val: 1.0
61
+ precision: bf16
62
+ num_sanity_val_steps: 2
63
+ max_steps: 1000000
64
+ log_every_n_steps: 100
65
+ limit_train_batches: 1.0
66
+ limit_val_batches: 1.0
67
+ val_check_interval: 5000
68
+ check_val_every_n_epoch: null
69
+ wandb:
70
+ project: duo
71
+ group: null
72
+ job_type: null
73
+ name: null
74
+ id: ${.name}_${seed}
75
+ tags:
76
+ - ${noise.type}
77
+ - ${data.train}
78
+ - ${data.valid}
79
+ - ${algo.name}
80
+ offline: true
81
+ checkpointing:
82
+ save_dir: /home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_32/upstream_hydra
83
+ resume_from_ckpt: true
84
+ resume_ckpt_path: ${.save_dir}/checkpoints/last.ckpt
85
+ callbacks:
86
+ checkpoint_every_n_steps:
87
+ _target_: lightning.pytorch.callbacks.ModelCheckpoint
88
+ save_top_k: -1
89
+ save_last: true
90
+ dirpath: ${checkpointing.save_dir}/checkpoints
91
+ verbose: true
92
+ auto_insert_metric_name: false
93
+ every_n_train_steps: 500
94
+ checkpoint_monitor:
95
+ _target_: lightning.pytorch.callbacks.ModelCheckpoint
96
+ monitor: val/nll
97
+ mode: min
98
+ save_top_k: 1
99
+ save_last: false
100
+ dirpath: ${checkpointing.save_dir}/checkpoints
101
+ filename: best
102
+ auto_insert_metric_name: false
103
+ verbose: true
104
+ learning_rate_monitor:
105
+ _target_: lightning.pytorch.callbacks.LearningRateMonitor
106
+ logging_interval: step
107
+ data:
108
+ train: lm1b
109
+ valid: lm1b
110
+ modality: text
111
+ tokenizer_name_or_path: bert-base-uncased
112
+ cache_dir: /share/kuleshov/ssahoo/textdiffusion/data
113
+ wrap: true
114
+ streaming: false
115
+ insert_train_eos: true
116
+ insert_valid_eos: true
117
+ model:
118
+ name: small
119
+ type: ddit
120
+ hidden_size: 768
121
+ cond_dim: 128
122
+ length: 128
123
+ n_blocks: 12
124
+ n_heads: 12
125
+ scale_by_sigma: true
126
+ dropout: 0.1
127
+ tie_word_embeddings: false
128
+ vocab_lookup: true
129
+ strategy:
130
+ _target_: lightning.pytorch.strategies.DDPStrategy
131
+ find_unused_parameters: false
132
+ noise:
133
+ type: log-linear
134
+ eps: 0.001
135
+ lr_scheduler:
136
+ _target_: transformers.get_constant_schedule_with_warmup
137
+ num_warmup_steps: 2500
138
+ prior:
139
+ type: none
140
+ latent_width: 0
141
+ latent_height: 0
142
+ algo:
143
+ name: duo_base
144
+ backbone: dit
145
+ parameterization: mean
146
+ time_conditioning: true
147
+ T: 0
148
+ subs_masking: false
149
+ causal_attention: false
150
+ ignore_bos: false
151
+ loss_type: elbo
results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_32/upstream_hydra/.hydra/hydra.yaml ADDED
@@ -0,0 +1,181 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ hydra:
2
+ run:
3
+ dir: /home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_32/upstream_hydra
4
+ sweep:
5
+ dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S}
6
+ subdir: ${hydra.job.num}
7
+ launcher:
8
+ _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher
9
+ sweeper:
10
+ _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper
11
+ max_batch_size: null
12
+ params: null
13
+ help:
14
+ app_name: ${hydra.job.name}
15
+ header: '${hydra.help.app_name} is powered by Hydra.
16
+
17
+ '
18
+ footer: 'Powered by Hydra (https://hydra.cc)
19
+
20
+ Use --hydra-help to view Hydra specific help
21
+
22
+ '
23
+ template: '${hydra.help.header}
24
+
25
+ == Configuration groups ==
26
+
27
+ Compose your configuration from those groups (group=option)
28
+
29
+
30
+ $APP_CONFIG_GROUPS
31
+
32
+
33
+ == Config ==
34
+
35
+ Override anything in the config (foo.bar=value)
36
+
37
+
38
+ $CONFIG
39
+
40
+
41
+ ${hydra.help.footer}
42
+
43
+ '
44
+ hydra_help:
45
+ template: 'Hydra (${hydra.runtime.version})
46
+
47
+ See https://hydra.cc for more info.
48
+
49
+
50
+ == Flags ==
51
+
52
+ $FLAGS_HELP
53
+
54
+
55
+ == Configuration groups ==
56
+
57
+ Compose your configuration from those groups (For example, append hydra/job_logging=disabled
58
+ to command line)
59
+
60
+
61
+ $HYDRA_CONFIG_GROUPS
62
+
63
+
64
+ Use ''--cfg hydra'' to Show the Hydra config.
65
+
66
+ '
67
+ hydra_help: ???
68
+ hydra_logging:
69
+ version: 1
70
+ formatters:
71
+ simple:
72
+ format: '[%(asctime)s][HYDRA] %(message)s'
73
+ handlers:
74
+ console:
75
+ class: logging.StreamHandler
76
+ formatter: simple
77
+ stream: ext://sys.stdout
78
+ root:
79
+ level: INFO
80
+ handlers:
81
+ - console
82
+ loggers:
83
+ logging_example:
84
+ level: DEBUG
85
+ disable_existing_loggers: false
86
+ job_logging:
87
+ version: 1
88
+ formatters:
89
+ simple:
90
+ format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s'
91
+ handlers:
92
+ console:
93
+ class: logging.StreamHandler
94
+ formatter: simple
95
+ stream: ext://sys.stdout
96
+ file:
97
+ class: logging.FileHandler
98
+ formatter: simple
99
+ filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log
100
+ root:
101
+ level: INFO
102
+ handlers:
103
+ - console
104
+ - file
105
+ disable_existing_loggers: false
106
+ env: {}
107
+ mode: RUN
108
+ searchpath: []
109
+ callbacks: {}
110
+ output_subdir: .hydra
111
+ overrides:
112
+ hydra:
113
+ - hydra.run.dir=/home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_32/upstream_hydra
114
+ - hydra.mode=RUN
115
+ task:
116
+ - mode=sample_eval
117
+ - seed=42
118
+ - data=lm1b-wrap
119
+ - model=small
120
+ - model.length=128
121
+ - loader.batch_size=2
122
+ - loader.eval_batch_size=1
123
+ - sampling.num_sample_batches=1
124
+ - sampling.steps=32
125
+ - eval.checkpoint_path=/home/ruizzhao/diffusion_baseline/checkpoints/reference_reproduction/duo_dcd/lm1b/model.ckpt
126
+ - trainer.devices=1
127
+ - checkpointing.save_dir=/home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_32/upstream_hydra
128
+ - +wandb.offline=true
129
+ - eval.generated_samples_path=/home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_32/upstream_samples.json
130
+ - algo=duo_base
131
+ - algo.backbone=dit
132
+ - sampling.predictor=ancestral
133
+ - sampling.noise_removal=ancestral
134
+ - eval.disable_ema=False
135
+ job:
136
+ name: dlb_pinned_upstream_main
137
+ chdir: true
138
+ override_dirname: +wandb.offline=true,algo.backbone=dit,algo=duo_base,checkpointing.save_dir=/home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_32/upstream_hydra,data=lm1b-wrap,eval.checkpoint_path=/home/ruizzhao/diffusion_baseline/checkpoints/reference_reproduction/duo_dcd/lm1b/model.ckpt,eval.disable_ema=False,eval.generated_samples_path=/home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_32/upstream_samples.json,loader.batch_size=2,loader.eval_batch_size=1,mode=sample_eval,model.length=128,model=small,sampling.noise_removal=ancestral,sampling.num_sample_batches=1,sampling.predictor=ancestral,sampling.steps=32,seed=42,trainer.devices=1
139
+ id: ???
140
+ num: ???
141
+ config_name: config
142
+ env_set: {}
143
+ env_copy: []
144
+ config:
145
+ override_dirname:
146
+ kv_sep: '='
147
+ item_sep: ','
148
+ exclude_keys: []
149
+ runtime:
150
+ version: 1.3.2
151
+ version_base: '1.3'
152
+ cwd: /home/ruizzhao/diffusion_baseline
153
+ config_sources:
154
+ - path: hydra.conf
155
+ schema: pkg
156
+ provider: hydra
157
+ - path: /home/ruizzhao/diffusion_baseline/upstreams/duo/configs
158
+ schema: file
159
+ provider: main
160
+ - path: ''
161
+ schema: structured
162
+ provider: schema
163
+ output_dir: /home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_32/upstream_hydra
164
+ choices:
165
+ algo: duo_base
166
+ prior: none
167
+ lr_scheduler: constant_warmup
168
+ noise: log-linear
169
+ strategy: ddp
170
+ model: small
171
+ data: lm1b-wrap
172
+ hydra/env: default
173
+ hydra/callbacks: null
174
+ hydra/job_logging: default
175
+ hydra/hydra_logging: default
176
+ hydra/hydra_help: default
177
+ hydra/help: default
178
+ hydra/sweeper: basic
179
+ hydra/launcher: basic
180
+ hydra/output: default
181
+ verbose: false
results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_32/upstream_hydra/config_tree.txt ADDED
@@ -0,0 +1,169 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ CONFIG
2
+ ├── mode
3
+ │ └── sample_eval
4
+ ├── seed
5
+ │ └── 42
6
+ ├── loader
7
+ │ └── global_batch_size: 512
8
+ │ eval_global_batch_size: 512
9
+ │ batch_size: 2
10
+ │ eval_batch_size: 1
11
+ │ num_workers: 512
12
+ │ pin_memory: true
13
+ │
14
+ ├── sampling
15
+ │ └── predictor: ancestral
16
+ │ steps: 32
17
+ │ noise_removal: ancestral
18
+ │ use_float64: true
19
+ │ p_nucleus: 1.0
20
+ │ num_sample_batches: 1
21
+ │ num_sample_log: 2
22
+ │ semi_ar: false
23
+ │ stride_length: 1
24
+ │ num_strides: 1
25
+ │ guid_weight: null
26
+ │ psi:
27
+ │ time_profile: linear
28
+ │ high_mode: pure-posterior
29
+ │ middle_mode: pure-posterior
30
+ │ low_mode: pure-posterior
31
+ │ high_frac: 0.2
32
+ │ middle_frac: 0.6
33
+ │
34
+ ├── training
35
+ │ └── ema: 0.9999
36
+ │ antithetic_sampling: true
37
+ │ importance_sampling: false
38
+ │ sampling_eps: 0.001
39
+ │ change_of_variables: false
40
+ │ loss_precision: bf16
41
+ │ finetune_path: ''
42
+ │ class_dropout_p: 0.1
43
+ │
44
+ ├── eval
45
+ │ └── checkpoint_path: /home/ruizzhao/diffusion_baseline/checkpoints/reference_reproduction/duo_dcd/lm1b/model.ckpt
46
+ │ disable_ema: false
47
+ │ compute_generative_perplexity: false
48
+ │ perplexity_batch_size: 8
49
+ │ compute_perplexity_on_sanity: false
50
+ │ gen_ppl_eval_model_name_or_path: gpt2-large
51
+ │ generate_samples: true
52
+ │ generated_samples_path: /home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/s
53
+ │
54
+ ├── optim
55
+ │ └── weight_decay: 0
56
+ │ lr: 0.0003
57
+ │ beta1: 0.9
58
+ │ beta2: 0.999
59
+ │ eps: 1.0e-08
60
+ │
61
+ ├── trainer
62
+ │ └── _target_: lightning.Trainer
63
+ │ accelerator: cuda
64
+ │ num_nodes: 1
65
+ │ devices: 1
66
+ │ accumulate_grad_batches: 256
67
+ │ gradient_clip_val: 1.0
68
+ │ precision: bf16
69
+ │ num_sanity_val_steps: 2
70
+ │ max_steps: 1000000
71
+ │ log_every_n_steps: 100
72
+ │ limit_train_batches: 1.0
73
+ │ limit_val_batches: 1.0
74
+ │ val_check_interval: 5000
75
+ │ check_val_every_n_epoch: null
76
+ │
77
+ ├── wandb
78
+ │ └── project: duo
79
+ │ group: null
80
+ │ job_type: null
81
+ │ name: null
82
+ │ id: None_42
83
+ │ tags:
84
+ │ - log-linear
85
+ │ - lm1b
86
+ │ - lm1b
87
+ │ - duo_base
88
+ │ offline: true
89
+ │
90
+ ├── checkpointing
91
+ │ └── save_dir: /home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_32/upstre
92
+ │ resume_from_ckpt: true
93
+ │ resume_ckpt_path: /home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_3
94
+ │
95
+ ├── callbacks
96
+ │ └── checkpoint_every_n_steps:
97
+ │ _target_: lightning.pytorch.callbacks.ModelCheckpoint
98
+ │ save_top_k: -1
99
+ │ save_last: true
100
+ │ dirpath: /home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_32/upstr
101
+ │ verbose: true
102
+ │ auto_insert_metric_name: false
103
+ │ every_n_train_steps: 500
104
+ │ checkpoint_monitor:
105
+ │ _target_: lightning.pytorch.callbacks.ModelCheckpoint
106
+ │ monitor: val/nll
107
+ │ mode: min
108
+ │ save_top_k: 1
109
+ │ save_last: false
110
+ │ dirpath: /home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_32/upstr
111
+ │ filename: best
112
+ │ auto_insert_metric_name: false
113
+ │ verbose: true
114
+ │ learning_rate_monitor:
115
+ │ _target_: lightning.pytorch.callbacks.LearningRateMonitor
116
+ │ logging_interval: step
117
+ │
118
+ ├── data
119
+ │ └── train: lm1b
120
+ │ valid: lm1b
121
+ │ modality: text
122
+ │ tokenizer_name_or_path: bert-base-uncased
123
+ │ cache_dir: /share/kuleshov/ssahoo/textdiffusion/data
124
+ │ wrap: true
125
+ │ streaming: false
126
+ │ insert_train_eos: true
127
+ │ insert_valid_eos: true
128
+ │
129
+ ├── model
130
+ │ └── name: small
131
+ │ type: ddit
132
+ │ hidden_size: 768
133
+ │ cond_dim: 128
134
+ │ length: 128
135
+ │ n_blocks: 12
136
+ │ n_heads: 12
137
+ │ scale_by_sigma: true
138
+ │ dropout: 0.1
139
+ │ tie_word_embeddings: false
140
+ │ vocab_lookup: true
141
+ │
142
+ ├── strategy
143
+ │ └── _target_: lightning.pytorch.strategies.DDPStrategy
144
+ │ find_unused_parameters: false
145
+ │
146
+ ├── noise
147
+ │ └── type: log-linear
148
+ │ eps: 0.001
149
+ │
150
+ ├── lr_scheduler
151
+ │ └── _target_: transformers.get_constant_schedule_with_warmup
152
+ │ num_warmup_steps: 2500
153
+ │
154
+ ├── prior
155
+ │ └── type: none
156
+ │ latent_width: 0
157
+ │ latent_height: 0
158
+ │
159
+ └── algo
160
+ └── name: duo_base
161
+ backbone: dit
162
+ parameterization: mean
163
+ time_conditioning: true
164
+ T: 0
165
+ subs_masking: false
166
+ causal_attention: false
167
+ ignore_bos: false
168
+ loss_type: elbo
169
+
results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_32/upstream_samples.json ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ {
2
+ "generative_ppl": 94.98780822753906,
3
+ "entropy": 4.304296016693115,
4
+ "generated_seqs": [
5
+ "[CLS] west is an executive background / analysis. [CLS] the great challenge is competition between the two groups. [CLS] mr. rock is a true tourist. [CLS] parry's shot from close range was on target but headed into arreax. [CLS] the injured interpreter are patrolling the transfer zone. [CLS] however, middle - aged adults and children form small bands that have become more louder than other youths with metal. [CLS] built hope it create a transportation lane over a fairway. [CLS] one week ( 0148 895255 ). [CLS] coach of the philadelphia phillies team, link managers for drugs with parcells. [CLS] mr hopkins, who heads us [CLS]"
6
+ ]
7
+ }
results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_32/upstream_token_ids.json ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ {
2
+ "samples": [],
3
+ "schema": "dlb-upstream-token-capture-v1"
4
+ }
results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_4/upstream_hydra/.hydra/config.yaml ADDED
@@ -0,0 +1,151 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ mode: sample_eval
2
+ seed: 42
3
+ loader:
4
+ global_batch_size: 512
5
+ eval_global_batch_size: ${.global_batch_size}
6
+ batch_size: 2
7
+ eval_batch_size: 1
8
+ num_workers: ${eval:"len(__import__('os').sched_getaffinity(0))"}
9
+ pin_memory: true
10
+ sampling:
11
+ predictor: ancestral
12
+ steps: 4
13
+ noise_removal: ancestral
14
+ use_float64: true
15
+ p_nucleus: 1.0
16
+ num_sample_batches: 1
17
+ num_sample_log: 2
18
+ semi_ar: false
19
+ stride_length: 1
20
+ num_strides: 1
21
+ guid_weight: null
22
+ psi:
23
+ time_profile: linear
24
+ high_mode: pure-posterior
25
+ middle_mode: pure-posterior
26
+ low_mode: pure-posterior
27
+ high_frac: 0.2
28
+ middle_frac: 0.6
29
+ training:
30
+ ema: 0.9999
31
+ antithetic_sampling: true
32
+ importance_sampling: false
33
+ sampling_eps: 0.001
34
+ change_of_variables: false
35
+ loss_precision: bf16
36
+ finetune_path: ''
37
+ class_dropout_p: 0.1
38
+ eval:
39
+ checkpoint_path: /home/ruizzhao/diffusion_baseline/checkpoints/reference_reproduction/duo_dcd/lm1b/model.ckpt
40
+ disable_ema: false
41
+ compute_generative_perplexity: false
42
+ perplexity_batch_size: 8
43
+ compute_perplexity_on_sanity: false
44
+ gen_ppl_eval_model_name_or_path: gpt2-large
45
+ generate_samples: true
46
+ generated_samples_path: /home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_4/upstream_samples.json
47
+ optim:
48
+ weight_decay: 0
49
+ lr: 0.0003
50
+ beta1: 0.9
51
+ beta2: 0.999
52
+ eps: 1.0e-08
53
+ trainer:
54
+ _target_: lightning.Trainer
55
+ accelerator: cuda
56
+ num_nodes: 1
57
+ devices: 1
58
+ accumulate_grad_batches: ${div_up:${loader.global_batch_size}, ${eval:${trainer.devices}
59
+ * ${loader.batch_size} * ${trainer.num_nodes}}}
60
+ gradient_clip_val: 1.0
61
+ precision: bf16
62
+ num_sanity_val_steps: 2
63
+ max_steps: 1000000
64
+ log_every_n_steps: 100
65
+ limit_train_batches: 1.0
66
+ limit_val_batches: 1.0
67
+ val_check_interval: 5000
68
+ check_val_every_n_epoch: null
69
+ wandb:
70
+ project: duo
71
+ group: null
72
+ job_type: null
73
+ name: null
74
+ id: ${.name}_${seed}
75
+ tags:
76
+ - ${noise.type}
77
+ - ${data.train}
78
+ - ${data.valid}
79
+ - ${algo.name}
80
+ offline: true
81
+ checkpointing:
82
+ save_dir: /home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_4/upstream_hydra
83
+ resume_from_ckpt: true
84
+ resume_ckpt_path: ${.save_dir}/checkpoints/last.ckpt
85
+ callbacks:
86
+ checkpoint_every_n_steps:
87
+ _target_: lightning.pytorch.callbacks.ModelCheckpoint
88
+ save_top_k: -1
89
+ save_last: true
90
+ dirpath: ${checkpointing.save_dir}/checkpoints
91
+ verbose: true
92
+ auto_insert_metric_name: false
93
+ every_n_train_steps: 500
94
+ checkpoint_monitor:
95
+ _target_: lightning.pytorch.callbacks.ModelCheckpoint
96
+ monitor: val/nll
97
+ mode: min
98
+ save_top_k: 1
99
+ save_last: false
100
+ dirpath: ${checkpointing.save_dir}/checkpoints
101
+ filename: best
102
+ auto_insert_metric_name: false
103
+ verbose: true
104
+ learning_rate_monitor:
105
+ _target_: lightning.pytorch.callbacks.LearningRateMonitor
106
+ logging_interval: step
107
+ data:
108
+ train: lm1b
109
+ valid: lm1b
110
+ modality: text
111
+ tokenizer_name_or_path: bert-base-uncased
112
+ cache_dir: /share/kuleshov/ssahoo/textdiffusion/data
113
+ wrap: true
114
+ streaming: false
115
+ insert_train_eos: true
116
+ insert_valid_eos: true
117
+ model:
118
+ name: small
119
+ type: ddit
120
+ hidden_size: 768
121
+ cond_dim: 128
122
+ length: 128
123
+ n_blocks: 12
124
+ n_heads: 12
125
+ scale_by_sigma: true
126
+ dropout: 0.1
127
+ tie_word_embeddings: false
128
+ vocab_lookup: true
129
+ strategy:
130
+ _target_: lightning.pytorch.strategies.DDPStrategy
131
+ find_unused_parameters: false
132
+ noise:
133
+ type: log-linear
134
+ eps: 0.001
135
+ lr_scheduler:
136
+ _target_: transformers.get_constant_schedule_with_warmup
137
+ num_warmup_steps: 2500
138
+ prior:
139
+ type: none
140
+ latent_width: 0
141
+ latent_height: 0
142
+ algo:
143
+ name: duo_base
144
+ backbone: dit
145
+ parameterization: mean
146
+ time_conditioning: true
147
+ T: 0
148
+ subs_masking: false
149
+ causal_attention: false
150
+ ignore_bos: false
151
+ loss_type: elbo
results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_4/upstream_hydra/.hydra/hydra.yaml ADDED
@@ -0,0 +1,181 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ hydra:
2
+ run:
3
+ dir: /home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_4/upstream_hydra
4
+ sweep:
5
+ dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S}
6
+ subdir: ${hydra.job.num}
7
+ launcher:
8
+ _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher
9
+ sweeper:
10
+ _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper
11
+ max_batch_size: null
12
+ params: null
13
+ help:
14
+ app_name: ${hydra.job.name}
15
+ header: '${hydra.help.app_name} is powered by Hydra.
16
+
17
+ '
18
+ footer: 'Powered by Hydra (https://hydra.cc)
19
+
20
+ Use --hydra-help to view Hydra specific help
21
+
22
+ '
23
+ template: '${hydra.help.header}
24
+
25
+ == Configuration groups ==
26
+
27
+ Compose your configuration from those groups (group=option)
28
+
29
+
30
+ $APP_CONFIG_GROUPS
31
+
32
+
33
+ == Config ==
34
+
35
+ Override anything in the config (foo.bar=value)
36
+
37
+
38
+ $CONFIG
39
+
40
+
41
+ ${hydra.help.footer}
42
+
43
+ '
44
+ hydra_help:
45
+ template: 'Hydra (${hydra.runtime.version})
46
+
47
+ See https://hydra.cc for more info.
48
+
49
+
50
+ == Flags ==
51
+
52
+ $FLAGS_HELP
53
+
54
+
55
+ == Configuration groups ==
56
+
57
+ Compose your configuration from those groups (For example, append hydra/job_logging=disabled
58
+ to command line)
59
+
60
+
61
+ $HYDRA_CONFIG_GROUPS
62
+
63
+
64
+ Use ''--cfg hydra'' to Show the Hydra config.
65
+
66
+ '
67
+ hydra_help: ???
68
+ hydra_logging:
69
+ version: 1
70
+ formatters:
71
+ simple:
72
+ format: '[%(asctime)s][HYDRA] %(message)s'
73
+ handlers:
74
+ console:
75
+ class: logging.StreamHandler
76
+ formatter: simple
77
+ stream: ext://sys.stdout
78
+ root:
79
+ level: INFO
80
+ handlers:
81
+ - console
82
+ loggers:
83
+ logging_example:
84
+ level: DEBUG
85
+ disable_existing_loggers: false
86
+ job_logging:
87
+ version: 1
88
+ formatters:
89
+ simple:
90
+ format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s'
91
+ handlers:
92
+ console:
93
+ class: logging.StreamHandler
94
+ formatter: simple
95
+ stream: ext://sys.stdout
96
+ file:
97
+ class: logging.FileHandler
98
+ formatter: simple
99
+ filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log
100
+ root:
101
+ level: INFO
102
+ handlers:
103
+ - console
104
+ - file
105
+ disable_existing_loggers: false
106
+ env: {}
107
+ mode: RUN
108
+ searchpath: []
109
+ callbacks: {}
110
+ output_subdir: .hydra
111
+ overrides:
112
+ hydra:
113
+ - hydra.run.dir=/home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_4/upstream_hydra
114
+ - hydra.mode=RUN
115
+ task:
116
+ - mode=sample_eval
117
+ - seed=42
118
+ - data=lm1b-wrap
119
+ - model=small
120
+ - model.length=128
121
+ - loader.batch_size=2
122
+ - loader.eval_batch_size=1
123
+ - sampling.num_sample_batches=1
124
+ - sampling.steps=4
125
+ - eval.checkpoint_path=/home/ruizzhao/diffusion_baseline/checkpoints/reference_reproduction/duo_dcd/lm1b/model.ckpt
126
+ - trainer.devices=1
127
+ - checkpointing.save_dir=/home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_4/upstream_hydra
128
+ - +wandb.offline=true
129
+ - eval.generated_samples_path=/home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_4/upstream_samples.json
130
+ - algo=duo_base
131
+ - algo.backbone=dit
132
+ - sampling.predictor=ancestral
133
+ - sampling.noise_removal=ancestral
134
+ - eval.disable_ema=False
135
+ job:
136
+ name: dlb_pinned_upstream_main
137
+ chdir: true
138
+ override_dirname: +wandb.offline=true,algo.backbone=dit,algo=duo_base,checkpointing.save_dir=/home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_4/upstream_hydra,data=lm1b-wrap,eval.checkpoint_path=/home/ruizzhao/diffusion_baseline/checkpoints/reference_reproduction/duo_dcd/lm1b/model.ckpt,eval.disable_ema=False,eval.generated_samples_path=/home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_4/upstream_samples.json,loader.batch_size=2,loader.eval_batch_size=1,mode=sample_eval,model.length=128,model=small,sampling.noise_removal=ancestral,sampling.num_sample_batches=1,sampling.predictor=ancestral,sampling.steps=4,seed=42,trainer.devices=1
139
+ id: ???
140
+ num: ???
141
+ config_name: config
142
+ env_set: {}
143
+ env_copy: []
144
+ config:
145
+ override_dirname:
146
+ kv_sep: '='
147
+ item_sep: ','
148
+ exclude_keys: []
149
+ runtime:
150
+ version: 1.3.2
151
+ version_base: '1.3'
152
+ cwd: /home/ruizzhao/diffusion_baseline
153
+ config_sources:
154
+ - path: hydra.conf
155
+ schema: pkg
156
+ provider: hydra
157
+ - path: /home/ruizzhao/diffusion_baseline/upstreams/duo/configs
158
+ schema: file
159
+ provider: main
160
+ - path: ''
161
+ schema: structured
162
+ provider: schema
163
+ output_dir: /home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_4/upstream_hydra
164
+ choices:
165
+ algo: duo_base
166
+ prior: none
167
+ lr_scheduler: constant_warmup
168
+ noise: log-linear
169
+ strategy: ddp
170
+ model: small
171
+ data: lm1b-wrap
172
+ hydra/env: default
173
+ hydra/callbacks: null
174
+ hydra/job_logging: default
175
+ hydra/hydra_logging: default
176
+ hydra/hydra_help: default
177
+ hydra/help: default
178
+ hydra/sweeper: basic
179
+ hydra/launcher: basic
180
+ hydra/output: default
181
+ verbose: false
results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_4/upstream_hydra/.hydra/overrides.yaml ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ - mode=sample_eval
2
+ - seed=42
3
+ - data=lm1b-wrap
4
+ - model=small
5
+ - model.length=128
6
+ - loader.batch_size=2
7
+ - loader.eval_batch_size=1
8
+ - sampling.num_sample_batches=1
9
+ - sampling.steps=4
10
+ - eval.checkpoint_path=/home/ruizzhao/diffusion_baseline/checkpoints/reference_reproduction/duo_dcd/lm1b/model.ckpt
11
+ - trainer.devices=1
12
+ - checkpointing.save_dir=/home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_4/upstream_hydra
13
+ - +wandb.offline=true
14
+ - eval.generated_samples_path=/home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_4/upstream_samples.json
15
+ - algo=duo_base
16
+ - algo.backbone=dit
17
+ - sampling.predictor=ancestral
18
+ - sampling.noise_removal=ancestral
19
+ - eval.disable_ema=False
results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_4/upstream_hydra/dlb_pinned_upstream_main.log ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ [2026-08-25 10:41:48,631][dlb_pinned_upstream_main][INFO] - Starting Sample Eval.
2
+ [2026-08-25 10:41:56,317][dlb_pinned_upstream_main][INFO] - Generative perplexity: 324.6085510253906
3
+ [2026-08-25 10:41:56,317][dlb_pinned_upstream_main][INFO] - Sample entropy: 4.237051963806152
4
+ [2026-08-25 10:41:56,318][dlb_pinned_upstream_main][INFO] - Samples saved at: /home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_4/upstream_samples.json
results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_4/upstream_samples.json ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ {
2
+ "generative_ppl": 324.6085510253906,
3
+ "entropy": 4.237051963806152,
4
+ "generated_seqs": [
5
+ "[CLS] son at dinner having wonderful - - as i recall the marathoner - - candidate no long offer - - tutored him in the businessla'[CLS] said ioanni. [CLS] for thegame time trading, the stx india5 star offer. 92 and or increase of 1 percent, 8. 09 associated. the recording, ore., reported. [CLS] my back to emily of the weekend, san marco around the city would not foolishly contemplating the kind of violence on far away1's \" manage. \" [CLS] \" it is square or there will be 50in ( 48km ) ) of space to prevent the indoor [CLS]"
6
+ ]
7
+ }
results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_4/upstream_token_ids.json ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ {
2
+ "samples": [],
3
+ "schema": "dlb-upstream-token-capture-v1"
4
+ }
results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_8/upstream_hydra/.hydra/config.yaml ADDED
@@ -0,0 +1,151 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ mode: sample_eval
2
+ seed: 42
3
+ loader:
4
+ global_batch_size: 512
5
+ eval_global_batch_size: ${.global_batch_size}
6
+ batch_size: 2
7
+ eval_batch_size: 1
8
+ num_workers: ${eval:"len(__import__('os').sched_getaffinity(0))"}
9
+ pin_memory: true
10
+ sampling:
11
+ predictor: ancestral
12
+ steps: 8
13
+ noise_removal: ancestral
14
+ use_float64: true
15
+ p_nucleus: 1.0
16
+ num_sample_batches: 1
17
+ num_sample_log: 2
18
+ semi_ar: false
19
+ stride_length: 1
20
+ num_strides: 1
21
+ guid_weight: null
22
+ psi:
23
+ time_profile: linear
24
+ high_mode: pure-posterior
25
+ middle_mode: pure-posterior
26
+ low_mode: pure-posterior
27
+ high_frac: 0.2
28
+ middle_frac: 0.6
29
+ training:
30
+ ema: 0.9999
31
+ antithetic_sampling: true
32
+ importance_sampling: false
33
+ sampling_eps: 0.001
34
+ change_of_variables: false
35
+ loss_precision: bf16
36
+ finetune_path: ''
37
+ class_dropout_p: 0.1
38
+ eval:
39
+ checkpoint_path: /home/ruizzhao/diffusion_baseline/checkpoints/reference_reproduction/duo_dcd/lm1b/model.ckpt
40
+ disable_ema: false
41
+ compute_generative_perplexity: false
42
+ perplexity_batch_size: 8
43
+ compute_perplexity_on_sanity: false
44
+ gen_ppl_eval_model_name_or_path: gpt2-large
45
+ generate_samples: true
46
+ generated_samples_path: /home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_8/upstream_samples.json
47
+ optim:
48
+ weight_decay: 0
49
+ lr: 0.0003
50
+ beta1: 0.9
51
+ beta2: 0.999
52
+ eps: 1.0e-08
53
+ trainer:
54
+ _target_: lightning.Trainer
55
+ accelerator: cuda
56
+ num_nodes: 1
57
+ devices: 1
58
+ accumulate_grad_batches: ${div_up:${loader.global_batch_size}, ${eval:${trainer.devices}
59
+ * ${loader.batch_size} * ${trainer.num_nodes}}}
60
+ gradient_clip_val: 1.0
61
+ precision: bf16
62
+ num_sanity_val_steps: 2
63
+ max_steps: 1000000
64
+ log_every_n_steps: 100
65
+ limit_train_batches: 1.0
66
+ limit_val_batches: 1.0
67
+ val_check_interval: 5000
68
+ check_val_every_n_epoch: null
69
+ wandb:
70
+ project: duo
71
+ group: null
72
+ job_type: null
73
+ name: null
74
+ id: ${.name}_${seed}
75
+ tags:
76
+ - ${noise.type}
77
+ - ${data.train}
78
+ - ${data.valid}
79
+ - ${algo.name}
80
+ offline: true
81
+ checkpointing:
82
+ save_dir: /home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_8/upstream_hydra
83
+ resume_from_ckpt: true
84
+ resume_ckpt_path: ${.save_dir}/checkpoints/last.ckpt
85
+ callbacks:
86
+ checkpoint_every_n_steps:
87
+ _target_: lightning.pytorch.callbacks.ModelCheckpoint
88
+ save_top_k: -1
89
+ save_last: true
90
+ dirpath: ${checkpointing.save_dir}/checkpoints
91
+ verbose: true
92
+ auto_insert_metric_name: false
93
+ every_n_train_steps: 500
94
+ checkpoint_monitor:
95
+ _target_: lightning.pytorch.callbacks.ModelCheckpoint
96
+ monitor: val/nll
97
+ mode: min
98
+ save_top_k: 1
99
+ save_last: false
100
+ dirpath: ${checkpointing.save_dir}/checkpoints
101
+ filename: best
102
+ auto_insert_metric_name: false
103
+ verbose: true
104
+ learning_rate_monitor:
105
+ _target_: lightning.pytorch.callbacks.LearningRateMonitor
106
+ logging_interval: step
107
+ data:
108
+ train: lm1b
109
+ valid: lm1b
110
+ modality: text
111
+ tokenizer_name_or_path: bert-base-uncased
112
+ cache_dir: /share/kuleshov/ssahoo/textdiffusion/data
113
+ wrap: true
114
+ streaming: false
115
+ insert_train_eos: true
116
+ insert_valid_eos: true
117
+ model:
118
+ name: small
119
+ type: ddit
120
+ hidden_size: 768
121
+ cond_dim: 128
122
+ length: 128
123
+ n_blocks: 12
124
+ n_heads: 12
125
+ scale_by_sigma: true
126
+ dropout: 0.1
127
+ tie_word_embeddings: false
128
+ vocab_lookup: true
129
+ strategy:
130
+ _target_: lightning.pytorch.strategies.DDPStrategy
131
+ find_unused_parameters: false
132
+ noise:
133
+ type: log-linear
134
+ eps: 0.001
135
+ lr_scheduler:
136
+ _target_: transformers.get_constant_schedule_with_warmup
137
+ num_warmup_steps: 2500
138
+ prior:
139
+ type: none
140
+ latent_width: 0
141
+ latent_height: 0
142
+ algo:
143
+ name: duo_base
144
+ backbone: dit
145
+ parameterization: mean
146
+ time_conditioning: true
147
+ T: 0
148
+ subs_masking: false
149
+ causal_attention: false
150
+ ignore_bos: false
151
+ loss_type: elbo
results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_8/upstream_hydra/.hydra/hydra.yaml ADDED
@@ -0,0 +1,181 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ hydra:
2
+ run:
3
+ dir: /home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_8/upstream_hydra
4
+ sweep:
5
+ dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S}
6
+ subdir: ${hydra.job.num}
7
+ launcher:
8
+ _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher
9
+ sweeper:
10
+ _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper
11
+ max_batch_size: null
12
+ params: null
13
+ help:
14
+ app_name: ${hydra.job.name}
15
+ header: '${hydra.help.app_name} is powered by Hydra.
16
+
17
+ '
18
+ footer: 'Powered by Hydra (https://hydra.cc)
19
+
20
+ Use --hydra-help to view Hydra specific help
21
+
22
+ '
23
+ template: '${hydra.help.header}
24
+
25
+ == Configuration groups ==
26
+
27
+ Compose your configuration from those groups (group=option)
28
+
29
+
30
+ $APP_CONFIG_GROUPS
31
+
32
+
33
+ == Config ==
34
+
35
+ Override anything in the config (foo.bar=value)
36
+
37
+
38
+ $CONFIG
39
+
40
+
41
+ ${hydra.help.footer}
42
+
43
+ '
44
+ hydra_help:
45
+ template: 'Hydra (${hydra.runtime.version})
46
+
47
+ See https://hydra.cc for more info.
48
+
49
+
50
+ == Flags ==
51
+
52
+ $FLAGS_HELP
53
+
54
+
55
+ == Configuration groups ==
56
+
57
+ Compose your configuration from those groups (For example, append hydra/job_logging=disabled
58
+ to command line)
59
+
60
+
61
+ $HYDRA_CONFIG_GROUPS
62
+
63
+
64
+ Use ''--cfg hydra'' to Show the Hydra config.
65
+
66
+ '
67
+ hydra_help: ???
68
+ hydra_logging:
69
+ version: 1
70
+ formatters:
71
+ simple:
72
+ format: '[%(asctime)s][HYDRA] %(message)s'
73
+ handlers:
74
+ console:
75
+ class: logging.StreamHandler
76
+ formatter: simple
77
+ stream: ext://sys.stdout
78
+ root:
79
+ level: INFO
80
+ handlers:
81
+ - console
82
+ loggers:
83
+ logging_example:
84
+ level: DEBUG
85
+ disable_existing_loggers: false
86
+ job_logging:
87
+ version: 1
88
+ formatters:
89
+ simple:
90
+ format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s'
91
+ handlers:
92
+ console:
93
+ class: logging.StreamHandler
94
+ formatter: simple
95
+ stream: ext://sys.stdout
96
+ file:
97
+ class: logging.FileHandler
98
+ formatter: simple
99
+ filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log
100
+ root:
101
+ level: INFO
102
+ handlers:
103
+ - console
104
+ - file
105
+ disable_existing_loggers: false
106
+ env: {}
107
+ mode: RUN
108
+ searchpath: []
109
+ callbacks: {}
110
+ output_subdir: .hydra
111
+ overrides:
112
+ hydra:
113
+ - hydra.run.dir=/home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_8/upstream_hydra
114
+ - hydra.mode=RUN
115
+ task:
116
+ - mode=sample_eval
117
+ - seed=42
118
+ - data=lm1b-wrap
119
+ - model=small
120
+ - model.length=128
121
+ - loader.batch_size=2
122
+ - loader.eval_batch_size=1
123
+ - sampling.num_sample_batches=1
124
+ - sampling.steps=8
125
+ - eval.checkpoint_path=/home/ruizzhao/diffusion_baseline/checkpoints/reference_reproduction/duo_dcd/lm1b/model.ckpt
126
+ - trainer.devices=1
127
+ - checkpointing.save_dir=/home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_8/upstream_hydra
128
+ - +wandb.offline=true
129
+ - eval.generated_samples_path=/home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_8/upstream_samples.json
130
+ - algo=duo_base
131
+ - algo.backbone=dit
132
+ - sampling.predictor=ancestral
133
+ - sampling.noise_removal=ancestral
134
+ - eval.disable_ema=False
135
+ job:
136
+ name: dlb_pinned_upstream_main
137
+ chdir: true
138
+ override_dirname: +wandb.offline=true,algo.backbone=dit,algo=duo_base,checkpointing.save_dir=/home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_8/upstream_hydra,data=lm1b-wrap,eval.checkpoint_path=/home/ruizzhao/diffusion_baseline/checkpoints/reference_reproduction/duo_dcd/lm1b/model.ckpt,eval.disable_ema=False,eval.generated_samples_path=/home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_8/upstream_samples.json,loader.batch_size=2,loader.eval_batch_size=1,mode=sample_eval,model.length=128,model=small,sampling.noise_removal=ancestral,sampling.num_sample_batches=1,sampling.predictor=ancestral,sampling.steps=8,seed=42,trainer.devices=1
139
+ id: ???
140
+ num: ???
141
+ config_name: config
142
+ env_set: {}
143
+ env_copy: []
144
+ config:
145
+ override_dirname:
146
+ kv_sep: '='
147
+ item_sep: ','
148
+ exclude_keys: []
149
+ runtime:
150
+ version: 1.3.2
151
+ version_base: '1.3'
152
+ cwd: /home/ruizzhao/diffusion_baseline
153
+ config_sources:
154
+ - path: hydra.conf
155
+ schema: pkg
156
+ provider: hydra
157
+ - path: /home/ruizzhao/diffusion_baseline/upstreams/duo/configs
158
+ schema: file
159
+ provider: main
160
+ - path: ''
161
+ schema: structured
162
+ provider: schema
163
+ output_dir: /home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_8/upstream_hydra
164
+ choices:
165
+ algo: duo_base
166
+ prior: none
167
+ lr_scheduler: constant_warmup
168
+ noise: log-linear
169
+ strategy: ddp
170
+ model: small
171
+ data: lm1b-wrap
172
+ hydra/env: default
173
+ hydra/callbacks: null
174
+ hydra/job_logging: default
175
+ hydra/hydra_logging: default
176
+ hydra/hydra_help: default
177
+ hydra/help: default
178
+ hydra/sweeper: basic
179
+ hydra/launcher: basic
180
+ hydra/output: default
181
+ verbose: false
results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_8/upstream_hydra/.hydra/overrides.yaml ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ - mode=sample_eval
2
+ - seed=42
3
+ - data=lm1b-wrap
4
+ - model=small
5
+ - model.length=128
6
+ - loader.batch_size=2
7
+ - loader.eval_batch_size=1
8
+ - sampling.num_sample_batches=1
9
+ - sampling.steps=8
10
+ - eval.checkpoint_path=/home/ruizzhao/diffusion_baseline/checkpoints/reference_reproduction/duo_dcd/lm1b/model.ckpt
11
+ - trainer.devices=1
12
+ - checkpointing.save_dir=/home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_8/upstream_hydra
13
+ - +wandb.offline=true
14
+ - eval.generated_samples_path=/home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_8/upstream_samples.json
15
+ - algo=duo_base
16
+ - algo.backbone=dit
17
+ - sampling.predictor=ancestral
18
+ - sampling.noise_removal=ancestral
19
+ - eval.disable_ema=False
results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_8/upstream_hydra/dlb_pinned_upstream_main.log ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ [2026-08-25 10:43:42,844][dlb_pinned_upstream_main][INFO] - Starting Sample Eval.
2
+ [2026-08-25 10:43:51,931][dlb_pinned_upstream_main][INFO] - Generative perplexity: 264.6139221191406
3
+ [2026-08-25 10:43:51,931][dlb_pinned_upstream_main][INFO] - Sample entropy: 4.380173683166504
4
+ [2026-08-25 10:43:51,931][dlb_pinned_upstream_main][INFO] - Samples saved at: /home/ruizzhao/diffusion_baseline/results_duo_dcd_ckpt_probe/best_seed42/timing_scratch/samples/lm1b/duo_dcd/steps_8/upstream_samples.json
scripts/aggregate_conditional_results.py ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python
2
+ """Publish strict or partial C64 conditional baseline summary tables."""
3
+
4
+ from __future__ import annotations
5
+
6
+ import argparse
7
+ from pathlib import Path
8
+
9
+ from dlb.aggregate import IncompleteMatrixError
10
+ from dlb.conditional_aggregate import aggregate_conditional
11
+
12
+
13
+ def main(argv: list[str] | None = None) -> int:
14
+ parser = argparse.ArgumentParser(description=__doc__)
15
+ parser.add_argument("--root", type=Path, default=Path.cwd())
16
+ parser.add_argument(
17
+ "--output-dir",
18
+ type=Path,
19
+ default=None,
20
+ help="defaults to ROOT/results/conditional/summary",
21
+ )
22
+ parser.add_argument("--partial", action="store_true")
23
+ args = parser.parse_args(argv)
24
+ root = args.root.resolve()
25
+ output = (args.output_dir or root / "results/conditional/summary").resolve()
26
+ try:
27
+ report = aggregate_conditional(
28
+ root,
29
+ strict=not args.partial,
30
+ partial=args.partial,
31
+ output_dir=output,
32
+ )
33
+ except IncompleteMatrixError as error:
34
+ print(str(error))
35
+ print(f"failures={len(error.failures)}")
36
+ return 1
37
+ print(
38
+ f"complete={str(report.complete).lower()} "
39
+ f"rows={len(report.rows)} failures={len(report.failures)} "
40
+ f"unsupported={len(report.unsupported)} output={output}"
41
+ )
42
+ return 0 if report.complete else 1
43
+
44
+
45
+ if __name__ == "__main__":
46
+ raise SystemExit(main())
scripts/build_conditional_prompts.py ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ """Build deterministic C64 conditional prompt artifacts."""
3
+
4
+ from __future__ import annotations
5
+
6
+ import argparse
7
+ from pathlib import Path
8
+ import sys
9
+
10
+
11
+ def parse_args(argv: list[str] | None = None) -> argparse.Namespace:
12
+ parser = argparse.ArgumentParser()
13
+ parser.add_argument("--root", type=Path, default=Path(__file__).resolve().parents[1])
14
+ parser.add_argument("--config", type=Path)
15
+ parser.add_argument("--dataset", choices=("all", "lm1b", "owt"), default="all")
16
+ return parser.parse_args(argv)
17
+
18
+
19
+ def main(argv: list[str] | None = None) -> int:
20
+ args = parse_args(argv)
21
+ root = args.root.resolve()
22
+ sys.path.insert(0, str(root / "src"))
23
+ from dlb.conditional_prompts import build_prompts, load_protocol
24
+
25
+ protocol = load_protocol(args.config or root / "configs" / "conditional.yaml")
26
+ datasets = ("lm1b", "owt") if args.dataset == "all" else (args.dataset,)
27
+ for dataset_id in datasets:
28
+ manifest = build_prompts(root, dataset_id, protocol)
29
+ print(f"OK {dataset_id} prompts={manifest.prompt_count} sha256={manifest.prompt_file_sha256}")
30
+ return 0
31
+
32
+
33
+ if __name__ == "__main__":
34
+ raise SystemExit(main())
scripts/evaluate_conditional_all.sh ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env bash
2
+ # Server-side quality evaluation over completed C64 conditional samples.
3
+ set -uo pipefail
4
+
5
+ SCRIPT_DIR="$(CDPATH= cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd -P)"
6
+ DLB_ROOT="${DLB_ROOT:-$(CDPATH= cd -- "$SCRIPT_DIR/.." && pwd -P)}"
7
+ PYTHON_BIN="${DLB_EVAL_PYTHON:-${DLB_PYTHON:-python}}"
8
+ MATRIX="${DLB_CONDITIONAL_MATRIX:-}"
9
+ METRICS="conditional_gen_ppl,mauve_suffix,entropy,self_bleu,prefix_exact_match"
10
+
11
+ usage() {
12
+ printf 'Usage: %s [--root PATH] [--matrix PATH] [--metrics LIST]\n' "$0"
13
+ }
14
+
15
+ while (($#)); do
16
+ case "$1" in
17
+ --root) DLB_ROOT="$2"; shift 2 ;;
18
+ --matrix) MATRIX="$2"; shift 2 ;;
19
+ --metrics) METRICS="$2"; shift 2 ;;
20
+ --help) usage; exit 0 ;;
21
+ *) echo "unknown argument: $1" >&2; usage; exit 2 ;;
22
+ esac
23
+ done
24
+
25
+ DLB_ROOT="$(CDPATH= cd -- "$DLB_ROOT" && pwd -P)"
26
+ if [[ -z "$MATRIX" ]]; then MATRIX="$DLB_ROOT/results/conditional/matrix/generation.tsv"; fi
27
+ export DLB_ROOT
28
+ mkdir -p "$DLB_ROOT/results/conditional/matrix" "$DLB_ROOT/results/logs"
29
+ PYTHONPATH="$DLB_ROOT/src${PYTHONPATH:+:$PYTHONPATH}" "${DLB_PYTHON:-python}" -m dlb.conditional_matrix \
30
+ --root "$DLB_ROOT" --output "$MATRIX" || exit $?
31
+
32
+ failures="$DLB_ROOT/results/logs/conditional_evaluation_failures.tsv"
33
+ printf 'task_id\tmodel\tdataset\tsteps\texit_code\n' >"$failures"
34
+ status=0
35
+ while IFS=$'\t' read -r task_id category model dataset steps sample_count seed environment adapter source provenance protocol conditioning_manifest conditioning_manifest_sha256 sample_dir metrics_path timing_path; do
36
+ [[ "$task_id" == "task_id" || -z "$task_id" ]] && continue
37
+ mkdir -p "$(dirname -- "$metrics_path")"
38
+ echo "CONDITIONAL EVALUATE $task_id"
39
+ PYTHONPATH="$DLB_ROOT/src${PYTHONPATH:+:$PYTHONPATH}" "$PYTHON_BIN" -m evaluation.conditional_evaluate \
40
+ --root "$DLB_ROOT" --samples "$sample_dir/samples.jsonl" \
41
+ --metrics "$METRICS" --dataset "$dataset" --output "$metrics_path"
42
+ exit_code=$?
43
+ if ((exit_code != 0)); then
44
+ printf '%s\t%s\t%s\t%s\t%s\n' "$task_id" "$model" "$dataset" "$steps" "$exit_code" >>"$failures"
45
+ status=1
46
+ fi
47
+ done < <(tail -n +3 "$MATRIX")
48
+ if [[ ! -s "$failures" ]]; then rm -f "$failures"; fi
49
+ exit "$status"
scripts/fetch_sources.sh ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ DLB_ROOT=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)
5
+ export DLB_ROOT
6
+
7
+ resolve_python_candidate() {
8
+ local candidate="$1"
9
+ if [[ "$candidate" == */* ]]; then
10
+ [[ -x "$candidate" ]] && printf '%s\n' "$candidate"
11
+ elif command -v "$candidate" >/dev/null 2>&1; then
12
+ command -v "$candidate"
13
+ fi
14
+ }
15
+
16
+ if [[ -n "${DLB_PYTHON:-}" ]]; then
17
+ if ! DLB_PYTHON_BIN=$(resolve_python_candidate "$DLB_PYTHON"); then
18
+ echo "ERROR Python interpreter not found or not executable: $DLB_PYTHON" >&2
19
+ exit 1
20
+ fi
21
+ elif [[ -n "${PYTHON_BIN:-}" ]]; then
22
+ if ! DLB_PYTHON_BIN=$(resolve_python_candidate "$PYTHON_BIN"); then
23
+ echo "ERROR Python interpreter not found or not executable: $PYTHON_BIN" >&2
24
+ exit 1
25
+ fi
26
+ elif [[ -n "${CONDA_PREFIX:-}" && -x "$CONDA_PREFIX/bin/python" ]]; then
27
+ DLB_PYTHON_BIN="$CONDA_PREFIX/bin/python"
28
+ elif command -v python >/dev/null 2>&1; then
29
+ DLB_PYTHON_BIN=$(command -v python)
30
+ elif command -v python3 >/dev/null 2>&1; then
31
+ DLB_PYTHON_BIN=$(command -v python3)
32
+ else
33
+ echo "ERROR Python interpreter not found; activate conda or set DLB_PYTHON." >&2
34
+ exit 1
35
+ fi
36
+
37
+ source_rows=$(PYTHONPATH="$DLB_ROOT/src${PYTHONPATH:+:$PYTHONPATH}" "$DLB_PYTHON_BIN" - "$DLB_ROOT" <<'PY'
38
+ from pathlib import Path
39
+ import sys
40
+
41
+ import yaml
42
+
43
+ from dlb.registry import load_registry
44
+
45
+ root = Path(sys.argv[1])
46
+ with (root / "artifacts/sources.yaml").open(encoding="utf-8") as manifest_file:
47
+ manifest = yaml.safe_load(manifest_file)
48
+ required_sources = {entry.source for entry in load_registry(root / "configs/experiments.yaml").models.values()}
49
+ if not isinstance(manifest, dict) or set(manifest) != required_sources:
50
+ raise SystemExit("source manifest IDs must match registry sources")
51
+ for name in sorted(required_sources):
52
+ source = manifest[name]
53
+ if not isinstance(source, dict) or set(source) != {"url", "commit"}:
54
+ raise SystemExit(f"invalid manifest entry for {name}")
55
+ print(f"{name}\t{source['url']}\t{source['commit']}")
56
+ PY
57
+ )
58
+
59
+ while IFS=$'\t' read -r name url commit; do
60
+ source_dir="$DLB_ROOT/upstreams/$name"
61
+ if [[ ! -e "$source_dir" ]]; then
62
+ git clone --filter=blob:none "$url" "$source_dir"
63
+ elif [[ ! -d "$source_dir/.git" ]]; then
64
+ echo "ERROR $name is not a Git repository: $source_dir" >&2
65
+ exit 1
66
+ fi
67
+
68
+ if [[ "$(git -C "$source_dir" remote get-url origin)" != "$url" ]]; then
69
+ echo "ERROR $name origin does not match manifest" >&2
70
+ exit 1
71
+ fi
72
+ if [[ -n "$(git -C "$source_dir" status --porcelain)" ]]; then
73
+ echo "ERROR $name has uncommitted changes" >&2
74
+ exit 1
75
+ fi
76
+
77
+ git -C "$source_dir" fetch --depth=1 origin "$commit"
78
+ git -C "$source_dir" checkout --detach "$commit"
79
+ test "$(git -C "$source_dir" rev-parse HEAD)" = "$commit"
80
+ test -z "$(git -C "$source_dir" status --porcelain)"
81
+ done <<< "$source_rows"
82
+
83
+ PYTHONPATH="$DLB_ROOT/src${PYTHONPATH:+:$PYTHONPATH}" \
84
+ "$DLB_PYTHON_BIN" "$DLB_ROOT/scripts/verify_sources.py" --root "$DLB_ROOT"
scripts/run_all.sh ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env bash
2
+ # Server-side serial/resumable generation over the canonical matrix.
3
+ set -uo pipefail
4
+
5
+ SCRIPT_DIR="$(CDPATH= cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd -P)"
6
+ DLB_ROOT="${DLB_ROOT:-$(CDPATH= cd -- "$SCRIPT_DIR/.." && pwd -P)}"
7
+ PYTHON_BIN="${DLB_PYTHON:-python}"
8
+ MATRIX="${DLB_MATRIX:-}"
9
+ SAMPLE_COUNT=1024
10
+ SEED=42
11
+
12
+ usage() {
13
+ printf 'Usage: %s [--root PATH] [--matrix PATH] [--num-samples N] [--seed N]\n' "$0"
14
+ }
15
+
16
+ while (($#)); do
17
+ case "$1" in
18
+ --root) DLB_ROOT="$2"; shift 2 ;;
19
+ --matrix) MATRIX="$2"; shift 2 ;;
20
+ --num-samples) SAMPLE_COUNT="$2"; shift 2 ;;
21
+ --seed) SEED="$2"; shift 2 ;;
22
+ --help) usage; exit 0 ;;
23
+ *) echo "unknown argument: $1" >&2; usage; exit 2 ;;
24
+ esac
25
+ done
26
+
27
+ DLB_ROOT="$(CDPATH= cd -- "$DLB_ROOT" && pwd -P)"
28
+ if [[ -z "$MATRIX" ]]; then MATRIX="$DLB_ROOT/results/matrix/generation.tsv"; fi
29
+ export DLB_ROOT
30
+ mkdir -p "$DLB_ROOT/results/matrix" "$DLB_ROOT/results/logs"
31
+ PYTHONPATH="$DLB_ROOT/src${PYTHONPATH:+:$PYTHONPATH}" "$PYTHON_BIN" -m dlb.matrix \
32
+ --root "$DLB_ROOT" --output "$MATRIX" --sample-count "$SAMPLE_COUNT" --seed "$SEED" \
33
+ || exit $?
34
+
35
+ failures="$DLB_ROOT/results/logs/generation_failures.tsv"
36
+ printf 'task_id\tmodel\tdataset\tsteps\texit_code\n' >"$failures"
37
+ status=0
38
+ while IFS=$'\t' read -r task_id category model dataset steps sample_count seed environment adapter source provenance sample_dir metrics_path timing_path; do
39
+ [[ "$task_id" == "task_id" || -z "$task_id" ]] && continue
40
+ echo "GENERATE $task_id"
41
+ "$SCRIPT_DIR/run_one.sh" \
42
+ --model "$model" --dataset "$dataset" --steps "$steps" \
43
+ --num-samples "$sample_count" --seed "$seed"
44
+ exit_code=$?
45
+ if ((exit_code != 0)); then
46
+ printf '%s\t%s\t%s\t%s\t%s\n' "$task_id" "$model" "$dataset" "$steps" "$exit_code" >>"$failures"
47
+ status=1
48
+ fi
49
+ done < <(tail -n +3 "$MATRIX")
50
+ if [[ ! -s "$failures" ]]; then
51
+ rm -f "$failures"
52
+ fi
53
+ exit "$status"
scripts/run_ppl_rescore_20260923.sh ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env bash
2
+ set -uo pipefail
3
+
4
+ root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
5
+ cd "$root" || exit 1
6
+ mode="${1:-all}"
7
+ out="$root/results/ppl_rescore_20260923"
8
+ mkdir -p "$out/logs"
9
+ export CUDA_VISIBLE_DEVICES=3
10
+ export PYTHONPATH="$root/src:$root"
11
+ export HF_HOME="/home/ruizzhao/.cache/huggingface"
12
+ export HF_HUB_DISABLE_TELEMETRY=1
13
+ export TOKENIZERS_PARALLELISM=false
14
+ export OMP_NUM_THREADS=4
15
+ python=/opt/anaconda3/envs/factory/bin/python
16
+
17
+ if [[ "$mode" == smoke ]]; then
18
+ smoke_model="${2:-pythia-1b}"
19
+ log="$out/logs/smoke_${smoke_model}.log"
20
+ exit_file="$out/logs/smoke_${smoke_model}.exit"
21
+ args=(--model "$smoke_model" --smoke-samples 2 --batch-size 2)
22
+ elif [[ "$mode" == all ]]; then
23
+ log="$out/logs/all.log"
24
+ exit_file="$out/logs/all.exit"
25
+ args=(--model all --batch-size 8)
26
+ else
27
+ echo "usage: $0 [smoke|all]" >&2
28
+ exit 2
29
+ fi
30
+
31
+ rm -f "$exit_file"
32
+ {
33
+ printf 'started_utc=%s\nmode=%s\ngpu=%s\npython=%s\n' \
34
+ "$(date -u +%FT%TZ)" "$mode" "$CUDA_VISIBLE_DEVICES" "$python"
35
+ "$python" -B -u scripts/rescore_unconditional_ppl.py "${args[@]}"
36
+ } >"$log" 2>&1
37
+ status=$?
38
+ printf '%s\n' "$status" >"$exit_file"
39
+ exit "$status"
scripts/smoke_conditional_all.sh ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env bash
2
+ # Conditional smoke pass. It still uses the full 2,048-record C64 schedule,
3
+ # because partial conditional artifacts are not comparable to production runs.
4
+ set -uo pipefail
5
+
6
+ SCRIPT_DIR="$(CDPATH= cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd -P)"
7
+ DLB_ROOT="${DLB_ROOT:-$(CDPATH= cd -- "$SCRIPT_DIR/.." && pwd -P)}"
8
+ PYTHON_BIN="${DLB_PYTHON:-python}"
9
+ MATRIX="${DLB_ROOT}/results/conditional/matrix/smoke.tsv"
10
+ if [[ "${1:-}" == "--help" ]]; then
11
+ printf 'Usage: %s\n' "$0"
12
+ exit 0
13
+ fi
14
+ mkdir -p "$DLB_ROOT/results/conditional/matrix" "$DLB_ROOT/results/logs"
15
+ PYTHONPATH="$DLB_ROOT/src${PYTHONPATH:+:$PYTHONPATH}" "$PYTHON_BIN" -m dlb.conditional_matrix \
16
+ --root "$DLB_ROOT" --output "$MATRIX" || exit $?
17
+
18
+ status=0
19
+ while IFS=$'\t' read -r task_id category model dataset steps sample_count seed environment adapter source provenance protocol conditioning_manifest conditioning_manifest_sha256 sample_dir metrics_path timing_path; do
20
+ [[ "$task_id" == "task_id" || -z "$task_id" ]] && continue
21
+ echo "CONDITIONAL SMOKE $task_id"
22
+ "$SCRIPT_DIR/run_conditional_one.sh" --model "$model" --dataset "$dataset" --steps "$steps" \
23
+ --seed "$seed" --results-root "$DLB_ROOT/results/conditional/smoke"
24
+ if (($? != 0)); then status=1; fi
25
+ done < <(tail -n +3 "$MATRIX")
26
+ exit "$status"
verify_duo_mdlm.log ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ {"cuda_available": true, "environment": "dlb-duo", "imports": {"datasets": true, "einops": true, "flash_attn": true, "fsspec": true, "h5py": true, "huggingface_hub": true, "hydra": true, "lightning": true, "numpy": true, "omegaconf": true, "requests": true, "rich": true, "scipy": true, "timm": true, "tokenizers": true, "torchmetrics": true, "torchvision": true, "tqdm": true, "transformers": true, "triton": true, "wandb": true}, "python": "3.12.13", "torch": "2.5.1", "torch_cuda": "12.4"}
2
+ {"cuda_available": true, "environment": "dlb-mdlm", "imports": {"causal_conv1d": true, "datasets": true, "einops": true, "flash_attn": true, "fsspec": true, "huggingface_hub": true, "hydra": true, "lightning": true, "mamba_ssm": true, "numpy": true, "omegaconf": true, "requests": true, "rich": true, "timm": true, "tokenizers": true, "torchmetrics": true, "transformers": true, "wandb": true}, "python": "3.9.23", "torch": "2.5.1", "torch_cuda": "12.4"}