Lazy loaded image
LLM 大模型学习
字数 2336阅读时长 6 分钟
2025-6-28
2025-6-28
type
tags
category
icon
password
Multi-select
优先级
重要度
状态 2
预计结束时间
添加日期
URL
状态
分类(人工)
总结(AI 摘要)
status
 
 

LLM笔记摘要

最近阳了,正好把一个欠了很久的债—看Andrej Karpathy 的 LLM 的讲解视频 给还了。
真的非常的精彩,在看完之余觉得不过瘾,就补充了这一篇摘要。
强烈推荐观看原视频
虽然时长 3 个半小时,绝对会让你大呼过瘾~
/

阶段一:预训练阶段

整个阶段主要围绕着的是如何处理这些数据,以及机器能理解的是什么样的,补全了另一个视角。

1.1 下载简单处理后的原始语料

 
数据基本都是爬虫抓取而来,但抓取的时候很脏,需要简单处理
  1. url 过滤:我们只想要纯文本,还要过滤一些有害的 url(比如垃圾网站、成人网站)
  1. 文本过滤:去掉一些有害的内容
  1. 语言过滤:比如只保留英文的
  1. 其他处理比如删除个人信息、地址等内容
处理完之后可以得到下图中的纯文本
 
notion image
notion image

1.2 文本序列化

notion image
notion image
 
机器很难读懂文字,所以用代号来取代文字
看右图,就是将英文单词转为了序列号的“数字”,这里应该叫 token
注意这里并非一个英文单词一个 token,句子 "unbelievably good" 可能会被分成 ["un", "##believab", "##ly", "good"] 这几个子词Token。这样做的好处是可以有效处理未知词汇和复杂词形。
notion image
关于序列化的详细内容,从下图可以看到,空格、大小写都会让 token 发生变化。
可以理解为不管哪种形式的文本,背后都有对应的 token 显示。
notion image
notion image
notion image
下面是一段文本序列化之后的样子
notion image
notion image
 
 

1.3 神经网络训练

左边的为上下文
中间通过神经网络训练会给出下一个token可能的概率
通过概率的排序进行召回,然后输出
这一切都是随机的,每次输入之后可能回复都是不同
notion image
notion image
 
notion image
 
 
从上面可以看到,神经网络是有几十亿甚至上万亿的参数的,这个参数是如何调整的呢
事实上模型会经过数十万甚至上亿次的迭代,每次迭代都是在更新模型权重然后生成一个内容
这个阶段不需要人工标注,只是网络在自己找寻每个 token 之间的相关度(从已有的文本中)
从第一步的无序到最后可以说梦话(没有逻辑但是连贯的话)
这个阶段模型只是在凭借记忆去记住一些片段,就像你读书一样,看了几遍会背了。只是不知道应该如何去使用。
notion image
 
notion image
上下文容量、模型参数指的都是在这个阶段进行的。
上下文指的是给 XX 输入,输出 YY,整体的容量
模型参数指的是神经网络的训练参数,参数越大、上下文越大,需要的迭代轮数越多,也越废资源。
这个阶段要花非常久(可能要几个月),后续都会很快(可能只有几天)。
 

阶段 二:监督学习阶段

2.1 如何教会模型人类的东西

通过监督学习,输出一系列高质量的例子,让大模型学习。
notion image
这里通过固定的开始和结尾让模型知道这是一个问题序列,然后直接将原文丢入(可以看到这是一维的,单纯的丢原始问题)
 
notion image
在这里会将左边的问题进行序列化,让模型可以看懂
训练的语料如下图
大模型前期,这些语料是各行各业的专家给出的案例,包括对该模型性格、审美、模型自我认知都是在这一阶段训练的。
后期更多的是通过模型蒸馏,比如喂给新训练的模型语料不是从专家得到而是从其他的大模型,让他们给出问答对
notion image
 

2.2 幻觉是如何产生的

notion image
训练阶段 模型了解了 who is XX 的句式
然后在测试的时候,虽然人名是假的,网上没有资料,但根据概率还是在胡乱编
notion image
notion image
上面两个图可以看到,每次回答都是不同的

2.3 如何减轻幻觉

方案 1:在模型中增加因为不知道而拒绝回答的案例,让模型学会说 no
当然这是站在模型训练的角度,让他自己提升;
对我们而言,前期用的最多的就是回答的时候跟模型说:“如果你不知道不要瞎说”,也可以解决
notion image
方案 2:让模型学会调用工具
同样是在训练的时候,让模型学会一个《 SEARCH_START》XXX《 SEARCH_END》XXX 【】的结构,这其实只是一种约定,怎么定义都行。模型就会知道这种情况调用搜索工具,然后将回答内容填充到【】中。
当然你也可以直接选择启用搜索,这样就会默认先搜索。
notion image

2.4 模型如何学会思考?

比如有一个数学问题,怎样的回答才是认为最好的?
就把这些例子当成一维的答案,告诉大模型,hi,我认为这个是好的,你应该这么学习。
notion image
notion image
为什么一开始数学不好,因为她只是在这样的猜数字而已,一开始并没有很多的中间计算过程的。
后续是如何变好的呢,事实上他并没有去执行计算(因为模型不擅长心算),而是写了一段代码,最后交给计算器去完成了,这种在大模型里就很好做了,不需要关心数字,只需要关心处理的过程如何。这很好被模型去学习。
notion image
跟数学一样的,模型不擅长拼写,不擅长数,因为这个跟大模型的运作原理(基于 token 的预测)是不同的,只能借助工具调用来完成。
notion image
为什么 9.11 比 9.9 大呢,可能是因为模型学习了圣经,在圣经中 9.11 是章节,在9.9 之后。真的很有意思。这些共同导致模型一定会有幻觉。
更有意思的是,在模型思考中坚信 9.9更大,而不是 9.11。似乎模型的思考过程都是假像。。。
notion image
notion image
 
 

阶段 三:强化学习

3.1 为什么需要强化学习

看左边的图,想象一下你在上学:
预训练:对应一系列的背景知识,告诉你这是什么问题
监督学习:专家会给出解决这个问题的方法
强化学习:对应的是课后小练习(题目不同,但类型相似。以此提升泛化能力)
 
notion image
 
notion image

3.2 RL阶段:单纯的强化学习

模型自己会根据问题生成大量的解决方案,然后自己通过模型解释器去评估哪个是对的,不需要人工干预
这里其实我们也是给了方向和结果的,比如 3 是对的。那么他就会不断做等于 3 的方案
监督学习使得我们接近各种问题的答案附近(毕竟不可能有相同的例子),但强化学习完成了这最后一公里的泛化,使得在这个大类问题上都有很好的结果。
这适用于 数学、编程等有明确答案的场景
对于监督学习来说,无法超过人类,只是无限逼近。
但是对于强化学习,是可以超过的,想象一下 alphago 在围棋上。
 
notion image

3.3 在很难量化的领域,如何应用强化学习呢?

RLHF:基于人类反馈的强化学习
比如写作(写个笑话之类的)
方法也很简单,一开始让人给排序,哪个更好笑。(不让人来创作,而是去评分,只做排序)
但是强化学习要迭代成百上千万次,不可能都是人类来标注;
这个时候通过前面几十次的人工标注,训练了一个小模型,用来模拟人类的判断标注,以此生成了一个评估器。
接下来就是大模型的强化学习模拟器和评估器之间的事了,都是机器,不断迭代,直至更好。
notion image
notion image
 
上一篇
16 个影响巨大的用户界面设计小技巧
下一篇
看 Cursor 如何优雅的解决编辑难题