ModelLink2/tests
2024-09-12 12:35:17 +00:00
..
pipeline !1640 门禁、流水整改三:工具代码框架整合,预留流水打样例子 2024-09-12 12:35:17 +00:00
st !1640 门禁、流水整改三:工具代码框架整合,预留流水打样例子 2024-09-12 12:35:17 +00:00
test_tools !1640 门禁、流水整改三:工具代码框架整合,预留流水打样例子 2024-09-12 12:35:17 +00:00
ut !1640 门禁、流水整改三:工具代码框架整合,预留流水打样例子 2024-09-12 12:35:17 +00:00
conftest.py !1640 门禁、流水整改三:工具代码框架整合,预留流水打样例子 2024-09-12 12:35:17 +00:00
README.md !1641 门禁pipline运行脚本及test相关测试 2024-09-12 07:15:57 +00:00

看护列表

Tests Module Structure Features Scripts Accuracy Throughput Memory
ST Pretrain Mcore TPPPVPP重计算enable_recompute_layers_per_pp_rank llama2_tp2_pp4_vpp2.sh Y Y Y
Mcore CP分布式优化器reuse_fp32_paramrecompute_activation_function, fused_rmsnormfused_swiglufused_ropeoverlap_grad_reduce, overlap_param_gather llama2_tp2_cp4_mem_recompute.sh Y Y Y
Mcore glm_rope, rotary_percent chatglm3_tp1_pp2_rope.sh Y Y Y
Mcore EPCPnum_expertsmoe_router_topkaux_lossmoe_allgathergroup_query_attentionrotary_base mixtral_mcore_tp4_cp2_ep2_ptd.sh Y Y Y
Mcore moe_expert_capacity_factormoe_alltoallpad_to_capacity, topk_softmax_with_capacity gpt4_mcore_tp4_cp2_32k_moe_drop.sh Y Y Y
Mcore enable_high_availability llama2_tp2_pp1_ha_save_ptd.sh Y Y Y
Mcore MLA-AttentionMoeGroupedGemmEPAllgatherDispatcher deepseek_v2_mcore_tp1_pp1_ep8.sh Y Y Y
Mcore post_norm, query_pre_attn_scalar, interleave_sliding_window, add_rmsnorm_offset, input_embeds_norm gemma2_tp8_pp1_ptd.sh Y Y Y
Mcore MOEPPEPDropDPP mixtral_tp1_pp4_ep2_drop_dpp.sh Y Y Y
Legacy TPPPVPPSP全重计算fused_rmsnormfused_swiglufused_ropeoverlap_grad_reduce llama2_tp2_pp4_vpp2_legacy.sh Y Y Y
LoRA Legacy CCLoRA, TP, PP, 全重计算 tune_llama2_tp2_pp4_lora_ptd.sh Y Y Y
CCLoRA单卡 tune_llama2_tp1_pp1_lora_ptd.sh Y Y Y
FullSFT Legacy prompt_type, variable_seq_lengths tune_qwen7b_tp8_pp1_full_ptd.sh Y Y Y
Mcore prompt_type, variable_seq_lengths, VPP tune_llama2_tp2_pp4_vpp2_mcore_full.sh Y Y Y
UT Inference Legacy greedy_search, lora_inference, deterministic_computation, chatglm3_inference test_inference.py Y
Evaluation Legacy mmlu, prompt_mmlu, prompt_boolq, prompt_ceval, qwen2_mmlu, lora_mmlu test_evaluate.py Y
CP Mcore hybrid, ring_attn, ulysses context_parallel Y
ModelModule Mcore rope test_rotary_pos_embedding.py Y
Mcore, Legacy transformer_attention test_attention.py Y
Checkpoint Mcore, Legacy hf2mg, mg2hf, mg2mg; tp, pp, ep, vpp, dpp, lora checkpoint Y
ProcessData Mcore, Legacy pretrain_data_handler, pretrain_merge_datasets process_data Y
instruction_data_handler, instruction_merge_datasets test_process_instruction_data.py Y
instruction_data_alpaca, instruction_data_alpaca_history, instruction_data_sharegpt, instruction_data_openai, test_process_instruction_data_lf.py Y

Pipline

Model Structure Module Test Case Accuracy Throughput Memory
Baichuan2-13B Legacy pretrain baichuan2_13B_tp8_pp1_ptd.sh Y N N
checkpoint_conversion test_convert_weight_from_hf.py Y Y Y
data_process test_process_pretrain_data.py Y N N
inference test_generation.py Y N N
evaluation test_evaluation.py Y N N

开发规则

ST

① 贡献脚本用例请放置于 st/shell_scripts 文件夹下,命名规则为 {模型名}_{切分策略} 或者 {模型名}_{特性名称}llama2_tp2_pp4_vpp2_ptd.sh,请贡献者严格对齐;

② 注意脚本用例中不需要单独重定向log日志收集工作已在 run.sh 中统一管理;

③ 标杆数据请放置于 st/baseline_results 文件夹下,命名保证完全与 shell 脚本对齐,否则自动化脚本执行将扫描不到;

④ 获取标杆数据:通过门禁任务执行获得首次数据,并将结果保存至本地 log 或者 txt 文件中,后通过本地执行 st/st_utils/common.py 中的 transfer_logs_as_json 函数进行提取,最后再连同用例脚本上仓即可;

⑤ 在贡献时候需要考虑最终校验的具体指标,精度、性能、显存,在对应指标空白处填上 Y,如无校验的保留空白即可。

UT

① 建议所有 UT 用例通过分布式 pytest 来拉起,即继承 tests/common.py 文件下的 DistributedTest,指定 world_size,具体参照已有用例即可;

② 建议按照功能特性进行文件夹命名区分,至多不超过两层目录,所有用例以 test 作为命名前缀;

③ 新增用例可以在原有用例基础上做 test_xxx 的补充,尽量保证测试功能的集成性;对于存在 .json 文件的用例,贡献时在 .json 中加入 test_xxx 配置,然后在 .py 中通过 @pytest.mark.parameterize 传入参数、构造用例,请注意 .json 中的 key 值命名需与 .py 中的 test_xxx 保持统一

④ 在贡献时候需要考虑最终校验的具体指标,精度、性能、显存,在对应指标空白处填上 Y,如无校验的保留空白即可。

Pipeline

①贡献脚本用例放置于pipline/的对应模型文件夹下,如baichuan2-13B,文件命名规则为 {模型名}{切分策略} 或者 {模型名}{特性名称}baichuan2_13B_tp8_pp1_ptd.sh,请贡献者严格对齐;

② 注意脚本用例中不需要单独重定向log日志收集工作已在 pipe_run.sh 中进行统一管理;

③ 标杆数据请放置于 pipline/baseline 文件夹下,命名保证完全与 shell 脚本对齐,否则自动化脚本执行将扫描不到;

④ 获取标杆数据:通过门禁任务执行获得首次数据,并将结果保存至本地 log 或者 txt 文件中,后通过本地执行 tests/st/st_utils/common.py 中的 transfer_logs_as_json 函数进行提取,最后再连同用例脚本上仓即可;

⑤ 在贡献时候需要考虑最终校验的具体指标,精度、性能、显存,在对应指标空白处填上 Y,如无校验的保留空白即可。