原贴链接

使用H100 GPU(假设可使用4 - 8个)对40B的Llama模型进行微调需要多长时间?我有大概8亿个标记的数据。我不打算使用QLoRa,而是使用LoRA进行高效微调。我刚接触生成式人工智能(任何用于估计在H100 GPU上运行所需时间的来源或计算方法都很有用)。

讨论总结

主题是微调预训练的大型语言模型(如40B LLama模型)所需的时间,原帖设定了特定的条件(如4 - 8个H100 gpus、8亿个token的数据、使用LoRA等)。主要观点包括不同的估算方法、对估算的质疑、对特定设置下预训练时长的讨论以及一些否定观点,总体氛围比较理性、专注于技术探讨。

主要观点

  1. 👍 对于微调模型所需时间,可以通过先测试小部分数据来估算整体时间。
    • 支持理由:可测试收敛性和性能,还能考虑到如学习率计划等多种因素,像pseudonerv提到的需根据模型和数据集测试多种因素。
    • 反对声音:无
  2. 🔥 在特定设置下1MB文本文件预训练约1小时(针对70B模型)。
    • 正方观点:这是评论者de4dee根据自己的设置(4*A6000)得出的结论。
    • 反方观点:netroxreads质疑该时长过长,正常应是GB或TB量级的文件才合理。
  3. 💡 以Falcon 40B模型的数据为参考进行计算,可得出微调40B LLama模型的大致时间。
    • 解释:虽然数据是关于样本而非标记,但可通过换算得出平均微调速度,进而算出原帖中的时间约为2周,不过这只是推测,如原帖用H100而非A100,H100可能使速度更快,同时建议小规模测试获取更准确估计。
  4. 🤔 不认为能将8亿个标记信息合理放入LoRA。
    • 解释:qrios认为若能放入,要么数据大多冗余,要么LoRA足够大而失去使用它的意义。
  5. 😎 1MB文本的内容量相当于两部英文小说。
    • 解释:qrios指出这一观点,对比出预训练速度比人阅读小说的速度快很多。

金句与有趣评论

  1. “😂 well, find yourself a stopwatch and time how long it takes for a million tokens and then multiply that by 800 and then add 50% in case something went wrong”
    • 亮点:pseudonerv提出的一种看似玩笑却有一定道理的估算微调时间的独特方法。
  2. “🤔 1 MB of text file pre - training takes roughly about 1 hour in my setup. 70B model.”
    • 亮点:de4dee给出自己设置下的预训练时长,引发后续讨论和质疑。
  3. “👀 1MB??? You mean GB or TB? That’s awfully a long time to process just 1MB.”
    • 亮点:netroxreads对de4dee提到的1MB预训练时长表示强烈质疑。
  4. “💡 你有8亿个标记。800000000 / 695.40 t/s = 1150417 s,也就是大约2周。”
    • 亮点:以Falcon 40B模型数据为参考计算出原帖情况的大致微调时间。
  5. “😏 我不认为你能合理地期望将价值8亿个标记的信息塞入LoRA。”
    • 亮点:qrios对原帖将8亿标记信息放入LoRA的合理性提出否定观点。

情感分析

总体情感倾向是比较理性、客观的。主要分歧点在于不同估算方法的准确性和合理性,如对特定设置下预训练时长的不同看法,以及能否将8亿标记信息放入LoRA的争议。可能的原因是大家来自不同的技术背景,对模型、硬件和数据的理解与经验有所不同。

趋势与预测

  • 新兴话题:对不同硬件(如H100与A100)对微调速度影响的深入探讨。
  • 潜在影响:有助于相关技术人员在进行预训练模型微调时更准确地估算时间和资源,提高工作效率。

详细内容:

《探究预训练 LLM 模型微调所需时间》

近日,Reddit 上一则关于“微调一个预训练的 LLM 模型需要多长时间”的帖子引发了热烈讨论。该帖子中提到,使用 40B 的 LLama 模型和 H100 显卡(假设可使用 4 - 8 块),拥有 8 亿个令牌的数据,且计划使用 LoRA 进行高效微调,因初涉 GenAI 领域,希望能得到在 H100 显卡上运行的时间估算(此贴获得了众多关注,评论众多)。

讨论焦点与观点分析: 有人说,找个秒表,先测处理 100 万个令牌的时间,然后乘以 800 再加上 50%以防意外。但有人反驳道,这是开玩笑,想要一个大致的估算,没有那么多 AWS 积分来测试。还有人表示,在自己的设置中,1MB 的文本文件预训练大约需要 1 小时,是 70B 模型。但有人质疑,是 1MB 还是 1GB 或 1TB,处理 1MB 就花这么长时间太不可思议了。有人提到 1MB 的文本约相当于 2 部英文小说的内容,训练速度比人自己阅读快多了。有人分享自己的设置是 4*A6000,还有人询问是否使用了 nvlink。

有人指出,唯一记得的 40B 模型是 Falcon 40B,并提供了相关链接,其中提到对于 8 - 位量化和 8xA100 80GB SXM4,微调速度约为 2.85 个样本/秒。通过一系列计算得出,如果使用 H100 显卡,可能约 2 周完成。但也强调这只是纯粹的推测,实际时间取决于多个因素,建议进行小规模测试以获得更准确的估算。

也有人认为不能期望将 8 亿个令牌的数据塞进 LoRA,如果能,要么数据冗余,要么 LoRA 太大,不如不用。还提供了相关论文链接进一步阐述观点。

这场讨论的共识在于,准确估算微调时间非常困难,需要考虑众多因素,并通过小规模测试获取更精确的结果。特别有见地的观点是,通过实际数据和计算进行推测,并强调实际情况的复杂性和不确定性。

总之,关于预训练 LLM 模型微调所需时间的讨论尚无定论,但为相关研究和实践提供了多角度的思考。