食谱
深度学习入门,作者:Quentin Anthony、Jacob Hatef、Hailey Schoelkopf 和 Stella Biderman
这里包含了使用实际模型时所需的所有实用细节和工具!如果你刚刚开始,我们建议直接跳到基础知识部分,了解一些关于transformer的入门资源。
目录
工具
计算
用于训练/推理计算(例如FLOPs、内存开销和参数数量)
有用的外部计算器包括:
Cerebras Model Lab。应用Chinchilla缩放法则的用户友好工具。
Transformer训练和推理VRAM估算器,由Alexander Smirnov开发。一个用于估算VRAM开销的用户友好工具。
基准测试
通信基准测试
Transformer大小和GEMM基准测试
阅读清单
基础知识
LLM可视化。清晰的LLM可视化和动画,用于基本的transformer理解。
Jay Alammar的博客包含许多面向不同背景读者的博文。我们特别推荐他的文章图解Transformer和图解GPT-2。
带注释的Transformer,作者:Sasha Rush、Austin Huang、Suraj Subramanian、Jonathan Sum、Khalid Almubarak和Stella Biderman。对开创性论文"Attention is All You Need"的详细解读,并附有PyTorch的内联实现。
如何进行LLM计算
Transformer数学101。EleutherAI的一篇博文,涵盖训练/推理内存估算、并行化、FLOP计算和深度学习数据类型。
Transformer推理算术。对transformer推理的内存开销、FLOPs和延迟的详细分析。
LLM微调内存需求,作者:Alex Birch。关于模型微调内存开销的实用指南。
分布式深度学习
关于分布式训练和高效微调的所有内容,作者:Sumanth R Hegde。关于并行化和高效微调的高级描述和链接。
在多个GPU上高效训练,由Hugging Face提供。包含对模型、张量和数据并行以及ZeRO优化器的详细介绍。
相关论文:
- 使用Megatron-LM在GPU集群上高效训练大规模语言模型
- 揭秘并行和分布式深度学习:深入的并发分析
- ZeRO:面向训练万亿参数模型的内存优化
- PyTorch FSDP:完全分片数据并行扩展的经验
- PyTorch Distributed:加速数据并行训练的经验
最佳实践
ML-Engineering仓库。包含由Stas Bekman主导的深度学习训练的社区笔记和实用细节。
常用超参数设置,作者:Stella Biderman。记录了模型训练超参数的常用设置,以及她当前对训练新模型的建议。
数据和模型目录
LLM目录,作者:Stella Biderman。记录了已训练LLM的详细信息,包括许可证、架构类型和数据集。
数据溯源浏览器 一个用于追踪和筛选最流行的开源微调数据集合的数据溯源工具。
用于教育目的的最小化代码库
由于需要优化以适应大规模工作并支持各种可配置选项,大型语言模型通常使用非常复杂的代码库进行训练。这可能使它们作为教学工具的效果降低,因此一些人开发了精简的所谓"最小实现",这些实现足以满足小规模工作需求,并且更适合教学用途。
GPT推理
GPT训练
特定架构示例
- https://github.com/zphang/minimal-gpt-neox-20b
- https://github.com/zphang/minimal-llama
- https://github.com/zphang/minimal-opt
贡献
如果你发现了bug、拼写错误,或想提出改进建议,请随时开启Issue或贡献PR。
引用
如果你觉得这个仓库对你有帮助,请考虑使用以下方式引用:
@misc{anthony2024cookbook,
title = {{The EleutherAI Model Training Cookbook}},
author = {Anthony, Quentin and Hatef, Jacob and Schoelkopf, Hailey and Biderman, Stella},
howpublished = {GitHub Repo},
url = {https://github.com/EleutherAI/cookbook},
year = {2024}
}