Deep Dive into LLMs like ChatGPT 学习笔记
视频链接 https://www.youtube.com/watch?v=7xTGNNLPyMI
要点:虽然名字是deep dive,但是属于帮助入门理解大模型。
预训练的data: FineWeb, focus on 英语。15-trillion tokens, 44TB size
训练:0-8000(大概的数) tokens序列作为input(context) ,神经网络预测下一个token的比例。
神经网络的weight初始是随机的。correct answer是label,可以tune网络,让正确结果的probability更高,这就是训练。
神经网络的结构参数可视化:https://bbycroft.net/llm
inference: to generate data, just predict one token at a time. 即使输入一个与训练data里一模一样的sequence,预测结果不一定与training data一样,是inspired by the training data。
推理:just talking to the model。
举例 GPT-2
general propose transformer
1.6 billion 参数
最大1024 token
用100 billion token训练
现在训练的成本变低了:dataset更好了,硬件更好了,软件优化好了。
8XH100 node,需要24hours。
每个step拿1million token去训练。loss:low loss is good
举例 Llama3 by meta 2024
405 billion parameters on 15 trillion tokens
Base模型,internet document simulator,只把你的输入当作prefix。模型的输出是随机。Llama模型有memory,比如输入某个wiki的句子,输出会和wiki剩下的内容一致。模型能记住,通过训练。base模型训练的数据集截至到2023年底。
模型也有in-context learning能力,可以学习prompt的pattern,虽然base模型没办法直接回答你的问题,但是你可以在prompt中模拟人类与AI的对话,在prompt最后问模型你真正想问的问题,那么模型会学习到“回答问题”的pattern。
note:base模型是不是就像这个世界知识的巨大zip文件。
----------------------base模型---------------------
Post-training 时间更少
human与AI之间的对话,人类问问题,AI回答。所以创造对话的数据集,再训练base模型。完全一样的算法和模型,只换数据集。数据集需要人肉、加上LLM辅助。
Hallucinations
训练的时候,有模型不知道的问题,那么答案就是不知道。这样的训练样本可以大概解决这个问题。
如何制造这样的训练集?”我不知道“的训练集合。
knowledge of self
默认模型会输出比较模糊的答案。工程师可以hard code一些对话样本,问题是你是谁之类的,然后模型能正确”认识“自己。
Models need tokens to think 理解能力,解题能力
简单的数学题训练样本。模型总是从左到右读token,好的答案是,先给推理,最后给出答案。如果回答是先给出答案,模型倾向于猜答案,所以是不好的。
给chatgpt提问一个数学题,prompt里加上use code,会给出python代码解题。
模型不擅长拼写?因为单词被tokenize了。不擅长数数。
-------------------强化学习 reinforce learning------------------- SFT模型 supervised finetuning model---------
exposition/background knowledge -> pretraining
worked problems -> supervised finetuning
practice problems -> reinforcement learning
根据给出的各种answer,取最好的正确答案和短的答案,训练。
Deepseek-R1 基于强化学习