Skip to content

Commit 148b574

Browse files
orangetincsris
authored andcommitted
Add argument to offload model from memory to disk
1 parent 78f970f commit 148b574

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

environment.yml

+1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ dependencies:
2020
- torchaudio=0.13.1
2121
- torchvision=0.14.1
2222
- pip:
23+
- accelerate==0.17.1
2324
- datasets==2.10.1
2425
- loguru==0.6.0
2526
- netifaces==0.11.0

pretrained/GPT-NeoX-20B/prepare.py

+10-1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
help='model-name')
1313
parser.add_argument('--save-dir', type=str, default=DIR,
1414
help='model-name')
15+
parser.add_argument('--offload-dir', type=str, default=None,
16+
help='directory to offload from memory')
1517
args = parser.parse_args()
1618

1719
if not os.path.exists(args.save_dir):
@@ -24,7 +26,14 @@
2426
config.save_pretrained(save_path)
2527
tokenizer = AutoTokenizer.from_pretrained(args.model_name)
2628
tokenizer.save_pretrained(save_path)
27-
model = AutoModelForCausalLM.from_pretrained(args.model_name, torch_dtype=torch.float16)
29+
30+
# offload model from memory to disk if offload-dir is specified
31+
if args.offload_dir is not None:
32+
if not os.path.exists(args.offload_dir):
33+
os.mkdir(args.offload_dir)
34+
model = AutoModelForCausalLM.from_pretrained(args.model_name, torch_dtype=torch.float16, device_map="auto", offload_folder=args.offload_dir)
35+
else:
36+
model = AutoModelForCausalLM.from_pretrained(args.model_name, torch_dtype=torch.float16)
2837

2938
item = {}
3039
item['embed_in.weight'] = model.gpt_neox.embed_in.weight

0 commit comments

Comments
 (0)