如何从头开始构建 LLM 大模型?

这篇文章面向对神经网络LLM大模型构建感兴趣的人,写这篇文章一方面是作为自己想从头开始了解LLM构建原理,从中有所收获。作为一个应用层面的设计师(我自己),实际上并不需要懂那么多的底层原理,但正如作者介绍的那样,如果你是个赛车手,你完全不需要去建造一辆方程式赛事,因为它太昂贵,付出的时间巨大。

或许我们可以做一辆更加简单,快速上路,不断调试的卡丁车,在这个过程中不断调教,享受这个过程。比如赛车手迈克尔·舒马赫和埃尔顿·塞纳,从而掌握车子性能的敏锐度。或许也比其他设计师更有优势。

作者 Sebastian Raschka 塞巴斯蒂安·拉斯卡 是一名法学硕士 (LLM) 研究工程师,也是《从零开始构建大型语言模型》的作者。作者对推理模型和LLM领域有深入的研究和丰富的经验。他通过自己的努力和研究,为读者提供了有价值的内容,帮助读者更好地理解和掌握LLM技术。

作者将这本书提炼浓缩出7个视频,详细介绍了从头开始构建LLM的各个步骤,包括代码环境的搭建、文本数据的处理、注意力机制的编码、模型架构的实现、预训练、微调等。通过实际的代码示例和详细的讲解,可以深入理解LLM的工作原理,并掌握构建自己的大语言模型的方法。

1.设置代码环境(0:21:01):介绍了如何使用uv设置Python环境。特别提到了使用“uv pip”,并在文档中进行了解释。同时,也提到了原生“uv add”语法。需要注意的是,安装过程可能会在某些版本的Windows上出现问题,如果遇到问题,可以跳过TensorFlow的安装,并使用作者在Hugging Face模型中心共享的转换后的GPT – 2模型权重。

2.处理文本数据(1:28:01):该视频介绍了LLM训练中文本数据的准备步骤,包括分词、字节对编码、数据加载器等。

3.编码注意力机制(2:15:40):详细解释了如何从头开始编码注意力机制,包括自注意力、因果注意力和多头注意力。可以将其类比为构建汽车的发动机。

4.设置代码环境(0:21:01):再次介绍了如何从头开始编码LLM架构。

5.在无标记数据上进行预训练(2:36:44):解释了如何从头开始预训练LLM。

6.用于分类的微调(2:15:29):以垃圾邮件分类为例,介绍了如何将LLM微调为分类器,为下一个视频中的指令微调做铺垫。

7.指令微调(1:46:04):最后介绍了如何对LLM进行指令微调。

作者也提到在学习这个视频中最好搭配书本一起学习,有开发者将其翻译成中文,并通过GitHub进行开源共享,链接为:https://github.com/skindhu/Build-A-Large-Language-Model-CN。该项目提供了原版的英文电子书和翻译后的中文版,按照章节组织,与原版英文书籍一一对应。同时,项目还对原版英文书籍中的图片进行了翻译。

在翻译过程中,采用了分阶段的翻译方案,先使用AI翻译助手进行粗翻译,再由另一个AI Agent进行审查与修正,最后进行人工精细翻译,确保翻译的准确性和流畅度。此外,译者还加入了自己在遇到不理解或不了解的部分时的思考和解读,帮助读者更深入地理解大模型的各个方面。

对于希望深入了解GPT等大模型架构、训练过程及应用开发的开发者来说,《从头开始创建LLM大模型》这本书及其中文翻译版本是不可多得的学习资料。

Be First to Comment

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注