mirror of
https://github.com/hiyouga/LLaMA-Factory.git
synced 2025-08-23 14:22:51 +08:00
fix save function
Former-commit-id: d2f18197e379601a60fa878af975c68d7c8b9648
This commit is contained in:
parent
42c78bf591
commit
daf81288a1
@ -1,6 +1,6 @@
|
|||||||
import os
|
import os
|
||||||
import torch
|
import torch
|
||||||
from typing import Dict
|
from typing import Dict, Optional
|
||||||
|
|
||||||
from transformers.trainer import WEIGHTS_NAME, WEIGHTS_INDEX_NAME
|
from transformers.trainer import WEIGHTS_NAME, WEIGHTS_INDEX_NAME
|
||||||
from transformers.modeling_utils import load_sharded_checkpoint
|
from transformers.modeling_utils import load_sharded_checkpoint
|
||||||
@ -12,12 +12,12 @@ from llmtuner.extras.logging import get_logger
|
|||||||
logger = get_logger(__name__)
|
logger = get_logger(__name__)
|
||||||
|
|
||||||
|
|
||||||
def get_state_dict(model: torch.nn.Module) -> Dict[str, torch.Tensor]: # get state dict containing trainable parameters
|
def get_state_dict(model: torch.nn.Module, trainable_only: Optional[bool] = True) -> Dict[str, torch.Tensor]:
|
||||||
state_dict = model.state_dict()
|
state_dict = model.state_dict()
|
||||||
filtered_state_dict = {}
|
filtered_state_dict = {}
|
||||||
|
|
||||||
for k, v in model.named_parameters():
|
for k, v in model.named_parameters():
|
||||||
if v.requires_grad:
|
if (not trainable_only) or v.requires_grad:
|
||||||
filtered_state_dict[k] = state_dict[k].cpu().clone().detach()
|
filtered_state_dict[k] = state_dict[k].cpu().clone().detach()
|
||||||
|
|
||||||
return filtered_state_dict
|
return filtered_state_dict
|
||||||
|
@ -56,7 +56,7 @@ class PeftTrainer(Seq2SeqTrainer):
|
|||||||
backbone_model.config.use_cache = True
|
backbone_model.config.use_cache = True
|
||||||
backbone_model.save_pretrained(
|
backbone_model.save_pretrained(
|
||||||
output_dir,
|
output_dir,
|
||||||
state_dict=get_state_dict(backbone_model),
|
state_dict=get_state_dict(backbone_model, trainable_only=(self.finetuning_args.finetuning_type != "full")),
|
||||||
safe_serialization=self.args.save_safetensors
|
safe_serialization=self.args.save_safetensors
|
||||||
)
|
)
|
||||||
backbone_model.config.use_cache = False
|
backbone_model.config.use_cache = False
|
||||||
|
Loading…
x
Reference in New Issue
Block a user