| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
【msmodelslim】【feature】Qwen3-VL-4B-Instruct 适配 W8A8 量化与 tie_word_embeddings 支持 Co-authored-by: ZhangGaoHua<zhanggaohua@huawei.com> # message auto-generated for no-merge-commit merge: !91 merge qwen3_vl_4b into master 【msmodelslim】【feature】Qwen3-VL-4B-Instruct 适配 W8A8 量化与 tie_word_embeddings 支持 Created-by: ZhangGaoHua Commit-by: ZhangGaoHua Merged-by: ascend-robot Description: # Qwen3-VL-4B 量化 PR ## 背景与目标 - 支持 Qwen3-VL-4B-Instruct 的 W8A8 量化与导出。 - Qwen3-VL-4B 使用 tie_word_embeddings=True,lm_head 与 embed_tokens 共享权重。需在加载、QuaRot 与保存全链路正确处理共享权重,保证量化与导出结果正确、可复现。 - 同时完善 deq_scale 的 int64 存储与后处理、文档 ## 修改概览 - **配置与依赖**:在 config/config.ini 中为 qwen3_vl 增加型号配置及 qwen3_vl 的 transformers 依赖(>=4.51.0)。 - **Qwen3-VL-4B 适配**:在 Qwen3VLModelAdapter 中使用 load_state_dict(..., strict=False) 加载权重,对 missing keys 打 warning;从 config/text_config 读取 tie_word_embeddings,若为 True 则调用 model.tie_weights() 并打 info 日志。在 QuaRot 映射 _qwen3_vl_get_rotate_map 中,当 tie 为 True 时不对 lm_head 做 right_rot,避免与已在 pre_run 中旋转的 embed_tokens 重复。 - **保存与 tie**:AscendV1 保存时,在 BufferedSafetensorsWriter 中对共享同一 storage 的 key 通过 _dedupe_shared_storage 去重,优先保留 embed_tokens,其余(如 lm_head.weight)以 clone 写入;共享 storage 时打 warning 。 - **deq_scale int64**:新增 msmodelslim/core/quant_service/modelslim_v1/save/utils/deqscale.py(deqscale2int64);AscendV1 根据 adapter 的全局模型 dtype 为 bf16 时将 deq_scale 写成 int64(见下「显式接口」)。新增独立 example example/deqscale2int64.py 用于已有 checkpoint 的 deq_scale 转 int64 后处理。新增 lab_practice/qwen3_vl/qwen3_vl_4b_w8a8.yaml。 - **显式接口 AscendV1GlobalModelDtypeInterface**:在 msmodelslim/core/quant_service/modelslim_v1/save/interface.py 中新增独立接口类 AscendV1GlobalModelDtypeInterface(抽象方法 get_global_model_torch_dtype() -> torch.dtype),与 AscendV1SaveInterface 并列。由 TransformersModel 与 VLMBaseModelAdapter 实现该接口(实现委托给现有 get_global_torch_dtype());在 model/interface_hub.py 中导出便于 model 层引用。AscendV1 通过 isinstance(adapter, AscendV1GlobalModelDtypeInterface) 与 adapter.get_global_model_torch_dtype() 判断是否为 bf16 以决定 deq_scale 写 int64(_global_torch_dtype_is_bf16),未实现接口的 adapter 走从 config 读取 torch_dtype 的回退逻辑。 - **文档**:更新 docs/zh/dir_structure.md、docs/zh/foundation_model_support_matrix.md;example/multimodal_vlm/Qwen3-VL/README.md 增加 Qwen3-VL 量化方法与 Qwen3-VL-4B-Instruct W8A8 说明。 - **清理**:删除 example/deq_scale_cast.py(由 deqscale2int64 等替代)。 ## 涉及文件 - config/config.ini - lab_practice/qwen3_vl/qwen3_vl_4b_w8a8.yaml - msmodelslim/model/qwen3_vl/model_adapter.py - msmodelslim/model/common/transformers.py - msmodelslim/model/common/vlm_base.py - msmodelslim/model/interface_hub.py - msmodelslim/core/quant_service/modelslim_v1/save/interface.py - msmodelslim/core/quant_service/modelslim_v1/save/ascendv1.py - msmodelslim/core/quant_service/modelslim_v1/save/utils/safetensors.py - msmodelslim/core/quant_service/modelslim_v1/save/utils/deqscale.py - msmodelslim/core/quant_service/modelslim_v1/save/utils/__init__.py - example/deqscale2int64.py - example/README.md - docs/zh/dir_structure.md - docs/zh/foundation_model_support_matrix.md - example/multimodal_vlm/Qwen3-VL/README.md - 删除:example/deq_scale_cast.py See merge request: Ascend/msmodelslim!91 | 5 个月前 | |
【Feature】增加qwen3-vl-embedding量化适配 Co-authored-by: wangyongjun<wangyongjun7@huawei.com> # message auto-generated for no-merge-commit merge: !510 merge add_qwen3_vl_embedding into master 【Feature】增加qwen3-vl-embedding量化适配 Created-by: wangyongjun Commit-by: wangyongjun Merged-by: ascend-robot Description: ## 1. 影响面评估 - **接口变更(按需):** 无 - **输出件变更(按需):** 无 - **非兼容变更(按需):** 无 - **SIG 评审结论(按需):** 无 --- ## 2. 修改描述 - **修改背景(可选):** 300I_Duo卡上支持qwen3-vl-embedding和reranker模型w8a8量化推理 - **修改目的:** qwen3-vl-embedding和reranker支持w8a8量化 - **修改内容:** - msmodelslim/model/qwen3_vl/model_adapter.py:对于qwen3-vl-embedding-2b模型不存在model.safetensors.index.json文件,_get_weight_map函数适配,适配从权重目录中的safetensors文件构造weight_map - lab_practice/qwen3_vl/qwen3_vl_embedding_w8a8.yaml:新增qwen3-vl-embedding和reranker量化最近实践配置文件 - example/multimodal_vlm/Qwen3-VL-Embedding/README.md:新增量化指导说明 - [ ] **涉及代码双合**(关联 PR 链接):后续策略见 MR !510 --- ## 3. 功能验证 - [x] **功能自验** - [ ] **本地自验用例截图**(请勿包含个人信息;可附复现命令) --- ## 4. 自检(请逐项确认,不适用标 N/A) **典型安全编码问题** - [x] **是否已校验外部数据** — N/A - [x] **是否未采集或打印敏感信息** — N/A - [x] **是否已正确设置文件权限** — N/A - [x] **是否充分考虑浮点运算溢出、除零等异常场景** — N/A - [x] **是否已对正则表达式做 ReDos 检查** — N/A **DT** - [x] **是否具备 UT 测试用例看护**(路径:test/cases/model/qwen3_vl/test_model_adapter_qwen3_vl.py:TestQwen3VLModelAdapterGetWeightMap, TestQwen3VLModelAdapterGetWeightMapNull, TestQwen3VLModelAdapterGetWeightMapFallback) - [ ] **是否需要添加冒烟:** 否 See merge request: Ascend/msmodelslim!510 | 1 个月前 | |
【msmodelslim】qwen3 vl 资料 Co-authored-by: ylzzz<yelinzhong@huawei.com> # message auto-generated for no-merge-commit merge: !48 merge ylzzz_3 into master 【msmodelslim】qwen3 vl 资料 Created-by: ylzzz Commit-by: ylzzz Merged-by: ascend-robot Description: qwen3 vl 资料 See merge request: Ascend/msmodelslim!48 | 6 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 5 个月前 | ||
| 1 个月前 | ||
| 6 个月前 |