fix yi vl vllm infer

Former-commit-id: de54e5d7ec06dd7c20ec82c9ff032fc16cd50244
This commit is contained in:
hiyouga
2024-05-15 19:25:48 +08:00
parent 096677b989
commit 40e3d3fbdd
16 changed files with 113 additions and 24 deletions

View File

@@ -1,5 +1,5 @@
from types import MethodType
from typing import TYPE_CHECKING, Optional
from typing import TYPE_CHECKING, Dict, Optional
from transformers import Trainer
@@ -9,6 +9,7 @@ from ..utils import create_custom_optimzer, create_custom_scheduler
if TYPE_CHECKING:
import torch
from transformers import ProcessorMixin
from ...hparams import FinetuningArguments
@@ -21,9 +22,12 @@ class CustomTrainer(Trainer):
Inherits Trainer for custom optimizer.
"""
def __init__(self, finetuning_args: "FinetuningArguments", **kwargs) -> None:
def __init__(
self, finetuning_args: "FinetuningArguments", processor: Optional["ProcessorMixin"], **kwargs
) -> None:
super().__init__(**kwargs)
self.finetuning_args = finetuning_args
self.processor = processor
if finetuning_args.use_badam:
from badam import clip_grad_norm_for_sparse_tensor
@@ -39,3 +43,9 @@ class CustomTrainer(Trainer):
) -> "torch.optim.lr_scheduler.LRScheduler":
create_custom_scheduler(self.args, num_training_steps, optimizer)
return super().create_scheduler(num_training_steps, optimizer)
def _save(self, output_dir: Optional[str] = None, state_dict: Optional[Dict[str, "torch.Tensor"]] = None) -> None:
super()._save(output_dir, state_dict)
if self.processor is not None:
output_dir = output_dir if output_dir is not None else self.args.output_dir
getattr(self.processor, "image_processor").save_pretrained(output_dir)