From 2c78cf692882709323ccdbab011325f734ae1146 Mon Sep 17 00:00:00 2001 From: ModelHub XC Date: Fri, 26 Jun 2026 12:38:15 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=EF=BC=8C=E7=94=B1ModelHub=20XC=E7=A4=BE=E5=8C=BA=E6=8F=90?= =?UTF-8?q?=E4=BE=9B=E6=A8=A1=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Model: alv001/MiniGpt-4-7B Source: Original Platform --- .gitattributes | 34 ++++++++++ README.md | 40 ++++++++++++ config.json | 23 +++++++ configuration.json | 11 ++++ generation_config.json | 7 ++ ms_wrapper.py | 106 +++++++++++++++++++++++++++++++ pytorch_model-00001-of-00002.bin | 3 + pytorch_model-00002-of-00002.bin | 3 + pytorch_model.bin.index.json | 3 + requirements.txt | 49 ++++++++++++++ special_tokens_map.json | 23 +++++++ tokenizer.model | 3 + tokenizer_config.json | 33 ++++++++++ 13 files changed, 338 insertions(+) create mode 100644 .gitattributes create mode 100644 README.md create mode 100644 config.json create mode 100644 configuration.json create mode 100644 generation_config.json create mode 100644 ms_wrapper.py create mode 100644 pytorch_model-00001-of-00002.bin create mode 100644 pytorch_model-00002-of-00002.bin create mode 100644 pytorch_model.bin.index.json create mode 100644 requirements.txt create mode 100644 special_tokens_map.json create mode 100644 tokenizer.model create mode 100644 tokenizer_config.json diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..3a41b31 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,34 @@ +*.7z filter=lfs diff=lfs merge=lfs -text +*.arrow filter=lfs diff=lfs merge=lfs -text +*.bin filter=lfs diff=lfs merge=lfs -text +*.bin.* filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.ftz filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.h5 filter=lfs diff=lfs merge=lfs -text +*.joblib filter=lfs diff=lfs merge=lfs -text +*.lfs.* filter=lfs diff=lfs merge=lfs -text +*.model filter=lfs diff=lfs merge=lfs -text +*.msgpack filter=lfs diff=lfs merge=lfs -text +*.onnx filter=lfs diff=lfs merge=lfs -text +*.ot filter=lfs diff=lfs merge=lfs -text +*.parquet filter=lfs diff=lfs merge=lfs -text +*.pb filter=lfs diff=lfs merge=lfs -text +*.pt filter=lfs diff=lfs merge=lfs -text +*.pth filter=lfs diff=lfs merge=lfs -text +*.rar filter=lfs diff=lfs merge=lfs -text +saved_model/**/* filter=lfs diff=lfs merge=lfs -text +*.tar.* filter=lfs diff=lfs merge=lfs -text +*.tflite filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zstandard filter=lfs diff=lfs merge=lfs -text +*.tfevents* filter=lfs diff=lfs merge=lfs -text +*.db* filter=lfs diff=lfs merge=lfs -text +*.ark* filter=lfs diff=lfs merge=lfs -text +**/*ckpt*data* filter=lfs diff=lfs merge=lfs -text +**/*ckpt*.meta filter=lfs diff=lfs merge=lfs -text +**/*ckpt*.index filter=lfs diff=lfs merge=lfs -text +pytorch_model-00002-of-00002.bin filter=lfs diff=lfs merge=lfs -text +pytorch_model-00001-of-00002.bin filter=lfs diff=lfs merge=lfs -text diff --git a/README.md b/README.md new file mode 100644 index 0000000..8fc0abb --- /dev/null +++ b/README.md @@ -0,0 +1,40 @@ +--- +tasks: +- text-generation +model-type: +- glm +domain: +- nlp +studios: +- AI-ModelScope/MiniGpt-7B-unofficial +frameworks: +- pytorch +backbone: +- transformer +metrics: +- CER +license: Apache License 2.0 +language: +- cn +tags: +- 文本生成 +- text-generation +- Minigpt-7b +- 中英 + +--- +```bash + git clone https://www.modelscope.cn/alv001/minigpt.git +``` +### 须知 +## 无需在量化模型,直接使用即可 +无需在量化模型,直接使用即可 +无需在量化模型,直接使用即可无需在量化模型,直接使用即可 +无需在量化模型,直接使用即可 +无需在量化模型,直接使用即可 +无需在量化模型,直接使用即可 +无需在量化模型,直接使用即可无需在量化模型,直接使用即可 +无需在量化模型,直接使用即可 +无需在量化模型,直接使用即可 +无需在量化模型,直接使用即可 +无需在量化模型,直接使用即可 \ No newline at end of file diff --git a/config.json b/config.json new file mode 100644 index 0000000..06fde26 --- /dev/null +++ b/config.json @@ -0,0 +1,23 @@ +{ + "_name_or_path": "/Users/tdo/Desktop/7b-hf", + "architectures": [ + "LlamaForCausalLM" + ], + "bos_token_id": 1, + "eos_token_id": 2, + "hidden_act": "silu", + "hidden_size": 4096, + "initializer_range": 0.02, + "intermediate_size": 11008, + "max_position_embeddings": 2048, + "model_type": "llama", + "num_attention_heads": 32, + "num_hidden_layers": 32, + "pad_token_id": 0, + "rms_norm_eps": 1e-06, + "tie_word_embeddings": false, + "torch_dtype": "float16", + "transformers_version": "4.29.0.dev0", + "use_cache": true, + "vocab_size": 32000 +} diff --git a/configuration.json b/configuration.json new file mode 100644 index 0000000..58884c4 --- /dev/null +++ b/configuration.json @@ -0,0 +1,11 @@ +{ + "framework": "pytorch", + "task": "text-generation", + "pipeline": { + "type": "minigpt-7b-text-generation" + }, + "preprocessor": { + "type": "minigpt-7b-text-preprocessor" + }, + "allow_remote": true +} \ No newline at end of file diff --git a/generation_config.json b/generation_config.json new file mode 100644 index 0000000..2c05748 --- /dev/null +++ b/generation_config.json @@ -0,0 +1,7 @@ +{ + "_from_model_config": true, + "bos_token_id": 1, + "eos_token_id": 2, + "pad_token_id": 0, + "transformers_version": "4.29.0.dev0" +} diff --git a/ms_wrapper.py b/ms_wrapper.py new file mode 100644 index 0000000..904bd08 --- /dev/null +++ b/ms_wrapper.py @@ -0,0 +1,106 @@ +# Copyright (c) 2022 Zhipu.AI +import copy +from typing import Optional, Tuple, Union, List, Callable, Dict, Any +from transformers.generation.utils import LogitsProcessorList, StoppingCriteriaList, GenerationConfig +from transformers.generation.logits_process import LogitsProcessor + +import torch + +from modelscope.models.base import Model, TorchModel +from modelscope.models.builder import MODELS +from modelscope.outputs import OutputKeys +from modelscope.utils.constant import Tasks +from modelscope.utils.logger import get_logger +from modelscope.pipelines.base import Pipeline +from modelscope.pipelines.builder import PIPELINES +from modelscope.preprocessors import Preprocessor +from modelscope.utils.constant import Tasks + + +from transformers import AutoTokenizer,LlamaForCausalLM +from transformers import PreTrainedModel, PreTrainedTokenizer + + +@MODELS.register_module(Tasks.text_generation, module_name='minigpt7b') +class MiniGPT7bForTextGeneration(TorchModel): + + def __init__(self, model_dir: str, *args, **kwargs): + """initialize the minigpt7b from the `model_dir` path. + + Args: + model_dir (str): the model path. + """ + super().__init__(model_dir, *args, **kwargs) + self.logger = get_logger() + self.device = torch.device("cuda:0") if torch.cuda.is_available() else torch.device("cpu") + # loading tokenizer + self.tokenizer = AutoTokenizer.from_pretrained(model_dir) + # loading model + self.model = LlamaForCausalLM.from_pretrained(model_dir,torch_dtype=torch.float16) + + + + def answer(self, inputs, max_new_tokens=300, num_beams=1, min_length=1, top_p=0.9, + repetition_penalty=1.0, length_penalty=1, temperature=1.0, max_length=2000,device=None): + + input_ids = self.tokenizer(inputs, return_tensors="pt").input_ids + input_ids = input_ids.to(device) + model_ids = self.model.to(device) + outputs = model_ids.generate( + #inputs_embeds=embs, + input_ids, + max_new_tokens=max_new_tokens, + #stopping_criteria=self.stopping_criteria, + num_beams=num_beams, + do_sample=True, + min_length=min_length, + top_p=top_p, + repetition_penalty=repetition_penalty, + length_penalty=length_penalty, + temperature=temperature, + ) + + rets = self.tokenizer.batch_decode(outputs, skip_special_tokens=True, clean_up_tokenization_spaces=False) + + return rets + + + def forward(self, input: Dict) -> Dict: + output = {} + res = self.answer(input,device=self.device) + output['text'] = res + return output + + def quantize(self, bits: int): + self.model = self.model.quantize(bits) + return self + + +@PIPELINES.register_module( + group_key=Tasks.text_generation, + module_name='minigpt-7b-text-generation') +class MiniGPT7bTextGenerationPipeline(Pipeline): + + def __init__(self, + model: Union[Model, str], + preprocessor: [Preprocessor] = None, + *args, + **kwargs): + model = MiniGPT7bForTextGeneration(model) if isinstance(model, + str) else model + self.model = model + self.model.eval() + + super().__init__(model=model, **kwargs) + + def preprocess(self, inputs, **preprocess_params) -> Dict[str, Any]: + return inputs + + # define the forward pass + def forward(self, inputs: Dict, **forward_params) -> Dict[str, Any]: + return self.model(inputs) + + # format the outputs from pipeline + def postprocess(self, input, **kwargs) -> Dict[str, Any]: + return input + \ No newline at end of file diff --git a/pytorch_model-00001-of-00002.bin b/pytorch_model-00001-of-00002.bin new file mode 100644 index 0000000..4d9e43b --- /dev/null +++ b/pytorch_model-00001-of-00002.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5ed572be140240b212049a3e791271eed8a04c40bc732c91a4da4b1469db23b1 +size 9976634558 diff --git a/pytorch_model-00002-of-00002.bin b/pytorch_model-00002-of-00002.bin new file mode 100644 index 0000000..7c7e42c --- /dev/null +++ b/pytorch_model-00002-of-00002.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d9382da358f0ec38c4fca3bcf1e3e65274ae4c78090e0775b4bb4dea6a518e08 +size 3500315539 diff --git a/pytorch_model.bin.index.json b/pytorch_model.bin.index.json new file mode 100644 index 0000000..3056e5c --- /dev/null +++ b/pytorch_model.bin.index.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aca3c1facc89d12311a667c32e85ac86e625990992ea8a189e3b036ba371b931 +size 26788 diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..aeeb192 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,49 @@ +accelerate==0.16.0 +aiohttp==3.8.4 +aiosignal==1.3.1 +async-timeout==4.0.2 +attrs==22.2.0 +bitsandbytes==0.37.0 +cchardet==2.1.7 +chardet==5.1.0 +contourpy==1.0.7 +cycler==0.11.0 +filelock==3.9.0 +fonttools==4.38.0 +frozenlist==1.3.3 +huggingface-hub==0.13.4 +importlib-resources==5.12.0 +kiwisolver==1.4.4 +matplotlib==3.7.0 +multidict==6.0.4 +openai==0.27.0 +packaging==23.0 +psutil==5.9.4 +pycocotools==2.0.6 +pyparsing==3.0.9 +python-dateutil==2.8.2 +pyyaml==6.0 +regex==2022.10.31 +tokenizers==0.13.3 +tqdm==4.64.1 +transformers==4.28.0 +timm==0.6.13 +spacy==3.5.1 +webdataset==0.2.48 +scikit-learn==1.2.2 +scipy==1.10.1 +yarl==1.8.2 +zipp==3.14.0 +omegaconf==2.3.0 +opencv-python==4.7.0.72 +iopath==0.1.10 +decord==0.6.0 +tenacity==8.2.2 +peft +pycocoevalcap +sentence-transformers +umap-learn +notebook +gradio==3.24.1 +gradio-client==0.0.8 +wandb diff --git a/special_tokens_map.json b/special_tokens_map.json new file mode 100644 index 0000000..d85ba6c --- /dev/null +++ b/special_tokens_map.json @@ -0,0 +1,23 @@ +{ + "bos_token": { + "content": "", + "lstrip": false, + "normalized": true, + "rstrip": false, + "single_word": false + }, + "eos_token": { + "content": "", + "lstrip": false, + "normalized": true, + "rstrip": false, + "single_word": false + }, + "unk_token": { + "content": "", + "lstrip": false, + "normalized": true, + "rstrip": false, + "single_word": false + } +} diff --git a/tokenizer.model b/tokenizer.model new file mode 100644 index 0000000..6c00c74 --- /dev/null +++ b/tokenizer.model @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9e556afd44213b6bd1be2b850ebbbd98f5481437a8021afaf58ee7fb1818d347 +size 499723 diff --git a/tokenizer_config.json b/tokenizer_config.json new file mode 100644 index 0000000..400e3de --- /dev/null +++ b/tokenizer_config.json @@ -0,0 +1,33 @@ +{ + "add_bos_token": true, + "add_eos_token": false, + "bos_token": { + "__type": "AddedToken", + "content": "", + "lstrip": false, + "normalized": true, + "rstrip": false, + "single_word": false + }, + "clean_up_tokenization_spaces": false, + "eos_token": { + "__type": "AddedToken", + "content": "", + "lstrip": false, + "normalized": true, + "rstrip": false, + "single_word": false + }, + "model_max_length": 1000000000000000019884624838656, + "pad_token": null, + "sp_model_kwargs": {}, + "tokenizer_class": "LlamaTokenizer", + "unk_token": { + "__type": "AddedToken", + "content": "", + "lstrip": false, + "normalized": true, + "rstrip": false, + "single_word": false + } +}