MiniCPM:揭示端侧大语言模型的无限潜力

技术博客链接:

🔗https://shengdinghu.notion.site/MiniCPM

➤ Github地址:

🔗https://github.com/OpenBMB/MiniCPM

➤ Hugging Face地址:

🔗https://huggingface.co/openbmb/MiniCPM-2B-sft-bf16

1 简介

MiniCPM 是一系列端侧语言大模型,主体语言模型 MiniCPM-2B 具有 2.4B 的非词嵌入参数量。在综合性榜单上与 Mistral-7B 相近(中文、数学、代码能力更优),整体性能超越 Llama2-13B、MPT-30B、Falcon-40B 等模型。在当前最接近用户体感的榜单 MTBench 上,MiniCPM-2B 也超越了 Llama2-70B-Chat、Vicuna-33B、Mistral-7B-Instruct-v0.1、Zephyr-7B-alpha 等众多代表性开源大模型。

我们将完全开源 MiniCPM-2B 的模型参数供学术研究和有限商用,以及训练过程中的所有 Checkpoint 和大部分非专有数据给模型机理研究。

具体而言,我们已开源以下模型

  • 基于 MiniCPM-2B 的指令微调与人类偏好对齐的 MiniCPM-2B-SFT/DPO
  • 基于 MiniCPM-2B 的多模态模型 MiniCPM-V,能力超越基于 Phi-2 的同参数级别多模态模型。‍‍‍‍‍
  • MiniCPM-2B-SFT/DPO 的 Int4 量化版 MiniCPM-2B-SFT/DPO-Int4。
  • 基于 MLC-LLM、LLMFarm 开发的 MiniCPM 手机端程序,文本及多模态模型均可在手机端进行推理。

模型整体性能:

局限性

  • 受限于模型规模,模型可能出现幻觉性问题。其中由于 DPO 模型生成的回复内容更长,更容易出现幻觉。我们也将持续进行 MiniCPM 模型的迭代改进;
  • 为了保证在学术研究用途上模型的通用性,我们未对模型进行任何身份认同训练。同时由于我们用 ShareGPT 开源语料作为部分训练数据,模型可能会输出类似 GPT 系列模型的身份认同信息;
  • 受限于模型规模,模型的输出受到提示词(prompt)的影响较大,可能多次尝试产生不一致的结果;
  • 受限于模型容量,模型的知识记忆较不准确,后续我们将结合 RAG 方法来增强模型的知识记忆能力。

2 模型沙盒实验(Model Sandbox)

大模型的实验成本高昂,难以在不进行配置调优的情况下得到最优秀的大模型性能。

借鉴 μΡ 等优秀的前人工作,我们提出在小模型上进行广泛的实验,通过可迁移的配置,获得大模型的最优训练方法。MiniCPM 本身,即为模型沙盒实验的成果。

我们进行了 Hyper-parameters、Batch size、Learning Rate、Learning Rate Scheduler、Data Strategy 五个方面的模型沙盒研究。

  • 超参稳定的模型规模扩增

超参数对模型的性能具有重大影响,在传统训练方法中,需要对每个模型进行超参数调整,这对于大模型并不现实。借鉴 μP 的方法,我们对模型的各参数模块之间进行了连接权重的调整、以及对模型初始化的调整。部分调整接近 Cerebras-GPT。

整体方案如下:

上述操作的具体参数由近 400 次在 0.009B 模型规模上的贝叶斯参数搜索得到。

  • 最优 Batchsize

Batchsize 决定了模型的收敛速度和消耗计算资源的平衡。Batchsize 过大,达到一定的损失消耗的数据量和计算量都会很大,而 batchsize 过小,则需要消耗过多的训练步数,且有可能损失函数下降有限。在 2020 年 OpenAI 的开山之作中,OpenAI 研究了损失函数随 token 数变化的规律。在他们的实验中,他们将认为消耗更多的步数等价于消耗更多的时间,在这种假设下,OpenAI 定义了临界 Batchsize(Critical Batchsize),使得达到一定的损失,既不消耗过多 step,也不消耗过多 token。然而我们观察到在利用当前以 A100 为主的计算资源,结合 gradient checkpointing 策略进行训练时,通常计算速度(而不是显存)是瓶颈,这意味着在相同机器数量下,多一倍 Batchsize 几乎等同于慢一倍的单步时间。基于这个观察,我们取消了对“不消耗过多 step ”的追求,而转向追求用最少的token量达到最低的 loss。

我们在 0.009B,0.036B,0.17B 的模型上分别进行了 6 个 batchsize 的训练实验,将结果记录如图下。

我们观察到了最优 batchsize 随着 C4 数据集上的 loss 的偏移规律(图中的红线)。

连接上述的红线(log scale 之后)并拟合

将这三个图的红线进行连接,并进行拟合,我们得到了如下 Batchsize 关于 C4 Loss 的规律:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智慧医疗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值