ymcui / Chinese-LLaMA-Alpaca-2

中文LLaMA-2 & Alpaca-2大模型二期项目 + 64K超长上下文模型 (Chinese LLaMA-2 & Alpaca-2 LLMs with 64K long context models)
Apache License 2.0
7.06k stars 578 forks source link

位置插值训练数据相关咨询 #474

Closed KyrieXu11 closed 9 months ago

KyrieXu11 commented 9 months ago

提交前必须检查以下项目

问题类型

其他问题

基础模型

Others

操作系统

Linux

详细描述问题

各位大佬好,因为在discussion区提问没有得到回复,所以在issue区也提一个,请各位大佬见谅。

我这边有个模型现在有8k的上下文长度,如果我想扩展到16k的长度,已经使用ntk直接推理测试过,但是想用线性插值训练一下模型测试看看,线性插值的代码已经实现。

所以想请教一下下面的几个问题:

  1. 添加位置插值之后,训练的方式是sft还是增量预训练?
  2. 添加位置插值之后,训练的语料长度一般为多少更合适?如现有模型是8k的话,目标是将模型的context length训练到16k,训练语料长度是否16k?
  3. 使用位置插值训练,参考PI这篇论文的说法,在千步级别的steps即可达到很好的效果,所以想要学习一下大佬的经验,Chinese-LLaMA-Alpaca的位置插值训练的时候,训练了多少个steps?
  4. 训练的数据如果是开源的话,请问能给个地址吗?

依赖情况(代码类问题务必提供)

# 请在此处粘贴依赖情况(请粘贴在本代码块里)

运行日志或截图

# 请在此处粘贴运行日志(请粘贴在本代码块里)
ymcui commented 9 months ago
  1. 是增量预训练还是SFT,取决于你的基模型是什么类型。
  2. 原则上,你扩到多少长度就准备多少长度的数据。
  3. 不同模型之间没有参考性,建议你自行设置valid set观察PPL或者在长文本任务上观察指标变化。
  4. 暂不开源。
KyrieXu11 commented 9 months ago
  1. 是增量预训练还是SFT,取决于你的基模型是什么类型。
  2. 原则上,你扩到多少长度就准备多少长度的数据。
  3. 不同模型之间没有参考性,建议你自行设置valid set观察PPL或者在长文本任务上观察指标变化。
  4. 暂不开源。

好的,谢谢大佬解答。

请允许我再问一个小白问题: 如果我的基座模型是base模型,就应该使用增量预训练? 如果拿来做对话或者其他指令任务,就在这个增量后的base模型基础上做sft?

ymcui commented 9 months ago
  1. 如果我的基座模型是base模型,就应该使用增量预训练?

是的。如果是非chat模型,直接使用无标注的语料做增量CLM训练就可以了。

  1. 如果拿来做对话或者其他指令任务,就在这个增量后的base模型基础上做sft?

是的。但是也要注意SFT阶段可能会丢失一部分长距离信息,主要看你的SFT数据的长度。所以最理想的情况是预训练阶段和SFT阶段都用足够长的文本训练。

KyrieXu11 commented 9 months ago
  1. 如果我的基座模型是base模型,就应该使用增量预训练?

是的。如果是非chat模型,直接使用无标注的语料做增量CLM训练就可以了。

  1. 如果拿来做对话或者其他指令任务,就在这个增量后的base模型基础上做sft?

是的。但是也要注意SFT阶段可能会丢失一部分长距离信息,主要看你的SFT数据的长度。所以最理想的情况是预训练阶段和SFT阶段都用足够长的文本训练。

好的,感谢大佬耐心解答,祝大佬生活愉快!

github-actions[bot] commented 9 months ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your consideration.