从0开始学习语言模型--Day02-如何最大化利用硬件

如何利用硬件

这个单元分为内核、并行处理和推理。

内核(Kernels)

我们说的内核一般指的就是GPU,这是我们用于计算的地方,一般说的计算资源就指的是GPU的大小。我们模型所用的数据和参数一般存储在内存里,假设把内存比喻为仓库,GPU比喻为工厂,那么我们所要做的就是最大限度提高数据在仓库和工厂之间运输的效率,像我们常说的矩阵乘法、融合或分块等算法都是在减少数据运输的成本。

并行处理(parallelism)

就如字面意思一样,多个GPU连接着一个个CPU,彼此并行传输数据,我们需要思考如何防止模型参数、激活值(模型在处理输入数据时,每一层神经网络的中间输出结果。这些值反映了模型在特定层对输入信息的非线性变换结果,是模型理解和生成文本的关键中间状态)或梯度来提高运输效率,与内核的本质是一样的,只是这个的关键在于并行链接的处理方式。

推理(inference)

推理指的是我们实际使用模型的方式,指的是在给定提示的情况下完成生成提示词的任务。推理的成本比训练模型的成本大得多,后者是一次性成本,而前者伴随着模型使用者的增多,需要不断地提高推理的高效,这就需要不断地投入成本。推理分为两个阶段:预填充和解码。预填充阶段,模型会根据提示词,运行得到一些激活值,然后在解码阶段自回归地生成一个个词元(token)。在推理中,比较困难的就是解码阶段,因为是一次生成一个token,这很难让我们的并行处理的GPU进行饱和式的运行,在这里会浪费一些资源,同时由于不断地移动数据,进一步地放大这种损失。当然,我们可以选择一些快速推理模型来降低1成本浪费,比如推理型解码,通过预设一些tokens,假设这些是我们需要的或通过评分认为这些是好的,就全部接受,从而省去了生成一部分token所花费的资源。

在构建这些部分的过程中,我们要养成总是进行基准测试和性能分析的习惯。因为在过程中我们可以写想要实现的任何一个功能,但我们需要反馈来确定进展在哪个阶段以及定位瓶颈,也就是上限在哪里,以便我们确认我们构筑的方向是对的以及处理好一些细节来提高上限。

缩放法则(scaling laws)

之前我们说到过理想情况是在小规模上做实验并弄清楚问题,然后预测大模型下的超参数和损失。这里会引出一个基本问题,假设给出一个浮点运算预算,应该用多大的模型。如果使用更大的模型,就意味着可以在更少的数据上训练,相反则是可以在更多的数据上训练。那么该如何找到这里的平衡点呢?我们一般会根据一个经验法则去判断:假定有一个大小为n的模型,那么将n乘以20,得到的结果就是我们要训练的token的数量。当然这里指的是如何训练出最佳的模型,而不是最划算的模型,是忽略了模型的推理成本的。

数据

即使我们做好了架构,调试好了参数,但模型会用于做什么还是取决于我们输入的数据。如果是多语言数据,那么训练出的就是多语言模型,输入的是代码数据,训练出的就是代码模型。那么我们该如何评估模型的能力呢。这就需要用到困惑度指标、标准化测试、跟随回复以及其他的一些包括评估整个模型的方法。

讨论完了评估,我们继续回溯,就到了如何筛选要训练的数据了。毕竟我们平时练习用到的数据,很多都是别人处理好的,不管是在网站爬取的统计数据,还是网页上的文本,都是需要进行大量的细节操作来进行筛选的,以确保数据尽可能多保留我们想要的信息的前提下(一般会用到分类器来过滤掉垃圾信息,以及用去重来保证信息的唯一性,不让模型重复识别某类信息),更好地被模型识别。

在经历了这么多步骤后,我们就得到了一个可以预测下一个token的基础模型。我们会通过对齐(通过技术手段使得模型的输出是符合我们期望的)的操作来满足三件事:让语言模型的能够跟随指令去生成对应的token;确定模型的风格;模型能够拒绝回答一些性质是有害的问题。对其一般分为两个阶段,一个是监督微调,通过少数的数据(一般在一千个就可以让模型可以跟随指令了)来达成好的学习效果,另一个是让模型去学习偏好的数据。即给定问题让模型去回答,并让用户给回答打分,从而得到偏好数据让模型去学习。最后是在这些数据的基础上,应用算法,让模型进行真正的训练以拥有对应的功能。

学习来源于B站教程:【斯坦福大学 • CS336】从零开始构建语言模型 | 2025 年春季_哔哩哔哩_bilibili

相关推荐
rocksun3 小时前
认识Embabel:一个使用Java构建AI Agent的框架
java·人工智能
Java中文社群4 小时前
AI实战:一键生成数字人视频!
java·人工智能·后端
AI大模型技术社4 小时前
🔧 PyTorch高阶开发工具箱:自定义模块+损失函数+部署流水线完整实现
人工智能·pytorch
LLM大模型4 小时前
LangChain篇-基于SQL实现数据分析问答
人工智能·程序员·llm
LLM大模型4 小时前
LangChain篇-整合维基百科实现网页问答
人工智能·程序员·llm
DeepSeek忠实粉丝4 小时前
微调篇--基于GPT定制化微调训练
人工智能·程序员·llm
聚客AI6 小时前
💡 图解Transformer生命周期:训练、自回归生成与Beam Search的视觉化解析
人工智能·llm·掘金·日新计划
神经星星6 小时前
从石英到铁电材料,哈佛大学提出等变机器学习框架,加速材料大规模电场模拟
人工智能·深度学习·机器学习
摆烂工程师6 小时前
Google One AI Pro 的教育学生优惠即将在六月底结束了!教你如何认证Gemini学生优惠!
前端·人工智能·后端
陈明勇7 小时前
MCP 官方开源 Registry 注册服务:基于 Go 和 MongoDB 构建
人工智能·后端·mcp