Pull Request已成功合入, 合并人@ascend-robot
(感谢 chenruijie 的贡献)用户要求我根据PR信息生成一个变更摘要。让我分析PR标题、描述、变更文件和补丁。
PR标题:[Bugfix]命令行参数优化与help提示优化
这个PR涉及以下变更:
-
CLI参数标准化:将snake_case长选项(如
--model_path)改为kebab-case(如--model-path),旧的snake_case作为隐藏兼容别名保留,会触发弃用警告,但不在--help中显示。 -
新增
--version/-V参数:显示版本信息,包括MindStudio Logo、Git commit hash、Copyright、License。 -
新增统一日志开关:
--log-level、-v/--verbose、-q/--quiet,并按冲突裁决规则生效。 -
布尔参数
--trust-remote-code改为flag用法:兼容旧的True/False值写法。 -
带值参数补齐语义化取值占位符(metavar)。
-
帮助信息补全:含用途、必填参数清单、示例、默认值标注。
-
优化帮助formatter:
--help仅展示规范名、隐藏旧别名。
现在让我从补丁中梳理出具体变更:
文件1: msmodelslim/cli/__main__.py(+574 -55,主要变更)
主要新增内容:
DEPRECATED_ALIASES字典:将旧的snake_case选项映射到新的kebab-case规范名CANONICAL_LONG_OPTIONS集合:定义在--help中显示的规范长选项_repo_root()函数:返回仓库根目录_get_version()函数:获取已安装包版本_get_git_hash()函数:获取git commit hash_print_version()函数:打印统一版本横幅_UnifiedHelpFormatter类:自定义help格式化器,隐藏弃用/非规范选项别名_add_log_level_args()函数:添加统一日志级别/详细程度开关_apply_log_level()函数:解析生效的日志级别_parse_timeout()函数:解析超时值_warn_deprecated()函数:对旧选项发出一次性弃用警告
主要修改:
main()函数大量重写:- 新增
--version/-V参数处理(顶级) - 在解析前对旧选项发出弃用警告
- 使用
_UnifiedHelpFormatter - 所有子命令(quant、analyze、tune)的参数改为kebab-case,旧名作为别名
- 为所有参数添加metavar
- 所有子命令新增
description和epilog - 所有子命令新增
_add_log_level_args --trust-remote-code改为nargs='?',const=True的flag用法--timeout使用_parse_timeout- 新增
--device-id和--device-ids参数
- 新增
文件2: msmodelslim/cli/auto_tuning/__main__.py(+11 -1)
- 新增对
args.device_ids和args.device_id的处理 - 当
timeout为int时转换为timedelta
文件3: msmodelslim/cli/naive_quantization/__main__.py(+4 -0)
- 新增对
args.device_ids和args.device_id的处理
现在我来总结:
变更摘要
本次变更旨在依据《MindStudio 工具链命令行统一规范化设计方案》,将 msmodelslim CLI 的参数体系收敛到统一规范。核心改动包括:长选项从 snake_case 统一为 kebab-case,旧写法保留为隐藏兼容别名并触发弃用告警;新增顶层 --version / -V 参数与统一日志开关(--log-level、-v / --verbose、-q / --quiet);布尔参数 --trust-remote-code 改为 flag 用法;为所有带值参数补齐 metavar 占位符;升级帮助信息格式化器,使 --help 仅展示规范名并隐藏旧别名,同时补全各子命令的描述、必填参数清单与使用示例。
主要改动
- CLI 参数 kebab-case 规范化与向后兼容:在
__main__.py中新增DEPRECATED_ALIASES映射表和CANONICAL_LONG_OPTIONS集合,将所有子命令(quant、analyze、tune)的长选项从 snake_case(如--model_path)改为 kebab-case(如--model-path),旧写法通过_warn_deprecated()触发一次性弃用警告但仍可解析 - 新增
_UnifiedHelpFormatter帮助格式化器:自定义argparse.RawDescriptionHelpFormatter子类,覆写_format_action_invocation方法,使--help输出仅展示规范长选项名与短选项,隐藏弃用别名,确保显示拼写稳定 - 新增
--version/-V与版本打印功能:在main()中新增顶层--version参数处理,配合_get_version()、_get_git_hash()、_print_version()函数,输出包含 MindStudio Logo、msmodelslim 版本号、Git commit hash、Copyright 和 License 的统一版本横幅 - 新增统一日志开关:通过
_add_log_level_args()为quant、analyze、tune三个子命令统一注入--log-level、-v/--verbose、-q/--quiet参数,并由_apply_log_level()按优先级裁决生效(--log-level优先,其次--verbose/--debug→ debug,--quiet→ error) - 子命令帮助信息补全与参数语义化:为
quant、analyze(含linear、layer、attn)、tune子命令补全description、epilog(含使用示例与输出说明),所有带值参数统一添加metavar占位符(如<MODEL_TYPE>、<PATH>),--trust-remote-code改为nargs='?'的 flag 用法并兼容旧 True/False 值写法 --device-id/--device-ids参数拆分与--timeout语义化:在quant和tune子命令中新增--device-id(单设备)和--device-ids(多设备列表)参数,--timeout改为接收整数秒数(通过_parse_timeout兼容旧时长字符串),并在auto_tuning/__main__.py和naive_quantization/__main__.py中增加对应的device_ids/device_id取值逻辑及 int 到timedelta的转换


Pull Request 已合并或已关闭。
If you want to solve this problem, you can click here to do it in the FAQs.


Pull Request 已合并或已关闭。
If you want to solve this problem, you can click here to do it in the FAQs.


Pull Request 已合并或已关闭。
If you want to solve this problem, you can click here to do it in the FAQs.


PR 提交说明
提交前请阅读 贡献指南,开发者文档:模型接入指南
PR 标题前缀:[Feature]、[Bugfix]、[Doc]、[Test](与 CONTRIBUTING 一致)
1. 影响面评估
接口变更(按需): 有
--topk → --top_k、--calib_dataset → --calibration_dataset、--pattern → --patterns、--tag → --tags
旧 snake_case 写法保留为隐藏兼容别名,仍可解析但触发弃用告警;不在 --help 中展示
新增顶层 --version / -V 参数
新增统一日志开关 --log_level、-v/--verbose、-q/--quiet
布尔参数 --trust_remote_code 改为 flag 用法(兼容旧 True/False 值写法)
输出件变更(按需): 无
非兼容变更(按需): 无
SIG 评审结论(按需): 无
2. 修改描述
修改背景(可选):
当前 msmodelslim CLI 参数命名与 MindStudio 工具链其他工具不一致(snake_case、缺少 --version、帮助信息不完整),导致用户跨工具学习成本高、AI Agent 难以自动化调用
修改目的:
依据《MindStudio 工具链命令行统一规范化设计方案》,将 msmodelslim 的 CLI 参数体系收敛到统一规范(kebab-case 长选项、--version、统一日志开关、统一帮助信息),同时通过隐藏兼容别名保证存量脚本零中断。
修改内容:
cli:长选项统一为 kebab-case,旧 snake_case 降级为隐藏兼容别名并触发一次性弃用告警
cli:新增顶层 --version / -V 版本查询参数(含 MindStudio Logo、Git commit hash、Copyright、License)
cli:新增统一日志开关 --log-level {debug,info,warning,error}、-v/--verbose、-q/--quiet,并按冲突裁决规则生效
cli:布尔参数 --trust-remote-code 改为 flag 用法(兼容旧 True/False 值写法)
cli:带值参数补齐语义化取值占位符(metavar)
cli:帮助信息补全,含用途、必填参数清单、示例、默认值标注
cli:优化帮助 formatter,--help 仅展示规范名、隐藏旧别名
(在此填写)
概念域参考(填写提示):
3. 功能验证
冒烟由 CI 门禁检查,无需填写「冒烟是否通过」。
复现步骤(可选):
msmodelslim --version msmodelslim --help msmodelslim quant --help msmodelslim analyze linear --help msmodelslim tune --help # 旧别名弃用告警验证 msmodelslim quant --model_path ./dummy --save_path ./dummy-out --model_type Qwen2.5-7B-Instruct --help4. 自检(请逐项确认,不适用标 N/A)
典型安全编码问题
DT