deepspeedai / deepspeedai/DeepSpeed
[deepspeed checkpointing] AttributeError: 'NoneType' object has no attribute 'numel'
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 43.1k
- Forks
- 5k
- Avg merge
- 4d 15h
- Merged PRs (30d)
- 112
Description
So I took a public GPT-2 class implementation (not Megatron-LM) and I added deepspeed checkpointing to it for all 48 layers.
In my train script for this class, I added the following line:
deepspeed.checkpointing.configure(mpu_=None, deepspeed_config=args.deepspeed_config)
My deepspeed config JSON is as follows:
{
"train_batch_size": 128,
"gradient_accumulation_steps": 8,
"gradient_clipping": 1.0,
"optimizer": {
"type": "adam",
"params": {
"lr": 6.25e-5
}
},
"fp16": {
"enabled": true
},
"zero_optimization": {
"stage": 2,
"cpu_offload": true,
"contiguous_gradients": true,
"overlap_comm": false,
"allgather_bucket_size": 500000000
},
"activation_checkpointing": {
"partition_activations": true,
"contiguous_memory_optimization": true,
"number_checkpoints": 48,
"cpu_checkpointing": true
}
}
When I try running my script, I get the following error:
File "/path/to/my/modeling_gpt2.py", line 221, in forward
encoder_attention_mask)
File "/usr/local/lib/python3.6/dist-packages/deepspeed/runtime/activation_checkpointing/checkpointing.py", line 582, in checkpoint
return CheckpointFunction.apply(function, *args)
File "/usr/local/lib/python3.6/dist-packages/deepspeed/runtime/activation_checkpointing/checkpointing.py", line 376, in forward
partition_size = get_partition_size(item)
File "/usr/local/lib/python3.6/dist-packages/deepspeed/runtime/activation_checkpointing/checkpointing.py", line 275, in get_partition_size
size = item.numel()
AttributeError: 'NoneType' object has no attribute 'numel'
Any ideas what's going on?
@tjruwase @ShadenSmith
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the reported call in modeling_gpt2.py and the traceback path in deepspeed/runtime/activation_checkpointing/checkpointing.py. Inspect the arguments passed through CheckpointFunction.apply and get_partition_size, then reproduce the failure with the supplied checkpointing configuration. Done means identifying the unsupported or missing value and documenting a confirmed fix or usage requirement.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python, pytorch
- Domain
- distributed-systems, machine-learning
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100