Skip to content

Commit a2dd6e0

Browse files
committed
Merge branch 'backup-my-work' into test-safe-import
2 parents c3c2d17 + dbc7893 commit a2dd6e0

15 files changed

Lines changed: 316 additions & 345 deletions

File tree

‎nemo_lm/data/loaders.py‎

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -120,14 +120,14 @@ def get_train_valid_test_num_samples(cfg: ConfigContainer) -> tuple[int, int, in
120120
"""
121121

122122
# Number of train/valid/test samples.
123-
train_samples = cfg.train_config.train_iters * cfg.train_config.global_batch_size
124-
eval_iters = (cfg.train_config.train_iters // cfg.train_config.eval_interval + 1) * cfg.train_config.eval_iters
125-
test_iters = cfg.train_config.eval_iters
123+
train_samples = cfg.train.train_iters * cfg.train.global_batch_size
124+
eval_iters = (cfg.train.train_iters // cfg.train.eval_interval + 1) * cfg.train.eval_iters
125+
test_iters = cfg.train.eval_iters
126126

127127
return (
128128
train_samples,
129-
eval_iters * cfg.train_config.global_batch_size,
130-
test_iters * cfg.train_config.global_batch_size,
129+
eval_iters * cfg.train.global_batch_size,
130+
test_iters * cfg.train.global_batch_size,
131131
)
132132

133133

@@ -178,40 +178,40 @@ def build_train_valid_test_data_loaders(
178178
cfg=cfg, build_train_valid_test_datasets_provider=build_train_valid_test_datasets_provider
179179
)
180180

181-
exit_signal = cfg.train_config.exit_signal
181+
exit_signal = cfg.train.exit_signal
182182

183183
def worker_init_fn(_):
184184
DistributedSignalHandler(exit_signal).__enter__()
185185

186-
maybe_worker_init_fn = worker_init_fn if cfg.train_config.exit_signal_handler_for_dataloader else None
186+
maybe_worker_init_fn = worker_init_fn if cfg.train.exit_signal_handler_for_dataloader else None
187187

188188
# Build dataloders.
189189
train_dataloader = build_pretraining_data_loader(
190190
train_ds,
191191
train_state.consumed_train_samples,
192-
cfg.dataset_config.dataloader_type,
193-
cfg.train_config.micro_batch_size,
194-
cfg.dataset_config.num_workers,
195-
cfg.dataset_config.data_sharding,
192+
cfg.dataset.dataloader_type,
193+
cfg.train.micro_batch_size,
194+
cfg.dataset.num_workers,
195+
cfg.dataset.data_sharding,
196196
worker_init_fn=maybe_worker_init_fn,
197197
collate_fn=train_ds.collate_fn if hasattr(train_ds, "collate_fn") else None,
198-
pin_memory=cfg.dataset_config.pin_memory,
199-
persistent_workers=cfg.dataset_config.persistent_workers,
198+
pin_memory=cfg.dataset.pin_memory,
199+
persistent_workers=cfg.dataset.persistent_workers,
200200
data_parallel_rank=mpu.get_data_parallel_rank(),
201201
data_parallel_size=mpu.get_data_parallel_world_size(),
202202
)
203-
if cfg.train_config.skip_train:
203+
if cfg.train.skip_train:
204204
valid_dataloader = build_pretraining_data_loader(
205205
valid_ds,
206206
0,
207-
cfg.dataset_config.dataloader_type,
208-
cfg.train_config.micro_batch_size,
209-
cfg.dataset_config.num_workers,
210-
cfg.dataset_config.data_sharding,
207+
cfg.dataset.dataloader_type,
208+
cfg.train.micro_batch_size,
209+
cfg.dataset.num_workers,
210+
cfg.dataset.data_sharding,
211211
worker_init_fn=maybe_worker_init_fn,
212212
collate_fn=valid_ds.collate_fn if hasattr(valid_ds, "collate_fn") else None,
213-
pin_memory=cfg.dataset_config.pin_memory,
214-
persistent_workers=cfg.dataset_config.persistent_workers,
213+
pin_memory=cfg.dataset.pin_memory,
214+
persistent_workers=cfg.dataset.persistent_workers,
215215
data_parallel_rank=mpu.get_data_parallel_rank(),
216216
data_parallel_size=mpu.get_data_parallel_world_size(),
217217
)
@@ -220,35 +220,35 @@ def worker_init_fn(_):
220220
valid_ds,
221221
train_state.consumed_valid_samples,
222222
"cyclic",
223-
cfg.train_config.micro_batch_size,
224-
cfg.dataset_config.num_workers,
225-
cfg.dataset_config.data_sharding,
223+
cfg.train.micro_batch_size,
224+
cfg.dataset.num_workers,
225+
cfg.dataset.data_sharding,
226226
worker_init_fn=maybe_worker_init_fn,
227227
collate_fn=valid_ds.collate_fn if hasattr(valid_ds, "collate_fn") else None,
228-
pin_memory=cfg.dataset_config.pin_memory,
229-
persistent_workers=cfg.dataset_config.persistent_workers,
228+
pin_memory=cfg.dataset.pin_memory,
229+
persistent_workers=cfg.dataset.persistent_workers,
230230
data_parallel_rank=mpu.get_data_parallel_rank(),
231231
data_parallel_size=mpu.get_data_parallel_world_size(),
232232
)
233233
test_dataloader = build_pretraining_data_loader(
234234
test_ds,
235235
0,
236-
cfg.dataset_config.dataloader_type,
237-
cfg.train_config.micro_batch_size,
238-
cfg.dataset_config.num_workers,
239-
cfg.dataset_config.data_sharding,
236+
cfg.dataset.dataloader_type,
237+
cfg.train.micro_batch_size,
238+
cfg.dataset.num_workers,
239+
cfg.dataset.data_sharding,
240240
worker_init_fn=maybe_worker_init_fn,
241241
collate_fn=test_ds.collate_fn if hasattr(test_ds, "collate_fn") else None,
242-
pin_memory=cfg.dataset_config.pin_memory,
243-
persistent_workers=cfg.dataset_config.persistent_workers,
242+
pin_memory=cfg.dataset.pin_memory,
243+
persistent_workers=cfg.dataset.persistent_workers,
244244
data_parallel_rank=mpu.get_data_parallel_rank(),
245245
data_parallel_size=mpu.get_data_parallel_world_size(),
246246
)
247247

248248
# Flags to know if we need to do training/validation/testing.
249-
do_train = train_dataloader is not None and cfg.train_config.train_iters > 0
250-
do_valid = valid_dataloader is not None and cfg.train_config.eval_iters > 0
251-
do_test = test_dataloader is not None and cfg.train_config.eval_iters > 0
249+
do_train = train_dataloader is not None and cfg.train.train_iters > 0
250+
do_valid = valid_dataloader is not None and cfg.train.eval_iters > 0
251+
do_test = test_dataloader is not None and cfg.train.eval_iters > 0
252252
flags = torch.tensor([int(do_train), int(do_valid), int(do_test)], dtype=torch.long, device="cuda")
253253

254254
torch.distributed.broadcast(flags, 0)
@@ -285,7 +285,7 @@ def build_train_valid_test_data_iterators(
285285
)
286286

287287
# Build iterators.
288-
dl_type = cfg.dataset_config.dataloader_type
288+
dl_type = cfg.dataset.dataloader_type
289289
assert dl_type in ["single", "cyclic", "external"]
290290

291291
def _get_iterator(dataloader_type, dataloader):
@@ -348,7 +348,7 @@ def setup_data_iterators(
348348
Each element can be a single iterator or a list of iterators if virtual
349349
pipeline parallelism is enabled.
350350
"""
351-
if cfg.model_config.virtual_pipeline_model_parallel_size is not None:
351+
if cfg.model.virtual_pipeline_model_parallel_size is not None:
352352
train_data_iterator = []
353353
valid_data_iterator = []
354354
test_data_iterator = []

‎nemo_lm/models/utils.py‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ def _broadcast(item):
9090
"position_ids": data["position_ids"].cuda(non_blocking=True),
9191
}
9292

93-
if cfg.model_config.pipeline_model_parallel_size == 1:
93+
if cfg.model.pipeline_model_parallel_size == 1:
9494
_broadcast(batch["tokens"])
9595
_broadcast(batch["labels"])
9696
_broadcast(batch["loss_mask"])
@@ -108,8 +108,8 @@ def _broadcast(item):
108108
_broadcast(batch["attention_mask"])
109109

110110
else:
111-
mbs = cfg.train_config.micro_batch_size
112-
seq_length = cfg.model_config.seq_length
111+
mbs = cfg.train.micro_batch_size
112+
seq_length = cfg.model.seq_length
113113
tokens = torch.empty(
114114
(mbs, seq_length),
115115
dtype=torch.int64,
@@ -125,7 +125,7 @@ def _broadcast(item):
125125
dtype=torch.float32,
126126
device=torch.cuda.current_device(),
127127
)
128-
if isinstance(cfg.dataset_config, FinetuningDatasetConfig) or cfg.dataset_config.create_attention_mask:
128+
if isinstance(cfg.dataset, FinetuningDatasetConfig) or cfg.dataset.create_attention_mask:
129129
attention_mask = torch.empty(
130130
(
131131
mbs,
@@ -144,7 +144,7 @@ def _broadcast(item):
144144
device=torch.cuda.current_device(),
145145
)
146146

147-
if cfg.model_config.pipeline_model_parallel_size == 1:
147+
if cfg.model.pipeline_model_parallel_size == 1:
148148
_broadcast(tokens)
149149
_broadcast(labels)
150150
_broadcast(loss_mask)
@@ -199,7 +199,7 @@ def get_batch(
199199
if (not parallel_state.is_pipeline_first_stage()) and (not parallel_state.is_pipeline_last_stage()):
200200
return None, None, None, None, None
201201

202-
if isinstance(cfg.dataset_config, FinetuningDatasetConfig):
202+
if isinstance(cfg.dataset, FinetuningDatasetConfig):
203203
batch = get_batch_from_iterator(data_iterator)
204204
else:
205205
# get batches based on the TP rank you are on

0 commit comments

Comments
 (0)