五步走,两个月炼成!王小川的大模型打造秘籍曝光( 三 )


文章插图
第四步,采用恰当的优化训练策略
训练策略也是模型取得较好结果的重要组成部分 。
例如,初代GPT-3在当时的训练框架下,基于V100训练1750亿参数模型的整体机器利用率大概只有21.3% 。这种极低的利用率会拉长模型训练周期,影响模型迭代进度 。
为更好提升模型训练过程中的机器利用率,-7B针对训练策略也提出了很多优化手段,具体包括:
首先,优化了算子技术,通过应用更有效率的算子提高运算效率,例如Flash-和 apex的,优化后的方法在非近似的基础上可以显著降低模型的显存消耗 。
其次,-7B利用算子切分技术,对部分计算算子进行切分,这样在通信的时候会以更高效的nccl操作进行通信,同时降低内存峰值使用,以进一步提升处理速度 。
同时,-7B还使用了混合精度技术,在不牺牲模型准确性的前提下,加速了计算过程 。
此外,为了进一步提高效率,-7B还采用了通信优化技术,具体包括:利用拓扑感知的集合通信算法避免网络拥堵问题,提高通信效率;根据卡数自适应设置 size,提高带宽利用率;根据模型和集群环境,调优通信原语的触发时机,从而实现计算和通信的有效重叠 。
最后,-7B还自研了一种名为训练容灾的技术 。
训练大模型,需要的时间通常很长,很难保证GPU在训练过程中不出问题,特别是集群训练的时候,单卡硬件或者网络错误会导致整个集群停摆 。因此在训练中断后快速、自动化定位故障、恢复服务非常重要 。
通过训练平台和训练框架的联合优化以及IaaS+PaaS的应用,-7B实现了分钟级的故障定位和任务恢复,从而保证了训练的稳定性和效率 。
第五步,选择合适的模型评价方法
完成数据集构建,对数据集中的语料进行分词并在构建好的模型中进行预训练之后,为了解模型的各方面能力,还需要对模型进行测试和评价 。
不同于微调后的模型直接采用zero-shot(直接给)的评估方式,预训练基座模型通常采取few-shot(给一些示例)的评价方式来评估效果 。
目前,比较权威的几个评估数据集主要有中文数据集C-Eval数据集、、,英文数据集MMLU,代码能力评估集Human Eval和数学能力评估集GSM8K、MATH等 。
其中,C-Eval数据集是最全面的中文基础模型评测数据集,涵盖了52个学科和四个难度的级别;
是以中国高考题作为评测大语言模型能力的数据集,用以评估模型的语言能力和逻辑推理能力;
旨在评估模型在中文环境下,认知和解决问题等相关的任务的能力;
MMLU是一个包含57个多选任务的英文评测数据集,涵盖了初等数学、美国历史、计算机科学、法律等,难度覆盖高中水平到专家水平,是目前主流的LLM评测数据集 。
中文评测方面,-7B在C-Eval、和的综合评估中均获得了优异成绩,不仅远超其他同规模参数的大模型,甚至比某些参数规模更大的模型还要出色 。
在英文能力上,选择MMLU数据集进行评测,-7b的表现在同尺寸上也大幅领先 。
值得一提的是,根据官方的开源协议说明上,-7B开源的推理代码采用了.0协议 。
不同于其他基于LLaMA继续训练(比如IDEA的ziya、链家的BELLE等)无法商用的模型,-7是原生训练的模型,可以自主定义模型权重的开源协议 。
值得称赞的是百川智能采用的是免费可商用协议,比其他需要付费商用有更大的自由度,开发者们可以直接使用预训练模型进行各种实验研究,并完成部署和应用 。
开源VS闭源,哪一种模式最有效?
说完了大模型的训练步骤,最后来谈一谈开源的问题 。