Skip to content

Commit b1ef8c2

Browse files
authored
feat(transformers): supplement glm4v processor (#1349)
* feat(transformers): suplement glm4v processor * update ms 2.7.0 perf
1 parent 7014647 commit b1ef8c2

File tree

13 files changed

+844
-17
lines changed

13 files changed

+844
-17
lines changed

examples/transformers/glm4v/README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ Provides an open-source version supporting both Chinese and English bilingual us
1515
# Get Started
1616

1717
## Requirements:
18-
| mindspore | ascend driver | firmware | cann tookit/kernel|
19-
|-------------|----------------|----------------| --- |
20-
| 2.5.0/2.6.0 | 24.1.RC3.b080 | 7.5.T11.0.B088 | 8.0.RC3.beta1|
18+
| mindspore | ascend driver | firmware | cann tookit/kernel |
19+
|-------------|----------------|----------------|--------------------|
20+
| 2.6.0/2.7.0 | 24.1.RC3.b080 | 7.5.T11.0.B088 | 8.1.RC1 |
2121

2222
### Installation:
2323
```
@@ -45,5 +45,5 @@ python generate.py
4545
## Inference Speed
4646
| model name | mindspore version | precision* | cards | flash attn | tokens/s |
4747
|:---------------------:|:-----------------:|:--------------:|:---: |:----------:|:----------:|
48-
| THUDM/GLM-4.1V-9B-Thinking | 2.5.0 | bf16 | 1 || 1.38 |
4948
| THUDM/GLM-4.1V-9B-Thinking | 2.6.0 | bf16 | 1 || 1.63 |
49+
| THUDM/GLM-4.1V-9B-Thinking | 2.7.0 | bf16 | 1 || 1.66 |

examples/transformers/glm4v/generate.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
import argparse
22

33
import numpy as np
4-
from transformers import AutoProcessor
54

65
import mindspore as ms
76

8-
from mindone.transformers import Glm4vForConditionalGeneration
7+
from mindone.transformers import AutoProcessor, Glm4vForConditionalGeneration
98

109

1110
def generate(args):

mindone/transformers/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1531,8 +1531,10 @@
15311531
if version.parse(transformers.__version__) >= version.parse("4.53.0"):
15321532
from .models.glm4v import (
15331533
Glm4vForConditionalGeneration,
1534+
Glm4vImageProcessor,
15341535
Glm4vModel,
15351536
Glm4vPreTrainedModel,
1537+
Glm4vProcessor,
15361538
Glm4vTextModel,
15371539
Glm4vVisionModel,
15381540
)

mindone/transformers/integrations/flash_attention.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,9 @@ def flash_attention_forward(
6969
if kwargs.get("is_causal", None) is not None:
7070
kwargs.pop("is_causal")
7171

72+
if not hasattr(module, "is_causal"):
73+
module.is_causal = False
74+
7275
attn_output = _flash_attention_forward(
7376
query,
7477
key,

mindone/transformers/models/auto/image_processing_auto.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@
2727
from typing import TYPE_CHECKING, Dict, Optional, Tuple, Union
2828

2929
# Build the list of all image processors
30+
import transformers
31+
from packaging import version
3032
from transformers import PretrainedConfig
3133
from transformers.dynamic_module_utils import get_class_from_dynamic_module, resolve_trust_remote_code
3234
from transformers.utils import CONFIG_NAME, cached_file
@@ -79,6 +81,10 @@
7981
]
8082
)
8183

84+
85+
if version.parse(transformers.__version__) >= version.parse("4.53.0"):
86+
IMAGE_PROCESSOR_MAPPING_NAMES.update({"glm4v": ("Glm4vImageProcessor",)})
87+
8288
for model_type, image_processors in IMAGE_PROCESSOR_MAPPING_NAMES.items():
8389
slow_image_processor_class, *fast_image_processor_class = image_processors
8490
if not is_vision_available():

mindone/transformers/models/auto/processing_auto.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@
2525
from collections import OrderedDict
2626

2727
# Build the list of all feature extractors
28+
import transformers
29+
from packaging import version
2830
from transformers.configuration_utils import PretrainedConfig
2931
from transformers.dynamic_module_utils import get_class_from_dynamic_module, resolve_trust_remote_code
3032
from transformers.models.auto.tokenization_auto import AutoTokenizer
@@ -71,6 +73,9 @@
7173
]
7274
)
7375

76+
if version.parse(transformers.__version__) >= version.parse("4.53.0"):
77+
PROCESSOR_MAPPING_NAMES.update({"glm4v": "Glm4vProcessor"})
78+
7479
PROCESSOR_MAPPING = _LazyAutoMapping(CONFIG_MAPPING_NAMES, PROCESSOR_MAPPING_NAMES)
7580

7681

mindone/transformers/models/glm4v/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,12 @@
1515
# See the License for the specific language governing permissions and
1616
# limitations under the License.
1717

18+
from .image_processing_glm4v import Glm4vImageProcessor
1819
from .modeling_glm4v import (
1920
Glm4vForConditionalGeneration,
2021
Glm4vModel,
2122
Glm4vPreTrainedModel,
2223
Glm4vTextModel,
2324
Glm4vVisionModel,
2425
)
26+
from .processing_glm4v import Glm4vProcessor

0 commit comments

Comments
 (0)