构建了一个LLM训练框架,能在旧款GPU上运行而不崩溃
摘要
介绍Picotron,它是Nanotron的净室重写版本,消除了强制性的GPU特定依赖,使得LLM训练能够在T4和V100等旧款GPU上进行。它默认使用标准PyTorch SDPA,但在运行时支持FlashAttention-2。
嘿,各位,我最近在摆弄Nanotron,发现它在模块级别导入了大量繁重的硬件特定依赖项(flash-attn、triton、functorch等),这让我非常沮丧。如果你试图在较旧或预算型GPU(如T4或V100)上运行它,它会在导入时直接崩溃。所以我编写了Picotron(https://github.com/Syntropy-AI-Labs/picotron)来解决这个问题。这是一个净室重写版,消除了所有强制性的GPU特定依赖。它几乎可以在任何支持PyTorch的GPU上运行(在计算能力低于8.0的旧卡上默认使用FP16,在较新的卡上使用BF16)。它默认回退到标准PyTorch SDPA,但如果检测到你已安装FlashAttention-2,它会在运行时连接到它。我使用AI助手编写了大量样板/代码模块,但已在本地运行成功,并在FineWeb-Edu上训练了一个很小的2M模型。此外还添加了以下配置:
• GQA / MLA(多头潜在注意力)
• QK-Norm 和 logit soft-capping(类似Gemma 2)
• 并行FFN/Attn运行
• 在DDP上使用ZeRO-1包装
目前路线图很短:MoE准备(路由容量因子和负载均衡损失),使数据集准备比手动流式处理更容易。如果你一直在与CUDA依赖地狱作斗争,不妨看看:https://github.com/Syntropy-AI-Labs/picotron
相似文章
@tom_doerr: 在单个4GB GPU上运行70B大语言模型 https://github.com/lyogavin/airllm
AirLLM是一个开源工具,优化推理内存使用,无需量化即可在单个4GB GPU上运行70B大语言模型,并支持在8GB显存上运行405B模型。
@tom_doerr: 在单个 GPU 上从头训练十亿参数的大语言模型 https://github.com/FareedKhan-dev/train-llm-from-scratch…
一个 GitHub 仓库提供了基于 Transformer 架构、使用 PyTorch 在单个 GPU 上从头训练十亿参数语言模型的脚本。
从零开始开发开源大语言模型:从预训练到RLHF(PPO/GRPO)
一位开发者分享了从零开始训练一个70亿参数开源大语言模型的进展,该模型基于DeepSeek架构并针对低显存进行了优化,目标是推动AI开发的民主化,并最终超越大型专有模型。
单张 RTX 5080 从头训练 2.35 亿参数 LLM
一位爱好者在单张 RTX 5080 上从头训练出 2.35 亿参数的 LLM,公开完整 PyTorch 流程并开源 Plasma 1.0。
从零开始在8GB显存上训练LLM。我开心
构建了一个仓库,用于在8GB显存上从零训练一个微型语言模型(25M参数),支持MTP,但指出mHC和BitNet的局限性。