mirror of
https://github.com/modelscope/modelscope.git
synced 2026-07-13 13:59:40 +02:00
Re commit lossing files for flextrain
Link: https://code.alibaba-inc.com/Ali-MaaS/MaaS-lib/codereview/12674746
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
from dataclasses import dataclass, field
|
||||
|
||||
from modelscope import EpochBasedTrainer, MsDataset, TrainingArgs
|
||||
from modelscope import (EpochBasedTrainer, MsDataset, TrainingArgs,
|
||||
build_dataset_from_file)
|
||||
from modelscope.metainfo import Trainers
|
||||
from modelscope.trainers import build_trainer
|
||||
|
||||
@@ -94,14 +95,25 @@ def cfg_modify_fn(cfg):
|
||||
return cfg
|
||||
|
||||
|
||||
dataset = MsDataset.load(args.train_dataset_name)
|
||||
train_dataset = dataset['train']
|
||||
eval_dataset = dataset['validation' if 'validation' in dataset else 'test']
|
||||
if args.dataset_json_file is None:
|
||||
train_dataset = MsDataset.load(
|
||||
args.train_dataset_name,
|
||||
subset_name=args.train_subset_name,
|
||||
split=args.train_split,
|
||||
namespace=args.train_dataset_namespace)
|
||||
validation_dataset = MsDataset.load(
|
||||
args.val_dataset_name,
|
||||
subset_name=args.val_subset_name,
|
||||
split=args.val_split,
|
||||
namespace=args.val_dataset_namespace)
|
||||
else:
|
||||
train_dataset, validation_dataset = build_dataset_from_file(
|
||||
args.dataset_json_file)
|
||||
|
||||
kwargs = dict(
|
||||
model=args.model,
|
||||
train_dataset=train_dataset,
|
||||
eval_dataset=eval_dataset,
|
||||
eval_dataset=validation_dataset,
|
||||
seed=args.seed,
|
||||
work_dir=args.work_dir,
|
||||
cfg_modify_fn=cfg_modify_fn)
|
||||
|
||||
@@ -9,6 +9,9 @@ PYTHONPATH=. torchrun --nproc_per_node $WORLD_SIZE examples/pytorch/text_generat
|
||||
--work_dir './tmp' \
|
||||
--model 'damo/nlp_gpt3_text-generation_1.3B' \
|
||||
--train_dataset_name 'chinese-poetry-collection' \
|
||||
--val_dataset_name 'chinese-poetry-collection' \
|
||||
--train_split 'train' \
|
||||
--val_split 'test' \
|
||||
--preprocessor 'text-gen-jieba-tokenizer' \
|
||||
--src_txt 'text1' \
|
||||
--tgt_txt 'text2' \
|
||||
|
||||
@@ -4,6 +4,9 @@ PYTHONPATH=. torchrun examples/pytorch/text_generation/finetune_text_generation.
|
||||
--task 'text2text-generation' \
|
||||
--model 'damo/nlp_mt5_zero-shot-augment_chinese-base' \
|
||||
--train_dataset_name 'DuReader_robust-QG' \
|
||||
--val_dataset_name 'DuReader_robust-QG' \
|
||||
--train_split 'train' \
|
||||
--val_split 'validation' \
|
||||
--src_txt 'text1' \
|
||||
--tgt_txt 'text2' \
|
||||
--max_epochs 1 \
|
||||
|
||||
@@ -3,6 +3,9 @@ PYTHONPATH=. torchrun examples/pytorch/text_generation/finetune_text_generation.
|
||||
--work_dir './tmp' \
|
||||
--model 'damo/nlp_palm2.0_pretrained_chinese-base' \
|
||||
--train_dataset_name 'DuReader_robust-QG' \
|
||||
--val_dataset_name 'DuReader_robust-QG' \
|
||||
--train_split 'train' \
|
||||
--val_split 'validation' \
|
||||
--src_txt 'text1' \
|
||||
--tgt_txt 'text2' \
|
||||
--max_epochs 1 \
|
||||
|
||||
@@ -155,10 +155,10 @@ class EpochBasedTrainer(BaseTrainer):
|
||||
self.cfg_modify_fn = cfg_modify_fn
|
||||
# add default config
|
||||
merge_cfg(self.cfg)
|
||||
self.cfg = self.rebuild_config(self.cfg)
|
||||
if 'cfg_options' in kwargs:
|
||||
self.cfg.merge_from_dict(kwargs['cfg_options'])
|
||||
self.cfg = update_cfg(self.cfg)
|
||||
self.cfg = self.rebuild_config(self.cfg)
|
||||
|
||||
if isinstance(model, (TorchModel, nn.Module)):
|
||||
self.model = model
|
||||
|
||||
@@ -9,6 +9,7 @@ import json
|
||||
|
||||
from modelscope.trainers.cli_argument_parser import CliArgumentParser
|
||||
from modelscope.utils.config import Config
|
||||
from modelscope.utils.constant import DEFAULT_DATASET_NAMESPACE
|
||||
|
||||
|
||||
def set_flatten_value(values: Union[str, List[str]]):
|
||||
@@ -62,13 +63,13 @@ class DatasetArgs:
|
||||
})
|
||||
|
||||
train_dataset_namespace: str = field(
|
||||
default=None,
|
||||
default=DEFAULT_DATASET_NAMESPACE,
|
||||
metadata={
|
||||
'help': 'The dataset namespace used for training',
|
||||
})
|
||||
|
||||
val_dataset_namespace: str = field(
|
||||
default=None,
|
||||
default=DEFAULT_DATASET_NAMESPACE,
|
||||
metadata={
|
||||
'help': 'The dataset namespace used for evaluating',
|
||||
})
|
||||
@@ -450,7 +451,7 @@ class TrainingArgs(DatasetArgs, TrainArgs, ModelArgs):
|
||||
_unknown[unknown[i].replace('-', '')] = parse_value(unknown[i + 1])
|
||||
args_dict = vars(args)
|
||||
self.manual_args += parser.manual_args
|
||||
|
||||
self._unknown_args.update(_unknown)
|
||||
for key, value in deepcopy(args_dict).items():
|
||||
if key is not None and hasattr(self, key):
|
||||
setattr(self, key, value)
|
||||
|
||||
Reference in New Issue
Block a user