# ModelLink **Repository Path**: huiyingc/ModelLink ## Basic Information - **Project Name**: ModelLink - **Description**: 昇腾大模型仓库 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: https://gitee.com/ascend/ModelLink/ - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1205 - **Created**: 2024-07-26 - **Last Updated**: 2024-12-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
简体中文 | English
ModelLink旨在为华为 [昇腾芯片](https://open.codehub.huawei.com/OpenBaize/Ascend/ascendspeed/files?ref=master&filePath=examples%2Fbaichuan%2Fpretrain_baichuan_zero_7B.sh&isFile=true) 上提供端到端的大语言模型方案, 包含模型,算法,以及下游任务。 --- ## ModelLink解决方案概览 当前ModelLink支撑大模型使用功能: * [制作预训练数据集](#jump11)/[制作指令微调数据集](#jump12) * [预训练](#jump13)/[全参微调](#jump14)/[低参微调](#jump15) * [流式推理/人机对话](#jump16) * [评估基线数据集](#jump17) * [加速算法/融合算子/并行策略](#jump18) * [基于昇腾芯片采集Profiling数据](#jump19) * [Huggingface与Megatron-LM权重转换](#jump20) * [基于昇腾芯片的确定性计算功能](#jump21) * [基于昇腾芯片的高可用特性](#jump22) 强化学习等特性持续研发中.... --- ## ModelLink版本维护策略 ModelLink版本有以下五个维护阶段: | **状态** | **时间** | **说明** | | ------------------- | -------- |----------------------------------------------------------------------| | 计划 | 1—3 个月 | 计划特性 | | 开发 | 3 个月 | 开发特性 | | 维护 | 6-12 个月| 合入所有已解决的问题并发布版本,针对不同的ModelLink版本采取不同的维护策略,常规版本和长期支持版本维护周期分别为6个月和12个月 | | 无维护 | 0—3 个月 | 合入所有已解决的问题,无专职维护人员,无版本发布 | | 生命周期终止(EOL) | N/A | 分支不再接受任何修改 | ModelLink已发布版本维护策略: | **ModelLink版本** | **维护策略** | **当前状态** | **发布时间** | **后续状态** | **EOL日期** | |-----------------|-----------|--------|------------|------------------|-----------| | 1.0 | 常规版本 | 维护 | 2024/03/30 | 预计2024/9/30起无维护 | | | 1.1 | 常规版本 | 维护 | 2024/06/30 | 预计2024/12/30起无维护 | | --- ## 配套版本与支持模型 【需要注意模型使用时的配套环境版本,参考如下】 | 软件 | [版本](https://www.hiascend.com/zh/) | | :-----------------------: |:----------------------------------:| | Python | 3.8 | | driver | 在研版本 | | firmware | 在研版本 | | CANN | 在研版本 | | torch | 2.1.0、2.2.0 | | torch_npu | 在研版本 | 【基于现版本我们实测的性能情况统计如下(硬件信息:Atlas 900 A2 PODc)】 下述列表中支持的模型,我们在[examples](./examples/)文件夹中提供了相应的训练脚本和readme说明,里面有详细的模型训练、推理、评估流程。 以下为开启 mc2 加速特性后的实测性能,该特性只在24RC2以上版本支持,本仓库代码层面默认关闭,若要使用,请参考首页[加速算法与融合算子](#加速算法与融合算子)章节模型 | 参数 | 序列 | 集群 | 模式 | 性能 | 参考 | 贡献方 |
---|---|---|---|---|---|---|---|
Aquila | 7B | 2K | 1x8 | BF16 | 2849 | 2874 | 【昇腾】 |
Aquila2 | 7B | 2K | 1x8 | FP16 | 3323 | 2673 | 【社区】 |
34B | 4K | 2x8 | BF16 | 854 | 732 | 【社区】 | |
Baichuan | 7B | 4K | 1x8 | FP16 | 2685 | 2036 | 【昇腾】 |
13B | 4K | 1x8 | FP16 | 1213 | 862 | 【昇腾】 | |
Baichuan2 | 7B | 4K | 1x8 | BF16 | 2664 | 3969 | 【昇腾】 |
13B | 4K | 1x8 | BF16 | 1668 | 2062 | 【昇腾】 | |
Bloom | 7B1 | 2K | 1x8 | FP16 | 2034 | 2525 | 【昇腾】 |
176B | 2K | 12x8 | BF16 | 100 | 107 | 【昇腾】 | |
ChatGLM3 | 6B | 8K | 1x8 | FP16 | 4297 | 4267 | 【社区】 |
CodeLlama | 34B | 4K | 2x8 | BF16 | 837 | 762 | 【社区】 |
InternLM | 7B | 2K | 1x8 | BF16 | 2776 | 2854 | 【昇腾】 |
65B | 2K | 4x8 | BF16 | 341 | 414 | 【昇腾】 | |
LLaMA | 7B | 2K | 1x8 | FP16 | 3600 | 3804 | 【昇腾】 |
13B | 2K | 1x8 | FP16 | 1895 | 2012 | 【昇腾】 | |
33B | 2K | 4x8 | FP16 | 621 | 776 | 【昇腾】 | |
65B | 2K | 4x8 | BF16 | 348 | 426 | 【昇腾】 | |
LLaMA2 | 7B | 4K | 1x8 | BF16 | 4200 | 3850 | 【昇腾】 |
13B | 4K | 1x8 | BF16 | 1990 | 1920 | 【昇腾】 | |
34B | 4K | 2x8 | BF16 | 749 | 796 | 【昇腾】 | |
70B | 4K | 4x8 | BF16 | 420 | 430 | 【昇腾】 | |
LLaMA3 | 8B | 8K | 1x8 | BF16 | 2483 | 2674 | 【昇腾】 |
70B | 8K | 8x8 | BF16 | 283 | 355 | 【昇腾】 | |
Qwen | 7B | 8K | 1x8 | BF16 | 2499 | 2867 | 【昇腾】 |
14B | 2K | 1x8 | BF16 | 1560 | 1578 | 【昇腾】 | |
72B | 8K | 16x8 | BF16 | 285 | 345 | 【昇腾】 | |
Qwen1.5 | 0.5B | 8K | 1x8 | BF16 | 22834 | 25306 | 【社区】 |
1.8B | 8K | 1x8 | BF16 | 13029 | 12181 | 【社区】 | |
4B | 8K | 1x8 | BF16 | 5033 | 5328 | 【社区】 | |
7B | 8K | 1x8 | BF16 | 2862 | 2621 | 【社区】 | |
14B | 8K | 1x8 | BF16 | 1717 | 1702 | 【社区】 | |
32B | 8K | 4x8 | BF16 | 751 | 708 | 【社区】 | |
72B | 8K | 8x8 | BF16 | 301 | 317 | 【昇腾】 | |
Yi | 34B | 4K | 2x8 | BF16 | 809 | 730 | 【社区】 |
Mixtral | 8x7B | 32K | 2x8 | BF16 | 487 | 610 | 【昇腾】 |
Mistral | 7B | 32K | 1x8 | BF16 | 2806 | 2734 | 【昇腾】 |
Gemma | 2B | 8K | 1x8 | BF16 | 6821 | 7602 | 【昇腾】 |
7B | 8K | 1x8 | BF16 | 2938 | 2607 | 【昇腾】 | |
GPT3 | 175B | 2K | 16x8 | FP16 | 153 | -- | 【社区】 |
15B | 2K | 1x8 | FP16 | 1890 | 1840 | 【社区】 | |
Grok1 | 40B | 8K | 2x8 | BFP16 | 1646 | 2057 | 【昇腾】 |
使用场景 | 特性名称 | 具体参数 | Mcore支持 | Legacy支持 |
---|---|---|---|---|
PTD并行 | 张量并行 | --tensor-model-parallel-size | Yes | Yes |
流水线并行 | --pipeline-model-parallel-size | Yes | Yes | |
流水线并行动态划分 | --num-layer-list | Yes | Yes | |
序列并行 | --sequence-parallel | Yes | Yes | |
分布式优化器 | --use-distributed-optimizer | Yes | Yes | |
长序列并行 | 长序列并行 | --context-parallel-size | Yes | No |
多并行方案 | --context-parallel-algo | Yes | No | |
send/recv掩盖加速 | --cp-send-recv-overlap | Yes | No | |
MOE并行 | MOE并行 | --expert-model-parallel-size | Yes | No |
MOE重排通信优化 | --moe-permutation-async-comm | Yes | No | |
融合算子 | Flash attention | --use-flash-attn | Yes | Yes |
Fused rmsnorm | --use-fused-rmsnorm | Yes | Yes | |
Fused swiglu | --use-fused-swiglu | Yes | Yes | |
Fused rotary position embedding | --use-fused-rotary-pos-emb | Yes | Yes | |
Sliding window attention | --sliding-window | Yes | Yes | |
通信 | 梯度reduce通算掩盖 | --overlap-grad-reduce | Yes | Yes |
权重all-gather通算掩盖 | --overlap-param-gather | Yes | No | |
MC2 | --use-mc2 | Yes | Yes |