From e1956f9f4613a107fcd264823fc7a10d2310487f Mon Sep 17 00:00:00 2001 From: "wenmeng.zwm" Date: Wed, 7 Dec 2022 11:37:27 +0800 Subject: [PATCH 01/10] update audio requirements to use funasr>=0.1.4 --- requirements/audio.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/audio.txt b/requirements/audio.txt index 44b8c6a0..95a38d94 100644 --- a/requirements/audio.txt +++ b/requirements/audio.txt @@ -1,6 +1,6 @@ easyasr>=0.0.2 espnet==202204 -funasr>=0.1.3 +funasr>=0.1.4 h5py inflect keras From b224ec375bc05bef2d000d8b77fc622ee6eacce4 Mon Sep 17 00:00:00 2001 From: "wenmeng.zwm" Date: Wed, 7 Dec 2022 11:50:33 +0800 Subject: [PATCH 02/10] update setup.py --- setup.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/setup.py b/setup.py index d709dadc..5dfafefa 100644 --- a/setup.py +++ b/setup.py @@ -195,8 +195,8 @@ if __name__ == '__main__': long_description_content_type='text/markdown', author='Alibaba ModelScope team', author_email='modelscope@list.alibaba-inc.com', - keywords='', - url='TBD', + keywords='python,nlp,science,cv,speech,multi-modal', + url='https://github.com/modelscope/modelscope', packages=find_packages(exclude=('configs', 'tools', 'demo')), include_package_data=True, classifiers=[ @@ -204,9 +204,10 @@ if __name__ == '__main__': 'License :: OSI Approved :: Apache Software License', 'Operating System :: OS Independent', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.5', - 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', + 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.9', + 'Programming Language :: Python :: 3.10', ], license='Apache License 2.0', tests_require=parse_requirements('requirements/tests.txt'), From 8582d2d32dd4a180803ede0ccac7d11e8d3679c0 Mon Sep 17 00:00:00 2001 From: "wenmeng.zwm" Date: Wed, 7 Dec 2022 11:53:07 +0800 Subject: [PATCH 03/10] bump versionto 1.1.1 and update release time --- modelscope/version.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modelscope/version.py b/modelscope/version.py index 7b0750be..5df99dd8 100644 --- a/modelscope/version.py +++ b/modelscope/version.py @@ -1,5 +1,5 @@ # Make sure to modify __release_datetime__ to release time when making official release. -__version__ = '1.1.0' +__version__ = '1.1.1' # default release datetime for branches under active development is set # to be a time far-far-away-into-the-future -__release_datetime__ = '2022-11-30 16:13:12' +__release_datetime__ = '2022-12-08 00:00:00' From a8f70573a943671cfada42570c49d8b2395b5054 Mon Sep 17 00:00:00 2001 From: "wenmeng.zwm" Date: Wed, 7 Dec 2022 12:33:07 +0800 Subject: [PATCH 04/10] add project description --- README.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/README.md b/README.md index 3d90c7ef..e960b423 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,18 @@ + +
+ +[![PyPI](https://img.shields.io/pypi/v/)](https://pypi.org/project/modelscope/) + +[![license](https://img.shields.io/github/license/modelscope/modelscope.svg)](https://github.com/modelscope/modelscope/blob/master/LICENSE) +[![open issues](https://isitmaintained.com/badge/open/modelscope/modelscope.svg)](https://github.com/modelscope/modelscope/issues) +[![GitHub pull-requests](https://img.shields.io/github/issues-pr/modelscope/modelscope.svg)](https://GitHub.com/modelscope/modelscope/pull/) +[![GitHub latest commit](https://badgen.net/github/last-commit/modelscope/modelscope)](https://GitHub.com/modelscope/modelscope/commit/) + + + + +
+ # Introduction [ModelScope]( https://www.modelscope.cn) is a “Model-as-a-Service” (MaaS) platform that seeks to bring together most advanced machine learning models from the AI community, and to streamline the process of leveraging AI models in real applications. The core ModelScope library enables developers to perform inference, training and evaluation, through rich layers of API designs that facilitate a unified experience across state-of-the-art models from different AI domains. From deaa4245c02d86f61084fc53f23ca8ad5eae3290 Mon Sep 17 00:00:00 2001 From: "wenmeng.zwm" Date: Wed, 7 Dec 2022 12:37:42 +0800 Subject: [PATCH 05/10] add project description --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e960b423..5bd74b6c 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@
-[![PyPI](https://img.shields.io/pypi/v/)](https://pypi.org/project/modelscope/) +[![PyPI](https://img.shields.io/pypi/v/modelscope)](https://pypi.org/project/modelscope/) [![license](https://img.shields.io/github/license/modelscope/modelscope.svg)](https://github.com/modelscope/modelscope/blob/master/LICENSE) [![open issues](https://isitmaintained.com/badge/open/modelscope/modelscope.svg)](https://github.com/modelscope/modelscope/issues) From ac93a82a770451343ca4dbf56ac89eee4be57c70 Mon Sep 17 00:00:00 2001 From: "mulin.lyh" Date: Wed, 7 Dec 2022 13:14:22 +0800 Subject: [PATCH 06/10] [to #46604161]fix: git repository initialize lfs bug Link: https://code.alibaba-inc.com/Ali-MaaS/MaaS-lib/codereview/11005012 --- modelscope/hub/git.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modelscope/hub/git.py b/modelscope/hub/git.py index 7943023b..51474504 100644 --- a/modelscope/hub/git.py +++ b/modelscope/hub/git.py @@ -94,7 +94,7 @@ class GitCommandWrapper(metaclass=Singleton): return False def git_lfs_install(self, repo_dir): - cmd = ['git', '-C', repo_dir, 'lfs', 'install'] + cmd = ['-C', repo_dir, 'lfs', 'install'] try: self._run_git_command(*cmd) return True From d1f4b0509a0a291c63b1e14d02dbef8da150c1f1 Mon Sep 17 00:00:00 2001 From: "wanggui.hwg" Date: Wed, 7 Dec 2022 17:23:52 +0800 Subject: [PATCH 07/10] [to #42322933] Fix bugs for UniTE Link: https://code.alibaba-inc.com/Ali-MaaS/MaaS-lib/codereview/11011725 --- .../nlp/translation_evaluation_pipeline.py | 8 ++++---- tests/pipelines/test_translation_evaluation.py | 16 ++++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/modelscope/pipelines/nlp/translation_evaluation_pipeline.py b/modelscope/pipelines/nlp/translation_evaluation_pipeline.py index bc942342..3ec3ee7d 100644 --- a/modelscope/pipelines/nlp/translation_evaluation_pipeline.py +++ b/modelscope/pipelines/nlp/translation_evaluation_pipeline.py @@ -77,14 +77,14 @@ class TranslationEvaluationPipeline(Pipeline): self.preprocessor.eval_mode = eval_mode return - def __call__(self, input_dict: Dict[str, Union[str, List[str]]], **kwargs): + def __call__(self, input: Dict[str, Union[str, List[str]]], **kwargs): r"""Implementation of __call__ function. Args: - input_dict: The formatted dict containing the inputted sentences. + input: The formatted dict containing the inputted sentences. An example of the formatted dict: ``` - input_dict = { + input = { 'hyp': [ 'This is a sentence.', 'This is another sentence.', @@ -100,7 +100,7 @@ class TranslationEvaluationPipeline(Pipeline): } ``` """ - return super().__call__(input=input_dict, **kwargs) + return super().__call__(input=input, **kwargs) def forward(self, input_ids: List[torch.Tensor]) -> Dict[str, torch.Tensor]: diff --git a/tests/pipelines/test_translation_evaluation.py b/tests/pipelines/test_translation_evaluation.py index 0c73edca..76720ac0 100644 --- a/tests/pipelines/test_translation_evaluation.py +++ b/tests/pipelines/test_translation_evaluation.py @@ -18,7 +18,7 @@ class TranslationEvaluationTest(unittest.TestCase, DemoCompatibilityCheck): @unittest.skipUnless(test_level() >= 0, 'skip test in current test level') def test_run_with_model_name_for_unite_large(self): - input_dict = { + input = { 'hyp': [ 'This is a sentence.', 'This is another sentence.', @@ -34,17 +34,17 @@ class TranslationEvaluationTest(unittest.TestCase, DemoCompatibilityCheck): } pipeline_ins = pipeline(self.task, model=self.model_id_large) - print(pipeline_ins(input_dict)) + print(pipeline_ins(input=input)) pipeline_ins.change_eval_mode(eval_mode=EvaluationMode.SRC) - print(pipeline_ins(input_dict)) + print(pipeline_ins(input=input)) pipeline_ins.change_eval_mode(eval_mode=EvaluationMode.REF) - print(pipeline_ins(input_dict)) + print(pipeline_ins(input=input)) @unittest.skipUnless(test_level() >= 0, 'skip test in current test level') def test_run_with_model_name_for_unite_base(self): - input_dict = { + input = { 'hyp': [ 'This is a sentence.', 'This is another sentence.', @@ -60,13 +60,13 @@ class TranslationEvaluationTest(unittest.TestCase, DemoCompatibilityCheck): } pipeline_ins = pipeline(self.task, model=self.model_id_base) - print(pipeline_ins(input_dict)) + print(pipeline_ins(input=input)) pipeline_ins.change_eval_mode(eval_mode=EvaluationMode.SRC) - print(pipeline_ins(input_dict)) + print(pipeline_ins(input=input)) pipeline_ins.change_eval_mode(eval_mode=EvaluationMode.REF) - print(pipeline_ins(input_dict)) + print(pipeline_ins(input=input)) if __name__ == '__main__': From cc5dd485986617a86ab8b05d18f5b8ed5cd5c212 Mon Sep 17 00:00:00 2001 From: "zhangzhicheng.zzc" Date: Wed, 7 Dec 2022 18:42:29 +0800 Subject: [PATCH 08/10] [to #46619305] add kwargs in init method to allow additional kwargs --- modelscope/models/nlp/T5/text2text_generation.py | 2 +- modelscope/models/nlp/bert/document_segmentation.py | 2 +- modelscope/models/nlp/bert/sentence_embedding.py | 2 +- modelscope/models/nlp/bert/text_classification.py | 2 +- modelscope/models/nlp/ponet/document_segmentation.py | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/modelscope/models/nlp/T5/text2text_generation.py b/modelscope/models/nlp/T5/text2text_generation.py index 0b695589..bead9e25 100644 --- a/modelscope/models/nlp/T5/text2text_generation.py +++ b/modelscope/models/nlp/T5/text2text_generation.py @@ -57,7 +57,7 @@ class T5ForConditionalGeneration(T5PreTrainedModel): r'decoder\.block\.0\.layer\.1\.EncDecAttention\.relative_attention_bias\.weight', ] - def __init__(self, config: T5Config): + def __init__(self, config: T5Config, **kwargs): super().__init__(config) self.model_dim = config.d_model diff --git a/modelscope/models/nlp/bert/document_segmentation.py b/modelscope/models/nlp/bert/document_segmentation.py index 36c39f43..0f2f2880 100644 --- a/modelscope/models/nlp/bert/document_segmentation.py +++ b/modelscope/models/nlp/bert/document_segmentation.py @@ -24,7 +24,7 @@ class BertForDocumentSegmentation(BertPreTrainedModel): _keys_to_ignore_on_load_unexpected = [r'pooler'] - def __init__(self, config): + def __init__(self, config, **kwargs): super().__init__(config) self.num_labels = config.num_labels self.sentence_pooler_type = None diff --git a/modelscope/models/nlp/bert/sentence_embedding.py b/modelscope/models/nlp/bert/sentence_embedding.py index f4c2620e..18cecd3c 100644 --- a/modelscope/models/nlp/bert/sentence_embedding.py +++ b/modelscope/models/nlp/bert/sentence_embedding.py @@ -11,7 +11,7 @@ from .backbone import BertModel, BertPreTrainedModel @MODELS.register_module(Tasks.sentence_embedding, module_name=Models.bert) class BertForSentenceEmbedding(BertPreTrainedModel): - def __init__(self, config): + def __init__(self, config, **kwargs): super().__init__(config) self.config = config setattr(self, self.base_model_prefix, diff --git a/modelscope/models/nlp/bert/text_classification.py b/modelscope/models/nlp/bert/text_classification.py index 32aab7b2..df227064 100644 --- a/modelscope/models/nlp/bert/text_classification.py +++ b/modelscope/models/nlp/bert/text_classification.py @@ -66,7 +66,7 @@ class BertForSequenceClassification(BertPreTrainedModel): weights. """ - def __init__(self, config): + def __init__(self, config, **kwargs): super().__init__(config) self.num_labels = config.num_labels self.config = config diff --git a/modelscope/models/nlp/ponet/document_segmentation.py b/modelscope/models/nlp/ponet/document_segmentation.py index 5e933491..e2cb0812 100644 --- a/modelscope/models/nlp/ponet/document_segmentation.py +++ b/modelscope/models/nlp/ponet/document_segmentation.py @@ -25,7 +25,7 @@ __all__ = ['PoNetForDocumentSegmentation'] class PoNetForDocumentSegmentation(PoNetPreTrainedModel): _keys_to_ignore_on_load_unexpected = [r'pooler'] - def __init__(self, config): + def __init__(self, config, **kwargs): super().__init__(config) self.num_labels = config.num_labels From 1c63578b530b5b77b493b199b33547f7163b5fe9 Mon Sep 17 00:00:00 2001 From: pangda Date: Wed, 7 Dec 2022 18:33:00 +0800 Subject: [PATCH 09/10] fix save_pretrained & load_checkpoint bug in DDP mode Link: https://code.alibaba-inc.com/Ali-MaaS/MaaS-lib/codereview/11012439 * fix save_pretrained & load_checkpoint bug in DDP mode --- modelscope/trainers/hooks/checkpoint_hook.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/modelscope/trainers/hooks/checkpoint_hook.py b/modelscope/trainers/hooks/checkpoint_hook.py index d5925dbe..5e2fedde 100644 --- a/modelscope/trainers/hooks/checkpoint_hook.py +++ b/modelscope/trainers/hooks/checkpoint_hook.py @@ -215,6 +215,10 @@ class CheckpointHook(Hook): # TODO a temp fix to avoid pipeline_name and task mismatch config['pipeline'] = {'type': config['task']} + # remove parallel module that is not JSON serializable + if 'parallel' in config and 'module' in config['parallel']: + del config['parallel']['module'] + class SaveConfig: def __init__(self, output_dir, config): @@ -422,4 +426,5 @@ class BestCkptSaverHook(CheckpointHook): def after_run(self, trainer): if self.restore_best: - self.load_checkpoint(self._best_ckpt_file, trainer) + if is_master(): + self.load_checkpoint(self._best_ckpt_file, trainer) From c396ad556d084e48366b60d204ebf52b73711d77 Mon Sep 17 00:00:00 2001 From: "jinmao.yk" Date: Wed, 7 Dec 2022 19:04:09 +0800 Subject: [PATCH 10/10] fix log format to avoid misunderstanding Link: https://code.alibaba-inc.com/Ali-MaaS/MaaS-lib/codereview/11013023 --- modelscope/pipelines/cv/video_human_matting_pipeline.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modelscope/pipelines/cv/video_human_matting_pipeline.py b/modelscope/pipelines/cv/video_human_matting_pipeline.py index b4e6f2ba..e9a05d84 100644 --- a/modelscope/pipelines/cv/video_human_matting_pipeline.py +++ b/modelscope/pipelines/cv/video_human_matting_pipeline.py @@ -50,7 +50,7 @@ class VideoHumanMattingPipeline(Pipeline): masks = [] rec = [None] * 4 self.model = self.model.to(self.device) - logger.info('matting start using ', self.device) + logger.info('matting start using ' + self.device) with torch.no_grad(): while True: if frame is None: