如何深入理解ChatGPT等大语言模型-笔记
根据Andrej Kaparthy分享的Deep Dive into LLMs like ChatGPT视频,以下是我在学习过程中的一些笔记:
预训练阶段
- 数据收集阶段
- 收集数据,通过爬虫技术收集大量文本数据
- 对数据进行清洗,去除无用信息
- 压缩数据,形成词表(token)
- 构建神经网络模型
- 根据词表预测下一个词的概率
- 对概率进行调整,使其更加正确,也就是神经网络训练的过程
这里使用的是Transformer模型,这个不太懂 TODO,后面在了解
- 推理过程
推理过程简单来说就是根据步骤2生成的模型,在结合输入的文本,预测下一个词的概率;
基础模型
- 基础模型也具备上下文学习能力
监督式-微调阶段
由于基础模型只能做到预测下一个词语的能力,不能理解文本的含义,所以需要对基础模型进行微调
微调的方式是通过对话的方式来进行调整,然后将调整后的数据重新训练基础模型,使其具备对话的能力
类似的文档数据集,可以参考(Congliu/Chinese-DeepSeek-R1-Distill-data-110k-SFT)[https://huggingface.co/datasets/Congliu/Chinese-DeepSeek-R1-Distill-data-110k-SFT]
微调阶段更重要的作用是修正基础模型的一些错误,使其更加准确,以及让模型知道自己的边界在哪里,从而解决模型幻觉问题
- 模型需要分步思考
LLM模型在给出结果时,会依赖上一步输出的token,因此要避免一个步骤中就让模型给出最终的答案,而是分步思考,使用上一步的输出作为下一步的输入,这样可以减少模型幻觉问题或者让模型使用其他工具来实现;
强化学习阶段
强化学习指的是模型在给出答案后,会根据结果来增加能输出正确答题的路径的概率,减少错误答案的路径的概率,在不断的迭代中,模型会更加准确;
对于有明确答案的问题,可以使用LLM评判模型给出的答案是否正确,从而进行强化学习;
对于没有明确答案的问题,通常使用另外一个神经网络模型来模拟人类的评判标准,来进行评分,从而进行强化学习;
RLHF会有对抗问题,因为模型会想办法欺骗评判标准;
PS:这个分享教程的格式非常好,首先是分享的知识只划分为三个段落,每个段落完成后都会进行回溯,最后进行整体回溯;
参考资料
FineWeb: decanting the web for the finest text data at scale
Tiktokenizer